Beispiel #1
0
 public override void BuildPacket()
 {
     PushIntoStack(serverList.Length);
     foreach (ServerInfo serverInfo in serverList)
     {
         DataStruct ds = new DataStruct();
         ds.PushIntoStack(serverInfo.ID);
         ds.PushIntoStack(serverInfo.ServerName);
         ds.PushIntoStack(serverInfo.Status);
         ds.PushIntoStack(serverInfo.ServerUrl);
         ds.PushIntoStack(serverInfo.Weight);
         ds.PushIntoStack(serverInfo.TargetServer);
         PushIntoStack(ds);
     }
 }
Beispiel #2
0
        public override void BuildPacket()
        {
            PushIntoStack(generalName.ToNotNullString());
            PushIntoStack(careerID);
            PushIntoStack(userItemID.ToNotNullString());
            PushIntoStack(itemName.ToNotNullString());
            PushIntoStack(headID.ToNotNullString());
            PushIntoStack((short)openNum);
            PushIntoStack(enchantArray.Length);
            foreach (var enchant in enchantArray)
            {
                EnchantInfo enchantInfo = new ConfigCacheSet <EnchantInfo>().FindKey(enchant.EnchantID);
                DataStruct  dsItem      = new DataStruct();
                dsItem.PushIntoStack((short)enchant.Position);
                dsItem.PushIntoStack(enchant.UserEnchantID.ToNotNullString());
                dsItem.PushIntoStack(enchantInfo == null ? string.Empty : enchantInfo.EnchantName.ToNotNullString());
                dsItem.PushIntoStack(enchantInfo == null ? string.Empty : enchantInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack((short)enchant.EnchantLv);
                dsItem.PushIntoStack(enchantInfo == null ? (short)0 : (short)enchantInfo.ColorType);

                this.PushIntoStack(dsItem);
            }
        }
Beispiel #3
0
        public override void BuildPacket()
        {
            this.PushIntoStack(_sparePart.Propertys.Count);
            for (int i = 0; i < _sparePart.Propertys.Count; i++)
            {
                var   property = _sparePart.Propertys[i];
                short proPos   = MathUtils.Addition(property.ValueIndex, (short)1, short.MaxValue);
                short isEnable = 0;
                if (property.IsEnable)
                {
                    isEnable = 1;
                }

                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(property.AbilityType.ToShort());
                dsItem.PushIntoStack(property.Num.ToNotNullString());
                dsItem.PushIntoStack(property.HitMinValue.ToNotNullString());
                dsItem.PushIntoStack(property.HitMaxValue.ToNotNullString());
                dsItem.PushIntoStack(isEnable);
                dsItem.PushIntoStack(proPos);

                this.PushIntoStack(dsItem);
            }
        }
Beispiel #4
0
        public override void BuildPacket()
        {
            PushIntoStack(_itemInfo == null ? string.Empty : _itemInfo.ItemName.ToNotNullString());
            PushIntoStack(_itemInfo == null ? string.Empty : _itemInfo.HeadID.ToNotNullString());
            PushIntoStack(_itemInfo == null ? LanguageManager.GetLang().shortInt : (short)_itemInfo.QualityType);
            PushIntoStack(_userItem == null ? LanguageManager.GetLang().shortInt : _userItem.ItemLv);
            PushIntoStack(_demandLv);
            PushIntoStack(_userItem == null ? 0 : _strongMoney);
            PushIntoStack(_coldTime);
            PushIntoStack(_isStrong);

            string[] careerArray = _itemInfo == null ? new string[0] : _itemInfo.CareerRange.Split(',');
            PushIntoStack(careerArray.Length);
            foreach (string career in careerArray)
            {
                DataStruct ds         = new DataStruct();
                CareerInfo careerInfo = new ConfigCacheSet <CareerInfo>().FindKey(career);
                ds.PushIntoStack(careerInfo == null ? 0 : careerInfo.CareerID);
                ds.PushIntoStack(careerInfo == null ? string.Empty : careerInfo.CareerName.ToNotNullString());
                PushIntoStack(ds);
            }
            //当前属性
            PushIntoStack(_itemEquArray.Count);
            foreach (ItemEquAttrInfo equ in _itemEquArray)
            {
                int strengNum = 0;
                if (_userItem != null)
                {
                    strengNum = MathUtils.Addition(equ.BaseNum, (equ.IncreaseNum * _userItem.ItemLv), int.MaxValue);
                }
                DataStruct ds = new DataStruct();
                ds.PushIntoStack((int)equ.AttributeID);
                ds.PushIntoStack(strengNum);

                PushIntoStack(ds);
            }

            //下级别装备属性
            PushIntoStack(_itemEquArray.Count);
            foreach (ItemEquAttrInfo equ in _itemEquArray)
            {
                DataStruct dsDetail = new DataStruct();
                dsDetail.PushIntoStack((int)equ.AttributeID);
                if (_userItem != null)
                {
                    _stengBaseNum = MathUtils.Addition(equ.BaseNum, MathUtils.Addition(_userItem.ItemLv, (short)1, short.MaxValue) * equ.IncreaseNum, int.MaxValue);
                }
                dsDetail.PushIntoStack(_stengBaseNum);
                PushIntoStack(dsDetail);
            }

            PushIntoStack(_itemInfo == null ? string.Empty : _itemInfo.ItemDesc);
            //PushIntoStack(PropertyArray.Length);
            //foreach (SparePartProperty item in PropertyArray)
            //{
            //    DataStruct dsItem = new DataStruct();
            //    dsItem.PushIntoStack((int)item.AbilityType);
            //    dsItem.PushIntoStack(UserHelper.PropertyAbility(item.Num));

            //    this.PushIntoStack(dsItem);
            //}

            PushIntoStack(UserHelper.StrongEquPayPrice(Uid, _userItemId));
            PushIntoStack(_userItemId.ToNotNullString());
            PushIntoStack(_itemInfo == null ? string.Empty : _itemInfo.MaxHeadID);
            PushIntoStack(_userItem.ItemLv >= (GameConfigSet.CurrMaxLv * 3) ? 1 : 0);
            PushIntoStack(_userItem == null ? 0 : _tenTimesStrongMoney);
        }
Beispiel #5
0
        public override void BuildPacket()
        {
            int rankID = 0;

            this.PushIntoStack(userTaskList.Count);
            foreach (UserTask userTask in userTaskList)
            {
                SaveLog("任务ID:" + userTask.TaskID + ", 任务排行:" + MathUtils.Addition(rankID, 1));
                StoryTaskInfo taskInfo           = new ConfigCacheSet <StoryTaskInfo>().FindKey(userTask.TaskID);
                CityNpcInfo   reNpcInfo          = null;
                CityNpcInfo   deNpcInfo          = null;
                PlotInfo      plotInfo           = null;
                PlotNPCInfo   npcInfo            = null;
                ItemBaseInfo  itemInfo           = null;
                string[]      monsterList        = new string[0];
                string[]      monsterNumList     = new string[0];
                string[]      monsterCurrNumList = new string[0];
                if (taskInfo != null)
                {
                    reNpcInfo          = new ConfigCacheSet <CityNpcInfo>().FindKey(taskInfo.ReleaseNpcID);
                    deNpcInfo          = new ConfigCacheSet <CityNpcInfo>().FindKey(taskInfo.DeliveryNpcID);
                    plotInfo           = new ConfigCacheSet <PlotInfo>().FindKey(taskInfo.PlotID);
                    npcInfo            = new ConfigCacheSet <PlotNPCInfo>().FindKey(taskInfo.PlotNpcID);
                    itemInfo           = new ConfigCacheSet <ItemBaseInfo>().FindKey(taskInfo.TargetItemID);
                    monsterList        = taskInfo.TargetMonsterID.ToNotNullString().Split(new char[] { ',' });
                    monsterNumList     = taskInfo.TargetMonsterNum.ToNotNullString().Split(new char[] { ',' });
                    monsterCurrNumList = userTask.TaskTargetNum.ToNotNullString().Split(new char[] { ',' });
                }

                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(taskInfo == null ? 0 : taskInfo.TaskID);
                dsItem.PushIntoStack(taskInfo == null ? string.Empty : taskInfo.TaskName.ToNotNullString());
                dsItem.PushIntoStack(taskInfo == null ? LanguageManager.GetLang().shortInt : taskInfo.TaskLv);
                dsItem.PushIntoStack((short)userTask.TaskState);
                dsItem.PushIntoStack(taskInfo == null ? string.Empty : taskInfo.TaskDescp.ToNotNullString());
                dsItem.PushIntoStack(taskInfo == null ? 0 : taskInfo.ReleaseNpcID);
                dsItem.PushIntoStack(reNpcInfo == null ? string.Empty : reNpcInfo.NpcName.ToNotNullString());
                dsItem.PushIntoStack(taskInfo == null ? 0 : taskInfo.DeliveryNpcID);
                dsItem.PushIntoStack(deNpcInfo == null ? string.Empty : deNpcInfo.NpcName.ToNotNullString());
                dsItem.PushIntoStack(taskInfo == null ? LanguageManager.GetLang().shortInt : (short)taskInfo.TermsType);

                dsItem.PushIntoStack(plotInfo != null ? plotInfo.CityID : 0);
                dsItem.PushIntoStack(taskInfo == null ? 0 : taskInfo.PlotID);
                dsItem.PushIntoStack(plotInfo != null ? (short)plotInfo.PlotType : (short)0);
                dsItem.PushIntoStack(plotInfo != null ? plotInfo.PlotName.ToNotNullString() : string.Empty);
                dsItem.PushIntoStack(npcInfo == null ? string.Empty : npcInfo.NpcName.ToNotNullString());

                dsItem.PushIntoStack(monsterList.Length);
                for (int i = 0; i < monsterList.Length; i++)
                {
                    int         monsterID   = monsterList[i].ToInt();
                    int         monsterNum  = monsterNumList[i].ToInt();
                    int         currNum     = monsterCurrNumList.Length > i ? monsterCurrNumList[i].ToInt() : 0;
                    MonsterInfo monsterInfo = new ConfigCacheSet <MonsterInfo>().FindKey(monsterID);

                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(monsterInfo != null ? monsterInfo.GeneralName.ToNotNullString() : string.Empty);
                    dsItem1.PushIntoStack(monsterNum);
                    dsItem1.PushIntoStack(currNum);
                    dsItem.PushIntoStack(dsItem1);
                }

                dsItem.PushIntoStack(itemInfo != null ? itemInfo.ItemName.ToNotNullString() : string.Empty);
                dsItem.PushIntoStack(taskInfo == null ? 0 : taskInfo.TargetItemNum);
                dsItem.PushIntoStack(UserItemHelper.CheckItemNum(ContextUser.UserID, taskInfo == null ? 0 : taskInfo.TargetItemID));
                dsItem.PushIntoStack(taskInfo == null ? 0 : taskInfo.Experience);
                dsItem.PushIntoStack(taskInfo == null ? 0 : taskInfo.GameCoin);

                this.PushIntoStack(dsItem);
            }
        }
Beispiel #6
0
        public override void BuildPacket()
        {
            PushIntoStack(cityInfo == null ? string.Empty : cityInfo.CityName.ToNotNullString());
            PushIntoStack(gameUserArray.Count);
            foreach (GameUser user in gameUserArray)
            {
                UserGeneral uGeneral = UserGeneral.GetMainGeneral(user.UserID);
                string      HeadID   = string.Empty;
                if (uGeneral != null)
                {
                    CareerInfo careerInfo = new ShareCacheStruct <CareerInfo>().FindKey(uGeneral.CareerID);
                    HeadID = user.Sex ? careerInfo.HeadID2 : careerInfo.HeadID;
                }
                UserGuild userGuild = new ShareCacheStruct <UserGuild>().FindKey(user.MercenariesID);
                string    pictureID = string.Empty;

                //原因:排除月饼和双倍材料卡
                List <UserProps> propsArray = new PersonalCacheStruct <UserProps>().FindAll(user.UserID, u => u.PropType == 3 && u.ItemID != 5200 && u.ItemID != 7003);
                if (propsArray.Count > 0 && propsArray[0].DoRefresh() > 0)
                {
                    ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(propsArray[0].ItemID);
                    if (itemInfo != null)
                    {
                        pictureID = itemInfo.PictrueID;
                    }
                }
                else
                {
                    pictureID = string.Empty;
                }

                DataStruct ds = new DataStruct();
                ds.PushIntoStack(user.UserID.ToNotNullString());
                ds.PushIntoStack(user.NickName.ToNotNullString());
                ds.PushIntoStack(HeadID.ToNotNullString());
                ds.PushIntoStack(user.MercenariesID.ToNotNullString());
                ds.PushIntoStack(userGuild == null ? string.Empty : userGuild.GuildName.ToNotNullString());
                ds.PushIntoStack((short)user.UserStatus);
                ds.PushIntoStack(user.PointX);
                ds.PushIntoStack(user.PointY);
                ds.PushIntoStack(pictureID.ToNotNullString());
                ds.PushIntoStack(NoviceHelper.IsWingFestivalInfo(user.UserID) ? (short)1 : (short)0);
                ds.PushIntoStack(0);
                PushIntoStack(ds);
            }
        }
Beispiel #7
0
        public override void BuildPacket()
        {
            PushIntoStack(_itemInfo.HeadID.ToNotNullString());
            PushIntoStack(_itemInfo.ItemName.ToNotNullString());
            PushIntoStack((short)_useritem.ItemType);
            PushIntoStack((short)_itemInfo.QualityType);
            PushIntoStack((short)_itemInfo.QualityType);
            PushIntoStack(_useritem.ItemLv);
            PushIntoStack(demandLv);

            PushIntoStack(_itemEquArray.Count);
            foreach (ItemEquAttrInfo equ in _itemEquArray)
            {
                int strengNum = 0;
                if (equ != null)
                {
                    strengNum = MathUtils.Addition(equ.BaseNum, (equ.IncreaseNum * _useritem.ItemLv), int.MaxValue);
                }
                DataStruct ds = new DataStruct();
                ds.PushIntoStack(equ == null ? (short)0 : (short)equ.AttributeID);
                ds.PushIntoStack(equ == null ? 0 : strengNum);
                PushIntoStack(ds);
            }

            PushIntoStack(_careerList.Length);
            foreach (string career in _careerList)
            {
                DataStruct ds         = new DataStruct();
                CareerInfo careerInfo = new ConfigCacheSet <CareerInfo>().FindKey(career);
                ds.PushIntoStack(careerInfo == null ? (short)0 : (short)careerInfo.CareerID);
                ds.PushIntoStack(careerInfo == null ? string.Empty : careerInfo.CareerName.ToNotNullString());
                PushIntoStack(ds);
            }

            PushIntoStack(_salePrice);
            PushIntoStack(_itemInfo == null ? string.Empty : _itemInfo.ItemDesc.ToNotNullString());

            PushIntoStack(_itemSynthsisArray.Count);
            foreach (ItemSynthesisInfo synthesis in _itemSynthsisArray)
            {
                int          maxNum   = GetItemMaxNum(synthesis);
                ItemBaseInfo tempItem = new ConfigCacheSet <ItemBaseInfo>().FindKey(synthesis.SynthesisID);

                DataStruct ds = new DataStruct();
                ds.PushIntoStack(synthesis.SynthesisID);
                ds.PushIntoStack(tempItem != null ? tempItem.ItemName.ToNotNullString() : string.Empty);
                ds.PushIntoStack((short)synthesis.DemandNum);
                ds.PushIntoStack((short)maxNum);

                PushIntoStack(ds);
            }
            PushIntoStack(PropertyArray.Length);
            foreach (SparePartProperty item in PropertyArray)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack((int)item.AbilityType);
                dsItem.PushIntoStack(UserHelper.PropertyAbility(item.Num));

                PushIntoStack(dsItem);
            }
        }
