예제 #1
0
    public ColorType GetPlayerNameColor(IEntity en)
    {
        ColorType color = ColorType.White;

        GameCmd.eCamp mycamp = (GameCmd.eCamp)MainPlayerHelper.GetMainPlayer().GetProp((int)CreatureProp.Camp);
        GameCmd.eCamp camp   = (GameCmd.eCamp)en.GetProp((int)CreatureProp.Camp);
        if (camp != GameCmd.eCamp.CF_None && mycamp != GameCmd.eCamp.CF_None)
        {
            if (camp != mycamp)
            {
                int pkvalue = en.GetProp((int)PlayerProp.PKValue);
                switch (pkvalue)
                {
                case 0:
                    color = ColorType.JSXT_Enemy_White;
                    break;

                case 1:
                    color = ColorType.JSXT_Enemy_Gray;
                    break;

                case 2:
                    color = ColorType.JSXT_Enemy_Yellow;
                    break;

                case 3:
                    color = ColorType.JSXT_Enemy_Red;
                    break;
                }
                return(color);
            }
            else if (camp == mycamp)
            {
                return(ColorType.White);
            }
        }

        GameCmd.enumGoodNess goodNess = (GameCmd.enumGoodNess)en.GetProp((int)PlayerProp.GoodNess);

        switch (goodNess)
        {
        case GameCmd.enumGoodNess.GoodNess_Badman:
            color = ColorType.JSXT_Enemy_Yellow;
            break;

        case GameCmd.enumGoodNess.GoodNess_Evil:
            color = ColorType.JSXT_Enemy_Red;
            break;

        case GameCmd.enumGoodNess.GoodNess_Hero:
            break;

        case GameCmd.enumGoodNess.GoodNess_Normal:
            color = ColorType.JSXT_Enemy_White;
            break;

        case GameCmd.enumGoodNess.GoodNess_Rioter:
            color = ColorType.JSXT_Enemy_Gray;
            break;

        default:
            break;
        }

        return(color);
    }
예제 #2
0
        public bool Conform(IPlayer e)
        {
            if (m_pkmodel == PLAYERPKMODEL.PKMODE_M_TEAM)
            {
                if (m_controllerhelper != null && m_controllerhelper.IsSameTeam(e))
                {
                    return(false);
                }
            }
            else if (m_pkmodel == PLAYERPKMODEL.PKMODE_M_FAMILY)
            {
                if (m_controllerhelper != null && m_controllerhelper.IsSameFamily(e))
                {
                    return(false);
                }
            }
            else if (m_pkmodel == PLAYERPKMODEL.PKMODE_M_CAMP)
            {
                if (m_controllerhelper != null && !m_controllerhelper.IsEnemyCamp(e))
                {
                    return(false);
                }
            }
            else if (m_pkmodel == PLAYERPKMODEL.PKMODE_M_JUSTICE)
            {
                //6)	善恶模式:白名、黄名玩家可攻击灰名、红名玩家以及怪物,灰名、红名玩家可以攻击白名、黄名玩家以及怪物。
                if (m_mainPlayer != null)
                {
                    GameCmd.enumGoodNess mainPlayerGoodNess = (GameCmd.enumGoodNess)m_mainPlayer.GetProp((int)PlayerProp.GoodNess);
                    GameCmd.enumGoodNess targetGoodNess     = (GameCmd.enumGoodNess)e.GetProp((int)PlayerProp.GoodNess);
                    //GoodNess_Badman Color.yellow;
                    //GoodNess_Normal Color.white;
                    //GoodNess_Rioter  Color.gray;
                    //GoodNess_Evil Color.red;
                    if (mainPlayerGoodNess == GameCmd.enumGoodNess.GoodNess_Normal || GameCmd.enumGoodNess.GoodNess_Badman == mainPlayerGoodNess)
                    {
                        if (targetGoodNess != GameCmd.enumGoodNess.GoodNess_Rioter && GameCmd.enumGoodNess.GoodNess_Evil != targetGoodNess)
                        {
                            return(false);
                        }
                    }
                    else if (mainPlayerGoodNess == GameCmd.enumGoodNess.GoodNess_Rioter || GameCmd.enumGoodNess.GoodNess_Evil == mainPlayerGoodNess)
                    {
                        if (targetGoodNess != GameCmd.enumGoodNess.GoodNess_Normal && GameCmd.enumGoodNess.GoodNess_Badman != targetGoodNess)
                        {
                            return(false);
                        }
                    }
                }
            }

            if (e.IsDead())
            {
                return(false);
            }
            Vector3 distance = m_playerPos - e.GetPos();

            if (distance.sqrMagnitude <= m_dis * m_dis)
            {
                return(true);
            }
            //Vector3 pos = m_maincamera.WorldToViewportPoint(e.GetNode().GetWorldPosition());
            //bool isVisible = (m_maincamera.orthographic || pos.z > 0f) && (pos.x > 0f && pos.x < 1f && pos.y > 0f && pos.y < 1f);
            //return isVisible;
            return(true);
        }