cyzhao 4 жил өмнө
parent
commit
ae8d8bfdfd

+ 5 - 0
Gameserver/Amfphp/base/ErrCode.php

@@ -483,6 +483,11 @@ class ErrCode {
      * 错误的言灵
      */
     const hero_yanling_errorYanling= 3333;
+    
+    /**
+     * 不能突破
+     */
+    const hero_yanling_canotTupo= 3334;
 //
 // </editor-fold>
     //

+ 23 - 7
Gameserver/Amfphp/model/Const/GameConfig.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2021-05-24 17:26:13
+ // 日期: 2021-05-26 15:00:33
 ////////////////////
 
 /**
@@ -278,20 +278,36 @@ class GameConfig {
         return self::get_hash_item('item_yanling', $itemid);
     }
     /**
+    * 无尽塔关卡数据
+    * @return \endless_tower
+    */
+    public static function endless_tower()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'endless_tower');
+    }
+    /**
+    * @return \sm_endless_tower endless_tower item数据 
+    */
+    public static function endless_tower_getItem($itemid)
+    { 
+        return self::get_hash_item('endless_tower', $itemid);
+    }
+    /**
     * 
-    * @return \tupo_huanlingshi
+    * @return \heroextra_level_tupo
     */
-    public static function tupo_huanlingshi()
+    public static function heroextra_level_tupo()
     { 
         static $a = null; 
-        return self::initValue($a, 'tupo_huanlingshi');
+        return self::initValue($a, 'heroextra_level_tupo');
     }
     /**
-    * @return \sm_tupo_huanlingshi tupo_huanlingshi item数据 
+    * @return \sm_heroextra_level_tupo heroextra_level_tupo item数据 
     */
-    public static function tupo_huanlingshi_getItem($itemid)
+    public static function heroextra_level_tupo_getItem($heroId, $starLv)
     { 
-        return self::get_hash_item('tupo_huanlingshi', $itemid);
+        return self::get_hash_item('heroextra_level_tupo', $heroId)->$starLv;
     }
     /**
     * 商城

+ 42 - 0
Gameserver/Amfphp/model/Const/sm_endless_tower.php

@@ -0,0 +1,42 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-05-25 19:05:51
+////////////////////
+
+
+/**
+ * Static Model endless_tower 无尽塔关卡数据
+ */
+class sm_endless_tower
+{
+
+    /**
+    * @var Int32 自然序号 唯一ID  
+    */
+    public $id;
+
+    /**
+    * @var String 怪物列表[id_num,id_num;id_num]  
+    */
+    public $monsterList;
+
+    /**
+    * @var String 特殊通关奖励列表[id_num,id_num]  
+    */
+    public $rewardList;
+
+    /**
+    * @var Single 波次间隔时间  
+    */
+    public $intervalTime;
+
+    /**
+    * @var Single 通关时间  
+    */
+    public $clearanceTime;
+
+}
+

+ 1 - 1
Gameserver/Amfphp/model/Const/sm_hero.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2021-05-24 17:17:04
+ // 日期: 2021-05-25 15:58:57
 ////////////////////
 
 

+ 2 - 2
Gameserver/Amfphp/model/Const/sm_hero_levelexp.php

@@ -24,12 +24,12 @@ class sm_hero_levelexp
     public $level;
 
     /**
-    * @var Int32 升级消耗金币 default(0) 
+    * @var Int32 升级消耗金币--废弃 default(0) 
     */
     public $gold;
 
     /**
-    * @var String xiao  
+    * @var String 废弃  
     */
     public $costItems;
 

+ 32 - 2
Gameserver/Amfphp/model/Const/sm_heroextra_level.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-09-02 18:00:42
+ // 日期: 2021-05-26 14:54:31
 ////////////////////
 
 
