/// <summary>更新谣言任务</summary> private bool CheckRumorTask(tg_task task, string finishstep) { task.task_step_data = finishstep; task.task_state = (int)TaskStateType.TYPE_REWARD; task.Update(); return(true); }
/// <summary>完成任务并推送</summary> private void TaskUpdateAndSend(tg_task task, string finishstep) { var taskinfo = Variable.TaskInfo.FirstOrDefault(q => q.userid == task.user_id); if (taskinfo == null) { return; } //更新对应任务戒严场景id switch (task.task_step_type) { case (int)TaskStepType.ARREST_RUMOR: taskinfo.ArrestRumorSceneId = 0; break; case (int)TaskStepType.ARREST_FIRE: taskinfo.ArrestFireSceneId = 0; break; case (int)TaskStepType.ARREST_BREAK: taskinfo.ArrestBreakSceneId = 0; break; case (int)TaskStepType.ARREST_SEll_WINE: taskinfo.ArrestSellSceneId = 0; break; } task.task_step_data = finishstep; task.task_state = (int)TaskStateType.TYPE_REWARD; task.Update(); (new Share.TGTask()).AdvancedTaskPush(task.user_id, task); //推送协议 }
/// <summary> 连续战斗 </summary> /// <param name="session"></param> /// <param name="task"></param> /// <param name="btask"></param> /// <param name="npc"></param> /// <returns></returns> public ASObject ContinueFight(TGGSession session, tg_task task, string btask, int npc) { var step = task.task_step_data.Split("|"); var bstep = btask.Split("|"); //步骤条件 if (step.Count() != bstep.Count() || step.Count() < 3) { return(CommonHelper.ErrorResult(ResultType.TASK_STEP_ERROR)); } var ftep = step[2]; //战斗步骤 var bftep = bstep[2]; //战斗步骤 var s = ftep.Split('_'); if (s[0] != Convert.ToInt32(TaskStepType.NPC_FIGHT_TIMES).ToString()) { return(CommonHelper.ErrorResult(ResultType.TASK_STEP_ERROR)); } ftep = GetNewFightString(session, s); if (ftep.IndexOf("false", StringComparison.Ordinal) > -1) { step[2] = ftep.Replace("false", ""); task.task_step_data = string.Join("|", step); task.task_state = (int)TaskStateType.TYPE_REWARD; task.Update(); return(new ASObject(BulidData((int)ResultType.SUCCESS, task))); } if (string.IsNullOrEmpty(ftep) || string.IsNullOrEmpty(bftep)) { return(CommonHelper.ErrorResult(ResultType.NO_DATA)); } var _ftep = ftep.Substring(0, ftep.Length - 1); var _bftep = bftep.Substring(0, bftep.Length - 1); if (_ftep == _bftep) { var tftep = bstep[1]; //对话步骤 step[1] = tftep; task.task_state = (int)TaskStateType.TYPE_REWARD; } step[2] = ftep; task.task_step_data = string.Join("|", step); task.Update(); return(new ASObject(BulidData((int)ResultType.SUCCESS, task))); }
public void TaskUpdate(tg_task task, string newstep, string basestep) { task.task_step_data = newstep; if (newstep == basestep) { task.task_state = (int)TaskStateType.TYPE_REWARD; } task.Update(); }
/// <summary> 任务失败 </summary> private ASObject TaskFightLose(TGGSession session, tg_task newtask) { var mainid = newtask.id; newtask = Common.GetInstance().WorkTasksInit(newtask); newtask.id = mainid; newtask.Update(); SendProtocol(session, newtask); return(new ASObject(BulidData())); }
/// <summary> /// 完成任务并推送 /// </summary> /// <param name="task"></param> /// <param name="finishstep"></param> private void TaskUpdateAndSend(tg_task task, string finishstep) { var v_task = Common.getInstance().GetWorkInfo(task.user_id); if (v_task != null) { v_task.GuardSceneId = 0; } task.task_step_data = finishstep; task.task_state = (int)TaskStateType.TYPE_REWARD; task.Update(); (new Share.TGTask()).AdvancedTaskPush(task.user_id, task);//推送协议 }
/// <summary>刺杀结果</summary> public bool KillTask(int npc, BaseTaskVocation basetask, int camp, int rolelevel, ref tg_task task) { int result = 0; var t = task.CloneEntity(); var mysteplist = task.task_step_data.Split('_').ToList(); if (mysteplist[1] != npc.ToString()) { return(false); } int npcid = 0; npcid = camp == (int)CampType.East ? GetNpcId((int)CampType.West, rolelevel) : GetNpcId((int)CampType.East, rolelevel);//npcid = 15010001;//测试 var kill = Common.GetInstance().GetWorkInfo(task.user_id); kill.KillNpcid = npcid; var watchlist = Variable.WorkInfo.Where(m => m.WatchNpcid == npcid && m.P_State == 0).ToList(); if (watchlist.Any()) //判断有没有守护玩家 { if (kill.KillState == (int)TaskKillType.WIN) //判断是否已挑战了守护玩家 { result = NpcChallenge(task.user_id, npcid, FightType.NPC_MONSTER); } else { if (!KillWatch(watchlist, task.user_id)) { return(false); } return(true); } } else { result = NpcChallenge(task.user_id, npcid, FightType.NPC_MONSTER); } if (result == (int)FightResultType.WIN) { task.task_step_data = basetask.stepCondition; task.task_state = (int)TaskStateType.TYPE_REWARD; task.Update(); } kill.KillNpcid = 0; kill.KillState = 0; return(true); }
/// <summary> /// 搜寻宝物更新 /// </summary> /// <param name="task"></param> /// <returns></returns> private bool CheckSearch(tg_task task) { var steplist = task.task_step_data.Split('_'); var count = Convert.ToInt32(steplist[2]); var needcount = 3; count++; if (count > needcount) { return(false); } steplist[2] = count.ToString(); var newstep = string.Join("_", steplist); task.task_step_data = newstep; if (count == needcount) { task.task_state = (int)TaskStateType.TYPE_REWARD; } task.Update(); return(true); }
/// <summary> 任务实体更新</summary> private void GetTaskChange(tg_task task, tg_role role, BaseAppraise baseinfo) { var roleitem = view_role.GetFindRoleById(role.id); task.rid = role.id; task.task_starttime = (DateTime.Now.Ticks - 621355968000000000) / 10000; task.task_state = (int)TaskStateType.TYPE_UNFINISHED; var temp = baseinfo.expression; temp = temp.Replace("tea", roleitem.LifeSkill.sub_tea_level.ToString("0.00")); temp = temp.Replace("medical", roleitem.LifeSkill.sub_medical_level.ToString("0.00")); temp = temp.Replace("ninjitsu", roleitem.LifeSkill.sub_ninjitsu_level.ToString("0.00")); temp = temp.Replace("calculate", roleitem.LifeSkill.sub_calculate_level.ToString("0.00")); temp = temp.Replace("eloquence", roleitem.LifeSkill.sub_eloquence_level.ToString("0.00")); temp = temp.Replace("martial", roleitem.LifeSkill.sub_martial_level.ToString("0.00")); temp = temp.Replace("craft", roleitem.LifeSkill.sub_craft_level.ToString("0.00")); temp = temp.Replace("etiquette", roleitem.LifeSkill.sub_etiquette_level.ToString("0.00")); temp = temp.Replace("reclaimed", roleitem.LifeSkill.sub_reclaimed_level.ToString("0.00")); temp = temp.Replace("build", roleitem.LifeSkill.sub_build_level.ToString("0.00")); temp = temp.Replace("mine", roleitem.LifeSkill.sub_mine_level.ToString("0.00")); temp = temp.Replace("tactical", roleitem.LifeSkill.sub_tactical_level.ToString("0.00")); temp = temp.Replace("ashigaru", roleitem.LifeSkill.sub_ashigaru_level.ToString("0.00")); temp = temp.Replace("equestrian", roleitem.LifeSkill.sub_equestrian_level.ToString("0.00")); temp = temp.Replace("archer", roleitem.LifeSkill.sub_archer_level.ToString("0.00")); temp = temp.Replace("artillery", roleitem.LifeSkill.sub_artillery_level.ToString("0.00")); temp = temp.Replace("captain", tg_role.GetSingleTotal(RoleAttributeType.ROLE_CAPTAIN, role).ToString("0.00")); temp = temp.Replace("force", tg_role.GetSingleTotal(RoleAttributeType.ROLE_FORCE, role).ToString("0.00")); temp = temp.Replace("brains", tg_role.GetSingleTotal(RoleAttributeType.ROLE_BRAINS, role).ToString("0.00")); temp = temp.Replace("charm", tg_role.GetSingleTotal(RoleAttributeType.ROLE_CHARM, role).ToString("0.00")); temp = temp.Replace("govern", tg_role.GetSingleTotal(RoleAttributeType.ROLE_GOVERN, role).ToString("0.00")); var express = CommonHelper.EvalExpress(temp); var reducetime = Convert.ToInt32(express); var times = (baseinfo.time - reducetime) * 1000; task.task_endtime = task.task_starttime + times; task.Update(); Common.GetInstance().NewTaskStart(times, task); }
/// <summary> 任务战斗成功 </summary> /// <returns></returns> private ASObject TaskFightSucceed(tg_task newtask) { newtask.is_lock = (int)GuardTaskType.TRIGGER; newtask.Update(); return(new ASObject(BulidData())); }