Browse Source

更新代码,先提交下 --gwang

cyzhao 3 năm trước cách đây
mục cha
commit
d2a9ef7025

+ 17 - 1
Gameserver/Amfphp/configs/GameConfig.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
  // author: gwang 
- // 日期: 2021-10-27 09:32:42
+ // 日期: 2021-11-03 10:28:24
 ////////////////////
 ////////////////////
 namespace loyalsoft;
 namespace loyalsoft;
 /**
 /**
@@ -1528,6 +1528,22 @@ class GameConfig {
         return self::get_hash_item('gem_researchlevel', $itemid);
         return self::get_hash_item('gem_researchlevel', $itemid);
     }
     }
     /**
     /**
+    * 任务根据类型区别
+    * @return \item_taskcard_type
+    */
+    public static function item_taskcard_type()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'item_taskcard_type');
+    }
+    /**
+    * @return \sm_item_taskcard_type item_taskcard_type itemArray 
+    */
+    public static function item_taskcard_type_getItemArray($key)
+    { 
+        return self::get_hash_item('item_taskcard_type', $key);
+    }
+    /**
     * 当前版本(时间戳)
     * 当前版本(时间戳)
     * @return \ver
     * @return \ver
     */
     */

+ 17 - 1
Gameserver/Amfphp/model/Const/GameConfig.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
  // author: gwang 
- // 日期: 2021-10-27 09:32:42
+ // 日期: 2021-11-03 10:28:24
 ////////////////////
 ////////////////////
 
 
 /**
 /**
@@ -1528,6 +1528,22 @@ class GameConfig {
         return self::get_hash_item('gem_researchlevel', $itemid);
         return self::get_hash_item('gem_researchlevel', $itemid);
     }
     }
     /**
     /**
+    * 任务根据类型区别
+    * @return \item_taskcard_type
+    */
+    public static function item_taskcard_type()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'item_taskcard_type');
+    }
+    /**
+    * @return \sm_item_taskcard_type item_taskcard_type itemArray 
+    */
+    public static function item_taskcard_type_getItemArray($key)
+    { 
+        return self::get_hash_item('item_taskcard_type', $key);
+    }
+    /**
     * 当前版本(时间戳)
     * 当前版本(时间戳)
     * @return \ver
     * @return \ver
     */
     */

+ 103 - 0
Gameserver/Amfphp/model/Const/sm_item_taskcard_type.php

@@ -0,0 +1,103 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-10-15 15:40:28
+////////////////////
+
+
+/**
+ * Static Model item_taskcard_type 任务根据类型区别
+ */
+class sm_item_taskcard_type
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $id;
+
+    /**
+    * @var Int32 查询用的ID  
+    */
+    public $typeId;
+
+    /**
+    * @var String 【废弃2020.12.8】任务类型: 1. 串 2. 并 default(0) 
+    */
+    public $stepType;
+
+    /**
+    * @var String 任务名称 default(0) 
+    */
+    public $taskName;
+
+    /**
+    * @var Int32 类型:1:主线;2:日程;3:圣哲;4:商店 default(0) 
+    */
+    public $type;
+
+    /**
+    * @var String 任务描述 default(0) 
+    */
+    public $taskDesc;
+
+    /**
+    * @var String 前往  
+    */
+    public $goto_module;
+
+    /**
+    * @var Int32 【废弃2020.12.11,全部需要手动点击领取】0 不自动 1 自动  
+    */
+    public $isAutoSettle;
+
+    /**
+    * @var Int32 【暂时不用2020.12.11】任务标签(主线,支线...)  
+    */
+    public $tab;
+
+    /**
+    * @var String 常规任务卡, 言灵任务卡,
+    *    
+    */
+    public $cardType;
+
+    /**
+    * @var String 任务步骤id default(0) 
+    */
+    public $tasksteps;
+
+    /**
+    * @var String 完成任务后的奖励物品id,num;id,num  
+    */
+    public $reward;
+
+    /**
+    * @var Int32 完成后奖励指挥官经验. default(0) 
+    */
+    public $exp;
+
+    /**
+    * @var String 完成后获得的新任务卡id  
+    */
+    public $newTaskCard;
+
+    /**
+    * @var String 任务完成得消耗道具  
+    */
+    public $cost;
+
+    /**
+    * @var Int32 任务完成学分奖励 default(0) 
+    */
+    public $score;
+
+    /**
+    * @var DateTime 上次修改 default(CURRENT_TIMESTAMP) 
+    */
+    public $lastupdate;
+
+}
+

+ 77 - 2
Gameserver/Amfphp/model/User/Enum_TargetStatistics.php

