/// <summary> /// 精英副本挑战次数 /// </summary> /// <param name="plotNPCInfo"></param> private void EliteDailyRestrain(PlotNPCInfo plotNPCInfo) { UserDailyRestrain userRestrain = new GameDataCacheSet <UserDailyRestrain>().FindKey(Uid); if (userRestrain == null) { userRestrain = new UserDailyRestrain() { UserID = Uid, FunPlot = new CacheList <FunPlot>() }; } int plotNum = 0; FunPlot funPlot = null; if (userRestrain.FunPlot.Count > 0) { funPlot = userRestrain.FunPlot.Find(m => m.PlotID == plotNPCInfo.PlotID); } if (funPlot == null) { plotNum = 1; } else { plotNum = MathUtils.Addition(funPlot.Num, 1, int.MaxValue); userRestrain.FunPlot.Remove(funPlot); } funPlot = new FunPlot { PlotID = plotNPCInfo.PlotID, Num = plotNum }; userRestrain.FunPlot.Add(funPlot); }
/// <summary> /// 天地劫挑战次数 /// </summary> /// <param name="plotNPCInfo"></param> private void KalpaDailyRestrain(PlotNPCInfo plotNPCInfo) { UserDailyRestrain userRestrain = new GameDataCacheSet <UserDailyRestrain>().FindKey(Uid); if (userRestrain == null) { userRestrain = new UserDailyRestrain() { UserID = Uid, FunPlot = new CacheList <FunPlot>() }; } if (userRestrain.UserExtend == null) { userRestrain.UserExtend = new DailyUserExtend(); userRestrain.UserExtend.KalpaPlot = new CacheList <FunPlot>(); } int plotNum = 0; FunPlot funPlot = userRestrain.UserExtend.KalpaPlot.Find(m => m.PlotID == plotNPCInfo.PlotID); if (funPlot == null) { plotNum = 1; } else { plotNum = MathUtils.Addition(funPlot.Num, 1, int.MaxValue); userRestrain.UserExtend.UpdateNotify(obj => { userRestrain.UserExtend.KalpaPlot.Remove(funPlot); return(true); }); } funPlot = new FunPlot { PlotID = plotNPCInfo.PlotID, Num = plotNum }; userRestrain.UserExtend.UpdateNotify(obj => { userRestrain.UserExtend.KalpaPlot.Add(funPlot); return(true); }); }
private bool IsPlotOut(PlotNPCInfo npcInfo) { if (npcInfo == null) { return(true); } var userPlot = UserPlotHelper.GetUserPlotInfo(ContextUser.UserID, npcInfo.PlotID); if (userPlot != null && UserHelper.IsKill(ContextUser, userPlot.PlotID)) { int layerNum = ContextUser.UserExtend.LayerNum; int nextLayerNum = MathUtils.Addition(layerNum, 1); if (new ConfigCacheSet <PlotInfo>().FindAll(m => m.LayerNum == nextLayerNum && m.PlotType == PlotType.Kalpa).Count == 0) { int nextHurdleNum = MathUtils.Addition(ContextUser.UserExtend.HurdleNum, 1); //是否有下一关 return(new ConfigCacheSet <PlotInfo>().FindAll(m => m.LayerNum == layerNum && m.PlotSeqNo == nextHurdleNum && m.PlotType == PlotType.Kalpa).Count == 0); } } return(false); }
/// <summary> /// 天地劫挑战次数 /// </summary> /// <param name="plotNPCInfo"></param> private void KalpaDailyRestrain(PlotNPCInfo plotNPCInfo) { var cacheSet = new GameDataCacheSet <UserDailyRestrain>(); UserDailyRestrain userRestrain = cacheSet.FindKey(Uid); if (userRestrain == null) { userRestrain = new UserDailyRestrain() { UserID = Uid }; cacheSet.Add(userRestrain, GameEnvironment.CacheUserPeriod); userRestrain = cacheSet.FindKey(Uid); } if (userRestrain.UserExtend == null) { userRestrain.UserExtend = new DailyUserExtend(); //userRestrain.UserExtend.KalpaPlot = new List<FunPlot>(); } int plotNum = 0; FunPlot funPlot = userRestrain.UserExtend.KalpaPlot.Find(m => m.PlotID == plotNPCInfo.PlotID); if (funPlot == null) { plotNum = 1; funPlot = new FunPlot { PlotID = plotNPCInfo.PlotID, Num = plotNum }; userRestrain.UserExtend.UpdateNotify(obj => { userRestrain.UserExtend.KalpaPlot.Add(funPlot); return(true); }); } }
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); } }