Explorar o código

装备接口提交

cyzhao hai 1 ano
pai
achega
417ffe5cb1

+ 1 - 193
Gameserver/App/model/Const/GameConfig.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-03-28 16:16:40
+ // 日期: 2024-04-08 11:29:51
 ////////////////////
 
 /**
@@ -157,22 +157,6 @@ class GameConfig {
         return self::get_hash_item('clientVersionHistory', $itemid);
     }
     /**
-    * 分区列表
-    * @return \zonelist
-    */
-    public static function zonelist()
-    { 
-        static $a = null; 
-        return self::initValue($a, 'zonelist');
-    }
-    /**
-    * @return \sm_zonelist zonelist item数据 
-    */
-    public static function zonelist_getItem($itemid)
-    { 
-        return self::get_hash_item('zonelist', $itemid);
-    }
-    /**
     * 错误信息表
     * @return \errmsg
     */
@@ -205,54 +189,6 @@ class GameConfig {
         return self::get_hash_item('activity_day7', $itemid);
     }
     /**
-    * 公共兑换码
-    * @return \token_PublicGift
-    */
-    public static function token_PublicGift()
-    { 
-        static $a = null; 
-        return self::initValue($a, 'token_PublicGift');
-    }
-    /**
-    * @return \sm_token_PublicGift token_PublicGift item数据 
-    */
-    public static function token_PublicGift_getItem($itemid)
-    { 
-        return self::get_hash_item('token_PublicGift', $itemid);
-    }
-    /**
-    * 活动: 体力加油站
-    * @return \activity_tiligift
-    */
-    public static function activity_tiligift()
-    { 
-        static $a = null; 
-        return self::initValue($a, 'activity_tiligift');
-    }
-    /**
-    * @return \sm_activity_tiligift activity_tiligift item数据 
-    */
-    public static function activity_tiligift_getItem($itemid)
-    { 
-        return self::get_hash_item('activity_tiligift', $itemid);
-    }
-    /**
-    * 活动: 等级礼包
-    * @return \activity_levelgift
-    */
-    public static function activity_levelgift()
-    { 
-        static $a = null; 
-        return self::initValue($a, 'activity_levelgift');
-    }
-    /**
-    * @return \sm_activity_levelgift activity_levelgift item数据 
-    */
-    public static function activity_levelgift_getItem($itemid)
-    { 
-        return self::get_hash_item('activity_levelgift', $itemid);
-    }
-    /**
     * 章节表
     * @return \gate
     */
@@ -413,22 +349,6 @@ class GameConfig {
         return self::get_hash_item('shop_junbei', $itemid);
     }
     /**
-    * 挑战表
-    * @return \gate_challenge
-    */
-    public static function gate_challenge()
-    { 
-        static $a = null; 
-        return self::initValue($a, 'gate_challenge');
-    }
-    /**
-    * @return \sm_gate_challenge gate_challenge item数据 
-    */
-    public static function gate_challenge_getItem($itemid)
-    { 
-        return self::get_hash_item('gate_challenge', $itemid);
-    }
-    /**
     * 进化表
     * @return \evolve
     */
