예제 #1
0
파일: Common.LZH.cs 프로젝트: Lantnr/MyTest
 /// <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);
 }
예제 #2
0
파일: Common.LZH.cs 프로젝트: Lantnr/MyTest
        /// <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);    //推送协议
        }
예제 #3
0
파일: Common.LGR.cs 프로젝트: Lantnr/MyTest
        /// <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)));
        }
예제 #4
0
파일: Common.cs 프로젝트: Lantnr/MyTest
 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();
 }
예제 #5
0
파일: WORK_FIGHT.cs 프로젝트: Lantnr/MyTest
        /// <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()));
        }
예제 #6
0
        /// <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);//推送协议
        }
예제 #7
0
        /// <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);
        }
예제 #8
0
        /// <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);
        }
예제 #9
0
        /// <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);
        }
예제 #10
0
 /// <summary> 任务战斗成功 </summary>
 /// <returns></returns>
 private ASObject TaskFightSucceed(tg_task newtask)
 {
     newtask.is_lock = (int)GuardTaskType.TRIGGER;
     newtask.Update();
     return(new ASObject(BulidData()));
 }