Browse Source

剧情任务

gwang 4 years ago
parent
commit
bdea672fa3
31 changed files with 650 additions and 433 deletions
  1. 4 7
      Gameserver/Amfphp/Services/AppServer.php
  2. 22 0
      Gameserver/Amfphp/model/User/EnumTaskType.php
  3. 0 37
      Gameserver/Amfphp/model/User/GamePvpChanlian.php
  4. 10 0
      Gameserver/Amfphp/model/User/StoreModel.php
  5. 75 0
      Gameserver/Amfphp/model/User/TaskInfo.php
  6. 37 0
      Gameserver/Amfphp/model/User/TaskParams.php
  7. 22 0
      Gameserver/Amfphp/model/User/UserBaseInfo.php
  8. 16 0
      Gameserver/Amfphp/model/User/UserGameHeroModel.php
  9. 90 95
      Gameserver/Amfphp/model/User/UserGameModel.php
  10. 6 6
      Gameserver/Amfphp/model/User/UserGuildModel.php
  11. 1 1
      Gameserver/Amfphp/model/User/UserHeroModel.php
  12. 134 28
      Gameserver/Amfphp/model/User/UserTaskInfo.php
  13. 27 20
      Gameserver/Amfphp/process/ActiveProc.php
  14. 9 9
      Gameserver/Amfphp/process/ActiveProc/Day7Tasks.php
  15. 11 11
      Gameserver/Amfphp/process/FightProc/PVPProc.php
  16. 7 7
      Gameserver/Amfphp/process/FightProc/SweepGatesProc.php
  17. 40 39
      Gameserver/Amfphp/process/GuildProc.php
  18. 1 1
      Gameserver/Amfphp/process/HeroDiscussProc.php
  19. 23 23
      Gameserver/Amfphp/process/HeroProc.php
  20. 22 22
      Gameserver/Amfphp/process/PayProc.php
  21. 5 5
      Gameserver/Amfphp/process/PayProc/YuanBaoPayProc.php
  22. 15 15
      Gameserver/Amfphp/process/RankProc.php
  23. 10 10
      Gameserver/Amfphp/process/StoreProc.php
  24. 6 5
      Gameserver/Amfphp/process/SystemProc.php
  25. 33 65
      Gameserver/Amfphp/process/TaskProc.php
  26. 14 14
      Gameserver/Amfphp/process/UserProc.php
  27. 3 5
      Gameserver/Amfphp/service_call/fix/analysis.php
  28. 0 0
      Gameserver/Amfphp/service_call/triggers/TestTrigger.php
  29. 0 0
      Gameserver/Amfphp/service_call/triggers/TriggerDumpLog2Sql.php
  30. 3 3
      Gameserver/gamesys/app/providers/actionone.php
  31. 4 5
      Gameserver/nbproject/private/private.xml

+ 4 - 7
Gameserver/Amfphp/Services/AppServer.php

