|
@@ -22,13 +22,76 @@ class TaskProc {
|
|
|
case CmdCode::cmd_Task_getActiveReward: # 6204 领取日常任务活跃度阶段奖励
|
|
|
return TaskProc::getActiveReward($req);
|
|
|
//---------------- 任务卡相关通讯 -----------------------------------------------
|
|
|
-
|
|
|
-
|
|
|
+ case CmdCode::cmd_taskCard_PlotFinish: # 6210 任务卡剧情对话
|
|
|
+ return self::PlotFinish($req);
|
|
|
+ case CmdCode::cmd_taskCard_PlotExchangeTaskCard: # 6211 任务卡兑换奖励
|
|
|
+ return self::PlotExchangeTaskCard($req);
|
|
|
+ case CmdCode::cmd_taskCard_PlotPresentTaskCard: # 6212 剧情赠送任务卡
|
|
|
+ return self::PlotPresetTaskCard($req);
|
|
|
+ case CmdCode::cmd_taskCard_FinishAndReward: # 6213 任务卡完成,并即时结算
|
|
|
+ return self::ImmetRewardTaskCard($req);
|
|
|
default:
|
|
|
return Err(ErrCode::cmd_err);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // <editor-fold defaultstate="collapsed" desc="任务卡接口">
|
|
|
+ //
|
|
|
+ /**
|
|
|
+ * [6210]剧情对话-触发任务卡结束条件检测(中间某个step结束,进入下一个step)
|
|
|
+ * @param req $req
|
|
|
+ */
|
|
|
+ static function PlotFinish($req) {
|
|
|
+ // 触发一下任务检查
|
|
|
+ list($gate_or_npc_id, $stage) = $req->paras;
|
|
|
+ $bUpdate = self::OnPlotOver($gate_or_npc_id, $stage);
|
|
|
+ return Resp::ok(array('store' => $req->userInfo->game->store,
|
|
|
+ 'taskCardUpdate' => $bUpdate));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * [6211] 任务卡-兑换奖励
|
|
|
+ * @param type $req
|
|
|
+ */
|
|
|
+ static function PlotExchangeTaskCard($req) {
|
|
|
+ Err(ErrCode::err_method_notimplement);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * [6212] 任务卡- 剧情对话奖励任务卡
|
|
|
+ * @param req $req
|
|
|
+ */
|
|
|
+ static function PlotPresetTaskCard($req) {
|
|
|
+ // 发放任务卡
|
|
|
+ list($rwdStr) = $req->paras;
|
|
|
+ $err = StoreProc::AddMultiItemInStore($req, $rwdStr);
|
|
|
+ my_Assert(ErrCode::ok == $err, $err);
|
|
|
+ UserProc::updateUserInfo();
|
|
|
+ return Resp::ok(array('store' => $req->userInfo->game->store));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * [6213]任务卡 - 即时奖励型任务卡
|
|
|
+ * @param req $req
|
|
|
+ */
|
|
|
+ static function ImmetRewardTaskCard($req) {
|
|
|
+ // 销毁任务卡, 发放奖励
|
|
|
+ list($taskCardUID) = $req->paras;
|
|
|
+ my_Assert(StlUtil::dictHasProperty($req->userInfo->game->store->taskcards, $taskCardUID), ErrCode::taskCard_no); # 防御
|
|
|
+ $taskCard = new TaskCardVo($req->userInfo->game->store->taskcards->$taskCardUID); # 任务卡对象
|
|
|
+ if (strlen($taskCard->mo()->reward) > 0) { # 防御奖励串为空
|
|
|
+ StoreProc::AddMultiItemInStore($req, $taskCard->mo()->reward); # 发放奖励
|
|
|
+ }
|
|
|
+ if (strlen($taskCard->mo()->newTaskCard) > 0) { # 防御新卡串为空
|
|
|
+ StoreProc::AddMultiItemInStore($req, $taskCard->mo()->newTaskCard); # 发放新任务卡
|
|
|
+ }
|
|
|
+ StlUtil::dictRemove($req->userInfo->game->store->taskcards, $taskCardUID); # 移除任务卡
|
|
|
+ UserProc::updateUserInfo(); # 回存玩家数据
|
|
|
+ return Resp::ok(array('store' => $req->userInfo->game->store)); # 返回值更新背包
|
|
|
+ }
|
|
|
+
|
|
|
+ //
|
|
|
+// </editor-fold>
|
|
|
// <editor-fold defaultstate="collapsed" desc=" 任务接口 ">
|
|
|
|
|
|
/**
|
|
@@ -433,10 +496,12 @@ class TaskProc {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if ($bUpdate) {
|
|
|
- Resp::addTag("isTaskUpdated", true); # 附加tag信息, 任务有更新
|
|
|
- CornerSignEventProc::OnTask_Daily_new(req());
|
|
|
- }
|
|
|
+ return $bUpdate;
|
|
|
+ }
|
|
|
+
|
|
|
+ static function OnKillMonster($monsterID, $num) {
|
|
|
+ $taskParam = new TaskParams(EnumTaskType::KillMonster, $monsterID, $num);
|
|
|
+ self::CheckTaskCardConditions($taskParam);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -447,6 +512,11 @@ class TaskProc {
|
|
|
self::CheckTaskCardConditions($taskParam);
|
|
|
}
|
|
|
|
|
|
+ static function OnPlotOver($gate_or_npc_id, $stage) {
|
|
|
+ $taskParam = new TaskParams(EnumTaskType::PlotOver, $gate_or_npc_id, "$stage");
|
|
|
+ self::CheckTaskCardConditions($taskParam);
|
|
|
+ }
|
|
|
+
|
|
|
//
|
|
|
// </editor-fold>
|
|
|
//
|