Beispiel #1
0
        protected bool FillWarPersonInfo(ref WarPersonInfo warPersonInfo, cmd_war_personinfo recordInfo)
        {
            warPersonInfo.nHeroId          = recordInfo.nHeroID;
            warPersonInfo.nCamp            = recordInfo.nCamp;
            warPersonInfo.nLevel           = recordInfo.nLevel;
            warPersonInfo.nID              = recordInfo.uID;
            warPersonInfo.nKillNum         = recordInfo.nKillNum;
            warPersonInfo.nIndex           = GetAlwaysMyTeamLeftIndex(recordInfo.nIndex, recordInfo.nCamp);
            warPersonInfo.nDeadNum         = recordInfo.nDeadNum;
            warPersonInfo.nAssists         = recordInfo.nAssists;
            warPersonInfo.nMobaWarMoney    = recordInfo.nKillMonsterNum;
            warPersonInfo.uPDBID           = recordInfo.uPDBID;
            warPersonInfo.playerName       = recordInfo.szName;
            warPersonInfo.bIsHero          = recordInfo.isProtag;
            warPersonInfo.bIsAI            = recordInfo.nIsAi > 0;
            warPersonInfo.nSummerIconID    = recordInfo.nSummerIconID;
            warPersonInfo.sSummerDesc      = recordInfo.szSummerDesc;
            warPersonInfo.nAliveContAssist = recordInfo.nAliveContAssist;
            warPersonInfo.nSkinID          = recordInfo.nSkinID;
            warPersonInfo.nSex             = recordInfo.nSex;
            warPersonInfo.nPlayerType      = recordInfo.nPlayerType;
            warPersonInfo.nDestroyTower    = recordInfo.nDestroyTower;

            return(true);
        }
Beispiel #2
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);
        }
Beispiel #3
0
        private void doPersonAliveAssistBrodcast(WarPersonInfo info, int nUpdateAliveAssist)
        {
            if (nUpdateAliveAssist <= 0 || info.nAliveContAssist >= nUpdateAliveAssist)
            {
                return;
            }

            string sDesc       = null;
            bool   bChatShow   = false;
            int    nSoundID    = 0;
            int    nAssistType = 0;

            if (nUpdateAliveAssist == 5 || nUpdateAliveAssist == 10)
            {
                nSoundID    = (int)WarKillSoundType.WKST_SELFCONTINUOUSASSIST + nUpdateAliveAssist / 5 - 1;
                sDesc       = "连续助攻" + nUpdateAliveAssist + "次!";
                nAssistType = (int)BroadcastType.EMBT_ALIVEASSIST_2;
                if (info.nID != EntityFactory.MainHeroID)
                {
                    return;
                }
            }
            else if ((nUpdateAliveAssist - 15) % 5 == 0)
            {
                nSoundID    = (int)WarKillSoundType.WKST_SELFGODLIKEASSIST;
                sDesc       = "已完成了神助攻";
                nAssistType = (int)BroadcastType.EMBT_ALIVEASSIST_1;
                bChatShow   = true;
            }
            else
            {
                return;
            }

            PlayerAliveAssistData data = new PlayerAliveAssistData();

            data.nHeroID      = info.nHeroId;
            data.nPlayerName  = info.playerName;
            data.szDesc       = sDesc;
            data.bChatShow    = bChatShow;
            data.nSoundID     = nSoundID;
            data.nAssistType  = nAssistType;
            data.nAssistCount = nUpdateAliveAssist;
            data.bSameCamp    = EntityFactory.MainHeroView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_CAMP) == info.nCamp;
            UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_WARBROADCASTMESSAGEMGR_ALIVEASSIST, data);
        }