|
@@ -55,7 +55,7 @@ class TaskProc {
|
|
|
return self::OnTaskCard_GetInfo();
|
|
|
case CmdCode::cmd_taskCard_StepActionDone: # 6218 任务步骤 - start/finish action done
|
|
|
return self::OnTaskCard_StepActionDone();
|
|
|
-// -------------- 任务卡商城 -----------------------------
|
|
|
+// -------------- 任务卡商城 -----------------------------
|
|
|
case CmdCode::cmd_taskcard_shop_open: # 6231 任务卡商店 - 开启
|
|
|
return self::OnTaskCardShopOpen();
|
|
|
case CmdCode::cmd_taskcard_shop_buy: # 6232 任务卡商店 - 购买
|
|
@@ -86,7 +86,7 @@ class TaskProc {
|
|
|
$userInfo->taskCardShop->curCards = $reward; # 更新任务卡列表
|
|
|
$userInfo->taskCardShop->selled = array();
|
|
|
req()->userInfo->game = $userInfo;
|
|
|
- UserProc::updateUserInfo(); # 回写玩家数据
|
|
|
+ UserProc::updateUserInfo(); # 回写玩家数据
|
|
|
}
|
|
|
return Resp::ok(array('taskCardShop' => $userInfo->taskCardShop)); # 返回最新任务卡列表
|
|
|
}
|
|
@@ -149,7 +149,7 @@ class TaskProc {
|
|
|
$userInfo->taskCardShop->curCards = $reward; # 更新任务卡列表
|
|
|
$userInfo->taskCardShop->selled = array();
|
|
|
req()->userInfo->game = $userInfo;
|
|
|
- UserProc::updateUserInfo(); # 回写玩家数据
|
|
|
+ UserProc::updateUserInfo(); # 回写玩家数据
|
|
|
return Resp::ok(array(
|
|
|
'gold' => req()->userInfo->game->baseInfo->gold,
|
|
|
'cash' => req()->userInfo->game->baseInfo->cash,
|
|
@@ -157,7 +157,7 @@ class TaskProc {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 过滤奖池
|
|
|
+ * 过滤奖池
|
|
|
* @param array $arr 奖池
|
|
|
*/
|
|
|
static function FilterPrizepool($arr) {
|
|
@@ -198,14 +198,14 @@ class TaskProc {
|
|
|
$reward[] = $rew->typeId;
|
|
|
$i++;
|
|
|
}
|
|
|
- } # for end
|
|
|
+ } # for end
|
|
|
return ErrCode::ok;
|
|
|
}
|
|
|
|
|
|
- //
|
|
|
+ //
|
|
|
// </editor-fold>
|
|
|
// <editor-fold defaultstate="collapsed" desc=" 任务卡接口">
|
|
|
- //
|
|
|
+ //
|
|
|
|
|
|
/**
|
|
|
* [6210]剧情对话-触发任务卡结束条件检测(中间某个step结束,进入下一个step)
|
|
@@ -307,7 +307,7 @@ class TaskProc {
|
|
|
my_Assert(StlUtil::dictHasProperty($store->taskcards, $taskCardUID), ErrCode::taskCard_no); # 防御找不到实例
|
|
|
$taskCard = new Ins_TaskCard($store->taskcards->$taskCardUID); # 任务卡对象
|
|
|
|
|
|
- my_Assert($taskCard->state <= Enum_TaskCardStateType::notopen, ErrCode::taskCard_state); # 任务卡状态异常
|
|
|
+ my_Assert($taskCard->state <= Enum_TaskCardStateType::notopen, ErrCode::taskCard_state); # 任务卡状态异常
|
|
|
my_Assert(true != self::FindSameIngCard($taskCard->typeId), ErrCode::taskCard_active_multi); # 不可激活多张任务卡
|
|
|
my_Assert(self::FindIngCardCount() <= self::TaskCard_ActiveMax, ErrCode::taskCard_active_max); # 激活数量上限
|
|
|
$taskCard->state = Enum_TaskCardStateType::ing;
|
|
@@ -332,7 +332,7 @@ class TaskProc {
|
|
|
$cardDic = req()->userInfo->game->store->taskcards;
|
|
|
$find = false;
|
|
|
array_walk($cardDic, function ($inst) use ($typeId, &$find) {
|
|
|
-// $inst = new Ins_TaskCard($inst);
|
|
|
+// $inst = new Ins_TaskCard($inst);
|
|
|
if ($inst->state == Enum_TaskCardStateType::ing && $inst->typeId == $typeId) {
|
|
|
$find = true;
|
|
|
}
|
|
@@ -344,7 +344,7 @@ class TaskProc {
|
|
|
$cardDic = req()->userInfo->game->store->taskcards;
|
|
|
$num = 0;
|
|
|
array_walk($cardDic, function ($inst) use (&$num) {
|
|
|
-// $inst = new Ins_TaskCard($inst);
|
|
|
+// $inst = new Ins_TaskCard($inst);
|
|
|
if ($inst->state == Enum_TaskCardStateType::ing) {
|
|
|
$num++;
|
|
|
}
|
|
@@ -353,7 +353,7 @@ class TaskProc {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * [6216] 任务卡 - 领取任务卡奖励
|
|
|
+ * [6216] 任务卡 - 领取任务卡奖励
|
|
|
*/
|
|
|
static function OnTaskCard_reward() {
|
|
|
// 销毁任务卡, 发放奖励
|
|
@@ -361,7 +361,7 @@ class TaskProc {
|
|
|
$store = ctx()->store(); # 快速访问store
|
|
|
my_Assert(StlUtil::dictHasProperty($store->taskcards, $taskCardUID), ErrCode::taskCard_no); # 防御找不到实例
|
|
|
$taskCard = new Ins_TaskCard($store->taskcards->$taskCardUID); # 任务卡对象
|
|
|
-//
|
|
|
+//
|
|
|
|
|
|
foreach ($taskCard->curSteps as &$tsp) { # 初期里面只有一个任务
|
|
|
$tsp = new Ins_TaskStep($tsp);
|
|
@@ -384,10 +384,10 @@ class TaskProc {
|
|
|
$store->taskcards->$taskCardUID = $taskCard; # 回写任务数据
|
|
|
NormalEventProc::OnTaskCard_Reward($taskCard->mo()->reward, null); # 带入事件
|
|
|
self::OnFinishTaskCard(); # 触发检查任务卡的任务卡[・_・?]
|
|
|
- if (!empty($taskCard->mo()->newTaskCard)) { # 下一个任务卡存在
|
|
|
+ if (!empty($taskCard->mo()->newTaskCard)) { # 下一个任务卡存在
|
|
|
StoreProc::PutTaskCardInStore($taskCard->mo()->newTaskCard); # 放卡入背包
|
|
|
}
|
|
|
- StlUtil::dictRemove($store->taskcards, $taskCardUID); # 移除任务卡
|
|
|
+ StlUtil::dictRemove($store->taskcards, $taskCardUID); # 移除任务卡
|
|
|
self::autoRecoverStateMissions(); # 重新更新其它状态类的任务卡
|
|
|
UserProc::updateUserInfo(); # 回存玩家数据
|
|
|
return Resp::ok(array(
|
|
@@ -427,7 +427,7 @@ class TaskProc {
|
|
|
return Resp::ok(array('store' => req()->userInfo->game->store)); # 返回值更新背包
|
|
|
}
|
|
|
|
|
|
- //
|
|
|
+ //
|
|
|
// </editor-fold>
|
|
|
// <editor-fold defaultstate="collapsed" desc=" 任务接口 ">
|
|
|
|
|
@@ -471,14 +471,14 @@ class TaskProc {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * [6202]领取任务奖励 问:每日任务奖励和剧情任务奖励领取接口是否为一个?
|
|
|
+ * [6202]领取任务奖励 问:每日任务奖励和剧情任务奖励领取接口是否为一个?
|
|
|
*/
|
|
|
static function GetTaskReward() {
|
|
|
list($taskId) = req()->paras; # 提取参数: 任务id
|
|
|
$userTask = new Info_UserTask(req()->userInfo->game->task);
|
|
|
$mask = 100000; # 根据id段来区分任务和每日任务.
|
|
|
$type = intval($taskId / $mask); # 取出taskId第一位判断任务类型
|
|
|
- switch ($type) { #
|
|
|
+ switch ($type) { #
|
|
|
case 4: # 剧情任务
|
|
|
my_Assert(StlUtil::dictHasProperty($userTask->taskListPlot, $taskId), ErrCode::task_no); #判断是否存在指定任务
|
|
|
$task = new Ins_TaskInfo($userTask->taskListPlot->$taskId);
|
|
@@ -503,7 +503,7 @@ class TaskProc {
|
|
|
my_Assert($task->rewardGeted < 1, ErrCode::task_reward_geted); # 奖励不可重复领取
|
|
|
$taskCfg = GameConfig::task_daily_getItem($taskId); # 任务配置数据
|
|
|
my_Assert($taskCfg != null, ErrCode::err_const_no);
|
|
|
-// Data_UserGame::Add_Exp(req()->userInfo->game->baseInfo, $taskCfg->exp); # 发放任务奖励
|
|
|
+// Data_UserGame::Add_Exp(req()->userInfo->game->baseInfo, $taskCfg->exp); # 发放任务奖励
|
|
|
req()->userInfo->game->base()->Add_Exp($taskCfg->exp); # 发放指挥官经验
|
|
|
$userTask->dailyActivePoint += $taskCfg->activePoint;
|
|
|
$task->rewardGeted = 1;
|
|
@@ -513,7 +513,7 @@ class TaskProc {
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- req()->userInfo->game->task = $userTask; # 回存
|
|
|
+ req()->userInfo->game->task = $userTask; # 回存
|
|
|
UserProc::updateUserInfo();
|
|
|
return Resp::ok(array(// # 返回
|
|
|
"gold" => req()->userInfo->game->baseInfo->gold,
|
|
@@ -525,7 +525,7 @@ class TaskProc {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * [6201]更新任务状态
|
|
|
+ * [6201]更新任务状态
|
|
|
*/
|
|
|
static function GetTaskInfo() {
|
|
|
return Resp::ok(array("task" => req()->userInfo->game->task));
|
|
@@ -534,7 +534,7 @@ class TaskProc {
|
|
|
// </editor-fold>
|
|
|
|
|
|
/**
|
|
|
- * 重置每日任务
|
|
|
+ * 重置每日任务
|
|
|
*/
|
|
|
static function ResetDailyTask() {
|
|
|
return;
|
|
@@ -543,7 +543,7 @@ class TaskProc {
|
|
|
req()->userInfo->game->task = $userTask;
|
|
|
}
|
|
|
|
|
|
-//
|
|
|
+//
|
|
|
// <editor-fold defaultstate="collapsed" desc="辅助方法-比对判断">
|
|
|
|
|
|
/**
|
|
@@ -556,7 +556,7 @@ class TaskProc {
|
|
|
$bUpdate = false;
|
|
|
foreach (req()->userInfo->game->task->taskListPlot as $tid => $task) {
|
|
|
$taskCfg = GameConfig::task_getItem($tid);
|
|
|
- my_Assert($taskCfg != null, ErrCode::err_const_no); # 获取任务配置数据
|
|
|
+ my_Assert($taskCfg != null, ErrCode::err_const_no); # 获取任务配置数据
|
|
|
if ($taskCfg->tasktype != $taskParam->taskType) { # 任务类型必须匹配
|
|
|
continue;
|
|
|
}
|
|
@@ -608,7 +608,7 @@ class TaskProc {
|
|
|
$daily = req()->userInfo->game->task->taskListDaily;
|
|
|
foreach ($daily as $tid => &$task) {
|
|
|
$taskCfg = GameConfig::task_daily_getItem($tid);
|
|
|
- my_Assert($taskCfg != null, ErrCode::err_const_no); # 获取任务配置数据
|
|
|
+ my_Assert($taskCfg != null, ErrCode::err_const_no); # 获取任务配置数据
|
|
|
if ($taskCfg->tasktype != $taskParam->taskType) { # 任务类型必须匹配
|
|
|
continue;
|
|
|
}
|
|
@@ -635,9 +635,17 @@ class TaskProc {
|
|
|
}
|
|
|
|
|
|
// </editor-fold>
|
|
|
-//
|
|
|
+//
|
|
|
// <editor-fold defaultstate="collapsed" desc="处理各种任务检测事务">
|
|
|
- //
|
|
|
+ //
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 神庙抽奖
|
|
|
+ */
|
|
|
+ static function OnTempleLottery() {
|
|
|
+ $taskParam = new Ins_TaskParams(Enum_TaskCmdType::TempleLottery);
|
|
|
+ self::CheckTaskConditions($taskParam);
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 例如当指挥官等级提升的时候需要检查是否有任务达成
|
|
@@ -732,7 +740,7 @@ class TaskProc {
|
|
|
/**
|
|
|
* 通关副本关卡
|
|
|
* @param type $gateId
|
|
|
- * @param type $difficulty
|
|
|
+ * @param type $difficulty 层数
|
|
|
*/
|
|
|
static function OnPassCarboN($gateId, $difficulty) {
|
|
|
$taskParam = new Ins_TaskParams(Enum_TaskCmdType::passEndlessCarbonN, $gateId, $difficulty);
|
|
@@ -775,11 +783,11 @@ class TaskProc {
|
|
|
self::CheckTaskConditions($taskParam);
|
|
|
}
|
|
|
|
|
|
- //
|
|
|
+ //
|
|
|
// </editor-fold>
|
|
|
//
|
|
|
// <editor-fold defaultstate="collapsed" desc="每日任务条件检查">
|
|
|
- //
|
|
|
+ //
|
|
|
|
|
|
/**
|
|
|
* 每日登陆
|
|
@@ -829,14 +837,14 @@ class TaskProc {
|
|
|
self::CheckDailyTaskConditions($taskParam);
|
|
|
}
|
|
|
|
|
|
- //
|
|
|
+ //
|
|
|
// </editor-fold>
|
|
|
- //
|
|
|
+ //
|
|
|
// <editor-fold defaultstate="collapsed" desc="处理任务卡条件检查">
|
|
|
- //
|
|
|
+ //
|
|
|
|
|
|
/**
|
|
|
- * 自动修复状态型任务
|
|
|
+ * 自动修复状态型任务
|
|
|
*/
|
|
|
static function autoRecoverStateMissions() {
|
|
|
$tasks = req()->userInfo->game->store->taskcards;
|
|
@@ -936,7 +944,7 @@ class TaskProc {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 购买n张任务卡(非特定)
|
|
|
+ * 购买n张任务卡(非特定)
|
|
|
* @param type $_num
|
|
|
* @return type
|
|
|
*/
|
|
@@ -1000,7 +1008,7 @@ class TaskProc {
|
|
|
return self::CheckTaskCardConditions($taskParam);
|
|
|
}
|
|
|
|
|
|
- //
|
|
|
+ //
|
|
|
// </editor-fold>
|
|
|
//
|
|
|
}
|