瀏覽代碼

宝石合成

cyzhao 3 年之前
父節點
當前提交
8e80d87a3f

+ 11 - 1
Gameserver/Amfphp/base/CmdCode.php

@@ -555,7 +555,7 @@ class CmdCode {
     /**
      * 宝石合成
      */
-    const cmd_store_GemCompose = 6409;
+    //const cmd_store_GemCompose = 6409;
 
     /**
      * 英雄穿装备
@@ -620,6 +620,16 @@ class CmdCode {
      * 武器替换
      */
     const cmd_store_weaponReplace = 6423;
+    
+    /**
+     * 宝石合成
+     */
+    const cmd_store_GemCompose = 6424;
+    
+    /**
+     * 宝石研究等级提升
+     */
+    const cmd_store_GemResearchLvUp = 6425;
 
 // </editor-fold>
     //

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

@@ -561,6 +561,25 @@ class ErrCode {
      * 没有该武器
      */
     const store_weapon_err = 3416;
+    
+    /**
+     * 
+     */
+    const store_GemResearchLvUp_UserLevelLimit = 3417;
+    
+    /**
+     * 
+     */
+    const store_GemComplose_ResearchLevelLimit = 3418;
+    
+    /**
+     * 
+     */
+    const store_GemComploseTuZhiNotEnough = 3419;
+    
+    const store_GemComploseMaterialNotEnough = 3420;
+
+    const store_ComploseGemNotEnough = 3421;
 // </editor-fold>
     //  
     // <editor-fold defaultstate="collapsed" desc="   任务错误码 35xx系列   ">

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

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2021-09-28 08:54:38
+ // 日期: 2021-10-27 09:32:42
 ////////////////////
 namespace loyalsoft;
 /**
@@ -1496,6 +1496,38 @@ class GameConfig {
         return self::get_hash_item('score', $itemid);
     }
     /**
+    * 宝石配方表
+    * @return \gem_formula
+    */
+    public static function gem_formula()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'gem_formula');
+    }
+    /**
+    * @return \sm_gem_formula gem_formula item数据 
+    */
+    public static function gem_formula_getItem($itemid)
+    { 
+        return self::get_hash_item('gem_formula', $itemid);
+    }
+    /**
+    * 宝石合成研究等级表
+    * @return \gem_researchlevel
+    */
+    public static function gem_researchlevel()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'gem_researchlevel');
+    }
+    /**
+    * @return \sm_gem_researchlevel gem_researchlevel item数据 
+    */
+    public static function gem_researchlevel_getItem($itemid)
+    { 
+        return self::get_hash_item('gem_researchlevel', $itemid);
+    }
+    /**
     * 当前版本(时间戳)
     * @return \ver
     */

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

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2021-09-28 08:54:38
+ // 日期: 2021-10-27 09:32:42
 ////////////////////
 
 /**
@@ -1496,6 +1496,38 @@ class GameConfig {
         return self::get_hash_item('score', $itemid);
     }
     /**
+    * 宝石配方表
+    * @return \gem_formula
+    */
+    public static function gem_formula()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'gem_formula');
+    }
+    /**
+    * @return \sm_gem_formula gem_formula item数据 
+    */
+    public static function gem_formula_getItem($itemid)
+    { 
+        return self::get_hash_item('gem_formula', $itemid);
+    }
+    /**
+    * 宝石合成研究等级表
+    * @return \gem_researchlevel
+    */
+    public static function gem_researchlevel()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'gem_researchlevel');
+    }
+    /**
+    * @return \sm_gem_researchlevel gem_researchlevel item数据 
+    */
+    public static function gem_researchlevel_getItem($itemid)
+    { 
+        return self::get_hash_item('gem_researchlevel', $itemid);
+    }
+    /**
     * 当前版本(时间戳)
     * @return \ver
     */

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

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2021-08-18 15:47:11
+ // 日期: 2021-10-26 12:10:25
 ////////////////////
 
 

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

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2021-09-14 10:48:09
+ // 日期: 2021-10-26 18:13:56
 ////////////////////
 
 

+ 57 - 0
Gameserver/Amfphp/model/Const/sm_gem_formula.php

@@ -0,0 +1,57 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-10-26 14:40:14
+////////////////////
+
+
+/**
+ * Static Model gem_formula 宝石配方表
+ */
+class sm_gem_formula
+{
+
+    /**
+    * @var Int32 宝石品质 default(0) 
+    */
+    public $qualId;
+
+    /**
+    * @var String 描述信息  
+    */
+    public $name;
+
+    /**
+    * @var Int32 解锁配方需要的研究等级 default(0) 
+    */
+    public $levellimit;
+
+    /**
+    * @var String 图纸道具  
+    */
+    public $drawItem;
+
+    /**
+    * @var String 配方----宝石  id,num  
+    */
+    public $composeGem;
+
+    /**
+    * @var String 配方-金币id,num  
+    */
+    public $composeGold;
+
+    /**
+    * @var String 辅助材料  
+    */
+    public $composeMaterial;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $etc;
+
+}
+

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

