Exemple #1
0
    /// <summary>
    /// 队伍成员信息改变
    /// </summary>
    protected void S2C_TeamMemberUpdate(Pt _info)
    {
        //Debug.Log("S2C_TeamMemberUpdate");
        pt_team_member_chg_d023 msg = _info as pt_team_member_chg_d023;

        if (msg != null)
        {
            for (int i = 0; i < msg.team_member_list.Count; i++)
            {
                int id = (int)msg.team_member_list[i].uid;
                if (teammatesDic.ContainsKey(id))
                {
                    TeamMenberInfo info = teammatesDic[id] as TeamMenberInfo;
                    if (info != null)
                    {
                        info.SetBaseInfo(msg.team_member_list[i]);
                    }
                }
                else
                {
                    TeamMenberInfo info = new TeamMenberInfo(msg.team_member_list[i]);
//					if((int)info.baseInfo.uid == GameCenter.mainPlayerMng.MainPlayerInfo.ServerInstanceID)
//						continue;//排除自己
                    teammatesDic[(int)info.baseInfo.uid] = info;
                    UpdateTeammateColor((int)info.baseInfo.uid, true);//修改颜色
                    if (onTeammateUpdateEvent != null)
                    {
                        onTeammateUpdateEvent();
                    }
                }
            }
        }
    }
Exemple #2
0
    protected int SortMountInfo(MountRef reward1, MountRef reward2)
    {
        int state1 = 0;
        int state2 = 0;

        //已经拥有
        if (mountSkinList.ContainsKey(reward1.mountId))
        {
            state1 = 1;
        }

        //已经拥有
        if (mountSkinList.ContainsKey(reward2.mountId))
        {
            state2 = 1;
        }

        if (state1 < state2)
        {
            return(1);
        }
        if (state1 > state2)
        {
            return(-1);
        }
        if (reward1.level > reward2.level)//状态相同按ID排序
        {
            return(1);
        }
        if (reward1.level < reward2.level)
        {
            return(-1);
        }
        return(0);
    }
Exemple #3
0
 public void Update(BuffInfo _buff, int _buffID, int _id)
 {
     if (!isAlive)
     {
         return;        //如果怪物已经死亡,拒绝后台的状态通知
     }
     if (_buff == null) //删buff
     {
         if (_id == serverData.serverInstanceID && buffList.ContainsKey(_buffID))
         {
             if (OnBuffUpdate != null)
             {
                 OnBuffUpdate(_buffID, false);
             }
             buffList.Remove(_buffID);
         }
     }
     else//加buff
     {
         if (buffList.ContainsKey(_buff.BuffTypeID))
         {
             if (OnBuffUpdate != null)
             {
                 OnBuffUpdate(_buff.BuffTypeID, false);
                 buffList.Remove(_buff.BuffTypeID);
             }
         }
         buffList[_buff.BuffTypeID] = _buff;
         if (OnBuffUpdate != null)
         {
             OnBuffUpdate(_buff.BuffTypeID, true);
         }
     }
 }
Exemple #4
0
 /// <summary>
 /// 第一次开窗时调用  by吴江  应该每次开窗都要调用呀
 /// </summary>
 protected virtual void Init()
 {
     if (subWndDictionary.ContainsKey(initSubGUIType))
     {
         curSubGUIType = SwitchToSubWnd(initSubGUIType);
     }
 }
Exemple #5
0
 void ShowMountInfo()
 {
     //显示幻兽信息
     if (MountRefDate != null)
     {
         int         id = MountRefDate.mountId;
         FDictionary mountSkinInfoDic = GameCenter.newMountMng.mountSkinList;
         nameLab.text = MountRefDate.mountName;
         if (item != null)
         {
             item.FillInfo(new EquipmentInfo(MountRefDate.itemID, EquipmentBelongTo.PREVIEW));
             item.itemName.gameObject.SetActive(false);
             if (item.itemIcon.GetComponent <UISpriteEx>() != null)
             {
                 item.itemIcon.GetComponent <UISpriteEx>().IsGray = UISpriteEx.ColorGray.normal;
             }
             if (!mountSkinInfoDic.ContainsKey(id))
             {
                 if (item.itemIcon.GetComponent <UISpriteEx>() != null)
                 {
                     item.itemIcon.GetComponent <UISpriteEx>().IsGray = UISpriteEx.ColorGray.Gray;
                 }
             }
             else
             {
                 //MountInfo skin = mountSkinInfoDic[id] as MountInfo;
             }
         }
         if (mountSkinInfoDic.ContainsKey(id))//该皮肤玩家已经拥有
         {
             MountInfo info = mountSkinInfoDic[id] as MountInfo;
             if (info.SkinRemainTime != 0)//限时
             {
                 timer.StartIntervalTimer(info.SkinRemainTime);
                 timer.onTimeOut = (x) =>
                 {
                     timeLab.text = ConfigMng.Instance.GetUItext(84);
                 };
             }
             else//这个幻兽是永久拥有的
             {
                 timeLab.gameObject.SetActive(false);
             }
             return;
         }
         timeLab.text = ConfigMng.Instance.GetUItext(84);
     }
 }
