|
@@ -62,10 +62,10 @@ class TaskProc {
|
|
|
|
|
|
$mo = GameConfig::activepointreward_getItem($type, $typeId);
|
|
$mo = GameConfig::activepointreward_getItem($type, $typeId);
|
|
my_Assert($mo != null, ErrCode::err_const_no);
|
|
my_Assert($mo != null, ErrCode::err_const_no);
|
|
-
|
|
|
|
|
|
+
|
|
StoreProc::AddMultiItemInStore($mo->reward);
|
|
StoreProc::AddMultiItemInStore($mo->reward);
|
|
-
|
|
|
|
- $strId = $type . "-" . $typeId;
|
|
|
|
|
|
+
|
|
|
|
+ $strId = $type . "-" . $typeId;
|
|
my_Assert(!in_array($strId, ctx()->task->activePointReceived), ErrCode::task_RepeatReviced_ActivePointBox);
|
|
my_Assert(!in_array($strId, ctx()->task->activePointReceived), ErrCode::task_RepeatReviced_ActivePointBox);
|
|
ctx()->task->activePointReceived[] = $strId;
|
|
ctx()->task->activePointReceived[] = $strId;
|
|
|
|
|
|
@@ -74,8 +74,8 @@ class TaskProc {
|
|
"store" => ctx()->store,
|
|
"store" => ctx()->store,
|
|
"reward" => StoreProc::$reward,
|
|
"reward" => StoreProc::$reward,
|
|
'reward_Gem' => StoreProc::$reward_Gem,
|
|
'reward_Gem' => StoreProc::$reward_Gem,
|
|
- 'gold'=> ctx()->baseInfo->gold,
|
|
|
|
- 'cash'=> ctx()->baseInfo->cash,
|
|
|
|
|
|
+ 'gold' => ctx()->baseInfo->gold,
|
|
|
|
+ 'cash' => ctx()->baseInfo->cash,
|
|
));
|
|
));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -89,30 +89,31 @@ class TaskProc {
|
|
my_Assert(StlUtil::dictHasProperty(ctx()->task->activeTaskInfo, $uid), ErrCode::task_NoExist);
|
|
my_Assert(StlUtil::dictHasProperty(ctx()->task->activeTaskInfo, $uid), ErrCode::task_NoExist);
|
|
|
|
|
|
$ins_activeTaskInfo = new Ins_TaskStep_Active(ctx()->task->activeTaskInfo->$uid);
|
|
$ins_activeTaskInfo = new Ins_TaskStep_Active(ctx()->task->activeTaskInfo->$uid);
|
|
- if($ins_activeTaskInfo->mo()->type == Enum_ActiveTaskType::Day7){
|
|
|
|
- my_Assert(ctx()->task->day7_startTs > 0, ErrCode::task_NotOpen_Day7Happy);
|
|
|
|
|
|
+ if ($ins_activeTaskInfo->mo()->type == Enum_ActiveTaskType::Day7) {
|
|
|
|
+ my_Assert(ctx()->task->day7_startTs > 0, ErrCode::task_NotOpen_Day7Happy);
|
|
$startDay = TimeUtil::totalDays(ctx()->task->day7_startTs);
|
|
$startDay = TimeUtil::totalDays(ctx()->task->day7_startTs);
|
|
$endDay = $startDay + 6;
|
|
$endDay = $startDay + 6;
|
|
- my_Assert(TimeUtil::totalDays() <= $endDay, ErrCode::task_DownTsLimit);
|
|
|
|
-
|
|
|
|
|
|
+ my_Assert(TimeUtil::totalDays() <= $endDay, ErrCode::task_DownTsLimit);
|
|
|
|
+
|
|
$num = TimeUtil::totalDays() - $startDay;
|
|
$num = TimeUtil::totalDays() - $startDay;
|
|
- my_Assert($ins_activeTaskInfo->mo()->day <= $num+1, ErrCode::task_DownTsLimit);
|
|
|
|
- }
|
|
|
|
|
|
+ my_Assert($ins_activeTaskInfo->mo()->day <= $num + 1, ErrCode::task_DownTsLimit);
|
|
|
|
+ }
|
|
my_Assert($ins_activeTaskInfo->cur >= $ins_activeTaskInfo->max(), ErrCode::task_CanotPriceReviced);
|
|
my_Assert($ins_activeTaskInfo->cur >= $ins_activeTaskInfo->max(), ErrCode::task_CanotPriceReviced);
|
|
my_Assert($ins_activeTaskInfo->state == Enum_TaskCardStateType::finish, ErrCode::task_CanotPriceReviced);
|
|
my_Assert($ins_activeTaskInfo->state == Enum_TaskCardStateType::finish, ErrCode::task_CanotPriceReviced);
|
|
|
|
|
|
- if($ins_activeTaskInfo->mo()->prizes != null){
|
|
|
|
|
|
+ if ($ins_activeTaskInfo->mo()->prizes != null) {
|
|
$reward = explode(',', $ins_activeTaskInfo->mo()->prizes);
|
|
$reward = explode(',', $ins_activeTaskInfo->mo()->prizes);
|
|
- if(GameConfig::item_getItem($reward[0])->itemType == 201){
|
|
|
|
|
|
+ if (GameConfig::item_getItem($reward[0])->itemType == 201) {
|
|
SystemProc::GetGem_GreaterOrangeQual_Active(req()->zoneid, ctx()->baseInfo->name, $reward[0]);
|
|
SystemProc::GetGem_GreaterOrangeQual_Active(req()->zoneid, ctx()->baseInfo->name, $reward[0]);
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
StoreProc::AddMultiItemInStore($ins_activeTaskInfo->mo()->prizes);
|
|
StoreProc::AddMultiItemInStore($ins_activeTaskInfo->mo()->prizes);
|
|
ctx()->task->activeTaskInfo->$uid->state = Enum_TaskCardStateType::drawed;
|
|
ctx()->task->activeTaskInfo->$uid->state = Enum_TaskCardStateType::drawed;
|
|
ctx()->task->activeTaskInfo->$uid->drawTs = now();
|
|
ctx()->task->activeTaskInfo->$uid->drawTs = now();
|
|
|
|
|
|
|
|
+ self::InitNextMainTask($uid);
|
|
|
|
+
|
|
$activePointArr = explode(',', $ins_activeTaskInfo->mo()->activePoint);
|
|
$activePointArr = explode(',', $ins_activeTaskInfo->mo()->activePoint);
|
|
switch ($ins_activeTaskInfo->mo()->type) {
|
|
switch ($ins_activeTaskInfo->mo()->type) {
|
|
case Enum_ActiveTaskType::Day7:
|
|
case Enum_ActiveTaskType::Day7:
|
|
@@ -129,17 +130,30 @@ class TaskProc {
|
|
}
|
|
}
|
|
|
|
|
|
StoreProc::$reward[] = $ins_activeTaskInfo->mo()->activePoint;
|
|
StoreProc::$reward[] = $ins_activeTaskInfo->mo()->activePoint;
|
|
-
|
|
|
|
|
|
+
|
|
UserProc::updateUserInfo();
|
|
UserProc::updateUserInfo();
|
|
return Resp::ok(array("task" => ctx()->task,
|
|
return Resp::ok(array("task" => ctx()->task,
|
|
"store" => ctx()->store,
|
|
"store" => ctx()->store,
|
|
'reward' => StoreProc::$reward,
|
|
'reward' => StoreProc::$reward,
|
|
- 'reward_Gem' => StoreProc::$reward_Gem,
|
|
|
|
- 'gold'=> ctx()->baseInfo->gold,
|
|
|
|
- 'cash'=> ctx()->baseInfo->cash,
|
|
|
|
|
|
+ 'reward_Gem' => StoreProc::$reward_Gem,
|
|
|
|
+ 'gold' => ctx()->baseInfo->gold,
|
|
|
|
+ 'cash' => ctx()->baseInfo->cash,
|
|
));
|
|
));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ static function InitNextMainTask($uid) {
|
|
|
|
+ $ins_activeTaskInfo = new Ins_TaskStep_Active(ctx()->task->activeTaskInfo->$uid);
|
|
|
|
+ if ($ins_activeTaskInfo->mo()->type != Enum_ActiveTaskType::MainTask) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ StlUtil::dictRemove(ctx()->task->activeTaskInfo, $uid);
|
|
|
|
+ $nextId = $ins_activeTaskInfo->mo()->next;
|
|
|
|
+ if ($nextId != null) {
|
|
|
|
+ self::MainTaskInit($nextId);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 6203 领取成就奖励
|
|
* 6203 领取成就奖励
|
|
* @return type
|
|
* @return type
|
|
@@ -182,86 +196,14 @@ class TaskProc {
|
|
));
|
|
));
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * 初始化成就信息
|
|
|
|
- */
|
|
|
|
- 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() {
|
|
public static function getTaskInfo() {
|
|
- list($type) = req()->paras; //武器uid
|
|
|
|
|
|
+ //list($type) = req()->paras; //武器uid
|
|
|
|
|
|
return Resp::ok(array("task" => ctx()->task,
|
|
return Resp::ok(array("task" => ctx()->task,
|
|
));
|
|
));
|
|
}
|
|
}
|
|
|
|
|
|
- static function ResetTask() {
|
|
|
|
|
|
+ static function ResetTask() {
|
|
self::DailyTaskReset();
|
|
self::DailyTaskReset();
|
|
self::ClearDay7Task();
|
|
self::ClearDay7Task();
|
|
$week = date("w");
|
|
$week = date("w");
|
|
@@ -305,7 +247,7 @@ class TaskProc {
|
|
ctx()->task->day7Point = 0;
|
|
ctx()->task->day7Point = 0;
|
|
ctx()->task->day7_startTs = now();
|
|
ctx()->task->day7_startTs = now();
|
|
self::initActiveTask(Enum_ActiveTaskType::Day7);
|
|
self::initActiveTask(Enum_ActiveTaskType::Day7);
|
|
- self::autoRecoverState_activeTask();
|
|
|
|
|
|
+ self::autoRecoverState_activeTask();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -322,9 +264,9 @@ class TaskProc {
|
|
foreach ($arr as $uid) {
|
|
foreach ($arr as $uid) {
|
|
StlUtil::dictRemove(ctx()->task->activeTaskInfo, $uid);
|
|
StlUtil::dictRemove(ctx()->task->activeTaskInfo, $uid);
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 清理活跃点宝箱领取记录
|
|
* 清理活跃点宝箱领取记录
|
|
* @param type $type
|
|
* @param type $type
|
|
@@ -334,16 +276,15 @@ class TaskProc {
|
|
$arr = array();
|
|
$arr = array();
|
|
foreach ($reward as $val) {
|
|
foreach ($reward as $val) {
|
|
$str = explode('-', $val);
|
|
$str = explode('-', $val);
|
|
- if($str[0] == $type){
|
|
|
|
- $arr[] = $val;
|
|
|
|
|
|
+ if ($str[0] == $type) {
|
|
|
|
+ $arr[] = $val;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if(count($arr) > 0){
|
|
|
|
|
|
+ if (count($arr) > 0) {
|
|
foreach ($arr as $sId) {
|
|
foreach ($arr as $sId) {
|
|
StlUtil::arrayRemove(ctx()->task->activePointReceived, $sId);
|
|
StlUtil::arrayRemove(ctx()->task->activePointReceived, $sId);
|
|
}
|
|
}
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
static function initActiveTask($type) {
|
|
static function initActiveTask($type) {
|
|
@@ -358,7 +299,7 @@ class TaskProc {
|
|
}
|
|
}
|
|
ctx()->task->activeTaskLength = $length;
|
|
ctx()->task->activeTaskLength = $length;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 日常
|
|
* 日常
|
|
*/
|
|
*/
|
|
@@ -378,10 +319,37 @@ class TaskProc {
|
|
self::initActiveTask(Enum_ActiveTaskType::WeekTask);
|
|
self::initActiveTask(Enum_ActiveTaskType::WeekTask);
|
|
|
|
|
|
self::autoRecoverState_activeTask();
|
|
self::autoRecoverState_activeTask();
|
|
- ctx()->task->weekTaskPoint = 0;
|
|
|
|
- self::clearActivePointRewardReceived(Enum_ActiveTaskType::WeekTask);
|
|
|
|
|
|
+ ctx()->task->weekTaskPoint = 0;
|
|
|
|
+ self::clearActivePointRewardReceived(Enum_ActiveTaskType::WeekTask);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ static function MainTaskInit($id) {
|
|
|
|
+ $length = ctx()->task->activeTaskLength;
|
|
|
|
+ $length += 1;
|
|
|
|
+ $ins_TaskStep_Active = new Ins_TaskStep_Active($id);
|
|
|
|
+ $ins_TaskStep_Active->uid = $length;
|
|
|
|
+ $ins_TaskStep_Active->state = Enum_TaskCardStateType::ing;
|
|
|
|
+ ctx()->task->activeTaskInfo->$length = $ins_TaskStep_Active;
|
|
|
|
+ ctx()->task->activeTaskLength = $length;
|
|
|
|
+ self::autoRecoverState_activeTask();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+// static function MainTaskCheck_oldUserDate() {
|
|
|
|
+// $dic = ctx()->task->activeTaskInfo;
|
|
|
|
+// $tag = false;
|
|
|
|
+// foreach ($dic as $uid => $task) {
|
|
|
|
+// $taskItem = new Ins_TaskStep_Active($task);
|
|
|
|
+// if ($taskItem->mo()->type == Enum_ActiveTaskType::MainTask) {
|
|
|
|
+// $tag = true;
|
|
|
|
+// break;
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// if (!$tag) {
|
|
|
|
+// self::MainTaskInit(glc()->FirstMainTaskId);
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+
|
|
// <editor-fold defaultstate="collapsed" desc="不同活动任务监测信息-">
|
|
// <editor-fold defaultstate="collapsed" desc="不同活动任务监测信息-">
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -584,6 +552,38 @@ class TaskProc {
|
|
self::CheckActiveTaskConditions($taskEventArg);
|
|
self::CheckActiveTaskConditions($taskEventArg);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 206: 进入第X关;参数1:关卡ID;参数2:进入次数
|
|
|
|
+ */
|
|
|
|
+ static function OnFightGate_X($gateId) {
|
|
|
|
+ $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::FightGate_X, Enum_PropelType::add, 1, array($gateId));
|
|
|
|
+ self::CheckActiveTaskConditions($taskEventArg);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 207: 通关主线挑战第X关的X模式1次;参数1:关卡ID;参数2:难度(1普通,2困难,3噩梦)
|
|
|
|
+ */
|
|
|
|
+ static function OnPassMainChallengeGate_X_Num($gateId, $state) {
|
|
|
|
+ $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::PassMainChallengeGate_X_Num, Enum_PropelType::add, 1, array($gateId, $state));
|
|
|
|
+ self::CheckActiveTaskConditions($taskEventArg);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 208: 领取排行榜元宝奖励X次;参数1:无;参数2:次数(数值)
|
|
|
|
+ */
|
|
|
|
+ static function OnRankPrize_Num() {
|
|
|
|
+ $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::RankPrize_Num, Enum_PropelType::add, 1, array());
|
|
|
|
+ self::CheckActiveTaskConditions($taskEventArg);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 209: 玩家等级到达X级;参数1:无;参数2:等级(数值)
|
|
|
|
+ */
|
|
|
|
+ static function OnUserLevel_X($lv) {
|
|
|
|
+ $taskEventArg = new Ins_TaskEventArgs(Enum_ActiveTaskCmdType::UserLevel_X, Enum_PropelType::set, $lv, array());
|
|
|
|
+ self::CheckActiveTaskConditions($taskEventArg);
|
|
|
|
+ }
|
|
|
|
+
|
|
// </editor-fold>
|
|
// </editor-fold>
|
|
//
|
|
//
|
|
// <editor-fold defaultstate="collapsed" desc="活动任务是否完成的检测-">
|
|
// <editor-fold defaultstate="collapsed" desc="活动任务是否完成的检测-">
|
|
@@ -601,7 +601,7 @@ class TaskProc {
|
|
}
|
|
}
|
|
|
|
|
|
if ($ins_TaskStep_Active->mo()->cmd == $taskParam->taskType) {
|
|
if ($ins_TaskStep_Active->mo()->cmd == $taskParam->taskType) {
|
|
- if ($ins_TaskStep_Active->isStatusType()) {//校验状态类的
|
|
|
|
|
|
+ if ($ins_TaskStep_Active->isStatusType()) {//校验状态类的
|
|
$cur = $ins_TaskStep_Active->calcStatusCur();
|
|
$cur = $ins_TaskStep_Active->calcStatusCur();
|
|
if ($cur != $ins_TaskStep_Active->cur) {
|
|
if ($cur != $ins_TaskStep_Active->cur) {
|
|
$ins_TaskStep_Active->cur = $cur;
|
|
$ins_TaskStep_Active->cur = $cur;
|
|
@@ -696,5 +696,5 @@ class TaskProc {
|
|
}
|
|
}
|
|
|
|
|
|
// </editor-fold>
|
|
// </editor-fold>
|
|
-//
|
|
|
|
|
|
+//
|
|
}
|
|
}
|