@@ -22,9 +22,8 @@ class AppServer {
         $req->mem = gMem();                                                     # 初始化并挂载CRedisUtil
 
         $err = PreProc::tk($req);                                               # 预处理
-        if ($err) {                                                             # 如果tk校验未通过
-            Err($err);
-        }
+        my_Assert(ErrCode::ok == $err, $err);                                   # 如果tk校验未通过
+
         $resp = self::Route($req);                                              # 分发逻辑
 
         self::AfterProc($req, $resp);                                           # 执行后处理逻辑
@@ -65,7 +64,7 @@ class AppServer {
         $sql .= sprintf('drop table if exists %s;', $old_tablename);            # 循环删除以前的表
         $sql .= sprintf("insert into %s (`uid`,`zoneid`,`cmd`,`days`,`param`,`ret`) values ('%s', %d, %d, %d, '%s', '%s');", #
                 $tablename, $req->uid, $req->zoneid, $req->cmd, #               # Uid, zoneid, cmd
-                (isset($req->userInfo) ? (tsDay() - tsDay($req->userInfo->game->firstLogin)) : 0), #  # ps.留存天数
+                (isset($req->userInfo) ? (tsDay() - tsDay($req->userInfo->game->baseInfo->firstLogin)) : 0), #  # ps.留存天数
                 JsonUtil::encode($req->paras), #                                # req->paras
                 JsonUtil::encode($resp->result)); #                             # resp->result
         daoInst()->query($sql);                                                 # 执行sql
@@ -77,9 +76,7 @@ class AppServer {
      */
     public static function Route($req) {
         $proc = OpeCode::getProc($req->ope);                                    # 映射处理模块.
-        if ($proc == 'err') {                                                   # 未能找到对应的处理模块
-            Err(ErrCode::ope_err);
-        }
+        my_Assert($proc != "err", ErrCode::ope_err);                            # 未能找到对应的处理模块
         try {
             $resp = call_user_func(array($proc, 'procMain'), $req);             # 调用对应的处理逻辑
             if (!($resp instanceof Resp)) {                                     # 异常返回值

+ 22 - 0
Gameserver/Amfphp/model/User/EnumTaskType.php

@@ -0,0 +1,22 @@
+<?php
+
+namespace loyalsoft;
+
+/**
+ * 任务类型枚举 用于任务进度对比,参数传递.
+ */
+class EnumTaskType extends Enum {
+
+    const CommanderLevelUpTo = 11;
+    const HeroLevelUpTo = 12;
+    const HeroGradeUpTo = 13;
+    const HeroSegmentNumberTo = 14;
+    const HeroSkillUnlock = 15;
+    const PassGateN = 21;
+    const passCarbonN = 22;
+    const PvPWinNumberTo = 31;
+    const PvPScoreTo = 32;
+    const UserPowerTo = 33;
+    const UserCollectScoreTo = 34;
+
+}

+ 0 - 37
Gameserver/Amfphp/model/User/GamePvpChanlian.php

@@ -1,37 +0,0 @@
-<?php
-
-namespace loyalsoft;
-
-/**
- *  PVP蝉联数据
- *  PVP 蝉联榜, (历届得主) array
- * @version
- *          1.0.0 Created at 2017-11-13. by --gwang
- * @author gwang (mail@wanggangzero.cn)
- * @copyright ? 2017-11-13, SJZ LoyalSoft Corporation & gwang. All rights reserved.
- */
-class GamePvpChanlian extends Object_ext
-{
-
-    /**
-     *
-     * @var int 修改标记
-     */
-    public $tsWeek = 0;
-
-    /**
-     * @var int 蝉联次数
-     */
-    public $times = 0;
-
-    /**
-     * @var string 玩家唯一ID
-     */
-    public $uid;
-
-    /**
-     * @var json 玩家信息(参考拉取榜单玩家时的返回结构)
-     */
-    public $userInfo;
-
-}

+ 10 - 0
Gameserver/Amfphp/model/User/StoreModel.php

@@ -76,4 +76,14 @@ class StoreModel extends Object_ext {
         //array('388001' => 0, '388002' => 0, '388003' => 0, '388004' => 0, '388005' => 0, '388006' => 0, '388007' => 0);
     }
 
+    /**
+     * 返回指定物品的数量
+     */
+    function GetItemCount($typeId) {
+        if (property_exists($this->items, $typeId)) {
+            return $this->items->$typeId;
+        }
+        return 0;
+    }
+
 }

+ 75 - 0
Gameserver/Amfphp/model/User/TaskInfo.php

@@ -0,0 +1,75 @@
+<?php
+
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+namespace loyalsoft;
+
+/**
+ * 任务信息
+ */
+class TaskInfo extends Object_ext {
+//    public function __construct($tid) {
+//        $this->taskId = $tid;
+//    }
+
+    /**
+     *
+     * @var 任务ID 
+     */
+    public $taskId;
+
+    /**
+     * @var float 任务进度(浮点值好了>=1代表完成)
+     */
+    public $progress = 0;
+
+    /**
+     * 用于将进度更新的数据待会给客户端,比如当前PVP积分之类的,在客户端是无法即时拿到数据的
+     * @var object
+     */
+    public $tag1;
+    public $tag2;
+
+    /**
+     * @var int 奖励是否已领取 0/1
+     */
+    public $rewardGeted = 0;
+
+    public function bCheckProgress($param) {
+        $taskCfg = GameConfig::task_getItem($this->taskId);
+        my_Assert($taskCfg != null, ErrCode::err_const_no);                     # 获取任务配置数据   
+        if ($taskCfg->tasktype != $param->taskType) {                           # 任务类型必须匹配
+            return false;
+        }
+        if (is_null($taskCfg->canshu1)) {
+            $this->progress = 1;
+            return true;
+        }
+        $this->tag1 = max($this->tag1, $param->canshu1);
+        if ($taskCfg->canshu1 <= $param->canshu1) {
+            if (null == $taskCfg->canshu2 || 0 == $taskCfg->canshu2) {
+                $this->progress = 1;
+                return true;
+            }
+            if (is_numeric($taskCfg->canshu2)) {
+                $this->tag2 = max($this->tag2, $param->canshu2);
+                if ($taskCfg->canshu2 <= $param->canshu2) {
+                    $this->progress = 1;
+                    return true;
+                }
+            } else {
+                $this->tag2 = $param->canshu2;
+                if ($taskCfg->canshu2 == $param->canshu2) {
+                    $this->progress = 1;
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+}

+ 37 - 0
Gameserver/Amfphp/model/User/TaskParams.php

@@ -0,0 +1,37 @@
+<?php
+
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+namespace loyalsoft;
+
+/**
+ * 任务参数,用于任务进度判定逻辑
+ */
+class TaskParams {
+
+    public function __construct($_taskType, $_canshu1 = null, $_canshu2 = null) {
+        $this->taskType = $_taskType;
+        $this->canshu1 = $_canshu1;
+        $this->canshu2 = $_canshu2;
+    }
+
+    /**
+     * @var int 任务类型
+     */
+    public $taskType;
+
+    /**
+     * @var number 参数1
+     */
+    public $canshu1;
+
+    /**
+     * @var number 参数2
+     */
+    public $canshu2;
+
+}

+ 22 - 0
Gameserver/Amfphp/model/User/UserBaseInfo.php

@@ -93,4 +93,26 @@ class UserBaseInfo {
      */
     public $friendPoint = 0;
 
+    /**
+     * @var int 历史充值总金额(单位:分)
+     */
+    public $charge_amt = 0;  //
+
+    /**
+     * @var int 游戏内赠送游戏币总额
+     */
+    public $gift_cash = 0;  //
+
+    public function initialize() {
+        my_Assert(GameConfig::primordial_data(), "找不到账号初始化数据");         # 防御
+        $this->gold = GameConfig::primordial_data()->User_Gold;
+        $this->cash = GameConfig::primordial_data()->User_Cash;
+        $this->xp = GameConfig::primordial_data()->User_XP;
+        $this->maxXp = 0;
+        $this->level = 1;
+        $this->name = '步惊云';
+        $this->spar = 0;
+        $this->img = GameConfig::primordial_data()->User_img;
+    }
+
 }

+ 16 - 0
Gameserver/Amfphp/model/User/UserGameHeroModel.php

@@ -76,4 +76,20 @@ class UserGameHeroModel extends Object_ext {
         }
     }
 
+    /**
+     * 
+     * @param type $heroMoId
+     */
+    public function GetHeroByMoID($heroMoId) {
+        my_Assert(null != $this->collectHeros, ErrCode::err_innerfault);
+
+        foreach ($this->collectHeros as $hid => $hero) {
+            isEditor() and $hero = new UserHeroModel();
+            if ($hero->typeId == $heroMoId) {
+                return $hero;
+            }
+        }
+        return null;
+    }
+
 }

+ 90 - 95
Gameserver/Amfphp/model/User/UserGameModel.php

@@ -8,99 +8,90 @@ namespace loyalsoft;
  * @author gwang (mail@wanggangzero.cn)
  */
 class UserGameModel extends HashSaver {
-
-    /**
-     * 第一次登录时间
-     * @var int
-     */
-    public $firstLogin;
-
-    /**
-     * 上次登录时间
-     * @var int
-     */
-    public $lastLogin;
-
-    /**
-     * 上次活动时间
-     * @var int
-     */
-    public $lastSaveTs;
-
-    /**
-     * @var int 当前等级
-     */
-    public $level;  //
-
-    /**
-     * @var string 昵称
-     */
-    public $name; // 昵称
-
-    /**
-     * @var string 头像
-     */
-    public $img;  // 头像
-
-    /**
-     * @var int 头像框Id
-     */
-    public $imgBorderId = 0;
-
-    /**
-     * @var int 金币
-     */
-    public $gold;  // 金币
-
-    /**
-     * 钻石
-     * @var int
-     */
-    public $cash; //
-
-    /**
-     * 分解后得倒的晶石
-     * @var int
-     */
-    public $spar;
-
-    /**
-     * 体力值
-     * @var int
-     */
-    public $tili = 120; //体力
-
-    /**
-     * 当前经验
-     */
-    public $xp = 0;
-
-    /**
-     * 升级经验
-     * @var type
-     */
-    public $maxXp = 0;
-
-    /**
-     * @var int 好友赠送友情点数
-     */
-    public $friendPoint = 0;
+//
+//    /**
+//     * 第一次登录时间
+//     * @var int
+//     */
+//    public $firstLogin;
+//    /**
+//     * 上次登录时间
+//     * @var int
+//     */
+//    public $lastLogin;
+//    /**
+//     * 上次活动时间
+//     * @var int
+//     */
+//    public $lastSaveTs;
+//    /**
+//     * @var int 当前等级
+//     */
+//    public $level;  //
+//    /**
+//     * @var string 昵称
+//     */
+//    public $name; // 昵称
+//    /**
+//     * @var string 头像
+//     */
+//    public $img;  // 头像
+//
+//    /**
+//     * @var int 头像框Id
+//     */
+//    public $imgBorderId = 0;
+//    /**
+//     * @var int 金币
+//     */
+//    public $gold;  // 金币
+//    /**
+//     * 钻石
+//     * @var int
+//     */
+//    public $cash; //
+//    /**
+//     * 分解后得倒的晶石
+//     * @var int
+//     */
+//    public $spar;
+//    /**
+//     * 体力值
+//     * @var int
+//     */
+//    public $tili = 120; //体力
+//    /**
+//     * 当前经验
+//     */
+//    public $xp = 0;
+//    /**
+//     * 升级经验
+//     * @var type
+//     */
+//    public $maxXp = 0;
+//    /**
+//     * @var int 好友赠送友情点数
+//     */
+//    public $friendPoint = 0;
     //
     // <editor-fold defaultstate="collapsed" desc="   统计字段   ">
-
-    /**
-     * @var int 历史充值总金额(单位:分)
-     */
-    public $charge_amt = 0;  //
-
-    /**
-     * @var int 游戏内赠送游戏币总额
-     */
-    public $gift_cash = 0;  //
+//    /**
+//     * @var int 历史充值总金额(单位:分)
+//     */
+//    public $charge_amt = 0;  //
+//    /**
+//     * @var int 游戏内赠送游戏币总额
+//     */
+//    public $gift_cash = 0;  //
     // </editor-fold>
     //
     // ------------字段声明-------------
 
+    /**
+     * @var UserBaseInfo 基础数据
+     */
+    public $baseInfo;
+
     /**
      * 玩家仓库
      * @var StoreModel
@@ -176,14 +167,18 @@ class UserGameModel extends HashSaver {
      */
     public function initialize() {
         my_Assert(GameConfig::primordial_data(), "找不到账号初始化数据");         # 防御
-        $this->gold = GameConfig::primordial_data()->User_Gold;
-        $this->cash = GameConfig::primordial_data()->User_Cash;
-        $this->xp = GameConfig::primordial_data()->User_XP;
-        $this->maxXp = 0;
-        $this->level = 1;
-        $this->name = '聂风';
-        $this->spar = 0;
-        $this->img = GameConfig::primordial_data()->User_img;
+//        $this->gold = GameConfig::primordial_data()->User_Gold;
+//        $this->cash = GameConfig::primordial_data()->User_Cash;
+//        $this->xp = GameConfig::primordial_data()->User_XP;
+//        $this->maxXp = 0;
+//        $this->level = 1;
+//        $this->name = '聂风';
+//        $this->spar = 0;
+//        $this->img = GameConfig::primordial_data()->User_img;
+
+        $this->baseInfo = new UserBaseInfo();
+        $this->baseInfo->initialize();
+
         # 添加默认战队设置
         $this->heroTeamConfig = JsonUtil::encode(GameConfig::primordial_data()->User_HeroTeamConfig);
         $this->store->initialize();                                             # 添加默认物品

+ 6 - 6
Gameserver/Amfphp/model/User/UserGuildModel.php

@@ -59,12 +59,12 @@ class UserGuildModel {
      * 初始化个人公会信息
      * @param type $userGuildInfo
      * @param type $uid
-     * @param type $game
+     * @param type $baseInfo
      * @param type $mem
      * @param type $guildId
      * @param type $zoneid
      */
-    static function userGuildInfoInit($userGuildInfo, $uid, $game, $mem, $zoneid) {
+    static function userGuildInfoInit($userGuildInfo, $uid, $baseInfo, $mem, $zoneid) {
         #self::Clear();
         $userGuildInfo->ts = now();
 //        if ($guildId != 0) {
@@ -75,12 +75,12 @@ class UserGuildModel {
 //        $score = $mem->zscore($key_cur, $uid);
 //        $cupScore = $score == null ? 0 : $score;
 //        $userGuildInfo->cupScore = $cupScore;
-        $userGuildInfo->name = $game->name;
-        $userGuildInfo->level = $game->level;
+        $userGuildInfo->name = $baseInfo->name;
+        $userGuildInfo->level = $baseInfo->level;
         //$userGuildInfo->fightPower = GuildProc::initFightTeamInfo($mem, $uid, $zoneid); #$game->heroTeamConfig;
         $userGuildInfo->uid = $uid;
-        $userGuildInfo->img = $game->img;
-        $userGuildInfo->imgBorderId = $game->imgBorderId;
+        $userGuildInfo->img = $baseInfo->img;
+        $userGuildInfo->imgBorderId = $baseInfo->imgBorderId;
     }
 
 }

+ 1 - 1
Gameserver/Amfphp/model/User/UserHeroModel.php

@@ -259,7 +259,7 @@ class UserHeroModel extends Object_ext {
      */
     public function HeroCanLevelUp() {
         $maxLevel = glc()->Hero_Upgrade_BasicMaxLevel;                          # 全局设置限制了当前英雄的最高等级
-        $playerLimit = GameConfig::playerlevel_getItem(req()->userInfo->game->level)->hero_max_level;
+        $playerLimit = GameConfig::playerlevel_getItem(req()->userInfo->game->baseInfo->level)->hero_max_level;
         return $this->level < min($maxLevel, $playerLimit);
     }
 

+ 134 - 28
Gameserver/Amfphp/model/User/UserTaskInfo.php

@@ -7,7 +7,7 @@ namespace loyalsoft;
  * @author wanggangzero@qq.com
  * @version 1.0.0 2020.7.8 created by gwang
  */
-class UserTaskInfo {
+class UserTaskInfo extends Object_ext {
 
     /**
      * 当前任务节点id
@@ -33,11 +33,14 @@ class UserTaskInfo {
      */
     public $taskListDaily;
 
-    public function __construct() {
-        $this->curTaskNode = 4000001;
-        $this->curTaskId = 0;
-        $this->taskListDaily = ObjectInit();
-        $this->taskListPlot = ObjectInit();
+    public function __construct($args = null) {
+        parent::__construct($args);
+        if (null == $args) {
+            $this->curTaskNode = 4000001;
+            $this->curTaskId = 0;
+            $this->taskListDaily = ObjectInit();
+            $this->taskListPlot = ObjectInit();
+        }
     }
 
     public function initialize() {
@@ -45,34 +48,137 @@ class UserTaskInfo {
         $taskArr = explode(',', $nodeCfg->taskList);
         $this->curTaskId = $taskArr[0];
         foreach ($taskArr as $tid) {
-            $tmo = GameConfig::task_getItem($tid);
-            my_Assert(null != $tmo, ErrCode::err_const_no);
-            $this->taskListPlot->$tid = new TaskInfo();
+            $this->AddPlotTask($tid);
         }
+        $this->AfterInit();
     }
 
-}
-
-/**
- * 任务信息
- */
-class TaskInfo {
-
-    /**
-     * @var float 任务进度(浮点值好了>=1代表完成)
-     */
-    public $progress = 0;
+    function AddPlotTask($taskId) {
+        $tmo = GameConfig::task_getItem($taskId);
+        my_Assert(null != $tmo, ErrCode::err_const_no);
+        switch ($tmo->ban) {    // 每日,剧情...
+        }
+        $task = new TaskInfo();
+        $task->taskId = $taskId;
+        $this->taskListPlot->$taskId = $task;
+    }
 
-    /**
-     * 用于将进度更新的数据待会给客户端,比如当前PVP积分之类的,在客户端是无法即时拿到数据的
-     * @var object
-     */
-    public $tag1;
-    public $tag2;
+    function AfterInit() {
+        foreach ($this->taskListPlot as $taskId => &$task) {
+            $tmo = GameConfig::task_getItem($taskId);
+            $task = new TaskInfo($task);
+            my_Assert(null != $tmo, ErrCode::err_const_no);
+            switch ($tmo->tasktype) {                                               # 有可能添加任务的时候, 任务就已经完成了. 所以这里需要直接做一个检查...
+                case EnumTaskType::CommanderLevelUpTo:
+                    $taskParam = new TaskParams(EnumTaskType::CommanderLevelUpTo, req()->userInfo->game->baseInfo->level);
+                    $task->bCheckProgress($taskParam);
+                    break;
+                case EnumTaskType::HeroLevelUpTo:
+                    $heroMoId = $tmo->canshu1;
+                    $userHeros = new UserGameHeroModel(req()->userInfo->game->heros);
+                    $hero = $userHeros->GetHeroByMoID($heroMoId);
+                    $level = 0;
+                    if ($hero != null) {
+                        $level = $hero->level;
+                    }
+                    $taskParam = new TaskParams(EnumTaskType::HeroLevelUpTo, $hero->typeId, $hero->level);
+                    $task->bCheckProgress($taskParam);
+                    break;
+                case EnumTaskType::HeroGradeUpTo:
+                    $heroMoId = $tmo->canshu1;
+                    $userHeros = new UserGameHeroModel(req()->userInfo->game->heros);
+                    $hero = $userHeros->GetHeroByMoID($heroMoId);
+                    $level = 0;
+                    if ($hero != null) {
+                        $level = $hero->grade;
+                    }
+                    $taskParam = new TaskParams(EnumTaskType::HeroLevelUpTo, $heroMoId, $level);
+                    $task->bCheckProgress($taskParam);
+                    break;
+                case EnumTaskType::HeroSegmentNumberTo:
+                    $segId = $tmo->canshu1;
+                    $store = new StoreModel(req()->userInfo->game->store);
+                    $num = $store->GetItemCount($segId);
+                    $taskParam = new TaskParams(EnumTaskType::HeroSegmentNumberTo, $segId, $num);
+                    $task->bCheckProgress($taskParam);
+                    break;
+                case EnumTaskType::HeroSkillUnlock:
+                    $heroMoId = $tmo->canshu1;
+                    $userHeros = new UserGameHeroModel(req()->userInfo->game->heros);
+                    $hero = $userHeros->GetHeroByMoID($heroMoId);
+                    $subSkillMo = GameConfig::subSkill_getItem($tmo->canshu2);
+                    my_Assert(null != $subSkillMo, ErrCode::err_const_no);
+                    $mSkillId = $subSkillMo->mainSkillId;
+                    $subSkillId = 0;
+                    if ($hero != null && in_array($tmo->canshu2, $hero->subSkills->$mSkillId)) {
+                        $subSkillId = $tmo->canshu2;
+                    }
+                    $taskParam = new TaskParams(EnumTaskType::HeroSkillUnlock, $heroMoId, $subSkillId);
+                    $task->bCheckProgress($taskParam);
+                    break;
+                case EnumTaskType::PassGateN:
+                    $gateId = $tmo->canshu1;
+                    $diffculty = $tmo->canshu2;
+                    $gates = req()->userInfo->game->gates->normal;
+                    switch ($diffculty) {
+                        case 0:
+                            $gates = req()->userInfo->game->gates->normal;
+                            break;
+                        case 1:
+                            $gates = req()->userInfo->game->gates->hard;
+                            break;
+                        case 2:
+                            $gates = req()->userInfo->game->gates->elite;
+                            break;
+                        default :
+                            $gates = req()->userInfo->game->gates->normal;
+                            break;
+                    }
+                    $taskParam = new TaskParams(EnumTaskType::PassGateN, $gates->highest, $diffculty);
+                    $task->bCheckProgress($taskParam);
+                    break;
+                case EnumTaskType::passCarbonN:
+                    break;
+                case EnumTaskType::PvPWinNumberTo:
+                    $pvp = new UserPVPModel(req()->userInfo->game->pvp);                       # 设计玩家pvp数据结构
+                    $taskParam = new TaskParams(EnumTaskType::PvPWinNumberTo, $pvp->totalWin); # 任务参数
+                    $task->bCheckProgress($taskParam);
+                    break;
+                case EnumTaskType::PvPScoreTo:
+                    $uid = req()->uid;                                                         # 快速访问UID
+                    $zoneid = req()->zoneid;                                                   # 快速访问zoneid
+                    $seasonId = PVPProc::GetCurSeasonID();                                     # 当前赛季ID
+                    $key = MemKey_GameRun::Game_PVPScoreByZoneSeason_zset($zoneid, $seasonId); # 积分总榜
+                    $score = self::_getScore_by_uid($uid, $key);                               # 玩家积分
+                    $taskParam = new TaskParams(EnumTaskType::PvPScoreTo, $score);             # 任务参数
+                    $task->bCheckProgress($taskParam);
+                    break;
+                case EnumTaskType::UserPowerTo:
+                    $key = MemKey_GameRun::Game_FightPowerRank_zset(req()->zoneid);            # redis key 
+                    $power = req()->mem->zscore($key, req()->uid);                             # 查询战斗力
+                    $taskParam = new TaskParams(EnumTaskType::UserPowerTo, $power);
+                    $task->bCheckProgress($taskParam);
+                    break;
+                case EnumTaskType::UserCollectScoreTo:
+                    break;
+            }
+        }
+    }
 
     /**
-     * @var int 奖励是否已领取 0/1
+     * 判断是否当前所有剧情任务全部完成并且领取奖励了
+     * @return boolean
      */
-    public $rewardGeted = 0;
+    function IsAllPlotTaskOver() {
+        $bYes = true;
+        foreach ($this->taskListPlot as $tid => $task) {
+            isEditor() and $task = new TaskInfo($task);
+            if (!$task->rewardGeted) {
+                $bYes = false;
+                break;
+            }
+        }
+        return $bYes;
+    }
 
 }

+ 27 - 20
Gameserver/Amfphp/process/ActiveProc.php

@@ -88,7 +88,7 @@ class ActiveProc {
         return Resp::ok(array(#                                     # 返回值
                     'key' => 'ok',
                     'record' => $privateState->dailyDrawedTiliGift,
-                    'tili' => $req->userInfo->game->tili,
+                    'tili' => $req->userInfo->game->baseInfo->tili,
                     'time' => $req->userInfo->game->privateState->TiliTime,
         ));
     }
@@ -301,8 +301,8 @@ class ActiveProc {
      * @param type $req
      */
     static function DailyReset($req) {
-        self::DailyResetTaskAccountNum($req);
-        self::ResetEverydayTask($req);
+//        self::DailyResetTaskAccountNum($req);
+//        self::ResetEverydayTask($req);
         self::ClearOnlineGiftTs($req);
         self::ClearDailyTiliGift($req);
     }
@@ -365,14 +365,15 @@ class ActiveProc {
         if ($task->state == 1) {                                                // 看任务状态,如果是未完成状态,则报错
             return Resp::err(ErrCode::active_day7_taskstate_err);
         }
+        $baseInfo = $req->userInfo->game->baseInfo;
         if ($task->state != 2) {                                                // 看任务状态,如果是已领取状态,则直接返回当前数据
             $result = array(
                 'store' => $req->userInfo->game->store,
                 'heros' => $req->userInfo->game->heros,
-                'cash' => $req->userInfo->game->cash,
-                'tili' => $req->userInfo->game->tili,
+                'cash' => $req->userInfo->game->baseInfo->cash,
+                'tili' => $req->userInfo->game->baseInfo->tili,
                 'time' => $req->userInfo->game->privateState->TiliTime,
-                'gold' => $req->userInfo->game->gold
+                'gold' => $req->userInfo->game->baseInfo->gold
             );
             return Resp::ok($result);
         }
@@ -390,10 +391,10 @@ class ActiveProc {
         $result = array(
             'store' => $req->userInfo->game->store,
             'heros' => $req->userInfo->game->heros,
-            'cash' => $req->userInfo->game->cash,
-            'tili' => $req->userInfo->game->tili,
+            'cash' => $req->userInfo->game->baseInfo->cash,
+            'tili' => $req->userInfo->game->baseInfo->tili,
             'time' => $req->userInfo->game->privateState->TiliTime,
-            'gold' => $req->userInfo->game->gold
+            'gold' => $req->userInfo->game->baseInfo->gold
         );
         return Resp::ok($result);
     }
@@ -484,6 +485,12 @@ class ActiveProc {
 
 // </editor-fold>
 //
+
+    /**
+     * 
+     * @param req $req
+     * @return type
+     */
     public static function RecoveryTili($req) {
         $useTili = $req->paras[0];
         ActiveProc::ChangeTili($useTili);
@@ -491,7 +498,7 @@ class ActiveProc {
         UserProc::updateUserInfo();
         $result = array(
             'time' => $req->userInfo->game->privateState->TiliTime,
-            'tili' => $req->userInfo->game->tili
+            'tili' => $req->userInfo->game->baseInfo->tili
         );
         $resp = Resp::ok($result);
         return $resp;
@@ -510,24 +517,24 @@ class ActiveProc {
         if (!CommUtil::isPropertyExists($user->privateState, "TiliTime")) {
             $user->privateState->TiliTime = time() - 120;
         }
-        if ($user->tili > 120) {                                                # 如果该账户体力值本身是大于上限的,获取一下超出的体力值
-            $moreTili = $user->tili - 120;                                      # 用moreTili保存一下额外的体力值
+        if ($user->baseInfo->tili > 120) {                                                # 如果该账户体力值本身是大于上限的,获取一下超出的体力值
+            $moreTili = $user->baseInfo->tili - 120;                                      # 用moreTili保存一下额外的体力值
         }
         $useTime = time() - $user->privateState->TiliTime;                      # 距离上次修改体力值的时间
         if ($useTime > 300) {                                                   # 该账户超过了单位体力时间,需要重新计算体力值
             if ($moreTili <= 0) {
-                $user->tili += (int) ( (int) ($useTime / 300));
-                if ($user->tili > 120) {                                        # 体力值上限
-                    $user->tili = 120;
+                $user->baseInfo->tili += (int) ( (int) ($useTime / 300));
+                if ($user->baseInfo->tili > 120) {                                        # 体力值上限
+                    $user->baseInfo->tili = 120;
                 } // 这代码真烂,以后用的时候再修复吧... -gwang 20200110154858
             }
             $user->privateState->TiliTime = time();
         }
         if ($useTili < 0) {                                                     # 如果是消耗体力
-            my_Assert(abs($useTili) < $user->tili, ErrCode::notenough_tili);    # 体力不足
-            $user->tili += $useTili;                                            # 扣除体力
+            my_Assert(abs($useTili) < $user->baseInfo->tili, ErrCode::notenough_tili);    # 体力不足
+            $user->baseInfo->tili += $useTili;                                            # 扣除体力
         } else if ($useTili > 0) {                                              # 如果是购买增加体力
-            $user->tili += $useTili;
+            $user->baseInfo->tili += $useTili;
         }
         return ErrCode::ok;
     }
@@ -552,7 +559,7 @@ class ActiveProc {
 
     /**
      * 清理每日任务,每天都会将每日任务置为未完成状态
-     * @param type $req
+     * @param req $req
      */
     public static function ResetEverydayTask($req) {
         $tasks = $req->userInfo->game->privateState->Tasks;
@@ -568,7 +575,7 @@ class ActiveProc {
                 $val = explode(",", $s_task->taskrank);
                 $lowlevel = $val[0];
                 $highlevel = $val[1];
-                if ($req->userInfo->game->level > $lowlevel && $req->userInfo->game->level <= $highlevel) {
+                if ($req->userInfo->game->baseInfo->level > $lowlevel && $req->userInfo->game->baseInfo->level <= $highlevel) {
                     $tasks->$s_taskid = json_decode('{"state":1}');
                     //   $arrTask[] = $s_taskid;
                     // var_dump($arrTask);

+ 9 - 9
Gameserver/Amfphp/process/ActiveProc/Day7Tasks.php

@@ -37,10 +37,10 @@ class Day7Tasks {
             $result = array(
                 'store' => $req->userInfo->game->store,
                 'heros' => $req->userInfo->game->heros,
-                'cash' => $req->userInfo->game->cash,
-                'tili' => $req->userInfo->game->tili,
+                'cash' => $req->userInfo->game->baseInfo->cash,
+                'tili' => $req->userInfo->game->baseInfo->tili,
                 'time' => $req->userInfo->game->privateState->TiliTime,
-                'gold' => $req->userInfo->game->gold
+                'gold' => $req->userInfo->game->baseInfo->gold
             );
             return Resp::ok($result);
         } else {                                                                # 普通任务奖励
@@ -55,10 +55,10 @@ class Day7Tasks {
                 $result = array(
                     'store' => $req->userInfo->game->store,
                     'heros' => $req->userInfo->game->heros,
-                    'cash' => $req->userInfo->game->cash,
-                    'tili' => $req->userInfo->game->tili,
+                    'cash' => $req->userInfo->game->baseInfo->cash,
+                    'tili' => $req->userInfo->game->baseInfo->tili,
                     'time' => $req->userInfo->game->privateState->TiliTime,
-                    'gold' => $req->userInfo->game->gold
+                    'gold' => $req->userInfo->game->baseInfo->gold
                 );
                 return Resp::ok($result);
             }
@@ -80,10 +80,10 @@ class Day7Tasks {
             $result = array(
                 'store' => $req->userInfo->game->store,
                 'heros' => $req->userInfo->game->heros,
-                'cash' => $req->userInfo->game->cash,
-                'tili' => $req->userInfo->game->tili,
+                'cash' => $req->userInfo->game->baseInfo->cash,
+                'tili' => $req->userInfo->game->baseInfo->tili,
                 'time' => $req->userInfo->game->privateState->TiliTime,
-                'gold' => $req->userInfo->game->gold
+                'gold' => $req->userInfo->game->baseInfo->gold
             );
             return Resp::ok($result);
         }

+ 11 - 11
Gameserver/Amfphp/process/FightProc/PVPProc.php

@@ -70,9 +70,9 @@ class PVPProc {
 
         $adversary = array(#                                                    # 拼装玩家信息
             'uid' => $targetUID,
-            'name' => my_null_default($uinfo->game->name, ""),
-            'level' => my_null_default($uinfo->game->level, 1),
-            'headImg' => my_null_default($uinfo->game->img, ""),
+            'name' => my_null_default($uinfo->game->baseInfo->name, ""),
+            'level' => my_null_default($uinfo->game->baseInfo->level, 1),
+            'headImg' => my_null_default($uinfo->game->baseInfo->img, ""),
 //            'skills' => null, #                                                  # skills暂时没有实例数据 
             'equipment' => array("equipments" => my_null_default($uinfo->game->store->equipment, new \stdClass())), # 武器
             'yanling' => array("items" => my_null_default($uinfo->game->store->yanling, new \stdClass())), # 言灵
@@ -108,8 +108,8 @@ class PVPProc {
         $req->mem->zadd($key_target, array(#                                    # 组装挑战者信息
             JsonUtil::encode(array(
                 'uid' => $req->uid,
-                'name' => $req->userInfo->game->name,
-                'headImg' => $req->userInfo->game->img,
+                'name' => $req->userInfo->game->baseInfo->name,
+                'headImg' => $req->userInfo->game->baseInfo->img,
                 'win' => !my_null_default($win, false),
                 'msg' => my_null_default($msg, ""),
                 'ts' => $ts
@@ -332,7 +332,7 @@ class PVPProc {
     static function pvp_PK($req) {
         $uid = $req->uid;
         $zoneid = $req->zoneid;
-        $user = $req->userInfo->game;
+        $baseInfo = $req->userInfo->game->baseInfo;
         list($target_uid, $result, $target_name, $target_HeadImg) = $req->paras; # 对手id,胜负结果 0负,1胜
 
         $pvp = $req->userInfo->game->pvp;
@@ -375,7 +375,7 @@ class PVPProc {
         $key_mine = MemKey_User::PVP_OffensiveLog_zset($zoneid, $uid);          # 我的主动挑战记录
         self::_Log_PVP_PK_Info($key_mine, $target_uid, $target_name, $target_HeadImg, $result, $R_A - $RA); # 自己的挑战记录
         $key_target = MemKey_User::PVP_DefensiveLog_zset($zoneid, $target_uid); # 对手的被挑战记录
-        self::_Log_PVP_PK_Info($key_target, $uid, $user->name, $user->img, !$result, $B_Change); # 对手的被挑战记录
+        self::_Log_PVP_PK_Info($key_target, $uid, $baseInfo->name, $baseInfo->img, !$result, $B_Change); # 对手的被挑战记录
 
         $ret = array(#                                                          # 组装返回值
             'freeFightTickets' => $pvp->freeFightTickets, #                     # 自己剩余免费票
@@ -430,7 +430,7 @@ class PVPProc {
         $ret = array(
             'fightTicket' => $pvp->fightTicket,
             'costCash' => $costCash,
-            'userCash' => $req->userInfo->game->cash
+            'userCash' => $req->userInfo->game->baseInfo->cash
         );
         return Resp::ok($ret);                                                  # 返回
     }
@@ -697,9 +697,9 @@ class PVPProc {
             $fpower = HeroProc::CalcUserFightPower($zoneid, $uid, $userGameInfo->game); # 计算总战力
             $adversary = array(#                                                # 拼装玩家信息
                 'uid' => $uid,
-                'name' => my_null_default($userGameInfo->game->name, ""),
-                'level' => my_null_default($userGameInfo->game->level, 1),
-                'headImg' => my_null_default($userGameInfo->game->img, ""),
+                'name' => my_null_default($userGameInfo->game->baseInfo->name, ""),
+                'level' => my_null_default($userGameInfo->game->baseInfo->level, 1),
+                'headImg' => my_null_default($userGameInfo->game->baseInfo->img, ""),
 //            'skills' => null, #                                                 # skills暂时没有实例数据 
                 'equipment' => array("equipments" => my_null_default($userGameInfo->game->store->equipment, new \stdClass())), # 武器
                 'yanling' => array("items" => my_null_default($userGameInfo->game->store->yanling, new \stdClass())), # 言灵

+ 7 - 7
Gameserver/Amfphp/process/FightProc/SweepGatesProc.php

@@ -117,9 +117,9 @@ class SweepGatesProc {
 //        echoLine("wwTT");
 //        var_dump($rewardStr);
         $rewardArr = self::SetRewards($req, $rewardStr);                           # 发通关奖励 
-        UserGameModel::Add_Gold($req->userInfo->game, $gold);                   # 发金币
-        UserGameModel::Add_Exp($req->userInfo->game, $exp);                     # 给玩家(指挥官)增加经验
-//        UserProc::updateUserInfo();                                             # 回写玩家数据.
+        UserGameModel::Add_Gold($req->userInfo->game->baseInfo, $gold);                   # 发金币
+        UserGameModel::Add_Exp($req->userInfo->game->baseInfo, $exp);                     # 给玩家(指挥官)增加经验
+        UserProc::updateUserInfo();                                             # 回写玩家数据.
         #
         TaskProc::OnPassGateN($gateId, $difficulty);
 //        var_dump($rewardArr);
@@ -127,7 +127,7 @@ class SweepGatesProc {
             'store' => $req->userInfo->game->store,
             'heros' => $req->userInfo->game->heros,
             'gates' => $req->userInfo->game->gates,
-            'tili' => $req->userInfo->game->tili,
+            'tili' => $req->userInfo->game->baseInfo->tili,
             'time' => $req->userInfo->game->privateState->TiliTime,
             'gold' => $gold,
             'exp' => $exp,
@@ -317,17 +317,17 @@ class SweepGatesProc {
             }
         }
 
-        UserGameModel::Add_Gold($req->userInfo->game, $gold);        # 发放金币奖励
+        UserGameModel::Add_Gold($req->userInfo->game->baseInfo, $gold);        # 发放金币奖励
         if ($err) {
             return Resp::err($err);
         }
-        UserGameModel::Add_Exp($req->userInfo->game, $exp);                     # 发放经验奖励
+        UserGameModel::Add_Exp($req->userInfo->game->baseInfo, $exp);                     # 发放经验奖励
         UserProc::updateUserInfo();                                         # 在获取战利品哪里已经update了.
         $result = array(
             'store' => $req->userInfo->game->store,
             'heros' => $req->userInfo->game->heros,
             'gates' => $req->userInfo->game->gates,
-            'tili' => $req->userInfo->game->tili,
+            'tili' => $req->userInfo->game->baseInfo->tili,
             'time' => $req->userInfo->game->privateState->TiliTime,
             'gold' => $gold,
             'exp' => $exp,

+ 40 - 39
Gameserver/Amfphp/process/GuildProc.php

@@ -140,7 +140,7 @@ class GuildProc {
             GuildProc::refuseGuildCupScore($req);                               # 公会积分清理
             UserGuildModel::checkFirstlog($userGuildInfo);                      # 清理一下每日该清除的内容
         }
-        UserGuildModel::userGuildInfoInit($userGuildInfo, $uid, $game, $mem, $req->zoneid); # 更新数据
+        UserGuildModel::userGuildInfoInit($userGuildInfo, $uid, $game->baseInfo, $mem, $req->zoneid); # 更新数据
         if (is_array($userGuildInfo->donateCount)) {                            # todo:上线后删除
             $userGuildInfo->donateCount = ObjectInit();
         }
@@ -242,7 +242,7 @@ class GuildProc {
         $resp = new Resp();
         $mem = $req->mem;
         $paydb = CPayInit();                                                    // 公会信息记录在paydb中了
-        $game = $req->userInfo->game;
+        $baseInfo = $req->userInfo->game->baseInfo;
         $zoneid = $req->zoneid;
         //客户端参数解析
         $uid = $req->uid; //fromoid
@@ -268,19 +268,19 @@ class GuildProc {
                     if ($guild_img == null) {
                         $resp = Resp::err(ErrCode::err_guild_imgEmputy);
                     } else {
-                        if ($game->gold < $gcfg->Guild_Found_CostGold) {        # 检查是否拥有创建公会所需的金币,(等级超过20级,需要金币10万)
+                        if ($baseInfo->gold < $gcfg->Guild_Found_CostGold) {        # 检查是否拥有创建公会所需的金币,(等级超过20级,需要金币10万)
                             $resp = Resp::err(ErrCode::err_msg_goldnotenough);
                         } else {
-                            UserGameModel::Consume_Gold($game, $gcfg->Guild_Found_CostGold); //扣除金币
+                            UserGameModel::Consume_Gold($baseInfo, $gcfg->Guild_Found_CostGold); //扣除金币
                             $guildInfo = GuildModel::NewGuildInit($mem, $zoneid); // 创建公会MEM数据体,
                             $guildInfo->declare = $declare;
                             $guildInfo->name = $guildName;
                             $guildInfo->members[] = $uid;
                             $guildInfo->chairman_id = $uid;
-                            $guildInfo->chairman_name = $game->name;
+                            $guildInfo->chairman_name = $baseInfo->name;
                             $guildInfo->guild_img = $guild_img;
                             $guildInfo->enableQuickIn = 0;
-                            $guildInfo->chairmanLastLogin = $game->lastLogin;
+                            $guildInfo->chairmanLastLogin = $baseInfo->lastLogin;
                             if ($applyType != null) {
                                 $guildInfo->enableQuickIn = $applyType;
                             }
@@ -288,7 +288,7 @@ class GuildProc {
                             $obj->cupScore = $condition == null ? 0 : $condition;
                             $guildInfo->condition = json_encode($obj);
                             $userGuildInfo = UserGuildModel::Clear();           # 创建/重置玩家公会信息
-                            UserGuildModel::userGuildInfoInit($userGuildInfo, $uid, $game, $mem, $zoneid);
+                            UserGuildModel::userGuildInfoInit($userGuildInfo, $uid, $baseInfo, $mem, $zoneid);
                             $userGuildInfo->guildId = $guildInfo->guildId;
                             $userGuildInfo->position = 'Chairman';
                             $userGuildInfo->guildName = $guildInfo->name;
@@ -299,8 +299,8 @@ class GuildProc {
                             $paydb->query(sprintf(SQLCREATEGUILD, $guildInfo->guildId, // Mysql 插入公会记录
                                             $paydb->escape_string($guildName), $guildInfo->createts,
                                             $paydb->escape_string($declare), count($guildInfo->members), $uid,
-                                            $paydb->escape_string($game->name), $guild_img, $zoneid, $score, $guildInfo->enableQuickIn, $guildInfo->condition));
-                            self::pushNewJournal($mem, $guildInfo->guildId, GuildJournalModel::CreateJoin($uid, $game->name), $zoneid);
+                                            $paydb->escape_string($baseInfo->name), $guild_img, $zoneid, $score, $guildInfo->enableQuickIn, $guildInfo->condition));
+                            self::pushNewJournal($mem, $guildInfo->guildId, GuildJournalModel::CreateJoin($uid, $baseInfo->name), $zoneid);
 
                             self::updateUserGuildInfo($mem, $uid, $userGuildInfo, $zoneid); // 回写数据
                             self::addGuildInfo($mem, $guildInfo->guildId, $guildInfo, $zoneid);
@@ -367,7 +367,7 @@ class GuildProc {
                 }
 
                 if ($is_apply) {
-                    $appinfo = UserApplyForGuildModel::CreateApplyInfo($uid, $game->name, $game->level); // t添加请求信息
+                    $appinfo = UserApplyForGuildModel::CreateApplyInfo($uid, $game->baseInfo->name, $game->baseInfo->level); // t添加请求信息
                     $guildInfo->applylist->$uid = $appinfo;
                     if ($userGuildInfo == null) {
                         $userGuildInfo = UserGuildModel::Clear();
@@ -396,7 +396,7 @@ class GuildProc {
     static function QuickIn($req) {
         $resp = new Resp();
         $mem = $req->mem;
-        $game = $req->userInfo->game;
+        $game = $req->userInfo->game->baseInfo;
         $zoneid = $req->zoneid;
         $uid = $req->uid; //fromoid
         // 公会相关数据模型
@@ -645,7 +645,7 @@ class GuildProc {
                                 $targetUserGuildInfo->position = 'Member';
 
                                 self::updateGuildMemberCount($guildInfo, $zoneID); // 同步更新一下数据库中公会成员数量
-                                self::pushNewJournal($mem, $guildId, GuildJournalModel::CreateJoin($targetId, $targetUser->game->name), $zoneID);  // 插入日志
+                                self::pushNewJournal($mem, $guildId, GuildJournalModel::CreateJoin($targetId, $targetUser->game->baseInfo->name), $zoneID);  // 插入日志
                             } else {
                                 #发送一封邮件通知玩家被拒绝
                                 EmailProc::SendGuildApplyRefusedMail($zoneID, $targetId, $guildInfo->name);
@@ -711,9 +711,9 @@ class GuildProc {
                         if (self::isOfficerChairman($uid, $guildInfo)) {
                             self::removeOfficerChairman($guildInfo, $transferedid);
                         }
-                        self::updateDBGuildChairmanInfo($zoneID, $transfereduser->game->name, $transferedid, $guildId);  // 更新数据库中关于工会的信息
+                        self::updateDBGuildChairmanInfo($zoneID, $transfereduser->game->baseInfo->name, $transferedid, $guildId);  // 更新数据库中关于工会的信息
 // 插入公会日志
-                        self::pushNewJournal($mem, $guildId, GuildJournalModel::CreateChangeChairman($uid, $game->name, $transferedid, $transfereduser->game->name), $zoneID);
+                        self::pushNewJournal($mem, $guildId, GuildJournalModel::CreateChangeChairman($uid, $game->baseInfo->name, $transferedid, $transfereduser->game->baseInfo->name), $zoneID);
 
                         self::updateGuildInfo($mem, $guildId, $guildInfo, $zoneID);    // 更新公会数据
 // 设置成功返回值
@@ -933,15 +933,15 @@ class GuildProc {
             foreach ($guildInfo->members as $mboid) {
                 $memberInfo = self::getMemUserGuildInfo($mem, $mboid, $zoneID);
                 $userInfo = UserProc::getUserInfo($mem, $zoneID, $mboid);
-                $memberInfo->name = $userInfo->game->name;
-                $memberInfo->level = $userInfo->game->level;
+                $memberInfo->name = $userInfo->game->baseInfo->name;
+                $memberInfo->level = $userInfo->game->baseInfo->level;
                 $memberInfo->fightPower = self::initFightTeamInfo($mem, $mboid, $zoneID);
                 $memberInfo->uid = $mboid;
-                $memberInfo->img = $userInfo->game->img;
-                $memberInfo->imgBorderId = $userInfo->game->imgBorderId;
+                $memberInfo->img = $userInfo->game->baseInfo->img;
+                $memberInfo->imgBorderId = $userInfo->game->baseInfo->imgBorderId;
 //                $score = $mem->zscore($key_cur, $mboid);
                 $memberInfo->cupScore = $score == null ? 0 : $score;
-                $memberInfo->lastLogin = $userInfo->game->lastLogin; #成员最后登陆时间
+                $memberInfo->lastLogin = $userInfo->game->baseInfo->lastLogin; #成员最后登陆时间
                 unset($memberInfo->appliedguildlist);
                 unset($memberInfo->appliedguildRecord);
                 $memberArr[] = $memberInfo;
@@ -952,7 +952,7 @@ class GuildProc {
             }
 
             $chairmanInfo = UserProc::getUserInfo($mem, $zoneID, $guildInfo->chairman_id);
-            $guildInfo->chairmanLastLogin = $chairmanInfo->game->lastLogin;
+            $guildInfo->chairmanLastLogin = $chairmanInfo->game->baseInfo->lastLogin;
 
             $resp = Resp::ok(array(
                         "guildInfo" => $guildInfo,
@@ -1032,7 +1032,7 @@ class GuildProc {
                     }
 
                     // todo: 公会日志加入信息
-                    self::pushNewJournal($mem, $guildId, GuildJournalModel::CreateQuit($uid, $game->name), $zoneid);
+                    self::pushNewJournal($mem, $guildId, GuildJournalModel::CreateQuit($uid, $game->baseInfo->name), $zoneid);
                     // 同步更新一下公会成员数量
                     self::updateGuildMemberCount($guildInfo, $zoneid);
                     // 回写数据
@@ -1072,7 +1072,7 @@ class GuildProc {
                     $resp = Resp::err(ErrCode::err_guild_usernotguildmember);
                 } else {
                     $chairmanInfo = UserProc::getUserInfo($mem, $zoneid, $guildInfo->chairman_id);
-                    $lastLogin = $chairmanInfo->game->lastLogin; //86400
+                    $lastLogin = $chairmanInfo->game->baseInfo->lastLogin; //86400
                     $ts = now() - $lastLogin;
                     if ($ts < glc()->Guild_ChairManLastLoginLimit) {
                         $resp = Resp::err(ErrCode::err_guild_notsatisfiedaccusecondition);
@@ -1238,9 +1238,9 @@ class GuildProc {
                 $applyGuildInfo = UserGuildModel::Clear();
             }
             #字段更新
-            UserGuildModel::userGuildInfoInit($applyGuildInfo, $userId, $userInfo->game, $mem, $zoneid);
+            UserGuildModel::userGuildInfoInit($applyGuildInfo, $userId, $userInfo->game->baseInfo, $mem, $zoneid);
             $applyGuildInfo->fightPower = GuildProc::initFightTeamInfo($mem, $userId, $zoneid); #$game->heroTeamConfig;
-            $applyGuildInfo->lastLogin = $userInfo->game->lastLogin; #成员最后登陆时间
+            $applyGuildInfo->lastLogin = $userInfo->game->baseInfo->lastLogin; #成员最后登陆时间
             //self::updateUserGuildInfo($mem, $applyGuildInfo->uid, $applyGuildInfo, $zoneid);
             # 设置成功返回值
             $resp = Resp::ok($applyGuildInfo);
@@ -1254,7 +1254,7 @@ class GuildProc {
 
     /**
      * [7021] 请求捐献
-     * @param type $req
+     * @param req $req
      */
     static function requestDonate($req) {
         $resp = new Resp();
@@ -1324,7 +1324,7 @@ class GuildProc {
                                     } else {
                                         $userGuildInfo->requestCardTs = now(glc()->Guild_RequestCardIntervalTime);
                                         #将碎片捐献信息存入哈希表中,时间戳为key+uid
-                                        GuildProc::hsetGuildRequestDonateInfo($mem, $guildId, GuildJournalModel::RequestDonate($uid, $req->userInfo->game->name, $cardId, $cardCount), $uid, $zoneid);
+                                        GuildProc::hsetGuildRequestDonateInfo($mem, $guildId, GuildJournalModel::RequestDonate($uid, $req->userInfo->game->baseInfo->name, $cardId, $cardCount), $uid, $zoneid);
                                         self::updateUserGuildInfo($mem, $uid, $userGuildInfo, $zoneid);
                                         self::updateGuildInfo($mem, $guildId, $guildInfo, $zoneid);
                                         # 设置成功返回值
@@ -1345,6 +1345,7 @@ class GuildProc {
 
     /**
      * [7022] 捐献
+     * @param Req $req Description
      */
     static function donate($req) {
         $resp = new Resp();
@@ -1400,8 +1401,8 @@ class GuildProc {
                                 if ($reward) {
                                     #捐献的人扣卡牌 +奖励
                                     UserGameModel::Consume_HeroSegment($game, $segmentId, $segmentNum); //扣卡牌
-                                    UserGameModel::Add_Gold($game, $guildReward->gold * $segmentNum); #加金币奖励
-                                    UserGameModel::Add_Exp($req->userInfo->game, $guildReward->exp * $segmentNum); #加经验
+                                    UserGameModel::Add_Gold($game->baseInfo, $guildReward->gold * $segmentNum); #加金币奖励
+                                    UserGameModel::Add_Exp($req->userInfo->game->baseInfo, $guildReward->exp * $segmentNum); #加经验
                                     $userGuildInfo->contribute += $guildReward->contribution * $segmentNum; #加贡献度
                                     #计算所在公会总贡献度
                                     $guildInfo->allContribute += $userGuildInfo->contribute;
@@ -1586,7 +1587,7 @@ class GuildProc {
 
     /**
      * [7024]购买 捐献度礼包
-     * @param type $req
+     * @param req $req
      */
     static function buyDonateGift($req) {
         $resp = new Resp();
@@ -1596,7 +1597,7 @@ class GuildProc {
         $uid = $req->uid; //审批者
         $zoneid = $req->zoneid;
         $libaoId = $req->paras[0]; //礼包id
-        $game = $req->userInfo->game;
+        $baseInfo = $req->userInfo->game->baseInfo;
 
         $userGuildInfo = self::getMemUserGuildInfo($mem, $uid, $zoneid);
         if ($userGuildInfo == null || $userGuildInfo->guildId <= 0) {
@@ -1615,13 +1616,13 @@ class GuildProc {
                     if ($libaoInfo->donaterequire > $userGuildInfo->contribute) {
                         $resp = Resp::err(ErrCode::err_guild_contributionnosatisfy);
                     } else {
-                        $money = $libaoInfo->pricetype == 1 ? $game->gold - $libaoInfo->price : $game->cash - $libaoInfo->price;
+                        $money = $libaoInfo->pricetype == 1 ? $baseInfo->gold - $libaoInfo->price : $baseInfo->cash - $libaoInfo->price;
                         $type = $libaoInfo->pricetype == 1 ? ErrCode::notenough_gold_msg : ErrCode::notenough_cash_msg;
                         if ($money < 0) {#钱不够
                             $resp = Resp::err($type);
                         } else {
                             #扣除花费
-                            $libaoInfo->pricetype == 1 ? UserGameModel::Consume_Gold($game, $libaoInfo->price) : UserGameModel::Consume_Cash($game, $libaoInfo->price);
+                            $libaoInfo->pricetype == 1 ? UserGameModel::Consume_Gold($baseInfo, $libaoInfo->price) : UserGameModel::Consume_Cash($baseInfo, $libaoInfo->price);
                             #回存礼包
                             $err = StoreProc::AddMultiItemInStore($req, $libaoInfo->libaocontent, 5);
                             if ($err == 0) {
@@ -1647,7 +1648,7 @@ class GuildProc {
                                 }
                                 self::updateGuildInfo($mem, $guildInfo->guildId, $guildInfo, $zoneid);
                                 UserProc::updateUserInfo();
-                                SystemProc::BuyGuildCashPack($zoneid, $game); # 插入系统消息
+                                SystemProc::BuyGuildCashPack($zoneid, $baseInfo); # 插入系统消息
                                 $resp = Resp::ok(array(
                                             "result" => 0,
                                             'store' => $req->userInfo->game->store,
@@ -1663,7 +1664,7 @@ class GuildProc {
 
     /**
      * [7025]购买 公会钻石礼包 弃用
-     * @param type $req
+     * @param req $req
      */
     static function buyGuildCashGift($req) {
         $resp = new Resp();
@@ -1673,7 +1674,7 @@ class GuildProc {
         $uid = $req->uid;
         $zoneid = $req->zoneid;
         $libaoId = $req->paras[0]; //礼包id
-        $game = $req->userInfo->game;
+        $baseInfo = $req->userInfo->game->baseInfo;
 
         $userGuildInfo = self::getMemUserGuildInfo($mem, $uid, $zoneid);
         if ($userGuildInfo == null || $userGuildInfo->guildId <= 0) {
@@ -1688,13 +1689,13 @@ class GuildProc {
                 if ($libaoInfo == null || !$libaoInfo->isOpen && $guildInfo->level < $libaoInfo->openguildlevel) {
                     $resp = Resp::err(ErrCode::err_guild_contributionGiftnoopen);
                 } else {
-                    $money = $libaoInfo->pricetype == 1 ? $game->gold - $libaoInfo->price : $game->cash - $libaoInfo->price;
+                    $money = $libaoInfo->pricetype == 1 ? $baseInfo->gold - $libaoInfo->price : $baseInfo->cash - $libaoInfo->price;
                     $type = $libaoInfo->pricetype == 1 ? ErrCode::notenough_gold_msg : ErrCode::notenough_cash_msg;
                     if ($money < 0) {#钱不够
                         $resp = Resp::err($type);
                     } else {
                         #扣除花费
-                        $libaoInfo->pricetype == 1 ? UserGameModel::Consume_Gold($game, $libaoInfo->price) : UserGameModel::Consume_Cash($game, $libaoInfo->price);
+                        $libaoInfo->pricetype == 1 ? UserGameModel::Consume_Gold($baseInfo, $libaoInfo->price) : UserGameModel::Consume_Cash($baseInfo, $libaoInfo->price);
                         #回存礼包
                         $err = StoreProc::AddMultiItemInStore($req, $libaoInfo->libaocontent, 5);
                         if ($err == 0) {
@@ -1720,7 +1721,7 @@ class GuildProc {
                             }
                             self::updateGuildInfo($mem, $guildInfo->guildId, $guildInfo, $zoneid);
                             UserProc::updateUserInfo();
-                            SystemProc::BuyGuildCashPack($zoneid, $game); # 插入系统消息
+                            SystemProc::BuyGuildCashPack($zoneid, $baseInfo); # 插入系统消息
                             $resp = Resp::ok(array(
                                         "result" => 0,
                                         'store' => $req->userInfo->game->store,
@@ -2063,7 +2064,7 @@ class GuildProc {
                     unset($guildInfo->members);
 
                     $chairman = UserProc::getUserInfo($mem, $zoneid, $guildInfo->chairman_id);
-                    $guildInfo->chairman_name = $chairman->game->name;
+                    $guildInfo->chairman_name = $chairman->game->baseInfo->name;
                     $memList [] = $guildInfo;
                 } else {  // 如果公会已经解散,添加到失效数组中
                     $invalidGuild[] = $guildId;

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

@@ -48,7 +48,7 @@ class HeroDiscussProc {
         $content = $req->paras[1];                                              # 评价内容
         $item = new DiscussItem(array(#                                         # 创建一条评论
             'uid' => $uid,
-            'name' => $req->userInfo->game->name,
+            'name' => $req->userInfo->game->baseInfo->name,
             'msg' => $content,
             'ts' => now(),
             'praise' => 0, #                                                    # 赞

+ 23 - 23
Gameserver/Amfphp/process/HeroProc.php

@@ -89,7 +89,7 @@ class HeroProc {
 
         $sm = GameConfig::subSkill_getItem($subSkillId);                        # 4.取出该技能升级消耗的常量数据
         my_Assert(null != $sm, ErrCode::err_const_no);                          # 找不到子技能配置数据 
-        my_Assert(UserGameModel::Consume_Gold($user, $sm->unlockCost), #        # 5. 扣除金币消耗
+        my_Assert(UserGameModel::Consume_Gold($user->baseInfo, $sm->unlockCost), #        # 5. 扣除金币消耗
                 ErrCode::notenough_gold_msg);
         array_push($targteHeroSkills->$mainSkillId, $subSkillId);               # 添加技能
         $targetHero->subSkills = $targteHeroSkills;
@@ -122,7 +122,7 @@ class HeroProc {
 //        if (null == $sm) {
 //            return \Resp::err(ErrCode::err_const_no, '找不到子技能配置数据');
 //        }
-        my_Assert(UserGameModel::Consume_Gold($user, $costGold), ErrCode::notenough_gold_msg); # 5. 扣除金币消耗
+        my_Assert(UserGameModel::Consume_Gold($user->baseInfo, $costGold), ErrCode::notenough_gold_msg); # 5. 扣除金币消耗
         unset($targteHeroSkills->$mainSkillId, $subSkillId);                    # 替换技能
         array_push($targteHeroSkills->$mainSkillId, $targetSubSkillId);
         $targetHero->subSkills = $targteHeroSkills;
@@ -150,7 +150,7 @@ class HeroProc {
 
         $sm = GameConfig::subSkill_getItem($subSkillId);                        # 4.取出该技能升级消耗的常量数据
         my_Assert(null != $sm, ErrCode::err_const_no);                          # 找不到子技能配置数据
-        my_Assert(UserGameModel::Consume_Gold($user, $sm->upgradeCost), ErrCode::notenough_gold_msg);  # 5. 扣除金币消耗
+        my_Assert(UserGameModel::Consume_Gold($user->baseInfo, $sm->upgradeCost), ErrCode::notenough_gold_msg);  # 5. 扣除金币消耗
 
         unset($targteHeroSkills->$mainSkillId, $subSkillId);                    # 替换技能
         array_push($targteHeroSkills->$mainSkillId, $sm->nextLevel_Id);
@@ -187,7 +187,7 @@ class HeroProc {
         $collectHeros->$huid = $upHero;                                         # 更新Hero数据
         UserProc::updateUserInfo();                                             # 6.数据回存
         $resp = Resp::ok($upHero);
-        SystemProc::insertHero_StageUp($req->zoneid, $req->uid, $user->name, #  # 插入系统广播
+        SystemProc::insertHero_StageUp($req->zoneid, $req->uid, $user->baseInfo->name, #  # 插入系统广播
                 GameConfig::hero_getItem($upHero->typeId)->name, $upHero->grade);
         self::CalcUserFightPower($req->zoneid, $req->uid, $req->userInfo->game); # 跟新战力统计
         TaskProc::OnHeroGradeUp($upHero->typeId, $upHero->grade);
@@ -442,13 +442,13 @@ class HeroProc {
         echoline($requireMoneyNum + "   " + $moneyNum + "   " + $requireMoneyType + "   " + $moneyType);
         if ($requireMoneyType == $moneyType && $requireMoneyNum == $moneyNum) {
             if ($requireMoneyType === "gold") {
-                if ($user->gold >= $requireMoneyNum) {
+                if ($user->baseInfo->gold >= $requireMoneyNum) {
                     $enoughMoney = true;
                 } else {
                     return Resp::err(ErrCode::notenough_gold_msg);
                 }
             } else if ($requireMoneyType === "cash") {
-                if ($user->cash >= $requireMoneyNum) {
+                if ($user->baseInfo->cash >= $requireMoneyNum) {
                     $enoughMoney = true;
                 } else {
                     return Resp::err(ErrCode::notenough_cash_msg);
@@ -463,9 +463,9 @@ class HeroProc {
         $bDeal = false;
         if ($enoughMoney === true) {
             if ($requireMoneyType === "gold") {
-                $bDeal = UserGameModel:: Consume_Gold($user, $requireMoneyNum);
+                $bDeal = UserGameModel:: Consume_Gold($user->baseInfo, $requireMoneyNum);
             } else if ($requireMoneyType === "cash") {
-                $bDeal = UserGameModel:: Consume_Cash($user, $requireMoneyNum);
+                $bDeal = UserGameModel:: Consume_Cash($user->baseInfo, $requireMoneyNum);
             }
         }
 
@@ -483,7 +483,7 @@ class HeroProc {
             UserProc::updateUserInfo();
             $resp = Resp::ok($strengthHero);
             #  推送系统消息
-            SystemProc::Hero_purification($req->zoneid, $user, $heroModelId);
+            SystemProc::Hero_purification($req->zoneid, $user->baseInfo, $heroModelId);
         }
         ActiveProc::ChangeTaskCount($req);
 
@@ -492,7 +492,7 @@ class HeroProc {
 
     /**
      * 英雄消耗碎片道具来升星
-     * @param type $req
+     * @param req $req
      */
     static function HeroUpStarByPieces($req) {
         $resp = Resp::err(ErrCode::err_method_notimplement);
@@ -637,13 +637,13 @@ class HeroProc {
 
         if ($requireMoneyType == $moneyType && $requireMoneyNum == $moneyNum) {
             if ($requireMoneyType === "gold") {
-                if ($user->gold >= $requireMoneyNum) {
+                if ($user->baseInfo->gold >= $requireMoneyNum) {
                     $enoughMoney = true;
                 } else {
                     return Resp::err(ErrCode::notenough_gold_msg);
                 }
             } else if ($requireMoneyType === "cash") {
-                if ($user->cash >= $requireMoneyNum) {
+                if ($user->baseInfo->cash >= $requireMoneyNum) {
                     $enoughMoney = true;
                 } else {
                     return Resp::err(ErrCode::notenough_cash_msg);
@@ -658,9 +658,9 @@ class HeroProc {
         $bDeal = false;
         if ($enoughMoney === true) {
             if ($requireMoneyType === "gold") {
-                $bDeal = UserGameModel:: Consume_Gold($user, $requireMoneyNum);
+                $bDeal = UserGameModel:: Consume_Gold($user->baseInfo, $requireMoneyNum);
             } else if ($requireMoneyType === "cash") {
-                $bDeal = UserGameModel:: Consume_Cash($user, $requireMoneyNum);
+                $bDeal = UserGameModel:: Consume_Cash($user->baseInfo, $requireMoneyNum);
             }
         }
 
@@ -816,10 +816,10 @@ class HeroProc {
             return Resp::err(ErrCode::paras_err);
         } else {
             if ($costGold > 0) {
-                if ($user->gold < $costGold) {
+                if ($user->baseInfo->gold < $costGold) {
                     return Resp::err(ErrCode::notenough_gold_msg);
                 } else {
-                    $bDeal = UserGameModel:: Consume_Gold($user, $costGold);
+                    $bDeal = UserGameModel:: Consume_Gold($user->baseInfo, $costGold);
                 }
             } else if ($costGold == 0) {
                 $bDeal = true;
@@ -888,13 +888,13 @@ class HeroProc {
                 $realPrice = $heroCfg->cashPrice;
                 my_Assert($realPrice == $costMoneyNum, ErrCode::paras_err);
                 my_Assert($costMoneyNum >= 0, ErrCode::paras_err);
-                my_Assert(UserGameModel::Consume_Cash($user, $costMoneyNum), ErrCode::err_msg_cashnotenough);
+                my_Assert(UserGameModel::Consume_Cash($user->baseInfo, $costMoneyNum), ErrCode::err_msg_cashnotenough);
                 break;
             case "gold":
                 $realPrice = $heroCfg->goldPrice;
                 my_Assert($realPrice == $costMoneyNum, ErrCode::paras_err);
                 my_Assert($costMoneyNum >= 0, ErrCode::paras_err);
-                my_Assert(UserGameModel::Consume_Gold($user, $costMoneyNum), ErrCode::err_msg_goldnotenough);
+                my_Assert(UserGameModel::Consume_Gold($user->baseInfo, $costMoneyNum), ErrCode::err_msg_goldnotenough);
                 break;
             default :
                 Err(ErrCode::paras_err, "参数错误: [costType] " . $costType);
@@ -905,7 +905,7 @@ class HeroProc {
         $req->userInfo->game->store->items = $myPacketItems;                    # 回存背包
         UserProc::updateUserInfo();                                             # 回写数据
         $resp = HeroProc::GetHero($req);
-        SystemProc::GetHero($req->zoneid, $user, $heroModelId);                 # 插入系统广播消息
+        SystemProc::GetHero($req->zoneid, $user->baseInfo, $heroModelId);                 # 插入系统广播消息
         return $resp;
     }
 
@@ -1060,7 +1060,7 @@ class HeroProc {
         my_Assert(CommUtil::isPropertyExists($collectHeros, $heroUID), ErrCode::hero_no); # 要升级的英雄不存在
         $targetHero = new UserHeroModel($collectHeros->$heroUID);               # 英雄对象 
         $maxLevel = glc()->Hero_Upgrade_BasicMaxLevel;                          # 等级上限 
-        $playerLimit = GameConfig::playerlevel_getItem($req->userInfo->game->level)->hero_max_level;
+        $playerLimit = GameConfig::playerlevel_getItem($req->userInfo->game->baseInfo->level)->hero_max_level;
         $maxLevel = min($maxLevel, $playerLimit);                               # 最大等级
         if ($targetHero->level >= $maxLevel) {
             return;                                                             # 已达顶级
@@ -1093,9 +1093,9 @@ class HeroProc {
         CLog:: Assert("HeroProc", $targetHero->xp >= 0, #
                 "[" . $req->uid . "] : HeroLevelUpgrade Exp is negative!");
         $collectHeros->$heroUID = $targetHero;                                  # 更新英雄的数据 
-        if ($targetHero->level != $initLevel) {
-            TaskProc::OnHeroLevelUp($targetHero->typeId, $targetHero->level);
-        }
+//        if ($targetHero->level != $initLevel) {
+        TaskProc::OnHeroLevelUp($targetHero->typeId, $targetHero->level);
+//        }
         return $targetHero;                                                     # 将英雄对象返回
     }
 

+ 22 - 22
Gameserver/Amfphp/process/PayProc.php

@@ -135,13 +135,13 @@ class PayProc {
         if (!$n) {
             return Resp::err(ErrCode::err_db);                      # 数据库操作失败
         }
-        $req->userInfo->game->charge_amt += $order->amount;                     # 历史充值记录(单位分)
+        $req->userInfo->game->baseInfo->charge_amt += $order->amount;                     # 历史充值记录(单位分)
         UserProc::updateUserInfo();                                         # 更新玩家数据信息
         Event::trigger('pay', array('amt' => $order->amount));                  # 触发充值事件
         CLog::pay("订单发货成功: $cpOrderId");
         return Resp::ok(# 返回
-                        array('cash' => $req->userInfo->game->cash, #           # 直接将游戏币的最新值返回给客户端
-                            'charge_amt' => $req->userInfo->game->charge_amt, #         # 充值总记录
+                        array('cash' => $req->userInfo->game->baseInfo->cash, #           # 直接将游戏币的最新值返回给客户端
+                            'charge_amt' => $req->userInfo->game->baseInfo->charge_amt, #         # 充值总记录
                             'store' => $req->userInfo->game->store, #                   # 背包
                             'goods' => $item->goods, #                                  # 发货内容
                             'count' => $product_count, #                                # 发货数量
@@ -247,12 +247,12 @@ class PayProc {
                     CLog::pay($req->uid . ' 登录补发订单失败 ' . $order->cpOrderId);
                     return Resp::err(ErrCode::err_db);              # 数据库操作失败
                 }
-                $req->userInfo->game->charge_amt += $order->amount;             # 历史充值记录(单位分)
+                $req->userInfo->game->baseInfo->charge_amt += $order->amount;             # 历史充值记录(单位分)
                 UserProc::updateUserInfo();                                 # 回写玩家数据
                 CLog::pay($req->uid . ' 登录补发订单 ' . $order->cpOrderId);
             }
             return Resp::ok(# 返回
-                            array('cash' => $req->userInfo->game->cash, #       # 直接将游戏币的最新值返回给客户端
+                            array('cash' => $req->userInfo->game->baseInfo->cash, #       # 直接将游戏币的最新值返回给客户端
                                 'store' => $req->userInfo->game->store, #               # 背包
                                 'goods' => $goods, #                                    # 发货内容
                                 'count' => count($orders), #                            # 发货数量
@@ -309,9 +309,9 @@ class PayProc {
         }
         // 返回最新物品表
         return Resp::ok(array(#                                                 # 成功后将最新的玩家数据返回给客户端
-                    'gold' => $user->gold,
-                    'tili' => $user->tili,
-                    'cash' => $user->cash,
+                    'gold' => $user->baseInfo->gold,
+                    'tili' => $user->baseInfo->tili,
+                    'cash' => $user->baseInfo->cash,
                     'uss' => $userSecretshop, #                                 # 当前神秘商城数据
         ));
     }
@@ -406,12 +406,12 @@ class PayProc {
         $amt = $shopItem->price * pow(2, $cishu);                               # 计算价格
         switch ($shopItem->pricetype) {
             case 1:
-                if (!UserGameModel::Consume_Cash($user, $amt)) {                # 扣除钻石
+                if (!UserGameModel::Consume_Cash($user->baseInfo, $amt)) {                # 扣除钻石
                     return Resp::err(ErrCode::notenough_cash_msg);
                 }
                 break;
             case 2:
-                if (!UserGameModel::Consume_Gold($user, $amt)) {                # 扣除金币
+                if (!UserGameModel::Consume_Gold($user->baseInfo, $amt)) {                # 扣除金币
                     return Resp::err(ErrCode::notenough_gold_msg);
                 }
                 break;
@@ -431,11 +431,11 @@ class PayProc {
         UserProc::updateUserInfo();                                         # 回写数据
         StatProc::secretShopbuy($req->zoneid, $req->uid, $itemId, $num);        # 统计/监控数据
         return Resp::ok(array(#                                                 # 成功后将最新的玩家数据返回给客户端
-                    'gold' => $user->gold,
-                    'tili' => $user->tili,
-                    'cash' => $user->cash,
-                    'store' => $user->store, #                                  # 背包,(装备、碎片、。。)
-                    'heros' => $user->heros #                                   # 角色
+                    'gold' => $user->baseInfo->gold,
+                    'tili' => $user->baseInfo->tili,
+                    'cash' => $user->baseInfo->cash,
+                    'store' => $user->baseInfo->store, #                                  # 背包,(装备、碎片、。。)
+                    'heros' => $user->baseInfo->heros #                                   # 角色
         ));
         //
     }
@@ -496,7 +496,7 @@ class PayProc {
                 $bDeal = true;
                 break;
             case 2:                                                             # 金币
-                if (!UserGameModel::Consume_Gold($user, $amt * $num)) {         # 更新玩家金币余额
+                if (!UserGameModel::Consume_Gold($user->baseInfo, $amt * $num)) {         # 更新玩家金币余额
                     return Resp::err(ErrCode::notenough_gold_msg);
                 }                                                               # 更新(扣除)玩家游戏币(金币)余额
                 $bDeal = true;
@@ -515,9 +515,9 @@ class PayProc {
             UserProc::updateUserInfo();                                     # 回写数据
             StatProc::shopbuy($zoneid, $uid, $itemId, $num);                    # 统计/监控数据
             return Resp::ok(array(#                                             # 成功后将最新的玩家数据返回给客户端
-                        'gold' => $user->gold,
-                        'tili' => $user->tili,
-                        'cash' => $user->cash,
+                        'gold' => $user->baseInfo->gold,
+                        'tili' => $user->baseInfo->tili,
+                        'cash' => $user->baseInfo->cash,
                         'store' => $user->store
             ));
         }
@@ -562,7 +562,7 @@ class PayProc {
 
     /**
      * 扣除玩家金币
-     * @param type $req
+     * @param req $req
      * @param type $amt
      * @param type $source
      * @param type $itemId
@@ -571,7 +571,7 @@ class PayProc {
     static function _SaveUserGold($req, $amt) {
         $err = ErrCode::ok;
         $user = $req->userInfo->game;
-        if (!UserGameModel::Consume_Gold($user, $amt)) {        # 更新玩家金币余额
+        if (!UserGameModel::Consume_Gold($user->baseInfo, $amt)) {        # 更新玩家金币余额
             $err = ErrCode::notenough_gold_msg;
         }
         return $err;
@@ -595,7 +595,7 @@ class PayProc {
                 && $privateState->firstPayGift) {                               # 如果已经领取首付礼包
             return Resp::err(ErrCode::pay_firstpaygetted);
         }
-        if ($req->userInfo->game->charge_amt <= 0) {                            # 如果尚未完成首付
+        if ($req->userInfo->game->baseInfo->charge_amt <= 0) {                            # 如果尚未完成首付
             return Resp::err(ErrCode::pay_firstpayno_err);
         }
         $itemModel = GameConfig::shop_getItem($itemId);                         # 取商品常量

+ 5 - 5
Gameserver/Amfphp/process/PayProc/YuanBaoPayProc.php

@@ -23,7 +23,7 @@ class YuanBaoPayProc {
     public static function mn_SaveUserYuanbao($req, $amt, $source = "") {
         $err = ErrCode::ok;
         if ($amt > 0) {  // 防御,数量不可能小于0
-            $user = $req->userInfo->game->user;
+            $user = $req->userInfo->game->baseInfo;
             $zoneid = $req->zoneid;  // 分区Id
             if ($user->yuanbao < $amt) { // 余额不足
                 CLog::err("[Cheating] mn_SaveUserYuanbao:" . $req->uid, __CLASS__);
@@ -45,7 +45,7 @@ class YuanBaoPayProc {
      */
     public static function m_payByYuanbao($req) {
         $resp = Resp::err(ErrCode::err_method_notimplement);
-        $user = $req->userInfo->game->user; # user引用
+        $user = $req->userInfo->game->baseInfo; # user引用
         $privateState = $req->userInfo->game->privateState;
 // 客户端参数解析
         $paytype = $req->paras[0];  // 付费类型 3.元宝, 2. 钻石, 1. 金币,
@@ -91,7 +91,7 @@ class YuanBaoPayProc {
                         }
                     }// 金币购买
                     else if (CommUtil::isPropertyExists($prize, "g") && $prize->g > 0) {
-                        if ($req->userInfo->game->user->gold < $prize->g) {
+                        if ($req->userInfo->game->baseInfo->gold < $prize->g) {
                             $resp = Resp::err(ErrCode::notenough_gold_msg);
                         } else {// 发货
                             StoreProc::addSeprateItem($itemModel, $req); // 更新玩家金币余额
@@ -130,7 +130,7 @@ class YuanBaoPayProc {
             $resp = Resp::err(ErrCode::user_no_err);
             return $resp;
         }
-        $user = $userinfo->game->user;
+        $user = $userinfo->game->baseInfo;
         if (!$user) {
             $resp = Resp::err(ErrCode::user_no_err);
             return $resp;
@@ -203,7 +203,7 @@ class YuanBaoPayProc {
     public static function m_AddUserYuanbao($req, $amt, $source = "") {
         $err = ErrCode::ok;
         if ($amt > 0) {  // 防御,数量不可能小于0
-            $user = $req->userInfo->game->user;
+            $user = $req->userInfo->game->baseInfo;
             $zoneid = $req->zoneid;  // 分区Id
             // 更新玩家游戏币余额
             $user->yuanbao += $amt;

+ 15 - 15
Gameserver/Amfphp/process/RankProc.php

@@ -54,10 +54,10 @@ class RankProc {
             $uinfo = UserProc::getUserInfo($req->mem, $req->zoneid, $uid);      # 读取玩家信息
             return array(#                                                      # 拼装玩家信息
                 'uid' => $uid,
-                'name' => my_null_default($uinfo->game->name, ""),
-                'level' => my_null_default($uinfo->game->level, 1),
+                'name' => my_null_default($uinfo->game->baseInfo->name, ""),
+                'level' => my_null_default($uinfo->game->baseInfo->level, 1),
                 'score' => my_null_default($score, 0),
-                'headImg' => my_null_default($uinfo->game->img, "")
+                'headImg' => my_null_default($uinfo->game->baseInfo->img, "")
             );
         }
         return null;                                                            # 未找到
@@ -78,10 +78,10 @@ class RankProc {
             $uinfo = UserProc::getUserInfo($req->mem, $req->zoneid, $uid);      # 读取玩家信息
             $ret[$condition] = array(#                                          # 拼装玩家信息
                 'uid' => $uid,
-                'name' => my_null_default($uinfo->game->name, ""),
-                'level' => my_null_default($uinfo->game->level, 1),
+                'name' => my_null_default($uinfo->game->baseInfo->name, ""),
+                'level' => my_null_default($uinfo->game->baseInfo->level, 1),
                 'score' => my_null_default($score, 0),
-                'headImg' => my_null_default($uinfo->game->img, "")
+                'headImg' => my_null_default($uinfo->game->baseInfo->img, "")
             );
         }
         return Resp::ok($ret);
@@ -108,10 +108,10 @@ class RankProc {
             $uinfo = UserProc::getUserInfo($req->mem, $req->zoneid, $uid);      # 读取玩家信息
             $userInfos[] = array(#                                              # 拼装玩家信息
                 'uid' => $uid,
-                'name' => my_null_default($uinfo->game->name, ""),
-                'level' => my_null_default($uinfo->game->level, 1),
+                'name' => my_null_default($uinfo->game->baseInfo->name, ""),
+                'level' => my_null_default($uinfo->game->baseInfo->level, 1),
                 'score' => my_null_default($score, 0),
-                'headImg' => my_null_default($uinfo->game->img, "")
+                'headImg' => my_null_default($uinfo->game->baseInfo->img, "")
             );
         }
         $user_ranking = $req->mem->zrevrank($key, $req->uid);                   # 查询玩家排名
@@ -198,10 +198,10 @@ class RankProc {
             $uinfo = UserProc::getUserInfo($req->mem, $req->zoneid, $uid);      # 读取玩家信息
             $ret[$condition] = array(#                                          # 拼装玩家信息
                 'uid' => $uid,
-                'name' => my_null_default($uinfo->game->name, ""),
-                'level' => my_null_default($uinfo->game->level, 1),
+                'name' => my_null_default($uinfo->game->baseInfo->name, ""),
+                'level' => my_null_default($uinfo->game->baseInfo->level, 1),
                 'score' => my_null_default($score, 0),
-                'headImg' => my_null_default($uinfo->game->img, "")
+                'headImg' => my_null_default($uinfo->game->baseInfo->img, "")
             );
         }
         if (count($ret) < 1) {
@@ -261,10 +261,10 @@ class RankProc {
             $uinfo = UserProc::getUserInfo($req->mem, $req->zoneid, $uid);      # 读取玩家信息
             $userInfos[] = array(#                                              # 拼装玩家信息
                 'uid' => $uid,
-                'name' => my_null_default($uinfo->game->name, ""),
-                'level' => my_null_default($uinfo->game->level, 1),
+                'name' => my_null_default($uinfo->game->baseInfo->name, ""),
+                'level' => my_null_default($uinfo->game->baseInfo->level, 1),
                 'score' => my_null_default($score, 0),
-                'headImg' => my_null_default($uinfo->game->img, "")
+                'headImg' => my_null_default($uinfo->game->baseInfo->img, "")
             );
         }
 

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

@@ -359,16 +359,16 @@ class StoreProc {
             $smItem = GameConfig::item_base_getItem($itemId);                   # 道具mo
             switch ($smItem->subType) {                                         # 根据类型分别添加到容器中
                 case 1:                                                         # 金币
-                    UserGameModel::Add_Gold($user, $num);
+                    UserGameModel::Add_Gold($user->baseInfo, $num);
                     break;
                 case 2:                                                         # 钻石
-                    UserGameModel::Add_Cash($user, $num);
+                    UserGameModel::Add_Cash($user->baseInfo, $num);
                     break;
                 case 3:                                                         # 体力       
                     UserGameModel::Add_tili($req, $num);
                     break;
                 case 4:                                                         # 友情值
-                    UserGameModel::Add_FriendPoint($user, $num);
+                    UserGameModel::Add_FriendPoint($user->baseInfo, $num);
                     break;
                 case 5:
                     $user->pvp->pvpCoins += $num;                               # 竞技币
@@ -395,7 +395,7 @@ class StoreProc {
                     Err(ErrCode::err_innerfault, "落入包裹时,出现了非法物品");
             }
         }
-        UserProc::updateUserInfo();
+//        UserProc::updateUserInfo();
         return ErrCode::ok;                                                     // 返回
     }
 
@@ -766,7 +766,7 @@ class StoreProc {
             }
             // 发金币
 
-            UserGameModel::Add_Gold($req->userInfo->game, $gem->maijia * $count);
+            UserGameModel::Add_Gold($req->userInfo->game->baseInfo, $gem->maijia * $count);
             $ret = array('resp' => "succeed!");
             $resp = Resp::ok($ret);
             UserProc::updateUserInfo();
@@ -782,7 +782,7 @@ class StoreProc {
             }
             // 发金币
 
-            UserGameModel::Add_Gold($req->userInfo->game, $gem->saleGoldPrice * $count);
+            UserGameModel::Add_Gold($req->userInfo->game->baseInfo, $gem->saleGoldPrice * $count);
             $ret = array('resp' => "succeed!");
             $resp = Resp::ok($ret);
             UserProc::updateUserInfo();
@@ -801,7 +801,7 @@ class StoreProc {
             if ($item == null) { //2.检测是否存在装备的原始数据
                 Err(ErrCode::err_const_no);
             }
-            UserGameModel::Add_Gold($req->userInfo->game, $item->maijia);
+            UserGameModel::Add_Gold($req->userInfo->game->baseInfo, $item->maijia);
 
             $ret = array('resp' => "succeed!");
             $resp = Resp::ok($ret); //返回必须是object 
@@ -842,7 +842,7 @@ class StoreProc {
             }
             // 发金币
 
-            UserGameModel::Add_Gold($req->userInfo->game, $gem->maijia * $count);
+            UserGameModel::Add_Gold($req->userInfo->game->baseInfo, $gem->maijia * $count);
             $ret = array('resp' => "succeed!");
             $resp = Resp::ok($ret);
         } else if ($type == 8) {  // 从仓库出售碎片 出售可叠加的物品
@@ -858,7 +858,7 @@ class StoreProc {
             }
             // 发金币
 
-            UserGameModel::Add_Gold($req->userInfo->game, $gem->saleGoldPrice * $count);
+            UserGameModel::Add_Gold($req->userInfo->game->baseInfo, $gem->saleGoldPrice * $count);
             $ret = array('resp' => "succeed!");
             $resp = Resp::ok($ret);
         } else if ($type < 4 && $type > 0) { # 这里是装备
@@ -877,7 +877,7 @@ class StoreProc {
             if ($item == null) { //2.检测是否存在装备的原始数据
                 Err(ErrCode::err_const_no);
             }
-            UserGameModel::Add_Gold($req->userInfo->game, $item->maijia);
+            UserGameModel::Add_Gold($req->userInfo->game->baseInfo, $item->maijia);
             $ret = array('resp' => "succeed!");
             $resp = Resp::ok($ret); //返回必须是object
         } else {

+ 6 - 5
Gameserver/Amfphp/process/SystemProc.php

@@ -103,9 +103,9 @@ class SystemProc {
         if (GAME_ONLINE) {
             return;
         }
-        self::insertHero_Star($req->zoneid, $req->uid, $req->userInfo->game->name, "王小刚", 100);
-        self::insertHero_StageUp($req->zoneid, $req->uid, $req->userInfo->game->name, "王小刚", 100);
-        self::insertWeapon_promoteUp($req->zoneid, $req->uid, $req->userInfo->game->name, "小小刚", 100);
+        self::insertHero_Star($req->zoneid, $req->uid, $req->userInfo->game->baseInfo->name, "王小刚", 100);
+        self::insertHero_StageUp($req->zoneid, $req->uid, $req->userInfo->game->baseInfo->name, "王小刚", 100);
+        self::insertWeapon_promoteUp($req->zoneid, $req->uid, $req->userInfo->game->baseInfo->name, "小小刚", 100);
         return Resp::ok(array('ret' => '你懂的!'));
     }
 
@@ -118,8 +118,9 @@ class SystemProc {
      * @param Req $req
      */
     static function clientTick($req) {
+        Err(ErrCode::err_method_obsoleted);
         $Tmem = $req->mem;
-        $user = $req->userInfo->user;
+        $user = $req->userInfo->game;
 
         if (!CommUtil::isPropertyExists($user, "tick")) {
             $user->tick = 0;
@@ -132,7 +133,7 @@ class SystemProc {
         } else {
             $tickList .= ",";
         }
-        $tickList .= "(\"" . $user->oId . "\",\"" . $user->name . "\",\"" . CommUtil::dtCurrent()->toString() . "\",\"" . "1" . "\")";
+        $tickList .= "(\"" . $req->uid . "\",\"" . $user->baseInfo->name . "\",\"" . CommUtil::dtCurrent()->toString() . "\",\"" . "1" . "\")";
         $Tmem->set("client-tick", $tickList);
 //        self::serialStatData($Tmem);
 

+ 33 - 65
Gameserver/Amfphp/process/TaskProc.php

@@ -2,53 +2,6 @@
 
 namespace loyalsoft;
 
-/**
- * 任务类型枚举 用于任务进度对比,参数传递.
- */
-class EnumTaskType extends Enum {
-
-    const CommanderLevelUpTo = 11;
-    const HeroLevelUpTo = 12;
-    const HeroGradeUpTo = 13;
-    const HeroSegmentNumberTo = 14;
-    const HeroSkillUnlock = 15;
-    const PassGateN = 21;
-    const passCarbonN = 22;
-    const PvPWinNumberTo = 31;
-    const PvPScoreTo = 32;
-    const UserPowerTo = 33;
-    const UserCollectScoreTo = 34;
-
-}
-
-/**
- * 任务参数,用于任务进度判定逻辑
- */
-class TaskParams {
-
-    public function __construct($_taskType, $_canshu1 = null, $_canshu2 = null) {
-        $this->taskType = $_taskType;
-        $this->canshu1 = $_canshu1;
-        $this->canshu2 = $_canshu2;
-    }
-
-    /**
-     * @var int 任务类型
-     */
-    public $taskType;
-
-    /**
-     * @var number 参数1
-     */
-    public $canshu1;
-
-    /**
-     * @var number 参数2
-     */
-    public $canshu2;
-
-}
-
 /**
  * 任务模块
  * @version
@@ -58,14 +11,14 @@ class TaskParams {
  */
 class TaskProc {
 
-    function procMain($req) {
+    static function procMain($req) {
         switch ($req->cmd) {
             case CmdCode::cmd_task_getInfo:                                     # 6201 刷新任务状态
                 return TaskProc::GetTaskInfo($req);
             case CmdCode::cmd_task_getReward:                                   # 6202 领取任务奖励
                 return TaskProc::GetTaskReward($req);
             case CmdCode::cmd_Task_setAttentionTask:                            # 6203 设置关注任务
-                return TaskProc::GetTaskInfo($req);
+                return TaskProc::setAttentionTask($req);
             default:
                 return Err(ErrCode::cmd_err);
         }
@@ -80,11 +33,12 @@ class TaskProc {
         $userTask = $req->userInfo->game->task;
 
         my_Assert(StlUtil::dictHasProperty($userTask->taskListPlot, $taskId), ErrCode::task_no); # 任务存在
-        isEditor() and $taskItem = new TaskInfo();
-        $taskItem = $userTask->taskListPlot->$taskId;
+        $taskItem = new TaskInfo($userTask->taskListPlot->$taskId);
         my_Assert($taskItem->rewardGeted < 1, ErrCode::task_reward_geted);      # 任务奖励尚未领取
         $userTask->curTaskId = $taskId;
-        return Resp::ok();
+        var_dump($userTask);
+        UserProc::updateUserInfo();
+        return Resp::ok(array("task" => $req->userInfo->game->task));
     }
 
     /**
@@ -94,7 +48,7 @@ class TaskProc {
     static function GetTaskInfo($req) {
         // 刷新
         // 返回
-        return Resp::ok($req->userInfo->game->task);
+        return Resp::ok(array("task" => $req->userInfo->game->task));
     }
 
     /**
@@ -103,11 +57,12 @@ class TaskProc {
      */
     static function GetTaskReward($req) {
         list($taskId) = $req->paras;                                            # 提取参数: 任务id
-        $userTask = $req->userInfo->game->task;
+        $userTask = new UserTaskInfo($req->userInfo->game->task);
         # 根据任务类型分支不同任务容器 暂时未添加每日任务分支
+//        var_dump($userTask->taskListPlot);
+//        var_dump($req->userInfo->game->task);
         my_Assert(StlUtil::dictHasProperty($userTask->taskListPlot, $taskId), ErrCode::task_no); #判断是否存在指定任务
-        isEditor() and $task = new TaskInfo();
-        $task = $userTask->taskListPlot->$taskId;
+        $task = new TaskInfo($userTask->taskListPlot->$taskId);
         my_Assert($task->progress >= 1, ErrCode::task_progress_not_complete);   # 判断任务进度是否已完成>=1f
         my_Assert($task->rewardGeted < 1, ErrCode::task_reward_geted);          # 奖励不可重复领取
         $taskCfg = GameConfig::task_getItem($taskId);                           # 任务配置数据
@@ -115,12 +70,19 @@ class TaskProc {
         $ok = StoreProc::AddMultiItemInStore($req, $taskCfg->reward);           # 发放任务奖励
         my_Assert($ok == ErrCode::ok, $ok);
         $task->rewardGeted = 1;
-        $req->userInfo->game->task = $userTask;                                 # 回存,理论上不用
-
+        $userTask->taskListPlot->$taskId = $task;
+        if ($userTask->IsAllPlotTaskOver()) {
+            $userTask->curTaskNode += 1;
+            $userTask->taskListPlot = ObjectInit();
+            $userTask->initialize();
+        }
+        $req->userInfo->game->task = $userTask;                                 # 回存
+//        var_dump($userTask);
+        UserProc::updateUserInfo();
         return Resp::ok(array(//                                                # 返回
-                    "gold" => $req->userInfo->game->gold,
-                    "cash" => $req->userInfo->game->cash,
-                    "tili" => $req->userInfo->game->tili,
+                    "gold" => $req->userInfo->game->baseInfo->gold,
+                    "cash" => $req->userInfo->game->baseInfo->cash,
+                    "tili" => $req->userInfo->game->baseInfo->tili,
                     "store" => $req->userInfo->game->store,
                     "task" => $req->userInfo->game->task
         ));
@@ -136,6 +98,7 @@ class TaskProc {
      * @param TaskParams $taskParam Description
      */
     static function CheckTaskConditions($taskParam) {
+        var_dump($taskParam);
         $bUpdate = false;
         foreach (req()->userInfo->game->task->taskListPlot as $tid => $task) {
             $taskCfg = GameConfig::task_getItem($tid);
@@ -143,17 +106,22 @@ class TaskProc {
             if ($taskCfg->tasktype != $taskParam->taskType) {                   # 任务类型必须匹配
                 continue;
             }
-            isEditor() and $task = new TaskInfo();
+            isEditor() and $task = new TaskInfo(-1);
+            if ($task->progress == 1) {                                         # 已完成的不再更新处理
+                continue;
+            }
             if (is_null($taskCfg->canshu1)) {
                 $task->progress = 1;
                 $bUpdate = true;
                 continue;
             }
-            $task->tag1 = max($task->tag1, $taskParam->canshu1);
-            if ($taskCfg->canshu1 <= $taskParam->canshu1) {
+
+            if ($taskCfg->canshu1 == $taskParam->canshu1) {
+                $task->tag1 = $taskParam->canshu1;
                 if (null == $taskCfg->canshu2 || 0 == $taskCfg->canshu2) {
-                    $bUpdate = true;
                     $task->progress = 1;
+                    $task->tag2 = $taskParam->canshu2;
+                    $bUpdate = true;
                 } else {
                     if (is_numeric($taskCfg->canshu2)) {
                         $task->tag2 = max($task->tag2, $taskParam->canshu2);

+ 14 - 14
Gameserver/Amfphp/process/UserProc.php

@@ -62,7 +62,7 @@ class UserProc {
      */
     static function SetUserImageBorder($req) {
         list($imgborderId) = $req->paras;                                       # 参数, 新头像框ID
-        $req->userInfo->game->imgBorderId = $imgborderId;
+        $req->userInfo->game->baseInfo->imgBorderId = $imgborderId;
         UserProc::updateUserInfo();
         return Resp::ok(array('ret' => 'ok'));
     }
@@ -108,8 +108,8 @@ class UserProc {
         $err = StoreProc::removeItemFromStore($req->userInfo->game->store, $itemid, 1);
         my_Assert($err == ErrCode::ok, $err);
 
-        $req->userInfo->game->name = $newname;
-        $req->userInfo->game->img = $image;
+        $req->userInfo->game->baseInfo->name = $newname;
+        $req->userInfo->game->baseInfo->img = $image;
         daoInst()->update(self::role_Table)
                 ->data(array('roleName' => $newname))
                 ->where('userID')->eq($req->uid)
@@ -386,7 +386,7 @@ class UserProc {
      * @param Req $req
      */
     static function checkContidays($req, $isnew = 0) {
-        $ret = TimeUtil::tsDay() - TimeUtil::tsDay($req->userInfo->game->lastLogin); // 对比登录日期
+        $ret = TimeUtil::tsDay() - TimeUtil::tsDay($req->userInfo->game->baseInfo->lastLogin); // 对比登录日期
         if ($ret > 0) {                                                         # 当天第一次登录
             self::OnNewDay($req, $isnew);
         } else {
@@ -395,7 +395,7 @@ class UserProc {
         if ($ret == 1) {                                                        # 连续登录
         } else if ($ret >= 2) {                                                 # 隔天登录
         }
-        $req->userInfo->game->lastLogin = now();                                # 更新下访问时间
+        $req->userInfo->game->baseInfo->lastLogin = now();                                # 更新下访问时间
         return $ret;
     }
 
@@ -424,10 +424,10 @@ class UserProc {
         $userInfo->zoneid = $req->zoneid;
         $userInfo->game = new UserGameModel();
         $userInfo->game->initialize();                                          # 初始化玩家数据
-        $userInfo->game->name = $rolename;
-        $userInfo->game->gender = $gender;
-        $userInfo->game->img = $profile_img;
-        $userInfo->game->firstLogin = now();
+        $userInfo->game->baseInfo->name = $rolename;
+        $userInfo->game->baseInfo->gender = $gender;
+        $userInfo->game->baseInfo->img = $profile_img;
+        $userInfo->game->baseInfo->firstLogin = now();
 //        $userInfo->game->pvp->socre = PVPProc::_getScore_by_uid($req, $req->uid); # 初始化pvp积分
 //        $userInfo->game->NewbieGuideOver = 1;
 //        UserProc::_intiHeroManual($userInfo->game);                             # 初始化图鉴
@@ -452,7 +452,7 @@ class UserProc {
     private static function updatePlatUserRecord($req, $isnew = 0) {
         $zoneid = $req->zoneid;
         $uid = $req->uid;
-        $user = $req->userInfo->game;
+        $user = $req->userInfo->game->baseInfo;
         $day = tsDay();
         $level = $user->level;
         $platUser = ObjectInit();
@@ -513,7 +513,7 @@ class UserProc {
         if ($userInfo) {
             $zoneid = $userInfo->zoneid;
             $uid = $userInfo->uid;
-            $userInfo->game->lastSaveTs = now();
+            $userInfo->game->baseInfo->lastSaveTs = now();
             $key = MemKey_User::Info_hash($zoneid, $uid);
             return $userInfo->game->updateData($key);
 //            return $mem->set(MemKey_User::Info($zoneid, $uid), $userInfo->game);
@@ -549,9 +549,9 @@ class UserProc {
         $playerName = "";
         $headImg = "";
         if (isset($req->userInfo)) {                                            # 防御确保玩家数据不为空
-            $level = $req->userInfo->game->level;
-            $playerName = $req->userInfo->game->name;
-            $headImg = $req->userInfo->game->img;
+            $level = $req->userInfo->game->baseInfo->level;
+            $playerName = $req->userInfo->game->baseInfo->name;
+            $headImg = $req->userInfo->game->baseInfo->img;
         } else {
             CLog::warn('玩家数据为空!' . __CLASS__ . '.' . __FUNCTION__);
         }

+ 3 - 5
Gameserver/Amfphp/service_call/fix/analysis.php

@@ -15,14 +15,12 @@ set_time_limit(0);  # cli 不限定执行时间
  * @copyright ? 2018-1-22, SJZ LoyalSoft Corporation & gwang. All rights reserved.
  */
 
-class analysis
-{
+class analysis {
 
-    public static function exec($uid)
-    {
+    public static function exec($uid) {
         $user = UserProc::getUserInfo(gMem(), 1, $uid);
 //        var_dump($user);
-        $ts = $user->game->lastSaveTs - $user->game->firstLogin;
+        $ts = $user->game->baseInfo->lastSaveTs - $user->game->baseInfo->firstLogin;
 //        var_dump($user);
         $str_len = '1分钟';
         if ($ts < 60) {

+ 0 - 0
Gameserver/Amfphp/triggers/TestTrigger.php → Gameserver/Amfphp/service_call/triggers/TestTrigger.php


+ 0 - 0
Gameserver/Amfphp/triggers/TriggerDumpLog2Sql.php → Gameserver/Amfphp/service_call/triggers/TriggerDumpLog2Sql.php


+ 3 - 3
Gameserver/gamesys/app/providers/actionone.php

@@ -54,7 +54,7 @@ function getCmdName($cmd) {
 
 /**
  * 根据cmd添加附加提示信息
- * @param type $info
+ * @param userinfomo $info
  */
 function getCmdDes($info) {
     $cmd = $info->cmd;
@@ -62,9 +62,9 @@ function getCmdDes($info) {
         case '6001':
             $str = "";
             $ret = json_decode($info->ret);
-            $str .= "昵称:" . $ret->game->name;
+            $str .= "昵称:" . $ret->game->basInfo->name;
             $str .= "; 分区:" . $ret->zoneid;
-            $str .= "; 等级:" . $ret->game->level;
+            $str .= "; 等级:" . $ret->game->basInfo->level;
             return $str;
         default:
             break;

+ 4 - 5
Gameserver/nbproject/private/private.xml

@@ -12,16 +12,15 @@
     </editor-bookmarks>
     <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
         <group>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/RankProc.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/test.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/UserTaskInfo.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/HeroProc.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/FightProc.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/FightProc/PVPProc.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/StoreProc.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/TaskProc.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/base/Req.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/UserGameModel.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/UserGameHeroModel.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/UserProc.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/FightProc/SweepGatesProc.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/TaskInfo.php</file>
         </group>
     </open-files>
 </project-private>