Exemple #6
0
 void CreateAnimal()
 {
     int id = GameCenter.mercenaryMng.curPetId;   
     int index = 0;
     foreach (MercenaryInfo item in mercenaryInfoList.Values)
     {
         if (!singleSpritAnimalList.ContainsKey(item.ConfigId))
         {
             singleSpritAnimalList[item.ConfigId] = SingleSpritAnimal.CeateNew(animaListParent, index);
         }
         SingleSpritAnimal animal = singleSpritAnimalList[item.ConfigId] as SingleSpritAnimal;
         animal.gameObject.SetActive(true);
         animal.transform.localPosition = new Vector3(0, -index * 110, 0);
         animal.SetInfo(item);
         UIEventListener.Get(animal.gameObject).onClick -= OnClickSingleAnimal;
         UIEventListener.Get(animal.gameObject).onClick += OnClickSingleAnimal;
         index++;
     }
     if (id != MercenaryMng.noPet)
     {
         SingleSpritAnimal animal = singleSpritAnimalList[id] as SingleSpritAnimal;
         if (animal != null)
         {
             UIToggle tog = animal.GetComponent<UIToggle>();
             if (tog != null) tog.value = true;
         }
     }
 }
    /// <summary>
    /// 刷新总生命值
    /// </summary>
    void RefreshTotalLife()
    {
        for (int i = 0; i < togList.Count; i++)
        {
            AchievementTogUI togUI = togList[i].GetComponent <AchievementTogUI>();
            if (togUI != null && achieveTypeDic.ContainsKey(i + 1))
            {
                togUI.SetTogData(achieveTypeDic[i + 1] as AchieveTypeRef, i);
            }
        }
        int totalNum = 0;

        foreach (int data in AchieveNumDic.Values)
        {
            totalNum += data;
        }
        if (currNum != null)
        {
            currNum.text = (totalNum * 1000).ToString();
        }
        if (progressSlider != null)
        {
            progressSlider.value = (float)(totalNum * 1000) / 75000;
        }
    }
Exemple #8
0
    protected void OnDeleteObj(ObjectType _type, int _instanceID)
    {
        switch (_type)
        {
        case ObjectType.Player:
            break;

        case ObjectType.MOB:
            if (mobPointDic.ContainsKey(_instanceID))
            {
                Destroy(mobPointDic[_instanceID] as GameObject);
                mobPointDic.Remove(_instanceID);
            }
            break;

        case ObjectType.NPC:
            if (npcPointDic.ContainsKey(_instanceID))
            {
                Destroy(npcPointDic[_instanceID] as GameObject);
                npcPointDic.Remove(_instanceID);
            }
            break;

        case ObjectType.FlyPoint:
            break;

        default:
            break;
        }
    }
Exemple #9
0
 void CreateBook(int _index, NewPetSkillRef _skillRef)
 {
     if (_skillRef != null)
     {
         int id = _skillRef.id;
         if (!allSkill.ContainsKey(id))
         {
             SingleSkill item = SingleSkill.CeateNew(_index, id, parent);
             item.SkillRef = _skillRef;
             item.gameObject.SetActive(true);
             allSkill[id] = item;
             UIEventListener.Get(item.gameObject).onClick  -= OnClickDesBtn;
             UIEventListener.Get(item.gameObject).onClick  += OnClickDesBtn;
             UIEventListener.Get(item.gameObject).parameter = id;
         }
         else
         {
             SingleSkill skill = allSkill[id] as SingleSkill;
             skill.SkillRef = _skillRef;
             skill.gameObject.SetActive(true);
             UIEventListener.Get(skill.gameObject).onClick  -= OnClickDesBtn;
             UIEventListener.Get(skill.gameObject).onClick  += OnClickDesBtn;
             UIEventListener.Get(skill.gameObject).parameter = id;
         }
     }
 }