@@ -461,118 +381,6 @@ class GameConfig {
         return self::get_hash_item('active_day7_accumulate', $itemid);
     }
     /**
-    * 装备合成(进化)品阶表
-    * @return \equip_evolve
-    */
-    public static function equip_evolve()
-    { 
-        static $a = null; 
-        return self::initValue($a, 'equip_evolve');
-    }
-    /**
-    * @return \sm_equip_evolve equip_evolve item数据 
-    */
-    public static function equip_evolve_getItem($rarity, $qual, $posId)
-    { 
-        return self::get_hash_item('equip_evolve', "$rarity-$qual-$posId");
-    }
-    /**
-    * 装备合成表
-    * @return \equip_compose
-    */
-    public static function equip_compose()
-    { 
-        static $a = null; 
-        return self::initValue($a, 'equip_compose');
-    }
-    /**
-    * @return \sm_equip_compose equip_compose item数据 
-    */
-    public static function equip_compose_getItem($itemid)
-    { 
-        return self::get_hash_item('equip_compose', $itemid);
-    }
-    /**
-    * 成就功能
-    * @return \achieve
-    */
-    public static function achieve()
-    { 
-        static $a = null; 
-        return self::initValue($a, 'achieve');
-    }
-    /**
-    * @return \sm_achieve achieve item数据 
-    */
-    public static function achieve_getItem($itemid)
-    { 
-        return self::get_hash_item('achieve', $itemid);
-    }
-    /**
-    * 任务表
-    * @return \task_step
-    */
-    public static function task_step()
-    { 
-        static $a = null; 
-        return self::initValue($a, 'task_step');
-    }
-    /**
-    * @return \sm_task_step task_step item数据 
-    */
-    public static function task_step_getItem($itemid)
-    { 
-        return self::get_hash_item('task_step', $itemid);
-    }
-    /**
-    * 任务卡
-    * @return \taskcard
-    */
-    public static function taskcard()
-    { 
-        static $a = null; 
-        return self::initValue($a, 'taskcard');
-    }
-    /**
-    * @return \sm_taskcard taskcard item数据 
-    */
-    public static function taskcard_getItem($itemid)
-    { 
-        return self::get_hash_item('taskcard', $itemid);
-    }
-    /**
-    * 每日任务累计
-    * @return \task_accumulate_daily
-    */
-    public static function task_accumulate_daily()
-    { 
-        static $a = null; 
-        return self::initValue($a, 'task_accumulate_daily');
-    }
-    /**
-    * @return \sm_task_accumulate_daily task_accumulate_daily item数据 
-    */
-    public static function task_accumulate_daily_getItem($itemid)
-    { 
-        return self::get_hash_item('task_accumulate_daily', $itemid);
-    }
-    /**
-    * 周常任务累计
-    * @return \task_accumulate_week
-    */
-    public static function task_accumulate_week()
-    { 
-        static $a = null; 
-        return self::initValue($a, 'task_accumulate_week');
-    }
-    /**
-    * @return \sm_task_accumulate_week task_accumulate_week item数据 
-    */
-    public static function task_accumulate_week_getItem($itemid)
-    { 
-        return self::get_hash_item('task_accumulate_week', $itemid);
-    }
-    /**
     * 宝石表
     * @return \gem
     */

+ 1 - 1
Gameserver/App/model/Const/sm_active_day7_accumulate.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-03-20 15:21:14
+ // 日期: 2024-04-02 15:31:10
 ////////////////////
 
 

+ 7 - 27
Gameserver/App/model/Const/sm_equip.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-03-27 10:01:07
+ // 日期: 2024-04-08 11:12:23
 ////////////////////
 
 
@@ -19,7 +19,7 @@ class sm_equip
     public $id;
 
     /**
-    * @var Int32 装备id(稀有度9_部位99_品质99_道具编号999) default(0) 
+    * @var Int32 装备部位id1 2 3 4 5 6 default(0) 
     */
     public $typeId;
 
@@ -29,17 +29,7 @@ class sm_equip
     public $name;
 
     /**
-    * @var Int32 品阶: 白绿蓝紫 default(0) 
-    */
-    public $qual;
-
-    /**
-    * @var Int32 稀有度: 1普通, 2 S default(0) 
-    */
-    public $rarity;
-
-    /**
-    * @var Int32 部位: 1 武器, 2 护甲, 3 项链, 4 腰带, 5 手套, 6 靴子 default(1) 
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(1) 
     */
     public $position;
 
@@ -54,24 +44,14 @@ class sm_equip
     public $icon;
 
     /**
-    * @var Int32 附赠技能id default(0) 
-    */
-    public $skillId;
-
-    /**
-    * @var Int32 基础属性值(1,3,5加攻击,246加hp) default(0) 
-    */
-    public $attrNum;
-
-    /**
-    * @var String 解锁词条ID (品质提升,多条词条逗号分隔,各词条是叠加关系)(从红色往前排,倒着填)  
+    * @var Int32 该部位升级消耗的图纸id default(0) 
     */
-    public $qual_predicateId;
+    public $costTuzhiId;
 
     /**
-    * @var Int32 该部位升级消耗的图纸id default(0) 
+    * @var Int32 升级增加攻击还是生命值还是两个都加;1:加攻击力 2:生命值 3:两者都加 default(1) 
     */