@@ -40,7 +40,7 @@ class Enum_TargetStatistics {
     const shopTaskId_BuyUserNum = 6;
     const shopTaskId_BuyUserNum = 6;
     
     
     /**
     /**
-     * 学院课程id_解锁人数
+     * 学院任务_完成任务id人数
      */
      */
     const collegeTaskId_ComUserNum = 7;
     const collegeTaskId_ComUserNum = 7;
     
     
@@ -53,5 +53,80 @@ class Enum_TargetStatistics {
      * 日常任务id--完成人数
      * 日常任务id--完成人数
      */
      */
     const dailyTaskId_ComUserNum = 9;
     const dailyTaskId_ComUserNum = 9;
-    //学院任务_完成任务id人数
+    
+    /**
+     * 已通关剧情关卡ID-人数
+     */
+    const storyGateId_ComUserNum = 10;
+    
+    /**
+     * 剧情关卡id--挑战次数/通关次数
+     */
+    const storyGateId_BattleNum = 11;
+    
+    /**
+     * 已通关副本唤灵师关卡ID-人数
+     */
+    const HuanLingShiGateId_ComUserNum = 12;
+    
+    /**
+     * 唤灵师关卡id--挑战次数/通关次数
+     */
+    const HuanLingShiGateId_BattleNum = 13;
+    
+    /**
+     * 已通关副本武器突破石关卡ID-人数
+     */
+    const WeaponGateId_ComUserNum = 14;
+    
+    /**
+     * 武器突破石关卡id--挑战次数/通关次数
+     */
+    const WeaponGateId_BattleNum = 15;
+    
+    const YanLingGateId_ComUserNum = 16;
+    
+    const YanLingGateId_BattleNum = 17;
+    
+    /**
+     * 
+     */
+    const userlevel = 18;
+    /**
+     * 进行新手池抽卡单次抽奖 --- 人数
+     */
+    const newUserLotteryDraw_one = 19;
+    
+    const newUserLotteryDraw_ten = 20;
+    
+    const yanLingLotteryDraw_one = 21;
+    
+    const yanLingLotteryDraw_ten = 22;
+    
+    const weaponLotteryDraw_one = 23;
+    
+    const weaponLotteryDraw_ten = 24;
+    
+    const commonLotteryDraw_one = 25;
+    
+    const commonLotteryDraw_ten = 26;
+    
+    /**
+     * 唤灵师id-等级--人数******
+     */
+    const HuanLingShiLevel_UserNum = 27;
+      
+    const HuanLingShiId_UserNum = 28;
+    
+    //拥有言灵ID--人数数量*****
+    const YanLingId_UserNum = 29;
+    
+    const YanLingIdLevel_UserNum = 30;
+    
+    const WeaponId_UserNum = 31;
+    
+    //拥有武器ID--人数数量
+    const WeaponIdLevel_UserNum = 32;
+    
+    
 }
 }

+ 13 - 7
Gameserver/Amfphp/model/User/Info_College.php

@@ -90,8 +90,10 @@ class Info_College extends Object_ext{
             parent::__construct($args);   
             parent::__construct($args);   
         }                    
         }                    
     }
     }