Exemple #10
0
    protected FDictionary GetFriendTypeDic()
    {
        FDictionary dic = new FDictionary();

        switch (friendType)
        {
        case 0:
            if (GameCenter.friendsMng.allFriendDic.ContainsKey(1))
            {
                dic = GameCenter.friendsMng.allFriendDic[1];
            }
            break;

        case 1:
            if (GameCenter.swornMng.data != null)
            {
                List <st.net.NetBase.brothers_list> list = GameCenter.swornMng.data.brothers;
                for (int i = 0, max = list.Count; i < max; i++)
                {
                    FriendsInfo info = new FriendsInfo(list[i]);
                    if (!dic.ContainsKey(info.configId) && info.configId != GameCenter.mainPlayerMng.MainPlayerInfo.ServerInstanceID)
                    {
                        dic[info.configId] = info;
                    }
                }
            }
            break;

        case 2:
            if (GameCenter.coupleMng.coupleData != null)
            {
                FriendsInfo info = new FriendsInfo(GameCenter.coupleMng.coupleData);
                dic[info.configId] = info;
            }
            break;

        case 3:
            if (GameCenter.friendsMng.allFriendDic.ContainsKey(4))
            {
                dic = GameCenter.friendsMng.allFriendDic[4];
            }
            break;

        case 4:
            if (GameCenter.friendsMng.allFriendDic.ContainsKey(3))
            {
                dic = GameCenter.friendsMng.allFriendDic[3];
            }
            break;

        default:
            if (GameCenter.friendsMng.allFriendDic.ContainsKey(1))
            {
                dic = GameCenter.friendsMng.allFriendDic[1];
            }
            break;
        }
        return(dic);
    }
Exemple #11
0
    public RelationCompareRef GetCompareRelation(SceneType _sceneType, int _camp1, int _camp2)
    {
        RelationKey key = new RelationKey(_sceneType, _camp1, _camp2);

        if (compareDic.ContainsKey(key))
        {
            return(compareDic[key] as RelationCompareRef);
        }
        return(null);
    }
Exemple #12
0
    /// <summary>
    /// 返回翅膀列表
    /// </summary>
    /// <param name="_msg"></param>
    protected void S2C_GetWingData(Pt _msg)
    {
        pt_wing_list_info_d417 msg = _msg as pt_wing_list_info_d417;

        if (msg != null)
        {
            for (int i = 0; i < msg.wing_list.Count; i++)
            {
                wing_base_info data = msg.wing_list[i];
                if (wingDic.ContainsKey((int)data.wing_id))
                {
                    WingInfo info = wingDic[(int)data.wing_id] as WingInfo;
                    if (info != null)
                    {
                        info.Update(data);
                    }
                }
                else
                {
                    WingInfo info = new WingInfo(data);
                    if (info.WingType != 2)
                    {
                        wingDic[info.WingId] = info;
                    }
                    if (info.WingState)
                    {
                        if (OnShowWingModel != null)
                        {
                            OnShowWingModel(info);
                        }
                        CurUseWingInfo = info;
                    }
                }
            }
            SetWingRedPoint();
        }
        //抛出升级后变化事件
        if (OnWingAdd != null)
        {
            OnWingAdd(null);
        }
    }
Exemple #13
0
    protected void OnAddNpcs()
    {
        List <NPC> npcs = GameCenter.curGameStage.GetNPCs();

        for (int i = 0; i < npcs.Count; i++)
        {
            NPC instance = npcs[i];
            if (npcPointDic.ContainsKey(instance.id) || instance.isDead)
            {
                continue;
            }
            GameObject myPoint = Instantiate(npcPointInstance) as GameObject;
            myPoint.transform.parent        = mapCtrl;
            myPoint.transform.localScale    = Vector3.one;
            myPoint.transform.localPosition = new Vector3(instance.curSector.c * Mathf.PI, instance.curSector.r * Mathf.PI, 0);
            SmartActorMapPoint p = myPoint.AddComponent <SmartActorMapPoint>();
            p.SetTarget(instance);
            npcPointDic.Add(instance.id, myPoint);
        }
    }