Beispiel #8
0
        public override void BuildPacket()
        {
            PushIntoStack(_gameActiveList.Length);
            foreach (GameActive gameActive in _gameActiveList)
            {
                DateTime enableTime = DateTime.MinValue;
                DateTime endTime    = DateTime.MinValue;
                short    isEnable   = 0;
                RefEnableTime(gameActive, ref enableTime, ref endTime, ref isEnable);

                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(gameActive.ActiveId);
                dsItem.PushIntoStack(gameActive.ActiveName.ToNotNullString());
                dsItem.PushIntoStack(gameActive.ActiveType.ToShort());
                dsItem.PushIntoStack(enableTime.ToString("HH:mm").ToNotNullString());
                dsItem.PushIntoStack(endTime.ToString("HH:mm").ToNotNullString());
                dsItem.PushIntoStack(isEnable);
                dsItem.PushIntoStack(gameActive.BossLv);
                dsItem.PushIntoStack(gameActive.HeadID.ToNotNullString());
                dsItem.PushIntoStack(gameActive.Descption.ToNotNullString());
                dsItem.PushIntoStack(gameActive.ActiveStyle);
                dsItem.PushIntoStack(!string.IsNullOrEmpty(ContextUser.MercenariesID)
                                         ? ContextUser.MercenariesID
                                         : string.Empty);
                PushIntoStack(dsItem);
            }
        }
Beispiel #9
0
        public override void BuildPacket()
        {
            PushIntoStack(userPlotCombat.IsWin.ToShort());
            PushIntoStack(userPlotCombat.Experience);
            PushIntoStack(prizeItems.Count);
            foreach (PrizeItemInfo prizeItem in prizeItems)
            {
                SparePartInfo partInfo = new ConfigCacheSet <SparePartInfo>().FindKey(prizeItem.ItemID);
                DataStruct    dsItem   = new DataStruct();
                dsItem.PushIntoStack(partInfo == null ? string.Empty : partInfo.Name.ToNotNullString());
                dsItem.PushIntoStack(partInfo == null ? string.Empty : partInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack(partInfo == null ? (short)0 : partInfo.QualityType.ToShort());
                dsItem.PushIntoStack(prizeItem.Num);

                PushIntoStack(dsItem);
            }
            //攻方阵形
            PushIntoStack(combatProcessList.AttackList.Count);
            foreach (CombatEmbattle combatEmbattle in combatProcessList.AttackList)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(combatEmbattle.GeneralID);
                dsItem.PushIntoStack(combatEmbattle.GeneralName.ToNotNullString());
                dsItem.PushIntoStack(combatEmbattle.HeadID.ToNotNullString());
                dsItem.PushIntoStack(combatEmbattle.Position.ToShort());
                dsItem.PushIntoStack(combatEmbattle.LiveNum);
                dsItem.PushIntoStack(combatEmbattle.LiveMaxNum);
                dsItem.PushIntoStack(combatEmbattle.MomentumNum);
                dsItem.PushIntoStack(combatEmbattle.MaxMomentumNum);
                dsItem.PushIntoStack(combatEmbattle.AbilityID);
                dsItem.PushIntoStack(combatEmbattle.GeneralLv);
                dsItem.PushIntoStack(combatEmbattle.IsWait ? (short)1 : (short)0);
                PushIntoStack(dsItem);
            }
            //防方阵形
            PushIntoStack(combatProcessList.DefenseList.Count);
            foreach (CombatEmbattle combatEmbattle in combatProcessList.DefenseList)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(combatEmbattle.GeneralID);
                dsItem.PushIntoStack(combatEmbattle.GeneralName.ToNotNullString());
                dsItem.PushIntoStack(combatEmbattle.HeadID.ToNotNullString());
                dsItem.PushIntoStack(combatEmbattle.Position.ToShort());
                dsItem.PushIntoStack(combatEmbattle.LiveNum);
                dsItem.PushIntoStack(combatEmbattle.LiveMaxNum);
                dsItem.PushIntoStack(combatEmbattle.MomentumNum);
                dsItem.PushIntoStack(combatEmbattle.MaxMomentumNum);
                dsItem.PushIntoStack(combatEmbattle.AbilityID);
                dsItem.PushIntoStack(combatEmbattle.GeneralLv);
                dsItem.PushIntoStack(combatEmbattle.IsWait ? (short)1 : (short)0);
                PushIntoStack(dsItem);
            }
            //战斗过程
            PushIntoStack(combatProcessList.ProcessList.Count);
            foreach (CombatProcess combatProcess in combatProcessList.ProcessList)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(combatProcess.GeneralID);
                dsItem.PushIntoStack(combatProcess.LiveNum);
                dsItem.PushIntoStack(combatProcess.Momentum);
                dsItem.PushIntoStack(combatProcess.AttackTaget.ToShort());
                dsItem.PushIntoStack(combatProcess.AttackUnit.ToShort());
                dsItem.PushIntoStack(combatProcess.AbilityProperty.ToShort());
                dsItem.PushIntoStack(combatProcess.AttStatus.ToShort());
                dsItem.PushIntoStack(combatProcess.DamageNum);
                dsItem.PushIntoStack(combatProcess.AttEffectID.ToNotNullString());
                dsItem.PushIntoStack(combatProcess.TargetEffectID.ToNotNullString());
                dsItem.PushIntoStack(combatProcess.IsMove.ToShort());
                dsItem.PushIntoStack(combatProcess.Position.ToShort());
                dsItem.PushIntoStack(combatProcess.Role.ToShort());

                dsItem.PushIntoStack(combatProcess.DamageStatusList.Count);
                foreach (AbilityEffectStatus effectStatus in combatProcess.DamageStatusList)
                {
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(effectStatus.AbilityType.ToShort());
                    dsItem1.PushIntoStack(effectStatus.DamageNum);
                    dsItem1.PushIntoStack(effectStatus.IsIncrease ? 1 : 0);

                    dsItem.PushIntoStack(dsItem1);
                }

                dsItem.PushIntoStack(combatProcess.TargetList.Count);
                foreach (TargetProcess targetProcess in combatProcess.TargetList)
                {
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(targetProcess.GeneralID);
                    dsItem1.PushIntoStack(targetProcess.LiveNum);
                    dsItem1.PushIntoStack(targetProcess.Momentum);
                    dsItem1.PushIntoStack(targetProcess.DamageNum);
                    dsItem1.PushIntoStack(targetProcess.IsShanBi.ToShort());
                    dsItem1.PushIntoStack(targetProcess.IsGeDang.ToShort());
                    dsItem1.PushIntoStack(targetProcess.IsBack.ToShort());
                    dsItem1.PushIntoStack(targetProcess.IsMove.ToShort());
                    dsItem1.PushIntoStack(targetProcess.BackDamageNum);
                    dsItem1.PushIntoStack(targetProcess.TargetStatus.ToShort());
                    dsItem1.PushIntoStack(targetProcess.Position.ToShort());
                    dsItem1.PushIntoStack(targetProcess.Role.ToShort());
                    //目标中招效果
                    dsItem1.PushIntoStack(targetProcess.DamageStatusList.Count);
                    foreach (AbilityEffectStatus effectStatus in targetProcess.DamageStatusList)
                    {
                        DataStruct dsItem12 = new DataStruct();
                        dsItem12.PushIntoStack(effectStatus.AbilityType.ToShort());
                        dsItem12.PushIntoStack(effectStatus.IsIncrease ? 1 : 0);

                        dsItem1.PushIntoStack(dsItem12);
                    }

                    dsItem1.PushIntoStack(targetProcess.IsBaoji.ToShort());
                    dsItem1.PushIntoStack(targetProcess.TrumpStatusList.Count);
                    foreach (var item in targetProcess.TrumpStatusList)
                    {
                        DataStruct dsItem13 = new DataStruct();
                        dsItem13.PushIntoStack((short)item.AbilityID);
                        dsItem13.PushIntoStack(item.Num);
                        dsItem1.PushIntoStack(dsItem13);
                    }
                    dsItem.PushIntoStack(dsItem1);
                }
                dsItem.PushIntoStack(combatProcess.TrumpStatusList.Count);
                foreach (var item in combatProcess.TrumpStatusList)
                {
                    DataStruct dsItem14 = new DataStruct();
                    dsItem14.PushIntoStack((short)item.AbilityID);
                    dsItem14.PushIntoStack(item.Num);
                    dsItem.PushIntoStack(dsItem14);
                }
                PushIntoStack(dsItem);
            }
            PushIntoStack(universalArray.Length);
            foreach (var item in universalArray)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(item.Name.ToNotNullString());
                dsItem.PushIntoStack(item.HeadID.ToNotNullString());
                dsItem.PushIntoStack(item.Num);
                PushIntoStack(dsItem);
            }
        }
Beispiel #10
0
        public override void BuildPacket()
        {
            PushIntoStack(equCount);
            PushIntoStack(currPlantNum);
            PushIntoStack(maxPlantNum);
            PushIntoStack(currExploreNum);
            PushIntoStack(maxExploreNum);
            PushIntoStack(queueArray.Count);
            foreach (UserQueue queue in queueArray)
            {
                int totalColdeTime = queue.DoRefresh();
                if (queue.QueueType == QueueType.EquipmentStrong)
                {
                    coldTime = queue.DoRefresh();
                    if (queue.StrengNum >= equMaxNum && totalColdeTime > 0)
                    {
                        typeID = 1;
                    }
                    else
                    {
                        typeID = 0;
                    }
                }


                if (queue.QueueType == QueueType.MagicStrong)
                {
                    coldTime = queue.DoRefresh();
                    if (queue.StrengNum >= _magicMaxNum && totalColdeTime > 0)
                    {
                        typeID = 1;
                    }
                    else
                    {
                        typeID = 0;
                    }
                }

                if (queue.QueueType == QueueType.TianXianStrong)
                {
                    if (totalColdeTime > 0)
                    {
                        coldTime = totalColdeTime;
                        typeID   = 1;
                    }
                    else
                    {
                        coldTime = 0;
                        typeID   = 0;
                    }
                }


                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(queue.QueueID);
                dsItem.PushIntoStack((short)queue.QueueType);
                dsItem.PushIntoStack(coldTime);
                dsItem.PushIntoStack(typeID);
                PushIntoStack(dsItem);
            }
            PushIntoStack(equOpenCount);
        }
