Exemple #1
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);
            }
        }
Exemple #2
0
        public override void BuildPacket()
        {
            this.PushIntoStack(_userTaskList.Count);
            foreach (UserTask userTask in _userTaskList)
            {
                StoryTaskInfo taskInfo = new ShareCacheStruct <StoryTaskInfo>().FindKey(userTask.TaskID);
                //CityNpcInfo reNpcInfo = new ShareCacheStruct<CityNpcInfo>().FindKey(taskInfo.ReleaseNpcID);

                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)
                {
                    deNpcInfo          = new ShareCacheStruct <CityNpcInfo>().FindKey(taskInfo.DeliveryNpcID);
                    plotInfo           = new ShareCacheStruct <PlotInfo>().FindKey(taskInfo.PlotID);
                    npcInfo            = new ShareCacheStruct <PlotNPCInfo>().FindKey(taskInfo.PlotNpcID);
                    itemInfo           = new ShareCacheStruct <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((short)userTask.TaskState);
                dsItem.PushIntoStack(taskInfo == null ? LanguageManager.GetLang().shortInt : (short)taskInfo.TaskType);
                dsItem.PushIntoStack(taskInfo == null ? 0 : taskInfo.ReleaseNpcID);
                dsItem.PushIntoStack(taskInfo == null ? LanguageManager.GetLang().shortInt : (short)taskInfo.TermsType);
                dsItem.PushIntoStack(taskInfo == null ? 0 : taskInfo.DeliveryNpcID);
                dsItem.PushIntoStack(deNpcInfo == null ? string.Empty : deNpcInfo.NpcName.ToNotNullString());

                dsItem.PushIntoStack(plotInfo == null ? 0 : plotInfo.CityID);
                dsItem.PushIntoStack(taskInfo == null ? 0 : taskInfo.PlotID);
                dsItem.PushIntoStack(plotInfo == null ? string.Empty : plotInfo.PlotName.ToNotNullString());
                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 ShareCacheStruct <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 ? string.Empty : itemInfo.ItemName.ToNotNullString());
                dsItem.PushIntoStack(taskInfo == null ? 0 : taskInfo.TargetItemNum);
                dsItem.PushIntoStack(UserItemHelper.CheckItemNum(ContextUser.UserID, taskInfo == null ? 0 : taskInfo.TargetItemID));
                this.PushIntoStack(dsItem);
            }
        }