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); } }
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); } }