Ejemplo n.º 1
0
        /// 实现相对阵营中 杀敌数 等级 助攻数更新
        public void UpdatePlayerInfo(IntPtr recordInfo, int nPtrLen)
        {
            IntPtrVaArgParseHelper   helper = new IntPtrVaArgParseHelper(recordInfo, nPtrLen);
            cmd_war_personInfo_count obj    = helper.get <cmd_war_personInfo_count>();

            for (int i = 0; i < obj.nCount; ++i)
            {
                cmd_war_personinfo data = helper.get <cmd_war_personinfo>();
                ulong uPdBid            = data.uPDBID;
                if (uPdBid == 0)
                {
                    continue;
                }
                int uCamp = data.nCamp;

                // 如果找到这个元素就清空重新把元素加入进去
                if (recordInfoArry.ContainsKey(uPdBid))
                {
                    // 找到的更新
                    WarPersonInfo tmpRecordInfo = recordInfoArry[uPdBid];
                    doPersonAliveAssistBrodcast(tmpRecordInfo, data.nAliveContAssist);
                    tmpRecordInfo.nLevel           = data.nLevel;
                    tmpRecordInfo.nID              = data.uID;
                    tmpRecordInfo.nKillNum         = data.nKillNum;
                    tmpRecordInfo.nDeadNum         = data.nDeadNum;
                    tmpRecordInfo.nAssists         = data.nAssists;
                    tmpRecordInfo.nMobaWarMoney    = data.nKillMonsterNum;
                    tmpRecordInfo.bIsHero          = data.isProtag;
                    tmpRecordInfo.nAliveContAssist = data.nAliveContAssist;
                    tmpRecordInfo.nDestroyTower    = data.nDestroyTower;
                    if (tmpRecordInfo.nSummerIconID <= 0)
                    {
                        tmpRecordInfo.nSummerIconID = data.nSummerIconID;
                        tmpRecordInfo.sSummerDesc   = data.szSummerDesc;
                    }

                    recordInfoArry[uPdBid] = tmpRecordInfo;
                }
                else
                {
                    WarPersonInfo warPersonInfo = new WarPersonInfo();
                    FillWarPersonInfo(ref warPersonInfo, data);
                    recordInfoArry.Add(data.uPDBID, warPersonInfo);
                }
            }
            if (this.IsWarRecordTableVisible == true)
            {
                UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_RECORDTABLE_FIGHTING_UPDATERECORDINFO, null);
            }

            if (m_bUpdateTeamInfo)
            {
                UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_TEAMMATEINFO_UPDATETEAMINFO, null);
            }

            UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_WAR_UPDATEPLAYERINFO, null);
        }
Ejemplo n.º 2
0
    // 当刚登陆进来时设置左右两边的召唤师技能信息
    public void SetSummonerPicLogin(IntPtr ptrParam, int nPtrLen)
    {
        IntPtrVaArgParseHelper   helper = new IntPtrVaArgParseHelper(ptrParam, nPtrLen);
        cmd_war_personInfo_count obj    = helper.get <cmd_war_personInfo_count>();

        for (int i = 0; i < obj.nCount; ++i)
        {
            cmd_Summoner_Skill_Change data = helper.get <cmd_Summoner_Skill_Change>();

            if (data.nPos >= 10)
            {
                continue;
            }
            showSummonerSkillInRoom(data.nCamp, data.nPos, data.nSummonerSkill[0], data.nSummonerSkill[1]);
        }
    }
Ejemplo n.º 3
0
        /// <summary>
        /// 更新阵营玩家
        /// </summary>
        /// <param name="ptrParam"></param>
        /// <param name="nLen"></param>
        public void UpdateCampPlayer(IntPtr ptrParam, int nLen)
        {
            if (StageManager.Instance.CurPermissionState != EStage_PermissionState.ESPS_OB)
            {
                return;
            }

            if (StageManager.Instance.CurSubState != EStage_SubState.ESSS_WAR)
            {
                return;
            }

            IntPtrVaArgParseHelper   helper   = new IntPtrVaArgParseHelper(ptrParam, nLen);
            cmd_war_personInfo_count cmdCount = helper.get <cmd_war_personInfo_count>();

            for (int i = 0; i < cmdCount.nCount; ++i)
            {
                cmd_war_personinfo data = helper.get <cmd_war_personinfo>();

                if (data.uID < 1)
                {
                    continue;
                }

                if (!m_PlayerEntitiesMap.ContainsKey(data.nCamp))
                {
                    m_PlayerEntitiesMap.Add(data.nCamp, new List <int>());
                }

                if (!m_PlayerEntitiesMap[data.nCamp].Contains(data.uID))
                {
                    m_PlayerEntitiesMap[data.nCamp].Add(data.uID);
                }

                if (!m_PlayerEntitiesList.Contains(data.uID))
                {
                    m_PlayerEntitiesList.Add(data.uID);
                }
            }
        }