-    
-    public function initialize() {
+    /**
+     * 废弃了
+     */
+    //public function initialize() {
 //        $this->compMissCardDic = new \stdClass();  
 //        $this->compMissCardDic = new \stdClass();  
 //        $dic = GameConfig::course_getItem($this->courseId);       
 //        $dic = GameConfig::course_getItem($this->courseId);       
 //        $misslist = explode(',',$dic->misslist);      
 //        $misslist = explode(',',$dic->misslist);      
@@ -100,8 +102,8 @@ class Info_College extends Object_ext{
 //            $item->initialize($id);         
 //            $item->initialize($id);         
 //            $this->compMissCardDic->$id = $item;
 //            $this->compMissCardDic->$id = $item;
 //        }
 //        }
-        $this->initCompMissCardDic();
-    }
+        //$this->initCompMissCardDic();
+    //}
     
     
     public function initCompMissCardDic() {
     public function initCompMissCardDic() {
         $this->compMissCardDic = new \stdClass();  
         $this->compMissCardDic = new \stdClass();  
@@ -141,7 +143,9 @@ class Info_College extends Object_ext{
         
         
         
         
     }
     }
-      
+    /**
+     * 废弃
+     */  
     public function updataCourseNew() {            
     public function updataCourseNew() {            
         //检测是否到下一年级
         //检测是否到下一年级
 //        $collegeDic = GameConfig::college_getItem($this->collegeId);      
 //        $collegeDic = GameConfig::college_getItem($this->collegeId);      
@@ -170,7 +174,7 @@ class Info_College extends Object_ext{
     }
     }
     
     
     /**
     /**
-     * 
+     * 废弃
      */
      */
     public function updataCourse() { 
     public function updataCourse() { 
         $this->comCourseList[] = $this->courseId;       
         $this->comCourseList[] = $this->courseId;       
@@ -191,7 +195,7 @@ class Info_College extends Object_ext{
 //            $this->progress = 0;
 //            $this->progress = 0;
 //        }                  
 //        }                  
     }
     }
-    
+    //废弃
     public function checkCollege() {
     public function checkCollege() {
         if($this->maskCollege == Enum_College::update){
         if($this->maskCollege == Enum_College::update){
             $dic = GameConfig::college_getItem($this->collegeId);
             $dic = GameConfig::college_getItem($this->collegeId);
@@ -260,6 +264,8 @@ class Info_College extends Object_ext{
                             NormalEventProc::OnTaskCard_Finish($taskCard->uid, null);           # 广播卡完成事件
                             NormalEventProc::OnTaskCard_Finish($taskCard->uid, null);           # 广播卡完成事件
                         }
                         }
                         $dic->$cardId = $item;
                         $dic->$cardId = $item;
+                        //统计
+                        StatisticsProc::TargetStatistics(Enum_TargetStatistics::collegeCouseId_UnlockUserNum,$cardId);
                         req()->userInfo->game->store->taskcards->$cid = $taskCard;
                         req()->userInfo->game->store->taskcards->$cid = $taskCard;
                     }              
                     }              
                     //$this->ingTaskCardDic->$courseId = $dic;   
                     //$this->ingTaskCardDic->$courseId = $dic;   

+ 58 - 0
Gameserver/Amfphp/model/User/Info_Map.php

@@ -15,9 +15,25 @@ class Info_Map extends Object_ext {
      * @var dict<int,Ins_Mainland>
      * @var dict<int,Ins_Mainland>
      */
      */
     public $mainlands;
     public $mainlands;
+    
+    /**
+     * 战斗关卡记录--1.记录剧情关卡记录;2.副本唤灵师关卡 3.副本武器关卡 4.副本言灵关卡  
+     * @param type $arg
+     */
+    public $battleRecord = array();
 
 
     function __construct($arg = null) {
     function __construct($arg = null) {
         if (null === $arg) {
         if (null === $arg) {
+//            $this->battleRecord = new \stdClass();
+//            $arr = array();
+//            $arr[] = 1;
+//            $arr[] = 2;
+//            $arr[] = 3;
+//            $arr[] = 4;
+//            foreach ($arr as $key) {
+//                $this->battleRecord->$key = array();
+//            }
+          
             // 直接初始化8个大陆的基本数据
             // 直接初始化8个大陆的基本数据
             $this->mainlands = ObjectInit();
             $this->mainlands = ObjectInit();
             foreach (GameConfig::gate_mainland() as $id => $land) {
             foreach (GameConfig::gate_mainland() as $id => $land) {
@@ -41,4 +57,46 @@ class Info_Map extends Object_ext {
         }
         }
     }
     }
 
 
+    public function addBattleRecord($gateId) {                    
+        if(!in_array($gateId,$this->battleRecord)){
+            if(strlen($gateId) == 8 && substr($gateId,0,3) == 2001){
+                $type = Enum_TargetStatistics::HuanLingShiGateId_ComUserNum;
+            } elseif (strlen($gateId) == 8 && substr($gateId,0,3) == 2002) {
+                $type = Enum_TargetStatistics::WeaponGateId_ComUserNum;
+            } elseif (strlen($gateId) == 8 && substr($gateId,0,3) == 2003) {
+                $type = Enum_TargetStatistics::YanLingGateId_ComUserNum;
+            } else {
+                $type = Enum_TargetStatistics::storyGateId_ComUserNum;
+            }
+                      
+            $arr = $this->battleRecord;
+            $arr[] = $gateId;
+            $this->battleRecord= $arr;
+            StatisticsProc::TargetStatistics($type, $gateId);
+        }
+    }
+    
+    public function addBattleNumRecord($gateId,$ret) {                           
+            if(strlen($gateId) == 8 && substr($gateId,0,3) == 2001){
+                $type = Enum_TargetStatistics::HuanLingShiGateId_BattleNum;
+            } elseif (strlen($gateId) == 8 && substr($gateId,0,3) == 2002) {
+                $type = Enum_TargetStatistics::WeaponGateId_BattleNum;
+            } elseif (strlen($gateId) == 8 && substr($gateId,0,3) == 2003) {
+                $type = Enum_TargetStatistics::YanLingGateId_BattleNum;
+            } else {
+                $type = Enum_TargetStatistics::storyGateId_BattleNum;
+            }
+            $battleNum = 0;
+            $passNum = 0;
+            if($ret == true){
+                $battleNum = 1;
+                $passNum = 1;
+            } else {
+                $battleNum = 1;
+                $passNum = 0;
+            }
+                      
+            $ctx = $battleNum."/".$passNum;
+            StatisticsProc::TargetStatistics($type, $gateId,$ctx);        
+    }
 }
 }

+ 1 - 0
Gameserver/Amfphp/model/User/Info_UserBase.php

@@ -272,6 +272,7 @@ class Info_UserBase extends Object_ext {
             SystemProc::UserLevelUp(req()->zoneid, $this, $this->level);
             SystemProc::UserLevelUp(req()->zoneid, $this, $this->level);
             TaskProc::OnUserLevelUp($this->level);                              # 通知任务模块,这里应该有事件模块
             TaskProc::OnUserLevelUp($this->level);                              # 通知任务模块,这里应该有事件模块
             EventProc::OnUserLevelup($initLevel, $this->level);                 # 事件模块
             EventProc::OnUserLevelup($initLevel, $this->level);                 # 事件模块
+            StatisticsProc::TargetStatistics(Enum_TargetStatistics::userlevel, $this->level);
         }
         }
     }
     }
 
 

+ 2 - 0
Gameserver/Amfphp/model/User/Info_UserGameHero.php

@@ -62,6 +62,8 @@ class Info_UserGameHero extends Object_ext {
             $uid = HeroProc::CreateNewGameHeroUID($this->collectHeros, $this->recordMaxUID);
             $uid = HeroProc::CreateNewGameHeroUID($this->collectHeros, $this->recordMaxUID);
             $this->recordMaxUID = $uid;
             $this->recordMaxUID = $uid;
             $hero = HeroProc::getGameHeroModelInstance($heroModelId, $uid);
             $hero = HeroProc::getGameHeroModelInstance($heroModelId, $uid);
+            StatisticsProc::TargetStatistics(Enum_TargetStatistics::HuanLingShiId_UserNum, $heroModelId);
+            StatisticsProc::TargetStatistics(Enum_TargetStatistics::HuanLingShiLevel_UserNum, $heroModelId,"1");
 //            // 初始化言灵
 //            // 初始化言灵
 //            $yanlingMo = GameConfig::item_yanling_getItem($yanlingId);
 //            $yanlingMo = GameConfig::item_yanling_getItem($yanlingId);
 //            my_Assert(null != $yanlingMo, ErrCode::err_const_no);
 //            my_Assert(null != $yanlingMo, ErrCode::err_const_no);

+ 2 - 1
Gameserver/Amfphp/model/User/Ins_TaskStep.php

@@ -92,7 +92,7 @@ class Ins_TaskStep extends Object_ext {
                                 $college = new Info_College();
                                 $college = new Info_College();
                                 $college->setFunUnluckTs();                              
                                 $college->setFunUnluckTs();                              
                             }
                             }
-                            
+                            StatisticsProc::TargetStatistics(Enum_TargetStatistics::unlockbuidId,$plot->presentEffect);
                         } else if (strtolower($plot->presentItem) == strtolower("rename")) {
                         } else if (strtolower($plot->presentItem) == strtolower("rename")) {
                             // 跳过特殊字符串
                             // 跳过特殊字符串
                         } else {
                         } else {
@@ -108,6 +108,7 @@ class Ins_TaskStep extends Object_ext {
                 break;
                 break;
             case Enum_EventActionType::UnlockBuild:                             # 解锁建筑
             case Enum_EventActionType::UnlockBuild:                             # 解锁建筑
                 req()->userInfo->game->privateState->unlockedBuild[] = $act->parameters;
                 req()->userInfo->game->privateState->unlockedBuild[] = $act->parameters;
+                StatisticsProc::TargetStatistics(Enum_TargetStatistics::unlockbuidId,$act->parameters);
                 if($act->parameters == 1000){
                 if($act->parameters == 1000){
                     $college = new Info_College();
                     $college = new Info_College();
                     $college->setFunUnluckTs();                              
                     $college->setFunUnluckTs();                              

+ 28 - 3
Gameserver/Amfphp/process/ActiveProc.php

@@ -134,13 +134,13 @@ class ActiveProc {
                     $tag = true;
                     $tag = true;
                 }
                 }
                 if ($n == 10 && $tag == false && $shenmiaoInfo->activeDic->$type->totalNum > 10) {
                 if ($n == 10 && $tag == false && $shenmiaoInfo->activeDic->$type->totalNum > 10) {
-                    $list[] = self::getActiveRandomItem(Enum_ActiveItemType::Sr, $shenmo); //self::randSsrUr($shenmo->per)
+                    $list[] = self::getActiveRandomItem(Enum_ActiveItemType::Sr, $shenmo); //self::randSsrUr($shenmo->per)                                  
                 } else {
                 } else {
                     if ($shenmiaoInfo->activeDic->$type->totalNum <= 10) {
                     if ($shenmiaoInfo->activeDic->$type->totalNum <= 10) {
                         $itemType = Enum_ActiveItemType::R;
                         $itemType = Enum_ActiveItemType::R;
                     }
                     }
                     $nId = self::getActiveRandomItem($itemType, $shenmo);
                     $nId = self::getActiveRandomItem($itemType, $shenmo);
-                    $list[] = $nId;
+                    $list[] = $nId;                   
                 }
                 }
             }
             }
             if ($shenmiaoInfo->activeDic->$type->totalNum == 10 && !in_array($shenmo->must, $list)) {//首次10连抽有必出--临时
             if ($shenmiaoInfo->activeDic->$type->totalNum == 10 && !in_array($shenmo->must, $list)) {//首次10连抽有必出--临时
@@ -151,6 +151,11 @@ class ActiveProc {
                 $shenmiaoInfo->isComNewWish = 1;
                 $shenmiaoInfo->isComNewWish = 1;
                 StlUtil::dictRemove($shenmiaoInfo->activeDic, $type);
                 StlUtil::dictRemove($shenmiaoInfo->activeDic, $type);
             }
             }
+            if($num == 1){
+                StatisticsProc::TargetStatistics(Enum_TargetStatistics::newUserLotteryDraw_one);
+            } else {
+                StatisticsProc::TargetStatistics(Enum_TargetStatistics::newUserLotteryDraw_ten);
+            }
         } else if (Enum_Active::OpenWish == $type) {
         } else if (Enum_Active::OpenWish == $type) {
             $shenmo = GameConfig::shenmiao_getItem($shenmiaoInfo->activeDic->$type->id);
             $shenmo = GameConfig::shenmiao_getItem($shenmiaoInfo->activeDic->$type->id);
             if ($num == 1) {
             if ($num == 1) {
@@ -162,6 +167,12 @@ class ActiveProc {
                 $shenmiaoInfo->activeDic->$type->totalNum += $num;
                 $shenmiaoInfo->activeDic->$type->totalNum += $num;
                 $list = self::drawTenLottery($shenmo, $type, $num);
                 $list = self::drawTenLottery($shenmo, $type, $num);
             }
             }
+            
+            if($num == 1){
+                StatisticsProc::TargetStatistics(Enum_TargetStatistics::commonLotteryDraw_one);
+            } else {
+                StatisticsProc::TargetStatistics(Enum_TargetStatistics::commonLotteryDraw_ten);
+            }
         } else {//不定期活动
         } else {//不定期活动
             $shenmo = GameConfig::shenmiao_getItem($shenmiaoInfo->activeDic->$type->id);
             $shenmo = GameConfig::shenmiao_getItem($shenmiaoInfo->activeDic->$type->id);
             if ($num == 1) {
             if ($num == 1) {
@@ -173,13 +184,27 @@ class ActiveProc {
                 $shenmiaoInfo->activeDic->$type->totalNum += $num;
                 $shenmiaoInfo->activeDic->$type->totalNum += $num;
                 $list = self::drawTenLottery($shenmo, $type, $num);
                 $list = self::drawTenLottery($shenmo, $type, $num);
             }
             }
+            
+            if($num == 1){
+                if($type == 4){
+                    StatisticsProc::TargetStatistics(Enum_TargetStatistics::yanLingLotteryDraw_one);
+                } elseif ($type == 5) {
+                    StatisticsProc::TargetStatistics(Enum_TargetStatistics::weaponLotteryDraw_one);
+                }                             
+            } else {
+                if($type == 4){
+                    StatisticsProc::TargetStatistics(Enum_TargetStatistics::yanLingLotteryDraw_ten);
+                } elseif ($type == 5) {
+                    StatisticsProc::TargetStatistics(Enum_TargetStatistics::weaponLotteryDraw_ten);
+                }  
+            }
         }
         }
 
 
         foreach ($list as $id) {
         foreach ($list as $id) {
             $s = $id . ',1';
             $s = $id . ',1';
             StoreProc::AddMultiItemInStore($s);
             StoreProc::AddMultiItemInStore($s);
         }
         }
-
+              
         $req->userInfo->game->shenmiao = $shenmiaoInfo;
         $req->userInfo->game->shenmiao = $shenmiaoInfo;
         UserProc::updateUserInfo();
         UserProc::updateUserInfo();
         TaskProc::OnTempleLottery();                                            # 检测神庙抽奖任务
         TaskProc::OnTempleLottery();                                            # 检测神庙抽奖任务

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

@@ -76,7 +76,7 @@ class EventProc {
             if (!in_array($id, $ubs)) {                                         # 尚未解锁的建筑,判断,已解锁的跳过
             if (!in_array($id, $ubs)) {                                         # 尚未解锁的建筑,判断,已解锁的跳过
                 if ($b->playerLevelLimit <= $new) {                             # 符合解锁条件
                 if ($b->playerLevelLimit <= $new) {                             # 符合解锁条件
                     req()->userInfo->game->privateState->unlockedBuild[] = $id; # 插入解锁记录
                     req()->userInfo->game->privateState->unlockedBuild[] = $id; # 插入解锁记录
-                    
+                    StatisticsProc::TargetStatistics(Enum_TargetStatistics::unlockbuidId,$id);
                     if($id == 1000){
                     if($id == 1000){
                         $college = new Info_College();
                         $college = new Info_College();
                         $college->setFunUnluckTs();                              
                         $college->setFunUnluckTs();                              

+ 4 - 1
Gameserver/Amfphp/process/FightProc/SweepGatesProc.php

@@ -159,7 +159,10 @@ class SweepGatesProc {
             default:
             default:
                 break;
                 break;
         }
         }
-
+     
+        $map = new Info_Map();
+        $map->addBattleRecord($gateId);
+        //$map->addBattleNumRecord($gateId, $ret); 
         $user = req()->userInfo->game;
         $user = req()->userInfo->game;
         $result = array(
         $result = array(
             'store' => $user->store,
             'store' => $user->store,

+ 3 - 1
Gameserver/Amfphp/process/HeroProc.php

@@ -65,7 +65,7 @@ class HeroProc {
 
 
             case CmdCode::cmd_hero_StrengthenStar:                              #  [6326] 升星cmd_hero_YanlinUpLevel
             case CmdCode::cmd_hero_StrengthenStar:                              #  [6326] 升星cmd_hero_YanlinUpLevel
                 return HeroProc::StrengthenStar();
                 return HeroProc::StrengthenStar();
-            case CmdCode::cmd_hero_YanlinUpLevel:                               #  [6327] 升级
+            case CmdCode::cmd_hero_YanlinUpLevel:                               #  [6327] 言灵升级
                 return HeroProc::YanlinUpLevel();
                 return HeroProc::YanlinUpLevel();
             case CmdCode::cmd_hero_YanLingReplace:                              #  [6329] 言灵替换
             case CmdCode::cmd_hero_YanLingReplace:                              #  [6329] 言灵替换
                 return HeroProc::YanLingReplace();
                 return HeroProc::YanLingReplace();
@@ -706,6 +706,7 @@ class HeroProc {
         $collectHeros->$heroUID = $targetHero;                                  # 更新英雄的数据
         $collectHeros->$heroUID = $targetHero;                                  # 更新英雄的数据
         if ($targetHero->level != $initLevel) {
         if ($targetHero->level != $initLevel) {
             NormalEventProc::OnHeroLvlUp($targetHero->uid, $initLevel);         # 广播英雄升级事件
             NormalEventProc::OnHeroLvlUp($targetHero->uid, $initLevel);         # 广播英雄升级事件
+            StatisticsProc::TargetStatistics(Enum_TargetStatistics::HuanLingShiLevel_UserNum, $targetHero->typeId,$targetHero->level);
         }
         }
         TaskProc::OnHeroLevelUp($targetHero->typeId, $targetHero->level);
         TaskProc::OnHeroLevelUp($targetHero->typeId, $targetHero->level);
         return $targetHero;                                                     # 将英雄对象返回
         return $targetHero;                                                     # 将英雄对象返回
@@ -889,6 +890,7 @@ class HeroProc {
         req()->userInfo->game->store->items = $myPacketItems;                    # 更新背包数据
         req()->userInfo->game->store->items = $myPacketItems;                    # 更新背包数据
         if ($equipVo->level != $initLevel) {
         if ($equipVo->level != $initLevel) {
             NormalEventProc::OnYanLingLvlUp($uid, $equipVo->level);         # 广播英雄升级事件
             NormalEventProc::OnYanLingLvlUp($uid, $equipVo->level);         # 广播英雄升级事件
+            StatisticsProc::TargetStatistics(Enum_TargetStatistics::YanLingIdLevel_UserNum, $equipVo->typeId,"$equipVo->level");
         }
         }
 
 
         UserProc::updateUserInfo();                                             # 回写玩家数据
         UserProc::updateUserInfo();                                             # 回写玩家数据

+ 134 - 15
Gameserver/Amfphp/process/StatisticsProc.php

@@ -81,9 +81,32 @@ class StatisticsProc {
         gMem()->hset($key, req()->uid, $gateId);                 
         gMem()->hset($key, req()->uid, $gateId);                 
     }
     }
     
     
-    static function TargetStatistics($type,$id = 0) {
+    static function dailyTaskInit() {      
+        $list = GameConfig::item_taskcard_type_getItemArray(2);
+        if($list == null || count($list) == 0){
+            return;
+        }
+        $key = "TargetStatistics-".req()->zoneid;
+        foreach ($list as $value) {
+            $str = "dailyTaskId_ComUserNum_".$value->typeId;
+            if(gMem()->hexists($key, $str)){
+                break;
+            }
+            gMem()->hset($key,$str,0);  
+        }       
+    }
+
+
+    /**
+     * 
+     * @param type $type
+     * @param type $id
+     * @param type $ctx
+     */
+    static function TargetStatistics($type,$id = 0,$ctx = "0") {
         $key = "TargetStatistics-".req()->zoneid;   
         $key = "TargetStatistics-".req()->zoneid;   
                      
                      
+        $specialArr = array();
         switch ($type) {
         switch ($type) {
             case Enum_TargetStatistics::registerUserNum:
             case Enum_TargetStatistics::registerUserNum:
                 $field = "registerUserNum";
                 $field = "registerUserNum";
@@ -92,37 +115,133 @@ class StatisticsProc {
                $field = "comNewGuideUserNum";
                $field = "comNewGuideUserNum";
                 break;
                 break;
             case Enum_TargetStatistics::unlockbuidId:
             case Enum_TargetStatistics::unlockbuidId:
-               $field = "unlockbuidId_".$id;
+               $field = "unlockbuidId-".$id;
                 break;    
                 break;    
             case Enum_TargetStatistics::mainTaskId_ComUserNum:
             case Enum_TargetStatistics::mainTaskId_ComUserNum:
-               $field = "mainTaskId_ComUserNum_".$id;
+               $field = "mainTaskId_ComUserNum-".$id;
                 break;                
                 break;                
             case Enum_TargetStatistics::shopTaskId_ComUserNum:
             case Enum_TargetStatistics::shopTaskId_ComUserNum:
-               $field = "shopTaskId_ComUserNum_".$id;
+               $field = "shopTaskId_ComUserNum-".$id;
                 break;            
                 break;            
             case Enum_TargetStatistics::shopTaskId_BuyUserNum:
             case Enum_TargetStatistics::shopTaskId_BuyUserNum:
-               $field = "shopTaskId_BuyUserNum_".$id;
+               $field = "shopTaskId_BuyUserNum-".$id;
                 break;  
                 break;  
             case Enum_TargetStatistics::collegeTaskId_ComUserNum:
             case Enum_TargetStatistics::collegeTaskId_ComUserNum:
-                $field = "collegeTaskId_ComUserNum_".$id;
+                $field = "collegeTaskId_ComUserNum-".$id;
                 break;
                 break;
             case Enum_TargetStatistics::collegeCouseId_UnlockUserNum:
             case Enum_TargetStatistics::collegeCouseId_UnlockUserNum:
-                $field = "collegeCouseId_UnlockUserNum_".$id;
+                $field = "collegeCouseId_UnlockUserNum-".$id;
                 break;
                 break;
             
             
             case Enum_TargetStatistics::dailyTaskId_ComUserNum:
             case Enum_TargetStatistics::dailyTaskId_ComUserNum:
-                $field = "collegeCouseId_UnlockUserNum_".$id;
+                $field = "dailyTaskId_ComUserNum-".$id;
+                break;
+            
+            case Enum_TargetStatistics::storyGateId_ComUserNum:
+                $field = "storyGateId_ComUserNum-".$id;                
+                break;
+            case Enum_TargetStatistics::storyGateId_BattleNum:
+                $field = "storyGateId_BattleNum-".$id;
+                $specialArr[] = Enum_TargetStatistics::storyGateId_BattleNum;
+                break;
+            case Enum_TargetStatistics::HuanLingShiGateId_ComUserNum:
+                $field = "HuanLingShiGateId_ComUserNum-".$id;
+                break;           
+            case Enum_TargetStatistics::HuanLingShiGateId_BattleNum:
+                $field = "HuanLingShiGateId_ComUserNum-".$id;
+                $specialArr[] = Enum_TargetStatistics::HuanLingShiGateId_BattleNum;
+                break;
+            
+            case Enum_TargetStatistics::WeaponGateId_ComUserNum:
+                $field = "WeaponGateId_ComUserNum-".$id;
+                break;                                   
+            case Enum_TargetStatistics::WeaponGateId_BattleNum:
+                $field = "WeaponGateId_BattleNum-".$id;
+                $specialArr[] = Enum_TargetStatistics::WeaponGateId_BattleNum;
+                break;           
+            case Enum_TargetStatistics::YanLingGateId_ComUserNum:
+                $field = "YanLingGateId_ComUserNum-".$id;
+                break;
+            case Enum_TargetStatistics::YanLingGateId_BattleNum:
+                $field = "YanLingGateId_BattleNum-".$id;
+                $specialArr[] = Enum_TargetStatistics::YanLingGateId_BattleNum;
+                break;
+            
+            case Enum_TargetStatistics::userlevel:
+                $field = "userlevel-".$id;
+                break;
+            
+            case Enum_TargetStatistics::newUserLotteryDraw_one:
+                $field = "newUserLotteryDraw_one";
                 break;
                 break;
+            case Enum_TargetStatistics::newUserLotteryDraw_ten:
+                $field = "newUserLotteryDraw_ten";
+                break;
+            
+            case Enum_TargetStatistics::yanLingLotteryDraw_one:
+                $field = "yanLingLotteryDraw_one";
+                break;
+            
+            case Enum_TargetStatistics::yanLingLotteryDraw_ten:
+                $field = "yanLingLotteryDraw_ten";
+                break;
+            case Enum_TargetStatistics::weaponLotteryDraw_one:
+                $field = "weaponLotteryDraw_one";
+                break;
+            
+            case Enum_TargetStatistics::weaponLotteryDraw_ten:
+                $field = "weaponLotteryDraw_ten";
+                break;
+            
+            case Enum_TargetStatistics::commonLotteryDraw_one:
+                $field = "commonLotteryDraw_one";
+                break;
+            
+            case Enum_TargetStatistics::commonLotteryDraw_ten:
+                $field = "commonLotteryDraw_ten";
+                break;
+            case Enum_TargetStatistics::HuanLingShiLevel_UserNum:
+                $field = "HuanLingShiLevel_UserNum-".$id."-level".$ctx;
+                break;
+            case Enum_TargetStatistics::HuanLingShiId_UserNum:
+                $field = "HuanLingShiId_UserNum-".$id;
+                break;
+            case Enum_TargetStatistics::YanLingId_UserNum:
+                $field = "YanLingId_UserNum-".$id;
+                break;
+            case Enum_TargetStatistics::YanLingIdLevel_UserNum:
+                $field = "YanLingIdLevel_UserNum-".$id."-level".$ctx;
+                break;
+            case Enum_TargetStatistics::WeaponId_UserNum:
+                $field = "WeaponId_UserNum-".$id;
+                break;
+            case Enum_TargetStatistics::WeaponIdLevel_UserNum:
+                $field = "WeaponIdLevel_UserNum-".$id."-level".$ctx;
+                break;           
             default:
             default:
                 break;
                 break;
         }
         }
-        
-        $count = gMem()->hget($key,$field);
-        if($count == null){
-            $count = 0;
-        }                        
-        gMem()->hset($key,$field,$count+1);
-        
+                       
+        if(in_array($type,$specialArr)){
+            $val = gMem()->hget($key,$field);           
+            if($val == null){
+                $val = $ctx;
+            } else {
+                $vlist = explode('/',$val);
+                $clist = explode('/',$ctx);
+                
+                $n1 = $vlist[0]+$clist[0];
+                $n2 = $vlist[1]+$clist[1];
+                $val = $n1."/".$n2;
+            }
+            gMem()->hset($key,$field,$val);           
+        } else {
+           $count = gMem()->hget($key,$field);
+           if($count == null){
+                $count = 0;
+            }  
+            gMem()->hset($key,$field,$count+1);           
+        }                                                 
     }
     }
 
 
 }
 }

+ 10 - 3
Gameserver/Amfphp/process/StoreProc.php

@@ -186,11 +186,11 @@ class StoreProc {
         
         
         my_Assert($mo != null, ErrCode::err_const_no);       
         my_Assert($mo != null, ErrCode::err_const_no);       
         my_Assert($mo->userlevelLimit <= $user->baseInfo->level, ErrCode::store_GemResearchLvUp_UserLevelLimit);       
         my_Assert($mo->userlevelLimit <= $user->baseInfo->level, ErrCode::store_GemResearchLvUp_UserLevelLimit);       
-        $list = explode(',',$mo->unlockLevelGoldCost);
+        //$list = explode(',',$mo->unlockLevelGoldCost);
         
         
-        my_Assert($list[1]<= $user->baseInfo->gold, ErrCode::notenough_gold_msg);
+        my_Assert($mo->unlockLevelGoldCost<= $user->baseInfo->gold, ErrCode::notenough_gold_msg);
         
         
-        $user->base(true)->Consume_Gold($list[1]);
+        $user->base(true)->Consume_Gold($mo->unlockLevelGoldCost);
         $user->Gem->level += 1;
         $user->Gem->level += 1;
         req()->userInfo->game = $user;
         req()->userInfo->game = $user;
         
         
@@ -262,6 +262,7 @@ class StoreProc {
         req()->userInfo->game->store->items = $myPacketItems;                    # 更新背包数据
         req()->userInfo->game->store->items = $myPacketItems;                    # 更新背包数据
         if ($equipVo->level != $initLevel) {
         if ($equipVo->level != $initLevel) {
             NormalEventProc::OnWeaponLvlUp($uid, $equipVo->level);         # 广播英雄升级事件
             NormalEventProc::OnWeaponLvlUp($uid, $equipVo->level);         # 广播英雄升级事件
+            StatisticsProc::TargetStatistics(Enum_TargetStatistics::WeaponIdLevel_UserNum, $equipVo->typeId,"$equipVo->level");
         }
         }
 
 
         UserProc::updateUserInfo();                                             # 回写玩家数据
         UserProc::updateUserInfo();                                             # 回写玩家数据
@@ -771,6 +772,9 @@ class StoreProc {
         $equip = new Ins_Weapon();
         $equip = new Ins_Weapon();
         $equip->typeId = $itemId;
         $equip->typeId = $itemId;
         req()->userInfo->game->store->equipment->$cid = $equip;
         req()->userInfo->game->store->equipment->$cid = $equip;
+        
+        StatisticsProc::TargetStatistics(Enum_TargetStatistics::WeaponId_UserNum, $itemId);
+        StatisticsProc::TargetStatistics(Enum_TargetStatistics::WeaponIdLevel_UserNum, $itemId,"1");
         return $cid;
         return $cid;
 //        SystemProc::GetEquip($req->zoneid, $req->userInfo->game, $itemId);      # 添加获得装备的消息
 //        SystemProc::GetEquip($req->zoneid, $req->userInfo->game, $itemId);      # 添加获得装备的消息
     }
     }
@@ -790,6 +794,9 @@ class StoreProc {
         $equip = new Ins_YanLin();
         $equip = new Ins_YanLin();
         $equip->typeId = $itemId;
         $equip->typeId = $itemId;
         req()->userInfo->game->store->yanling->$cid = $equip;
         req()->userInfo->game->store->yanling->$cid = $equip;
+        
+        StatisticsProc::TargetStatistics(Enum_TargetStatistics::YanLingId_UserNum, $itemId);
+        StatisticsProc::TargetStatistics(Enum_TargetStatistics::YanLingIdLevel_UserNum, $itemId,"1");
         return $cid;
         return $cid;
     }
     }
 
 

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

@@ -123,6 +123,7 @@ class TaskProc {
 
 
 //        $cid = StoreProc::PutTaskCardInStore($typeId);                          # 添加任务卡到背包
 //        $cid = StoreProc::PutTaskCardInStore($typeId);                          # 添加任务卡到背包
         StoreProc::PutOverlyingItemInStore($typeId, $num);                      # 直接进包裹items
         StoreProc::PutOverlyingItemInStore($typeId, $num);                      # 直接进包裹items
+        StatisticsProc::TargetStatistics(Enum_TargetStatistics::shopTaskId_BuyUserNum,$typeId);
         $userInfo->taskCardShop->selled[] = $typeId;                            # 添加售罄记录
         $userInfo->taskCardShop->selled[] = $typeId;                            # 添加售罄记录
         UserProc::updateUserInfo();
         UserProc::updateUserInfo();
 
 
@@ -229,6 +230,7 @@ class TaskProc {
                         $college = new Info_College();
                         $college = new Info_College();
                         $college->setFunUnluckTs();
                         $college->setFunUnluckTs();
                     }
                     }
+                    StatisticsProc::TargetStatistics(Enum_TargetStatistics::unlockbuidId,$plot->presentEffect);
                     NormalEventProc::OnUnlockBuild($plot->presentEffect);       # 插入解锁事件
                     NormalEventProc::OnUnlockBuild($plot->presentEffect);       # 插入解锁事件
                 } else if (strtolower($plot->presentItem) == strtolower("rename")) {# 改名
                 } else if (strtolower($plot->presentItem) == strtolower("rename")) {# 改名
                     // 跳过特殊字符串
                     // 跳过特殊字符串
@@ -415,6 +417,22 @@ class TaskProc {
         StatisticsProc::SelfTaskDataCollect($taskCard->typeId);                 #统计自己的任务完成情况
         StatisticsProc::SelfTaskDataCollect($taskCard->typeId);                 #统计自己的任务完成情况
         StatisticsProc::TaskDataCollect($taskCard->typeId);                     #统计最新任务
         StatisticsProc::TaskDataCollect($taskCard->typeId);                     #统计最新任务
 
 
+        if($taskCard->mo()->type == 1){//主线
+            StatisticsProc::TargetStatistics(Enum_TargetStatistics::mainTaskId_ComUserNum, $taskCard->typeId);
+        }
+        
+        if($taskCard->mo()->type == 4){//悬赏
+            StatisticsProc::TargetStatistics(Enum_TargetStatistics::shopTaskId_ComUserNum, $taskCard->typeId);
+        }
+        
+        if($taskCard->mo()->type == 2){//日常
+            StatisticsProc::TargetStatistics(Enum_TargetStatistics::dailyTaskId_ComUserNum, $taskCard->typeId);
+        }
+        
+        if($taskCard->mo()->type == 3){//圣哲
+            StatisticsProc::TargetStatistics(Enum_TargetStatistics::collegeTaskId_ComUserNum, $taskCard->typeId);
+        }
+        
         req()->userInfo->game->college->addScore($taskCard->mo()->score);       #圣哲学院的任务是有积分累计的
         req()->userInfo->game->college->addScore($taskCard->mo()->score);       #圣哲学院的任务是有积分累计的
 
 
         UserProc::updateUserInfo();                                             # 回存玩家数据
         UserProc::updateUserInfo();                                             # 回存玩家数据

+ 7 - 0
Gameserver/Amfphp/process/UserProc.php

@@ -225,6 +225,10 @@ class UserProc {
 
 
         $NewbieGuide->guideStep = $guideIndex;
         $NewbieGuide->guideStep = $guideIndex;
         $user->NewbieGuide = $NewbieGuide;
         $user->NewbieGuide = $NewbieGuide;
+        if($user->NewbieGuide == 2){
+            StatisticsProc::TargetStatistics(Enum_TargetStatistics::comNewGuide_UserNum);
+        }
+        
         req()->userInfo->game = $user;
         req()->userInfo->game = $user;
         UserProc::updateUserInfo();                                             # 回写数据
         UserProc::updateUserInfo();                                             # 回写数据
         return Resp::ok(array(
         return Resp::ok(array(
@@ -247,6 +251,9 @@ class UserProc {
         if (self::checkRoleNameNotExist($rolename)) {                           # 记录玩家
         if (self::checkRoleNameNotExist($rolename)) {                           # 记录玩家
             $userinfo = self::createUser($rolename, $gender, $profile_img);
             $userinfo = self::createUser($rolename, $gender, $profile_img);
             if (1 == self::regRole(req()->zoneid, $userID, $rolename, $gender, $profile_img, $userinfo->getPlatStr())) {
             if (1 == self::regRole(req()->zoneid, $userID, $rolename, $gender, $profile_img, $userinfo->getPlatStr())) {
+                StatisticsProc::TargetStatistics(Enum_TargetStatistics::registerUserNum);//注册人数统计
+                StatisticsProc::dailyTaskInit();
+                               
                 $resp = Resp::ok($userinfo);
                 $resp = Resp::ok($userinfo);
                 self::updtateUserZoneInfo();
                 self::updtateUserZoneInfo();
             } else {
             } else {