Browse Source

世界boss功能改版,评星拓展了第二个boss.

gwang 3 years ago
parent
commit
91760d2503

+ 13 - 3
CSserver/BossServer/server/Boss.cs

@@ -28,10 +28,19 @@ namespace BossServer.server
         public int CountDownSecs;
 
         /// <summary>
-        /// boss ID
+        /// boss ZoneID
+        /// </summary>
+        public int ZoneId;
+        /// <summary>
+        /// boss id (大小boss,现在只有1,2)
         /// </summary>
         public int Id;
 
+        /// <summary>
+        /// 唯一id
+        /// </summary>
+        public string UID => $"{ZoneId}-{Id}";
+
         public Dictionary<int, Peer> Peers;
 
         public Channel<int> DamageQueue;
@@ -55,13 +64,14 @@ namespace BossServer.server
         /// </summary>
         public bool Ended { get; private set; } = false;
 
-        public Boss(int id, int maxHp, Action<Boss> Settle)
+        public Boss(int id, int zoneid, int maxHp, Action<Boss> Settle)
         {
             this.Id = id;
+            this.ZoneId = zoneid;
             this.Hp = this.MaxHp = maxHp;
             this.CountDownSecs = Config.Ins.CountDownTimes;
             var roomName = Room.Instance.Name ?? "Room";
-            var redis_key = MemKey_Game.BossFight_Damage_byDateHour_zset(Convert.ToInt32(Id), roomName);
+            var redis_key = MemKey_Game.BossFight_Damage_byDateHour_zset(Convert.ToInt32(ZoneId), roomName);
             var rdb = Redis.Ins.GetDatabase(0);
             rdb.KeyDelete(redis_key);
             this.Peers = new Dictionary<int, Peer>();

+ 5 - 0
CSserver/BossServer/server/Peer.cs

@@ -78,6 +78,11 @@ namespace BossServer.server
             }
 
         }
+        public int bossId;
+        /// <summary>
+        /// 所属boss 的关键key
+        /// </summary>
+        public string BossKey => $"{zoneid}-{bossId}";
 
         /// <summary>
         /// 线程安全的peer计数器

+ 12 - 10
CSserver/BossServer/server/Room.cs

@@ -82,7 +82,7 @@ namespace BossServer.server
         /// <summary>
         /// boss集合
         /// </summary>
-        private Dictionary<int, Boss> Boss_dict = new();
+        private Dictionary<string, Boss> Boss_dict = new();
 
 
         /// <summary>
@@ -130,9 +130,11 @@ namespace BossServer.server
                 peer.Properties.Add(nameof(msg.Uid), msg.Uid);
                 peer.Properties.Add(nameof(msg.Zoneid), msg.Zoneid);
                 peer.Properties.Add(PropertyName.Name, msg.Name);
+                peer.bossId = msg.BossId;
                 lock (Boss_dict)
                 {
-                    if (Boss_dict.TryGetValue(msg.Zoneid, out var boss))
+                    var bossKey = $"{msg.Zoneid}-{msg.BossId}";
+                    if (Boss_dict.TryGetValue(bossKey, out var boss))
                     {
                         if (boss.Ended)                                         // boss战已结束, 尚未重新开启
                         {
@@ -161,15 +163,15 @@ namespace BossServer.server
                                 boss.Peers.Add(peerId, peer);
                             }
                             peer.SendEvent(eProtocalCommand.ScLogin, new SCEnterFight() { BossHp = boss.Hp, BossMaxHp = boss.MaxHp, UserHP = peerHp, CountDown = boss.CountDownSecs });
-                            Console.WriteLine($"boss [{boss.Id}] 已经初始化完毕, " + boss.Hp);
+                            Console.WriteLine($"boss [{boss.ZoneId}] 已经初始化完毕, " + boss.Hp);
                         }
                     }
                     else                                                      // 初始化新的boss
                     {
                         Console.WriteLine($"初始化 boss [{msg.Zoneid}]");
-                        var b = new Boss(msg.Zoneid, MaxHp, BossSettle);
+                        var b = new Boss(msg.BossId, msg.Zoneid, MaxHp, BossSettle);
                         b.Peers.Add(peerId, peer);
-                        Boss_dict.Add(msg.Zoneid, b);
+                        Boss_dict.Add(b.UID, b);
                         peer.SendEvent(eProtocalCommand.ScLogin, new SCEnterFight() { BossHp = b.Hp, BossMaxHp = b.MaxHp, UserHP = -1, CountDown = b.CountDownSecs });
                     }
                 }
@@ -178,17 +180,17 @@ namespace BossServer.server
         }
         void BossSettle(Boss boss)
         {
-            WriteLine($"结算Boss {boss.Id}");
+            WriteLine($"结算Boss {boss.UID}");
             
-            if (Boss_dict.ContainsKey(boss.Id))
+            if (Boss_dict.ContainsKey(boss.UID))
             {
-                var data = $"zoneid={boss.Id}";
+                var data = $"zoneid={boss.ZoneId}&bossid={boss.Id}";
                 HttpHelper.Instance.Post(Config.Ins.SettleUrl, data);
                 var t = Task.Delay(TimeSpan.FromSeconds(Config.Ins.CountDownTimes)).ContinueWith(t =>
                   {
                       lock (Boss_dict)
                       {
-                          Boss_dict.Remove(boss.Id);
+                          Boss_dict.Remove(boss.UID);
                       }
                   });
             }
@@ -203,7 +205,7 @@ namespace BossServer.server
             if (this.ClientPeers.TryGetValue(peerId, out var peer))
             {
                 var msg = CSFightReportDamage.Parser.ParseFrom(data._data);
-                if (Boss_dict.TryGetValue(peer.zoneid, out var boss))
+                if (Boss_dict.TryGetValue(peer.BossKey, out var boss))
                 {
                     boss.DamageQueue.Writer.WriteAsync(msg.Damage);
                     peer.AddDamage(msg.Damage);

+ 2 - 2
CSserver/PBReferens/pb/fight.proto

@@ -8,7 +8,7 @@ package BossServer;
 message CSFightReportDamage
 {
        // 伤害输出
-	  int32 Damage = 1;
+	  int32 Damage = 1; 
 }
 // 上报玩家剩余血量
 message CSReportUserHP{
@@ -26,7 +26,7 @@ message CSEnterFight
 	int32 Zoneid = 1;
 	string Uid = 2;
 	string Name =3;
-
+	int32 BossId=4;
 }
 
 // 登陆完成

+ 36 - 8
CSserver/PBReferens/pbcs/Fight.cs

@@ -24,21 +24,21 @@ namespace BossServer {
           string.Concat(
             "Cg5wYi9maWdodC5wcm90bxIKQm9zc1NlcnZlciIlChNDU0ZpZ2h0UmVwb3J0",
             "RGFtYWdlEg4KBkRhbWFnZRgBIAEoBSIgCg5DU1JlcG9ydFVzZXJIUBIOCgZV",
-            "c2VySFAYASABKAUiGwoMQ1NMZWF2ZUZpZ2h0EgsKA19ubxgBIAEoBSI5CgxD",
+            "c2VySFAYASABKAUiGwoMQ1NMZWF2ZUZpZ2h0EgsKA19ubxgBIAEoBSJJCgxD",
             "U0VudGVyRmlnaHQSDgoGWm9uZWlkGAEgASgFEgsKA1VpZBgCIAEoCRIMCgRO",
-            "YW1lGAMgASgJIlQKDFNDRW50ZXJGaWdodBIOCgZCb3NzSHAYASABKAUSEQoJ",
-            "Qm9zc01heEhwGAIgASgFEg4KBlVzZXJIUBgDIAEoBRIRCglDb3VudERvd24Y",
-            "BCABKAUiSgoSU0NVcGRhdGVQcm9wZXJ0aWVzEg4KBkJvc3NIcBgBIAEoBRIR",
-            "CglCb3NzTWF4SHAYAiABKAUSEQoJQ291bnREb3duGAMgASgFIi8KClNDR2Ft",
-            "ZU92ZXISDgoGQm9zc0hwGAEgASgFEhEKCUNvdW50RG93bhgCIAEoBWIGcHJv",
-            "dG8z"));
+            "YW1lGAMgASgJEg4KBkJvc3NJZBgEIAEoBSJUCgxTQ0VudGVyRmlnaHQSDgoG",
+            "Qm9zc0hwGAEgASgFEhEKCUJvc3NNYXhIcBgCIAEoBRIOCgZVc2VySFAYAyAB",
+            "KAUSEQoJQ291bnREb3duGAQgASgFIkoKElNDVXBkYXRlUHJvcGVydGllcxIO",
+            "CgZCb3NzSHAYASABKAUSEQoJQm9zc01heEhwGAIgASgFEhEKCUNvdW50RG93",
+            "bhgDIAEoBSIvCgpTQ0dhbWVPdmVyEg4KBkJvc3NIcBgBIAEoBRIRCglDb3Vu",
+            "dERvd24YAiABKAViBnByb3RvMw=="));
       descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
           new pbr::FileDescriptor[] { },
           new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
             new pbr::GeneratedClrTypeInfo(typeof(global::BossServer.CSFightReportDamage), global::BossServer.CSFightReportDamage.Parser, new[]{ "Damage" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::BossServer.CSReportUserHP), global::BossServer.CSReportUserHP.Parser, new[]{ "UserHP" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::BossServer.CSLeaveFight), global::BossServer.CSLeaveFight.Parser, new[]{ "No" }, null, null, null),
-            new pbr::GeneratedClrTypeInfo(typeof(global::BossServer.CSEnterFight), global::BossServer.CSEnterFight.Parser, new[]{ "Zoneid", "Uid", "Name" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::BossServer.CSEnterFight), global::BossServer.CSEnterFight.Parser, new[]{ "Zoneid", "Uid", "Name", "BossId" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::BossServer.SCEnterFight), global::BossServer.SCEnterFight.Parser, new[]{ "BossHp", "BossMaxHp", "UserHP", "CountDown" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::BossServer.SCUpdateProperties), global::BossServer.SCUpdateProperties.Parser, new[]{ "BossHp", "BossMaxHp", "CountDown" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::BossServer.SCGameOver), global::BossServer.SCGameOver.Parser, new[]{ "BossHp", "CountDown" }, null, null, null)
@@ -441,6 +441,7 @@ namespace BossServer {
       zoneid_ = other.zoneid_;
       uid_ = other.uid_;
       name_ = other.name_;
+      bossId_ = other.bossId_;
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -481,6 +482,17 @@ namespace BossServer {
       }
     }
 
+    /// <summary>Field number for the "BossId" field.</summary>
+    public const int BossIdFieldNumber = 4;
+    private int bossId_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int BossId {
+      get { return bossId_; }
+      set {
+        bossId_ = value;
+      }
+    }
+
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public override bool Equals(object other) {
       return Equals(other as CSEnterFight);
@@ -497,6 +509,7 @@ namespace BossServer {
       if (Zoneid != other.Zoneid) return false;
       if (Uid != other.Uid) return false;
       if (Name != other.Name) return false;
+      if (BossId != other.BossId) return false;
       return true;
     }
 
@@ -506,6 +519,7 @@ namespace BossServer {
       if (Zoneid != 0) hash ^= Zoneid.GetHashCode();
       if (Uid.Length != 0) hash ^= Uid.GetHashCode();
       if (Name.Length != 0) hash ^= Name.GetHashCode();
+      if (BossId != 0) hash ^= BossId.GetHashCode();
       return hash;
     }
 
@@ -528,6 +542,10 @@ namespace BossServer {
         output.WriteRawTag(26);
         output.WriteString(Name);
       }
+      if (BossId != 0) {
+        output.WriteRawTag(32);
+        output.WriteInt32(BossId);
+      }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -542,6 +560,9 @@ namespace BossServer {
       if (Name.Length != 0) {
         size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
       }
+      if (BossId != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(BossId);
+      }
       return size;
     }
 
@@ -559,6 +580,9 @@ namespace BossServer {
       if (other.Name.Length != 0) {
         Name = other.Name;
       }
+      if (other.BossId != 0) {
+        BossId = other.BossId;
+      }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -581,6 +605,10 @@ namespace BossServer {
             Name = input.ReadString();
             break;
           }
+          case 32: {
+            BossId = input.ReadInt32();
+            break;
+          }
         }
       }
     }