@@ -29,7 +29,37 @@ class sm_heroextra_level
     public $segNum;
 
     /**
-    * @var String D【S A B C D 】 default(D) 
+    * @var Int32 星级 default(0) 
+    */
+    public $starLv;
+
+    /**
+    * @var Int32 当前星级下的等级限制 default(0) 
+    */
+    public $starlimitLv;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $promoteLv;
+
+    /**
+    * @var Int32 玩家等级限制 default(0) 
+    */
+    public $userlvLimit;
+
+    /**
+    * @var String 消耗道具  
+    */
+    public $costItems;
+
+    /**
+    * @var Int32 消耗的金币 default(0) 
+    */
+    public $gold;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
     */
     public $quality;
 

+ 107 - 0
Gameserver/Amfphp/model/Const/sm_heroextra_level_tupo.php

@@ -0,0 +1,107 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-05-26 14:54:31
+////////////////////
+
+
+/**
+ * Static Model heroextra_level_tupo 
+ */
+class sm_heroextra_level_tupo
+{
+
+    /**
+    * @var Int32 英雄ID  
+    */
+    public $heroId;
+
+    /**
+    * @var Int32 碎片ID  
+    */
+    public $segID;
+
+    /**
+    * @var Int32 升阶所需碎片数量  
+    */
+    public $segNum;
+
+    /**
+    * @var Int32 星级 default(0) 
+    */
+    public $starLv;
+
+    /**
+    * @var Int32 当前星级下的等级限制 default(0) 
+    */
+    public $starlimitLv;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $promoteLv;
+
+    /**
+    * @var Int32 玩家等级限制 default(0) 
+    */
+    public $userlvLimit;
+
+    /**
+    * @var String 消耗道具  
+    */
+    public $costItems;
+
+    /**
+    * @var Int32 消耗的金币 default(0) 
+    */
+    public $gold;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $quality;
+
+    /**
+    * @var Single 生命值成长 default(0) 
+    */
+    public $hp;
+
+    /**
+    * @var Single 能量值(言能)成长 default(0) 
+    */
+    public $nengliangzhi;
+
+    /**
+    * @var Single 物理攻击(物攻)成长 default(0) 
+    */
+    public $wuligongji;
+
+    /**
+    * @var Single 防御护甲(护甲)成长 default(0) 
+    */
+    public $fangyuhujia;
+
+    /**
+    * @var Single 法术强度(言攻)成长 default(0) 
+    */
+    public $fashuqiangdu;
+
+    /**
+    * @var Single 魔法抗性(言抗)成长 default(0) 
+    */
+    public $mofakangxing;
+
+    /**
+    * @var Single 【废弃】敏捷 default(0) 
+    */
+    public $gongjisudu;
+
+    /**
+    * @var Single 暴击成长 default(0) 
+    */
+    public $baoji;
+
+}
+

+ 1 - 1
Gameserver/Amfphp/model/Const/sm_item_base.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2021-05-20 15:02:27
+ // 日期: 2021-05-25 15:48:59
 ////////////////////
 
 

+ 6 - 1
Gameserver/Amfphp/model/Const/sm_item_stones.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-09-02 18:00:45
+ // 日期: 2021-05-25 17:27:13
 ////////////////////
 
 
@@ -38,5 +38,10 @@ class sm_item_stones
     */
     public $successRate;
 
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $costGold;
+
 }
 

+ 1 - 1
Gameserver/Amfphp/model/Const/sm_item_weapon.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2021-05-17 15:45:09
+ // 日期: 2021-05-26 10:22:26
 ////////////////////
 
 

+ 1 - 1
Gameserver/Amfphp/model/Const/sm_plot.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2021-05-24 15:41:00
+ // 日期: 2021-05-26 14:49:43
 ////////////////////
 
 

+ 39 - 6
Gameserver/Amfphp/process/HeroProc.php

