cmd) { case CmdCode::cmd_task_getInfo: # 6201 return TaskProc::getTaskInfo(); case CmdCode::cmd_task_getReward: # 6202 return TaskProc::getReward(); case CmdCode::cmd_task_getAchieveReward: # 6203 领取成就奖励 return TaskProc::getAchieveReward(); case CmdCode::cmd_task_receiveActiveTaskReward: # 6204 领取活动任务奖励 return TaskProc::receiveActiveTaskReward(); case CmdCode::cmd_task_receiveActivePointBoxReward: # 6205 领取活跃点宝箱奖励 return TaskProc::receiveActivePointBoxReward(); default: Err(ErrCode::cmd_err); } } /** * 6205 领取活跃点宝箱奖励 */ public static function receiveActivePointBoxReward(){ list($type,$typeId) = req()->paras; $point= 0; switch ($type) { case Enum_ActiveTaskType::Day7: $point = ctx()->task->day7Point; break; case Enum_ActiveTaskType::DailyTask: $point = ctx()->task->dailyTaskPoint; break; case Enum_ActiveTaskType::WeekTask: $point = ctx()->task->weekTaskPoint; break; default: break; } my_Assert($typeId >= $point, ErrCode::task_CanotPriceReviced); $mo = GameConfig::activepointreward_getItem($type,$typeId); my_Assert($mo != null, ErrCode::err_const_no); StoreProc::AddMultiItemInStore($mo->reward); $strId = $type."-".$typeId; ctx()->task->activePointReceived[] = $strId; UserProc::updateUserInfo(); return Resp::ok(array("task" => ctx()->task, "store" => ctx()->store, )); } /** * 6204 领取活动任务奖励 * @return type */ public static function receiveActiveTaskReward() { list($uid) = req()->paras; my_Assert(StlUtil::dictHasProperty(ctx()->task->activeTaskInfo, $uid), ErrCode::task_NoExist); $ins_activeTaskInfo = new Ins_TaskStep_Active(ctx()->task->activeTaskInfo->$uid); my_Assert($ins_activeTaskInfo->cur >= $ins_activeTaskInfo->max(), ErrCode::task_CanotPriceReviced); my_Assert($ins_activeTaskInfo->state == Enum_TaskCardStateType::finish, ErrCode::task_CanotPriceReviced); StoreProc::AddMultiItemInStore($ins_activeTaskInfo->mo()->prizes); ctx()->task->activeTaskInfo->$uid->state = Enum_TaskCardStateType::finish; switch ($ins_activeTaskInfo->mo()->type) { case Enum_ActiveTaskType::Day7: ctx()->task->day7Point += $ins_activeTaskInfo->mo()->activePoint; break; case Enum_ActiveTaskType::DailyTask: ctx()->task->dailyTaskPoint += $ins_activeTaskInfo->mo()->activePoint; break; case Enum_ActiveTaskType::WeekTask: ctx()->task->weekTaskPoint += $ins_activeTaskInfo->mo()->activePoint; break; default: break; } UserProc::updateUserInfo(); return Resp::ok(array("task" => ctx()->task, "store" => ctx()->store, )); } /** * 6203 领取成就奖励 * @return type */ public static function getAchieveReward() { list($typeId) = req()->paras; $mo = GameConfig::achieve_getItem($typeId); my_Assert($mo != null, ErrCode::err_const_no); my_Assert(StlUtil::dictHasProperty(ctx()->task->achieveDic, $typeId), ErrCode::err_const_no); $achieveDic = ctx()->task->achieveDic->$typeId; $list = explode(',', $mo->condition); $length = count($list); my_Assert($achieveDic->val >= $achieveDic->max, ErrCode::task_CanotPriceReviced); my_Assert($achieveDic->received < $achieveDic->max, ErrCode::task_PriceRepeatReviced); $index = 0; foreach ($list as $k => $num) { if ($num == $achieveDic->max) { $index = $k; break; } } //领取奖励 $pList = explode(';', $mo->reward); StoreProc::AddMultiItemInStore($pList[$index]); //下一个max if ($index + 1 < $length) { $achieveDic->max = $list[$index + 1]; } ctx()->task->achieveDic->$typeId = $achieveDic; UserProc::updateUserInfo(); return Resp::ok(array( "achieve" => ctx()->task->achieveDic, "cash" => ctx()->baseInfo->cash, )); } /** * 初始化成就信息 */ public static function initAchieveData() { // $dic = GameConfig::achieve_new(); // if($dic == null){ // return; // } // // $achieveDic = ctx()->task->achieveDic; // if(count((array)$achieveDic) > 0){ // return; // } // // foreach ($dic as $key => $value) { // $item = new Ins_Achieve(); // $typeId = $value->typeId; // $item->typeId = $typeId; // $item->cmd = $value->cmd; // //$item->max = explode(',', $value->condition)[0]; // $item->max = $value->num; // $achieveDic->$typeId = $item; // } // ctx()->task->achieveDic = $achieveDic; } //检测成就条件 public static function CheckAchieveConditions($arg) { $achieveDic = ctx()->task->achieveDic; foreach ($achieveDic as $key => $value) { $achieve = new Ins_Achieve($value); $tag = false; if ($achieve->cmd == $arg->taskType) { $mo = $achieve->getAchieveMo(); if ($mo->paras == $arg->paras[0]) {//暂定,若有多个参数,在进行解析 $tag = true; } } if ($tag) {//找到正确数据 switch ($arg->ope) { case Enum_PropelType::set: $achieve->val = $arg->val; break; case Enum_PropelType::add: $achieve->val += $arg->val; break; default: break; } } } ctx()->task->achieveDic = $achieveDic; UserProc::updateUserInfo(); } //-------------------成就条件检测 //单件装备等级达到X级 static function accumulateEquiplevel_one($lv) { $taskEventArg = new Ins_TaskEventArgs(Enum_AchieveType::equiplevel_one, Enum_PropelType::set, $lv, array()); //self::CheckAchieveConditions($taskEventArg); } //累计消耗X钻石 static function accumulateCostCash($num) { $taskEventArg = new Ins_TaskEventArgs(Enum_AchieveType::accumulateCostCash, Enum_PropelType::add, $num, array()); //self::CheckAchieveConditions($taskEventArg); } //------------------------------------------------------ public static function getTaskInfo() { list($type) = req()->paras; //武器uid return Resp::ok(array("task" => ctx()->task, )); } /** * 领取任务奖励 * @return type */ public static function ReceiveTaskReward() { list($type, $uid) = req()->paras; //uid my_Assert(StlUtil::dictHasProperty(ctx()->task->taskcards, $uid), ErrCode::task_NoExist); $task = ctx()->task->taskcards->$uid; $mo = GameConfig::taskcard_getItem($task->taskId); my_Assert($mo != null, ErrCode::err_const_no); $taskstepsMo = GameConfig::task_step_getItem($mo->tasksteps); my_Assert($taskstepsMo != null, ErrCode::err_const_no); $taskStep = $task->curSteps; my_Assert($taskStep->cur >= $taskstepsMo->num, ErrCode::task_CanotPriceReviced); my_Assert($task->state == Enum_TaskCardStateType::finish, ErrCode::task_CanotPriceReviced); switch ($type) { case Enum_TaskType::DailyTask: ctx()->task->dailyTaskAccumulate += $mo->score; break; case Enum_TaskType::WeekTask: ctx()->task->weekTaskAccumulate += $mo->score; break; default: break; } $task->state = Enum_TaskCardStateType::drawed; ctx()->task->taskcards->$uid = $task; StoreProc::AddMultiItemInStore($mo->reward); return Resp::ok(array("task" => ctx()->task, "store" => ctx()->store, )); } static function ResetTask() { //self::ResetTask_Daily(); self::DailyTaskReset(); self::Day7TaskReset(); $week = date("w"); if ($week == 1) {//每周一 第一次登录的时候刷新 //self::ResetTask_Week(); self::WeekTaskReset(); } } /** * 7日狂欢数据重置 */ static function Day7TaskReset() { $mo = GameConfig::activity_getItem(10); my_Assert($mo != null, ErrCode::err_const_no); $startDay = TimeUtil::totalDays($mo->startts); $endDay = TimeUtil::totalDays($mo->endts); $curDay = TimeUtil::totalDays(); if ($curDay > $endDay) { self::ClearActiveTask(Enum_ActiveTaskType::Day7); } else { if ($curDay >= $startDay) { $tag = true; foreach (ctx()->task->activeTaskInfo as $uid => $val) { $taskMo = GameConfig::activeTask_getItem($val->typeId); if ($taskMo->type == 1) { $tag = false; break; } } if ($tag) {//7日的数据初始化 self::initActiveTask(Enum_ActiveTaskType::Day7); ctx()->task->day7Point = 0; } } } } static function ClearActiveTask($type) { $arr = array(); foreach (ctx()->task->activeTaskInfo as $uid => $val) { $taskMo = GameConfig::activeTask_getItem($val->typeId); if ($taskMo->type == $type) { $arr[] = $uid; } } if (count($arr) > 0) { foreach ($arr as $uid) { StlUtil::dictRemove(ctx()->task->activeTaskInfo, $uid); } } } static function initActiveTask($type) { $day7List = GameConfig::activeTask_type_getItemArray($type); $length = ctx()->task->activeTaskLength; foreach ($day7List as $key => $task) { $length += 1; $ins_TaskStep_Active = new Ins_TaskStep_Active($task); ctx()->task->activeTaskInfo->$length = $ins_TaskStep_Active; } ctx()->task->activeTaskLength = $length; } /** * 日常 */ static function DailyTaskReset() { self::ClearActiveTask(Enum_ActiveTaskType::DailyTask); self::initActiveTask(Enum_ActiveTaskType::DailyTask); ctx()->task->dailyTaskPoint = 0; } /** * 周常 */ static function WeekTaskReset() { self::ClearActiveTask(Enum_ActiveTaskType::WeekTask); self::initActiveTask(Enum_ActiveTaskType::WeekTask); ctx()->task->weekTaskPoint = 0; } /** * 每日任务重置 */ static function ResetTask_Daily() { $dic = GameConfig::taskcard(); $retDic = new \stdClass(); $taskcards = ctx()->task->taskcards; $dailyCards = array(); foreach ($dic as $id => $mo) { if ($mo->type == 1) { foreach ($taskcards as $uid => $card) { if ($card->typeId == $mo->typeId) { $dailyCards[] = $uid; } } $retDic->$id = $mo; } } foreach ($dailyCards as $uid) { unset($taskcards->$uid); } $retDic = (array) $retDic; if (count($retDic) <= 0) { return; } ksort($retDic); $index = ctx()->task->taskIndex; foreach ($retDic as $id => $mo) { $index += 1; $task = new Ins_TaskCard($id); $taskcards->$index = $task; } ctx()->task->taskIndex = $index; ctx()->task->taskcards = $taskcards; UserProc::updateUserInfo(); } /** * 每周任务重置 */ static function ResetTask_Week() { $dic = GameConfig::taskcard(); $retDic = new \stdClass(); $taskcards = ctx()->task->taskcards; $dailyCards = array(); foreach ($dic as $id => $mo) { if ($mo->type == 2) { foreach ($taskcards as $uid => $card) { if ($card->typeId == $mo->typeId) { $dailyCards[] = $uid; } } $retDic->$id = $mo; } } foreach ($dailyCards as $uid) { unset($taskcards->$uid); } $retDic = (array) $retDic; if (count($retDic) <= 0) { return; } ksort($retDic); $index = ctx()->task->taskIndex; foreach ($retDic as $id => $mo) { $index += 1; $task = new Ins_TaskCard($id); $taskcards->$index = $task; } ctx()->task->taskIndex = $index; ctx()->task->taskcards = $taskcards; UserProc::updateUserInfo(); } //--------------------- /** * 每日登陆 */ static function OnUserLogin() { $taskEventArg = new Ins_TaskEventArgs(Enum_TaskCmdType::DailyLogin, Enum_PropelType::set, 1, array()); self::CheckTaskCardConditions($taskEventArg); # 检查日常任务 } /** * 参与主线关卡X次 */ static function OnChallengeZhuXianGate() { $taskEventArg = new Ins_TaskEventArgs(Enum_TaskCmdType::ChallengeZhuXianGate, Enum_PropelType::add, 1, array()); self::CheckTaskCardConditions($taskEventArg); # 检查日常任务 } /** * 参与日常关卡1次 */ static function OnChallengeDailyGate() { $taskEventArg = new Ins_TaskEventArgs(Enum_TaskCmdType::ChallengeDailyGate, Enum_PropelType::add, 1, array()); self::CheckTaskCardConditions($taskEventArg); # 检查日常任务 } /** * 每日商店购买物品1次 */ static function OnDailyShopBuyNum() { $taskEventArg = new Ins_TaskEventArgs(Enum_TaskCmdType::DailyShopBuyNum, Enum_PropelType::add, 1, array()); self::CheckTaskCardConditions($taskEventArg); # 检查日常任务 } static function CheckTaskCardConditions($taskParam) { $bUpdate = false; $tasks = ctx()->task->taskcards; foreach ($tasks as $tid => &$task) { $task = new Ins_TaskCard($task); if ($task->state != Enum_TaskCardStateType::ing) { continue; } foreach ($task->curSteps as &$tsp) { # 初期里面只有一个任务 $tsp = new Ins_TaskStep($tsp); if ($tsp->check_new($taskParam)) { $bUpdate = true; $tsp->propel($taskParam); NormalEventProc::OnTaskCardStep_Process($task->uid, $tsp->typeId); # 任务进度更新 if ($tsp->isFinish()) { NormalEventProc::OnTaskCardStep_Complete($task->uid, $tsp->typeId); # 广播任务步骤完成事件 // $tsp->doFinishAct(); } } } if ($task->IsFinish()) { # 检查后添加后续任务 $arr = array(); foreach ($task->curSteps as &$tsp) { # 初期里面只有一个任务 $tsp = new Ins_TaskStep($tsp); if (strlen($tsp->mo()->next) > 0) { # 有后续任务 $arr = array_merge($arr, explode(',', $tsp->mo()->next)); # 累加下一个任务步骤 } } foreach ($arr as $stpid) { # 轮询添加后续任务 if ($stpid > 0) { $task->AddStep($stpid); # 将后续任务追加到任务列表中 } } if (count($arr) != 0) { self::autoRecoverStateMissions($taskParam); } } if ($task->IsFinish()) { # 检查是否任务卡的所有步骤都已完成 $task->state = Enum_TaskCardStateType::finish; NormalEventProc::OnTaskCard_Finish($task->uid, null); # 广播卡完成事件 } } if ($bUpdate) { # 带回数据到客户端 ctx()->task->taskcards = $tasks; UserProc::updateUserInfo(); # 更新玩家数据 } return $bUpdate; } /** * 自动修复状态型任务 */ static function autoRecoverStateMissions() { $tasks = ctx()->task->taskcards; foreach ($tasks as $tid => &$task) { $task = new Ins_TaskCard($task); if ($task->state == Enum_TaskCardStateType::ing // # 进行中的或者已完成的 || $task->state == Enum_TaskCardStateType::finish) { foreach ($task->curSteps as &$tsp) { # 初期里面只有一个任务 $tsp = new Ins_TaskStep($tsp); $tsp->autoCalcStatusCur(); } if ($task->state == Enum_TaskCardStateType::finish) { # 检查是否任务卡的所有步骤都已完成 if (!$task->IsFinish()) { $task->state = Enum_TaskCardStateType::ing; # 状态回退 } } } } // Clog::info("更新状态统计类的任务卡!"); ctx()->task->taskcards = $tasks; } // /** * 登录 */ static function OnLogin_Daily() { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::DailyLogin, Enum_PropelType::add, 1, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 登录第X天 */ static function OnLogin_day7($day) { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::DailyShopBuyNum, Enum_PropelType::set, $day, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 通关第X关 */ static function OnPassGate_X($gateId) { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::PassGate_X, Enum_PropelType::add, 1, array($gateId)); self::CheckActiveTaskConditions($taskEventArg); } /** * 参与主线关卡1次 */ static function OnFightNumMainGate() { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::FightNumMainGate, Enum_PropelType::add, 1, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 参与挑战副本1次 */ static function OnFightNumChallengeGate() { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::FightNumChallengeGate, Enum_PropelType::add, 1, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 参与竞速副本1次 */ static function OnFightNumRaceGate() { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::FightNumRaceGate, Enum_PropelType::add, 1, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 通关竞速副本5次 */ static function OnPassNumRaceGate() { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::PassNumRaceGate, Enum_PropelType::add, 1, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 完成5次启灵 */ static function OnCompleteNumQiLing() { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::CompleteNumQiLing, Enum_PropelType::add, 1, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 完成1次关键启灵 */ static function OnCompleteNumSpecialQiLing() { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::CompleteNumSpecialQiLing, Enum_PropelType::add, 1, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 镶嵌3个普通品质以上宝石 */ static function OnSetSpecialQualGem() { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::SetSpecialQualGem, Enum_PropelType::add, 1, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 合成宝石2次 */ static function OnComposeNumGem() { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::ComposeNumGem, Enum_PropelType::add, 1, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 任意1个法术等级达到2 */ static function OnAnySkillUpLevel_X() { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::AnySkillUpLevel_X, Enum_PropelType::add, 1, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 任意1件装备等级达到2 */ static function OnAnyEquipUpLevel_X() { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::AnyEquipUpLevel_X, Enum_PropelType::add, 1, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 全身装备等级达到3级以上 */ static function OnAllEquipUpLevel_X() { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::AllEquipUpLevel_X, Enum_PropelType::add, 1, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 任意装备等级升级1次 */ static function OnEquipLevelUpNum() { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::EquipLevelUpNum, Enum_PropelType::add, 1, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 击败怪物总数达到1000 */ static function OnKillCommonNumMonster($num) { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::KillCommonNumMonster, Enum_PropelType::add, $num, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 击败领袖怪物总数达到1000 */ static function OnKillleaderNumMonster($num) { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::KillleaderNumMonster, Enum_PropelType::add, $num, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 累计获取10000金币 */ static function OnAccumulateGoldNum($num) { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::AccumulateGoldNum, Enum_PropelType::add, $num, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 累计获取10000体力 */ static function OnAccumulateTiliNum($num) { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::AccumulateTiliNum, Enum_PropelType::add, $num, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 累计获取10000钻石 */ static function OnAccumulateCashNum($num) { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::AccumulateCashNum, Enum_PropelType::add, $num, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 开启1次璀璨宝石箱 */ static function OnOpenNumBrightBox($boxId, $num) { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::OpenNumBrightBox, Enum_PropelType::add, $num, array($boxId)); self::CheckActiveTaskConditions($taskEventArg); } /** * 每日商店购买物品1次 */ static function OnBuyNumDailyShop() { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::BuyNumDailyShop, Enum_PropelType::add, 1, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 开任意宝箱X次 */ static function OnOpenNumAnyBox($num) { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::OpenNumAnyBox, Enum_PropelType::add, $num, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 购买或观看广告获得体力X次 */ static function OnBuyTiliOrLookGuanggao() { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::BuyTiliOrLookGuanggao, Enum_PropelType::add, 1, array()); self::CheckActiveTaskConditions($taskEventArg); } /** * 任意充值X次 */ static function OnRecharge() { $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::Recharge, Enum_PropelType::add, 1, array()); self::CheckActiveTaskConditions($taskEventArg); } // // // /** * 检测任务是否完成 * @param Ins_TaskEventArgs $taskParam */ static function CheckActiveTaskConditions($taskParam) { $activeTaskDic = ctx()->task->activeTaskInfo; foreach ($activeTaskDic as $uid => &$task) { $ins_TaskStep_Active = new Ins_TaskStep_Active($task); if ($ins_TaskStep_Active->state > Enum_TaskCardStateType::ing) { continue; } if ($ins_TaskStep_Active->mo()->cmd == $taskParam->taskType) { if ($ins_TaskStep_Active->isStatusType()) {//校验状态类的 $cur = $ins_TaskStep_Active->calcStatusCur(); if ($cur != $ins_TaskStep_Active->cur) { $ins_TaskStep_Active->cur = $cur; if ($ins_TaskStep_Active->cur >= $ins_TaskStep_Active->max()) { $ins_TaskStep_Active->cur = $ins_TaskStep_Active->max(); } } } else { $tag = true; if ($ins_TaskStep_Active->mo()->cmd == Enum_ActiveTaskCmdType::AnySkillUpLevel_X && count($taskParam->paras) > 0 && $ins_TaskStep_Active->mo()->paras != null) { $parasArr = $taskParam->paras; $lvArr = explode(',', $ins_TaskStep_Active->mo()->paras); $needLv = $lvArr[0]; $num = 0; foreach ($parasArr as $lv) { if ($lv > $needLv) { $num += 1; } } $ins_TaskStep_Active->cur = $num; if ($ins_TaskStep_Active->cur >= $ins_TaskStep_Active->max()) { $ins_TaskStep_Active->cur = $ins_TaskStep_Active->max(); } $tag = false; } else { if ($ins_TaskStep_Active->mo()->paras != null) { $parasArr = $taskParam->paras; if (count($parasArr) > 0) { $arr = explode(',', $ins_TaskStep_Active->mo()->paras); $index = 0; foreach ($arr as $s) { if ($s != $parasArr[$index]) { $tag = false; break; } $index += 1; } } else { $tag = false; } } if ($tag) { $ins_TaskStep_Active->propel($taskParam); if ($ins_TaskStep_Active->cur >= $ins_TaskStep_Active->max()) { $ins_TaskStep_Active->cur = $ins_TaskStep_Active->max(); } } } } if ($ins_TaskStep_Active->isFinish()) { $ins_TaskStep_Active->state = Enum_TaskCardStateType::finish; } } } ctx()->task->activeTaskInfo = $activeTaskDic; UserProc::updateUserInfo(); # 更新玩家数据 } // // }