Эх сурвалжийг харах

梳理技能升级的cmd与function

gwang 5 жил өмнө
parent
commit
e20a3d5f50

+ 137 - 347
Gameserver/Amfphp/Process/HeroProc.php

@@ -18,16 +18,16 @@ class HeroProc {
         switch ($req->cmd) {
             case CmdCode::cmd_hero_levelup:                                     #  [6301] 英雄升级
                 return HeroProc::HeroLevelUpCostExpItem($req);
-            case CmdCode::cmd_hero_stageup:                                     #  6304  英雄进阶 SABCD
+            case CmdCode::cmd_hero_stageup:                                     #  [6304] 英雄进阶 SABCD
                 return HeroProc::HeroStageUp($req);
+//            case CmdCode::cmd_hero_upstar:                                    #  [6305] 英雄升星
+//                return HeroProc::HeroUpStarByPieces($req);
 //            case CmdCode::cmd_hero_changelockstate:                           #  [6306] 英雄-修改锁定状态
 //                return HeroProc::HeroChangelockstate($req);
 //            case CmdCode::cmd_hero_gethero:                                   #  [6308] 分解英雄
 //                return HeroProc::GetHero($req);
 //            case CmdCode::cmd_hero_strength:                                  #  [6309] 英雄升阶
 //                return HeroProc::HeroStrength($req);
-//            case CmdCode::cmd_hero_upstar:                                    #  [6305] 英雄升星
-//                return HeroProc::HeroUpStarByPieces($req);
 //            case CmdCode::cmd_hero_openFavor:                                 #  [6310] 英雄好感度解锁
 //                return HeroProc::HeroOpenFavor($req);
 //            case CmdCode::cmd_hero_separate:                                  #  [6311] 分解英雄
@@ -36,39 +36,135 @@ class HeroProc {
 //                return HeroProc::BuyHeroMaxCountLimt($req);
 //            case CmdCode::cmd_hero_changefriendsupport:                       #  [6313] 更换支援好友
 //                return HeroProc::ChangeFriendSupport($req);
+# --------- 英雄技能 -----------                
             case CmdCode::cmd_hero_upgradeSkillLevel:                           #  [6314] 英雄的技能升级
                 return HeroProc::UpgradeSkillLevel($req);
+            case CmdCode::cmd_hero_unlockSkill:                                 #  [6324] 英雄技能 - 解锁技能 
+                return;
+            case CmdCode::cmd_hero_skillLevel_onekeyupgrade:                    #  [6325] 英雄技能 - 一键升级
+                return;
             case CmdCode::cmd_hero_saveHeroTeamConfig:                          #  [6315] 保存玩家战队数据
                 return HeroProc::SaveHeroTeamConfig($req);
-            case CmdCode::cmd_hero_upGodBlood:                                  #  [6322] 神血升级
-                return HeroProc::UpGodBloodHeroByPieces($req);
-//            case CmdCode::cmd_hero_unlockByPieces:                            #  [6323] 解锁碎片
-//                return HeroProc::UnLockHeroByPieces($req);
 #  --------- 英雄评论 -----------
             case CmdCode::cmd_hero_GetDiscuss:                                  #  [6316]拉取英雄评论
                 return HeroDiscussProc::GetDiscusses($req);
             case CmdCode::cmd_hero_PostDiscuss:                                 #  [6317]对英雄发表评论
                 return HeroDiscussProc::Post($req);
-            case CmdCode::cmd_hero_DeleteDiscuss:                               #  [6319]删除评论
-                return HeroDiscussProc::DeletePost($req);
             case CmdCode::cmd_hero_PraiseDiscuss:                               #  [6318]给某条评论点赞
                 return HeroDiscussProc::PriaseMsg($req);
+            case CmdCode::cmd_hero_DeleteDiscuss:                               #  [6319]删除评论
+                return HeroDiscussProc::DeletePost($req);
             case CmdCode::cmd_hero_scoreit:                                     #  [6320]给某个英雄评分
                 return HeroDiscussProc::Score($req);
 #----------------------------------------------
             case CmdCode::cmd_hero_buyHero:                                     #  [6321]购买英雄
                 return HeroProc::BuyHeroByCostPieces($req);
+            case CmdCode::cmd_hero_upGodBlood:                                  #  [6322] 神血升级
+                return HeroProc::UpGodBloodHeroByPieces($req);
+//            case CmdCode::cmd_hero_unlockByPieces:                            #  [6323] 解锁碎片
+//                return HeroProc::UnLockHeroByPieces($req);                
+
             default:                                                            #  err: 未知的命令码
                 return Resp::err(ErrCode::cmd_err);
         }
     }
 
+    /**
+     * 英雄技能升级
+     * @param type $req
+     */
+    static function UpgradeSkillLevel($req) {
+#         $resp = ResponseVo::ErrResponse($req, ErrCode::msg_methodnotimplement);
+        $user = $req->userInfo->game; # user引用
+        $huid = $req->paras[0];                                                 # 英雄的UID
+        $skillId = $req->paras[1];                                              # 要升级的技能
+        $skillType = $req->paras[2];                                            # 要升级的技能
+        $costGold = $req->paras[3];                                             # 要升级的消耗金币
+#                                                                               # 1.检查是否存在要升级的英雄
+        $collectHeros = $user->heros->collectHeros;
+        if (!$collectHeros) {
+            $collectHeros = ObjectInit();
+        }
+        if (!CommUtil::isPropertyExists($collectHeros, $huid)) {
+            return Resp::err(ErrCode::hero_no);
+        }
+#                                                                               # 2.判断英雄的该技能能否升级....
+        isEditor() and $strengthHero = new UserHeroModel();
+        $strengthHero = $collectHeros->$huid;
+#                                                                               # 取出这个英雄的技能数据
+        $targteHeroSkills = ObjectInit();
+        if (CommUtil::isPropertyExists($strengthHero, "skills")) {
+            $targteHeroSkills = $strengthHero->skills;
+        }
+# 如果不存在这个类型的技能,则 初始化一个.
+        if (!CommUtil::isPropertyExists($targteHeroSkills, $skillType)) {
+            $targteHeroSkills->$skillType = JsonUtil::decode('{"level":1}');
+        }
+        $curSkillInfo = $targteHeroSkills->$skillType;
+        $curSkillLevel = $curSkillInfo->level;
+# 3.判断技能等级能否在继续升级了
+        if ($curSkillLevel >= $strengthHero->level) {
+            return Resp::err(ErrCode::hero_upgradeSkill_maxLevel);
+        }
+# 4.取出该技能升级消耗的常量数据
+# 检查是否存在当前技能的消耗常量数据
+//        $lvs = GameConfig::skill_shengji_getItem($skillId);
+        $lvs = GameConfig::skill_upgrade_cost_getItem($skillId);
+        if (!$lvs) {
+            return Resp::err(ErrCode::hero_upgradeSkill_cost_const_no);
+        }
+        $realGold = $lvs->basic + ($curSkillLevel - 1) * $lvs->xishu;
+        $arr_extracost = explode(";", $lvs->extra);
+        foreach ($arr_extracost as $value) {
+            $arr = explode(",", $value);
+            if (count($arr) == 2) {
+                $extraLevel = $arr[0];
+                $extraGold = $arr[1];
+                if ($extraLevel == $curSkillLevel + 1) {
+                    $realGold += $extraGold;
+                    break;
+                }
+            }
+        }
+
+# 判断金币是否充足
+        $bDeal = false;  # 成交
+        if ($realGold != $costGold) {
+            return Resp::err(ErrCode::paras_err, "costGold error! server need:" . $realGold);
+        } else {
+            if ($costGold > 0) {
+                if ($user->gold < $costGold) {
+                    return Resp::err(ErrCode::notenough_gold_msg);
+                } else {
+                    $bDeal = UserGameModel::Consume_Gold($user, $costGold);
+                }
+            } else if ($costGold == 0) {
+                $bDeal = true;
+            } else {
+                return Resp::err(ErrCode::paras_err);
+            }
+        }
+# 4.消耗金币和英雄
+        if ($bDeal) {
+            $targteHeroSkills->$skillType->level += 1;
+            $strengthHero->skills = $targteHeroSkills;
+            ActiveProc::ChangeTaskCount($req);
+# 回写数据
+            UserProc::updateUserInfo($req);
+            $resp = Resp::ok($strengthHero);
+        }
+        return $resp;
+    }
+
+//
+    // <editor-fold defaultstate="collapsed" desc="英雄 强化">
+
     /**
      * 6304 英雄 升阶(消耗碎片)
      * @param Req $req
      */
     static function HeroStageUp($req) {
-        $g = glc();                                                             # 全局配置
+//        $g = glc();                                                             # 全局配置
         $user = $req->userInfo->game;                                           # user引用
         $huid = $req->paras[0];                                                 # 英雄的UID
         $nextGrade = $req->paras[1];                                            # 下一阶
@@ -80,7 +176,7 @@ class HeroProc {
         if (!CommUtil::isPropertyExists($collectHeros, $huid)) {                # 1.检查是否存在要升级的英雄
             return Resp::err(ErrCode::hero_no);
         }
-        isEditor() and $upHero = new UserHeroModel();
+//        isEditor() and $upHero = new UserHeroModel();
         $upHero = $collectHeros->$huid;
         if ($upHero->grade >= "S") {                                            # 已经达到S级
             return Resp::err(ErrCode::hero_strength_maxstrengthlevel);
@@ -121,7 +217,7 @@ class HeroProc {
         if (!CommUtil::isPropertyExists($collectHeros, $heroUID)) {
             return Resp::err(ErrCode::hero_no);
         }
-        isEditor() and $targetHero = new UserHeroModel;                         # 智能感知辅助
+//        isEditor() and $targetHero = new UserHeroModel;                         # 智能感知辅助
         $targetHero = $collectHeros->$heroUID;
 
         $maxLevel = $gcfg->Hero_Upgrade_BasicMaxLevel;
@@ -158,6 +254,25 @@ class HeroProc {
         return Resp::ok($targetHero);
     }
 
+// </editor-fold>
+// 
+// <editor-fold defaultstate="collapsed" desc="队伍配置">
+
+    /**
+     * [6315]保存队伍的战斗配置信息
+     * @param Req $req
+     */
+    static function SaveHeroTeamConfig($req) {
+        $teamsetting = $req->paras[0];                                          # 配置信息json文件
+        $req->userInfo->game->heroTeamConfig = $teamsetting;                    # 更新配置
+        UserProc::updateUserInfo($req);                                         # 回写数据
+#       # 添加到战斗力隐藏榜单中, for pvp back matchers, -wg 2017.07.13
+        self::CalcTeamFightPower($req->zoneid, $req->uid, $req->userInfo->game);
+        return Resp::ok(array('result' => "succeed"));
+    }
+
+// </editor-fold>
+// 
 // <editor-fold defaultstate="collapsed" desc="已过时代码">
 
     /**
@@ -314,93 +429,6 @@ class HeroProc {
         return $resp;
     }
 
-    /**
-     * 英雄技能升级
-     * @param type $req
-     */
-    static function UpgradeSkillLevel($req) {
-#         $resp = ResponseVo::ErrResponse($req, ErrCode::msg_methodnotimplement);
-        $user = $req->userInfo->game; # user引用
-        $huid = $req->paras[0];                                                 # 英雄的UID
-        $skillId = $req->paras[1];                                              # 要升级的技能
-        $skillType = $req->paras[2];                                            # 要升级的技能
-        $costGold = $req->paras[3];                                             # 要升级的消耗金币
-#                                                                               # 1.检查是否存在要升级的英雄
-        $collectHeros = $user->heros->collectHeros;
-        if (!$collectHeros) {
-            $collectHeros = ObjectInit();
-        }
-        if (!CommUtil::isPropertyExists($collectHeros, $huid)) {
-            return Resp::err(ErrCode::hero_no);
-        }
-#                                                                               # 2.判断英雄的该技能能否升级....
-        isEditor() and $strengthHero = new UserHeroModel();
-        $strengthHero = $collectHeros->$huid;
-#                                                                               # 取出这个英雄的技能数据
-        $targteHeroSkills = ObjectInit();
-        if (CommUtil::isPropertyExists($strengthHero, "skills")) {
-            $targteHeroSkills = $strengthHero->skills;
-        }
-# 如果不存在这个类型的技能,则 初始化一个.
-        if (!CommUtil::isPropertyExists($targteHeroSkills, $skillType)) {
-            $targteHeroSkills->$skillType = JsonUtil::decode('{"level":1}');
-        }
-        $curSkillInfo = $targteHeroSkills->$skillType;
-        $curSkillLevel = $curSkillInfo->level;
-# 3.判断技能等级能否在继续升级了
-        if ($curSkillLevel >= $strengthHero->level) {
-            return Resp::err(ErrCode::hero_upgradeSkill_maxLevel);
-        }
-# 4.取出该技能升级消耗的常量数据
-# 检查是否存在当前技能的消耗常量数据
-//        $lvs = GameConfig::skill_shengji_getItem($skillId);
-        $lvs = GameConfig::skill_upgrade_cost_getItem($skillId);
-        if (!$lvs) {
-            return Resp::err(ErrCode::hero_upgradeSkill_cost_const_no);
-        }
-        $realGold = $lvs->basic + ($curSkillLevel - 1) * $lvs->xishu;
-        $arr_extracost = explode(";", $lvs->extra);
-        foreach ($arr_extracost as $value) {
-            $arr = explode(",", $value);
-            if (count($arr) == 2) {
-                $extraLevel = $arr[0];
-                $extraGold = $arr[1];
-                if ($extraLevel == $curSkillLevel + 1) {
-                    $realGold += $extraGold;
-                    break;
-                }
-            }
-        }
-
-# 判断金币是否充足
-        $bDeal = false;  # 成交
-        if ($realGold != $costGold) {
-            return Resp::err(ErrCode::paras_err, "costGold error! server need:" . $realGold);
-        } else {
-            if ($costGold > 0) {
-                if ($user->gold < $costGold) {
-                    return Resp::err(ErrCode::notenough_gold_msg);
-                } else {
-                    $bDeal = UserGameModel::Consume_Gold($user, $costGold);
-                }
-            } else if ($costGold == 0) {
-                $bDeal = true;
-            } else {
-                return Resp::err(ErrCode::paras_err);
-            }
-        }
-# 4.消耗金币和英雄
-        if ($bDeal) {
-            $targteHeroSkills->$skillType->level += 1;
-            $strengthHero->skills = $targteHeroSkills;
-            ActiveProc::ChangeTaskCount($req);
-# 回写数据
-            UserProc::updateUserInfo($req);
-            $resp = Resp::ok($strengthHero);
-        }
-        return $resp;
-    }
-
     /**
      * 更改好友支援
      * @param type $req
@@ -1166,19 +1194,6 @@ class HeroProc {
         return $resp;
     }
 
-    /**
-     * [6315]保存队伍的战斗配置信息
-     * @param Req $req
-     */
-    static function SaveHeroTeamConfig($req) {
-        $teamsetting = $req->paras[0];                                          # 配置信息json文件
-        $req->userInfo->game->heroTeamConfig = $teamsetting;                    # 更新配置
-        UserProc::updateUserInfo($req);                                         # 回写数据
-#       # 添加到战斗力隐藏榜单中, for pvp back matchers, -wg 2017.07.13
-        self::CalcTeamFightPower($req->zoneid, $req->uid, $req->userInfo->game);
-        return Resp::ok(array('result' => "succeed"));
-    }
-
     /**
      * 购买玩家可以收集的英雄的数量上限
      * @param type $req
@@ -1290,23 +1305,19 @@ class HeroProc {
         if (!$heroCfg) {                                                        # 这里能不能附加错误信息给外面
             return null;
         }
-# 先生成一个hero的UID
         $collectHeros = $user->heros->collectHeros;
-        $uid = self::CreateNewGameHeroUID($collectHeros, $user->heros->recordMaxUID);
+        $uid = self::CreateNewGameHeroUID($collectHeros, $user->heros->recordMaxUID); # 先生成一个hero的UID
         $user->heros->recordMaxUID = $uid;
         $hero = self::getGameHeroModelInstance($heroCfg, $heromodelId, $uid);
         $hero->curStar = $star;                                                 # 设定star
         $collectHeros->$uid = $hero;                                            # 回写
-        $user->heros->collectHeros = $collectHeros;                             # 回写
-# 更新 图鉴
+        $user->heros->collectHeros = $collectHeros;                             # 回写 
         if (!CommUtil::isPropertyExists($user, "heroManual")) {
             $user->heroManual = new HeroManualModel();
             $user->heroManual->initInstance();
         }
         $manual = $user->heroManual;
-        self:: tryNewManual($req->mem, $manual, $hero);
-
-
+        self::tryNewManual($req->mem, $manual, $hero);                          # 更新 图鉴
         return $hero;                                                           # 返回
     }
 
@@ -1323,24 +1334,18 @@ class HeroProc {
             $gamedata->heroManual->initInstance();
         }
         $manual = $gamedata->heroManual;
-//1.检查是否存在这个英雄的模板
-        $heroCfg = GameConfig::hero_getItem($heromodelId);
+
+        $heroCfg = GameConfig::hero_getItem($heromodelId);                      //1.检查是否存在这个英雄的模板
         if (!$heroCfg) {
             return Resp::err(ErrCode::hero_const_no_err);
         }
-//2.存在的话,先生成一个UID
-        $collectHeros = $gamedata->heros->collectHeros;
-
+        $collectHeros = $gamedata->heros->collectHeros;                          //2.存在的话,先生成一个UID
         $uid = self::CreateNewGameHeroUID($collectHeros, $gamedata->heros->recordMaxUID);
         $gamedata->heros->recordMaxUID = $uid;
         $hero = self::getGameHeroModelInstance($heroCfg, $heromodelId, $uid);
         $collectHeros->$uid = $hero;
-
         $gamedata->heros->collectHeros = $collectHeros;
-
         self:: tryNewManual($req->mem, $manual, $hero);
-
-
         return $hero;
     }
 
@@ -1406,11 +1411,10 @@ class HeroProc {
             $collectHeros = ObjectInit();
         }
         if (!CommUtil::isPropertyExists($collectHeros, $heroUID)) {
-            return;                                                              # 要升级的英雄不存在
+            return;                                                             # 要升级的英雄不存在
         }
-        isEditor() and $targetHero = new UserHeroModel;
+//        isEditor() and $targetHero = new UserHeroModel;
         $targetHero = $collectHeros->$heroUID;
-
         $maxLevel = $g->Hero_Upgrade_BasicMaxLevel;                             # 等级上限 
         if ($targetHero->level >= $maxLevel) {
             return;                                                             # 已达顶级
@@ -1420,7 +1424,7 @@ class HeroProc {
         CLog:: Assert("HeroProc", $targetHero->xp >= 0, #
                 "[" . $req->uid . "] : HeroLevelUpgrade Exp is negative!");
 
-        while ($targetHero->xp >= $targetHero->maxXp) {
+        while ($targetHero->xp >= $lvs->needExp) {
             if ($targetHero->level < $maxLevel) {                               # 如果未到达最大等级
                 $targetHero->level += 1;
                 $lvs = GameConfig::hero_levelexp_getItem($targetHero->level);
@@ -1434,221 +1438,7 @@ class HeroProc {
                 $targetHero->xp = $targetHero->maxXp;                           # 经验不能超过最大值
                 break;
             }
-        }
-    }
-
-// </editor-fold>
-// <editor-fold defaultstate="collapsed" desc="废弃代码">
-
-    /**
-     * [6301] 英雄升级 - 消耗经验道具书,获得经验
-     * @param type $req
-     */
-    static function HeroLevelUpCostItem($req) {
-        $gcfg = glc();
-        $user = $req->userInfo->game; # user引用
-        $heroUID = $req->paras[0];                 # 玩家英雄实例编号
-        $costItemIds = $req->paras[1];            # 消耗的道具ID
-        $costGold = $req->paras[2];
-
-//1.检查是否存在要升级的英雄
-        $collectHeros = $user->heros->collectHeros;
-        if (!$collectHeros) {
-            $collectHeros = ObjectInit();
-        }
-        if (!CommUtil::isPropertyExists($collectHeros, $heroUID)) {
-            return Resp::err(ErrCode::hero_no);
-        }
-        isEditor() and $targetHero = new UserHeroModel;
-        $targetHero = $collectHeros->$heroUID;
-//2.检查玩家等级是否达到当前等级上限
-        //$strengthconst = GameConfig::heroextra_dengjie_getItem($targetHero->strengthLevel);
-        $maxLevel = $gcfg->Hero_Upgrade_BasicMaxLevel; // $strengthconst->maxLevel;
-        if ($targetHero->level >= $maxLevel) {
-            return Resp::err(ErrCode::hero_upgrade_maxupgradelevel);
-        }
-//3.检查消耗的道具是否是都存在的
-        $arr_costUID = explode(",", $costItemIds);
-        $isAllExist = true;
-        $itemObj = ObjectInit();
-
-        foreach ($arr_costUID as $value) {
-            if ($value == "") {
-                continue;
-            }
-            if (!CommUtil::isPropertyExists($itemObj, $value)) {
-                $itemObj->$value = 1;
-            } else {
-                $itemObj->$value += 1;
-            }
-        }
-//以上是统计各种道具的消耗数量
-//下面是检查道具的数量,在背包中是否充足
-        $myPacketItems = $user->store->items;
-        foreach ($itemObj as $key => $value) {
-            if ($value > 0) {
-                if (!CommUtil::isPropertyExists($myPacketItems, $key)) {
-                    $isAllExist = false;
-                    break;
-                } else {
-                    if ($myPacketItems->$key < $value) {
-                        $isAllExist = false;
-                        break;
-                    }
-                }
-            }
-        }
-        if (!$isAllExist) {
-            return Resp::err(ErrCode::hero_upgrade_cost);
-        }
-//4.计算消耗的道具一共给多少经验值以及 一共要消耗多少金币
-        $totalEXP = 0;
-        $realCostGold = 0;
-        foreach ($arr_costUID as $value) {
-            if ($value == "") {
-                continue;
-            }
-            isEditor() and $costItemConst = new sm_hero_levelexp_costitem;
-            $costItemConst = GameConfig::hero_levelexp_costitem_getItem($value);
-            if (!$costItemConst) {
-                return Resp::err(ErrCode::hero_upgrade_cost_const_no);
-            } else {
-                $totalEXP += $costItemConst->dogExp;
-                $realCostGold += $costItemConst->costGold;
-            }
-        }
-//5.取升级消耗数据,提取消耗的金币数量,判断金币是否充足
-        $bDeal = false;                                   # 成交标志
-        if ($costGold != $realCostGold) {
-            return Resp::err(ErrCode ::paras_err, $errMsg);
-        } else {
-            if ($costGold > 0) {
-                if ($user->gold < $costGold) {
-                    return Resp::err(ErrCode::notenough_gold_msg);
-                } else {
-                    $bDeal = UserGameModel:: Consume_Gold($user, $costGold);
-                }
-            } else if ($costGold == 0) {
-                $bDeal = true;
-            } else {
-                return Resp::err(ErrCode::paras_err);
-            }
-        }
-        if ($bDeal) {
-            self:: HeroAddEXP($heroUID, $totalEXP, $req); # 获得经验
-#消耗道具
-            foreach ($itemObj as $key => $value) {
-                $myPacketItems->$key -= $value;
-                if ($myPacketItems->$key < 0) {
-                    $myPacketItems->$key = 0;
-                }
-            }
-
-            $req->userInfo->game->store->items = $myPacketItems;
-            UserProc::updateUserInfo($req);
-            $resp = Resp::ok($targetHero);
-        }
-        ActiveProc::ChangeTaskCount($req);
-
-        return $resp;
-    }
-
-    /**
-     * [6301] 英雄升级 - 吞噬其他英雄的卡牌,获得经验
-     * @param Req $req
-     */
-    static function HeroLevelUp($req) {
-        $g = glc();         # 全局变量
-        $user = $req->userInfo->game;              # user引用
-        $heroUID = $req->paras[0];                 # 玩家英雄实例编号
-        $costHeroUids = $req->paras[1];            # 消耗的玩家英雄实例编号
-        $costGold = $req->paras[2];
-//1.检查是否存在要升级的英雄
-        $collectHeros = $user->heros->collectHeros;
-        if (!$collectHeros) {
-            $collectHeros = ObjectInit();
-        }
-        if (!CommUtil::isPropertyExists($collectHeros, $heroUID)) {
-            return Resp::err(ErrCode::hero_no);
-        }
-        isEditor() and $targetHero = new UserHeroModel;
-        $targetHero = $collectHeros->$heroUID;
-//2.检查玩家等级是否达到当前等级上限
-////$maxLevel = $gcfg->Hero_Upgrade_BasicMaxLevel + 10 * $targetHero->strengthLevel;
-        $strengthconst = GameConfig::heroextra_dengjie_getItem($targetHero->strengthLevel);
-        $maxLevel = $strengthconst->maxLevel;
-        if ($targetHero->level >= $maxLevel) {
-            return Resp::err(ErrCode::hero_upgrade_maxupgradelevel);
-        }
-//3.检查消耗的英雄是否是都存在的
-        $arr_costUID = explode(",", $costHeroUids);
-        $isAllExist = true;
-        foreach ($arr_costUID as $value) {
-            if ($value == "") {
-                continue;
-            }
-            if (!CommUtil::isPropertyExists($collectHeros, $value)) {
-                $isAllExist = false;
-                break;
-            }
-        }
-        if (!$isAllExist) {
-            return Resp::err(ErrCode::hero_upgrade_cost);
-        }
-//4.计算消耗的英雄一共给多少经验值
-        $totalEXP = 0;
-        $errMsg = "";
-        foreach ($arr_costUID as $value) {
-            if ($value == "") {
-                continue;
-            }
-            isEditor() and $curHero = new UserHeroModel;
-            $errMsg = $errMsg . " uid::" . $value;
-            $curHero = $collectHeros->$value;
-            $tempLv = $curHero->level;
-            $tempLevelConst = GameConfig::hero_levelexp_getItem($tempLv);
-            $totalEXP += (int) $tempLevelConst->dogExp;
-            $errMsg = $errMsg . " add xp::" . $tempLevelConst->dogExp;
-//            $totalEXP += (int) ( $curHero->xp * $gcfg->Hero_Upgrade_EXP_XiShu);
-//            $errMsg = $errMsg . " xp::" . $curHero->xp;
-//            $totalEXP += $gcfg->Hero_Upgrade_BasicEXP;
-//            $errMsg = $errMsg . " basic::" . $gcfg->Hero_Upgrade_BasicEXP;
-            $errMsg = $errMsg . " end.";
-        }
-//然后算一算获得这么多经验值之后,最新的英雄等级是多少
-        $realCostGold = $totalEXP * $g->Hero_Upgrade_ExpConverGold;
-        $errMsg = $errMsg . " totalEXP:" . $totalEXP;
-//5.取升级消耗数据,提取消耗的金币数量,判断金币是否充足
-        $bDeal = false;                                   # 成交标志
-        if ($costGold != $realCostGold) {
-            return Resp::err(ErrCode ::paras_err, $errMsg);
-        } else {
-            if ($costGold > 0) {
-                if ($user->gold < $costGold) {
-                    return Resp::err(ErrCode::notenough_gold_msg);
-                } else {
-                    $bDeal = UserGameModel:: Consume_Gold($user, $costGold);
-                }
-            } else if ($costGold == 0) {
-                $bDeal = true;
-            } else {
-                return Resp::err(ErrCode::paras_err);
-            }
-        }
-        if ($bDeal) {
-            self:: HeroAddEXP($heroUID, $totalEXP, $req); # 获得经验
-            foreach ($arr_costUID as $value) {
-                if ($value == "") {
-                    continue;
-                }
-                unset($collectHeros->$value);             # 消耗卡牌
-            }
-            UserProc::updateUserInfo($req);
-            $resp = Resp::ok($targetHero);
-        }
-        ActiveProc::ChangeTaskCount($req);
-
-        return $resp;
+        } // end while
     }
 
 // </editor-fold>

+ 10 - 0
Gameserver/Amfphp/Process/vo/CmdCode.php

@@ -355,6 +355,16 @@ class CmdCode {
      * 英雄碎片  先解锁  再购买
      */
     const cmd_hero_unlockByPieces = 6323;
+
+    /**
+     * 英雄技能 - 解锁技能
+     */
+    const cmd_hero_unlockSkill = 6324;
+
+    /**
+     * 英雄技能 - 一键升级
+     */
+    const cmd_hero_skillLevel_onekeyupgrade = 6325;
 // </editor-fold>
     //
     // <editor-fold defaultstate="collapsed" desc="仓库操作码 - 64xx">

+ 7 - 6
Gameserver/nbproject/private/private.xml

@@ -5,25 +5,26 @@
             <url>Amfphp/Process/HeroProc.php</url>
             <bookmark id="2">
                 <name/>
-                <line>1194</line>
+                <line>1176</line>
                 <key/>
             </bookmark>
         </file>
     </editor-bookmarks>
     <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
         <group>
-            <file>file:/E:/www/ylsj2019/Gameserver/Amfphp/Model/User/UserGameModel.php</file>
             <file>file:/E:/www/ylsj2019/Gameserver/Amfphp/Process/FightProc/PVPProc.php</file>
             <file>file:/E:/www/ylsj2019/Gameserver/Amfphp/Process/GuildProc.php</file>
             <file>file:/E:/www/ylsj2019/Gameserver/Amfphp/Process/UserProc.php</file>
-            <file>file:/E:/www/ylsj2019/Gameserver/Amfphp/Model/Const/primordial_data.php</file>
-            <file>file:/E:/www/ylsj2019/Gameserver/Amfphp/Model/User/UserHeroModel.php</file>
-            <file>file:/E:/www/ylsj2019/Gameserver/Amfphp/main.php</file>
             <file>file:/E:/www/ylsj2019/Gameserver/Amfphp/Process/FightProc.php</file>
+            <file>file:/E:/www/ylsj2019/Gameserver/Amfphp/Configs/GameConfig.php</file>
             <file>file:/E:/www/ylsj2019/Gameserver/Amfphp/Model/User/UserGameHeroModel.php</file>
             <file>file:/E:/www/ylsj2019/Gameserver/Amfphp/Process/vo/CmdCode.php</file>
+            <file>file:/E:/www/ylsj2019/Gameserver/Amfphp/Process/PreProc.php</file>
+            <file>file:/E:/www/ylsj2019/Gameserver/Amfphp/Model/User/UserGameModel.php</file>
+            <file>file:/E:/www/ylsj2019/Gameserver/Amfphp/Model/Const/primordial_data.php</file>
+            <file>file:/E:/www/ylsj2019/Gameserver/Amfphp/Model/User/UserHeroModel.php</file>
+            <file>file:/E:/www/ylsj2019/Gameserver/Amfphp/main.php</file>
             <file>file:/E:/www/ylsj2019/Gameserver/Amfphp/Process/HeroProc.php</file>
-            <file>file:/E:/www/ylsj2019/Gameserver/Amfphp/Process/vo/ErrCode.php</file>
         </group>
     </open-files>
 </project-private>