@@ -0,0 +1,42 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-10-26 18:01:45
+////////////////////
+
+
+/**
+ * Static Model gem_researchlevel 宝石合成研究等级表
+ */
+class sm_gem_researchlevel
+{
+
+    /**
+    * @var Int32 解锁配方需要的研究等级 default(0) 
+    */
+    public $levelId;
+
+    /**
+    * @var Int32 研究等级提升指定的玩家等级 default(0) 
+    */
+    public $userlevelLimit;
+
+    /**
+    * @var String 解锁研究等级需要消耗的金币  id,num  
+    */
+    public $unlockLevelGoldCost;
+
+    /**
+    * @var String 宝石ids  
+    */
+    public $unlockGemIds;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $etc;
+
+}
+

+ 9 - 11
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-09-27 17:42:11
+ // 日期: 2021-10-26 18:20:02
 ////////////////////
 
 
@@ -77,21 +77,19 @@ class sm_item_base
     *   进阶 精华石(用于武器、言灵的升阶)
     *      ForgingMaterial = 323,    // 锻造材料 
     *   用于武器言灵锻造
-    *   Hunqi = 324 //魂器
+    *      Hunqi = 324,              //魂器
+    *      ElementTuPoMaterial = 325,//元素突破材料
+    *      professionTuPoMaterial = 326,//职业突破材料
+    *      YanLingAdvancedStone = 327,//言灵的突破石
+    *      YanLingAdvancedMaterial = 328,//言灵的突破材料
+    *      WuqiAdvancedStone = 329,      //武器的突破石
+    *      WuqiAdvancedMaterial = 330,   //武器的突破材料
     *      Box = 331,                 // 活动道具 
     *   宝箱
     *      // 备注
     *      BattleItem_HP = 341,       // 战场道具 
     *   血瓶
-    *      BattleItem_MP = 342,       // 战场道具 
-    *   蓝瓶
-    *      BattleItem_Box = 343,      // 战场道具 
-    *   箱子
-    *      YanlingBook =351,          // 言灵召唤书 
-    *     
-    *      YanLing = 401,            // 言灵
-    *      Package_limit =501,    // 限购礼包
-    *      TaskCard =601,                // 任务卡 default(0) 
+    *      default(0) 
     */
     public $subType;
 

+ 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-09-27 17:01:55
+ // 日期: 2021-10-15 15:40:28
 ////////////////////
 
 

+ 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-07-01 11:32:59
+ // 日期: 2021-09-28 16:25:30
 ////////////////////
 
 

+ 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-09-23 09:53:49
+ // 日期: 2021-10-09 18:23:23
 ////////////////////
 
 

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

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2021-09-01 11:30:00
+ // 日期: 2021-10-08 10:09:30
 ////////////////////
 
 

+ 1 - 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-09 14:39:30
+ // 日期: 2021-09-28 16:26:03
 ////////////////////
 
 

+ 7 - 0
Gameserver/Amfphp/model/User/Data_UserGame.php

@@ -106,6 +106,12 @@ class Data_UserGame extends HashSaver {
      * @var Info_ShenMiao
      */
     public $shenmiao;
+    
+    /**
+     * 宝石系统
+     * @var Info_Gem
+     */
+    public $Gem;
 
     /**
      * 用于给各个字段赋默认初始值
@@ -151,6 +157,7 @@ class Data_UserGame extends HashSaver {
 //            $this->task = new Info_UserTask();                                   # 任务数据
             $this->taskCardShop = new Info_TaskCard_Shop();                     # 任务卡商店
             $this->college = new Info_College();
+            $this->Gem = new Info_Gem();
             $this->shenmiao = new Info_ShenMiao();
         } else {                                                                # 实参
             parent::__construct($arg);                                          # 调用Object的构造函数

+ 34 - 0
Gameserver/Amfphp/model/User/Info_Gem.php

@@ -0,0 +1,34 @@
+<?php
+namespace loyalsoft;
+/*
+ * 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.
+ */
+
+/**
+ * Description of Ins_Gem
+ *
+ * @author cyzhao
+ */
+class Info_Gem extends Object_ext{
+    
+    /**
+     * 研究等级
+     * @var type
+     */
+    public $level = 0;
+    
+    /**
+     * 构造函数
+     * @param type $args
+     */
+    public function __construct($args = null) {    
+        if($args == null){
+            //$this->compMissCardDic = new \stdClass();
+            //$this->ingTaskCardDic = new \stdClass();
+        } else {
+            parent::__construct($args);   
+        }                    
+    }
+}

+ 76 - 0
Gameserver/Amfphp/process/StoreProc.php

@@ -65,10 +65,86 @@ class StoreProc {
                 return self::weaponTupo();
             case CmdCode::cmd_store__weaponReplace:                             # 6423武器替换
                 return self::weaponReplace();
+            case CmdCode::cmd_store_GemCompose:                                 #6424 
+                return StoreProc::GemComposeItem();
+            case CmdCode::cmd_store_GemResearchLvUp:                            # 6425 
+                return StoreProc::GemResearchLvUp();
+            
             default:
                 Err(ErrCode::cmd_err);
         }
     }