Beispiel #11
0
        public override void BuildPacket()
        {
            PushIntoStack(idolInfo == null ? LanguageManager.GetLang().shortInt : idolInfo.IdolLv);
            PushIntoStack(idolInfo == null ? 0 : idolInfo.CurrExperience);
            PushIntoStack(maxAura);
            PushIntoStack(guildLogArray.Count);
            foreach (MemberLog log in guildLogArray)
            {
                GameUser gameUser = new GameDataCacheSet <GameUser>().FindKey(log.UserID);
                if (gameUser == null)
                {
                    gameUser = UserCacheGlobal.CheckLoadUser(log.UserID);
                }
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(log.UserID);
                dsItem.PushIntoStack(gameUser == null ? string.Empty : gameUser.NickName.ToNotNullString());
                dsItem.PushIntoStack(log.LogType);
                dsItem.PushIntoStack(log.GainAura);
                dsItem.PushIntoStack(GetGainDate(log.InsertDate));
                dsItem.PushIntoStack(log.IdolID);
                PushIntoStack(dsItem);
            }
            PushIntoStack(idolInfoArray.Count);
            foreach (GuildIdolInfo guildIdol in idolInfoArray)
            {
                if (isXs == 2)
                {
                    isShow = 2;
                }
                else
                {
                    if (guildIdol.IdolID == 1)
                    {
                        isShow = 1;
                    }
                    if (guildIdol.IdolID == 2 && VipHelper.GetVipOpenFun(ContextUser.VipLv, ExpandType.GuildMemberShangSuHeXiang))
                    {
                        isShow = 1;
                    }
                    else if (guildIdol.IdolID == 2)
                    {
                        isShow = 2;
                    }
                    if (guildIdol.IdolID == 3 && VipHelper.GetVipOpenFun(ContextUser.VipLv, ExpandType.GuildMemberShangTianMuXiang))
                    {
                        isShow = 1;
                    }
                    else if (guildIdol.IdolID == 3)
                    {
                        isShow = 2;
                    }
                }
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack((short)guildIdol.IdolID);
                dsItem.PushIntoStack(guildIdol.GainObtion);
                dsItem.PushIntoStack(guildIdol.GainBlessing);
                dsItem.PushIntoStack(guildIdol.GainAura);
                dsItem.PushIntoStack(guildIdol.UseExpNum);
                dsItem.PushIntoStack(guildIdol.UseGold);
                dsItem.PushIntoStack(isShow);

                PushIntoStack(dsItem);
            }
        }
Beispiel #12
0
        public override void BuildPacket()
        {
            PushIntoStack(teamPlot.MorePlot.Experience);
            PushIntoStack(teamPlot.MorePlot.ItemId);
            PushIntoStack(teamPlot.MorePlot.ItemName.ToNotNullString());
            PushIntoStack(teamPlot.MorePlot.ItemNum);
            PushIntoStack(teamPlot.MorePlot.ExpNum);
            PushIntoStack(teamPlot.MorePlot.PlotID);
            PushIntoStack(teamPlot.MorePlot.PlotName.ToNotNullString());
            PushIntoStack(plotInfo == null ? string.Empty : plotInfo.BgScene.ToNotNullString());
            PushIntoStack(teamCombatResult.IsWin ? (short)1 : (short)0);
            PushIntoStack(teamCombatResult.ProcessList.Count);
            foreach (var countryProcess in teamCombatResult.ProcessList)
            {
                DataStruct ds = new DataStruct();
                //攻方阵形
                ds.PushIntoStack(countryProcess.ProcessContainer.AttackList.Count);
                foreach (CombatEmbattle combatEmbattle in countryProcess.ProcessContainer.AttackList)
                {
                    DataStruct dsItem = new DataStruct();
                    dsItem.PushIntoStack(combatEmbattle.GeneralID);
                    dsItem.PushIntoStack(combatEmbattle.GeneralName.ToNotNullString());
                    dsItem.PushIntoStack(combatEmbattle.HeadID.ToNotNullString());
                    dsItem.PushIntoStack(combatEmbattle.Position.ToShort());
                    dsItem.PushIntoStack(combatEmbattle.LiveNum);
                    dsItem.PushIntoStack(combatEmbattle.LiveMaxNum);
                    dsItem.PushIntoStack(combatEmbattle.MomentumNum);
                    dsItem.PushIntoStack(combatEmbattle.MaxMomentumNum);
                    dsItem.PushIntoStack(combatEmbattle.AbilityID);
                    dsItem.PushIntoStack(combatEmbattle.GeneralLv);
                    dsItem.PushIntoStack(combatEmbattle.IsWait ? (short)1 : (short)0);
                    ds.PushIntoStack(dsItem);
                }
                //防方阵形
                ds.PushIntoStack(countryProcess.ProcessContainer.DefenseList.Count);
                foreach (CombatEmbattle combatEmbattle in countryProcess.ProcessContainer.DefenseList)
                {
                    DataStruct dsItem = new DataStruct();
                    dsItem.PushIntoStack(combatEmbattle.GeneralID);
                    dsItem.PushIntoStack(combatEmbattle.GeneralName.ToNotNullString());
                    dsItem.PushIntoStack(combatEmbattle.HeadID.ToNotNullString());
                    dsItem.PushIntoStack(combatEmbattle.Position.ToShort());
                    dsItem.PushIntoStack(combatEmbattle.LiveNum);
                    dsItem.PushIntoStack(combatEmbattle.LiveMaxNum);
                    dsItem.PushIntoStack(combatEmbattle.MomentumNum);
                    dsItem.PushIntoStack(combatEmbattle.MaxMomentumNum);
                    dsItem.PushIntoStack(combatEmbattle.AbilityID);
                    dsItem.PushIntoStack(combatEmbattle.GeneralLv);
                    dsItem.PushIntoStack(combatEmbattle.IsWait ? (short)1 : (short)0);
                    ds.PushIntoStack(dsItem);
                }
                //战斗过程
                ds.PushIntoStack(countryProcess.ProcessContainer.ProcessList.Count);
                foreach (CombatProcess combatProcess in countryProcess.ProcessContainer.ProcessList)
                {
                    DataStruct dsItem = new DataStruct();
                    dsItem.PushIntoStack(combatProcess.GeneralID);
                    dsItem.PushIntoStack(combatProcess.LiveNum);
                    dsItem.PushIntoStack(combatProcess.Momentum);
                    dsItem.PushIntoStack(combatProcess.AttackTaget.ToShort());
                    dsItem.PushIntoStack(combatProcess.AttackUnit.ToShort());
                    dsItem.PushIntoStack(combatProcess.AbilityProperty.ToShort());
                    dsItem.PushIntoStack(combatProcess.AttStatus.ToShort());
                    dsItem.PushIntoStack(combatProcess.DamageNum);
                    dsItem.PushIntoStack(combatProcess.AttEffectID.ToNotNullString());
                    dsItem.PushIntoStack(combatProcess.TargetEffectID.ToNotNullString());
                    dsItem.PushIntoStack(combatProcess.IsMove.ToShort());
                    dsItem.PushIntoStack(combatProcess.Position.ToShort());
                    dsItem.PushIntoStack(combatProcess.Role.ToShort());

                    dsItem.PushIntoStack(combatProcess.DamageStatusList.Count);
                    foreach (AbilityEffectStatus effectStatus in combatProcess.DamageStatusList)
                    {
                        DataStruct dsItem1 = new DataStruct();
                        dsItem1.PushIntoStack(effectStatus.AbilityType.ToShort());
                        dsItem1.PushIntoStack(effectStatus.DamageNum);
                        dsItem1.PushIntoStack(effectStatus.IsIncrease ? 1 : 0);

                        dsItem.PushIntoStack(dsItem1);
                    }

                    dsItem.PushIntoStack(combatProcess.TargetList.Count);
                    foreach (TargetProcess targetProcess in combatProcess.TargetList)
                    {
                        DataStruct dsItem1 = new DataStruct();
                        dsItem1.PushIntoStack(targetProcess.GeneralID);
                        dsItem1.PushIntoStack(targetProcess.LiveNum);
                        dsItem1.PushIntoStack(targetProcess.Momentum);
                        dsItem1.PushIntoStack(targetProcess.DamageNum);
                        dsItem1.PushIntoStack(targetProcess.IsShanBi.ToShort());
                        dsItem1.PushIntoStack(targetProcess.IsGeDang.ToShort());
                        dsItem1.PushIntoStack(targetProcess.IsBack.ToShort());
                        dsItem1.PushIntoStack(targetProcess.IsMove.ToShort());
                        dsItem1.PushIntoStack(targetProcess.BackDamageNum);
                        dsItem1.PushIntoStack(targetProcess.TargetStatus.ToShort());
                        dsItem1.PushIntoStack(targetProcess.Position.ToShort());
                        dsItem1.PushIntoStack(targetProcess.Role.ToShort());
                        //目标中招效果
                        dsItem1.PushIntoStack(targetProcess.DamageStatusList.Count);
                        foreach (AbilityEffectStatus effectStatus in targetProcess.DamageStatusList)
                        {
                            DataStruct dsItem12 = new DataStruct();
                            dsItem12.PushIntoStack(effectStatus.AbilityType.ToShort());
                            dsItem12.PushIntoStack(effectStatus.IsIncrease ? 1 : 0);

                            dsItem1.PushIntoStack(dsItem12);
                        }
                        dsItem1.PushIntoStack(targetProcess.IsBaoji.ToShort());
                        dsItem1.PushIntoStack(targetProcess.TrumpStatusList.Count);
                        foreach (var item in targetProcess.TrumpStatusList)
                        {
                            DataStruct dsItem13 = new DataStruct();
                            dsItem13.PushIntoStack((short)item.AbilityID);
                            dsItem13.PushIntoStack(item.Num);
                            dsItem1.PushIntoStack(dsItem13);
                        }
                        dsItem.PushIntoStack(dsItem1);
                    }
                    dsItem.PushIntoStack(combatProcess.TrumpStatusList.Count);
                    foreach (var item in combatProcess.TrumpStatusList)
                    {
                        DataStruct dsItem14 = new DataStruct();
                        dsItem14.PushIntoStack((short)item.AbilityID);
                        dsItem14.PushIntoStack(item.Num);
                        dsItem.PushIntoStack(dsItem14);
                    }
                    ds.PushIntoStack(dsItem);
                }

                this.PushIntoStack(ds);
            }
            PushIntoStack(plotInfo != null ? plotInfo.BgScene.ToNotNullString() : string.Empty);
            PushIntoStack(plotInfo != null ? plotInfo.FgScene.ToNotNullString() : string.Empty);
        }
