Browse Source

背包字段

cyzhao 1 year ago
parent
commit
d1de986543

+ 4 - 1
Gameserver/App/base/CmdCode.php

@@ -128,7 +128,10 @@ class CmdCode {
     
     const cmd_fight_settle = 6801;
     
-    
+    /**
+     * 
+     */
+    const cmd_fight_PassGateTsPrizeReceive = 6802;
     // </editor-fold>
     
     // <editor-fold defaultstate="collapsed" desc="    反射方法    ">

+ 271 - 73
Gameserver/App/configs/GameConfig.php

@@ -1,41 +1,38 @@
 <?php
-
 ////////////////////
-// 由CodeGenerator创建。
-// Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
-// author: gwang
-// 日期: 2023-05-26 16:41:03
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-07-28 10:18:52
 ////////////////////
 
 namespace loyalsoft;
 
 /**
- * 常量配置数据
+ * 常量配置数据 
  */
 class GameConfig {
-// <editor-fold defaultstate="collapsed" desc="  基础代码 ">
-
+// <editor-fold defaultstate="collapsed" desc="  基础代码 ">    
     /**
-     * 是否启用codegen
+     * 是否启用codegen 
      */
-    private static function isCG() {
-        return defined('CodeGen_Enabled') && CodeGen_Enabled;
+    private static function isCG()  {
+        return defined('CodeGen_Enabled') && CodeGen_Enabled; 
     }
-
     /**
      * @var bool 分区是否使用独立的常量配置数据
      */
     private static $useZoneId = false;
-
     /**
      * 追加分区列表字符串
      * @return string
      */
-    private static function zoneid() {
+    private static function zoneid()
+    {
         global $zoneid;
         return self::$useZoneId ? "-zone$zoneid" : "";
     }
-
+	
     /**
      * @return ClientVersion
      */
@@ -87,88 +84,289 @@ class GameConfig {
         }
         return null;
     }
-
 // </editor-fold>
-
-// <editor-fold defaultstate="collapsed" desc=" 配置信息 ">     
-    
     /**
-     * 全局参数
-     * @return \globalsettings
-     */
-    public static function globalsettings() {
-        static $a = null;
+    * 全局参数
+    * @return \globalsettings
+    */
+    public static function globalsettings()
+    { 
+        static $a = null; 
         return self::initValue($a, 'globalsettings');
     }
-    
     /**
-     * @return \sm_service_schedule service_schedule item数据
-     */
-    public static function service_schedule_getItem($itemid) {
+    * 停服计划
+    * @return \service_schedule
+    */
+    public static function service_schedule()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'service_schedule');
+    }
+    /**
+    * @return \sm_service_schedule service_schedule item数据 
+    */
+    public static function service_schedule_getItem($itemid)
+    { 
         return self::get_hash_item('service_schedule', $itemid);
     }
-    
     /**
-     * @return \sm_errmsg errmsg item数据
-     */
-    public static function errmsg_getItem($itemid) {
-        return self::get_hash_item('errmsg', $itemid);
+    * 道具表
+    * @return \item
+    */
+    public static function item()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'item');
     }
-    
-    
-// </editor-fold>
-//     
-// <editor-fold defaultstate="collapsed" desc="  下面是旧代码 ">    
-    
-    
-    
-
     /**
-     * 系统邮件
-     * @return \sysmail
-     */
-    public static function sysmail() {
-        static $a = null;
+    * @return \sm_item item item数据 
+    */
+    public static function item_getItem($itemid)
+    { 
+        return self::get_hash_item('item', $itemid);
+    }
+    /**
+    * 系统邮件
+    * @return \sysmail
+    */
+    public static function sysmail()
+    { 
+        static $a = null; 
         return self::initValue($a, 'sysmail');
     }
-
     /**
-     * @return \sm_sysmail sysmail item数据
-     */
-    public static function sysmail_getItem($itemid) {
+    * @return \sm_sysmail sysmail item数据 
+    */
+    public static function sysmail_getItem($itemid)
+    { 
         return self::get_hash_item('sysmail', $itemid);
-    } 
-
+    }
     /**
-     * @return \sm_clientVersionHistory clientVersionHistory item数据
-     */
-    public static function clientVersionHistory_getItem($itemid) {
+    * 客户端版本信息
+    * @return \clientVersionHistory
+    */
+    public static function clientVersionHistory()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'clientVersionHistory');
+    }
+    /**
+    * @return \sm_clientVersionHistory clientVersionHistory item数据 
+    */
+    public static function clientVersionHistory_getItem($itemid)
+    { 
         return self::get_hash_item('clientVersionHistory', $itemid);
     }
-
     /**
-     * 分区列表
-     * @return \zonelist
-     */
-    public static function zonelist() {
-        static $a = null;
+    * 分区列表
+    * @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 \sm_zonelist zonelist item数据 
+    */
+    public static function zonelist_getItem($itemid)
+    { 
         return self::get_hash_item('zonelist', $itemid);
     }
-
     /**
-     * 当前版本(时间戳)
-     * @return \ver
-     */
-    public static function ver() {
-        static $a = null;
+    * 错误信息表
+    * @return \errmsg
+    */
+    public static function errmsg()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'errmsg');
+    }
+    /**
+    * @return \sm_errmsg errmsg item数据 
+    */
+    public static function errmsg_getItem($itemid)
+    { 
+        return self::get_hash_item('errmsg', $itemid);
+    }
+    /**
+    * 技能表
+    * @return \skills
+    */
+    public static function skills()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'skills');
+    }
+    /**
+    * @return \sm_skills skills item数据 
+    */
+    public static function skills_getItem($itemid)
+    { 
+        return self::get_hash_item('skills', $itemid);
+    }
+    /**
+    * 战斗: 波次表
+    * @return \waves
+    */
+    public static function waves()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'waves');
+    }
+    /**
+    * @return \sm_waves waves itemArray 
+    */
+    public static function waves_getItemArray($key)
+    { 
+        return self::get_hash_item('waves', $key);
+    }
+    /**
+    * 战斗: 怪物表
+    * @return \monster
+    */
+    public static function monster()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'monster');
+    }
+    /**
+    * @return \sm_monster monster item数据 
+    */
+    public static function monster_getItem($itemid)
+    { 
+        return self::get_hash_item('monster', $itemid);
+    }
+    /**
+    * 活动: 七日签到
+    * @return \activity_day7
+    */
+    public static function activity_day7()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'activity_day7');
+    }
+    /**
+    * @return \sm_activity_day7 activity_day7 item数据 
+    */
+    public static function activity_day7_getItem($itemid)
+    { 
+        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 \skillTypeArr
+    */
+    public static function skillTypeArr()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'skillTypeArr');
+    }
+    /**
+    * @return \sm_skillTypeArr skillTypeArr itemArray 
+    */
+    public static function skillTypeArr_getItemArray($key)
+    { 
+        return self::get_hash_item('skillTypeArr', $key);
+    }
+    /**
+    * 章节表
+    * @return \gate
+    */
+    public static function gate()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'gate');
+    }
+    /**
+    * @return \sm_gate gate item数据 
+    */
+    public static function gate_getItem($itemid)
+    { 
+        return self::get_hash_item('gate', $itemid);
+    }
+    /**
+    * 战斗经验表
+    * @return \gate_levelexp
+    */
+    public static function gate_levelexp()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'gate_levelexp');
+    }
+    /**
+    * @return \sm_gate_levelexp gate_levelexp item数据 
+    */
+    public static function gate_levelexp_getItem($itemid)
+    { 
+        return self::get_hash_item('gate_levelexp', $itemid);
+    }
+    /**
+    * 当前版本(时间戳)
+    * @return \ver
+    */
+    public static function ver()
+    { 
+        static $a = null; 
         return self::initValue($a, 'ver', false);
     }
