Selaa lähdekoodia

武器升级接口

cyzhao 4 vuotta sitten
vanhempi
commit
cdb61edd8e

+ 15 - 3
Gameserver/Amfphp/base/ErrCode.php

@@ -475,7 +475,7 @@ class ErrCode {
     const hero_yanling_repeat = 3331;
 
     /**
-     * 
+     * 言灵星级达到最大值
      */
     const hero_yanling_starMax = 3332;
 
@@ -557,6 +557,10 @@ class ErrCode {
      * 言灵包裹已满
      */
     const store_yanling_bagfull = 3415;
+    /**
+     * 没有该武器
+     */
+    const store_weapon_err = 3416;
 // </editor-fold>
     //  
     // <editor-fold defaultstate="collapsed" desc="   任务错误码 35xx系列   ">
@@ -1479,15 +1483,23 @@ class ErrCode {
     // <editor-fold defaultstate="collapsed" desc="   学院错误码 51xx">
 
     /**
-     * 
+     * 不存在该任务卡
      */
     const college_notExistTaskCard = 5101;
 
     /**
-     * 
+     * 任务卡状态错误
      */
     const college_TaskCardStateError = 5202;
+    
+    /**
+     * 一个年级下的课程数量错误
+     */
     const college_courseNumError = 5203;
+    
+    /**
+     * 一个课程下的任务卡数量错误
+     */
     const college_taskCardNumError = 5204;
 
 // </editor-fold>

+ 3 - 4
Gameserver/Amfphp/configs/GameConfig.php

@@ -3,10 +3,9 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2021-06-01 17:38:58
+ // 日期: 2021-06-03 16:50:22
 ////////////////////
 namespace loyalsoft;
-
 /**
  * 常量配置数据 
  */
@@ -178,9 +177,9 @@ class GameConfig {
     /**
     * @return \sm_weaponextra_level weaponextra_level item数据 
     */
-    public static function weaponextra_level_getItem($itemid)
+    public static function weaponextra_level_getItem($weaponId, $starLv)
     { 
-        return self::get_hash_item('weaponextra_level', $itemid);
+        return self::get_hash_item('weaponextra_level', $weaponId)->$starLv;
     }
     /**
     * 英雄的升级——每级成长消耗经验需求表

+ 3 - 3
Gameserver/Amfphp/model/Const/GameConfig.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2021-06-01 17:38:58
+ // 日期: 2021-06-03 16:50:22
 ////////////////////
 
 /**
@@ -177,9 +177,9 @@ class GameConfig {
     /**
     * @return \sm_weaponextra_level weaponextra_level item数据 
     */
-    public static function weaponextra_level_getItem($itemid)
+    public static function weaponextra_level_getItem($weaponId, $starLv)
     { 
-        return self::get_hash_item('weaponextra_level', $itemid);
+        return self::get_hash_item('weaponextra_level', $weaponId)->$starLv;
     }
     /**
     * 英雄的升级——每级成长消耗经验需求表

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

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2021-05-13 10:00:20
+ // 日期: 2021-06-02 15:38:00
 ////////////////////
 
 
@@ -375,6 +375,11 @@ class globalsettings
     */
     public $UserWishNumLimit;
 
+    /**
+    * @var Object 武器等级最大值  
+    */
+    public $Weapon_Upgrade_BasicMaxLevel;
+
     /**
     * @var Object 活动祈愿保底必出UR唤灵师次数设置  
     */

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

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2021-05-11 16:46:04
+ // 日期: 2021-06-02 15:55:23
 ////////////////////
 
 

+ 46 - 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-06-01 14:40:20
+ // 日期: 2021-06-03 16:13:09
 ////////////////////
 
 
@@ -43,46 +43,91 @@ class sm_item_weapon
     */
     public $hp;
 
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $hpRate;
+
     /**
     * @var Int32 【不改】攻击 default(0) 
     */
     public $atk;
 
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $atkRate;
+
     /**
     * @var Int32 【不改】防御 default(0) 
     */
     public $def;
 
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $defRate;
+
     /**
     * @var Int32 暴击 default(0) 
     */
     public $crit;
 
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $critRate;
+
     /**
     * @var Int32 物理攻击 default(0) 
     */
     public $phyAtk;
 
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $phyAtkRate;
+
     /**
     * @var Int32 【不改】防御护甲 default(0) 
     */
     public $phyDef;
 
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $phyDefRate;
+
     /**
     * @var Int32 【不改】攻击速度 default(0) 
     */
     public $atkSpeed;
 
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $atkSpeedRate;
+
     /**
     * @var Int32 法术强度 default(0) 
     */
     public $fashuqiangdu;
 
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $fashuqiangduRate;
+
     /**
     * @var Int32 【不改】魔法抗性 default(0) 
     */
     public $mofakangxing;
 
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $mofakangxingRate;
+
     /**
     * @var Int32 装备时要求唤灵师的等级  
     */

+ 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-28 14:00:13
+ // 日期: 2021-06-02 15:58:41
 ////////////////////
 
 

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

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-09-02 18:00:49
+ // 日期: 2021-06-03 09:33:22
 ////////////////////
 
 

+ 41 - 1
Gameserver/Amfphp/model/Const/sm_weaponextra_level.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2021-06-01 16:04:25
+ // 日期: 2021-06-03 16:49:34
 ////////////////////
 
 
@@ -63,6 +63,46 @@ class sm_weaponextra_level
     */
     public $gold;
 
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $hp;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $nengliangzhi;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $wuligongji;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $fangyuhujia;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $fashuqiangdu;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $mofakangxing;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $gongjisudu;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $baoji;
+
     /**
     * @var String 用途未知!!请到数据库中添加字段注释。  
     */

+ 72 - 0
Gameserver/Amfphp/model/Const/sm_weaponextra_level_tupo.php

@@ -0,0 +1,72 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-06-01 16:04:25
+////////////////////
+
+
+/**
+ * Static Model weaponextra_level_tupo 
+ */
+class sm_weaponextra_level_tupo
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $id;
+
+    /**
+    * @var Int32 英雄ID  
+    */
+    public $weaponId;
+
+    /**
+    * @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 $etc;
+
+}
+

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

@@ -95,4 +95,14 @@ class Enum_EventType {
      */
     const HeroTuPo = 'HeroTuPo';
 
+    /**
+     * 武器升级
+     */
+    const WeaponLvUp = 'WeaponLvUp';
+    
+    /**
+     * 武器升级
+     */
+    const WeaponTuPo = 'WeaponTuPo';
+    
 }

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

@@ -158,5 +158,23 @@ class NormalEventProc {
     public static function OnHeroTuPo($arg1, $arg2) {
         Resp::AddEvent(Enum_EventType::HeroTuPo, $arg1, $arg2);
     }
-
+    
+    /**
+     * 升级-唤灵师
+     * @param type $arg1 唤灵师uid
+     * @param type $arg2 最新等级
+     */
+    public static function OnWeaponLvlUp($arg1, $arg2) {
+        Resp::AddEvent(Enum_EventType::WeaponLvUp, $arg1, $arg2);
+    }
+    
+    /**
+     * 突破-唤灵师
+     * @param type $arg1
+     * @param type $arg2
+     */
+    public static function OnWeaponLvTuPo($arg1, $arg2) {
+        Resp::AddEvent(Enum_EventType::WeaponTuPo, $arg1, $arg2);
+    }
+    
 }

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

@@ -272,7 +272,7 @@ class HeroProc {
         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); 
+        my_Assert($mo != null, ErrCode::err_const_no);
         
         my_Assert($collectHeros->$uid->level >= $mo->starlimitLv, ErrCode::hero_yanling_canotTupo);
         my_Assert($user->baseInfo->level >= $mo->userlvLimit, ErrCode::hero_yanling_canotTupo);

+ 36 - 6
Gameserver/Amfphp/process/StoreProc.php

@@ -61,7 +61,7 @@ class StoreProc {
                 return self::YanlingUpgrade();
             case CmdCode::cmd_store__weapon_upgrade:                            # 6421武器升级
                 return self::weaponUpgrade();
-            case CmdCode::cmd_store__weapon_tupo:                            # 6421武器升级
+            case CmdCode::cmd_store__weapon_tupo:                               # 6422武器突破
                 return self::weaponTupo();    
             default:
                 Err(ErrCode::cmd_err);
@@ -75,7 +75,7 @@ class StoreProc {
         $user = req()->userInfo->game;
         $equipment =  $user->store->equipment;
           
-        my_Assert(CommUtil::isPropertyExists($equipment, $uid), ErrCode::hero_no); # 玩家拥有此英雄
+        my_Assert(CommUtil::isPropertyExists($equipment, $uid), ErrCode::store_weapon_err); # 玩家拥有此英雄
         $myPacketItems = $user->store->items;
         $list = explode(';', $prizeCtx);
         $total = 0;
@@ -102,11 +102,12 @@ class StoreProc {
                                                                 
         UserProc::updateUserInfo();                                             # 回写玩家数据 
         return Resp::ok(array(
-                    "store" => $user->store, #                                  # 目前来看只涉及到items变化
+                    "store" => $user->store, #                                  # 目前来看只涉及到items变化                  
         ));
     }
+    
     /**
-     * 
+     * 武器升级计算
      * @param type $xp
      * @param type $type
      * @return type
@@ -131,13 +132,42 @@ class StoreProc {
         return $curLv;
     }
 
-
     /**
      * 武器突破
      */
     static function weaponTupo() {
-        list($yanlingUid) = req()->paras;                                        # 参数 言灵uid(指定进阶的言灵实例id)
+        list($uid) = req()->paras;                                              # 参数 言灵uid(指定进阶的言灵实例id)
         $user = req()->userInfo->game;
+        $equipment = $user->store->equipment;
+        my_Assert(CommUtil::isPropertyExists($equipment, $uid), ErrCode::store_weapon_err); # 玩家拥有此英雄
+        
+        $typeId = $equipment->$uid->typeId;
+        $curStar = $equipment->$uid->starLevel;
+        my_Assert($curStar < 5, ErrCode::hero_yanling_canotTupo);
+        
+        $mo = GameConfig::weaponextra_level_getItem($typeId, $curStar+1);
+        my_Assert($mo != null, ErrCode::err_const_no);
+        
+        my_Assert($equipment->$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); 
+        $segID = $mo->segID;
+        my_Assert(StlUtil::dictHasProperty($user->store->items,$segID) , ErrCode::store_itemnotenough); 
+        my_Assert($user->store->items->$segID>=$mo->segNum , ErrCode::store_itemnotenough); 
+        
+        $costItemsList = explode(';',$mo->costItems);   
+        foreach ($costItemsList as $value) {
+            $list = explode(',', $value);
+            StoreProc::removeItemFromStore($user->store, $list[0], $list[1]);          
+        }
+        $user->store->items->$segID -= $mo->segNum;
+        $user->baseInfo->gold -= $mo->gold;
+        $equipment->$uid->starLevel += 1;
+        
+        NormalEventProc::OnWeaponLvTuPo($uid, $equipment->$uid->starLevel);         # 广播英雄升级事件
+        
+        $user->store->equipment = $equipment;
+        req()->userInfo->game = $user;
         
         UserProc::updateUserInfo();                                             # 回写玩家数据 
         return Resp::ok(array(