Exemple #14
0
    /// <summary>
    /// 獲取坐騎
    /// </summary>
    protected void S2C_GetMountListInfo(Pt _pt)
    {
        pt_ret_ride_info_e111 msg = _pt as pt_ret_ride_info_e111;

        if (msg != null)
        {
            for (int i = 0; i < msg.ride_list.Count; i++)
            {
                int id = msg.ride_list[i].ride_id;
                //Debug.Log("坐骑id : " + msg.ride_list[i].ride_id + " , 状态ride_state:" + msg.ride_list[i].ride_state + "  lev : " + msg.ride_lev);
                if (mountInfoList.ContainsKey(id))
                {
                    MountInfo info = mountInfoList[id] as MountInfo;
                    info.Update(msg.ride_list[i]);
                }
                else
                {
                    mountInfoList[id] = new MountInfo(new MountData(msg.ride_list[i], msg.ride_lev), GameCenter.mainPlayerMng.MainPlayerInfo);
                    if (OnGetNewMountUpdate != null && curMountInfo == null)
                    {
                        OnGetNewMountUpdate(mountInfoList[id] as MountInfo, ModelType.MOUNT);
                    }
                }
                if (msg.ride_list[i].ride_state > 0 && (rideType != id || state != msg.ride_list[i].ride_state))
                {
                    rideType = id;
                    state    = msg.ride_list[i].ride_state;
                    MountUpdate();
                }
            }
            if (rideType == 0 && msg.ride_list.Count > 0)//默认坐骑为最后一个
            {
                rideType = msg.ride_list[msg.ride_list.Count - 1].ride_id;
                state    = msg.ride_list[msg.ride_list.Count - 1].ride_state;
                MountUpdate();
            }
            CurLev = msg.ride_lev;
            SetRedRemind();
        }
        //if (OnMountListUpdate != null) OnMountListUpdate();
    }
Exemple #15
0
 public int GetPlayerLastLoginTime(int _serverInstanceID)
 {
     if (loginPlayerDic.ContainsKey(_serverInstanceID))
     {
         PlayerBaseInfo info = loginPlayerDic[_serverInstanceID] as PlayerBaseInfo;
         if (info != null)
         {
             return(info.GetLastLoginTime);
         }
     }
     Debug.LogError("玩家ID:" + _serverInstanceID + ",GetLastLoginTime获取失败!");
     return(0);
 }
Exemple #16
0
    int GetAllItemNum()
    {
        int num = 0;

        foreach (RewardGroupRef data in rewardDic.Values)
        {
            for (int i = 0; i < data.memberId.Count; i++)
            {
                if (rewardMemberDic.ContainsKey(data.memberId[i]))
                {
                    RewardGroupMemberRef rewardGroupRef = rewardMemberDic[data.memberId[i]] as RewardGroupMemberRef;
                    if (rewardGroupRef != null)
                    {
                        for (int j = 0; j < rewardGroupRef.item.Count; j++)
                        {
                            num++;
                        }
                    }
                }
            }
        }
        return(num);
    }
Exemple #17
0
 /// <summary>
 /// 创建链式特效(唯一) by吴江
 /// </summary>
 /// <param name="_tarA"></param>
 /// <param name="_tarB"></param>
 /// <param name="_effectName"></param>
 public void CastLineEffect(Actor _tarA, Actor _tarB, string _effectName, float _speed = 1.0f)
 {
     if (lineEffectDic.ContainsKey(_effectName))
     {
         Destroy(lineEffectDic[_effectName] as GameObject);
         lineEffectDic.Remove(_effectName);
     }
     if (_tarA == null || _tarB == null)
     {
         return;
     }
     AssetMng.GetEffectInstance(_effectName, (x) =>
     {
         lineEffectDic[_effectName] = x;
         LightningEmitter le        = x.GetComponent <LightningEmitter>();
         if (le != null)
         {
             le.Target1   = _tarA.HitPoint;
             le.Target2   = _tarB.HitPoint;
             le.animSpeed = _speed;
         }
     });
 }
Exemple #18
0
    /// <summary>
    /// 获取路径最近的怪物
    /// </summary>
    /// <param name="_gameStage"></param>
    /// <param name="_player"></param>
    /// <param name="_needAlive"></param>
    /// <returns></returns>
    public static Monster GetClosestMob(this GameStage _gameStage, SmartActor _player, ref float _distance)
    {
        List <Monster> mobs         = _gameStage.GetMobs();
        FDictionary    distanceDic  = new FDictionary();
        FDictionary    mobDic       = new FDictionary();
        int            selfCamp     = _player.Camp;
        SceneType      sceneType    = GameCenter.curGameStage.SceneType;
        Vector3        selfPosition = _player.transform.position;


        for (int i = 0; i < mobs.Count; i++)
        {
            Monster mob = mobs[i];
            if (mob.isDummy || !mob.IsShowing || mob.isDead)
            {
                continue;
            }
            if (mob.gameObject != null && !mob.isDead && !mob.IsActor &&
                ConfigMng.Instance.GetRelationType(selfCamp, mob.Camp, sceneType) == RelationType.AUTOMATEDATTACKS)
            {
                Vector3[] path = GameStageUtility.StartPath(selfPosition, mob.transform.position);
                if (path != null)
                {
                    if (path.Length != 2)
                    {
                        distanceDic.Add(mob.id, path.CountPathDistance());//距离计算方法改变
                    }
                    else
                    {
                        distanceDic.Add(mob.id, Vector3.Distance(selfPosition, mob.transform.position));
                    }
                    mobDic.Add(mob.id, mob);
                }
            }
        }
        int   closestOne = -1;
        float distance   = -1;

        foreach (int id in distanceDic.Keys)
        {
            if (distance < 0 || distance >= (float)distanceDic[id])
            {
                closestOne = id;
                distance   = (float)distanceDic[id];
                _distance  = distance;
            }
        }
        return(mobDic.ContainsKey(closestOne) ? mobDic[closestOne] as Monster : null);
    }