Beispiel #13
0
        public override void BuildPacket()
        {
            PushIntoStack(IsWin.ToShort());
            PushIntoStack(bossProcess.DamageNum);
            PushIntoStack(bossProcess.ObtainNum);
            PushIntoStack(bossProcess.GameCoin);
            PushIntoStack(bossProcess.KillGameCoin);

            //攻方阵形
            PushIntoStack(bossProcess.ProcessContainer.AttackList.Count);
            foreach (CombatEmbattle combatEmbattle in bossProcess.ProcessContainer.AttackList)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(combatEmbattle.GeneralID);
                dsItem.PushIntoStack(combatEmbattle.GeneralName.ToNotNullString());
                dsItem.PushIntoStack(combatEmbattle.HeadID.ToNotNullString());
                dsItem.PushIntoStack(combatEmbattle.Position.ToShort());
                dsItem.PushIntoStack(combatEmbattle.LiveNum);
                dsItem.PushIntoStack(combatEmbattle.LiveMaxNum);
                dsItem.PushIntoStack(combatEmbattle.MomentumNum);
                dsItem.PushIntoStack(combatEmbattle.MaxMomentumNum);
                dsItem.PushIntoStack(combatEmbattle.AbilityID);
                dsItem.PushIntoStack(combatEmbattle.GeneralLv);
                dsItem.PushIntoStack(combatEmbattle.IsWait ? (short)1 : (short)0);
                PushIntoStack(dsItem);
            }
            //防方阵形
            PushIntoStack(bossProcess.ProcessContainer.DefenseList.Count);
            foreach (CombatEmbattle combatEmbattle in bossProcess.ProcessContainer.DefenseList)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(combatEmbattle.GeneralID);
                dsItem.PushIntoStack(combatEmbattle.GeneralName.ToNotNullString());
                dsItem.PushIntoStack(combatEmbattle.HeadID.ToNotNullString());
                dsItem.PushIntoStack(combatEmbattle.Position.ToShort());
                dsItem.PushIntoStack(combatEmbattle.LiveNum);
                dsItem.PushIntoStack(combatEmbattle.LiveMaxNum);
                dsItem.PushIntoStack(combatEmbattle.MomentumNum);
                dsItem.PushIntoStack(combatEmbattle.MaxMomentumNum);
                dsItem.PushIntoStack(combatEmbattle.AbilityID);
                dsItem.PushIntoStack(combatEmbattle.GeneralLv);
                dsItem.PushIntoStack(combatEmbattle.IsWait ? (short)1 : (short)0);
                PushIntoStack(dsItem);
            }
            //战斗过程
            PushIntoStack(bossProcess.ProcessContainer.ProcessList.Count);
            foreach (CombatProcess combatProcess in bossProcess.ProcessContainer.ProcessList)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(combatProcess.GeneralID);
                dsItem.PushIntoStack(combatProcess.LiveNum);
                dsItem.PushIntoStack(combatProcess.Momentum);
                dsItem.PushIntoStack(combatProcess.AttackTaget.ToShort());
                dsItem.PushIntoStack(combatProcess.AttackUnit.ToShort());
                dsItem.PushIntoStack(combatProcess.AbilityProperty.ToShort());
                dsItem.PushIntoStack(combatProcess.AttStatus.ToShort());
                dsItem.PushIntoStack(combatProcess.DamageNum);
                dsItem.PushIntoStack(combatProcess.AttEffectID.ToNotNullString());
                dsItem.PushIntoStack(combatProcess.TargetEffectID.ToNotNullString());
                dsItem.PushIntoStack(combatProcess.IsMove.ToShort());
                dsItem.PushIntoStack(combatProcess.Position.ToShort());
                dsItem.PushIntoStack(combatProcess.Role.ToShort());

                dsItem.PushIntoStack(combatProcess.DamageStatusList.Count);
                foreach (AbilityEffectStatus effectStatus in combatProcess.DamageStatusList)
                {
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(effectStatus.AbilityType.ToShort());
                    dsItem1.PushIntoStack(effectStatus.DamageNum);
                    dsItem1.PushIntoStack(effectStatus.IsIncrease ? 1 : 0);

                    dsItem.PushIntoStack(dsItem1);
                }

                dsItem.PushIntoStack(combatProcess.TargetList.Count);
                foreach (TargetProcess targetProcess in combatProcess.TargetList)
                {
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(targetProcess.GeneralID);
                    dsItem1.PushIntoStack(targetProcess.LiveNum);
                    dsItem1.PushIntoStack(targetProcess.Momentum);
                    dsItem1.PushIntoStack(targetProcess.DamageNum);
                    dsItem1.PushIntoStack(targetProcess.IsShanBi.ToShort());
                    dsItem1.PushIntoStack(targetProcess.IsGeDang.ToShort());
                    dsItem1.PushIntoStack(targetProcess.IsBack.ToShort());
                    dsItem1.PushIntoStack(targetProcess.IsMove.ToShort());
                    dsItem1.PushIntoStack(targetProcess.BackDamageNum);
                    dsItem1.PushIntoStack(targetProcess.TargetStatus.ToShort());
                    dsItem1.PushIntoStack(targetProcess.Position.ToShort());
                    dsItem1.PushIntoStack(targetProcess.Role.ToShort());
                    //目标中招效果
                    dsItem1.PushIntoStack(targetProcess.DamageStatusList.Count);
                    foreach (AbilityEffectStatus effectStatus in targetProcess.DamageStatusList)
                    {
                        DataStruct dsItem12 = new DataStruct();
                        dsItem12.PushIntoStack(effectStatus.AbilityType.ToShort());
                        dsItem12.PushIntoStack(effectStatus.IsIncrease ? 1 : 0);

                        dsItem1.PushIntoStack(dsItem12);
                    }
                    dsItem1.PushIntoStack(targetProcess.IsBaoji.ToShort());
                    dsItem1.PushIntoStack(targetProcess.TrumpStatusList.Count);
                    foreach (var item in targetProcess.TrumpStatusList)
                    {
                        DataStruct dsItem13 = new DataStruct();
                        dsItem13.PushIntoStack((short)item.AbilityID);
                        dsItem13.PushIntoStack(item.Num);
                        dsItem1.PushIntoStack(dsItem13);
                    }
                    dsItem.PushIntoStack(dsItem1);
                }
                dsItem.PushIntoStack(combatProcess.TrumpStatusList.Count);
                foreach (var item in combatProcess.TrumpStatusList)
                {
                    DataStruct dsItem14 = new DataStruct();
                    dsItem14.PushIntoStack((short)item.AbilityID);
                    dsItem14.PushIntoStack(item.Num);
                    dsItem.PushIntoStack(dsItem14);
                }
                PushIntoStack(dsItem);
            }
        }
Beispiel #14
0
        public override void BuildPacket()
        {
            this.PushIntoStack(TaskHelper.DailyEveryMaxNum);
            this.PushIntoStack(currNum);
            this.PushIntoStack(userTaskList.Count);
            foreach (UserTask userTask in userTaskList)
            {
                DailyTaskInfo dtaskInfo = new ConfigCacheSet <DailyTaskInfo>().FindKey(userTask.TaskID);
                var           userItem  = userTask.GetDailyItem(userLv);
                ItemBaseInfo  itemInfo  = new ConfigCacheSet <ItemBaseInfo>().FindKey(userItem != null ? userItem.ItemID : 0);

                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(userTask.TaskID);
                dsItem.PushIntoStack(dtaskInfo.TaskName.ToNotNullString());
                dsItem.PushIntoStack((short)userTask.TaskState);
                dsItem.PushIntoStack((short)userTask.TaskType);
                dsItem.PushIntoStack((short)userTask.TaskStar);
                dsItem.PushIntoStack(dtaskInfo.TaskDescp.ToNotNullString());
                dsItem.PushIntoStack(dtaskInfo.TaskTarget);
                dsItem.PushIntoStack((int)userTask.TaskStar);
                dsItem.PushIntoStack(userTask.TaskTargetNum.ToInt());
                dsItem.PushIntoStack(userTask.GetDailyExpNum(userLv));
                dsItem.PushIntoStack(itemInfo != null ? itemInfo.ItemName.ToNotNullString() : string.Empty);
                dsItem.PushIntoStack(userItem != null ? userItem.Num : 0);

                this.PushIntoStack(dsItem);
            }
        }
Beispiel #15
0
        public override void BuildPacket()
        {
            var cacheSetItem = new ConfigCacheSet <ItemBaseInfo>();

            PushIntoStack(_cityInfoList.Count);
            foreach (var city in _cityInfoList)
            {
                List <PlotInfo> plotList = _cacheSetPlot.FindAll(s => s.CityID == city.CityID && s.PlotType == plotType);

                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(plotList.Count);
                foreach (PlotInfo item in plotList)
                {
                    UserPlotInfo userPlot   = UserPlotHelper.GetUserPlotInfo(ContextUser.UserID, item.PlotID);
                    int          isKill     = PlotHelper.IsKill(ContextUser.UserID, item.PlotID, cityID) ? 1 : 0;
                    DataStruct   dsItemPlot = new DataStruct();
                    dsItemPlot.PushIntoStack(item.PlotID);
                    dsItemPlot.PushIntoStack(item.PlotSeqNo.ToShort());
                    dsItemPlot.PushIntoStack(item.PlotName.ToNotNullString());
                    dsItemPlot.PushIntoStack(item.BossHeadID.ToNotNullString());
                    dsItemPlot.PushIntoStack(GetPlotStatus(userPlot, plotType));
                    dsItemPlot.PushIntoStack(userPlot == null ? 1 : (int)userPlot.StarScore);
                    dsItemPlot.PushIntoStack(isKill);
                    dsItemPlot.PushIntoStack(item.HonourNum);
                    dsItemPlot.PushIntoStack(item.GameCoin);
                    dsItemPlot.PushIntoStack(item.PlotDesc);
                    dsItemPlot.PushIntoStack(item.PlotLv);
                    dsItemPlot.PushIntoStack(ConfigEnvSet.GetInt("Plot.BattleEnergyNum"));
                    dsItemPlot.PushIntoStack(PlotHelper.GetPlotChallengeNum(UserId.ToString(), item.PlotID));
                    dsItemPlot.PushIntoStack(item.ChallengeNum);
                    dsItemPlot.PushIntoStack(userPlot == null ? 0 : userPlot.PlotNum);
                    dsItem.PushIntoStack(dsItemPlot);
                    var itemArray = item.ItemRank.Split(',');
                    dsItemPlot.PushIntoStack(itemArray.Length);
                    foreach (var s in itemArray)
                    {
                        var        sArray     = s.Split('=');
                        var        itemInfo   = cacheSetItem.FindKey(sArray.Length > 0 ? sArray[0].ToInt() : 0);
                        DataStruct dsItemInfo = new DataStruct();
                        dsItemInfo.PushIntoStack(itemInfo != null ? itemInfo.ItemName : string.Empty);
                        dsItemInfo.PushIntoStack(sArray.Length > 1 ? sArray[1].ToInt() : 0);
                        dsItemPlot.PushIntoStack(dsItemInfo);
                    }
                }

                dsItem.PushIntoStack(city.CityID);
                dsItem.PushIntoStack(city.CityName.ToNotNullString());

                PushIntoStack(dsItem);
            }
            PushIntoStack(resetNum);
            PushIntoStack(_backpackType);
        }
Beispiel #16
0
        public override void BuildPacket()
        {
            this.PushIntoStack(itemBaseList.Count);
            foreach (ItemBaseInfo itemInfo in itemBaseList)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(itemInfo.ItemID);
                dsItem.PushIntoStack(itemInfo.ItemName.ToNotNullString());
                dsItem.PushIntoStack(itemInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack(itemInfo.ItemDesc.ToNotNullString());
                dsItem.PushIntoStack(itemInfo.ItemType.ToShort());
                dsItem.PushIntoStack(itemInfo.EquParts.ToShort());
                dsItem.PushIntoStack(itemInfo.QualityType.ToShort());
                dsItem.PushIntoStack(itemInfo.DemandLv.ToShort());

                string[] careerList = itemInfo.CareerRange.Split(new char[] { ',' });
                dsItem.PushIntoStack(careerList.Length);
                foreach (string CareerID in careerList)
                {
                    CareerInfo careerInfo = new ConfigCacheSet <CareerInfo>().FindKey(CareerID.ToInt());
                    DataStruct dsItem1    = new DataStruct();
                    dsItem1.PushIntoStack(careerInfo != null ? careerInfo.CareerID.ToInt() : (int)0);
                    dsItem1.PushIntoStack(careerInfo != null ? careerInfo.CareerName.ToNotNullString() : string.Empty);

                    dsItem.PushIntoStack(dsItem1);
                }

                var equList = new ConfigCacheSet <ItemEquAttrInfo>().FindAll(m => m.ItemID == itemInfo.ItemID);
                dsItem.PushIntoStack(equList.Count);
                foreach (ItemEquAttrInfo equ in equList)
                {
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(equ.AttributeID.ToInt());
                    dsItem1.PushIntoStack(equ.BaseNum);
                    dsItem1.PushIntoStack(equ.IncreaseNum);

                    dsItem.PushIntoStack(dsItem1);
                }

                dsItem.PushIntoStack(itemInfo.MedicineType);
                dsItem.PushIntoStack(itemInfo.MedicineLv);
                dsItem.PushIntoStack(itemInfo.MedicineNum);
                dsItem.PushIntoStack(itemInfo.PropType);
                dsItem.PushIntoStack(itemInfo.EffectNum.ToNotNullString());

                var itemSynthesisList = new ConfigCacheSet <ItemSynthesisInfo>().FindAll(m => m.ItemID == itemInfo.ItemID);
                dsItem.PushIntoStack(itemSynthesisList.Count);
                foreach (ItemSynthesisInfo synthesisInfo in itemSynthesisList)
                {
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(synthesisInfo.SynthesisID);
                    dsItem1.PushIntoStack(synthesisInfo.DemandNum);
                    dsItem1.PushIntoStack(synthesisInfo.SynthesisNum);

                    dsItem.PushIntoStack(dsItem1);
                }

                this.PushIntoStack(dsItem);
            }
        }