+ 921 - 899
Gameserver/Amfphp/configs/GameConfig.php

@@ -1,35 +1,41 @@
 <?php
+
 ////////////////////
- // 由CodeGenerator创建。
- // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
- // author: gwang 
- // 日期: 2021-07-01 11:47:10
+// 由CodeGenerator创建。
+// Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+// author: gwang
+// 日期: 2021-07-09 10:11:53
 ////////////////////
+
 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" : "";
     }
+
     /**
      * 初始化指定变量, 非null的情况下直接跳出
      * 可能从文件中或者redis中获取原始数据对变量进行初始化
@@ -37,33 +43,32 @@ class GameConfig {
      * @param string $modelName 用来初始化变量的资源名称
      * @param bool $isHash 数据是否采用hash结构(否:普通字符串)
      */
-    static private function initValue(&$a, $modelName, $isHash = true)
-    {
+    static private function initValue(&$a, $modelName, $isHash = true) {
         $key = 'gamecfg-' . $modelName . self::zoneid();
         if (is_null($a)) {
             if (self::isCG()) {
                 $a = include $key . '.php';
                 if ($isHash) {
-                    $para = is_array($a) ? $a : (array) $a;                     # 转关联数组 
+                    $para = is_array($a) ? $a : (array) $a;                     # 转关联数组
                     foreach ($para as $name => &$value) {
                         $value = JsonUtil::decode($value);                      # 取参数中的或者默认值
                     }
                     $a = arr2obj($para);
-                }			
+                }
             } else {
                 $a = $isHash ? gMem()->hgetall($key) : gMem()->get($key);
             }
         }
         return $a;
     }
-    /** 
+
+    /**
      * 获取hash结构的一个item
      * @param string $modelName 模块名称
      * @param mixed/string/int $itemId 索引
      * @return mixed
      */