Exemple #19
0
    /// <summary>
    /// 选择合成的技能书
    /// </summary>
    void ChooseBookToCompose()
    {
        ItemUI item = composeBookBtn.GetComponent <ItemUI>();

        if (item == null)
        {
            return;
        }

        if (item.EQInfo == null || item.EQInfo != GameCenter.mercenaryMng.seleteEquip)
        {
            item.FillInfo(GameCenter.mercenaryMng.seleteEquip);

            for (int i = 0; i < choosedBookInMat.Count; i++)
            {
                if (!bookInBag.ContainsKey(choosedBookInMat[i]))
                {
                    choosedPetSkill.Add(choosedBookInMat[i]);
                }
            }
            choosedBookInMat.Clear();
        }
        ShowComposeUi();
    }
Exemple #20
0
    /// <summary>
    /// 获取路径最近指定关系随从 by吴江
    /// </summary>
    /// <param name="_gameStage"></param>
    /// <param name="_player"></param>
    /// <param name="_needAlive"></param>
    /// <returns></returns>
    public static OtherEntourage GetClosestEntourage(this GameStage _gameStage, SmartActor _player, RelationType _relationType, ref float _distance)
    {
        List <OtherEntourage> opcs        = _gameStage.GetOtherEntourages();
        FDictionary           distanceDic = new FDictionary();
        FDictionary           opcDic      = new FDictionary();
        int       selfCamp     = _player.Camp;
        SceneType sceneType    = GameCenter.curGameStage.SceneType;
        Vector3   selfPosition = _player.transform.position;

        for (int i = 0; i < opcs.Count; i++)
        {
            OtherEntourage opc = opcs[i];
            if (opc.isDummy || !opc.IsShowing)
            {
                continue;
            }
            if (opc.gameObject != null && !opc.isDead && !opc.IsActor &&
                ConfigMng.Instance.GetRelationType(selfCamp, opc.Camp, sceneType) == _relationType)
            {
                Vector3[] path = GameStageUtility.StartPath(selfPosition, opc.transform.position);
                if (path != null)
                {
                    if (path.Length != 2)
                    {
                        distanceDic.Add(opc.id, path.CountPathDistance());//距离计算方法改变
                    }
                    else
                    {
                        distanceDic.Add(opc.id, Vector3.Distance(selfPosition, opc.transform.position));
                    }
                    opcDic.Add(opc.id, opc);
                }
            }
        }
        int   closestOne = -1;
        float distance   = -1;

        foreach (int id in distanceDic.Keys)
        {
            if (distance < 0 || distance >= (float)distanceDic[id])
            {
                closestOne = id;
                distance   = (float)distanceDic[id];
                _distance  = distance;
            }
        }
        return(opcDic.ContainsKey(closestOne) ? opcDic[closestOne] as OtherEntourage : null);
    }
Exemple #21
0
    protected void S2C_ReplyBoxData(Pt _msg)
    {
        //Debug.Log("S2C_ReplyBoxData");
        pt_reply_royal_box_list_d941 msg = _msg as pt_reply_royal_box_list_d941;

        if (msg != null)
        {
            royalTreasureDic.Clear();
            restActiveTimes = (int)msg.rest_acc_times;
            isOpeningBox    = false;
            for (int i = 0; i < msg.box_list.Count; i++)
            {
                royal_box_info data = msg.box_list[i];
                //Debug.Log(ConfigMng.Instance.GetRoyalBoxRef((int)data.type).boxItemID);
                if (data.active == 1)//当前有一个宝箱正在开启
                {
                    //Debug.Log("已经开启剩余时间=" + data.rest_time);
                    timeGap = Time.realtimeSinceStartup;
                    if (data.rest_time > 0.00)
                    {
                        isOpeningBox = true;
                    }
                    RoyalBoxRef royalBoxRef = ConfigMng.Instance.GetRoyalBoxRef((int)data.type);
                    //发送消息推送(只发送一次,就在刚开启的时候发送)
                    if (royalBoxRef != null && data.rest_time == royalBoxRef.time)
                    {
                        DateTime newServerTime = GameCenter.instance.CurServerTime;
                        DateTime endTime       = newServerTime.AddSeconds((int)data.rest_time);
                        string   time          = string.Format("{0:D2}:{1:D2}:{2:D2}", endTime.Hour, endTime.Minute, endTime.Second);
                        GameCenter.messageMng.SendPushInfo(2, 1, time);
                    }
                }
                if (!royalTreasureDic.ContainsKey(data.id))
                {
                    RoyalTreaureData royalData = new RoyalTreaureData(data);
                    royalTreasureDic[data.id] = royalData;
                }
                //if(royalTreasureDic.Count>=4)//宝箱位只有4个超过4个提示宝箱格已满
                //{
                //    GameCenter.messageMng.AddClientMsg(486);
                //}
            }
        }
        if (OnRoyalBoxUpdate != null)
        {
            OnRoyalBoxUpdate();
        }
    }