Beispiel #17
0
        public override void BuildPacket()
        {
            this.PushIntoStack(plotList.Count);
            foreach (PlotInfo plotInfo in plotList)
            {
                DataStruct ds = new DataStruct();
                ds.PushIntoStack(plotInfo.PlotID);
                ds.PushIntoStack(plotInfo.CityID);
                ds.PushIntoStack(plotInfo.PlotType.ToShort());
                ds.PushIntoStack(plotInfo.PlotSeqNo);
                ds.PushIntoStack(plotInfo.PlotName.ToNotNullString());
                ds.PushIntoStack(plotInfo.BossHeadID.ToNotNullString());
                ds.PushIntoStack(plotInfo.BgScene.ToNotNullString());
                ds.PushIntoStack(plotInfo.FgScene.ToNotNullString());
                ds.PushIntoStack(plotInfo.AftPlotID);
                ds.PushIntoStack(plotInfo.SceneY1);
                ds.PushIntoStack(plotInfo.SceneY2);

                var npcList = new ConfigCacheSet <PlotNPCInfo>().FindAll(m => m.PlotID == plotInfo.PlotID);
                ds.PushIntoStack(npcList.Count);
                foreach (PlotNPCInfo npcInfo in npcList)
                {
                    DataStruct dsItem = new DataStruct();
                    dsItem.PushIntoStack(npcInfo.PlotNpcID);
                    dsItem.PushIntoStack(npcInfo.NpcName.ToNotNullString());
                    dsItem.PushIntoStack(npcInfo.HeadID.ToNotNullString());
                    dsItem.PushIntoStack(npcInfo.NpcSeqNo.ToInt());
                    dsItem.PushIntoStack(npcInfo.PointX);
                    dsItem.PushIntoStack(npcInfo.PointY);
                    dsItem.PushIntoStack(npcInfo.NpcTip.ToNotNullString());
                    dsItem.PushIntoStack(npcInfo.PreStoryCode.ToNotNullString());
                    dsItem.PushIntoStack(npcInfo.AftStoryCode.ToNotNullString());
                    dsItem.PushIntoStack(npcInfo.IsBoss.ToShort());

                    var plotEmbattleList = new ConfigCacheSet <PlotEmbattleInfo>().FindAll(m => m.PlotNpcID == npcInfo.PlotNpcID);
                    dsItem.PushIntoStack(plotEmbattleList.Count);
                    foreach (PlotEmbattleInfo embattleInfo in plotEmbattleList)
                    {
                        MonsterInfo monster = new ConfigCacheSet <MonsterInfo>().FindKey(embattleInfo.MonsterID);
                        if (monster == null)
                        {
                            SaveLog(new Exception(string.Format(LanguageManager.GetLang().St4011_NoMonster, plotInfo.PlotID, embattleInfo.MonsterID)));
                        }
                        DataStruct dsItem1 = new DataStruct();
                        dsItem1.PushIntoStack(embattleInfo.MonsterID);
                        dsItem1.PushIntoStack(embattleInfo.GridSeqNo.ToInt());
                        dsItem1.PushIntoStack(monster == null ? (short)0 : monster.MonsterType.ToShort());
                        dsItem1.PushIntoStack(monster == null ? string.Empty : monster.HeadID.ToNotNullString());
                        dsItem1.PushIntoStack(monster == null ? string.Empty : monster.GeneralName.ToNotNullString());
                        dsItem1.PushIntoStack(monster == null ? (short)0 : monster.GeneralLv.ToShort());
                        dsItem1.PushIntoStack(monster == null ? (int)0 : monster.LifeNum);
                        dsItem1.PushIntoStack(monster == null ? (int)0 : monster.MomentumNum);
                        dsItem1.PushIntoStack(monster == null ? (short)0 : monster.CareerID);
                        dsItem1.PushIntoStack(monster == null ? (int)0 : monster.ItemID);

                        dsItem.PushIntoStack(dsItem1);
                    }


                    ds.PushIntoStack(dsItem);
                }
                this.PushIntoStack(ds);
            }
        }
Beispiel #18
0
        public override void BuildPacket()
        {
            PushIntoStack(generalName.ToNotNullString());
            this.PushIntoStack(headID.ToNotNullString());
            this.PushIntoStack(picturesID.ToNotNullString());

            this.PushIntoStack((short)generalQuality);
            this.PushIntoStack(currExperience);
            this.PushIntoStack(maxExperience);
            this.PushIntoStack(powerNum);
            this.PushIntoStack(soulNum);
            this.PushIntoStack(intellectNum);
            this.PushIntoStack(careerInfo == null ? 0 : careerInfo.CareerID);
            this.PushIntoStack(careerInfo == null ? string.Empty : careerInfo.CareerName.ToNotNullString());
            this.PushIntoStack(lifeNum);
            this.PushIntoStack(lifeMaxNum);
            this.PushIntoStack(genLv);
            this.PushIntoStack(generalStatus);
            this.PushIntoStack(description.ToNotNullString());
            this.PushIntoStack(attackNum);
            this.PushIntoStack(vitalityNum);
            this.PushIntoStack(talentAbility);
            this.PushIntoStack(talentName.ToNotNullString());
            this.PushIntoStack(userItemArray.Count);
            foreach (var item in userItemArray)
            {
                int          isSynthesis;
                DataStruct   dsItem   = new DataStruct();
                ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(item.ItemID);
                if (IsSynthesis(ContextUser.UserID, item.ItemID, genLv))
                {
                    isSynthesis = 1;
                }
                else
                {
                    isSynthesis = 2;
                }
                dsItem.PushIntoStack(item.UserItemID.ToNotNullString());
                dsItem.PushIntoStack(item.ItemID);
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString());
                dsItem.PushIntoStack(itemInfo == null ? 0 : (int)itemInfo.EquParts);
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack((short)item.ItemLv);
                dsItem.PushIntoStack((short)isSynthesis);
                dsItem.PushIntoStack(itemInfo == null ? 0 : itemInfo.QualityType.ToInt());
                this.PushIntoStack(dsItem);
            }
            this.PushIntoStack(abilityList.Count);
            foreach (var ability in abilityList)
            {
                DataStruct  dsItem      = new DataStruct();
                AbilityInfo abilityInfo = new ShareCacheStruct <AbilityInfo>().FindKey(ability.AbilityID);
                dsItem.PushIntoStack(ability.AbilityID);
                dsItem.PushIntoStack(abilityInfo == null ? string.Empty : abilityInfo.AbilityName.ToNotNullString());
                dsItem.PushIntoStack((short)ability.AbilityLv);
                dsItem.PushIntoStack(abilityInfo == null ? string.Empty : abilityInfo.AbilityDesc.ToNotNullString());
                dsItem.PushIntoStack(abilityInfo == null ? string.Empty : abilityInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack(ability.Position);
                dsItem.PushIntoStack(ability.UserItemID.ToNotNullString());
                dsItem.PushIntoStack(abilityInfo != null ? abilityInfo.AbilityQuality : 0);
                this.PushIntoStack(dsItem);
            }
            this.PushIntoStack(gPropertyList.Count);
            foreach (var property in gPropertyList)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(property.AbilityType.ToShort());
                if (property.AbilityType == AbilityType.MingZhong)
                {
                    string value = (property.AbilityValue + _hitProbability).ToNotNullString();
                    dsItem.PushIntoStack(value);
                }
                else
                {
                    dsItem.PushIntoStack(property.AbilityValue.ToNotNullString());
                }

                this.PushIntoStack(dsItem);
            }

            this.PushIntoStack(functionList.Count);
            foreach (var function in functionList)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(function.FunEnum.ToShort());
                this.PushIntoStack(dsItem);
            }
            PushIntoStack(_potential);
            this.PushIntoStack(soulGrid);
            this.PushIntoStack(_battleHeadId.ToNotNullString());
            PushIntoStack(userGeneral != null ? userGeneral.AbilityNum : 3);

            // 缘分信息
            if (karmaList != null)
            {
                PushIntoStack(karmaList.Count);
                foreach (var karmaInfo in karmaList)
                {
                    DataStruct dsItem = new DataStruct();
                    dsItem.PushIntoStack(karmaInfo.KarmaName);
                    dsItem.PushIntoStack(karmaInfo.KarmaDesc);
                    dsItem.PushIntoStack(karmaInfo.IsActive);
                    this.PushIntoStack(dsItem);
                }
            }
            else
            {
                PushIntoStack(0);
            }

            PushIntoStack(userCareerName);
        }
Beispiel #19
0
        public override void BuildPacket()
        {
            PushIntoStack(userItemArray.Count);
            foreach (var item in userItemArray)
            {
                short isStrong    = 0;
                int   strongMoney = new UserItemHelper(item).StrongMoney;
                if (item.ItemLv >= ContextUser.UserLv || strongMoney > ContextUser.GameCoin)
                {
                    isStrong = 1;
                }
                ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(item.ItemID);
                DataStruct   dsItem   = new DataStruct();

                dsItem.PushIntoStack(item == null ? string.Empty : item.UserItemID.ToNotNullString());
                dsItem.PushIntoStack(itemInfo == null ? 0 : itemInfo.ItemID);
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString());
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack(item == null ? LanguageManager.GetLang().shortInt : item.ItemLv);
                dsItem.PushIntoStack(itemInfo == null ? LanguageManager.GetLang().shortInt : (short)itemInfo.QualityType);
                dsItem.PushIntoStack(item == null ? 0 : strongMoney);
                dsItem.PushIntoStack(coldTime);
                dsItem.PushIntoStack(isStrong);
                dsItem.PushIntoStack(UserHelper.StrongEquPayPrice(Uid, item.UserItemID));

                List <ItemEquAttrInfo> itemEquArray = new ShareCacheStruct <ItemEquAttrInfo>().FindAll(e => e.ItemID.Equals(item.ItemID));
                //当前等级装备属性
                dsItem.PushIntoStack(itemEquArray.Count);
                foreach (ItemEquAttrInfo equ in itemEquArray)
                {
                    DataStruct dsDetail = new DataStruct();
                    dsDetail.PushIntoStack((int)equ.AttributeID);
                    if (equ != null && item != null)
                    {
                        baseNum = MathUtils.Addition(equ.BaseNum, item.ItemLv * equ.IncreaseNum, int.MaxValue);
                    }
                    dsDetail.PushIntoStack(baseNum);
                    dsItem.PushIntoStack(dsDetail);
                }

                //下级别装备属性
                dsItem.PushIntoStack(itemEquArray.Count);
                foreach (ItemEquAttrInfo equ in itemEquArray)
                {
                    DataStruct dsDetail = new DataStruct();
                    dsDetail.PushIntoStack((int)equ.AttributeID);
                    if (equ != null && item != null)
                    {
                        stengBaseNum = MathUtils.Addition(equ.BaseNum, (int)(MathUtils.Addition(item.ItemLv, (short)1, short.MaxValue)) * equ.IncreaseNum, int.MaxValue);
                    }
                    dsDetail.PushIntoStack(stengBaseNum);
                    dsItem.PushIntoStack(dsDetail);
                }



                PushIntoStack(dsItem);
            }
        }
Beispiel #20
0
        public override void BuildPacket()
        {
            PushIntoStack(ContextUser.CityID);
            PushIntoStack(ContextUser.PointX);
            PushIntoStack(ContextUser.PointY);
            PushIntoStack(generalID);
            PushIntoStack(guildID.ToNotNullString());
            PushIntoStack(ObjectExtend.ToNotNullString(ContextUser.NickName));
            PushIntoStack(genlv);
            PushIntoStack(careerID);
            PushIntoStack(sex);
            PushIntoStack(headID.ToNotNullString());
            PushIntoStack(ContextUser.GoldNum);
            PushIntoStack(ContextUser.GameCoin);
            PushIntoStack(lifeNum);
            PushIntoStack(lifeMaxNum);
            PushIntoStack((ContextUser.EnergyNum).ToShort());
            PushIntoStack(maxEnergyNum);
            PushIntoStack(userGeneralInfo == null ? 0 : userGeneralInfo.CurrExperience);
            PushIntoStack(escalateInfo == null ? 0 : escalateInfo.UpExperience);
            PushIntoStack((short)ContextUser.VipLv);
            PushIntoStack((short)ContextUser.CountryID);

            //加状态
            PushIntoStack(_itemLiveNum);
            PushIntoStack(_itemLiveMaxNum);
            PushIntoStack(_blessingList.Count);
            foreach (var blessing in _blessingList)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(blessing.BlessingType);
                dsItem.PushIntoStack(blessing.BlessingNum);
                dsItem.PushIntoStack(blessing.PropDate);
                dsItem.PushIntoStack(string.Empty);
                dsItem.PushIntoStack(blessing.PropDesc.ToNotNullString());
                PushIntoStack(dsItem);
            }
            PushIntoStack((short)ContextUser.UserLocation);
            PushIntoStack(ContextUser.ExpNum);
            PushIntoStack((short)ContextUser.UserStatus);
            PushIntoStack(ContextUser.SweepPool == null ? 0 : ContextUser.SweepPool.PlotID);
            PushIntoStack(ContextUser.IsUseupItem ? (short)1 : (short)0);
            PushIntoStack(pictureID.ToNotNullString());
            PushIntoStack(pictureTime);
            PushIntoStack(demandGold);
            PushIntoStack(ContextUser.SurplusEnergy);
            PushIntoStack(isHelper);
            PushIntoStack(plotstatucID);
            PushIntoStack(mercenarySeq);
            PushIntoStack(cardUserID.ToNotNullString());
            PushIntoStack(0);
            this.PushIntoStack(battleNum);
            this.PushIntoStack(totalBattle);
            this.PushIntoStack(rstore);
            this.PushIntoStack(totalRstore);
            PushIntoStack(_honourNum);
            PushIntoStack(_nextHonourNum);
            PushIntoStack(ContextUser.CombatNum);
            PushIntoStack(_talPriority);
            PushIntoStack(ContextUser.IsLv ? 1.ToShort() : 0.ToShort());
            this.PushIntoStack(functionList.Count);
            foreach (UserFunction item in functionList)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(item.FunEnum.ToShort());
                PushIntoStack(dsItem);
            }

            if (ContextUser.OpenFun != null && ContextUser.OpenFun.Count > 0)
            {
                var OpenFun = ContextUser.OpenFun;
                this.PushIntoStack(OpenFun.Count);
                foreach (UserFunction item in OpenFun)
                {
                    DataStruct dsItem = new DataStruct();
                    dsItem.PushIntoStack(item.FunEnum.ToShort());
                    PushIntoStack(dsItem);
                }
                ContextUser.OpenFun.Clear();
            }
            else
            {
                PushIntoStack(0);
            }

            PushIntoStack(ContextUser.WizardNum);
            // PushIntoStack(unReadCount);
            // 未读的信件数目
            PushIntoStack(unReadCount);
        }
