|
@@ -404,7 +404,7 @@ class TaskProc {
|
|
|
ctx()->college = $college;
|
|
|
|
|
|
$store->taskcards->$taskCardUID = $taskCard; # 回写任务数据
|
|
|
-
|
|
|
+
|
|
|
self::checkHandOverDailyTask(); #检测每次任务中的交付任务是否需要挂载了
|
|
|
NormalEventProc::OnTaskCard_Reward($taskCard->mo()->reward, null); # 带入事件
|
|
|
self::OnFinishTaskCard($taskCard); # 触发检查任务卡的任务卡[・_・?]
|
|
@@ -448,40 +448,40 @@ class TaskProc {
|
|
|
'priv' => ctx()->privateState,
|
|
|
'college' => ctx()->college,)); # 返回值更新背包
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
static function checkHandOverDailyTask() {
|
|
|
- if(ctx()->store->dailyTask_HandOver > 0){
|
|
|
+ if (ctx()->store->dailyTask_HandOver > 0) {
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$taskcards = ctx()->store->taskcards;
|
|
|
- $list = explode(',',glc()->dailyTask_HandOver);
|
|
|
-
|
|
|
+ $list = explode(',', glc()->dailyTask_HandOver);
|
|
|
+
|
|
|
// if(in_array($taskcards->$taskCardUID->typeId, $list)){
|
|
|
// ctx()->store->dailyTask_HandOver = 1;
|
|
|
// return;
|
|
|
// }
|
|
|
-
|
|
|
+
|
|
|
$num = 0;
|
|
|
-
|
|
|
- $handOverTask = 0;
|
|
|
+
|
|
|
+ $handOverTask = 0;
|
|
|
foreach ($taskcards as $uid => $task) {
|
|
|
$mo = GameConfig::item_taskcard_getItem($task->typeId);
|
|
|
- if($mo->type == 2){
|
|
|
- if(in_array($task->typeId, $list)){
|
|
|
+ if ($mo->type == 2) {
|
|
|
+ if (in_array($task->typeId, $list)) {
|
|
|
$handOverTask = 1;
|
|
|
}
|
|
|
-
|
|
|
- if($task->state == 4){
|
|
|
+
|
|
|
+ if ($task->state == 4) {
|
|
|
$num += 1;
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- if($num>=4 && $handOverTask == 0){//每日任务全部完成,挂载每日任务--交付任务
|
|
|
+
|
|
|
+ if ($num >= 4 && $handOverTask == 0) {//每日任务全部完成,挂载每日任务--交付任务
|
|
|
$count = count($list);
|
|
|
- $rand = rand(0,$count-1);
|
|
|
-
|
|
|
+ $rand = rand(0, $count - 1);
|
|
|
+
|
|
|
StoreProc::PutTaskCardInStore($list[$rand]);
|
|
|
}
|
|
|
}
|
|
@@ -543,7 +543,7 @@ class TaskProc {
|
|
|
$stepArr = array();
|
|
|
foreach ($card->curSteps as &$tsp) { # 初期里面只有一个任务
|
|
|
$tsp = new Ins_TaskStep($tsp);
|
|
|
- if ($tsp->mo()->fallback > 0) { # 找到需要回撤的步骤,删除此步骤
|
|
|
+ if (!$tsp->isFinish() && $tsp->mo()->fallback > 0) { # 找到需要回撤的步骤,删除此步骤
|
|
|
$fallbackID = $tsp->mo()->fallback;
|
|
|
} else {
|
|
|
$stepArr[] = $tsp;
|
|
@@ -676,11 +676,11 @@ class TaskProc {
|
|
|
*/
|
|
|
static function ResetDailyTaskCards() {
|
|
|
// var_dump("重置日常任务卡");
|
|
|
- $store = ctx()->store(true);
|
|
|
+ $store = ctx()->store(true);
|
|
|
my_default_Obj($store->taskcards);
|
|
|
-
|
|
|
+
|
|
|
$store->dailyTask_HandOver = 0;
|
|
|
-
|
|
|
+
|
|
|
$dailyCards = new \stdClass();
|
|
|
foreach (GameConfig::item_taskcard() as $id => $cardMo) {
|
|
|
isEditor() and $cardMo = new \sm_item_taskcard();
|
|
@@ -691,59 +691,58 @@ class TaskProc {
|
|
|
$dailyCards = (array) $dailyCards;
|
|
|
ksort($dailyCards);
|
|
|
foreach ($dailyCards as $id => $cardMo) {
|
|
|
- foreach ($store->taskcards as $uid => $card) {
|
|
|
- $cardVo = new Ins_TaskCard($card);
|
|
|
- if ($cardVo->typeId == $id) { # 找到对应的实例.
|
|
|
- unset($store->taskcards->$uid); # 删除昨日未完成日常
|
|
|
- }
|
|
|
+ foreach ($store->taskcards as $uid => $card) {
|
|
|
+ $cardVo = new Ins_TaskCard($card);
|
|
|
+ if ($cardVo->typeId == $id) { # 找到对应的实例.
|
|
|
+ unset($store->taskcards->$uid); # 删除昨日未完成日常
|
|
|
}
|
|
|
+ }
|
|
|
}
|
|
|
ctx()->store = $store;
|
|
|
-
|
|
|
+
|
|
|
$pri = ctx()->privateData(); # 私有数据
|
|
|
$cardType = 2; # 日常任务,设置追踪
|
|
|
my_default_Obj($pri->taskCardTracing); # 确保 tracing数据结构是否完整.
|
|
|
-
|
|
|
- $commonTaskList = explode(',', glc()->dailyTask_Common);
|
|
|
- if (count($commonTaskList) < 4) {
|
|
|
+
|
|
|
+ $commonTaskList = explode(',', glc()->dailyTask_Common);
|
|
|
+ if (count($commonTaskList) < 4) {
|
|
|
// 再遍历一遍, 添加今日日常任务.
|
|
|
rsort($commonTaskList);
|
|
|
$cid = 0;
|
|
|
foreach ($commonTaskList as $id) {
|
|
|
$cid = StoreProc::PutTaskCardInStore($id); # 添加任务卡到背包
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$pri->taskCardTracing->$cardType = $cid; # 更新tracing数据
|
|
|
} else {
|
|
|
$tempCid = 0;
|
|
|
$count = count($commonTaskList);
|
|
|
$temp = array();
|
|
|
while (true) {
|
|
|
- $num = rand(0,$count-1);
|
|
|
- if(in_array($num, $temp)){
|
|
|
+ $num = rand(0, $count - 1);
|
|
|
+ if (in_array($num, $temp)) {
|
|
|
continue;
|
|
|
}
|
|
|
$index = 0;
|
|
|
foreach ($commonTaskList as $id) {
|
|
|
- if($index >= $num){
|
|
|
+ if ($index >= $num) {
|
|
|
$cid = StoreProc::PutTaskCardInStore($id); # 添加任务卡到背包
|
|
|
- if($tempCid == 0){
|
|
|
+ if ($tempCid == 0) {
|
|
|
$tempCid = $cid;
|
|
|
}
|
|
|
break;
|
|
|
- }
|
|
|
- $index+=1;
|
|
|
+ }
|
|
|
+ $index += 1;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$temp[] = $num;
|
|
|
- if(count($temp)>=4){
|
|
|
+ if (count($temp) >= 4) {
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
$pri->taskCardTracing->$cardType = $tempCid; # 更新tracing数据
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
UserProc::updateUserInfo(); # 回存数据.(不管从哪里调用的, 更新肯定没错.)
|
|
|
}
|
|
|
|