Exemple #22
0
    /// <summary>
    /// 获取路径最近的场景物品
    /// </summary>
    /// <param name="_gameStage"></param>
    /// <param name="_player"></param>
    /// <param name="_needAlive"></param>
    /// <returns></returns>
    public static SceneItem GetClosestSceneItem(this GameStage _gameStage, PlayerBase _player)
    {
        List <SceneItem> sceneItems  = _gameStage.GetSceneItems();
        FDictionary      distanceDic = new FDictionary();
        FDictionary      sceneDic    = new FDictionary();
        //int selfCamp = _player.Camp;
        //SceneType sceneType = GameCenter.curGameStage.SceneType;
        Vector3 selfPosition = _player.transform.position;

        Debug.Log(sceneItems.Count);
        for (int i = 0; i < sceneItems.Count; i++)
        {
            SceneItem sceneItem = sceneItems[i];
            Debug.Log(sceneItem.isDummy + ":" + sceneItem.IsShowing);
            //    if (sceneItem.isDummy || !sceneItem.IsShowing) continue;
            if (sceneItem.gameObject != null)
            {
                Vector3[] path = GameStageUtility.StartPath(selfPosition, sceneItem.transform.position);
                if (path != null)
                {
                    if (path.Length != 2)
                    {
                        distanceDic.Add(sceneItem.id, path.CountPathDistance());//距离计算方法改变
                    }
                    else
                    {
                        distanceDic.Add(sceneItem.id, Vector3.Distance(selfPosition, sceneItem.transform.position));
                    }
                    sceneDic.Add(sceneItem.id, sceneItem);
                }
            }
        }
        int   closestOne = -1;
        float distance   = -1;

        foreach (int id in distanceDic.Keys)
        {
            if (distance < 0 || distance >= (float)distanceDic[id])
            {
                closestOne = id;
                Debug.Log(closestOne);
                distance = (float)distanceDic[id];
            }
        }
        return(sceneDic.ContainsKey(closestOne) ? sceneDic[closestOne] as SceneItem : null);
    }
Exemple #23
0
    /// <summary>
    /// 获取路径最近的怪物
    /// </summary>
    /// <param name="_gameStage"></param>
    /// <param name="_player"></param>
    /// <param name="_needAlive"></param>
    /// <returns></returns>
    public static SmartActor GetClosestSmartActor(PlayerBase _player, List <SmartActor> smartActors, RelationType _relationType, ref float _instance)
    {
        List <SmartActor> smActors    = smartActors;
        FDictionary       distanceDic = new FDictionary();
        FDictionary       mobDic      = new FDictionary();


        int       selfCamp     = _player.Camp;
        SceneType sceneType    = GameCenter.curGameStage.SceneType;
        Vector3   selfPosition = _player.transform.position;

        for (int i = 0; i < smActors.Count; i++)
        {
            SmartActor smActor = smActors[i];
            if (smActor.gameObject != null && !smActor.isDead && !smActor.IsActor &&
                ConfigMng.Instance.GetRelationType(selfCamp, smActor.Camp, sceneType) == _relationType)
            {
                Vector3[] path = GameStageUtility.StartPath(selfPosition, smActor.transform.position);
                if (path != null)
                {
                    if (path.Length != 2)
                    {
                        distanceDic.Add(smActor.id, path.CountPathDistance());//距离计算方法改变
                    }
                    else
                    {
                        distanceDic.Add(smActor.id, Vector3.Distance(selfPosition, smActor.transform.position));
                    }
                    mobDic.Add(smActor.id, smActor);
                }
            }
        }
        int   closestOne = -1;
        float distance   = -1;

        foreach (int id in distanceDic.Keys)
        {
            if (distance < 0 || distance >= (float)distanceDic[id])
            {
                closestOne = id;
                distance   = (float)distanceDic[id];
            }
        }
        _instance = distance;
        return(mobDic.ContainsKey(closestOne) ? mobDic[closestOne] as SmartActor : null);
    }