-    public $costTuzhiId;
+    public $upgradeType;
 
 }
 

+ 7 - 2
Gameserver/App/model/Const/sm_equip_levelupgrade.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-03-26 17:42:29
+ // 日期: 2024-04-08 11:04:51
 ////////////////////
 
 
@@ -29,9 +29,14 @@ class sm_equip_levelupgrade
     public $needItemNum;
 
     /**
-    * @var Int32 每升一级增攻击力的数值 default(0) 
+    * @var Int32 每升一级增攻击力的数值 default(0) 
     */
     public $attckNum;
 
+    /**
+    * @var Int32 每升一级增加生命值的数值 default(0) 
+    */
+    public $hpNum;
+
 }
 

+ 1 - 1
Gameserver/App/model/Const/sm_evolve.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-03-20 15:21:15
+ // 日期: 2024-04-02 15:30:39
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_gate_sbox.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-03-28 14:04:33
+ // 日期: 2024-04-02 15:29:55
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_gem.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-03-26 15:59:27
+ // 日期: 2024-04-02 15:29:19
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_heroattr.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-03-28 14:25:35
+ // 日期: 2024-04-02 15:30:55
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_shop_cash.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-03-20 15:21:17
+ // 日期: 2024-04-07 10:22:49
 ////////////////////
 
 

+ 0 - 5
Gameserver/App/model/Const/sm_shop_gategift.php