Beispiel #21
0
        public override void BuildPacket()
        {
            PushIntoStack(userItemList.Count);
            foreach (var item in userItemList)
            {
                List <ItemEquAttrInfo> itemEquList = new ShareCacheStruct <ItemEquAttrInfo>().FindAll(e => e.ItemID.Equals(item.ItemID));
                ItemBaseInfo           itemInfo    = new ShareCacheStruct <ItemBaseInfo>().FindKey(item.ItemID);
                UserGeneral            userGeneral = new PersonalCacheStruct <UserGeneral>().FindKey(ContextUser.UserID, item.GeneralID);
                int strongMoney = new UserItemHelper(item).StrongMoney;
                int isStrong    = 0;
                if (strongMoney > ContextUser.GameCoin)
                {
                    isStrong = 1;
                }
                else if (item.ItemLv > ContextUser.UserLv)
                {
                    isStrong = 2;
                }

                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(item.UserItemID.ToNotNullString());
                dsItem.PushIntoStack(item.ItemID);
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString());
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack(item.ItemLv);
                dsItem.PushIntoStack(itemInfo == null ? (short)0 : itemInfo.QualityType.ToShort());
                dsItem.PushIntoStack(strongMoney);
                dsItem.PushIntoStack((short)isStrong);
                dsItem.PushIntoStack(UserHelper.StrongEquPayPrice(Uid, item.UserItemID));
                dsItem.PushIntoStack(userGeneral == null ? string.Empty : userGeneral.GeneralName.ToNotNullString());
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemDesc.ToNotNullString());
                dsItem.PushIntoStack(itemEquList.Count);

                foreach (var itemEqu in itemEquList)
                {
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(itemEqu.AttributeID.ToInt());
                    int strengNum = 0;
                    if (item != null)
                    {
                        strengNum = MathUtils.Addition(itemEqu.BaseNum, (itemEqu.IncreaseNum * item.ItemLv), int.MaxValue);
                    }
                    //    dsItem1.PushIntoStack(itemEqu.BaseNum);
                    dsItem1.PushIntoStack(strengNum);
                    dsItem.PushIntoStack(dsItem1);
                }
                PushIntoStack(dsItem);
            }
        }
Beispiel #22
0
        public void PushLenIntoStack(DataStruct writer, object value)
        {
            var list = value as IList;

            writer.PushIntoStack(list == null ? 0 : list.Count);
        }
Beispiel #23
0
        public override void BuildPacket()
        {
            this.PushIntoStack(lifeNum);
            this.PushIntoStack((short)powerNum);
            this.PushIntoStack((short)soulNum);
            this.PushIntoStack((short)intelligenceNum);
            this.PushIntoStack((short)isPractice);
            this.PushIntoStack(storyTaskArray.Length);
            foreach (var task in storyTaskArray)
            {
                int collectNum = TrumpHelper.GetUserItemNum(ContextUser.UserID, task.TargetItemID);
                iscomplete = IsComplete(ContextUser, task);
                PlotInfo     plotInfo = new ConfigCacheSet <PlotInfo>().FindKey(task.PlotID);
                ItemBaseInfo itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(task.TargetItemID);
                DataStruct   dsItem   = new DataStruct();
                dsItem.PushIntoStack(task.TaskID);
                dsItem.PushIntoStack(task.TaskName.ToNotNullString());
                dsItem.PushIntoStack(task.TaskDescp.ToNotNullString());
                dsItem.PushIntoStack(plotInfo == null ? 0 : plotInfo.CityID);
                dsItem.PushIntoStack(task.PlotID);
                dsItem.PushIntoStack(task.TargetItemID);
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString());
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack(collectNum);
                dsItem.PushIntoStack(task.TargetItemNum);
                dsItem.PushIntoStack((short)iscomplete);

                this.PushIntoStack(dsItem);
            }
        }
Beispiel #24
0
        public override void BuildPacket()
        {
            this.PushIntoStack(_lingshiNum);
            this.PushIntoStack(_userGeneralArray.Count);
            foreach (var general in _userGeneralArray)
            {
                List <UserItemInfo> userItemArray = userItemDict.ContainsKey(general.GeneralID)
                    ? userItemDict[general.GeneralID] : new List <UserItemInfo>();

                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(general.GeneralID);
                dsItem.PushIntoStack(general.GeneralName.ToNotNullString());
                dsItem.PushIntoStack(userItemArray.Count);
                foreach (var item in userItemArray)
                {
                    var        itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(item.ItemID) ?? new ItemBaseInfo();
                    DataStruct dsItem1  = new DataStruct();
                    dsItem1.PushIntoStack(item.UserItemID.ToNotNullString());
                    dsItem1.PushIntoStack(item.ItemID);
                    dsItem1.PushIntoStack(itemInfo.ItemName.ToNotNullString());
                    dsItem1.PushIntoStack(itemInfo.HeadID.ToNotNullString());
                    dsItem1.PushIntoStack(itemInfo.QualityType.ToShort());
                    dsItem1.PushIntoStack(itemInfo.EquParts.ToShort());

                    dsItem.PushIntoStack(dsItem1);
                }

                PushIntoStack(dsItem);
            }
            this.PushIntoStack(_sparePartList.Length);
            for (int i = 0; i < _sparePartList.Length; i++)
            {
                var sparePart = _sparePartList[i] ?? new UserSparePart();
                if (sparePart.Position == 0)
                {
                    sparePart.SetPosition((short)(i + 1));
                }
                short enableStatus = 0;
                if (sparePart.CheckEnable(user.UserExtend.MaxLayerNum))
                {
                    enableStatus = 1;
                }
                var sparePartInfo = new ConfigCacheSet <SparePartInfo>().FindKey(sparePart.SparePartId) ?? new SparePartInfo();

                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(sparePart.Position);
                dsItem.PushIntoStack(enableStatus);
                dsItem.PushIntoStack(sparePart.UserSparepartID.ToNotNullString());
                dsItem.PushIntoStack(sparePartInfo.Name.ToNotNullString());
                dsItem.PushIntoStack(sparePartInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack(sparePartInfo.QualityType.ToShort());
                dsItem.PushIntoStack(sparePartInfo.CoinPrice);
                dsItem.PushIntoStack(sparePartInfo.LingshiPrice);

                dsItem.PushIntoStack(sparePart.Propertys.Count);
                for (int r = 0; r < sparePart.Propertys.Count; r++)
                {
                    var   property = sparePart.Propertys[r];
                    short proPos   = MathUtils.Addition(property.ValueIndex, (short)1, short.MaxValue);
                    short isEnable = 0;
                    if (property.IsEnable)
                    {
                        isEnable = 1;
                    }
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(property.AbilityType.ToShort());
                    dsItem1.PushIntoStack(property.Num.ToNotNullString());
                    dsItem1.PushIntoStack(property.HitMinValue.ToNotNullString());
                    dsItem1.PushIntoStack(property.HitMaxValue.ToNotNullString());
                    dsItem1.PushIntoStack(isEnable);
                    dsItem1.PushIntoStack(proPos);

                    dsItem.PushIntoStack(dsItem1);
                }

                this.PushIntoStack(dsItem);
            }
        }
Beispiel #25
0
        public override void BuildPacket()
        {
            string sportsName          = string.Empty;
            var    userGeneralCacheSet = new GameDataCacheSet <UserGeneral>();

            PushIntoStack(userRankArray.Count);
            foreach (UserRank rank in userRankArray)
            {
                sportsName = UserHelper.SportTitleName(rank.ObtainNum);
                short      trend  = SportTrend(rank.UserID);
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(rank.RankId);
                dsItem.PushIntoStack(rank.UserID.ToNotNullString());
                dsItem.PushIntoStack(rank.NickName.ToNotNullString());
                dsItem.PushIntoStack(rank.UserLv);
                dsItem.PushIntoStack(rank.TotalCombatNum > 0 ? rank.TotalCombatNum : UserHelper.GetTotalCombatNum(rank.UserID));
                dsItem.PushIntoStack(trend);
                dsItem.PushIntoStack(sportsName);
                dsItem.PushIntoStack(rank.VictoryNum);

                var embattleList = EmbattleHelper.CurrEmbattle(rank.UserID, true);
                dsItem.PushIntoStack(embattleList.Count);
                foreach (var item in embattleList)
                {
                    var        userGenearl = userGeneralCacheSet.FindKey(item.UserID, item.GeneralID);
                    DataStruct dsItem1     = new DataStruct();
                    dsItem1.PushIntoStack(item.GeneralID);
                    dsItem1.PushIntoStack(userGenearl == null ? string.Empty : userGenearl.GeneralName.ToNotNullString());
                    dsItem1.PushIntoStack(userGenearl == null ? string.Empty : userGenearl.HeadID.ToNotNullString());
                    dsItem1.PushIntoStack(userGenearl == null ? 0 : userGenearl.GeneralQuality.ToInt());
                    dsItem1.PushIntoStack(userGenearl == null ? 0 : userGenearl.GeneralLv.ToInt());
                    dsItem.PushIntoStack(dsItem1);
                }

                SportsRewardInfo sportsInfo = new ConfigCacheSet <SportsRewardInfo>().FindKey(rank.RankId);
                var embatList = EmbattleHelper.CurrEmbattle(rank.UserID, false);
                dsItem.PushIntoStack(embatList.Count);
                dsItem.PushIntoStack(embattleList.Count);
                dsItem.PushIntoStack(sportsInfo == null ? 0 : sportsInfo.RewardObtian);
                PushIntoStack(dsItem);
            }
        }
Beispiel #26
0
        public override void BuildPacket()
        {
            PushIntoStack(_coldTime);
            PushIntoStack(_userGeneralArray.Count);
            foreach (UserGeneral general in _userGeneralArray)
            {
                UserGeneral         general1      = general;
                List <UserItemInfo> userItemArray = UserItemHelper.GetItems(Uid).FindAll(u => u.GeneralID.Equals(general1.GeneralID) && u.ItemStatus == ItemStatus.YongBing);
                userItemArray.QuickSort((x, y) =>
                {
                    if (x == null && y == null)
                    {
                        return(0);
                    }
                    if (x != null && y == null)
                    {
                        return(1);
                    }
                    if (x == null)
                    {
                        return(-1);
                    }
                    return(new ConfigCacheSet <ItemBaseInfo>().FindKey(x.ItemID).EquParts.CompareTo(new ConfigCacheSet <ItemBaseInfo>().FindKey(y.ItemID).EquParts));
                });

                DataStruct ds = new DataStruct();
                ds.PushIntoStack(general == null ? 0 : general.GeneralID);
                ds.PushIntoStack(general == null ? string.Empty : general.GeneralName.ToNotNullString());
                // List<UserItem> itemList = userItemDict.ContainsKey(general.UserID) ? userItemDict[general.UserID] : new List<UserItem>();

                ds.PushIntoStack(userItemArray.Count);
                foreach (UserItemInfo userItem in userItemArray)
                {
                    int   equCodeTime = ConfigEnvSet.GetInt("UserItem.EquColdTime");
                    short isStrong    = 0;
                    int   strongMoney = new UserItemHelper(userItem).StrongMoney;
                    if (strongMoney > ContextUser.GameCoin)
                    {
                        isStrong = 1;
                    }
                    else if (userItem.ItemLv >= general.GeneralLv)
                    {
                        isStrong = 2;
                    }
                    ItemBaseInfo             itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(userItem.ItemID);
                    List <ItemSynthesisInfo> itemSynthesisInfosArray =
                        new ConfigCacheSet <ItemSynthesisInfo>().FindAll(m => m.SynthesisID == userItem.ItemID);
                    if (itemSynthesisInfosArray.Count > 0 && itemInfo.DemandLv <= ContextUser.UserLv)
                    {
                        isSynthesis = 1;
                    }
                    else
                    {
                        isSynthesis = 2;
                    }

                    DataStruct dsItem = new DataStruct();
                    dsItem.PushIntoStack(userItem.UserItemID);
                    dsItem.PushIntoStack(itemInfo == null ? 0 : itemInfo.ItemID);
                    dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString());
                    dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString());
                    dsItem.PushIntoStack(userItem.ItemLv);
                    dsItem.PushIntoStack(itemInfo == null ? LanguageManager.GetLang().shortInt : (short)itemInfo.QualityType);
                    dsItem.PushIntoStack(strongMoney);
                    dsItem.PushIntoStack(equCodeTime);
                    dsItem.PushIntoStack(isStrong);
                    dsItem.PushIntoStack(isSynthesis);

                    if (itemInfo != null)
                    {
                        List <ItemEquAttrInfo> itemEquArray = new ConfigCacheSet <ItemEquAttrInfo>().FindAll(e => e.ItemID.Equals(itemInfo.ItemID));
                        dsItem.PushIntoStack(itemEquArray.Count);
                        foreach (ItemEquAttrInfo equ in itemEquArray)
                        {
                            DataStruct dsDetail = new DataStruct();
                            dsDetail.PushIntoStack((int)equ.AttributeID);
                            int baseNum;
                            {
                                baseNum = MathUtils.Addition(equ.BaseNum, userItem.ItemLv * equ.IncreaseNum, int.MaxValue);
                            }
                            dsDetail.PushIntoStack(baseNum);
                            dsItem.PushIntoStack(dsDetail);
                        }

                        dsItem.PushIntoStack(itemEquArray.Count);
                        foreach (ItemEquAttrInfo equ in itemEquArray)
                        {
                            DataStruct dsDetail = new DataStruct();
                            dsDetail.PushIntoStack((int)equ.AttributeID);
                            int baseNum;
                            {
                                baseNum = MathUtils.Addition(equ.BaseNum, (int)(MathUtils.Addition(userItem.ItemLv, (short)1, short.MaxValue)) * equ.IncreaseNum, int.MaxValue);
                            }
                            dsDetail.PushIntoStack(baseNum);
                            dsItem.PushIntoStack(dsDetail);
                        }
                    }

                    ds.PushIntoStack(dsItem);
                }

                PushIntoStack(ds);
            }
            PushIntoStack(queueID);
        }
