Пример #1
0
 public PlayerDistanceCondition(PLAYERPKMODEL pkmodel, Vector3 playerPos, float dis)
 {
     m_playerPos        = playerPos;
     m_dis              = dis;
     m_pkmodel          = pkmodel;
     m_mainPlayer       = ControllerSystem.m_ClientGlobal.MainPlayer;
     m_controllerhelper = ControllerSystem.m_ClientGlobal.GetControllerSystem().GetControllerHelper();
 }
Пример #2
0
    string GetFlagByPkModel(PLAYERPKMODEL model)
    {
        int           pk   = (int)model;
        List <string> list = GameTableManager.Instance.GetGlobalConfigList <string>("PkModelUIConfig", pk.ToString());

        if (list != null && list.Count == 3)
        {
            return(list[1]);
        }
        return(null);
    }
Пример #3
0
    void onClickUnenble(GameObject go)
    {
        int           currModel   = ClientGlobal.Instance().MainPlayer.GetProp((int)PlayerProp.PkMode);
        int           selectModel = int.Parse(go.name);
        PLAYERPKMODEL model       = (PLAYERPKMODEL)selectModel;
        string        msg         = DataManager.Manager <TextManager>().GetLocalFormatText(LocalTextType.Talk_System_buzhichigaimoshi, model.GetEnumDescription());

//        string msg = string.Format("该地图不支持切换到{0}模式", );
        TipsManager.Instance.ShowTips(msg);
        ChatDataManager.SendToChatSystem(msg);
    }
Пример #4
0
        private void FindTargetList()
        {
            m_lstEntity.Clear();
            playerPos = ControllerSystem.m_ClientGlobal.MainPlayer.GetPos();
            uint          range   = GameTableManager.Instance.GetGlobalConfig <uint>("Switch_Target_Range");
            Camera        c       = camera;
            int           pkmodel = ControllerSystem.m_ClientGlobal.MainPlayer.GetProp((int)PlayerProp.PkMode);
            PLAYERPKMODEL model   = (PLAYERPKMODEL)pkmodel;
            IMapSystem    ms      = ControllerSystem.m_ClientGlobal.GetMapSystem();

            if (ms == null)
            {
                return;
            }
            MapAreaType areaType = ms.GetAreaTypeByPos(ControllerSystem.m_ClientGlobal.MainPlayer.GetPos());

            if (areaType == MapAreaType.Safe)
            {
                FindEntity <INPC>(new MonsterDistanceCondition(playerPos, range));
            }
            else
            {
                if (model == PLAYERPKMODEL.PKMODE_M_NORMAL)//和平 0默认和平
                {
                    FindEntity <INPC>(new MonsterDistanceCondition(playerPos, range));
                }
                else
                {
                    FindEntity <IPlayer>(new PlayerDistanceCondition(model, playerPos, range));
                }
            }


            //if (model == PLAYERPKMODEL.PKMODE_M_NORMAL)//和平 0默认和平
            //{
            //    FindEntity<INPC>(new MonsterDistanceCondition(playerPos, c));
            //}
            //else if (model == PLAYERPKMODEL.PKMODE_M_FREEDOM)//自由pk
            //{
            //    FindEntity<IPlayer>(new PlayerDistanceCondition(playerPos, c));
            //    FindEntity<INPC>(new MonsterDistanceCondition(playerPos, c));
            //}
            //else if (model == PLAYERPKMODEL.PKMODE_M_CAMP)//阵营战 不能攻击友方 demo 阶段只判断是不是一个阵营即可
            //{
            //    FindEntity<IPlayer>(new CountryDistanceCondition(playerPos, c, pkmodel));
            //    FindEntity<INPC>(new MonsterDistanceCondition(playerPos, c));
            //}
            m_lstEntity.Sort(Sort);
        }
Пример #5
0
        /// <summary>
        /// 挂机寻怪接口
        /// </summary>
        /// <param name="center"></param>
        /// <param name="rang"></param>
        /// <param name="filterTarget"></param>
        /// <returns></returns>
        public IEntity FindEntityByArea_PkModel(MapAreaType areaType, PLAYERPKMODEL pkmodel, UnityEngine.Vector3 center, uint rang, uint attackPriority, long filterTarget = 0)
        {
            IEntity e = null;

            if (areaType == MapAreaType.Safe || pkmodel == PLAYERPKMODEL.PKMODE_M_NORMAL)
            {
                e = FindNearstEntity <INPC>(new MonsterCondition(center, rang, filterTarget));
            }
            else
            {
                //先砍人
                if (attackPriority == 1)
                {
                    e = FindNearstEntity <IPlayer>(new PlayerCondition(center, rang, filterTarget));
                    if (e == null)
                    {
                        //没人砍怪
                        e = FindNearstEntity <INPC>(new MonsterCondition(center, rang, filterTarget));
                    }

                    Engine.Utility.Log.Error("--->>> 优先人!!!");
                }

                else if (attackPriority == 2)
                {
                    //先砍怪
                    e = FindNearstEntity <INPC>(new MonsterCondition(center, rang, filterTarget));
                    if (e == null)
                    {
                        //没怪砍人
                        e = FindNearstEntity <IPlayer>(new PlayerCondition(center, rang, filterTarget));
                    }

                    Engine.Utility.Log.Error("--->>> 优先怪!!!");
                }

                else if (attackPriority == 3)
                {
                    //不限
                    e = FindNearstEntity <ICreature>(new CreatureCondition(center, rang, filterTarget));
                    Engine.Utility.Log.Error("--->>> 不限 !!!");
                }
            }



            return(e);
        }