Exemple #24
0
    /// <summary>
    /// 获取仙侣称号
    /// </summary>
    public void GeTTitleRef()
    {
        List <int>  allCoupleTitle    = ConfigMng.Instance.GetTitleListByType(23);
        FDictionary coupleOwnTitleDic = GameCenter.titleMng.TitleDictionary;

        //bool isOwnCoupleTitle = false;
        for (int i = 0, max = allCoupleTitle.Count; i < max; i++)
        {
            if (coupleOwnTitleDic.ContainsKey(allCoupleTitle[i]))
            {
                TitleInfo info = coupleOwnTitleDic[allCoupleTitle[i]] as TitleInfo;
                //Debug.Log(    " des     "      + info.Des + "       icon     " + info.IconName  + "   isoen : " + info.IsOwn);
                if (info.IsOwn)
                {
                    //isOwnCoupleTitle = true;
                    titleRef = ConfigMng.Instance.GetTitlesRef(allCoupleTitle[i]);
                    if (allCoupleTitle.Count > (i + 1))
                    {
                        nextTitleRef = ConfigMng.Instance.GetTitlesRef(allCoupleTitle[i + 1]);
                    }
                    else
                    {
                        nextTitleRef = null;
                    }
                }
            }
        }
        if (titleRef == null)
        {
            nextTitleRef = ConfigMng.Instance.GetTitlesRef(allCoupleTitle[0]);
        }

        //if (!isOwnCoupleTitle)
        //{
        //    titleRef = null;
        //    if (allCoupleTitle.Count > 0)
        //        nextTitleRef = ConfigMng.Instance.GetTitlesRef(allCoupleTitle[0]);
        //    else
        //        nextTitleRef = null;
        //}
        //if (_title == CoupleTitle.CURTITLE)
        //    return titleRef;
        //else
        //    return nextTitleRef;
    }
Exemple #25
0
    void ShowSkill()
    {
        List <uint> SkillList = curTargetInfo.CurPetInfo.SkillList;

        foreach (SingleLearnedSkill ui in petSkillList.Values)
        {
            ui.gameObject.SetActive(false);
        }
        if (grid != null)
        {
            grid.maxPerLine = SkillList.Count;
            SingleLearnedSkill skill = null;
            for (int i = 0, max = SkillList.Count; i < max; i++)
            {
                int id = (int)SkillList[i];
                if (!petSkillList.ContainsKey(id))
                {
                    if (singleSkill != null)
                    {
                        GameObject go = (GameObject)GameObject.Instantiate(singleSkill.gameObject);
                        go.transform.parent        = singleSkill.transform.parent;
                        go.transform.localPosition = Vector3.zero;
                        go.transform.localScale    = Vector3.one;
                        skill = go.GetComponent <SingleLearnedSkill>();
                        if (skill != null)
                        {
                            petSkillList[id] = skill;
                            skill.SkillRef   = ConfigMng.Instance.GetPetSkillRef((int)id);
                        }
                        go.SetActive(true);
                    }
                }
                else
                {
                    SingleLearnedSkill petskill = petSkillList[id] as SingleLearnedSkill;
                    petskill.SkillRef = ConfigMng.Instance.GetPetSkillRef((int)id);
                    petskill.transform.localPosition = new Vector3();
                    petskill.gameObject.SetActive(true);
                }
            }
            grid.repositionNow = true;
        }
    }
Exemple #26
0
    /// <summary>
    /// 获得已经达成成就的数量
    /// </summary>
    protected void S2C_AchievementReachNum(Pt _msg)
    {
        pt_update_achievement_reach_num_d766 msg = _msg as pt_update_achievement_reach_num_d766;

        if (msg != null)
        {
            achieveNumDic.Clear();
            for (int i = 0; i < msg.achievement_reach.Count; i++)
            {
                achievement_reach data = msg.achievement_reach[i];
                if (!achieveNumDic.ContainsKey(data.type))
                {
                    achieveNumDic[data.type] = data.amount;
                }
            }
        }
        if (OnGetAchievementNum != null)
        {
            OnGetAchievementNum();
        }
    }