+    
+    /**
+     * 宝石合成
+     */
+    static function GemComposeItem() {
+        list($gemId,$num) = req()->paras;                                        # 参数 言灵uid(指定进阶的言灵实例id)
+        $user = req()->userInfo->game;
+        //my_Assert(CommUtil::isPropertyExists($myPacketItems, $costItemId), ErrCode::store_itemnotenough); #
+               
+        $mo = GameConfig::gem_formula_getItem($gemId);
+        my_Assert($mo != null, ErrCode::err_const_no); #
+        my_Assert($mo->levellimit >= $user->Gem->level, ErrCode::store_GemComplose_ResearchLevelLimit); #
+        $itemId = $mo->drawItem;
+        if($itemId != ""){
+            my_Assert(StlUtil::dictHasProperty($user->store->items,$itemId) && $user->store->items->$itemId>0 , ErrCode::store_GemComploseTuZhiNotEnough); #
+        }
+        
+        if($mo->composeMaterial != ""){
+            $mList = explode(',', $mo->composeMaterial);
+            $itemId = $mList[0];
+            $num = $mList[1];
+            my_Assert(StlUtil::dictHasProperty($user->store->items,$itemId) && $user->store->items->$itemId> $num , ErrCode::store_GemComploseMaterialNotEnough);       
+        
+            //扣除材料
+            StoreProc::removeItemFromStore($user->store, $itemId,$num);
+        }
+        
+        $gList = explode(',', $mo->composeGem);    
+        $itemId = $gList[0];
+        my_Assert(StlUtil::dictHasProperty($user->store->items,$itemId) && $user->store->items->$itemId>$gList[1] , ErrCode::store_ComploseGemNotEnough);
+        my_Assert($user->baseInfo->gold>=$mo->composeGold, ErrCode::notenough_gold_msg);
+        
+        //扣除配方金币 宝石
+        $user->base(true)->Consume_Gold($mo->composeGold);
+        StoreProc::removeItemFromStore($user->store, $gList[0],$gList[1]);     
+        req()->userInfo->game = $user;
+               
+        UserProc::updateUserInfo();                                             # 回写玩家数据
+        return Resp::ok(array(
+                    "store" => $user->store, #                                  # 目前来看只涉及到items变化
+                    'gold' => $user->baseInfo->gold,
+        ));
+    }
+    
+    /**
+     * 宝石合成的研究等级提升
+     */
+    static function GemResearchLvUp() {        
+        //list() = req()->paras;                                        # 参数 言灵uid(指定进阶的言灵实例id)
+        $user = req()->userInfo->game;
+        $researchLevel = $user->Gem->level;//研究等级
+        
+        $mo = GameConfig::gem_researchlevel_getItem($researchLevel+1);
+        
+        my_Assert($mo != null, ErrCode::err_const_no);       
+        my_Assert($mo->userlevelLimit <= $user->baseInfo->level, ErrCode::store_GemResearchLvUp_UserLevelLimit);       
+        $list = explode(',',$mo->unlockLevelGoldCost);
+        
+        my_Assert($list[1]<= $user->baseInfo->gold, ErrCode::notenough_gold_msg);
+        
+        $user->base(true)->Consume_Gold($list[1]);
+        $user->Gem->level += 1;
+        req()->userInfo->game = $user;
+        
+        UserProc::updateUserInfo();                                             # 回写玩家数据
+        return Resp::ok(array(
+                    "lv" => $user->Gem->level, #                                  # 目前来看只涉及到items变化
+                    'gold' => $user->baseInfo->gold,
+        ));
+    }
+    
 
     /**
      * 武器升级