-// </editor-fold>
+    /**
+    * 客户端配置数据
+    * @return \client
+    */
+    public static function client()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'client', false);
+    }
 }
+

+ 10 - 4
Gameserver/App/model/User/Data_UserGame.php

@@ -13,6 +13,12 @@ class Data_UserGame extends HashSaver {
      * @var Info_UserBase 基础数据
      */
     public $baseInfo;
+    
+    /**
+     * 背包
+     * @var Info_Store
+     */
+    public $store;
 
     /**
      * @var string token
@@ -33,7 +39,7 @@ class Data_UserGame extends HashSaver {
     public function initialize() {
         //my_Assert(GameConfig::primordial_data(), "找不到账号初始化数据");         # 防御
         //$this->baseInfo = new Info_UserBase();
-        $this->baseInfo->initialize();
+        $this->baseInfo->initialize();      
     }
 
     /**
@@ -42,11 +48,11 @@ class Data_UserGame extends HashSaver {
      */
     public function __construct($arg = null) {
         if (null === $arg) {                                                    # 未传参数的情况下
-            $this->baseInfo = new Info_UserBase();
+            $this->baseInfo = new Info_UserBase();          
         } else {                                                                # 实参
             parent::__construct($arg);                                          # 调用Object的构造函数
 
-            $this->base()->fixArray();
+            $this->base()->fixArray();          
         }
     }
 
@@ -64,7 +70,7 @@ class Data_UserGame extends HashSaver {
         }
         return $this->baseInfo;
     }