Beispiel #27
0
 public override void BuildPacket()
 {
     this.PushIntoStack(abilityList.Count);
     foreach (AbilityInfo abilityInfo in abilityList)
     {
         DataStruct dsItem = new DataStruct();
         dsItem.PushIntoStack(abilityInfo.AbilityID);
         dsItem.PushIntoStack(abilityInfo.AbilityName.ToNotNullString());
         dsItem.PushIntoStack(abilityInfo.AttackUnit.ToShort());
         dsItem.PushIntoStack(abilityInfo.AttackTaget.ToShort());
         dsItem.PushIntoStack(abilityInfo.EffectCount.ToShort());
         dsItem.PushIntoStack(abilityInfo.IsMove ? (short)1 : (short)0);
         dsItem.PushIntoStack(abilityInfo.EffectDesc.ToNotNullString());
         dsItem.PushIntoStack(abilityInfo.AbilityDesc.ToNotNullString());
         dsItem.PushIntoStack(abilityInfo.EffectID1.ToNotNullString());
         dsItem.PushIntoStack(abilityInfo.EffectID2.ToNotNullString());
         dsItem.PushIntoStack(abilityInfo.HeadID.ToNotNullString());
         dsItem.PushIntoStack(abilityInfo.MaxHeadID.ToNotNullString());
         dsItem.PushIntoStack(abilityInfo.FntHeadID.ToNotNullString());
         this.PushIntoStack(dsItem);
     }
 }
Beispiel #28
0
        public override void BuildPacket()
        {
            this.PushIntoStack(userPlotCombat.IsWin.ToShort());
            this.PushIntoStack(userPlotCombat.Experience);
            this.PushIntoStack(prizeItems.Count);
            foreach (PrizeItemInfo prizeItem in prizeItems)
            {
                ItemBaseInfo item   = new ConfigCacheSet <ItemBaseInfo>().FindKey(prizeItem.ItemID);
                DataStruct   dsItem = new DataStruct();
                dsItem.PushIntoStack(item.ItemName.ToNotNullString());
                dsItem.PushIntoStack(item.HeadID.ToNotNullString());
                dsItem.PushIntoStack(item.QualityType.ToShort());
                dsItem.PushIntoStack(prizeItem.Num);

                PushIntoStack(dsItem);
            }
            //攻方阵形
            PushIntoStack(combatProcessList.AttackList.Count);
            foreach (CombatEmbattle combatEmbattle in combatProcessList.AttackList)
            {
                int        isAttWait = combatEmbattle.IsWait ? 1 : 0;
                var        general   = _cacheSetGeneral.FindKey(combatEmbattle.GeneralID);
                DataStruct dsItem    = new DataStruct();
                dsItem.PushIntoStack(combatEmbattle.GeneralID);
                dsItem.PushIntoStack(combatEmbattle.GeneralName.ToNotNullString());
                //dsItem.PushIntoStack(combatEmbattle.HeadID.ToNotNullString());
                dsItem.PushIntoStack(general == null ? string.Empty : general.BattleHeadID.ToNotNullString());
                dsItem.PushIntoStack(combatEmbattle.Position.ToShort());
                dsItem.PushIntoStack(combatEmbattle.LiveNum);
                dsItem.PushIntoStack(combatEmbattle.LiveMaxNum);
                dsItem.PushIntoStack(combatEmbattle.MomentumNum);
                dsItem.PushIntoStack(combatEmbattle.MaxMomentumNum);
                dsItem.PushIntoStack(combatEmbattle.AbilityID);
                dsItem.PushIntoStack(combatEmbattle.GeneralLv);
                dsItem.PushIntoStack((short)isAttWait);
                // 增加佣兵品质
                dsItem.PushShortIntoStack(general == null ? 0 : general.GeneralQuality.ToShort());


                PushIntoStack(dsItem);
            }
            //防方阵形
            PushIntoStack(combatProcessList.DefenseList.Count);
            foreach (CombatEmbattle combatEmbattle in combatProcessList.DefenseList)
            {
                int        isDefWait = combatEmbattle.IsWait ? 1 : 0;
                DataStruct dsItem    = new DataStruct();
                dsItem.PushIntoStack(combatEmbattle.GeneralID);
                dsItem.PushIntoStack(combatEmbattle.GeneralName.ToNotNullString());
                dsItem.PushIntoStack(combatEmbattle.HeadID.ToNotNullString());
                dsItem.PushIntoStack(combatEmbattle.Position.ToShort());
                dsItem.PushIntoStack(combatEmbattle.LiveNum);
                dsItem.PushIntoStack(combatEmbattle.LiveMaxNum);
                dsItem.PushIntoStack(combatEmbattle.MomentumNum);
                dsItem.PushIntoStack(combatEmbattle.MaxMomentumNum);
                dsItem.PushIntoStack(combatEmbattle.AbilityID);
                dsItem.PushIntoStack(combatEmbattle.GeneralLv);
                dsItem.PushIntoStack((short)isDefWait);
                // 增加佣兵品质
                var general = _cacheSetGeneral.FindKey(combatEmbattle.GeneralID);
                dsItem.PushShortIntoStack(general == null ? 0 : general.GeneralQuality.ToShort());

                PushIntoStack(dsItem);
            }
            //战斗过程
            PushIntoStack(combatProcessList.ProcessList.Count);
            foreach (CombatProcess combatProcess in combatProcessList.ProcessList)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(combatProcess.GeneralID);
                dsItem.PushIntoStack(combatProcess.LiveNum);
                dsItem.PushIntoStack(combatProcess.Momentum);
                dsItem.PushIntoStack(combatProcess.AttackTaget.ToShort());
                dsItem.PushIntoStack(combatProcess.AttackUnit.ToShort());
                dsItem.PushIntoStack(combatProcess.AbilityProperty.ToShort());
                dsItem.PushIntoStack(combatProcess.AttStatus.ToShort());
                dsItem.PushIntoStack(combatProcess.DamageNum);
                dsItem.PushIntoStack(combatProcess.AttEffectID.ToNotNullString());
                dsItem.PushIntoStack(combatProcess.TargetEffectID.ToNotNullString());
                dsItem.PushIntoStack(combatProcess.IsMove.ToShort());
                dsItem.PushIntoStack(combatProcess.Position.ToShort());
                dsItem.PushIntoStack(combatProcess.Role.ToShort());


                dsItem.PushIntoStack(combatProcess.DamageStatusList.Count);
                foreach (AbilityEffectStatus effectStatus in combatProcess.DamageStatusList)
                {
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(effectStatus.AbilityType.ToShort());
                    dsItem1.PushIntoStack(effectStatus.DamageNum);
                    dsItem1.PushIntoStack(effectStatus.IsIncrease ? 1 : 0);

                    dsItem.PushIntoStack(dsItem1);
                }

                dsItem.PushIntoStack(combatProcess.TargetList.Count);
                foreach (TargetProcess targetProcess in combatProcess.TargetList)
                {
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(targetProcess.GeneralID);
                    dsItem1.PushIntoStack(targetProcess.LiveNum);
                    dsItem1.PushIntoStack(targetProcess.Momentum);
                    dsItem1.PushIntoStack(targetProcess.DamageNum);
                    dsItem1.PushIntoStack(targetProcess.IsShanBi.ToShort());
                    dsItem1.PushIntoStack(targetProcess.IsGeDang.ToShort());
                    dsItem1.PushIntoStack(targetProcess.IsBack.ToShort());
                    dsItem1.PushIntoStack(targetProcess.IsMove.ToShort());
                    dsItem1.PushIntoStack(targetProcess.BackDamageNum);
                    dsItem1.PushIntoStack(targetProcess.TargetStatus.ToShort());
                    dsItem1.PushIntoStack(targetProcess.Position.ToShort());
                    dsItem1.PushIntoStack(targetProcess.Role.ToShort());
                    //目标中招效果
                    dsItem1.PushIntoStack(targetProcess.DamageStatusList.Count);
                    foreach (AbilityEffectStatus effectStatus in targetProcess.DamageStatusList)
                    {
                        DataStruct dsItem12 = new DataStruct();
                        dsItem12.PushIntoStack(effectStatus.AbilityType.ToShort());
                        dsItem12.PushIntoStack(effectStatus.IsIncrease ? 1 : 0);

                        dsItem1.PushIntoStack(dsItem12);
                    }

                    dsItem1.PushIntoStack(targetProcess.IsBaoji.ToShort());
                    dsItem1.PushIntoStack(targetProcess.TrumpStatusList.Count);
                    foreach (var item in targetProcess.TrumpStatusList)
                    {
                        DataStruct dsItem13 = new DataStruct();
                        dsItem13.PushIntoStack((short)item.AbilityID);
                        dsItem13.PushIntoStack(item.Num);
                        dsItem1.PushIntoStack(dsItem13);
                    }

                    dsItem.PushIntoStack(dsItem1);
                }
                dsItem.PushIntoStack(combatProcess.TrumpStatusList.Count);
                foreach (var item in combatProcess.TrumpStatusList)
                {
                    DataStruct dsItem14 = new DataStruct();
                    dsItem14.PushIntoStack((short)item.AbilityID);
                    dsItem14.PushIntoStack(item.Num);
                    dsItem.PushIntoStack(dsItem14);
                }
                dsItem.PushIntoStack(combatProcess.FntHeadID.ToNotNullString());
                dsItem.PushIntoStack(combatProcess.AbilityID);
                PushIntoStack(dsItem);
            }

            PushIntoStack(userPlotCombat.BlessExperience);
            PushIntoStack(GotoNum);
            PushIntoStack(selfAbilityEffectList.Count);
            foreach (var selfAbilityEffect in selfAbilityEffectList)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(selfAbilityEffect.GeneralID);
                dsItem.PushIntoStack(selfAbilityEffect.EffectID1.ToNotNullString());
                dsItem.PushIntoStack(selfAbilityEffect.FntHeadID.ToNotNullString());
                dsItem.PushIntoStack(selfAbilityEffect.IsIncrease ? 1.ToShort() : 0.ToShort());
                dsItem.PushIntoStack(selfAbilityEffect.Position);
                dsItem.PushIntoStack(selfAbilityEffect.Role.ToInt());
                PushIntoStack(dsItem);
            }
            PushIntoStack(_userTalPriority);
            PushIntoStack(_npcTalPriority);
        }