Пример #6
0
    string GetDesByPkModel(PLAYERPKMODEL model)
    {
        int           pk   = (int)model;
        List <string> list = GameTableManager.Instance.GetGlobalConfigList <string>("PkModelUIConfig", pk.ToString());

        if (list != null && list.Count == 3)
        {
            List <uint> color = StringUtil.GetSplitStringList <uint>(list[2], '_');
            if (color.Count == 4)
            {
                Color c = new Color(color[0], color[1], color[2], color[3]);
                return(ColorManager.GetColorString(c, list[0]));
            }
            return(list[0]);
        }
        return(null);
    }
Пример #7
0
    string GetPkModeDes(int model)
    {
        if (pk_dic == null)
        {
            pk_dic = new Dictionary <int, string>();
        }
        string desc = "";

        if (pk_dic.ContainsKey(model))
        {
            desc = pk_dic[model];
        }
        else
        {
            PLAYERPKMODEL pkmodel = (PLAYERPKMODEL)model;
            desc = pkmodel.GetEnumDescription();
            pk_dic.Add(model, desc);
        }
        return(desc);
    }
Пример #8
0
        private IEntity GetNearestMonster()
        {
            Client.IPlayer mainplayer = ControllerSystem.m_ClientGlobal.MainPlayer;
            if (mainplayer == null)
            {
                return(null);
            }
            IEntitySystem es = ControllerSystem.m_ClientGlobal.GetEntitySystem();

            if (es == null)
            {
                return(null);
            }

            IMapSystem ms = ControllerSystem.m_ClientGlobal.GetMapSystem();

            if (ms == null)
            {
                return(null);
            }

            IEntity monster = null;

            if (m_nTargetID != 0)
            {
                monster = es.FindNPCByBaseId(m_nTargetID, true);
            }
            else
            {
                PLAYERPKMODEL     pkmodel = (PLAYERPKMODEL)mainplayer.GetProp((int)PlayerProp.PkMode);
                MapAreaType       atype   = ms.GetAreaTypeByPos(mainplayer.GetPos());
                IControllerHelper ch      = GetControllerHelper();
                if (ch != null)
                {
                    uint attackPriority = ch.GetAttackPriority();
                    monster = es.FindEntityByArea_PkModel(atype, pkmodel, m_centerPos, m_nSearchRang, attackPriority);
                }
            }

            return(monster);
        }
Пример #9
0
    void OnBtnTopClick(GameObject go)
    {
        // m_goSelect.transform.parent = m_trans_pkmodel.transform;
        m_transBtnBg.gameObject.SetActive(true);
        m_transBtnBg.transform.DestroyChildren();

        Client.IMapSystem ms = Client.ClientGlobal.Instance().GetMapSystem();
        if (ms == null)
        {
            return;
        }
        table.MapDataBase mapdata = GameTableManager.Instance.GetTableItem <table.MapDataBase>(ms.GetMapID());
        if (mapdata == null)
        {
            return;
        }

        GameObject curBtn = null;

        if (ClientGlobal.Instance().MainPlayer != null)
        {
            int nmodel = ClientGlobal.Instance().MainPlayer.GetProp((int)PlayerProp.PkMode);
            int index  = 0;
            for (int i = (int)PLAYERPKMODEL.PKMODE_M_NONE + 1; i <= (int)PLAYERPKMODEL.PKMODE_M_JUSTICE; i++, index++)
            {
                PLAYERPKMODEL model = (PLAYERPKMODEL)i;
                GameObject    btn   = NGUITools.AddChild(m_transBtnBg.gameObject, m_btnPrefab);
                btn.transform.localPosition = new UnityEngine.Vector3(174, -28 - index * 52, 0);
                btn.gameObject.SetActive(true);
                btn.GetComponentInChildren <UILabel>().text = GetDesByPkModel(model);
                btn.name = i.ToString();
                Transform flagTrans = btn.transform.Find("flag");
                if (flagTrans != null)
                {
                    UISprite sp = flagTrans.GetComponent <UISprite>();
                    if (sp != null)
                    {
                        sp.spriteName = GetFlagByPkModel(model);
                    }
                }
                SetSelect(btn, false);
                SetMask(btn, true);
                if ((int)model == nmodel)
                {
                    curBtn = btn;
                }
                if (mapdata.supportModel == "0")
                {
                    UIEventListener.Get(btn).onClick = OnClickBtn;
                    SetMask(btn, false);
                }
                else
                {
                    string[] param = mapdata.supportModel.Split('_');
                    for (int m = 0; m < param.Length; m++)
                    {
                        int value = int.Parse(param[m]);
                        if (i == value)
                        {
                            UIEventListener.Get(btn).onClick = OnClickBtn;
                            SetMask(btn, false);
                        }
                        else
                        {
                            UIEventListener.Get(btn).onClick = onClickUnenble;
                        }
                    }
                }
            }
            if (curBtn != null)
            {
                SetSelect(curBtn, true);
                SetMask(curBtn, false);
            }
        }
    }
Пример #10
0
 string GetPkModeDes(PLAYERPKMODEL pkmodel)
 {
     return(pkmodel.GetEnumDescription());
 }