cyzhao 3 lat temu
rodzic
commit
d8bad8bfc9

+ 1 - 0
Gameserver/Amfphp/process/EventProc.php

@@ -76,6 +76,7 @@ class EventProc {
             if (!in_array($id, $ubs)) {                                         # 尚未解锁的建筑,判断,已解锁的跳过
                 if ($b->playerLevelLimit <= $new) {                             # 符合解锁条件
                     req()->userInfo->game->privateState->unlockedBuild[] = $id; # 插入解锁记录
+                    StatisticsProc::unlockBuild($id);                           # 统计全服玩家解锁建筑
                     NormalEventProc::OnUnlockBuild($id, null);                   # 插入事件
                 }
             }

+ 2 - 0
Gameserver/Amfphp/process/FightProc/SweepGatesProc.php

@@ -224,6 +224,8 @@ class SweepGatesProc {
         UserProc::updateUserInfo();                                             # 回写玩家数据.
 
         TaskProc::OnPassGateN($gateId, $difficulty + 1);
+        
+        StatisticsProc::unlockGate($gateId);#统计通关最新关卡
         $user = req()->userInfo->game;
         $result = array(
             'store' => $user->store,

+ 3 - 3
Gameserver/Amfphp/process/StatisticsProc.php

@@ -34,9 +34,9 @@ class StatisticsProc {
      */
     static function TaskDataCollect($taskId) {
         $taskMo = GameConfig::item_taskcard_getItem($taskId);
-//        if($taskMo->){
-//            
-//        }
+        if($taskMo->type != 1){
+            return;
+        }
         
         $key = "TaskDataCollect-".req()->zoneid;           
         gMem()->hset($key, req()->uid, $taskId);                 

+ 4 - 0
Gameserver/Amfphp/process/TaskProc.php

@@ -389,6 +389,10 @@ class TaskProc {
         }
         StlUtil::dictRemove($store->taskcards, $taskCardUID);                   # 移除任务卡
         self::autoRecoverStateMissions();                                       # 重新更新其它状态类的任务卡
+        
+        StatisticsProc::SelfTaskDataCollect($taskCard->typeId);                 #统计自己的任务完成情况
+        StatisticsProc::TaskDataCollect($taskCard->typeId);                     #统计最新任务
+        
         UserProc::updateUserInfo();                                             # 回存玩家数据
         return Resp::ok(array(
                     'gold' => req()->userInfo->game->baseInfo->gold,

+ 58 - 0
Gameserver/Public/gamesys/app/providers/TaskData.php

@@ -0,0 +1,58 @@
+<?php
+include_once dirname(__FILE__) . '/../main.php';
+
+$params = query_paras();
+
+//$params = $_POST['date'];
+$date = $params['date']['ts'];
+$uid = $params['date']['uid'];
+$zoneid = $params['date']['zoneid'];
+
+$sqlName = "tab_op_log" . $date;
+
+$arr = daoInst()->select("*")->from($sqlName)
+        ->where('cmd')->eq(6901)
+        ->andWhere('zoneid')->eq($zoneid)
+        ->andWhere('uid')->eq($uid)
+        ->fetchAll();
+$lastItem = null;
+
+$dic = new stdClass();
+$list = array();
+$index = 1;
+$num = 0;
+foreach ($arr as $item) {
+    if ($lastItem != null) {
+        $list[] = $lastItem;
+
+        if (strtotime($item->ts) - strtotime($lastItem->ts) > 20 * 60) {
+            $timeDic = new stdClass();
+            $timeDic->startTs = strtotime($list[0]->ts);
+            $timeDic->endTs = strtotime($list[count($list) - 1]->ts);
+            $timeDic->durationTs = strtotime($list[count($list) - 1]->ts) - strtotime($list[0]->ts);
+
+            $dic->$index = $timeDic;
+            $index += 1;
+
+            $list = array();
+        }
+    }
+    $num+=1;
+    $lastItem = $item;
+    if(count($arr)==$num){
+        $list[] = $item;
+        
+        $timeDic = new stdClass();
+        $timeDic->startTs = strtotime($list[0]->ts);
+        $timeDic->endTs = strtotime($list[count($list) - 1]->ts);
+        $timeDic->durationTs = strtotime($list[count($list) - 1]->ts) - strtotime($list[0]->ts);
+
+        $dic->$index = $timeDic;     
+        break;
+    }
+}
+
+$result = new stdClass();
+$result->data = $dic;
+
+echo Resp::ret($result);