Beispiel #29
0
        public override void BuildPacket()
        {
            this.PushIntoStack(coldTime);
            this.PushIntoStack(firstUser.UserName.ToNotNullString());
            this.PushIntoStack(firstUser.CurrWinNum);
            this.PushIntoStack(_mscoreNum);
            this.PushIntoStack(_hscoreNum);
            this.PushIntoStack(countryUser.MaxWinNum);
            this.PushIntoStack(countryUser.CurrWinNum);
            this.PushIntoStack(countryUser.WinCount);
            this.PushIntoStack(countryUser.FailCount);
            this.PushIntoStack(countryUser.ObtainNum);
            this.PushIntoStack(countryUser.GameCoin);
            this.PushIntoStack(processList.Count > 0 ? processList[processList.Count - 1].Version : 0);

            this.PushIntoStack(processList.Count);
            foreach (CountryCombatProcess countryProcess in processList)
            {
                #region 战报
                DataStruct ds = new DataStruct();
                ds.PushIntoStack(countryProcess.WinUserName.ToNotNullString());
                ds.PushIntoStack(countryProcess.FailUserName.ToNotNullString());
                ds.PushIntoStack(countryProcess.KillNum);
                ds.PushIntoStack(countryProcess.WinGameCoin);
                ds.PushIntoStack(countryProcess.WinObtainNum);
                ds.PushIntoStack(countryProcess.FailGameCoin);
                ds.PushIntoStack(countryProcess.FailObtainNum);

                //攻方阵形
                ds.PushIntoStack(countryProcess.ProcessContainer.AttackList.Count);
                foreach (CombatEmbattle combatEmbattle in countryProcess.ProcessContainer.AttackList)
                {
                    DataStruct dsItem = new DataStruct();
                    dsItem.PushIntoStack(combatEmbattle.GeneralID);
                    dsItem.PushIntoStack(combatEmbattle.GeneralName.ToNotNullString());
                    dsItem.PushIntoStack(combatEmbattle.HeadID.ToNotNullString());
                    dsItem.PushIntoStack(combatEmbattle.Position.ToShort());
                    dsItem.PushIntoStack(combatEmbattle.LiveNum);
                    dsItem.PushIntoStack(combatEmbattle.LiveMaxNum);
                    dsItem.PushIntoStack(combatEmbattle.MomentumNum);
                    dsItem.PushIntoStack(combatEmbattle.MaxMomentumNum);
                    dsItem.PushIntoStack(combatEmbattle.AbilityID);
                    dsItem.PushIntoStack(combatEmbattle.GeneralLv);
                    dsItem.PushIntoStack(combatEmbattle.IsWait ? (short)1 : (short)0);
                    ds.PushIntoStack(dsItem);
                }
                //防方阵形
                ds.PushIntoStack(countryProcess.ProcessContainer.DefenseList.Count);
                foreach (CombatEmbattle combatEmbattle in countryProcess.ProcessContainer.DefenseList)
                {
                    DataStruct dsItem = new DataStruct();
                    dsItem.PushIntoStack(combatEmbattle.GeneralID);
                    dsItem.PushIntoStack(combatEmbattle.GeneralName.ToNotNullString());
                    dsItem.PushIntoStack(combatEmbattle.HeadID.ToNotNullString());
                    dsItem.PushIntoStack(combatEmbattle.Position.ToShort());
                    dsItem.PushIntoStack(combatEmbattle.LiveNum);
                    dsItem.PushIntoStack(combatEmbattle.LiveMaxNum);
                    dsItem.PushIntoStack(combatEmbattle.MomentumNum);
                    dsItem.PushIntoStack(combatEmbattle.MaxMomentumNum);
                    dsItem.PushIntoStack(combatEmbattle.AbilityID);
                    dsItem.PushIntoStack(combatEmbattle.GeneralLv);
                    dsItem.PushIntoStack(combatEmbattle.IsWait ? (short)1 : (short)0);
                    ds.PushIntoStack(dsItem);
                }
                //战斗过程
                ds.PushIntoStack(countryProcess.ProcessContainer.ProcessList.Count);
                foreach (CombatProcess combatProcess in countryProcess.ProcessContainer.ProcessList)
                {
                    DataStruct dsItem = new DataStruct();
                    dsItem.PushIntoStack(combatProcess.GeneralID);
                    dsItem.PushIntoStack(combatProcess.LiveNum);
                    dsItem.PushIntoStack(combatProcess.Momentum);
                    dsItem.PushIntoStack(combatProcess.AttackTaget.ToShort());
                    dsItem.PushIntoStack(combatProcess.AttackUnit.ToShort());
                    dsItem.PushIntoStack(combatProcess.AbilityProperty.ToShort());
                    dsItem.PushIntoStack(combatProcess.AttStatus.ToShort());
                    dsItem.PushIntoStack(combatProcess.DamageNum);
                    dsItem.PushIntoStack(combatProcess.AttEffectID.ToNotNullString());
                    dsItem.PushIntoStack(combatProcess.TargetEffectID.ToNotNullString());
                    dsItem.PushIntoStack(combatProcess.IsMove.ToShort());
                    dsItem.PushIntoStack(combatProcess.Position.ToShort());
                    dsItem.PushIntoStack(combatProcess.Role.ToShort());

                    dsItem.PushIntoStack(combatProcess.DamageStatusList.Count);
                    foreach (AbilityEffectStatus effectStatus in combatProcess.DamageStatusList)
                    {
                        DataStruct dsItem1 = new DataStruct();
                        dsItem1.PushIntoStack(effectStatus.AbilityType.ToShort());
                        dsItem1.PushIntoStack(effectStatus.DamageNum);
                        dsItem1.PushIntoStack(effectStatus.IsIncrease ? 1 : 0);

                        dsItem.PushIntoStack(dsItem1);
                    }

                    dsItem.PushIntoStack(combatProcess.TargetList.Count);
                    foreach (TargetProcess targetProcess in combatProcess.TargetList)
                    {
                        DataStruct dsItem1 = new DataStruct();
                        dsItem1.PushIntoStack(targetProcess.GeneralID);
                        dsItem1.PushIntoStack(targetProcess.LiveNum);
                        dsItem1.PushIntoStack(targetProcess.Momentum);
                        dsItem1.PushIntoStack(targetProcess.DamageNum);
                        dsItem1.PushIntoStack(targetProcess.IsShanBi.ToShort());
                        dsItem1.PushIntoStack(targetProcess.IsGeDang.ToShort());
                        dsItem1.PushIntoStack(targetProcess.IsBack.ToShort());
                        dsItem1.PushIntoStack(targetProcess.IsMove.ToShort());
                        dsItem1.PushIntoStack(targetProcess.BackDamageNum);
                        dsItem1.PushIntoStack(targetProcess.TargetStatus.ToShort());
                        dsItem1.PushIntoStack(targetProcess.Position.ToShort());
                        dsItem1.PushIntoStack(targetProcess.Role.ToShort());
                        //目标中招效果
                        dsItem1.PushIntoStack(targetProcess.DamageStatusList.Count);
                        foreach (AbilityEffectStatus effectStatus in targetProcess.DamageStatusList)
                        {
                            DataStruct dsItem12 = new DataStruct();
                            dsItem12.PushIntoStack(effectStatus.AbilityType.ToShort());
                            dsItem12.PushIntoStack(effectStatus.IsIncrease ? 1 : 0);

                            dsItem1.PushIntoStack(dsItem12);
                        }
                        dsItem1.PushIntoStack(targetProcess.IsBaoji.ToShort());
                        dsItem1.PushIntoStack(targetProcess.TrumpStatusList.Count);
                        foreach (var item in targetProcess.TrumpStatusList)
                        {
                            DataStruct dsItem13 = new DataStruct();
                            dsItem13.PushIntoStack((short)item.AbilityID);
                            dsItem13.PushIntoStack(item.Num);
                            dsItem1.PushIntoStack(dsItem13);
                        }
                        dsItem.PushIntoStack(dsItem1);
                    }
                    dsItem.PushIntoStack(combatProcess.TrumpStatusList.Count);
                    foreach (var item in combatProcess.TrumpStatusList)
                    {
                        DataStruct dsItem14 = new DataStruct();
                        dsItem14.PushIntoStack((short)item.AbilityID);
                        dsItem14.PushIntoStack(item.Num);
                        dsItem.PushIntoStack(dsItem14);
                    }
                    ds.PushIntoStack(dsItem);
                }

                ds.PushIntoStack(countryProcess.FaildKillNum);
                this.PushIntoStack(ds);
                //战报结束
                #endregion
            }

            this.PushIntoStack((countryUser.InspirePercent * 100).ToInt());
            this.PushIntoStack(countryUser.UserExpNum);
            this.PushIntoStack(countryUser.Status);
        }
Beispiel #30
0
        public override void BuildPacket()
        {
            this.PushIntoStack(cityList.Count);
            foreach (CityInfo cityInfo in cityList)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(cityInfo.CityID);
                dsItem.PushIntoStack(cityInfo.CityName.ToNotNullString());
                dsItem.PushIntoStack(cityInfo.PointX);
                dsItem.PushIntoStack(cityInfo.PointY);
                dsItem.PushIntoStack(cityInfo.GoPointY1);
                dsItem.PushIntoStack(cityInfo.GoPointY2);
                dsItem.PushIntoStack(cityInfo.MinLv);
                dsItem.PushIntoStack(cityInfo.MaxLv);
                dsItem.PushIntoStack(cityInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack(cityInfo.BgScence.ToNotNullString());
                dsItem.PushIntoStack(cityInfo.FgScence.ToNotNullString());
                dsItem.PushIntoStack(IsExistElite(cityInfo.CityID));

                var cityNpcList = new ConfigCacheSet <CityNpcInfo>().FindAll(m => m.CityID == cityInfo.CityID);
                dsItem.PushIntoStack(cityNpcList.Count);
                foreach (CityNpcInfo cityNpc in cityNpcList)
                {
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(cityNpc.NpcID);
                    dsItem1.PushIntoStack(cityNpc.NpcName.ToNotNullString());
                    dsItem1.PushIntoStack(cityNpc.HeadID.ToNotNullString());
                    dsItem1.PushIntoStack(cityNpc.HeadID2.ToNotNullString());
                    dsItem1.PushIntoStack(cityNpc.PointX);
                    dsItem1.PushIntoStack(cityNpc.PointY);
                    dsItem1.PushIntoStack(cityNpc.CommandID);
                    dsItem1.PushIntoStack(cityNpc.NpcDesc.ToNotNullString());

                    dsItem.PushIntoStack(dsItem1);
                }
                this.PushIntoStack(dsItem);
            }
        }
Beispiel #31
0
        public override void BuildPacket()
        {
            this.PushIntoStack(_generalArray.Length);
            foreach (var general in _generalArray)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(general.GeneralID);
                dsItem.PushIntoStack(general.GeneralName.ToNotNullString());
                this.PushIntoStack(dsItem);
            }
            this.PushIntoStack(_firstName.ToNotNullString());
            this.PushIntoStack(_headID.ToNotNullString());
            this.PushIntoStack(_lifeNum);
            this.PushIntoStack((short)_careerID);
            this.PushIntoStack(_careerName.ToNotNullString());
            this.PushIntoStack((short)_powerNum);
            this.PushIntoStack((short)_soulNum);
            this.PushIntoStack((short)_intellectNum);
            this.PushIntoStack(_abilityName.ToNotNullString());
            this.PushIntoStack(_abilityDesc.ToNotNullString());
            this.PushIntoStack((short)_isRecruit);
            this.PushIntoStack(_storyTaskArray.Length);
            foreach (var task in _storyTaskArray)
            {
                int          collectNum = TrumpHelper.GetUserItemNum(ContextUser.UserID, task.TargetItemID);
                PlotInfo     plotInfo   = new ConfigCacheSet <PlotInfo>().FindKey(task.PlotID);
                ItemBaseInfo itemInfo   = new ConfigCacheSet <ItemBaseInfo>().FindKey(task.TargetItemID);
                iscomplete = GeneralHelper.IsComplete(ContextUser, task);
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(task.TaskID);
                dsItem.PushIntoStack(task.TaskName.ToNotNullString());
                dsItem.PushIntoStack(task.TaskDescp.ToNotNullString());
                dsItem.PushIntoStack(plotInfo == null ? 0 : plotInfo.CityID);
                dsItem.PushIntoStack(task.PlotID);
                dsItem.PushIntoStack(task.TargetItemID);
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString());
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack(collectNum);
                dsItem.PushIntoStack(task.TargetItemNum);
                dsItem.PushIntoStack((short)iscomplete);
                dsItem.PushIntoStack(task.Reward.Count);
                foreach (var prize in task.Reward)
                {
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack((short)prize.Type);
                    dsItem1.PushIntoStack(GeneralHelper.PrizeItemName(prize).ToNotNullString());
                    dsItem1.PushIntoStack(prize.Num);
                    dsItem.PushIntoStack(dsItem1);
                }

                this.PushIntoStack(dsItem);
            }
        }