-    private static function get_hash_item($modelName, $itemId)
-    {
+    private static function get_hash_item($modelName, $itemId) {
         if (self::isCG()) {
             $data = self::$modelName();
             if (property_exists($data, $itemId)) {
@@ -75,1411 +80,1428 @@ class GameConfig {
         }
         return null;
     }
+
 // </editor-fold>
+
     /**
-    * 全局参数
-    * @return \globalsettings
-    */
-    public static function globalsettings()
-    { 
-        static $a = null; 
+     * 全局参数
+     * @return \globalsettings
+     */
+    public static function globalsettings() {
+        static $a = null;
         return self::initValue($a, 'globalsettings');
     }
+
     /**
-    * 英雄模块
-    * @return \hero
-    */
-    public static function hero()
-    { 
-        static $a = null; 
+     * 英雄模块
+     * @return \hero
+     */
+    public static function hero() {
+        static $a = null;
         return self::initValue($a, 'hero');
     }
+
     /**
-    * @return \sm_hero hero item数据 
-    */
-    public static function hero_getItem($itemid)
-    { 
+     * @return \sm_hero hero item数据
+     */
+    public static function hero_getItem($itemid) {
         return self::get_hash_item('hero', $itemid);
     }
+
     /**
-    * 英雄的升级(属性加成)
-    * @return \heroextra_level
-    */
-    public static function heroextra_level()
-    { 
-        static $a = null; 
+     * 英雄的升级(属性加成)
+     * @return \heroextra_level
+     */
+    public static function heroextra_level() {
+        static $a = null;
         return self::initValue($a, 'heroextra_level');
     }
+
     /**
-    * @return \sm_heroextra_level heroextra_level item数据 
-    */
-    public static function heroextra_level_getItem($heroId, $quality)
-    { 
+     * @return \sm_heroextra_level heroextra_level item数据
+     */
+    public static function heroextra_level_getItem($heroId, $quality) {
         return self::get_hash_item('heroextra_level', $heroId)->$quality;
     }
+
     /**
-    * 武器等级,品质,等级双索引
-    * @return \weapon_levelexp
-    */
-    public static function weapon_levelexp()
-    { 
-        static $a = null; 
+     * 武器等级,品质,等级双索引
+     * @return \weapon_levelexp
+     */
+    public static function weapon_levelexp() {
+        static $a = null;
         return self::initValue($a, 'weapon_levelexp');
     }
+
     /**
-    * @return \sm_weapon_levelexp weapon_levelexp item数据 
-    */
-    public static function weapon_levelexp_getItem($type, $level)
-    { 
+     * @return \sm_weapon_levelexp weapon_levelexp item数据
+     */
+    public static function weapon_levelexp_getItem($type, $level) {
         return self::get_hash_item('weapon_levelexp', $type)->$level;
     }
+
     /**
-    * [废弃]
-    * @return \item
-    */
-    public static function item()
-    { 
-        static $a = null; 
+     * [废弃]
+     * @return \item
+     */
+    public static function item() {
+        static $a = null;
         return self::initValue($a, 'item');
     }
+
     /**
-    * @return \sm_item item item数据 
-    */
-    public static function item_getItem($itemid)
-    { 
+     * @return \sm_item item item数据
+     */
+    public static function item_getItem($itemid) {
         return self::get_hash_item('item', $itemid);
     }
+
     /**
-    * [废弃]
-    * @return \itemlevel
-    */
-    public static function itemlevel()
-    { 
-        static $a = null; 
+     * [废弃]
+     * @return \itemlevel
+     */
+    public static function itemlevel() {
+        static $a = null;
         return self::initValue($a, 'itemlevel');
     }
+
     /**
-    * @return \sm_itemlevel itemlevel item数据 
-    */
-    public static function itemlevel_getItem($itemid)
-    { 
+     * @return \sm_itemlevel itemlevel item数据
+     */
+    public static function itemlevel_getItem($itemid) {
         return self::get_hash_item('itemlevel', $itemid);
     }
+
     /**
-    * 武器突破
-    * @return \weaponextra_level
-    */
-    public static function weaponextra_level()
-    { 
-        static $a = null; 
+     * 武器突破
+     * @return \weaponextra_level
+     */
+    public static function weaponextra_level() {
+        static $a = null;
         return self::initValue($a, 'weaponextra_level');
     }
+
     /**
-    * @return \sm_weaponextra_level weaponextra_level item数据 
-    */
-    public static function weaponextra_level_getItem($weaponId, $starLv)
-    { 
+     * @return \sm_weaponextra_level weaponextra_level item数据
+     */
+    public static function weaponextra_level_getItem($weaponId, $starLv) {
         return self::get_hash_item('weaponextra_level', $weaponId)->$starLv;
     }
+
     /**
-    * 英雄的升级——每级成长消耗经验需求表
-    * @return \hero_levelexp
-    */
-    public static function hero_levelexp()
-    { 
-        static $a = null; 
+     * 英雄的升级——每级成长消耗经验需求表
+     * @return \hero_levelexp
+     */
+    public static function hero_levelexp() {
+        static $a = null;
         return self::initValue($a, 'hero_levelexp');
     }
+
     /**
-    * @return \sm_hero_levelexp hero_levelexp item数据 
-    */
-    public static function hero_levelexp_getItem($itemid)
-    { 
+     * @return \sm_hero_levelexp hero_levelexp item数据
+     */
+    public static function hero_levelexp_getItem($itemid) {
         return self::get_hash_item('hero_levelexp', $itemid);
     }
+
     /**
-    * 英雄的升阶(消耗金币+ 属性加成)
-    * @return \heroextra_dengjie
-    */
-    public static function heroextra_dengjie()
-    { 
-        static $a = null; 
+     * 英雄的升阶(消耗金币+ 属性加成)
+     * @return \heroextra_dengjie
+     */
+    public static function heroextra_dengjie() {
+        static $a = null;
         return self::initValue($a, 'heroextra_dengjie');
     }
+
     /**
-    * @return \sm_heroextra_dengjie heroextra_dengjie item数据 
-    */
-    public static function heroextra_dengjie_getItem($itemid)
-    { 
+     * @return \sm_heroextra_dengjie heroextra_dengjie item数据
+     */
+    public static function heroextra_dengjie_getItem($itemid) {
         return self::get_hash_item('heroextra_dengjie', $itemid);
     }
+
     /**
-    * 关卡
-    * @return \gate
-    */
-    public static function gate()
-    { 
-        static $a = null; 
+     * 关卡
+     * @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 \sm_gate gate item数据
+     */
+    public static function gate_getItem($itemid) {
         return self::get_hash_item('gate', $itemid);
     }
+
     /**
-    * 关卡波茨数据
-    * @return \gatelevel
-    */
-    public static function gatelevel()
-    { 
-        static $a = null; 
+     * 关卡波茨数据
+     * @return \gatelevel
+     */
+    public static function gatelevel() {
+        static $a = null;
         return self::initValue($a, 'gatelevel');
     }
+
     /**
-    * @return \sm_gatelevel gatelevel item数据 
-    */
-    public static function gatelevel_getItem($itemid)
-    { 
+     * @return \sm_gatelevel gatelevel item数据
+     */
+    public static function gatelevel_getItem($itemid) {
         return self::get_hash_item('gatelevel', $itemid);
     }
+
     /**
-    * 关卡—— 星级奖励
-    * @return \gate_starreward
-    */
-    public static function gate_starreward()
-    { 
-        static $a = null; 
+     * 关卡—— 星级奖励
+     * @return \gate_starreward
+     */
+    public static function gate_starreward() {
+        static $a = null;
         return self::initValue($a, 'gate_starreward');
     }
+
     /**
-    * @return \sm_gate_starreward gate_starreward item数据 
-    */
-    public static function gate_starreward_getItem($chapterId, $hardLevel)
-    { 
+     * @return \sm_gate_starreward gate_starreward item数据
+     */
+    public static function gate_starreward_getItem($chapterId, $hardLevel) {
         return self::get_hash_item('gate_starreward', "$chapterId-$hardLevel");
     }
+
     /**
-    * 任务
-    * @return \task
-    */
-    public static function task()
-    { 
-        static $a = null; 
+     * 任务
+     * @return \task
+     */
+    public static function task() {
+        static $a = null;
         return self::initValue($a, 'task');
     }
+
     /**
-    * @return \sm_task task item数据 
-    */
-    public static function task_getItem($itemid)
-    { 
+     * @return \sm_task task item数据
+     */
+    public static function task_getItem($itemid) {
         return self::get_hash_item('task', $itemid);
     }
+
     /**
-    * 
-    * @return \playerlevel
-    */
-    public static function playerlevel()
-    { 
-        static $a = null; 
+     *
+     * @return \playerlevel
+     */
+    public static function playerlevel() {
+        static $a = null;
         return self::initValue($a, 'playerlevel');
     }
+
     /**
-    * @return \sm_playerlevel playerlevel item数据 
-    */
-    public static function playerlevel_getItem($itemid)
-    { 
+     * @return \sm_playerlevel playerlevel item数据
+     */
+    public static function playerlevel_getItem($itemid) {
         return self::get_hash_item('playerlevel', $itemid);
     }
+
     /**
-    * 言灵类道具
-    * @return \item_yanling
-    */
-    public static function item_yanling()
-    { 
-        static $a = null; 
+     * 言灵类道具
+     * @return \item_yanling
+     */
+    public static function item_yanling() {
+        static $a = null;
         return self::initValue($a, 'item_yanling');
     }
+
     /**
-    * @return \sm_item_yanling item_yanling item数据 
-    */
-    public static function item_yanling_getItem($itemid)
-    { 
+     * @return \sm_item_yanling item_yanling item数据
+     */
+    public static function item_yanling_getItem($itemid) {
         return self::get_hash_item('item_yanling', $itemid);
     }
+
     /**
-    * 无尽塔关卡数据
-    * @return \endless_tower
-    */
-    public static function endless_tower()
-    { 
-        static $a = null; 
+     * 无尽塔关卡数据
+     * @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 \sm_endless_tower endless_tower item数据
+     */
+    public static function endless_tower_getItem($itemid) {
         return self::get_hash_item('endless_tower', $itemid);
     }
+
     /**
-    * 
-    * @return \heroextra_level_tupo
-    */
-    public static function heroextra_level_tupo()
-    { 
-        static $a = null; 
+     *
+     * @return \heroextra_level_tupo
+     */
+    public static function heroextra_level_tupo() {
+        static $a = null;
         return self::initValue($a, 'heroextra_level_tupo');
     }
+
     /**
-    * @return \sm_heroextra_level_tupo heroextra_level_tupo item数据 
-    */
-    public static function heroextra_level_tupo_getItem($heroId, $starLv)
-    { 
+     * @return \sm_heroextra_level_tupo heroextra_level_tupo item数据
+     */
+    public static function heroextra_level_tupo_getItem($heroId, $starLv) {
         return self::get_hash_item('heroextra_level_tupo', $heroId)->$starLv;
     }
+
     /**
-    * 商城
-    * @return \shop
-    */
-    public static function shop()
-    { 
-        static $a = null; 
+     * 商城
+     * @return \shop
+     */
+    public static function shop() {
+        static $a = null;
         return self::initValue($a, 'shop');
     }
+
     /**
-    * @return \sm_shop shop item数据 
-    */
-    public static function shop_getItem($itemid)
-    { 
+     * @return \sm_shop shop item数据
+     */
+    public static function shop_getItem($itemid) {
         return self::get_hash_item('shop', $itemid);
     }
+
     /**
-    * 停服计划
-    * @return \service_schedule
-    */
-    public static function service_schedule()
-    { 
-        static $a = null; 
+     * 停服计划
+     * @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 \sm_service_schedule service_schedule item数据
+     */
+    public static function service_schedule_getItem($itemid) {
         return self::get_hash_item('service_schedule', $itemid);
     }
+
     /**
-    * 任务步骤
-    * @return \task_step
-    */
-    public static function task_step()
-    { 
-        static $a = null; 
+     * 任务步骤
+     * @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 \sm_task_step task_step item数据
+     */
+    public static function task_step_getItem($itemid) {
         return self::get_hash_item('task_step', $itemid);
     }
+
     /**
-    * 任务卡
-    * @return \item_taskcard
-    */
-    public static function item_taskcard()
-    { 
-        static $a = null; 
+     * 任务卡
+     * @return \item_taskcard
+     */
+    public static function item_taskcard() {
+        static $a = null;
         return self::initValue($a, 'item_taskcard');
     }
+
     /**
-    * @return \sm_item_taskcard item_taskcard item数据 
-    */
-    public static function item_taskcard_getItem($itemid)
-    { 
+     * @return \sm_item_taskcard item_taskcard item数据
+     */
+    public static function item_taskcard_getItem($itemid) {
         return self::get_hash_item('item_taskcard', $itemid);
     }
+
     /**
-    * 
-    * @return \shenmiaoActiveIdTs
-    */
-    public static function shenmiaoActiveIdTs()
-    { 
-        static $a = null; 
+     *
+     * @return \shenmiaoActiveIdTs
+     */
+    public static function shenmiaoActiveIdTs() {
+        static $a = null;
         return self::initValue($a, 'shenmiaoActiveIdTs');
     }
+
     /**
-    * @return \sm_shenmiaoActiveIdTs shenmiaoActiveIdTs item数据 
-    */
-    public static function shenmiaoActiveIdTs_getItem($itemid)
-    { 
+     * @return \sm_shenmiaoActiveIdTs shenmiaoActiveIdTs item数据
+     */
+    public static function shenmiaoActiveIdTs_getItem($itemid) {
         return self::get_hash_item('shenmiaoActiveIdTs', $itemid);
     }
+
     /**
-    * 系统邮件
-    * @return \sysmail
-    */
-    public static function sysmail()
-    { 
-        static $a = null; 
+     * 系统邮件
+     * @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 \plot
-    */
-    public static function plot()
-    { 
-        static $a = null; 
+     * 剧情对话
+     * @return \plot
+     */
+    public static function plot() {
+        static $a = null;
         return self::initValue($a, 'plot');
     }
+
     /**
-    * @return \sm_plot plot item数据 
-    */
-    public static function plot_getItem($gateId, $stage)
-    { 
+     * @return \sm_plot plot item数据
+     */
+    public static function plot_getItem($gateId, $stage) {
         return self::get_hash_item('plot', $gateId)->$stage;
     }
+
     /**
-    * 言灵附加随机表
-    * @return \item_additional
-    */
-    public static function item_additional()
-    { 
-        static $a = null; 
+     * 言灵附加随机表
+     * @return \item_additional
+     */
+    public static function item_additional() {
+        static $a = null;
         return self::initValue($a, 'item_additional');
     }
+
     /**
-    * @return \sm_item_additional item_additional item数据 
-    */
-    public static function item_additional_getItem($itemid)
-    { 
+     * @return \sm_item_additional item_additional item数据
+     */
+    public static function item_additional_getItem($itemid) {
         return self::get_hash_item('item_additional', $itemid);
     }
+
     /**
-    * 活跃点奖励表
-    * @return \task_active_reward
-    */
-    public static function task_active_reward()
-    { 
-        static $a = null; 
+     * 活跃点奖励表
+     * @return \task_active_reward
+     */
+    public static function task_active_reward() {
+        static $a = null;
         return self::initValue($a, 'task_active_reward');
     }
+
     /**
-    * @return \sm_task_active_reward task_active_reward item数据 
-    */
-    public static function task_active_reward_getItem($itemid)
-    { 
+     * @return \sm_task_active_reward task_active_reward item数据
+     */
+    public static function task_active_reward_getItem($itemid) {
         return self::get_hash_item('task_active_reward', $itemid);
     }
+
     /**
-    * 竞技场 上榜单奖励
-    * @return \pvp_rankreward
-    */
-    public static function pvp_rankreward()
-    { 
-        static $a = null; 
+     * 竞技场 上榜单奖励
+     * @return \pvp_rankreward
+     */
+    public static function pvp_rankreward() {
+        static $a = null;
         return self::initValue($a, 'pvp_rankreward');
     }
+
     /**
-    * @return \sm_pvp_rankreward pvp_rankreward item数据 
-    */
-    public static function pvp_rankreward_getItem($itemid)
-    { 
+     * @return \sm_pvp_rankreward pvp_rankreward item数据
+     */
+    public static function pvp_rankreward_getItem($itemid) {
         return self::get_hash_item('pvp_rankreward', $itemid);
     }
+
     /**
-    * 竞技 商店
-    * @return \pvp_shop
-    */
-    public static function pvp_shop()
-    { 
-        static $a = null; 
+     * 竞技 商店
+     * @return \pvp_shop
+     */
+    public static function pvp_shop() {
+        static $a = null;
         return self::initValue($a, 'pvp_shop');
     }
+
     /**
-    * @return \sm_pvp_shop pvp_shop item数据 
-    */
-    public static function pvp_shop_getItem($itemid)
-    { 
+     * @return \sm_pvp_shop pvp_shop item数据
+     */
+    public static function pvp_shop_getItem($itemid) {
         return self::get_hash_item('pvp_shop', $itemid);
     }
+
     /**
-    * 配置的关卡相关的战斗数据
-    * @return \gate_combat
-    */
-    public static function gate_combat()
-    { 
-        static $a = null; 
+     * 配置的关卡相关的战斗数据
+     * @return \gate_combat
+     */
+    public static function gate_combat() {
+        static $a = null;
         return self::initValue($a, 'gate_combat');
     }
+
     /**
-    * @return \sm_gate_combat gate_combat item数据 
-    */
-    public static function gate_combat_getItem($itemid)
-    { 
+     * @return \sm_gate_combat gate_combat item数据
+     */
+    public static function gate_combat_getItem($itemid) {
         return self::get_hash_item('gate_combat', $itemid);
     }
+
     /**
-    * 根据类型找id
-    * @return \shenmiaoTypeList
-    */
-    public static function shenmiaoTypeList()
-    { 
-        static $a = null; 
+     * 根据类型找id
+     * @return \shenmiaoTypeList
+     */
+    public static function shenmiaoTypeList() {
+        static $a = null;
         return self::initValue($a, 'shenmiaoTypeList');
     }
+
     /**
-    * @return \sm_shenmiaoTypeList shenmiaoTypeList itemArray 
-    */
-    public static function shenmiaoTypeList_getItemArray($key)
-    { 
+     * @return \sm_shenmiaoTypeList shenmiaoTypeList itemArray
+     */
+    public static function shenmiaoTypeList_getItemArray($key) {
         return self::get_hash_item('shenmiaoTypeList', $key);
     }
+
     /**
-    * 每日任务
-    * @return \task_daily
-    */
-    public static function task_daily()
-    { 
-        static $a = null; 
+     * 每日任务
+     * @return \task_daily
+     */
+    public static function task_daily() {
+        static $a = null;
         return self::initValue($a, 'task_daily');
     }
+
     /**
-    * @return \sm_task_daily task_daily item数据 
-    */
-    public static function task_daily_getItem($itemid)
-    { 
+     * @return \sm_task_daily task_daily item数据
+     */
+    public static function task_daily_getItem($itemid) {
         return self::get_hash_item('task_daily', $itemid);
     }
+
     /**
-    * 神庙定期活动时间
-    * @return \shenmiaoActiveTs
-    */
-    public static function shenmiaoActiveTs()
-    { 
-        static $a = null; 
+     * 神庙定期活动时间
+     * @return \shenmiaoActiveTs
+     */
+    public static function shenmiaoActiveTs() {
+        static $a = null;
         return self::initValue($a, 'shenmiaoActiveTs');
     }
+
     /**
-    * @return \sm_shenmiaoActiveTs shenmiaoActiveTs item数据 
-    */
-    public static function shenmiaoActiveTs_getItem($itemid)
-    { 
+     * @return \sm_shenmiaoActiveTs shenmiaoActiveTs item数据
+     */
+    public static function shenmiaoActiveTs_getItem($itemid) {
         return self::get_hash_item('shenmiaoActiveTs', $itemid);
     }
+
     /**
-    * 英雄的升级——成长可消耗的道具表
-    * @return \hero_levelexp_costitem
-    */
-    public static function hero_levelexp_costitem()
-    { 
-        static $a = null; 
+     * 英雄的升级——成长可消耗的道具表
+     * @return \hero_levelexp_costitem
+     */
+    public static function hero_levelexp_costitem() {
+        static $a = null;
         return self::initValue($a, 'hero_levelexp_costitem');
     }
+
     /**
-    * @return \sm_hero_levelexp_costitem hero_levelexp_costitem item数据 
-    */
-    public static function hero_levelexp_costitem_getItem($itemid)
-    { 
+     * @return \sm_hero_levelexp_costitem hero_levelexp_costitem item数据
+     */
+    public static function hero_levelexp_costitem_getItem($itemid) {
         return self::get_hash_item('hero_levelexp_costitem', $itemid);
     }
+
     /**
-    * 言灵等级
-    * @return \yanlingLeve
-    */
-    public static function yanlingLeve()
-    { 
-        static $a = null; 
+     * 言灵等级
+     * @return \yanlingLeve
+     */
+    public static function yanlingLeve() {
+        static $a = null;
         return self::initValue($a, 'yanlingLeve');
     }
+
     /**
-    * @return \sm_yanlingLeve yanlingLeve item数据 
-    */
-    public static function yanlingLeve_getItem($itemid)
-    { 
+     * @return \sm_yanlingLeve yanlingLeve item数据
+     */
+    public static function yanlingLeve_getItem($itemid) {
         return self::get_hash_item('yanlingLeve', $itemid);
     }
+
     /**
-    * 神庙
-    * @return \shenmiao
-    */
-    public static function shenmiao()
-    { 
-        static $a = null; 
+     * 神庙
+     * @return \shenmiao
+     */
+    public static function shenmiao() {
+        static $a = null;
         return self::initValue($a, 'shenmiao');
     }
+
     /**
-    * @return \sm_shenmiao shenmiao item数据 
-    */
-    public static function shenmiao_getItem($itemid)
-    { 
+     * @return \sm_shenmiao shenmiao item数据
+     */
+    public static function shenmiao_getItem($itemid) {
         return self::get_hash_item('shenmiao', $itemid);
     }
+
     /**
-    * 圣哲学院表
-    * @return \college
-    */
-    public static function college()
-    { 
-        static $a = null; 
+     * 圣哲学院表
+     * @return \college
+     */
+    public static function college() {
+        static $a = null;
         return self::initValue($a, 'college');
     }
+
     /**
-    * @return \sm_college college item数据 
-    */
-    public static function college_getItem($itemid)
-    { 
+     * @return \sm_college college item数据
+     */
+    public static function college_getItem($itemid) {
         return self::get_hash_item('college', $itemid);
     }
+
     /**
-    * 引导触发
-    * @return \guide_trigger
-    */
-    public static function guide_trigger()
-    { 
-        static $a = null; 
+     * 引导触发
+     * @return \guide_trigger
+     */
+    public static function guide_trigger() {
+        static $a = null;
         return self::initValue($a, 'guide_trigger');
     }
+
     /**
-    * @return \sm_guide_trigger guide_trigger item数据 
-    */
-    public static function guide_trigger_getItem($itemid)
-    { 
+     * @return \sm_guide_trigger guide_trigger item数据
+     */
+    public static function guide_trigger_getItem($itemid) {
         return self::get_hash_item('guide_trigger', $itemid);
     }
+
     /**
-    * 任务节点
-    * @return \task_node
-    */
-    public static function task_node()
-    { 
-        static $a = null; 
+     * 任务节点
+     * @return \task_node
+     */
+    public static function task_node() {
+        static $a = null;
         return self::initValue($a, 'task_node');
     }
+
     /**
-    * @return \sm_task_node task_node item数据 
-    */
-    public static function task_node_getItem($itemid)
-    { 
+     * @return \sm_task_node task_node item数据
+     */
+    public static function task_node_getItem($itemid) {
         return self::get_hash_item('task_node', $itemid);
     }
+
     /**
-    * 圣哲学院课程表
-    * @return \course
-    */
-    public static function course()
-    { 
-        static $a = null; 
+     * 圣哲学院课程表
+     * @return \course
+     */
+    public static function course() {
+        static $a = null;
         return self::initValue($a, 'course');
     }
+
     /**
-    * @return \sm_course course item数据 
-    */
-    public static function course_getItem($itemid)
-    { 
+     * @return \sm_course course item数据
+     */
+    public static function course_getItem($itemid) {
         return self::get_hash_item('course', $itemid);
     }
+
     /**
-    * 
-    * @return \gate_mainland
-    */
-    public static function gate_mainland()
-    { 
-        static $a = null; 
+     *
+     * @return \gate_mainland
+     */
+    public static function gate_mainland() {
+        static $a = null;
         return self::initValue($a, 'gate_mainland');
     }
+
     /**
-    * @return \sm_gate_mainland gate_mainland item数据 
-    */
-    public static function gate_mainland_getItem($itemid)
-    { 
+     * @return \sm_gate_mainland gate_mainland item数据
+     */
+    public static function gate_mainland_getItem($itemid) {
         return self::get_hash_item('gate_mainland', $itemid);
     }
+
     /**
-    * 动作事件表
-    * @return \eventAction
-    */
-    public static function eventAction()
-    { 
-        static $a = null; 
+     * 动作事件表
+     * @return \eventAction
+     */
+    public static function eventAction() {
+        static $a = null;
         return self::initValue($a, 'eventAction');
     }
+
     /**
-    * @return \sm_eventAction eventAction item数据 
-    */
-    public static function eventAction_getItem($itemid)
-    { 
+     * @return \sm_eventAction eventAction item数据
+     */
+    public static function eventAction_getItem($itemid) {
         return self::get_hash_item('eventAction', $itemid);
     }
+
     /**
-    * 碎片
-    * @return \segment
-    */
-    public static function segment()
-    { 
-        static $a = null; 
+     * 碎片
+     * @return \segment
+     */
+    public static function segment() {
+        static $a = null;
         return self::initValue($a, 'segment');
     }
+
     /**
-    * @return \sm_segment segment item数据 
-    */
-    public static function segment_getItem($itemid)
-    { 
+     * @return \sm_segment segment item数据
+     */
+    public static function segment_getItem($itemid) {
         return self::get_hash_item('segment', $itemid);
     }
+
     /**
-    * 关卡-区域表
-    * @return \gate_zone
-    */
-    public static function gate_zone()
-    { 
-        static $a = null; 
+     * 关卡-区域表
+     * @return \gate_zone
+     */
+    public static function gate_zone() {
+        static $a = null;
         return self::initValue($a, 'gate_zone');
     }
+
     /**
-    * @return \sm_gate_zone gate_zone item数据 
-    */
-    public static function gate_zone_getItem($itemid)
-    { 
+     * @return \sm_gate_zone gate_zone item数据
+     */
+    public static function gate_zone_getItem($itemid) {
         return self::get_hash_item('gate_zone', $itemid);
     }
+
     /**
-    * 建筑表_2021.2.5
-    * @return \build
-    */
-    public static function build()
-    { 
-        static $a = null; 
+     * 建筑表_2021.2.5
+     * @return \build
+     */
+    public static function build() {
+        static $a = null;
         return self::initValue($a, 'build');
     }
+
     /**
-    * @return \sm_build build item数据 
-    */
-    public static function build_getItem($itemid)
-    { 
+     * @return \sm_build build item数据
+     */
+    public static function build_getItem($itemid) {
         return self::get_hash_item('build', $itemid);
     }
+
     /**
-    * 神秘商城道具表-by goodstype
-    * @return \secretshop_goodsType
-    */
-    public static function secretshop_goodsType()
-    { 
-        static $a = null; 
+     * 神秘商城道具表-by goodstype
+     * @return \secretshop_goodsType
+     */
+    public static function secretshop_goodsType() {
+        static $a = null;
         return self::initValue($a, 'secretshop_goodsType');
     }
+
     /**
-    * @return \sm_secretshop_goodsType secretshop_goodsType item数据 
-    */
-    public static function secretshop_goodsType_getItem($itemid)
-    { 
+     * @return \sm_secretshop_goodsType secretshop_goodsType item数据
+     */
+    public static function secretshop_goodsType_getItem($itemid) {
         return self::get_hash_item('secretshop_goodsType', $itemid);
     }
+
     /**
-    * 神秘商城刷新价格表
-    * @return \secretshop_refresh
-    */
-    public static function secretshop_refresh()
-    { 
-        static $a = null; 
+     * 神秘商城刷新价格表
+     * @return \secretshop_refresh
+     */
+    public static function secretshop_refresh() {
+        static $a = null;
         return self::initValue($a, 'secretshop_refresh');
     }
+
     /**
-    * @return \sm_secretshop_refresh secretshop_refresh item数据 
-    */
-    public static function secretshop_refresh_getItem($itemid)
-    { 
+     * @return \sm_secretshop_refresh secretshop_refresh item数据
+     */
+    public static function secretshop_refresh_getItem($itemid) {
         return self::get_hash_item('secretshop_refresh', $itemid);
     }
+
     /**
-    * 神秘商城道具表-by typeId
-    * @return \secretshop_typeId
-    */
-    public static function secretshop_typeId()
-    { 
-        static $a = null; 
+     * 神秘商城道具表-by typeId
+     * @return \secretshop_typeId
+     */
+    public static function secretshop_typeId() {
+        static $a = null;
         return self::initValue($a, 'secretshop_typeId');
     }
+
     /**
-    * @return \sm_secretshop_typeId secretshop_typeId item数据 
-    */
-    public static function secretshop_typeId_getItem($itemid)
-    { 
+     * @return \sm_secretshop_typeId secretshop_typeId item数据
+     */
+    public static function secretshop_typeId_getItem($itemid) {
         return self::get_hash_item('secretshop_typeId', $itemid);
     }
+
     /**
-    * 客户端版本信息
-    * @return \clientVersionHistory
-    */
-    public static function clientVersionHistory()
-    { 
-        static $a = null; 
+     * 客户端版本信息
+     * @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 \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 \tokenGift
-    */
-    public static function tokenGift()
-    { 
-        static $a = null; 
+     * 兑换码礼包
+     * @return \tokenGift
+     */
+    public static function tokenGift() {
+        static $a = null;
         return self::initValue($a, 'tokenGift');
     }
+
     /**
-    * @return \sm_tokenGift tokenGift item数据 
-    */
-    public static function tokenGift_getItem($itemid)
-    { 
+     * @return \sm_tokenGift tokenGift item数据
+     */
+    public static function tokenGift_getItem($itemid) {
         return self::get_hash_item('tokenGift', $itemid);
     }
+
     /**
-    * 活动配置
-    * @return \activity
-    */
-    public static function activity()
-    { 
-        static $a = null; 
+     * 活动配置
+     * @return \activity
+     */
+    public static function activity() {
+        static $a = null;
         return self::initValue($a, 'activity');
     }
+
     /**
-    * @return \sm_activity activity item数据 
-    */
-    public static function activity_getItem($itemid)
-    { 
+     * @return \sm_activity activity item数据
+     */
+    public static function activity_getItem($itemid) {
         return self::get_hash_item('activity', $itemid);
     }
+
     /**
-    * 任务卡商店
-    * @return \taskcard_shop
-    */
-    public static function taskcard_shop()
-    { 
-        static $a = null; 
+     * 任务卡商店
+     * @return \taskcard_shop
+     */
+    public static function taskcard_shop() {
+        static $a = null;
         return self::initValue($a, 'taskcard_shop');
     }
+
     /**
-    * @return \sm_taskcard_shop taskcard_shop item数据 
-    */
-    public static function taskcard_shop_getItem($itemid)
-    { 
+     * @return \sm_taskcard_shop taskcard_shop item数据
+     */
+    public static function taskcard_shop_getItem($itemid) {
         return self::get_hash_item('taskcard_shop', $itemid);
     }
+
     /**
-    * 碎片_按品质索引
-    * @return \segment_byPinzhi
-    */
-    public static function segment_byPinzhi()
-    { 
-        static $a = null; 
+     * 碎片_按品质索引
+     * @return \segment_byPinzhi
+     */
+    public static function segment_byPinzhi() {
+        static $a = null;
         return self::initValue($a, 'segment_byPinzhi');
     }
+
     /**
-    * @return \sm_segment_byPinzhi segment_byPinzhi item数据 
-    */
-    public static function segment_byPinzhi_getItem($quailty, $itemType)
-    { 
+     * @return \sm_segment_byPinzhi segment_byPinzhi item数据
+     */
+    public static function segment_byPinzhi_getItem($quailty, $itemType) {
         return self::get_hash_item('segment_byPinzhi', $quailty)->$itemType;
     }
+
     /**
-    * 
-    * @return \npc
-    */
-    public static function npc()
-    { 
-        static $a = null; 
+     *
+     * @return \npc
+     */
+    public static function npc() {
+        static $a = null;
         return self::initValue($a, 'npc');
     }
+
     /**
-    * @return \sm_npc npc item数据 
-    */
-    public static function npc_getItem($itemid)
-    { 
+     * @return \sm_npc npc item数据
+     */
+    public static function npc_getItem($itemid) {
         return self::get_hash_item('npc', $itemid);
     }
+
     /**
-    * 活动: 在线礼包
-    * @return \activity_onlinegift
-    */
-    public static function activity_onlinegift()
-    { 
-        static $a = null; 
+     * 活动: 在线礼包
+     * @return \activity_onlinegift
+     */
+    public static function activity_onlinegift() {
+        static $a = null;
         return self::initValue($a, 'activity_onlinegift');
     }
+
     /**
-    * @return \sm_activity_onlinegift activity_onlinegift item数据 
-    */
-    public static function activity_onlinegift_getItem($itemid)
-    { 
+     * @return \sm_activity_onlinegift activity_onlinegift item数据
+     */
+    public static function activity_onlinegift_getItem($itemid) {
         return self::get_hash_item('activity_onlinegift', $itemid);
     }
+
     /**
-    * GM号的UID
-    * @return \GM_uids
-    */
-    public static function GM_uids()
-    { 
-        static $a = null; 
+     * GM号的UID
+     * @return \GM_uids
+     */
+    public static function GM_uids() {
+        static $a = null;
         return self::initValue($a, 'GM_uids');
     }
+
     /**
-    * 活动, 全服注册礼包
-    * @return \activity_reggift
-    */
-    public static function activity_reggift()
-    { 
-        static $a = null; 
+     * 活动, 全服注册礼包
+     * @return \activity_reggift
+     */
+    public static function activity_reggift() {
+        static $a = null;
         return self::initValue($a, 'activity_reggift');
     }
+
     /**
-    * @return \sm_activity_reggift activity_reggift item数据 
-    */
-    public static function activity_reggift_getItem($itemid)
-    { 
+     * @return \sm_activity_reggift activity_reggift item数据
+     */
+    public static function activity_reggift_getItem($itemid) {
         return self::get_hash_item('activity_reggift', $itemid);
     }
+
     /**
-    * 错误信息表
-    * @return \errmsg
-    */
-    public static function errmsg()
-    { 
-        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 \sm_errmsg errmsg item数据
+     */
+    public static function errmsg_getItem($itemid) {
         return self::get_hash_item('errmsg', $itemid);
     }
+
     /**
-    * 公会捐献卡牌奖励
-    * @return \guilddonatereward
-    */
-    public static function guilddonatereward()
-    { 
-        static $a = null; 
+     * 公会捐献卡牌奖励
+     * @return \guilddonatereward
+     */
+    public static function guilddonatereward() {
+        static $a = null;
         return self::initValue($a, 'guilddonatereward');
     }
+
     /**
-    * @return \sm_guilddonatereward guilddonatereward item数据 
-    */
-    public static function guilddonatereward_getItem($itemid)
-    { 
+     * @return \sm_guilddonatereward guilddonatereward item数据
+     */
+    public static function guilddonatereward_getItem($itemid) {
         return self::get_hash_item('guilddonatereward', $itemid);
     }
+
     /**
-    * 公会等级相关数据
-    * @return \guildlevel
-    */
-    public static function guildlevel()
-    { 
-        static $a = null; 
+     * 公会等级相关数据
+     * @return \guildlevel
+     */
+    public static function guildlevel() {
+        static $a = null;
         return self::initValue($a, 'guildlevel');
     }
+
     /**
-    * @return \sm_guildlevel guildlevel item数据 
-    */
-    public static function guildlevel_getItem($itemid)
-    { 
+     * @return \sm_guildlevel guildlevel item数据
+     */
+    public static function guildlevel_getItem($itemid) {
         return self::get_hash_item('guildlevel', $itemid);
     }
+
     /**
-    * 公会礼包
-    * @return \guildlibao
-    */
-    public static function guildlibao()
-    { 
-        static $a = null; 
+     * 公会礼包
+     * @return \guildlibao
+     */
+    public static function guildlibao() {
+        static $a = null;
         return self::initValue($a, 'guildlibao');
     }
+
     /**
-    * @return \sm_guildlibao guildlibao item数据 
-    */
-    public static function guildlibao_getItem($itemid)
-    { 
+     * @return \sm_guildlibao guildlibao item数据
+     */
+    public static function guildlibao_getItem($itemid) {
         return self::get_hash_item('guildlibao', $itemid);
     }
+
     /**
-    * 玩家初始化数据
-    * @return \primordial_data
-    */
-    public static function primordial_data()
-    { 
-        static $a = null; 
+     * 玩家初始化数据
+     * @return \primordial_data
+     */
+    public static function primordial_data() {
+        static $a = null;
         return self::initValue($a, 'primordial_data');
     }
+
     /**
-    * 英雄技能升级的限定
-    * @return \heroextra_skill_lv_limit
-    */
-    public static function heroextra_skill_lv_limit()
-    { 
-        static $a = null; 
+     * 英雄技能升级的限定
+     * @return \heroextra_skill_lv_limit
+     */
+    public static function heroextra_skill_lv_limit() {
+        static $a = null;
         return self::initValue($a, 'heroextra_skill_lv_limit');
     }
+
     /**
-    * @return \sm_heroextra_skill_lv_limit heroextra_skill_lv_limit item数据 
-    */
-    public static function heroextra_skill_lv_limit_getItem($itemid)
-    { 
+     * @return \sm_heroextra_skill_lv_limit heroextra_skill_lv_limit item数据
+     */
+    public static function heroextra_skill_lv_limit_getItem($itemid) {
         return self::get_hash_item('heroextra_skill_lv_limit', $itemid);
     }
+
     /**
-    * 武器类道具
-    * @return \item_weapon
-    */
-    public static function item_weapon()
-    { 
-        static $a = null; 
+     * 武器类道具
+     * @return \item_weapon
+     */
+    public static function item_weapon() {
+        static $a = null;
         return self::initValue($a, 'item_weapon');
     }
+
     /**
-    * @return \sm_item_weapon item_weapon item数据 
-    */
-    public static function item_weapon_getItem($itemid)
-    { 
+     * @return \sm_item_weapon item_weapon item数据
+     */
+    public static function item_weapon_getItem($itemid) {
         return self::get_hash_item('item_weapon', $itemid);
     }
+
     /**
-    * 礼包类道具
-    * @return \item_package
-    */
-    public static function item_package()
-    { 
-        static $a = null; 
+     * 礼包类道具
+     * @return \item_package
+     */
+    public static function item_package() {
+        static $a = null;
         return self::initValue($a, 'item_package');
     }
+
     /**
-    * @return \sm_item_package item_package item数据 
-    */
-    public static function item_package_getItem($itemid)
-    { 
+     * @return \sm_item_package item_package item数据
+     */
+    public static function item_package_getItem($itemid) {
         return self::get_hash_item('item_package', $itemid);
     }
+
     /**
-    * 强化类道具
-    * @return \item_stones
-    */
-    public static function item_stones()
-    { 
-        static $a = null; 
+     * 强化类道具
+     * @return \item_stones
+     */
+    public static function item_stones() {
+        static $a = null;
         return self::initValue($a, 'item_stones');
     }
+
     /**
-    * @return \sm_item_stones item_stones item数据 
-    */
-    public static function item_stones_getItem($itemid)
-    { 
+     * @return \sm_item_stones item_stones item数据
+     */
+    public static function item_stones_getItem($itemid) {
         return self::get_hash_item('item_stones', $itemid);
     }
+
     /**
-    * 药水类道具
-    * @return \item_pills
-    */
-    public static function item_pills()
-    { 
-        static $a = null; 
+     * 药水类道具
+     * @return \item_pills
+     */
+    public static function item_pills() {
+        static $a = null;
         return self::initValue($a, 'item_pills');
     }
+
     /**
-    * @return \sm_item_pills item_pills item数据 
-    */
-    public static function item_pills_getItem($itemid)
-    { 
+     * @return \sm_item_pills item_pills item数据
+     */
+    public static function item_pills_getItem($itemid) {
         return self::get_hash_item('item_pills', $itemid);
     }
+
     /**
-    * buff类道具
-    * @return \item_buffcard
-    */
-    public static function item_buffcard()
-    { 
-        static $a = null; 
+     * buff类道具
+     * @return \item_buffcard
+     */
+    public static function item_buffcard() {
+        static $a = null;
         return self::initValue($a, 'item_buffcard');
     }
+
     /**
-    * @return \sm_item_buffcard item_buffcard item数据 
-    */
-    public static function item_buffcard_getItem($itemid)
-    { 
+     * @return \sm_item_buffcard item_buffcard item数据
+     */
+    public static function item_buffcard_getItem($itemid) {
         return self::get_hash_item('item_buffcard', $itemid);
     }
+
     /**
-    * 碎片类道具
-    * @return \item_segment
-    */
-    public static function item_segment()
-    { 
-        static $a = null; 
+     * 碎片类道具
+     * @return \item_segment
+     */
+    public static function item_segment() {
+        static $a = null;
         return self::initValue($a, 'item_segment');
     }
+
     /**
-    * @return \sm_item_segment item_segment item数据 
-    */
-    public static function item_segment_getItem($itemid)
-    { 
+     * @return \sm_item_segment item_segment item数据
+     */
+    public static function item_segment_getItem($itemid) {
         return self::get_hash_item('item_segment', $itemid);
     }
+
     /**
-    * 道具通用字段表
-    * @return \item_base
-    */
-    public static function item_base()
-    { 
-        static $a = null; 
+     * 道具通用字段表
+     * @return \item_base
+     */
+    public static function item_base() {
+        static $a = null;
         return self::initValue($a, 'item_base');
     }
+
     /**
-    * @return \sm_item_base item_base item数据 
-    */
-    public static function item_base_getItem($itemid)
-    { 
+     * @return \sm_item_base item_base item数据
+     */
+    public static function item_base_getItem($itemid) {
         return self::get_hash_item('item_base', $itemid);
     }
+
     /**
-    * 子技能表
-    * @return \subSkill
-    */
-    public static function subSkill()
-    { 
-        static $a = null; 
+     * 子技能表
+     * @return \subSkill
+     */
+    public static function subSkill() {
+        static $a = null;
         return self::initValue($a, 'subSkill');
     }
+
     /**
-    * @return \sm_subSkill subSkill item数据 
-    */
-    public static function subSkill_getItem($itemid)
-    { 
+     * @return \sm_subSkill subSkill item数据
+     */
+    public static function subSkill_getItem($itemid) {
         return self::get_hash_item('subSkill', $itemid);
     }
+
     /**
-    * 宝箱类道具
-    * @return \item_box
-    */
-    public static function item_box()
-    { 
-        static $a = null; 
+     * 宝箱类道具
+     * @return \item_box
+     */
+    public static function item_box() {
+        static $a = null;
         return self::initValue($a, 'item_box');
     }
+
     /**
-    * @return \sm_item_box item_box item数据 
-    */
-    public static function item_box_getItem($itemid)
-    { 
+     * @return \sm_item_box item_box item数据
+     */
+    public static function item_box_getItem($itemid) {
         return self::get_hash_item('item_box', $itemid);
     }
+
     /**
-    * 关卡-通关条件
-    * @return \gate_passCondition
-    */
-    public static function gate_passCondition()
-    { 
-        static $a = null; 
+     * 关卡-通关条件
+     * @return \gate_passCondition
+     */
+    public static function gate_passCondition() {
+        static $a = null;
         return self::initValue($a, 'gate_passCondition');
     }
+
     /**
-    * @return \sm_gate_passCondition gate_passCondition item数据 
-    */
-    public static function gate_passCondition_getItem($itemid)
-    { 
+     * @return \sm_gate_passCondition gate_passCondition item数据
+     */
+    public static function gate_passCondition_getItem($itemid) {
         return self::get_hash_item('gate_passCondition', $itemid);
     }
+
     /**
-    * 元素相克关系表
-    * @return \attack_relation
-    */
-    public static function attack_relation()
-    { 
-        static $a = null; 
+     * 元素相克关系表
+     * @return \attack_relation
+     */
+    public static function attack_relation() {
+        static $a = null;
         return self::initValue($a, 'attack_relation');
     }
+
     /**
-    * @return \sm_attack_relation attack_relation item数据 
-    */
-    public static function attack_relation_getItem($attack1, $attack2)
-    { 
+     * @return \sm_attack_relation attack_relation item数据
+     */
+    public static function attack_relation_getItem($attack1, $attack2) {
         return self::get_hash_item('attack_relation', "$attack1-$attack2");
     }
+
     /**
-    * 战斗力榜全服突破奖励
-    * @return \rankreward_fpower
-    */
-    public static function rankreward_fpower()
-    { 
-        static $a = null; 
+     * 战斗力榜全服突破奖励
+     * @return \rankreward_fpower
+     */
+    public static function rankreward_fpower() {
+        static $a = null;
         return self::initValue($a, 'rankreward_fpower');
     }
+
     /**
-    * @return \sm_rankreward_fpower rankreward_fpower item数据 
-    */
-    public static function rankreward_fpower_getItem($itemid)
-    { 
+     * @return \sm_rankreward_fpower rankreward_fpower item数据
+     */
+    public static function rankreward_fpower_getItem($itemid) {
         return self::get_hash_item('rankreward_fpower', $itemid);
     }
+
     /**
-    * 合体技能
-    * @return \skill_cross
-    */
-    public static function skill_cross()
-    { 
-        static $a = null; 
+     * 合体技能
+     * @return \skill_cross
+     */
+    public static function skill_cross() {
+        static $a = null;
         return self::initValue($a, 'skill_cross');
     }
+
     /**
-    * @return \sm_skill_cross skill_cross item数据 
-    */
-    public static function skill_cross_getItem($itemid)
-    { 
+     * @return \sm_skill_cross skill_cross item数据
+     */
+    public static function skill_cross_getItem($itemid) {
         return self::get_hash_item('skill_cross', $itemid);
     }
+
     /**
-    * 通关榜突破奖励
-    * @return \rankreward_passgate
-    */
-    public static function rankreward_passgate()
-    { 
-        static $a = null; 
+     * 通关榜突破奖励
+     * @return \rankreward_passgate
+     */
+    public static function rankreward_passgate() {
+        static $a = null;
         return self::initValue($a, 'rankreward_passgate');
     }
+
     /**
-    * @return \sm_rankreward_passgate rankreward_passgate item数据 
-    */
-    public static function rankreward_passgate_getItem($itemid)
-    { 
+     * @return \sm_rankreward_passgate rankreward_passgate item数据
+     */
+    public static function rankreward_passgate_getItem($itemid) {
         return self::get_hash_item('rankreward_passgate', $itemid);
     }
+
     /**
-    * 言灵召唤书
-    * @return \item_yanlingbook
-    */
-    public static function item_yanlingbook()
-    { 
-        static $a = null; 
+     * 言灵召唤书
+     * @return \item_yanlingbook
+     */
+    public static function item_yanlingbook() {
+        static $a = null;
         return self::initValue($a, 'item_yanlingbook');
     }
+
     /**
-    * @return \sm_item_yanlingbook item_yanlingbook item数据 
-    */
-    public static function item_yanlingbook_getItem($itemid)
-    { 
+     * @return \sm_item_yanlingbook item_yanlingbook item数据
+     */
+    public static function item_yanlingbook_getItem($itemid) {
         return self::get_hash_item('item_yanlingbook', $itemid);
     }
+
     /**
-    * 言灵进阶表
-    * @return \yanling_upgrade
-    */
-    public static function yanling_upgrade()
-    { 
-        static $a = null; 
+     * 言灵进阶表
+     * @return \yanling_upgrade
+     */
+    public static function yanling_upgrade() {
+        static $a = null;
         return self::initValue($a, 'yanling_upgrade');
     }
+
     /**
-    * @return \sm_yanling_upgrade yanling_upgrade item数据 
-    */
-    public static function yanling_upgrade_getItem($typeId, $grade)
-    { 
+     * @return \sm_yanling_upgrade yanling_upgrade item数据
+     */
+    public static function yanling_upgrade_getItem($typeId, $grade) {
         return self::get_hash_item('yanling_upgrade', $typeId)->$grade;
     }
+
     /**
-    * 功能引导模块
-    * @return \guide_module
-    */
-    public static function guide_module()
-    { 
-        static $a = null; 
+     * 功能引导模块
+     * @return \guide_module
+     */
+    public static function guide_module() {
+        static $a = null;
         return self::initValue($a, 'guide_module');
     }
+
     /**
-    * @return \sm_guide_module guide_module item数据 
-    */
-    public static function guide_module_getItem($itemid)
-    { 
+     * @return \sm_guide_module guide_module item数据
+     */
+    public static function guide_module_getItem($itemid) {
         return self::get_hash_item('guide_module', $itemid);
     }
+
     /**
-    * 活动: 七日签到
-    * @return \activity_day7
-    */
-    public static function activity_day7()
-    { 
-        static $a = null; 
+     * 活动: 七日签到
+     * @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 \sm_activity_day7 activity_day7 item数据
+     */
+    public static function activity_day7_getItem($itemid) {
         return self::get_hash_item('activity_day7', $itemid);
     }
+
     /**
-    * 限购商城
-    * @return \shop_limit
-    */
-    public static function shop_limit()
-    { 
-        static $a = null; 
+     * 限购商城
+     * @return \shop_limit
+     */
+    public static function shop_limit() {
+        static $a = null;
         return self::initValue($a, 'shop_limit');
     }
+
     /**
-    * @return \sm_shop_limit shop_limit item数据 
-    */
-    public static function shop_limit_getItem($itemid)
-    { 
+     * @return \sm_shop_limit shop_limit item数据
+     */
+    public static function shop_limit_getItem($itemid) {
         return self::get_hash_item('shop_limit', $itemid);
     }
+
     /**
-    * 月卡商城
-    * @return \shop_monthVIP
-    */
-    public static function shop_monthVIP()
-    { 
-        static $a = null; 
+     * 月卡商城
+     * @return \shop_monthVIP
+     */
+    public static function shop_monthVIP() {
+        static $a = null;
         return self::initValue($a, 'shop_monthVIP');
     }
+
     /**
-    * @return \sm_shop_monthVIP shop_monthVIP item数据 
-    */
-    public static function shop_monthVIP_getItem($itemid)
-    { 
+     * @return \sm_shop_monthVIP shop_monthVIP item数据
+     */
+    public static function shop_monthVIP_getItem($itemid) {
         return self::get_hash_item('shop_monthVIP', $itemid);
     }
+
     /**
-    * 掉落数据表
-    * @return \drop
-    */
-    public static function drop()
-    { 
-        static $a = null; 
+     * 掉落数据表
+     * @return \drop
+     */
+    public static function drop() {
+        static $a = null;
         return self::initValue($a, 'drop');
     }
+
     /**
-    * @return \sm_drop drop item数据 
-    */
-    public static function drop_getItem($itemid)
-    { 
+     * @return \sm_drop drop item数据
+     */
+    public static function drop_getItem($itemid) {
         return self::get_hash_item('drop', $itemid);
     }
+
     /**
-    * 
-    * @return \item_stones_type
-    */
-    public static function item_stones_type()
-    { 
-        static $a = null; 
+     *
+     * @return \item_stones_type
+     */
+    public static function item_stones_type() {
+        static $a = null;
         return self::initValue($a, 'item_stones_type');
     }
+
     /**
-    * @return \sm_item_stones_type item_stones_type itemArray 
-    */
-    public static function item_stones_type_getItemArray($key)
-    { 
+     * @return \sm_item_stones_type item_stones_type itemArray
+     */
+    public static function item_stones_type_getItemArray($key) {
         return self::get_hash_item('item_stones_type', $key);
     }
+
     /**
-    * 
-    * @return \yanlingLevel_type
-    */
-    public static function yanlingLevel_type()
-    { 
-        static $a = null; 
+     *
+     * @return \yanlingLevel_type
+     */
+    public static function yanlingLevel_type() {
+        static $a = null;
         return self::initValue($a, 'yanlingLevel_type');
     }
+
     /**
-    * @return \sm_yanlingLevel_type yanlingLevel_type item数据 
-    */
-    public static function yanlingLevel_type_getItem($type, $level)
-    { 
+     * @return \sm_yanlingLevel_type yanlingLevel_type item数据
+     */
+    public static function yanlingLevel_type_getItem($type, $level) {
         return self::get_hash_item('yanlingLevel_type', $type)->$level;
     }
+
     /**
-    * 言灵突破
-    * @return \yanlingextra_level
-    */
-    public static function yanlingextra_level()
-    { 
-        static $a = null; 
+     * 言灵突破
+     * @return \yanlingextra_level
+     */
+    public static function yanlingextra_level() {
+        static $a = null;
         return self::initValue($a, 'yanlingextra_level');
     }
+
     /**
-    * @return \sm_yanlingextra_level yanlingextra_level item数据 
-    */
-    public static function yanlingextra_level_getItem($yanlingId, $starLv)
-    { 
+     * @return \sm_yanlingextra_level yanlingextra_level item数据
+     */
+    public static function yanlingextra_level_getItem($yanlingId, $starLv) {
         return self::get_hash_item('yanlingextra_level', $yanlingId)->$starLv;
     }
+
     /**
-    * 世界boss排名奖励
-    * @return \worldboss_rankreward
-    */
-    public static function worldboss_rankreward()
-    { 
-        static $a = null; 
+     * 世界boss排名奖励
+     * @return \worldboss_rankreward
+     */
+    public static function worldboss_rankreward() {
+        static $a = null;
         return self::initValue($a, 'worldboss_rankreward');
     }
+
     /**
-    * @return \sm_worldboss_rankreward worldboss_rankreward item数据 
-    */
-    public static function worldboss_rankreward_getItem($itemid)
-    { 
+     * @return \sm_worldboss_rankreward worldboss_rankreward item数据
+     */
+    public static function worldboss_rankreward_getItem($itemid) {
         return self::get_hash_item('worldboss_rankreward', $itemid);
     }
+
     /**
-    * 当前版本(时间戳)
-    * @return \ver
-    */
-    public static function ver()
-    { 
-        static $a = null; 
+     * 世界boss排名奖励2
+     * @return \worldboss_rankreward2
+     */
+    public static function worldboss_rankreward2() {
+        static $a = null;
+        return self::initValue($a, 'worldboss_rankreward2');
+    }
+
+    /**
+     * @return \sm_worldboss_rankreward2 worldboss_rankreward2 item数据
+     */
+    public static function worldboss_rankreward2_getItem($itemid) {
+        return self::get_hash_item('worldboss_rankreward2', $itemid);
+    }
+
+    /**
+     * 当前版本(时间戳)
+     * @return \ver
+     */
+    public static function ver() {
+        static $a = null;
         return self::initValue($a, 'ver', false);
     }
+
     /**
-    * 客户端配置数据
-    * @return \client
-    */
-    public static function client()
-    { 
-        static $a = null; 
+     * 客户端配置数据
+     * @return \client
+     */
+    public static function client() {
+        static $a = null;
         return self::initValue($a, 'client', false);
     }
-}
 
+}

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

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2021-07-09 10:11:53
+ // 日期: 2021-07-09 11:46:43
 ////////////////////
 
 /**

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

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2021-05-27 20:49:31
+ // 日期: 2021-07-09 11:19:58
 ////////////////////
 
 

+ 22 - 5
Gameserver/Amfphp/process/FightProc.php

@@ -85,21 +85,22 @@ class FightProc {
      */
     static function GetWorldBossRank() {
         $zoneid = req()->zoneid;
-        $key = MemKey_GameRun::Game_WorldBossRank($zoneid);
+        list($bossId) = req()->paras;                                           # 提取参数bossid.
+        $key = MemKey_GameRun::Game_WorldBoss_X_Rank($zoneid, $bossId);
         $rank = gMem()->zrange($key, 0, 50, true);
         return Resp::ok(array('rank' => $rank));
     }
 
-    static function SettleWorldBoss($zoneId) {
-        $key = MemKey_GameRun::Game_WorldBossRank($zoneId);
+    static function SettleWorldBoss($zoneId, $bossid) {
+        $key = MemKey_GameRun::Game_WorldBoss_X_Rank($zoneId, $bossid);
         $range = gMem()->zrange($key, 0, -1);                                   # 全部取出(暂时这么写吧)
         $i = 1;
         foreach ($range as $uid_name) {
-            $rwd = self::getWorldbossRankReward($i);
+            $rwd = $bossid == 2 ? self::getWorldbossRankReward2($i) : self::getWorldbossRankReward($i);
             $uid = substr($uid_name, 0, strpos($uid_name, "__"));
             EmailProc::SendWorldBossReward($zoneId, $uid, $i++, $rwd->rankName, $rwd->reward);
         }
-        CLog::info("世界Boss已结算,未更新结算标记(防止重复发放).");
+        CLog::info("世界Boss($bossid)已结算,未更新结算标记(防止重复发放).");
     }
 
     /**
@@ -118,6 +119,22 @@ class FightProc {
         return $arr[max(array_keys($arr))];
     }
 
+    /**
+     * 按排名查询上榜奖励配置对象
+     * @param type $index
+     * @return \sm_worldboss_rankreward2
+     */
+    static function getWorldbossRankReward2($index) {
+        $arr = (array) GameConfig::worldboss_rankreward2();
+        foreach ($arr as $i => $v) {
+            isEditor() and $v = new \sm_worldboss_rankreward2();
+            if ($index >= $v->minRank && $index <= $v->maxRank) {
+                return $v;
+            }
+        }
+        return $arr[max(array_keys($arr))];
+    }
+
 // </editor-fold>
 //
 // <editor-fold defaultstate="collapsed" desc=" 无尽塔 ">

+ 2 - 2
Gameserver/Amfphp/service_call/InquireApi/WorldBosSettle.php

@@ -7,6 +7,6 @@ include_once __DIR__ . '/../../main.php';
 $data = query_paras();
 
 $zoneId = $data["zoneid"];
-
-FightProc::SettleWorldBoss($zoneId);
+$bossid = $data["bossid"];
+FightProc::SettleWorldBoss($zoneId, $bossid);
 echo 'ok';