|
@@ -123,6 +123,7 @@ class TaskProc {
|
|
|
$userInfo->taskCardShop->selled[] = $typeId; # 添加售罄记录
|
|
|
UserProc::updateUserInfo();
|
|
|
NormalEventProc::OnTaskBag_new_Card($cid, $num); # 播放获得任务卡事件
|
|
|
+ self::OnBuyTaskCard($num); # 监控购买任务卡的任务卡[・_・?]
|
|
|
return Resp::ok(array(
|
|
|
'gold' => $req->userInfo->game->baseInfo->gold,
|
|
|
'cash' => $req->userInfo->game->baseInfo->cash,
|
|
@@ -300,6 +301,7 @@ class TaskProc {
|
|
|
if ($tsp->isStatusType()) { # 如果是道具收集类的, 扣除所收集道具
|
|
|
$tsp->autoCalcStatusCur();
|
|
|
}
|
|
|
+ $tsp->doStartAct();
|
|
|
}
|
|
|
if ($taskCard->IsFinish()) { # 检查是否任务卡的所有步骤都已完成
|
|
|
$taskCard->state = Enum_TaskCardStateType::finish;
|
|
@@ -325,7 +327,7 @@ class TaskProc {
|
|
|
static function FindIngCardCount() {
|
|
|
$cardDic = req()->userInfo->game->store->taskcards;
|
|
|
$num = 0;
|
|
|
- array_walk($cardDic, function ($inst) use(&$find) {
|
|
|
+ array_walk($cardDic, function ($inst) use(&$num) {
|
|
|
// $inst = new Ins_TaskCard($inst);
|
|
|
if ($inst->state == Enum_TaskCardStateType::ing) {
|
|
|
$num++;
|
|
@@ -366,6 +368,7 @@ class TaskProc {
|
|
|
|
|
|
$store->taskcards->$taskCardUID = $taskCard; # 回写任务数据
|
|
|
NormalEventProc::OnTaskCard_Reward($taskCard->mo()->reward, null); # 带入事件
|
|
|
+ self::OnFinishTaskCard(); # 触发检查任务卡的任务卡[・_・?]
|
|
|
StlUtil::dictRemove($req->userInfo->game->store->taskcards, $taskCardUID); # 移除任务卡
|
|
|
$req->userInfo->game->store = $store;
|
|
|
self::autoRecoverStateMissions(); # 重新更新其它状态类的任务卡
|
|
@@ -608,6 +611,9 @@ class TaskProc {
|
|
|
static function OnUserLevelUp($newLvl) {
|
|
|
$taskParam = new Ins_TaskParams(Enum_TaskCmdType::CommanderLevelUpTo, $newLvl);
|
|
|
self::CheckTaskConditions($taskParam);
|
|
|
+
|
|
|
+ $taskEventArg = new Ins_TaskEventArgs(Enum_TaskCmdType::CommanderLevelUpTo, Enum_PropelType::set, $newLvl, array($newLvl));
|
|
|
+ self::CheckTaskCardConditions($taskEventArg);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -618,6 +624,8 @@ class TaskProc {
|
|
|
static function OnHeroLevelUp($heroMoId, $newLvl) {
|
|
|
$taskParam = new Ins_TaskParams(Enum_TaskCmdType::HeroLevelUpTo, $heroMoId, $newLvl);
|
|
|
self::CheckTaskConditions($taskParam);
|
|
|
+ $taskEventArg = new Ins_TaskEventArgs(Enum_TaskCmdType::HeroLevelUpTo, Enum_PropelType::set, $newLvl, array($heroMoId));
|
|
|
+ self::CheckTaskCardConditions($taskEventArg);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -651,6 +659,28 @@ class TaskProc {
|
|
|
self::CheckTaskConditions($taskParam);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 英雄穿上武器
|
|
|
+ * @param type $heroMoid
|
|
|
+ * @param type $weaponMoId
|
|
|
+ */
|
|
|
+ static function OnHeroWearWeapon($heroMoid, $weaponMoId) {
|
|
|
+ $weapMO = GameConfig::item_base_getItem($weaponMoId);
|
|
|
+ my_Assert($weapMO, ErrCode::err_const_no);
|
|
|
+ $taskEventArg = new Ins_TaskEventArgs(Enum_TaskCmdType::HeroWearupWeapon_quality, Enum_PropelType::set, 1, array($heroMoid, $weapMO->quality));
|
|
|
+ self::CheckTaskCardConditions($taskEventArg);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 英雄装备言灵
|
|
|
+ * @param type $heroMoid
|
|
|
+ * @param type $weaponMoId
|
|
|
+ */
|
|
|
+ static function OnHeroWearYanling($heroMoid, $yanlingMoId) {
|
|
|
+ $taskEventArg = new Ins_TaskEventArgs(Enum_TaskCmdType::HeroWearupYanling, Enum_PropelType::set, 1, array($heroMoid, $yanlingMoId));
|
|
|
+ self::CheckTaskCardConditions($taskEventArg);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 通关剧情关卡
|
|
|
* @param type $gateId
|
|
@@ -660,6 +690,9 @@ class TaskProc {
|
|
|
$taskParam = new Ins_TaskParams(Enum_TaskCmdType::PassGateN, $gateId, $difficulty);
|
|
|
self::CheckTaskConditions($taskParam);
|
|
|
self::OnPassGate();
|
|
|
+
|
|
|
+ $taskEventArg = new Ins_TaskEventArgs(Enum_TaskCmdType::PassGateN, Enum_PropelType::set, 1, array($gateId, $difficulty));
|
|
|
+ self::CheckTaskCardConditions($taskEventArg);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -795,7 +828,7 @@ class TaskProc {
|
|
|
|
|
|
/**
|
|
|
* 检查任务卡条件是否达成
|
|
|
- * @param Ins_TaskParams $taskParam Description
|
|
|
+ * @param Ins_TaskEventArgs $taskParam Description
|
|
|
*/
|
|
|
static function CheckTaskCardConditions($taskParam) {
|
|
|
$bUpdate = false;
|
|
@@ -814,8 +847,8 @@ class TaskProc {
|
|
|
$tsp->propel($taskParam);
|
|
|
NormalEventProc::OnTaskCardStep_Process($task->uid, $tsp->typeId); # 任务进度更新
|
|
|
if ($tsp->isFinish()) {
|
|
|
-
|
|
|
NormalEventProc::OnTaskCardStep_Complete($task->uid, $tsp->typeId); # 广播任务步骤完成事件
|
|
|
+ $tsp->doFinishAct();
|
|
|
}
|
|
|
// break;
|
|
|
}
|
|
@@ -861,11 +894,46 @@ class TaskProc {
|
|
|
self::CheckTaskCardConditions($taskParam);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 对话完成
|
|
|
+ * @param type $gate_or_npc_id
|
|
|
+ * @param type $stage
|
|
|
+ * @return type
|
|
|
+ */
|
|
|
static function OnPlotOver($gate_or_npc_id, $stage) {
|
|
|
$taskParam = new Ins_TaskEventArgs(Enum_TaskCmdType::PlotOver, Enum_PropelType::set, 1, array($gate_or_npc_id, "$stage"));
|
|
|
return self::CheckTaskCardConditions($taskParam);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 购买n张任务卡(非特定)
|
|
|
+ * @param type $_num
|
|
|
+ * @return type
|
|
|
+ */
|
|
|
+ static function OnBuyTaskCard($_num = 1) {
|
|
|
+ $taskParam = new Ins_TaskEventArgs(Enum_TaskCmdType::BuyTaskCard_Num, Enum_PropelType::add, $_num, array());
|
|
|
+ return self::CheckTaskCardConditions($taskParam);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 完成任务卡(不指定) 这是要造检查任务卡的任务卡[・_・?]
|
|
|
+ * @return type
|
|
|
+ */
|
|
|
+ static function OnFinishTaskCard() {
|
|
|
+ $taskParam = new Ins_TaskEventArgs(Enum_TaskCmdType::FinishTaskCard_noID, Enum_PropelType::set, 1, array());
|
|
|
+ return self::CheckTaskCardConditions($taskParam);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 领取系统邮件奖励
|
|
|
+ * @param type $mailId 指定邮件id
|
|
|
+ * @return type
|
|
|
+ */
|
|
|
+ static function OnDrawSysMail($mailId) {
|
|
|
+ $taskParam = new Ins_TaskEventArgs(Enum_TaskCmdType::DrawSysMail_ID, Enum_PropelType::set, 1, array($mailId));
|
|
|
+ return self::CheckTaskCardConditions($taskParam);
|
|
|
+ }
|
|
|
+
|
|
|
//
|
|
|
// </editor-fold>
|
|
|
//
|