@@ -218,11 +218,16 @@ class HeroProc {
         my_Assert($targetHero->HeroCanLevelUp(), "请提升指挥官等级.");            # 2. 检查玩家等级是否可以继续升级, Ps. 全局限制 + 指挥官等级限制
         $myPacketItems = $user->store->items;                                   # 检查道具的数量,在背包中是否充足
         my_Assert(CommUtil::isPropertyExists($myPacketItems, $costItemId), ErrCode::store_itemnotenough); # 
-        my_Assert($myPacketItems->$costItemId >= $costNumber, ErrCode::store_itemnotenough);
+        my_Assert($myPacketItems->$costItemId >= $costNumber, ErrCode::store_itemnotenough);                    
         $initLevel = $targetHero->level;                                        # 初始等级
         $totalEXP = 0;                                                          # 4.计算消耗的道具一共给多少经验值以及 一共要消耗多少金币 
         $costItemConst = GameConfig::item_stones_getItem($costItemId);
         my_Assert(null != $costItemConst, ErrCode::err_const_no);
+        
+        $totalGold = $costItemConst->costGold * $costNumber;                    #验证金币是否充足
+        my_Assert($user->baseInfo->gold >= $totalGold, ErrCode::notenough_gold_msg);
+        $user->baseInfo->gold -= $totalGold;
+        
         $totalEXP += $costItemConst->baseExp;
         $heroConst = GameConfig::hero_getItem($targetHero->typeId);             # 英雄模板数据
         my_Assert(null != $heroConst, ErrCode::err_const_no, "英雄 模板数据");
@@ -245,7 +250,8 @@ class HeroProc {
         self::CalcUserFightPower(req()->zoneid, req()->uid, req()->userInfo->game); # 跟新战力统计
         $ret = array(
             'hero' => $targetHero,
-            'store' => $user->store
+            'store' => $user->store,
+            'gold'=>$user->baseInfo->gold,    
         );
         return Resp::ok($ret);
     }
@@ -253,14 +259,41 @@ class HeroProc {
     /**
      * 突破
      */
-    static function tupo() {
-        list($huid) = req()->paras;
+    static function tupo() {   
+        list($uid) = req()->paras;
+        $user = req()->userInfo->game;
+        $collectHeros = $user->heros->collectHeros;                             # 1. 检查是否存在要升级的英雄
+        my_default_Obj($collectHeros);       
+        my_Assert(StlUtil::dictHasProperty($collectHeros, $uid), ErrCode::hero_no); # 参数合法性判断
+             
+        $typeId = $collectHeros->$uid->typeId;
+        $curStar = $collectHeros->$uid->curStar;
+        my_Assert($curStar < 5, ErrCode::hero_yanling_canotTupo);
         
+        $mo = GameConfig::heroextra_level_tupo_getItem($typeId, $curStar+1);
+        my_Assert($mo == null, ErrCode::err_const_no); 
         
-        UserProc::updateUserInfo();
+        my_Assert($collectHeros->$uid->level >= $mo->starlimitLv, ErrCode::hero_yanling_canotTupo);
+        my_Assert($user->baseInfo->level >= $mo->userlvLimit, ErrCode::hero_yanling_canotTupo);
+        my_Assert($user->baseInfo->gold >= $mo->gold , ErrCode::notenough_gold_msg); 
+        
+        $costItemsList = explode(';',$mo->costItems);   
+        foreach ($costItemsList as $value) {
+            $list = explode(',', $value);
+            StoreProc::removeItemFromStore($user->store, $list[0], $list[1]);          
+        }
+                 
+        $user->baseInfo->gold -= $mo->gold;
+        $collectHeros->$uid->curStar+=1;
+        $user->heros->collectHeros=$collectHeros;
+        req()->userInfo->game = $user;                     
+        $targetHero = new Ins_UserHero($collectHeros->$uid);
+        
+        UserProc::updateUserInfo();# 回写玩家数据
         $ret = array(
             'hero' => $targetHero,
-            'store' => $user->store
+            'store' => $user->store,
+            'gold' => req()->userInfo->game->baseInfo->gold,
         );
         return Resp::ok($ret);
     }