-
+    
     /**
      * 玩家仓库
      * @param bool $save 是否需要回存

+ 34 - 0
Gameserver/App/model/User/Info_Store.php

@@ -0,0 +1,34 @@
+<?php
+
+/*
+ * 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.
+ */
+
+namespace loyalsoft;
+
+/**
+ * Description of Info_Store
+ *
+ * @author c'y'zhao
+ */
+class Info_Store {
+    
+    /**
+     * 道具
+     * @var type
+     */
+    public $items = null;
+    
+    /**
+     * 装备
+     * @var type
+     */
+    public $equip = null;
+    
+    public function initialize() {
+        $this->items = new \stdClass();
+        $this->equip = new \stdClass();
+    }
+}

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

@@ -0,0 +1,23 @@
+<?php
+
+/*
+ * 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.
+ */
+
+namespace loyalsoft;
+
+/**
+ * Description of Ins_Equip
+ *
+ * @author c'y'zhao
+ */
+class Ins_Equip {
+    
+    public $typeId;
+    
+    public function __construct($arg = null) {
+        parent::__construct($arg);
+    }
+}

+ 62 - 0
Gameserver/App/process/StoreProc.php

@@ -29,6 +29,68 @@ class StoreProc {
     }
     
     public static function AddItemInStore() {
+        list($rwdStr) = req()->paras; //mask = 1:表示战斗中掉落
+        $user = ctx();
+
+        $err = self::AddMultiItemInStore($rwdStr);
+
+        my_Assert(ErrCode::ok == $err, $err);
+        
+        UserProc::updateUserInfo();
+        return Resp::ok(array(
+                    //'gold' => $user->baseInfo->gold,
+                    //'tili' => $user->baseInfo->tili,
+                    //'cash' => $user->baseInfo->cash,                   
+                    'store' => $user->store));
+        
+    }
+    
+    /**
+     * 具体奖励存入背包
+     * @param type $goodsStr
+     * @param type $src
+     */
+    public static function AddMultiItemInStore($goodsStr, $src = 1) {
+        $ary = explode(";", $goodsStr);
+        foreach ($ary as $value) {
+            $val = explode(",", $value);
+            my_Assert(count($val) > 1, "解析奖励字符串出错");
+
+            list($itemId, $num) = $val;                                         # ID, 数量
+            $itemMo = GameConfig::item_getItem($itemId);
+            switch ($itemMo->itemType) {
+                case 1:
+                    self::PutItemsInStore($itemId, $num);   
+
+                    break;
+                case 2:
+                    self::PutEquipInStore($itemId, $num);   
+
+                    break;
+
+                default:
+                    break;
+            }
+        }
+    }
+    
+    public static function PutItemsInStore($itemId,$num) {
+        $items = ctx()->store->items;
+        if(StlUtil::dictHasProperty($items, $itemId)){
+            $items->$itemId += $num;
+        } else {
+            $items->$itemId = $num;
+        }
         
+        ctx()->store->items = $items;
+    }
+    
+    public static function PutEquipInStore($equipId,$num) {
+        $n = count((array)ctx()->store->equip);
+        
+        for ($index = 0; $index < $num; $index++) {
+            $Equip = new Ins_Equip();
+            ctx()->store->equip->$n = $Equip;
+        }
     }
 }