@@ -13,11 +13,6 @@
 class sm_shop_gategift
 {
 
-    /**
-    * @var Int32 用途未知!!请到数据库中添加字段注释。  
-    */
-    public $id;
-
     /**
     * @var Int32 礼包id  
     */

+ 10 - 1
Gameserver/App/model/User/Info_Store.php

@@ -21,6 +21,13 @@ class Info_Store extends Object_ext {
      */
     public $items;
     
+    /**
+     * 宝石在背包库的唯一id
+     * @var type
+     */
+    public $gemLength = 0; 
+
+
     /**
      * 宝石背包
      * \stdClass() 
@@ -66,7 +73,9 @@ class Info_Store extends Object_ext {
             $this->gemStore = new \stdClass();
             $this->equip = new \stdClass();
             for ($i = 1; $i <=6; $i++) {
-                $this->equip->$i = new Ins_Equip();
+                $equip =  new Ins_Equip();
+                $equip->typeId = $i;
+                $this->equip->$i = $equip;
             }
             
             $this->gemEquip = new \stdClass();

+ 10 - 0
Gameserver/App/model/User/Ins_Equip.php

@@ -27,6 +27,16 @@ class Ins_Equip {
      */
     public $tip = 0;
 
+    
+    /**
+     * 配置
+     * @return sm_gem
+     */
+    public function mo() {
+        $mo = GameConfig::equip_getItem($this->typeId);
+        my_Assert(null != $mo, ErrCode::err_const_no);
+        return $mo;
+    }
 
     //public $qual = 0;
     

+ 175 - 24
Gameserver/App/process/StoreProc.php

@@ -54,17 +54,28 @@ class StoreProc {
      * @return Resp
      */
     public static function gemLockState() {
-        list($index) = req()->paras;
+        list($uid) = req()->paras;
         $user = ctx();
         
         //把 qual pos u一样的宝石开锁关锁
+        $gemStore = $user->store->gemStore;        
+        $gem = $gemStore->$uid;
         
+        $tag = $gem->isUnlock == 0?1:0;
+        $gem->isUnlock = $tag;
         
-        $user->store->equipPag = $index;
-       
+        foreach ($gemStore as $k => $ins_gem) {
+            if($ins_gem->typeId ==$gem->typeId && $ins_gem->predicateId == $gem->predicateId){
+                $gemStore->$k->isUnlock = $tag;
+            }            
+        }
+                    
         ctx($user);
         UserProc::updateUserInfo();
-        return Resp::ok(array());
+        return Resp::ok(array(
+            'gold'=>0,
+            'store' => $user->store,           
+        ));
     }
     
     /**
@@ -83,17 +94,83 @@ class StoreProc {
     }
     
     /**
+     * 所有装备的一键升级
+     * 规则:等级不同从等级小到大,等级一样按照部位顺序
      * 
-     * @return type
+     * @return Resp
      */
     public static function allEquipUpgrade() {
         list($uid) = req()->paras;
         $user = ctx();
 
-        //my_Assert(StlUtil::dictHasProperty($user->store->equip, $uid), ErrCode::user_store_NoEquip);
+        $equipDic = $user->store->equip;
+        
+        $arr = array();
+        if($equipDic != null){
+            foreach ($equipDic as $k => $equip) {
+                $lvMo = GameConfig::equip_levelupgrade_getItem($equip->level);
+                $needGold = $lvMo->needGold;
+                $needItemNum = $lvMo->needItemNum;
+                $neeItemId = $equip->mo()->costTuzhiId;
+                
+                if($user->baseInfo->gold >= $needGold && StlUtil::dictHasProperty($user->store->items, $neeItemId) && $user->store->items->$neeItemId >= $needItemNum){
+                    $arr[] = $equip;
+                }
+            }
+        }
+        
+        if(count($arr) > 0){
+            //进行排序
+            $len = count($arr);
+            for($i = 0; $i < $len - 1; $i++){
+                for($j = 0; $j < $len -$i - 1; $j++){
+                    if($arr[$j]->level > $arr[$j+1]->level){//从小到大
+                        $temp = $arr[$j];
+                        $arr[$j] = $arr[$j+1];
+                        $arr[$j+1] = $temp;
+                    } elseif ($arr[$j]->level == $arr[$j+1]->level) {
+                        if($arr[$j]->mo()->position > $arr[$j+1]->mo()->position){
+                            $temp = $arr[$j];
+                            $arr[$j] = $arr[$j+1];
+                            $arr[$j+1] = $temp;
+                        }
+                    }
+                }
+            }
+            
+            //升级,扣除金币和图纸      
+            while (true) {              
+                $n = count($arr);
+                for($k = 0; $k < $n; $k++){
+                    $equip = $arr[$k];
+                    $lvMo = GameConfig::equip_levelupgrade_getItem($equip->level);
+                    $needGold = $lvMo->needGold;
+                    $needItemNum = $lvMo->needItemNum;
+                    $neeItemId = $equip->mo()->costTuzhiId;
+
+                    if($user->baseInfo->gold >= $needGold && StlUtil::dictHasProperty($user->store->items, $neeItemId) && $user->store->items->$neeItemId >= $needItemNum){
+                        $id = $equip->typeId;    
+                        $equipDic->$id->level += 1;                        
+                        $user->baseInfo->Consume_Gold($needGold);
+                        $user->store->removeItem($neeItemId, $needItemNum);
+                        
+                    } else {
+                        StlUtil::arrayRemoveAt($arr, $k);
+                    }                              
+                }
+                
+                if(count($arr) <= 0){
+                    break;
+                }
+                
+            }
+                                                        
+        }
+        
+        ctx($user);
         UserProc::updateUserInfo();
         return Resp::ok(array(
-                    'heros' => $user->heros,
+                    'gold' => $user->baseInfo->gold,
                     'store' => $user->store,));
     }
     
@@ -141,13 +218,15 @@ class StoreProc {
      * @return type
      */
     public static function gemCompose() {
-        list($uid) = req()->paras;
+        list($gemIds) = req()->paras;
         $user = ctx();
 
+        
+        
         //my_Assert(StlUtil::dictHasProperty($user->store->equip, $uid), ErrCode::user_store_NoEquip);
         UserProc::updateUserInfo();
         return Resp::ok(array(
-                    'heros' => $user->heros,
+                    'gold' => $user->baseInfo->gold,
                     'store' => $user->store,));
     }
 
@@ -382,13 +461,14 @@ class StoreProc {
             my_Assert(count($val) > 1, "解析奖励字符串出错");
 
             list($itemId, $num) = $val;                                         # ID, 数量
-            if (GameConfig::equip_getItem($itemId) != null) {
-                self::PutEquipInStore($itemId, $num);
+            if (GameConfig::gem_getItem($itemId) != null) {
+                self::PutGemInStore($itemId, $num);
             } else {
                 $itemMo = GameConfig::item_getItem($itemId);
                 switch ($itemMo->itemType) {
                     case 1:
                         ctx()->baseInfo->Add_Gold($num);
+                        self::checkEquipUpgradeTip();                       
                         break;
                     case 2:
                         ctx()->baseInfo->Add_Cash($num);
@@ -402,7 +482,9 @@ class StoreProc {
                     case 100:
                     case 103:                
                         self::PutItemsInStore($itemId, $num);
-
+                        if($itemMo->itemType == 100){//图纸
+                            self::checkEquipUpgradeTip();            
+                        }
                         break;
                     default:
 
@@ -419,23 +501,92 @@ class StoreProc {
         } else {
             $items->$itemId = $num;
         }
-
+              
         ctx()->store->items = $items;
     }
 
-    public static function PutEquipInStore($equipId, $num) {
-        if ($equipId == 0) {
-            return;
+//    public static function PutEquipInStore($equipId, $num) {
+//        if ($equipId == 0) {
+//            return;
+//        }
+//        $n = count((array) ctx()->store->equip) + 1;
+//
+//        for ($index = 0; $index < $num; $index++) {
+//            $Equip = new Ins_Equip();
+//            $Equip->uid = $n;
+//            $Equip->typeId = $equipId;
+//            $Equip->qual = GameConfig::equip_getItem($equipId)->qual;
+//            ctx()->store->equip->$n = $Equip;
+//            $n += 1;
+//        }
+//    }
+    
+    /**
+     * 得到金币或是图纸的时候校验下,是否满足装备升级条件,满足则tip字段设置为1
+     */
+    public static function checkEquipUpgradeTip() {
+        $equipDic = ctx()->store->equip;
+        if($equipDic != null){
+            foreach ($equipDic as $k => $equip) {
+                $lvMo = GameConfig::equip_levelupgrade_getItem($equip->level);
+                $needGold = $lvMo->needGold;
+                $needItemNum = $lvMo->needItemNum;
+                $neeItemId = $equip->mo()->costTuzhiId;
+                
+                if(ctx()->baseInfo->gold >= $needGold && StlUtil::dictHasProperty(ctx()->store->items, $neeItemId) && ctx()->store->items->$neeItemId >= $needItemNum){
+                    $equipDic->$k->tip = 1;//绿点是每次得到金币或是图纸了,只要满足升级条件都变绿
+                }
+            }
         }
-        $n = count((array) ctx()->store->equip) + 1;
+        ctx()->store->equip = $equipDic;
+        
+    }
+    
+    /**
+     * 新宝石入库
+     */
+    public static function PutGemInStore($id,$num) {
+        $length = ctx()->store->gemLength;
+        
+        for ($i = 0; $i < $num; $i++) {
+            $length +=1;
+            $gem = new Ins_Gem();
+            $gem->uid = $length;
+            $gem->typeId = $id;
+            $gem->predicateId = self::RandomGemPredicateId($id);           
+            $tag = self::CheckNewGemTip($gem);
+            $gem->isNew = $tag; 
+            
+            ctx()->store->gemStore->$length = $gem;
+        }
+        
+        ctx()->store->gemLength = $length;
+    }
+    
+    /**
+     * 新宝石随机词条 临时等刚哥
+     */
+    public static function RandomGemPredicateId($id) {
+    
+        return 0;
+    } 
+
 
-        for ($index = 0; $index < $num; $index++) {
-            $Equip = new Ins_Equip();
-            $Equip->uid = $n;
-            $Equip->typeId = $equipId;
-            $Equip->qual = GameConfig::equip_getItem($equipId)->qual;
-            ctx()->store->equip->$n = $Equip;
-            $n += 1;
+    /**
+     * 新宝石提示
+     */
+    public static function CheckNewGemTip($gem) {
+        $gemStore = ctx()->store->gemStore;
+        $tag = false;
+        foreach ($gemStore as $k => $ins_gem) {
+            if($ins_gem->typeId ==$gem->typeId && $ins_gem->predicateId == $gem->predicateId){
+                $tag = true;
+                break;
+            }
+            
         }
+        
+        return $tag == true?0:1;
     }
+    
 }