Exemple #27
0
 //每页展示四个
 void ShowSkin()
 {
     foreach (SkinItem skin in skinItemList.Values)
     {
         skin.gameObject.SetActive(false);
     }
     for (int i = 0, max = mountSkinList.Count; i < max; i++)
     {
         int id = mountSkinList[i].mountId;
         if (!skinItemList.ContainsKey(id))
         {
             if (parent != null)
             {
                 SkinItem item = SkinItem.CeateNew(i, id, parent);
                 if (item != null)
                 {
                     item.gameObject.SetActive(true);
                     item.transform.localPosition = new Vector3((-236 + (i / 9) * 428.6f) + (i % 3) * 139, 117 - ((i - (i / 9) * 9) / 3) * 125);
                     item.MountRefDate            = ConfigMng.Instance.GetMountRef(id);
                     skinItemList[id]             = item;
                     UIEventListener.Get(item.gameObject).onClick  -= OnChangeSkin;
                     UIEventListener.Get(item.gameObject).onClick  += OnChangeSkin;
                     UIEventListener.Get(item.gameObject).parameter = id;
                 }
             }
         }
         else
         {
             SkinItem skin = skinItemList[id] as SkinItem;
             skin.gameObject.SetActive(true);
             skin.transform.localPosition = new Vector3((-236 + (i / 9) * 428.6f) + (i % 3) * 139, 117 - ((i - (i / 9) * 9) / 3) * 125);
             skin.MountRefDate            = ConfigMng.Instance.GetMountRef(id);
             skinItemList[id]             = skin;
             UIEventListener.Get(skin.gameObject).onClick  -= OnChangeSkin;
             UIEventListener.Get(skin.gameObject).onClick  += OnChangeSkin;
             UIEventListener.Get(skin.gameObject).parameter = id;
         }
     }
     ShowPageBtn();
 }
Exemple #28
0
    /// <summary>
    /// 设置后台活动开启 by黄洪兴
    /// </summary>
    /// <param name="_type"></param>
    /// <param name="_isOpen"></param>
    public void SetServerActiveOpen(FunctionType _type, bool _isOpen)
    {
        FunctionDataInfo funcInfo = null;

        if (functionList.ContainsKey((int)_type))
        {
            funcInfo = functionList[(int)_type] as FunctionDataInfo;
            funcInfo.Update(_isOpen);
        }
        else
        {
            funcInfo = new FunctionDataInfo(_type, _isOpen, FunctionDataInfo.FunctionControlType.PROGRAMCONTROL);
            functionList[(int)_type] = funcInfo;
        }
        if (UpdateServerOpen != null && funcInfo != null)
        {
            UpdateServerOpen(funcInfo, _isOpen);
            //Debug.Log("后台活动开启更新");
        }
    }
Exemple #29
0
    /// <summary>
    /// 1 坐骑 2 幻化
    /// </summary>
    public List <MountRef> MountList(int type)
    {
        FDictionary mountTable = ConfigMng.Instance.MountRefTable;

        mountList.Clear();
        if (type == 1)
        {
            foreach (MountRef item in mountTable.Values)
            {
                if (item.kind == 1)
                {
                    if (!AllMountDic.ContainsKey(item.mountId))
                    {
                        AllMountDic[item.mountId] = new MountInfo(item);
                    }
                    mountList.Add(item);
                }
            }
            return(mountList);
        }
        else if (type == 2)
        {
            foreach (MountRef item in mountTable.Values)
            {
                if (item.kind == 2)
                {
                    if (!AllSkinDic.ContainsKey(item.mountId))
                    {
                        AllSkinDic[item.mountId] = new MountInfo(item);
                    }
                    mountList.Add(item);
                }
            }
            mountList.Sort(SortMountInfo);
            return(mountList);
        }
        return(mountList);
    }
Exemple #30
0
 /// <summary>
 /// 选择技能书到背包
 /// </summary>
 void OnClickChooseToBag(GameObject go)
 {
     if (GameCenter.mercenaryMng.choosedSkillId == 0)
     {
         BookItem bookitem = null;
         int      id       = (int)UIEventListener.Get(go.gameObject).parameter;
         if (bookByCopyAll.ContainsKey(id))
         {
             bookitem = bookByCopyAll[id] as BookItem;
             if (petSkillByCopyAll.ContainsKey(id))
             {
                 if (bookitem.chooseEx != null && bookitem.chooseEx.IsGray == UISpriteEx.ColorGray.normal)
                 {
                     GameCenter.mercenaryMng.choosedSkillId = id;
                     bookitem.chooseBtn.gameObject.SetActive(false);
                     bookitem.chooseYetBtn.gameObject.SetActive(true);
                     GameCenter.mercenaryMng.C2S_ReqAddBookToBag(id);
                 }
             }
         }
         ShowBook();
     }
 }