王刚 1 year ago
parent
commit
ede4b831db
100 changed files with 14850 additions and 0 deletions
  1. 3 0
      .gitignore
  2. 9 0
      DevOps/Readme.txt
  3. 84 0
      DevOps/docker-compose.yml
  4. 26 0
      DevOps/etc/mysql/Dockerfile
  5. 303 0
      DevOps/etc/mysql/ylsj2019_pay_dev.sql
  6. 13 0
      DevOps/etc/nginx/cert/options-ssl-nginx.conf
  7. 25 0
      DevOps/etc/nginx/conf.d/common.conf
  8. 20 0
      DevOps/etc/nginx/conf.d/common.conf.bak
  9. 7 0
      DevOps/etc/nginx/conf.d/ext/header.conf
  10. 12 0
      DevOps/etc/nginx/conf.d/ext/proxy.conf
  11. 16 0
      DevOps/etc/nginx/conf.d/ext/ssl.conf
  12. 57 0
      DevOps/etc/nginx/conf.d/vhost/yourdomain.com.conf
  13. 31 0
      DevOps/etc/php/dockerfile/56/Dockerfile
  14. 5 0
      DevOps/etc/php/dockerfile/56/php_extra.ini
  15. 1 0
      DevOps/etc/php/dockerfile/56/php_mongo.ini
  16. 35 0
      DevOps/etc/php/dockerfile/81/Dockerfile
  17. 55 0
      DevOps/etc/php/dockerfile/81/php_extra.ini
  18. 59 0
      DevOps/etc/php/php-fpm.d/php-fpm.conf
  19. 25 0
      DevOps/etc/redis/Dockerfile
  20. 12 0
      DevOps/etc/redis/port6379.conf
  21. 293 0
      DevOps/mnt/data/log/192.168.10.86.log
  22. 40 0
      DevOps/mnt/data/log/error_openresty.log
  23. 6 0
      DevOps/mnt/data/log/localhost.log
  24. 0 0
      DevOps/mnt/data/log/php-fpm.log
  25. 1 0
      DevOps/mnt/data/log/readme.txt
  26. 179 0
      DevOps/mnt/data/log/wanggang.com.log
  27. 56 0
      Gameserver/Amfphp/AutoLoad.php
  28. 173 0
      Gameserver/Amfphp/Services/AppServer.php
  29. 240 0
      Gameserver/Amfphp/Services/TestServer.php
  30. 1472 0
      Gameserver/Amfphp/base/CmdCode.php
  31. 1772 0
      Gameserver/Amfphp/base/ErrCode.php
  32. 81 0
      Gameserver/Amfphp/base/HashSaver.php
  33. 17 0
      Gameserver/Amfphp/base/Include.php
  34. 290 0
      Gameserver/Amfphp/base/MemKey_GameRun.php
  35. 111 0
      Gameserver/Amfphp/base/MemKey_Guild.php
  36. 333 0
      Gameserver/Amfphp/base/MemKey_User.php
  37. 100 0
      Gameserver/Amfphp/base/Object_ext.php
  38. 113 0
      Gameserver/Amfphp/base/OpeCode.php
  39. 187 0
      Gameserver/Amfphp/base/Req.php
  40. 145 0
      Gameserver/Amfphp/base/Resp.php
  41. 102 0
      Gameserver/Amfphp/config.php
  42. 2009 0
      Gameserver/Amfphp/configs/GameConfig.php
  43. 92 0
      Gameserver/Amfphp/configs/GameConstants.php
  44. 57 0
      Gameserver/Amfphp/configs/config_dev.php
  45. 72 0
      Gameserver/Amfphp/configs/config_dev_wg.php
  46. 8 0
      Gameserver/Amfphp/configs/defines/const_dev.php
  47. 8 0
      Gameserver/Amfphp/configs/defines/const_dev_wg.php
  48. 151 0
      Gameserver/Amfphp/index.php
  49. 169 0
      Gameserver/Amfphp/main.php
  50. 27 0
      Gameserver/Amfphp/model/Const/GM_uids.php
  51. 1981 0
      Gameserver/Amfphp/model/Const/GameConfig.php
  52. 559 0
      Gameserver/Amfphp/model/Const/globalsettings.php
  53. 87 0
      Gameserver/Amfphp/model/Const/primordial_data.php
  54. 47 0
      Gameserver/Amfphp/model/Const/sm_PaiMingReward_fpower.php
  55. 47 0
      Gameserver/Amfphp/model/Const/sm_PaiMingReward_level.php
  56. 72 0
      Gameserver/Amfphp/model/Const/sm_activity.php
  57. 37 0
      Gameserver/Amfphp/model/Const/sm_activity_day7.php
  58. 47 0
      Gameserver/Amfphp/model/Const/sm_activity_levelgift.php
  59. 47 0
      Gameserver/Amfphp/model/Const/sm_activity_onlinegift.php
  60. 52 0
      Gameserver/Amfphp/model/Const/sm_activity_reggift.php
  61. 47 0
      Gameserver/Amfphp/model/Const/sm_activity_tiligift.php
  62. 32 0
      Gameserver/Amfphp/model/Const/sm_attack_relation.php
  63. 72 0
      Gameserver/Amfphp/model/Const/sm_build.php
  64. 63 0
      Gameserver/Amfphp/model/Const/sm_cfg_duplicate_defense.php
  65. 32 0
      Gameserver/Amfphp/model/Const/sm_clientVersionHistory.php
  66. 42 0
      Gameserver/Amfphp/model/Const/sm_college.php
  67. 42 0
      Gameserver/Amfphp/model/Const/sm_course.php
  68. 37 0
      Gameserver/Amfphp/model/Const/sm_drop.php
  69. 63 0
      Gameserver/Amfphp/model/Const/sm_duplicate_defense.php
  70. 32 0
      Gameserver/Amfphp/model/Const/sm_eHeroAddProperties.php
  71. 48 0
      Gameserver/Amfphp/model/Const/sm_endless_tower.php
  72. 37 0
      Gameserver/Amfphp/model/Const/sm_errmsg.php
  73. 35 0
      Gameserver/Amfphp/model/Const/sm_eventAction.php
  74. 37 0
      Gameserver/Amfphp/model/Const/sm_expandStoreNum.php
  75. 242 0
      Gameserver/Amfphp/model/Const/sm_gate.php
  76. 77 0
      Gameserver/Amfphp/model/Const/sm_gate_combat.php
  77. 57 0
      Gameserver/Amfphp/model/Const/sm_gate_mainland.php
  78. 38 0
      Gameserver/Amfphp/model/Const/sm_gate_passCondition.php
  79. 37 0
      Gameserver/Amfphp/model/Const/sm_gate_starreward.php
  80. 42 0
      Gameserver/Amfphp/model/Const/sm_gate_zone.php
  81. 107 0
      Gameserver/Amfphp/model/Const/sm_gatelevel.php
  82. 57 0
      Gameserver/Amfphp/model/Const/sm_gemProperty.php
  83. 57 0
      Gameserver/Amfphp/model/Const/sm_gem_formula.php
  84. 42 0
      Gameserver/Amfphp/model/Const/sm_gem_researchlevel.php
  85. 37 0
      Gameserver/Amfphp/model/Const/sm_goldexchange.php
  86. 77 0
      Gameserver/Amfphp/model/Const/sm_guide_module.php
  87. 67 0
      Gameserver/Amfphp/model/Const/sm_guide_trigger.php
  88. 42 0
      Gameserver/Amfphp/model/Const/sm_guilddonatereward.php
  89. 37 0
      Gameserver/Amfphp/model/Const/sm_guildlevel.php
  90. 72 0
      Gameserver/Amfphp/model/Const/sm_guildlibao.php
  91. 387 0
      Gameserver/Amfphp/model/Const/sm_hero.php
  92. 52 0
      Gameserver/Amfphp/model/Const/sm_hero_levelexp.php
  93. 37 0
      Gameserver/Amfphp/model/Const/sm_hero_levelexp_costitem.php
  94. 77 0
      Gameserver/Amfphp/model/Const/sm_heroextra_dengjie.php
  95. 117 0
      Gameserver/Amfphp/model/Const/sm_heroextra_level.php
  96. 117 0
      Gameserver/Amfphp/model/Const/sm_heroextra_level_tupo.php
  97. 27 0
      Gameserver/Amfphp/model/Const/sm_heroextra_skill_lv_limit.php
  98. 67 0
      Gameserver/Amfphp/model/Const/sm_item_additional.php
  99. 157 0
      Gameserver/Amfphp/model/Const/sm_item_base.php
  100. 27 0
      Gameserver/Amfphp/model/Const/sm_item_box.php

+ 3 - 0
.gitignore

@@ -0,0 +1,3 @@
+/Gameserver/Public/gamesys/nbproject/private/
+/Gameserver/nbproject/private/
+/Gameserver/vendor/

+ 9 - 0
DevOps/Readme.txt

@@ -0,0 +1,9 @@
+DevOps 之Ops(it运维人员)
+
+# 维护者 gwang gwang<wanggangzero@qq.com> -2022.8.1
+
+这个目录下的内容是给ops用的.
+
+要求环境: docker + compose / Windows下安装docker desktop即可.
+
+启动命令: docker-compose up -d

+ 84 - 0
DevOps/docker-compose.yml

@@ -0,0 +1,84 @@
+version: "3"
+
+services:
+  php-fpm:
+    build: ./etc/php/dockerfile/81/
+    image: domp-php
+    container_name: php-fpm
+    environment:
+      TZ: Asia/Shanghai
+    volumes:
+      - ./etc/php/php-fpm.d/php-fpm.conf:/usr/local/etc/php-fpm.conf
+      - ./mnt/shm:/dev/shm
+      - ./mnt/data:/data
+      - ./mnt/tmp:/tmp
+      - ./../../:/wwwroot
+    depends_on:
+      - redis
+      - mongodb
+      - mysql
+    restart: always
+
+  openresty:
+    container_name: openresty
+    image: openresty/openresty:centos     # 开发环境
+    #image: openresty/openresty:latest     # 生产环境
+    environment:
+      TZ: Asia/Shanghai
+    volumes:
+      - ./etc/nginx/conf.d:/etc/nginx/conf.d
+      - ./etc/nginx/cert:/etc/nginx/cert
+      - ./mnt/shm:/dev/shm
+      - ./mnt/data:/data
+      - ./mnt/tmp:/tmp
+      - ./../../:/wwwroot
+    ports:
+      - 0.0.0.0:80:80
+    depends_on:
+      - php-fpm
+    privileged: true
+    restart: always
+
+  redis:
+    build: ./etc/redis/
+    container_name: redis
+    image: domp-redis
+    #command: --requirepass wanggang1985    # 覆盖密码
+    # volumes:                              # 覆盖路径 
+    #   - D:\\docker_mnt\\data\\redis:/data/redis
+    #   - ./etc/redis/port6379.conf:/usr/local/etc/redis/redis.conf
+    restart: always
+
+  mongodb:
+    container_name: mongodb
+    image: mongo:latest
+    restart: always
+    command: --wiredTigerCacheSizeGB 0.25
+    # 其实也可以像redis 一样把配置文件搞进去或者是映射成路径, 懒得搞了    
+    environment:
+      MONGO_INITDB_ROOT_USERNAME: gwang
+      MONGO_INITDB_ROOT_PASSWORD: wanggang1985
+
+  mysql:
+    build: ./etc/mysql/
+    container_name: mysql
+    image: domp-mysql
+    restart: always
+    ports:
+      - 3306:3306
+    # 这里mysql需要初始化一下数据库和表结构. sql文件是dockerfile提前拷贝过去的, 
+    # 也可以通过后期执行脚本docker cp xx container:/data/xx
+    command: --init-file=/tmp/ylsj2019_pay_dev.sql
+    environment:
+      MYSQL_ROOT_PASSWORD: wanggang1985
+      MYSQL_DATABASE: ylsj2019_pay_dev
+      MYSQL_USER: gwang
+      MYSQL_PASSWORD: wanggang1985
+
+  # phpmyadmin:
+  #   image: phpmyadmin:fpm-alpine
+  #   restart: always
+  #   ports:
+  #     - 8080:80
+  #   environment:
+  #     - PMA_ARBITRARY=1

+ 26 - 0
DevOps/etc/mysql/Dockerfile

@@ -0,0 +1,26 @@
+ FROM mariadb:latest
+
+ # 维护者 gwang -2022.4.26
+MAINTAINER gwang<wanggangzero@qq.com>
+
+# 设置时区
+ENV TZ=Asia/Shanghai 
+
+# 复制数据库结构代码到	
+COPY ylsj2019_pay_dev.sql /tmp/ylsj2019_pay_dev.sql	
+
+#RUN mysql -uroot -pwanggang1985 ylsj2019_pay_dev < /tmp/ylsj2019_pay_dev.sql
+
+
+####################################################################################################
+# Usage:                                                                                           #
+#                                                                                                  #
+# docker build -t "wg/mysql:latest" mysql                                                          #
+#                                                                                                  #
+# docker run -d --name="mysql" -p=3306:3306 --restart=always -e MARIADB_DATABASE=ylsj2019_pay_dev  \
+#      -e MARIADB_ROOT_PASSWORD=wanggang1985 -e MARIADB_USER=gwang -e MARIADB_PASSWORD=wanggang1985 \
+#         wg/mysql:new --init-file=/tmp/ylsj2019_pay_dev.sql     
+#
+#                                                                                                  #
+#################################################################################################### 
+

+ 303 - 0
DevOps/etc/mysql/ylsj2019_pay_dev.sql

@@ -0,0 +1,303 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : 言灵测试(新)
+ Source Server Type    : MySQL
+ Source Server Version : 80021
+ Source Host           : ylsjtt.game7000.com:3306
+ Source Schema         : ylsj2019_pay_dev
+
+ Target Server Type    : MySQL
+ Target Server Version : 80021
+ File Encoding         : 65001
+
+ Date: 26/07/2022 15:15:52
+*/
+use ylsj2019_pay_dev;
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for ddt_cmd_info
+-- ----------------------------
+DROP TABLE IF EXISTS `ddt_cmd_info`;
+CREATE TABLE `ddt_cmd_info`  (
+  `name` int NULL DEFAULT NULL,
+  `cmd` int NULL DEFAULT NULL,
+  `z` int NULL DEFAULT NULL,
+  `info` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Table structure for tab_auctionitems
+-- ----------------------------
+DROP TABLE IF EXISTS `tab_auctionitems`;
+CREATE TABLE `tab_auctionitems`  (
+  `itemid` int NOT NULL AUTO_INCREMENT COMMENT '拍品Id',
+  `zoneid` int NOT NULL DEFAULT 1,
+  `contents` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '内容',
+  `startprice` int NOT NULL COMMENT '底价',
+  `addstep` int NOT NULL DEFAULT 1 COMMENT '加价幅度',
+  `reserveprice` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '保留价',
+  `buyoutPrice` int NOT NULL DEFAULT 0 COMMENT '一口价',
+  `startts` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '开始时间',
+  `endts` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '结束时间',
+  `sellerid` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '卖家Id',
+  `sellername` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '卖家昵称',
+  `auchistory` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '出价历史',
+  `currprice` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '当前出价',
+  `currpeopleid` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '当前出价人Id',
+  `currpeoplename` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '当前出价人昵称',
+  `result` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '结果: 成交 or 失败',
+  PRIMARY KEY (`itemid`) USING BTREE,
+  INDEX `Index 2`(`zoneid`) USING BTREE,
+  INDEX `Index 3`(`startts`) USING BTREE,
+  INDEX `endts`(`endts`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '拍卖物品表, 2021.6.21 添加' ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Table structure for tab_guild
+-- ----------------------------
+DROP TABLE IF EXISTS `tab_guild`;
+CREATE TABLE `tab_guild`  (
+  `id` int NOT NULL AUTO_INCREMENT,
+  `guildId` int NOT NULL DEFAULT 0 COMMENT '公会编号',
+  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '公会名称',
+  `createts` int NULL DEFAULT NULL COMMENT '创建时间',
+  `level` int NOT NULL COMMENT '公会等级',
+  `declare` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '公会宗旨',
+  `membercount` int NOT NULL,
+  `chairman_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '会长的openID',
+  `chairman_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '会长的昵称',
+  `zoneid` int NOT NULL DEFAULT 0 COMMENT '分区id',
+  `guild_img` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+  `cupScore` int NOT NULL,
+  `enableQuickIn` int NOT NULL,
+  `condition` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`id`, `guildId`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '公会表' ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Table structure for tab_mailrecord
+-- ----------------------------
+DROP TABLE IF EXISTS `tab_mailrecord`;
+CREATE TABLE `tab_mailrecord`  (
+  `tid` int NOT NULL AUTO_INCREMENT,
+  `mailId` int NOT NULL COMMENT '邮件id',
+  `zoneid` int NOT NULL COMMENT '分区id',
+  `itemid` int NULL DEFAULT NULL COMMENT '道具id',
+  `num` int NULL DEFAULT NULL COMMENT '道具数量',
+  `type` int NULL DEFAULT NULL COMMENT '类型',
+  `sender_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '发送者昵称',
+  `sender_uid` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '发送者uid',
+  `to_uid` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '玩家uid',
+  `title` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '标题,限制长度20',
+  `content` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '内容,限制长度100',
+  `tag` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '附加标签',
+  `drawedts` int NULL DEFAULT 0 COMMENT '领取时间ts',
+  `startts` int NULL DEFAULT NULL COMMENT '生效时间ts',
+  `readts` int NULL DEFAULT NULL COMMENT '失效/过期时间ts',
+  `insertts` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '插入(发送)时间',
+  `appendix` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '\"\"',
+  PRIMARY KEY (`tid`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 22 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '邮件发送记录' ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Table structure for tab_register
+-- ----------------------------
+DROP TABLE IF EXISTS `tab_register`;
+CREATE TABLE `tab_register`  (
+  `tid` int NOT NULL AUTO_INCREMENT,
+  `userName` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名',
+  `pwd` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '密码',
+  `mail` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱',
+  `phoneNumber` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '电话',
+  `device_serial` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '设备序列号',
+  `ts` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间',
+  PRIMARY KEY (`tid`) USING BTREE,
+  UNIQUE INDEX `tid`(`tid`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '官方包(送审版)新用户注册表' ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Table structure for tab_rolename
+-- ----------------------------
+DROP TABLE IF EXISTS `tab_rolename`;
+CREATE TABLE `tab_rolename`  (
+  `tid` int NOT NULL AUTO_INCREMENT,
+  `zoneid` int NOT NULL COMMENT '分区id',
+  `userID` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '中间平台提供的用户ID',
+  `roleName` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+  `gender` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别',
+  `profile` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '头像',
+  `plat` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '平台字符串',
+  `ts` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间',
+  `lastlogin` datetime NULL DEFAULT NULL COMMENT '最后登录时间',
+  PRIMARY KEY (`tid`) USING BTREE,
+  UNIQUE INDEX `tid`(`tid`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色昵称表,' ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Table structure for tab_token_gift
+-- ----------------------------
+DROP TABLE IF EXISTS `tab_token_gift`;
+CREATE TABLE `tab_token_gift`  (
+  `id` int NOT NULL AUTO_INCREMENT COMMENT '记录id',
+  `plat` tinyint NOT NULL COMMENT '平台编号',
+  `package` tinyint NOT NULL COMMENT '礼包类型编号',
+  `number` int NOT NULL COMMENT '激活码编号',
+  `uid` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '玩家id',
+  `insertts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '插入时间戳',
+  PRIMARY KEY (`id`) USING BTREE,
+  UNIQUE INDEX `id`(`number`, `plat`, `package`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '兑换码礼包领取记录\r\n' ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Table structure for tab_userbaseparams
+-- ----------------------------
+DROP TABLE IF EXISTS `tab_userbaseparams`;
+CREATE TABLE `tab_userbaseparams`  (
+  `tid` int NOT NULL AUTO_INCREMENT,
+  `uid` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+  `zoneid` int NOT NULL DEFAULT 0,
+  `cmd` int NOT NULL DEFAULT 0,
+  `type` int NOT NULL DEFAULT 0 COMMENT '1:经验;2:金币;3钻石',
+  `curVal` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+  `endVal` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+  `changeVal` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+  `desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+  `ts` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '当前时间戳',
+  PRIMARY KEY (`tid`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Table structure for tab_userctxback
+-- ----------------------------
+DROP TABLE IF EXISTS `tab_userctxback`;
+CREATE TABLE `tab_userctxback`  (
+  `tid` int NOT NULL AUTO_INCREMENT,
+  `uid` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '玩家id',
+  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '玩家名称',
+  `zoneid` int NOT NULL DEFAULT 0 COMMENT '区',
+  `ctx` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '玩家反馈内容',
+  `phoneId` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '手机号',
+  `type` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '反馈类型',
+  `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '插入时间',
+  PRIMARY KEY (`tid`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Table structure for tab_userinfo_stub
+-- ----------------------------
+DROP TABLE IF EXISTS `tab_userinfo_stub`;
+CREATE TABLE `tab_userinfo_stub`  (
+  `auto_id` int NOT NULL AUTO_INCREMENT,
+  `uid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'uid',
+  `zoneid` int NOT NULL COMMENT '分区id',
+  `tsday` int NOT NULL COMMENT 'tsday',
+  `info` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '数据,Ps.medium支持15MB数据,够够的了, 普通text只支持65k有点儿风险',
+  `lastupdate` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '上次修改',
+  INDEX `auto_id`(`auto_id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '玩家数据落地' ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Table structure for tpl_mpaylog_tab
+-- ----------------------------
+DROP TABLE IF EXISTS `tpl_mpaylog_tab`;
+CREATE TABLE `tpl_mpaylog_tab`  (
+  `Id` int NOT NULL AUTO_INCREMENT,
+  `zoneid` int NOT NULL DEFAULT 1 COMMENT '分区id',
+  `type` tinyint NOT NULL DEFAULT 0 COMMENT '记录类型',
+  `amt` int NOT NULL DEFAULT 0 COMMENT '发生的人民币金额(单位:分)',
+  `balance` int NOT NULL DEFAULT 0 COMMENT '当前账户余额(单位: 个钻石)',
+  `giftedcash` int NOT NULL DEFAULT 0 COMMENT '游戏内赠送钻石数量',
+  `chargedcash` int NOT NULL DEFAULT 0 COMMENT '玩家充值钻石数量',
+  `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录插入时间戳',
+  `oid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '发生记录的oid',
+  `source` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '记录来源',
+  `result` int NOT NULL DEFAULT 0 COMMENT '结果, Ps. 有的时候会出现操作失败的情况',
+  `itemid` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '本次交易发生关联的物品id',
+  PRIMARY KEY (`Id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '模板 -- 移动端充值、消费记录' ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Table structure for tpl_op_log_tab
+-- ----------------------------
+DROP TABLE IF EXISTS `tpl_op_log_tab`;
+CREATE TABLE `tpl_op_log_tab`  (
+  `cmd` int NOT NULL COMMENT '命令码',
+  `zoneid` int NOT NULL COMMENT '分区id',
+  `days` int NULL DEFAULT 0 COMMENT '留存天数',
+  `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '时间戳',
+  `uid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '玩家ID',
+  `param` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '参数',
+  `ret` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '返回值'
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '[模板] -- 操作日志表' ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Table structure for tpl_order_tab
+-- ----------------------------
+DROP TABLE IF EXISTS `tpl_order_tab`;
+CREATE TABLE `tpl_order_tab`  (
+  `Id` int NOT NULL AUTO_INCREMENT COMMENT '订单序号(自增)',
+  `cpOrderId` bigint NULL DEFAULT 1 COMMENT '商户订单id',
+  `amount` int NULL DEFAULT 0 COMMENT '发生的人民币金额(单位:分)',
+  `status` tinyint NULL DEFAULT 0 COMMENT '订单状态: 0:创建订单,1:支付成功,2: 支付失败',
+  `zoneid` int NULL DEFAULT 1 COMMENT '分区id',
+  `order_ts` int NULL DEFAULT 0 COMMENT '记录插入时间戳 利用FROM_UNIXTIME()转换到时间',
+  `close_ts` int NULL DEFAULT 0 COMMENT '交易关闭时间戳',
+  `drawed_ts` int NULL DEFAULT 0,
+  `uid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '发生记录的oid',
+  `channel` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '渠道',
+  `callbackInfo` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '',
+  `notifyUrl` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '',
+  `product_id` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '本次交易发生关联的物品id',
+  `product_name` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '物品名称',
+  `product_price` float NULL DEFAULT NULL COMMENT '物品单价',
+  `product_count` int NULL DEFAULT NULL COMMENT '物品数量',
+  `sdk_orderid` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'sdk生成的订单编号',
+  `party_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '公会id',
+  `party_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '公会名称',
+  `otherInfo` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '其他信息',
+  PRIMARY KEY (`Id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '模板 -- 移动端充值、消费记录' ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Table structure for tpl_order_tab_deltest
+-- ----------------------------
+DROP TABLE IF EXISTS `tpl_order_tab_deltest`;
+CREATE TABLE `tpl_order_tab_deltest`  (
+  `Id` int NOT NULL AUTO_INCREMENT COMMENT '订单序号(自增)',
+  `cpOrderId` bigint NULL DEFAULT 1 COMMENT '商户订单id',
+  `amount` int NULL DEFAULT 0 COMMENT '发生的人民币金额(单位:分)',
+  `status` tinyint NULL DEFAULT 0 COMMENT '订单状态: 0:创建订单,1:支付成功,2: 支付失败',
+  `zoneid` int NULL DEFAULT 1 COMMENT '分区id',
+  `order_ts` int NULL DEFAULT 0 COMMENT '记录插入时间戳 利用FROM_UNIXTIME()转换到时间',
+  `close_ts` int NULL DEFAULT 0 COMMENT '交易关闭时间戳',
+  `drawed_ts` int NULL DEFAULT 0,
+  `uid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '发生记录的oid',
+  `channel` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '渠道',
+  `callbackInfo` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '',
+  `notifyUrl` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '',
+  `product_id` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '本次交易发生关联的物品id',
+  `product_name` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '物品名称',
+  `product_price` float NULL DEFAULT NULL COMMENT '物品单价',
+  `product_count` int NULL DEFAULT NULL COMMENT '物品数量',
+  `sdk_orderid` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'sdk生成的订单编号',
+  `otherInfo` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '其他信息',
+  `party_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0',
+  `party_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`Id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '模板 -- 移动端充值、消费记录' ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Table structure for tpl_paylog_tab_ym
+-- ----------------------------
+DROP TABLE IF EXISTS `tpl_paylog_tab_ym`;
+CREATE TABLE `tpl_paylog_tab_ym`  (
+  `Id` int NOT NULL AUTO_INCREMENT,
+  `msg` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '发生记录的oid',
+  PRIMARY KEY (`Id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '充值、消费记录' ROW_FORMAT = DYNAMIC;
+
+SET FOREIGN_KEY_CHECKS = 1;

+ 13 - 0
DevOps/etc/nginx/cert/options-ssl-nginx.conf

@@ -0,0 +1,13 @@
+# This file contains important security parameters. If you modify this file
+# manually, Certbot will be unable to automatically provide future security
+# updates. Instead, Certbot will print and log an error message with a path to
+# the up-to-date file that you will need to refer to when manually updating
+# this file.
+
+ssl_session_cache shared:le_nginx_SSL:1m;
+ssl_session_timeout 1440m;
+
+ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
+ssl_prefer_server_ciphers on;
+
+ssl_ciphers "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS";

+ 25 - 0
DevOps/etc/nginx/conf.d/common.conf

@@ -0,0 +1,25 @@
+
+
+map $http_x_forwarded_for  $clientRealIp {
+        ""      $remote_addr;
+        ~^(?P<firstAddr>[0-9\.]+),?.*$  $firstAddr;
+}
+
+
+
+#log format
+log_format  access  '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $clientRealIp';
+   
+
+proxy_buffers 4 128k;
+proxy_connect_timeout 600;              #nginx跟后端服务器连接超时时间(代理连接超时)
+proxy_read_timeout    600;              #连接成功后,后端服务器响应时间(代理接收超时)
+proxy_send_timeout    600;              #后端服务器数据回传时间(代理发送超时)
+proxy_busy_buffers_size  256k;           #高负荷下缓冲大小(proxy_buffers*2)
+proxy_temp_file_write_size  1024k;       #设定缓存文件夹大小,大于这个值,将从upstream服务器传
+
+
+proxy_cache_path /tmp/proxy_cache levels=1:2 keys_zone=cache_one:150m inactive=31d max_size=2g;
+#proxy_temp_path /tmp/proxy_cache/temp;
+error_log    /data/log/error_openresty.log   debug;
+include /etc/nginx/conf.d/vhost/*.conf;

+ 20 - 0
DevOps/etc/nginx/conf.d/common.conf.bak

@@ -0,0 +1,20 @@
+map $http_x_forwarded_for  $clientRealIp {
+        ""      $remote_addr;
+        ~^(?P<firstAddr>[0-9\.]+),?.*$  $firstAddr;
+}
+
+#log format
+log_format  access  '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $clientRealIp';
+
+proxy_buffers 4 128k;
+proxy_connect_timeout 600;              #nginx跟后端服务器连接超时时间(代理连接超时)
+proxy_read_timeout    600;              #连接成功后,后端服务器响应时间(代理接收超时)
+proxy_send_timeout    600;              #后端服务器数据回传时间(代理发送超时)
+proxy_busy_buffers_size  256k;           #高负荷下缓冲大小(proxy_buffers*2)
+proxy_temp_file_write_size  1024k;       #设定缓存文件夹大小,大于这个值,将从upstream服务器传
+
+
+proxy_cache_path /tmp/proxy_cache levels=1:2 keys_zone=cache_one:150m inactive=31d max_size=2g;
+proxy_temp_path /tmp/proxy_cache/temp;
+
+include /etc/nginx/conf.d/vhost/*.conf;

+ 7 - 0
DevOps/etc/nginx/conf.d/ext/header.conf

@@ -0,0 +1,7 @@
+fastcgi_hide_header      X-Powered-By;
+fastcgi_hide_header      X-Runtime;
+fastcgi_hide_header      X-Version;
+add_header               X-Frame-Options SAMEORIGIN;
+add_header               X-Content-Type-Options nosniff;
+add_header               Content-Security-Policy "upgrade-insecure-requests";
+add_header               Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";

+ 12 - 0
DevOps/etc/nginx/conf.d/ext/proxy.conf

@@ -0,0 +1,12 @@
+proxy_connect_timeout 300s;
+proxy_send_timeout 900;
+proxy_read_timeout 900;
+proxy_redirect off;
+proxy_hide_header Vary;
+#proxy_set_header Host $host;
+proxy_headers_hash_max_size 51200;
+proxy_headers_hash_bucket_size 6400;
+proxy_set_header Cookie $http_cookie;
+proxy_set_header Referer $http_referer;
+proxy_set_header  X-Forwarded-Proto $scheme;
+proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;

+ 16 - 0
DevOps/etc/nginx/conf.d/ext/ssl.conf

@@ -0,0 +1,16 @@
+if ($http_user_agent ~* "Baiduspider|360spider|360Spider|YisouSpider|spider|bot") {
+    set $ssl "y";
+}
+
+if ($http_user_agent ~* "Windows\ NT\ 5.1|Windows\ NT\ 5.2") {
+    set $ssl "n";
+}
+
+
+if ($scheme = 'http' ) {
+    set $ssl "${ssl}es";
+}
+
+if ( $ssl = "yes" ) {
+    rewrite ^(.*)$ https://$host$1 permanent;
+}

+ 57 - 0
DevOps/etc/nginx/conf.d/vhost/yourdomain.com.conf

@@ -0,0 +1,57 @@
+server {
+        listen 80;
+        #listen 443 ssl http2;
+		# 域名
+        server_name localhost 192.168.10.86 wanggang.com www.wanggang.com;
+		
+		
+        #ssl_certificate /etc/nginx/cert/domain.com.crt;
+        #ssl_certificate_key /etc/nginx/cert/domain.com.key; 
+        #include /etc/nginx/cert/options-ssl-nginx.conf;
+        index index.html index.htm index.php default.html default.htm default.php;
+		
+        root  /wwwroot;
+      
+        # 跳转到首选域名,若是带www的,请自行加上www
+        #if ($host != wanggang.com) {
+        #        rewrite ^(.*)$ $scheme://wanggang.com$1 permanent;
+        #}
+        # https 301跳转,不需要轻删除
+        #if ($scheme = http) {
+        #        rewrite ^(.*)$ https://$host$1 permanent;
+        #}
+		
+        
+        location ~ [^/]\.php(/|$)
+		{
+			include /etc/nginx/conf.d/ext/header.conf;
+			fastcgi_pass   unix:/dev/shm/php-cgi.sock;
+			#fastcgi_pass   php-fpm:9000;
+			#fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
+			fastcgi_index  index.php;
+			include        fastcgi.conf;
+        }
+       
+
+        location ~* .*\.(gif|jpg|jpeg|png|bmp|jepg|css|js|ico|ogg|ogv|svg|svgz|eot|otf|woff|woff2|mp4|ttf|rss|atom|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
+	 
+                access_log off; 
+                log_not_found off; 
+                expires 30d;
+        }
+
+        # 解决 robots漏洞
+        location = /robots.txt { 
+            if ($http_user_agent !~* "spider|bot|Python-urllib|pycurl") {
+                        return 403;
+                }
+            #access_log off; 
+            log_not_found off; 
+        }
+        location ~ /\. { 
+            deny  all; 
+            #access_log off; 
+            log_not_found off;
+        }
+        access_log /data/log/$host.log;
+}

+ 31 - 0
DevOps/etc/php/dockerfile/56/Dockerfile

@@ -0,0 +1,31 @@
+FROM php:5.6.40-fpm-alpine
+# 维护者 gwang -2022.4.26
+MAINTAINER gwang<wanggangzero@qq.com>
+# docker build -t "wg/php56:5.6" 56
+
+# 设置时区
+ENV TZ=Asia/Shanghai
+
+# 定制PHP_Extension
+ 
+RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
+ && apk update \
+ && apk add --no-cache libmcrypt-dev \
+ && docker-php-ext-install mcrypt mysql mysqli pdo pdo_mysql mbstring sockets shmop opcache 
+
+RUN apk add openssl openssl-dev 
+RUN apk add gc g++ automake autoconf make 
+RUN pecl install -o -f mongo
+
+# 附加php设置	
+COPY php_extra.ini /usr/local/etc/php/conf.d
+COPY php_mongo.ini /usr/local/etc/php/conf.d
+
+# 开机启动php-fpm进程
+CMD ["php-fpm", "-F"]
+
+
+#docker build 
+
+# docker run -d --name="php56" -p=9056:9000 --restart=always -v=D:\\www:/data/www  wg/php56:5.6
+# docker run -d --name="php56" -p=9056:9000 --restart=always -v=/data:/data  wg/php56:5.6

+ 5 - 0
DevOps/etc/php/dockerfile/56/php_extra.ini

@@ -0,0 +1,5 @@
+;# 基于docker到宿主间隔了一层, 这里最好是每次都检测文件是否有变动
+opcache.revalidate_freq=0;
+
+;# 关闭5.6下关于RAW_POST_DATA的警告
+always_populate_raw_post_data=-1;

+ 1 - 0
DevOps/etc/php/dockerfile/56/php_mongo.ini

@@ -0,0 +1 @@
+extension=mongo.so

+ 35 - 0
DevOps/etc/php/dockerfile/81/Dockerfile

@@ -0,0 +1,35 @@
+FROM php:8.1.8-fpm
+# 维护者 gwang -2022.4.26
+MAINTAINER gwang<wanggangzero@qq.com>
+
+# 设置时区
+#ENV TZ=Asia/Shanghai
+
+# 安装mongodb扩展所依赖的库
+RUN apt update \
+    && apt install -y openssl libssl-dev zstd \
+# 定制PHP_Extensions	
+    && pecl install -o -f redis mongodb yac \
+#    && rm -rf /tmp/pear \
+    && docker-php-source extract \       
+    && docker-php-ext-install mysqli sockets pdo_mysql shmop  \
+	&& docker-php-source delete \
+    && docker-php-ext-enable mongodb redis opcache yac 	
+
+# 附加php设置	
+COPY php_extra.ini /usr/local/etc/php/conf.d 
+
+# 开机启动php-fpm进程
+CMD ["php-fpm", "-F"]
+
+
+
+####################################################################################################
+# Usage:                                                                                           #
+#                                                                                                  #
+# docker build -t "wg/php81:tag" 81                                                                 #
+#                                                                                                  #
+# docker run -d --name="php81" -p=9081:9000 --restart=always -v=D:\\www:/data/www  wg/php81:tag    #
+# docker run -d --name="php81" -p=9081:9000 --restart=always -v=/data:/data  wg/php81:tag          #
+#                                                                                                  #
+#################################################################################################### 

+ 55 - 0
DevOps/etc/php/dockerfile/81/php_extra.ini

@@ -0,0 +1,55 @@
+[PHP]
+; 性能提升
+auto_globals_jit = On
+; 内存上限, https://php.net/memory-limit
+memory_limit = 128M
+; 输出缓冲区大小
+output_buffering = 4096
+
+; 是否开启隐式压缩支持, https://php.net/zlib.output-compression
+zlib.output_compression = Off
+zlib.output_compression_level = -1  
+zend.exception_ignore_args = Off 
+zend.exception_string_param_max_len = 15
+
+; 是否暴露PHP信息
+expose_php = off
+; 默认MIME类型, 建议不要改. https://php.net/default-mimetype
+;default_mimetype = "text/html"
+ 
+; 最大执行时长, 命令行模式下硬编码为0.
+max_execution_time = 30 
+max_input_time = 60
+  
+; 错误, https://php.net/error-reporting
+error_reporting = E_ALL 
+; 向输出显示错误, Off, stderr/stdout https://php.net/display-errors
+display_errors = Off 
+; 输出错误信息到log日志, https://php.net/log-errors
+#log_errors = On
+
+error_log="/data/log/php_errors.log"
+
+; 开启的全局变量,GET, POST, COOKIE, ENV and SERVER. https://php.net/variables-order
+variables_order = "GPCS"  
+; 开启$_POST访问,默认On. https://php.net/enable-post-data-reading
+enable_post_data_reading = Off
+; $_POST接收数据的最大长度, https://php.net/post-max-size
+post_max_size = 8M
+; 文件上传功能, 需要在nginx中配合设置. https://php.net/file-uploads
+file_uploads = Off 
+upload_max_filesize = 120M
+max_file_uploads = 20
+ 
+  
+[CLI Server]
+cli_server.color = On
+   
+[opcache] 
+#zend_extension=opcache
+#opcache.enable=0
+;# 基于docker到宿主间隔了一层, 这里最好是每次都检测文件是否有变动
+opcache.revalidate_freq=0;
+
+;# 关闭5.6下关于RAW_POST_DATA的警告
+always_populate_raw_post_data=-1;

+ 59 - 0
DevOps/etc/php/php-fpm.d/php-fpm.conf

@@ -0,0 +1,59 @@
+;;;;;;;;;;;;;;;;;;;;;
+; FPM Configuration ;
+;;;;;;;;;;;;;;;;;;;;;
+
+;;;;;;;;;;;;;;;;;;
+; Global Options ;
+;;;;;;;;;;;;;;;;;;
+
+[global]
+pid = /dev/shm/php-fpm.pid
+
+error_log = /data/log/php-fpm.log
+log_level = warning 
+ 
+
+emergency_restart_threshold = 30
+emergency_restart_interval = 60s
+process_control_timeout = 5s
+daemonize = yes
+
+;;;;;;;;;;;;;;;;;;;;
+; Pool Definitions ;
+;;;;;;;;;;;;;;;;;;;;
+
+[www]
+listen = /dev/shm/php-cgi.sock
+;listen = 9000
+listen.backlog = -1
+;listen.allowed_clients = any
+listen.owner = nobody
+;listen.group = nobody
+listen.mode = 0666
+user = nobody
+;group = nobody
+
+pm = dynamic
+pm.max_children = 16
+pm.start_servers = 10
+pm.min_spare_servers = 8
+pm.max_spare_servers = 16
+pm.max_requests = 2048
+pm.process_idle_timeout = 10s
+request_terminate_timeout = 120
+request_slowlog_timeout = 0
+
+pm.status_path = /php-fpm_status
+slowlog = /data/log/slow.log
+rlimit_files = 51200
+rlimit_core = 0
+
+
+catch_workers_output = yes
+;php_admin_value[error_log] =/data/log/php_errors.log
+php_admin_value[expose_php] = on
+
+env[PATH] = /usr/local/bin:/usr/bin:/bin
+env[TMP] = /tmp
+env[TMPDIR] = /tmp
+env[TEMP] = /tmp

+ 25 - 0
DevOps/etc/redis/Dockerfile

@@ -0,0 +1,25 @@
+ FROM redis:latest
+
+ # 维护者 gwang -2022.4.26
+MAINTAINER gwang<wanggangzero@qq.com>
+
+# 设置时区
+ENV TZ=Asia/Shanghai 
+
+# 复制数据库结构代码到	
+COPY port6379.conf /usr/local/etc/redis/redis.conf
+RUN mkdir /data/redis
+
+CMD [ "/usr/local/etc/redis/redis.conf" ]
+####################################################################################################
+# Usage:                                                                                           #
+#                                                                                                  #
+# docker build -t "wg/redis:latest" redis                                                          #
+#                                                                                                  #
+# docker run -d --name="redis" -p=6379:6379 --restart=always -e MARIADB_DATABASE=ylsj2019_pay_dev  \
+#      -e MARIADB_ROOT_PASSWORD=wanggang1985 -e MARIADB_USER=gwang -e MARIADB_PASSWORD=wanggang1985 \
+#         wg/mysql:new --init-file=/tmp/ylsj2019_pay_dev.sql     
+#
+#                                                                                                  #
+#################################################################################################### 
+

+ 12 - 0
DevOps/etc/redis/port6379.conf

@@ -0,0 +1,12 @@
+# Redis configuration for shotplain. 打飞机项目
+# include ./redis/conf.d/redis.comminc.conf 
+# 在此设置端口
+port 6379 
+
+databases 1 
+###指定一个密码
+requirepass wanggang1985
+
+dir /data/redis
+dbfilename dump6379.rdb
+

+ 293 - 0
DevOps/mnt/data/log/192.168.10.86.log

@@ -0,0 +1,293 @@
+172.18.0.1 - - [01/Aug/2022:17:37:16 +0800] "GET /ylsj2019/tz.php HTTP/1.1" 500 18944 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:17 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636202&_=1659346636287 HTTP/1.1" 200 1087 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:19 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636203&_=1659346638213 HTTP/1.1" 200 1087 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:21 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636204&_=1659346640203 HTTP/1.1" 200 1087 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:23 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636205&_=1659346642201 HTTP/1.1" 200 1087 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:25 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636206&_=1659346644213 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:27 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636207&_=1659346646212 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:29 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636208&_=1659346648214 HTTP/1.1" 200 1119 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:31 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636209&_=1659346650216 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:33 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636210&_=1659346652213 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:34 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636211&_=1659346653233 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:36 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636212&_=1659346655208 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:38 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636213&_=1659346657207 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:39 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636214&_=1659346658209 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:41 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636215&_=1659346660212 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:43 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636216&_=1659346662204 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:44 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636217&_=1659346663222 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:46 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636218&_=1659346665215 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:48 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636219&_=1659346667212 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:49 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636220&_=1659346668216 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:51 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636221&_=1659346670226 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:53 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636222&_=1659346672214 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:55 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636223&_=1659346674216 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:57 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636224&_=1659346676209 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:37:59 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636225&_=1659346678211 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:01 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636226&_=1659346680218 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:03 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636227&_=1659346682210 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:05 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636228&_=1659346684591 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:07 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636229&_=1659346686221 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:09 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636230&_=1659346688203 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:10 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636231&_=1659346689208 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:12 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636232&_=1659346691203 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:13 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636233&_=1659346692232 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:15 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636234&_=1659346694212 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:17 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636235&_=1659346696212 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:18 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636236&_=1659346697214 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:20 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636237&_=1659346699206 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:21 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636238&_=1659346700206 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:23 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636239&_=1659346702204 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:25 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636240&_=1659346704207 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:26 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636241&_=1659346705207 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:28 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636242&_=1659346707212 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:30 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636243&_=1659346709212 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:32 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636244&_=1659346711210 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:33 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636245&_=1659346712223 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:35 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636246&_=1659346714200 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:36 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636247&_=1659346715213 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:38 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636248&_=1659346717203 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:39 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636249&_=1659346718215 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:41 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636250&_=1659346720205 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:43 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636251&_=1659346722215 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:45 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636252&_=1659346724212 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:47 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636253&_=1659346726206 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:49 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636254&_=1659346728201 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:51 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636255&_=1659346730219 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:53 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636256&_=1659346732206 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:55 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636257&_=1659346734215 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:57 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636258&_=1659346736208 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:38:59 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636259&_=1659346738203 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:00 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636260&_=1659346739225 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:02 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636261&_=1659346741213 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:04 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636262&_=1659346743207 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:06 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636263&_=1659346745201 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:08 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636264&_=1659346747207 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:10 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636265&_=1659346749205 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:11 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636266&_=1659346750225 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:13 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636267&_=1659346752200 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:14 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636268&_=1659346753224 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:16 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636269&_=1659346755208 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:17 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636270&_=1659346756224 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:19 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636271&_=1659346758202 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:20 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636272&_=1659346759203 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:22 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636273&_=1659346761216 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:24 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636274&_=1659346763211 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:25 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636275&_=1659346764226 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:27 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636276&_=1659346766208 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:29 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636277&_=1659346768203 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:30 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636278&_=1659346769219 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:32 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636279&_=1659346771213 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:34 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636280&_=1659346773211 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:36 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636281&_=1659346775215 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:38 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636282&_=1659346777211 HTTP/1.1" 200 1119 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:40 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636283&_=1659346779211 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:42 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636284&_=1659346781205 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:43 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636285&_=1659346782206 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:45 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636286&_=1659346784205 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:47 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636287&_=1659346786214 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:49 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636288&_=1659346788208 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:50 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636289&_=1659346789213 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:52 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636290&_=1659346791211 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:54 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636291&_=1659346793218 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:56 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636292&_=1659346795239 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:39:58 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636293&_=1659346797210 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:00 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636294&_=1659346799201 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:02 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636295&_=1659346801205 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:04 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636296&_=1659346803215 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:06 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636297&_=1659346805214 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:08 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636298&_=1659346807214 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:10 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636299&_=1659346809210 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:11 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636300&_=1659346810225 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:13 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636301&_=1659346812203 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:14 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636302&_=1659346813220 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:16 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636303&_=1659346815219 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:18 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636304&_=1659346817215 HTTP/1.1" 200 1119 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:20 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636305&_=1659346819202 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:22 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636306&_=1659346821206 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:24 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636307&_=1659346823206 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:26 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636308&_=1659346825202 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:27 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636309&_=1659346826224 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:29 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636310&_=1659346828208 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:30 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636311&_=1659346829212 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:32 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636312&_=1659346831203 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:33 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636313&_=1659346832220 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:35 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636314&_=1659346834214 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:37 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636315&_=1659346836206 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:39 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636316&_=1659346838219 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:41 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636317&_=1659346840208 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:42 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636318&_=1659346841222 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:44 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636319&_=1659346843214 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:46 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636320&_=1659346845215 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:48 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636321&_=1659346847210 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:49 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636322&_=1659346848212 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:51 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636323&_=1659346850213 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:53 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636324&_=1659346852214 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:55 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636325&_=1659346854214 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:56 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636326&_=1659346855214 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:58 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636327&_=1659346857208 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:40:59 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636328&_=1659346858209 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:01 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636329&_=1659346860204 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:02 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636330&_=1659346861228 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:04 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636331&_=1659346863211 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:06 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636332&_=1659346865211 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:08 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636333&_=1659346867206 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:09 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636334&_=1659346868228 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:11 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636335&_=1659346870212 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:13 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636336&_=1659346872203 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:14 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636337&_=1659346873203 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:16 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636338&_=1659346875212 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:18 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636339&_=1659346877214 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:20 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636340&_=1659346879214 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:22 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636341&_=1659346881205 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:23 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636342&_=1659346882230 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:25 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636343&_=1659346884213 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:27 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636344&_=1659346886202 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:28 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636345&_=1659346887229 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:30 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636346&_=1659346889208 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:32 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636347&_=1659346891204 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:34 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636348&_=1659346893213 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:36 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636349&_=1659346895210 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:37 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636350&_=1659346896230 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:39 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636351&_=1659346898215 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:41 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636352&_=1659346900206 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:42 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636353&_=1659346901224 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:44 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636354&_=1659346903211 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:45 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636355&_=1659346904236 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:47 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636356&_=1659346906201 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:48 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636357&_=1659346907209 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:50 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636358&_=1659346909203 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:51 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636359&_=1659346910236 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:53 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636360&_=1659346912210 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:54 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636361&_=1659346913237 HTTP/1.1" 200 1119 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:56 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636362&_=1659346915207 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:58 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636363&_=1659346917201 HTTP/1.1" 200 1120 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:41:59 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636364&_=1659346918219 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:42:01 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636365&_=1659346920209 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:42:03 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636366&_=1659346922215 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:42:05 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636367&_=1659346924216 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:42:07 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636368&_=1659346926207 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:42:08 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636369&_=1659346927211 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:42:10 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636370&_=1659346929209 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:42:12 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636371&_=1659346931214 HTTP/1.1" 200 1122 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:42:14 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636372&_=1659346933202 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:42:16 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636373&_=1659346935213 HTTP/1.1" 200 1121 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:42:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:48 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:49 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:50 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:50 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:50 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:51 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:51 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:51 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:51 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:52 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:52 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:52 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:53 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:53 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:53 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:54 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:54 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:54 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:55 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:55 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:55 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:55 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:56 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:58 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:58 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:58 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:58 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:58 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:58 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:59 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:59 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:59 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:59 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:42:59 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:00 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:00 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:00 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:00 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:00 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:00 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:01 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:01 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:01 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:01 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:01 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:02 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:02 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:02 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:02 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:02 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:02 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:03 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:03 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:03 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:03 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:03 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:04 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:04 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:04 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:04 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:04 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:04 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:05 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:05 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:05 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:05 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:05 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:06 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:06 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:06 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:06 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:07 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:07 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:07 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:07 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:08 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:08 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:08 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:08 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:09 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:09 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:09 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:09 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:09 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:10 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:10 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:12 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:12 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:12 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:12 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:13 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:13 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:13 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:13 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:13 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:14 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:14 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:14 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:14 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:14 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:14 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:15 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:15 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:15 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:15 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:18 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1" 200 17 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [01/Aug/2022:17:43:26 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636374&_=1659347005761 HTTP/1.1" 200 1148 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:43:27 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636375&_=1659347006766 HTTP/1.1" 200 1146 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:43:29 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636376&_=1659347008212 HTTP/1.1" 200 1148 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:43:31 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636377&_=1659347010203 HTTP/1.1" 200 1147 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:43:31 +0800] "GET /ylsj2019/phpmyadmin HTTP/1.1" 404 561 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:43:31 +0800] "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636378&_=1659347011208 HTTP/1.1" 499 0 "http://192.168.10.86/ylsj2019/tz.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:43:59 +0800] "GET /ylsj2019/phpRedisAdmin HTTP/1.1" 301 175 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:44:00 +0800] "GET /ylsj2019/phpRedisAdmin/ HTTP/1.1" 200 3058 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:45:44 +0800] "GET /ylsj2019/phpRedisAdmin/?view&s=0&d=0&key=log-Err HTTP/1.1" 200 3098 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"

+ 40 - 0
DevOps/mnt/data/log/error_openresty.log

@@ -0,0 +1,40 @@
+2022/08/01 17:37:17 [error] 7#7: *2 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 172.18.0.1, server: localhost, request: "GET /ylsj2019_dev_bak/Gameserver/Amfphp/test.php HTTP/1.1", upstream: "fastcgi://unix:/dev/shm/php-cgi.sock:", host: "localhost"
+2022/08/01 17:42:48 [warn] 7#7: *549 a client request body is buffered to a temporary file /var/run/openresty/nginx-client-body/0000000001, client: 172.18.0.1, server: localhost, request: "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1", host: "192.168.10.86"
+2022/08/01 17:42:53 [warn] 7#7: *549 a client request body is buffered to a temporary file /var/run/openresty/nginx-client-body/0000000002, client: 172.18.0.1, server: localhost, request: "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1", host: "192.168.10.86"
+2022/08/01 17:42:55 [warn] 7#7: *549 a client request body is buffered to a temporary file /var/run/openresty/nginx-client-body/0000000003, client: 172.18.0.1, server: localhost, request: "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1", host: "192.168.10.86"
+2022/08/01 17:42:56 [warn] 7#7: *549 a client request body is buffered to a temporary file /var/run/openresty/nginx-client-body/0000000004, client: 172.18.0.1, server: localhost, request: "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1", host: "192.168.10.86"
+2022/08/01 17:43:06 [warn] 7#7: *549 a client request body is buffered to a temporary file /var/run/openresty/nginx-client-body/0000000005, client: 172.18.0.1, server: localhost, request: "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1", host: "192.168.10.86"
+2022/08/01 17:43:10 [warn] 7#7: *549 a client request body is buffered to a temporary file /var/run/openresty/nginx-client-body/0000000006, client: 172.18.0.1, server: localhost, request: "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1", host: "192.168.10.86"
+2022/08/01 17:43:17 [warn] 7#7: *549 a client request body is buffered to a temporary file /var/run/openresty/nginx-client-body/0000000007, client: 172.18.0.1, server: localhost, request: "POST /ylsj2019/Gameserver/Amfphp/service_call/cmemdata/kvflush.php HTTP/1.1", host: "192.168.10.86"
+2022/08/01 17:43:31 [error] 7#7: *667 open() "/wwwroot/ylsj2019/phpmyadmin" failed (2: No such file or directory), client: 172.18.0.1, server: localhost, request: "GET /ylsj2019/phpmyadmin HTTP/1.1", host: "192.168.10.86"
+2022/08/01 17:43:31 [info] 7#7: *665 epoll_wait() reported that client prematurely closed connection, so upstream connection is closed too while sending request to upstream, client: 172.18.0.1, server: localhost, request: "GET /ylsj2019/tz.php?act=rt&callback=jQuery1707343702191102457_1659346636378&_=1659347011208 HTTP/1.1", upstream: "fastcgi://unix:/dev/shm/php-cgi.sock:", host: "192.168.10.86", referrer: "http://192.168.10.86/ylsj2019/tz.php"
+2022/08/01 17:44:59 [info] 7#7: *672 client timed out (110: Connection timed out) while waiting for request, client: 172.18.0.1, server: 0.0.0.0:80
+2022/08/01 17:45:19 [info] 7#7: *529 epoll_wait() reported that client prematurely closed connection, so upstream connection is closed too while sending request to upstream, client: 172.18.0.1, server: localhost, request: "GET /ylsj2019/tz.php?act=rt&callback=jQuery1709482657476651055_1659346629627&_=1659347118867 HTTP/1.1", upstream: "fastcgi://unix:/dev/shm/php-cgi.sock:", host: "localhost", referrer: "http://localhost/ylsj2019/tz.php"
+2022/08/01 17:46:21 [info] 7#7: *681 client timed out (110: Connection timed out) while waiting for request, client: 172.18.0.1, server: 0.0.0.0:80
+2022/08/01 17:46:44 [info] 7#7: *683 client timed out (110: Connection timed out) while waiting for request, client: 172.18.0.1, server: 0.0.0.0:80
+2022/08/01 17:48:11 [notice] 7#7: *686 "spider|bot|Python-urllib|pycurl" does not match "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77", client: 172.18.0.1, server: localhost, request: "GET /robots.txt HTTP/1.1", host: "wanggang.com"
+2022/08/01 17:48:42 [info] 7#7: *685 client timed out (110: Connection timed out) while waiting for request, client: 172.18.0.1, server: 0.0.0.0:80
+2022/08/01 17:50:03 [info] 7#7: *689 client timed out (110: Connection timed out) while waiting for request, client: 172.18.0.1, server: 0.0.0.0:80
+2022/08/01 17:50:35 [info] 7#7: *693 client timed out (110: Connection timed out) while waiting for request, client: 172.18.0.1, server: 0.0.0.0:80
+2022/08/01 17:52:30 [info] 7#7: *697 client timed out (110: Connection timed out) while waiting for request, client: 172.18.0.1, server: 0.0.0.0:80
+2022/08/01 17:53:00 [info] 7#7: *699 client 172.18.0.1 closed keepalive connection
+2022/08/01 18:08:39 [info] 7#7: *724 client 172.18.0.1 closed keepalive connection
+2022/08/02 08:51:28 [info] 7#7: *1 client timed out (110: Connection timed out) while waiting for request, client: 172.18.0.1, server: 0.0.0.0:80
+2022/08/02 08:51:31 [info] 7#7: *4 client timed out (110: Connection timed out) while waiting for request, client: 172.18.0.1, server: 0.0.0.0:80
+2022/08/02 08:51:31 [info] 7#7: *5 client timed out (110: Connection timed out) while waiting for request, client: 172.18.0.1, server: 0.0.0.0:80
+2022/08/02 10:03:30 [error] 7#7: *134 open() "/wwwroot/site/sha" failed (2: No such file or directory), client: 172.18.0.1, server: localhost, request: "GET /site/sha HTTP/1.1", host: "localhost"
+2022/08/02 16:20:56 [error] 7#7: *135 open() "/wwwroot/flowStatistics" failed (2: No such file or directory), client: 172.18.0.1, server: localhost, request: "GET /flowStatistics HTTP/1.1", host: "localhost"
+2022/08/02 16:20:57 [error] 7#7: *135 open() "/wwwroot/flowStatistics" failed (2: No such file or directory), client: 172.18.0.1, server: localhost, request: "GET /flowStatistics HTTP/1.1", host: "localhost"
+2022/08/02 16:44:54 [info] 7#7: *136 client timed out (110: Connection timed out) while waiting for request, client: 172.18.0.1, server: 0.0.0.0:80
+2022/08/03 10:35:36 [error] 7#7: *1 open() "/wwwroot/site/sha" failed (2: No such file or directory), client: 172.18.0.1, server: localhost, request: "GET /site/sha HTTP/1.1", host: "localhost"
+2022/08/03 10:50:37 [error] 7#7: *2 open() "/wwwroot/site/sha" failed (2: No such file or directory), client: 172.18.0.1, server: localhost, request: "GET /site/sha HTTP/1.1", host: "localhost"
+2022/08/03 17:00:55 [error] 7#7: *3 open() "/wwwroot/flowStatistics" failed (2: No such file or directory), client: 172.18.0.1, server: localhost, request: "GET /flowStatistics HTTP/1.1", host: "localhost"
+2022/08/03 17:00:56 [error] 7#7: *3 open() "/wwwroot/flowStatistics" failed (2: No such file or directory), client: 172.18.0.1, server: localhost, request: "GET /flowStatistics HTTP/1.1", host: "localhost"
+2022/08/03 17:34:36 [info] 7#7: *1 epoll_wait() reported that client prematurely closed connection, so upstream connection is closed too while sending request to upstream, client: 172.18.0.1, server: localhost, request: "GET /tz.php?act=rt&callback=jQuery17022775355613775816_1659519269769&_=1659519275398 HTTP/1.1", upstream: "fastcgi://unix:/dev/shm/php-cgi.sock:", host: "localhost", referrer: "http://localhost/tz.php"
+2022/08/03 17:34:55 [notice] 7#7: *12 "spider|bot|Python-urllib|pycurl" does not match "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77", client: 172.18.0.1, server: localhost, request: "GET /robots.txt HTTP/1.1", host: "wanggang.com"
+2022/08/03 17:35:26 [info] 7#7: *4 client timed out (110: Connection timed out) while waiting for request, client: 172.18.0.1, server: 0.0.0.0:80
+2022/08/03 17:35:55 [info] 7#7: *13 client timed out (110: Connection timed out) while waiting for request, client: 172.18.0.1, server: 0.0.0.0:80
+2022/08/04 10:28:04 [error] 7#7: *1 open() "/wwwroot/site/sha" failed (2: No such file or directory), client: 172.18.0.1, server: localhost, request: "GET /site/sha HTTP/1.1", host: "localhost"
+2022/12/28 14:44:06 [error] 7#7: *1 open() "/wwwroot/site/sha" failed (2: No such file or directory), client: 172.18.0.1, server: localhost, request: "GET /site/sha HTTP/1.1", host: "localhost"
+2022/12/28 14:50:49 [error] 7#7: *2 open() "/wwwroot/site/sha" failed (2: No such file or directory), client: 172.18.0.1, server: localhost, request: "GET /site/sha HTTP/1.1", host: "localhost"
+2023/05/29 11:14:02 [info] 7#7: *1 client timed out (110: Connection timed out) while waiting for request, client: 172.18.0.1, server: 0.0.0.0:80

+ 6 - 0
DevOps/mnt/data/log/localhost.log

@@ -0,0 +1,6 @@
+172.18.0.1 - - [28/Dec/2022:14:44:06 +0800] "GET /site/sha HTTP/1.1" 404 159 "-" "VSTeamExplorer-GitHub"
+172.18.0.1 - - [28/Dec/2022:14:50:49 +0800] "GET /site/sha HTTP/1.1" 404 159 "-" "VSTeamExplorer-GitHub"
+172.18.0.1 - - [29/May/2023:11:13:02 +0800] "GET / HTTP/1.1" 500 5 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.57"
+172.18.0.1 - - [29/May/2023:11:58:01 +0800] "GET / HTTP/1.1" 500 5 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.57"
+172.18.0.1 - - [29/May/2023:11:58:04 +0800] "GET / HTTP/1.1" 500 5 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.57"
+172.18.0.1 - - [29/May/2023:11:58:07 +0800] "GET / HTTP/1.1" 500 5 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.57"

+ 0 - 0
DevOps/mnt/data/log/php-fpm.log


+ 1 - 0
DevOps/mnt/data/log/readme.txt

@@ -0,0 +1 @@
+日志文件保存路径

+ 179 - 0
DevOps/mnt/data/log/wanggang.com.log

@@ -0,0 +1,179 @@
+172.18.0.1 - - [01/Aug/2022:17:42:33 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/InquireApi/ReportStatLog.php HTTP/1.1" 200 20 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:17:42:35 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/InquireApi/ReportStatLog.php HTTP/1.1" 200 20 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:17:42:35 +0800] "GET /ylsj2019/Gameserver/Amfphp/service_call/InquireApi/CheckUpdate.php?clientVer=22&plat=Android&channel=TapTap HTTP/1.1" 200 179 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:17:42:37 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 76 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:17:48:11 +0800] "GET /robots.txt HTTP/1.1" 403 561 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:48:12 +0800] "GET /ylsj2019/phpRedisAdmin/?view&s=0&d=0&key=log-Err HTTP/1.1" 200 3098 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:49:07 +0800] "GET /ylsj2019/phpRedisAdmin/?view&s=0&d=0&key=log-Err HTTP/1.1" 200 3098 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:51:31 +0800] "GET /phpRedisAdmin/?view&s=0&d=0&key=log-Err HTTP/1.1" 200 19932 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [01/Aug/2022:17:52:15 +0800] "GET /phpRedisAdmin/?view&s=0&d=0&key=log-Err HTTP/1.1" 200 19932 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0"
+172.18.0.1 - - [01/Aug/2022:18:01:38 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/InquireApi/ReportStatLog.php HTTP/1.1" 200 20 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:01:40 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/InquireApi/ReportStatLog.php HTTP/1.1" 200 20 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:01:40 +0800] "GET /ylsj2019/Gameserver/Amfphp/service_call/InquireApi/CheckUpdate.php?clientVer=22&plat=Android&channel=TapTap HTTP/1.1" 200 179 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:01:42 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 355103 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:01:48 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/InquireApi/ReportStatLog.php HTTP/1.1" 200 20 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:01:48 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 206 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:03:03 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 81 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:03:03 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 81 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:03:05 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 2143 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:03:31 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:03:31 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/InquireApi/ReportStatLog.php HTTP/1.1" 200 20 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:03:31 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:03:32 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 642 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:03:33 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 72 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:03:33 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 85 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:04:32 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:05:41 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 641 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:05:41 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/InquireApi/ReportStatLog.php HTTP/1.1" 200 20 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:05:42 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:05:42 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 322 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:05:42 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 330 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:05:43 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:05:44 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 72 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:05:44 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 85 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:06:42 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [01/Aug/2022:18:07:42 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:08:55:59 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/InquireApi/ReportStatLog.php HTTP/1.1" 200 20 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:08:56:04 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/InquireApi/ReportStatLog.php HTTP/1.1" 200 20 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:08:56:05 +0800] "GET /ylsj2019/Gameserver/Amfphp/service_call/InquireApi/CheckUpdate.php?clientVer=22&plat=Android&channel=TapTap HTTP/1.1" 200 179 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:08:56:07 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:08:56:11 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/InquireApi/ReportStatLog.php HTTP/1.1" 200 20 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:08:56:11 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 231 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:27:10 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 2224 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:27:11 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 2171 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:27:53 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:27:53 +0800] "POST /ylsj2019/Gameserver/Amfphp/service_call/InquireApi/ReportStatLog.php HTTP/1.1" 200 20 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:27:53 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:27:54 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 330 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:27:54 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 330 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:27:55 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:27:55 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 72 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:27:56 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 85 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:28:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:28:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:28:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 452 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:28:54 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:29:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:29:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:29:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 452 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:29:54 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:30:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:30:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:30:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 452 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:30:55 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:31:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:31:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:31:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 452 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:31:55 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:32:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:32:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:32:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 452 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:32:55 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:33:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:33:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:33:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 453 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:33:56 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:34:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:34:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:34:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 453 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:34:56 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:35:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:35:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:35:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 450 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:35:57 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:36:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:36:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:36:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 452 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:36:57 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:37:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:37:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:37:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 452 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:37:57 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:38:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:38:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:38:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 452 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:38:58 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:39:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:39:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:39:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 452 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:39:58 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:40:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:40:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:40:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 451 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:40:58 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:41:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:41:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:41:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 453 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:41:59 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:42:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:42:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:42:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 453 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:42:59 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:43:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:43:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:43:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 452 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:43:59 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:44:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:44:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:44:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 452 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:45:00 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 98 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:45:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:45:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:45:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 453 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:46:00 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 98 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:46:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:46:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:46:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 453 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:47:01 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:47:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:47:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:47:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 453 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:48:01 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:48:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:48:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:48:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 453 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:49:02 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:49:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:49:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:49:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 452 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:50:02 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:50:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:50:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:50:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 454 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:51:02 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:51:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:51:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:51:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 454 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:52:03 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:52:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:52:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:52:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 450 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:53:03 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:53:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:53:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:53:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 453 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:54:04 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:54:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:54:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:54:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 452 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:55:04 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:55:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:55:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:55:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 453 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:56:04 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:56:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:56:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:56:47 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 453 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:57:05 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:57:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:57:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:57:46 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 453 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:58:05 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 99 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [02/Aug/2022:09:58:16 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 200 65 "-" "UnityPlayer/2021.3.1f1c1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)"
+172.18.0.1 - - [03/Aug/2022:17:34:55 +0800] "GET /robots.txt HTTP/1.1" 403 561 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
+172.18.0.1 - - [29/May/2023:11:13:12 +0800] "GET /SweepAllTower/Gameserver/Amfphp/?%7B%22uid%22:%22%22,%22ope%22:600,%22cmd%22:6002,%22paras%22:%5B%2220230526151908%22%5D,%22ts%22:1685090773,%22zoneid%22:0,%22SN%22:0,%22TK%22:null,%22CV%22:%22unityEditor%22%7D HTTP/1.1" 200 368 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [29/May/2023:11:13:15 +0800] "POST /SweepAllTower/Gameserver/Amfphp/ HTTP/1.1" 200 226 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [29/May/2023:11:13:18 +0800] "POST /SweepAllTower/Gameserver/Amfphp/ HTTP/1.1" 200 225 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [29/May/2023:11:14:01 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 500 5 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [29/May/2023:11:14:42 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 500 5 "-" "WebRequest/mail@wanggangzero.cn"
+172.18.0.1 - - [29/May/2023:11:15:25 +0800] "POST /ylsj2019/Gameserver/Amfphp/ HTTP/1.1" 500 5 "-" "WebRequest/mail@wanggangzero.cn"

+ 56 - 0
Gameserver/Amfphp/AutoLoad.php

@@ -0,0 +1,56 @@
+<?php
+
+namespace loyalsoft;
+
+/**
+ * 加载处理类
+ * @version
+ *          1.0.0 Created at 2017-2-14. by --gwang
+ * @author gwang (mail@wanggangzero.cn)
+ * @copyright ? 2017-2-14, SJZ LoyalSoft Corporation & gwang. All rights reserved.
+ */
+class AutoLoad {
+
+    /**
+     * 初始化代码自动载入功能
+     */
+    static public function Init() {
+        static $a = true;                                                       # 利用静态变量, 避免重复执行
+        if ($a) {
+            static $incs = array(#                                              # 指定框架查找路径
+                ROOTDIR . '/util/', #                                           # 常用辅助代码
+                ROOTDIR . '/process/', #                                        # 逻辑处理代码
+                ROOTDIR . '/model/User/', #                                     # 数据结构定义
+            );
+            if (defined("CodeGen_Folder")) {
+                $incs[] = CodeGen_Folder;
+            }
+            $incPath = get_include_path() . PATH_SEPARATOR . join(PATH_SEPARATOR, $incs);
+            set_include_path($incPath);
+//            var_dump(get_include_path());
+            static $ns = __NAMESPACE__;                                         # 当前命名空间(loyalsoft)
+            spl_autoload_register(function ($className) use ($ns) {             # 框架: 添加自动加载功能
+                if (strncmp($className, $ns, strlen($ns)) == 0) {               # 过滤: 符合当前命名空间的类
+                    include str_replace("$ns\\", '', $className) . '.php';      # 约定: 文件名要剔除命名空间
+                }
+            }, true, true);
+            $a = false;
+        }
+    }
+}
+
+# 预加载一部分常用的代码.
+require_once ROOTDIR . '/../globals.php';                                       # 导入全局配置
+require_once ROOTDIR . '/configs/GameConstants.php';                            # 导入游戏基础常量定义
+require_once ROOTDIR . '/configs/GameConfig.php';                               # 导入游戏静态数据
+require_once ROOTDIR . '/config.php';                                           # 服务器配置数据
+require_once ROOTDIR . '/base/Include.php';                                     # 导入框架基础对象
+require_once ROOTDIR . '/util/UtilInclude.php';                                 # 一部分Utils直接预加载
+require_once ROOTDIR . '/process/UserProc.php';                                 # 玩家处理逻辑
+//require_once ROOTDIR . '/process/FightProc/PVPProc.php';                        # (userproc中引用到了)
+//require_once ROOTDIR . '/process/EventProc/CornerSignEventProc.php';            # 角标更新各处插入
+//require_once ROOTDIR . '/process/EventProc/NormalEventProc.php';                # 2020年12月新版事件系统
+require_once ROOTDIR . '/model/User/Data_UserGame.php';                         # 游戏数据
+require_once ROOTDIR . '/model/User/Data_UserProfile.php';                      # 玩家画像
+
+AutoLoad::Init();                                                               // 直接执行初始化

+ 173 - 0
Gameserver/Amfphp/Services/AppServer.php

@@ -0,0 +1,173 @@
+<?php
+
+namespace loyalsoft;
+
+include_once __DIR__ . '/../main.php';                                          # 导入主要工具库
+
+/**
+ *  API入口
+ * @author gwang (mail@wanggangzero.cn)
+ */
+class AppServer {
+
+    /**
+     * The Main Entrance of App
+     * @return Resp
+     */
+    public function api() {
+        $uniq = uniqid();                                                       # 自己生成一个唯一串,作为此次处理过程的标记。
+        $GLOBALS['deal-uid'] = $uniq;                                           # 写入日志的时候带上,方便辨认同一个处理过程.
+        $GLOBALS['zoneid'] = req()->zoneid;                                     # 暂时未想到更好的方案
+        $err = self::BeforeProc();                                              # 预处理
+        my_Assert(ErrCode::ok == $err, $err);                                   # 如果tk校验未通过
+        $retry = 0;
+        do {
+            $retry++;
+            if ($retry > 1) {
+                new Req(req()->toString());                                     # 如果是重试,需要重新刷新下req的数据
+                Resp::$ext_events = array();                                    # fix:客户端发现event播放2次的情况.
+            }
+            $resp = self::Route();                                              # 分发逻辑
+            if ($retry > 12) {                                                  # 最大重试次数
+                Err(ErrCode::err_retry, "数据写入失败, 重试{$retry}次");
+                break;
+            }
+        } while (!self::AfterProc($resp));                                      # 执行后处理逻辑
+        return $resp;
+    }
+
+    /**
+     * 预处理逻辑
+     */
+    private static function BeforeProc() {
+        my_Assert(!config::Inst()->isBaned(req()->uid), ErrCode::err_server_updating); # 检查封号
+        if (self::isUpdating()) {                                        # 检查是否处于更新阶段,暂停对玩家请求的响应。
+            if (req()->uid && !config::Inst()->isTester(req()->uid)) {                               # 排除测试号
+                return ErrCode::err_server_updating;
+            }
+        }
+        $ssd = GameConfig::service_schedule_getItem(1);                         # 服务计划(固定只有1条)
+        if (now() > $ssd->startts && now() < $ssd->endts) {                     # 在维护期间
+            Err(ErrCode::err_server_maintaining, $ssd->reason);
+        }
+//        if (!Index::$isDebugging && abs(now() - req()->ts) > OFFSET_MSGTIME) {       # 如果服务端客户端时间戳超过规定误差,则消息非法
+//            return ErrCode::err_outtime;
+//        }
+        // todo: 检查clientVersion 判断是否应该强制升级
+        return self::checkVersion();                                            # 最后检查下客户端版本
+    }
+
+    /**
+     * 后处理逻辑
+     * @param Resp $resp
+     */
+    private static function AfterProc(&$resp) {
+        if (req()->userInfoChanged) {                                           # 回写玩家数据
+            if (!UserProc::setUserInfo(ctx())) {                                # 失败, 改写返回值
+                return false;
+            }
+        }
+        $resp->AfterProc();
+//        self::LogCmd($resp);                                                    # 向MySQL记录操作日志
+        self::LogCmdMongo($resp);                                               # 向MongoDB写入操作日志
+        CLog::flush();                                                          # flush日志
+        //UserProc::CollectUserLevelParam();
+        //UserProc::CollectHeroLevelParam();
+        return true;
+    }
+
+    /**
+     * 新版: 使用pdo_mysql+dao版本
+     * @param Resp $resp
+     */
+    private static function LogCmd($resp) {
+        $tablename = 'tab_op_log' . date('Ymd');                                # 今天的表名
+        $old_tablename = 'tab_op_log' . date('Ymd', now(-86400 * 21));          # 待删除的表名 日志保留21天
+        $sql = sprintf('create table if not exists %s like `tpl_op_log_tab`;', $tablename); # 创建今天的表
+        $sql .= sprintf('drop table if exists %s;', $old_tablename);            # 循环删除以前的表
+        $sql .= sprintf("insert into %s (`uid`,`zoneid`,`cmd`,`days`,`param`,`ret`) values ('%s', %d, %d, %d, '%s', '%s');", #
+                $tablename, req()->uid, req()->zoneid, req()->cmd, #            # Uid, zoneid, cmd
+                (null != ctx() ? (totalDays() - totalDays(ctx()->baseInfo->firstLogin)) : 0), #  # ps.留存天数
+                JsonUtil::encode(req()->paras), #                               # req->paras
+                JsonUtil::encode($resp->result)); #                             # resp->result
+        daoInst()->exec($sql);                                                  # 执行sql
+    }
+
+    /**
+     * 新版: MongoDB版本
+     * @param Resp $resp
+     */
+    private static function LogCmdMongo($resp) {
+        $tablename = 'tab_op_log' . date('Ym');                        # 当月的日志表名
+        $arr = array(
+            'uid' => req()->uid,
+            'req' => req()->storage(),
+            'ret' => $resp,
+            'ts' => TimeUtil::dtCurrent(),
+        );
+        gMongo()->insert($tablename, $arr);
+    }
+
+    /**
+     * 路由方法
+     */
+    private static function Route() {
+        $proc = OpeCode::getProc(req()->ope);                                   # 映射处理模块.
+//        DebugHelper::print_stack_trace();
+        my_Assert($proc != "err", ErrCode::ope_err);                            # 未能找到对应的处理模块
+        try {
+            $resp = call_user_func(array($proc, 'procMain'), req());            # 调用对应的处理逻辑
+            if (!($resp instanceof Resp)) {                                     # 异常返回值
+                Err(ErrCode::err_innerfault, JsonUtil::encode($resp));
+            }
+            return $resp;                                                       # 返回值
+        } catch (\Exception $ex) {                                              # 异常信息写入日志
+            $msg = CommUtil::str2UTF8($ex->getMessage());                       # 异常信息转下码
+            Err(ErrCode::err_unknownn, "call_user_func got Exception: $msg");   # 返回给客户端
+        }
+    }
+
+    /**
+     *  返回是否处于更新中
+     * @return boolean
+     */
+    private static function isUpdating() {
+        $ts = now();
+        if ($ts > glc()->updatingBeginTs && $ts < glc()->updatingEndTs) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * 检查客户端版本是否需要强制更新
+     * @return int/ErrCode
+     */
+    private static function checkVersion() {
+        $ret = ErrCode::ok;
+        if (req()->CV == "unityEditor" || req()->CV == "unity") {
+            return $ret;
+        }
+        if (req()->CV == "nil") {
+            return ErrCode::clientversionlow_err;
+        }
+
+        $limit_Ver = "1.1.8";                                                  # 限制客户端最低版本
+        $clientArr = CommUtil::split(req()->CV, ".");
+        $serverArr = CommUtil::split($limit_Ver, ".");
+        $client = $clientArr[0] * 1000 * 1000 + $clientArr[1] * 1000 + $clientArr[2];
+        $server = $serverArr[0] * 1000 * 1000 + $serverArr[1] * 1000 + $serverArr[2];
+        if ($server > $client) {                                                # 更新游戏状态
+            if ($clientArr[0] < $serverArr[0]                                   # 主版本号小
+                    || $clientArr[1] < $serverArr[1]) {                         # 或者次版本号小
+                $ret = ErrCode::clientversionlow_err;                           # 返回错误码,强制更新1
+                req()->updateInfo = "请更新游戏后再继续!";
+            } else if ($clientArr[2] < $serverArr[2]                            # 小版本号不一致
+                    && req()->cmd == CmdCode::cmd_user_getzonelist) {           # 只有在请求分区列表的时候提示下, 其他消息不强制更新
+                req()->updateInfo = "游戏有更新!";                               # 提示更新,可以咱不更新
+                $ret = ErrCode::clientversionlow_err;                           # 返回错误码,强制更新1
+            }
+        }
+        return $ret;
+    }
+}

+ 240 - 0
Gameserver/Amfphp/Services/TestServer.php

@@ -0,0 +1,240 @@
+<?php
+
+namespace loyalsoft;
+
+include_once __DIR__ . '/AppServer.php';
+require_once __DIR__ . '/../process/ActiveProc/CipheredBase32.php';              # 算法库
+
+/**
+ * Description of TestServer
+ * UT 测试
+ * 约定: 底划线开头的函数为私有函数,不会在黑窗界面出现.
+ */
+class TestServer {
+
+    /**
+     * 入口函数专用测试
+     * @param type $req
+     */
+    static public function testApi($req) {
+        DebugHelper::debug($req);
+        $app = new AppServer();
+        new Req($req);
+        $ret = $app->api();
+        DebugHelper::debug($ret);
+    }
+
+    /**
+     * 运行环境自检:
+     *   PHP 版本,扩展模块
+     *   redis操作性
+     *   sqldb操作性
+     */
+    static function selfTest() {
+        echoLine("phpver: " . PHP_VERSION . PHP_EOL);                           # 打印下PHP版本
+        SelfChecker::CheckConfig();                                             # 进行配置环境检测
+    }
+
+//----------------------------------------------------
+
+    /**
+     * 给玩家发邮件
+     * @param type $uid
+     * @param type $zoneid
+     * @param type $items
+     * @param type $ctx
+     */
+    public static function sendUserEmail($uid, $zoneid, $title, $reward, $ctx) {
+        $mail = new Ins_Email(null, 1, $title, #
+                $ctx, $reward);
+        $list = explode(',', $uid);
+        if (count($list) != 0) {
+            foreach ($list as $userId) {
+                EmailProc::InsertMail($zoneid, $userId, $mail);
+            }
+        }
+
+        echo '邮件已经成功发送';
+    }
+
+    private static function GetUserDataKeys($uid, $zoneid) {
+
+        $list = array();
+        $zoneKey = MemKey_User::Union_PlayedZoneInfo_normal($uid);              # 分区信息
+        $list[] = $zoneKey;
+        $publicKey = MemKey_User::Union_PublicState_hash($uid);                 # 公共信息
+        $list[] = $publicKey;
+        $gameInfoKey = MemKey_User::Info_hash($zoneid, $uid);                   # 游戏数据主体
+        $list[] = $gameInfoKey;
+        $interactKey = MemKey_User::Interact($zoneid, $uid);                    # 交互字段
+        $list[] = $interactKey;
+        $OffensiveLogKey = MemKey_User::OffensiveLog_zset($zoneid, $uid);       # 主动挑战记录
+        $list[] = $OffensiveLogKey;
+        $DefensiveLogKey = MemKey_User::DefensiveLog_zset($zoneid, $uid);       # 被动挑战记录
+        $list[] = $DefensiveLogKey;
+        $PVP_OffensiveLogKey = MemKey_User::PVP_OffensiveLog_zset($zoneid, $uid); # 竞技场主动挑战记录
+        $list[] = $PVP_OffensiveLogKey;
+        $PVP_DefensiveLogKey = MemKey_User::PVP_DefensiveLog_zset($zoneid, $uid); # 竞技场被动挑战记录
+        $list[] = $PVP_DefensiveLogKey;
+        $SigKey = MemKey_User::Sig($zoneid, $uid);                              # 玩家证书
+        $list[] = $SigKey;
+
+        $CurIdKey = MemKey_User::Mail_CurId_int($zoneid, $uid);                 # 当前邮件编号
+        $list[] = $CurIdKey;
+        $SysRecordKey = MemKey_User::Mail_SysRecord_set($zoneid, $uid);         # 当前已经领取过的系统邮件记录
+        $list[] = $SysRecordKey;
+        $QueueKey = MemKey_User::Mail_Queue_hash($zoneid, $uid);                # 邮件列表
+        $list[] = $QueueKey;
+        return $list;
+    }
+
+    /**
+     * 删除账号-区别内外网
+     * @param type $uid
+     * @param type $zoneid
+     */
+    static public function deleteUserUId($uid, $zoneid) {
+        $mem = gMem();
+        $list = self::GetUserDataKeys($uid, $zoneid);                           # 玩家数据key
+        foreach ($list as $key) {
+            if ($mem->exists($key)) {
+                $mem->delete($key);
+            }
+        }
+
+        // <editor-fold defaultstate="collapsed" desc="清理mongodb中的数据">
+        self::deleteUserMapData($uid, $zoneid);
+
+        // </editor-fold>
+
+        echo '删除账号成功';
+    }
+
+    /**
+     * 删除账号-区别内外网
+     * @param type $uid
+     * @param type $type
+     */
+    static public function deleteUserMapData($uid, $zoneid) {
+        if (gMongo()->delete("playerMapInfo", array('Uid' => $uid, 'ZoneId' => intval($zoneid)))) { # 地图
+            echoLine("地图数据删除成功");
+        } else {
+            echoLine("请单独检查一下地图数据是否已删除.");
+        }
+        if (gMongo()->delete("PlayerInfo", array('Uid' => $uid, 'ZoneId' => intval($zoneid)))) { # 地图
+            echoLine("Player数据删除成功");
+        } else {
+            echoLine("请单独检查一下Player数据是否已删除.");
+        }
+        if (gMongo()->delete("userInfoBack", array('key' => MemKey_User::Info_hash($zoneid, $uid))) > 0) {              # 游戏数据备份
+            echoLine("玩家info备份数据删除成功");
+        }
+    }
+
+    /**
+     * 跳过当前任务步骤
+     * @param type $uid
+     * @param type $zoneid
+     * @param type $curNum
+     */
+    static public function JumpCurTaskStep($uid, $zoneid, $curNum) {
+        $userRedisKey = MemKey_User::Info_hash($zoneid, $uid);
+        $privateState = gMem()->hget($userRedisKey, 'privateState');
+        $store = gMem()->hget($userRedisKey, 'store');
+
+        $k = 1;
+        $curMainTaskUId = $privateState->taskCardTracing->$k;
+        if (StlUtil::dictHasProperty($store->taskcards, $curMainTaskUId)) {
+            $curSteps = $store->taskcards->$curMainTaskUId->curSteps;
+            $n = count($curSteps);
+            $index = 0;
+
+            foreach ($curSteps as &$val) {
+                $index += 1;
+                if ($index == $n) {
+                    $val->cur = $curNum;
+                }
+            }
+
+            $store->taskcards->$curMainTaskUId->curSteps = $curSteps;
+            gMem()->hset($userRedisKey, 'store', $store);
+            echoLine("修改成功");
+        } else {
+            echoLine("不存在这个任务信息");
+        }
+    }
+
+    /**
+     * 将当前任务改成一个新的任务
+     * @param type $uid
+     * @param type $zoneid
+     * @param type $taskId
+     */
+    static public function SetNewTask($uid, $zoneid, $taskId) {
+        $userRedisKey = MemKey_User::Info_hash($zoneid, $uid);
+        $privateState = gMem()->hget($userRedisKey, 'privateState');
+        $store = gMem()->hget($userRedisKey, 'store');
+
+        $k = 1;
+        $curMainTaskUId = $privateState->taskCardTracing->$k;
+
+        $task = new Ins_TaskCard($taskId);
+        $task->uid = $curMainTaskUId;
+        $task->state = 2;
+        $store->taskcards->$curMainTaskUId = $task;
+
+        gMem()->hset($userRedisKey, 'store', $store);
+        echoLine("修改成功");
+    }
+
+    private static function MemOnline() {
+        static $cmem = null;
+        if ($cmem == null) {
+            $nosql = config::Inst()->nosql;
+            $cmem = new CRedisUtil();
+            $cmem->conn($nosql->host, $nosql->port, $nosql->pwd, 0);
+        }
+        return $cmem;
+    }
+
+    private static function MemDev() {
+        static $cmem = null;
+        if ($cmem == null) {
+            $nosql = config::Inst()->nosql;
+            $cmem = new CRedisUtil();
+            $cmem->conn($nosql->host, $nosql->port, $nosql->pwd, 2);
+        }
+        return $cmem;
+    }
+
+    /**
+     * 临时方法: 从online复制数据到dev,覆盖
+     * @param type $uid
+     * @param type $zoneid
+     */
+    public static function tempCopyDataFromOnlineToDev($uid, $zoneid) {
+
+        $devMem = self::MemDev();
+        $onlineMem = self::MemOnline();
+//        $zoneKey = MemKey_User::Union_PlayedZoneInfo_normal($uid);              # 分区信息
+//        $zoneInfo = $onlineMem->get($zoneKey);
+//        $devMem->set($zoneKey, $zoneInfo);
+//        $publicKey = MemKey_User::Union_PublicState_hash($uid);                 # 公共信息
+//        $pubs = $onlineMem->hgetall($publicKey);
+//        $devMem->hmset($publicKey, $pubs);
+
+        $gameInfoKey = MemKey_User::Info_hash($zoneid, $uid);                   # 游戏数据主体
+        $userInfo = $onlineMem->hgetall($gameInfoKey);
+        $obj = new Data_UserGame($userInfo);
+        $devMem->delete($gameInfoKey);
+        $devMem->hmset_Cas($gameInfoKey, $obj);
+
+        // <editor-fold defaultstate="collapsed" desc="清理mongodb中的数据">
+        self::deleteUserMapData($uid, $zoneid);
+
+        // </editor-fold>
+
+        echo '账号主体数据已覆盖';
+    }
+
+}

+ 1472 - 0
Gameserver/Amfphp/base/CmdCode.php

@@ -0,0 +1,1472 @@
+<?php
+
+namespace loyalsoft;
+
+/**
+ * 操作码常量定义
+ * @author jgao
+ */
+class CmdCode {
+    //
+    // <editor-fold defaultstate="collapsed" desc="支付操作码 - 88xx">
+
+    /**
+     * 领取首付礼包
+     */
+    const cmd_pay_getfirstpaygift = 8802;
+
+    // <editor-fold defaultstate="collapsed" desc="移动支付">
+    //---------- 移动端 支付API 操作码 ----
+
+    /**
+     * 【移动端】购买物品
+     */
+    const cmd_mpay_pay = 8807;
+
+    /**
+     * 【移动端】查询游戏币余额
+     */
+    const cmd_mpay_get_balance = 8808;
+
+    /**
+     * 【移动端】购买神秘商城物品
+     */
+    const cmd_mpay_buyDynamic = 8809;
+
+    /**
+     * 【移动端】刷新神秘商城物品
+     */
+    const cmd_mpay_getDynamic = 8810;
+
+    /**
+     *  【移动端】自助检查异常订单
+     */
+    const cmd_mpay_selfCheckOrders = 8811;
+
+    /**
+     *  【移动端】查询付费记录
+     */
+    const cmd_mpay_getPayRecords = 8812;
+
+    /**
+     * 临时--正式的要根据具体功能实现
+     */
+    const cmd_mpay_PayDeliverGoods = 8813;
+
+    /**
+     * 充值领取奖励
+     */
+    const cmd_mpay_UserRechargeDrawPrize = 8814;
+
+    /**
+     * 新的首冲功能
+     */
+    const cmd_mpay_NewFirstRecharge = 8815;
+
+//
+//
+// </editor-fold>
+//
+// </editor-fold>
+    //
+    // <editor-fold defaultstate="collapsed" desc="用户操作码 - 60xx">
+
+    /**
+     * 获取分区列表
+     */
+    const cmd_user_getzonelist = 6000;
+
+    /**
+     * 玩家登录指令
+     */
+    const cmd_user_loginuserinfo = 6001;
+
+    /**
+     * 常量信息指令
+     */
+    const cmd_user_gameconstinfo = 6002;
+
+    /**
+     * 获取连续登录奖励
+     */
+    const cmd_user_acceptcontidaysgift = 6003;
+
+    /**
+     * 更新玩家新手引导的进度
+     */
+    const cmd_user_registerNewUID = 6004;
+
+    /**
+     * 【测试】机器码登录
+     */
+    const cmd_user_testUserLogin = 6005;
+
+    /**
+     *  注册新用户
+     */
+    const cmd_user_registerNewRole = 6006;
+
+    /**
+     *  完成新手引导
+     */
+    const cmd_user_completeNewbieGuide = 6007;
+
+    /**
+     * [6008] 发放新手引导所需卡牌
+     */
+    const cmd_user_setNewbieGuideCards = 6008;
+
+    /** [609]
+     * 新手引导——设置结束标志位
+     */
+    const cmd_user_setNewbieGuideOver = 6009;
+
+    /**
+     * [6010] 设置/修改玩家昵称
+     */
+    const cmd_user_setNickname = 6010;
+
+    /** [6011]
+     * 修改头像框
+     */
+    const cmd_user_SetUserHeadImageBorder = 6011;
+
+    /**
+     * 更换玩家形象
+     */
+    const cmd_user_setUserImage = 6012;
+
+    /**
+     * 更换玩家头像
+     */
+    const cmd_user_changeUserHeadImg = 6013;
+
+    /**
+     * 6014 初始化火山引擎
+     */
+    const cmd_user_stat_initvolc = 6014;
+
+    /**
+     * 6015 收集玩家意见和bug
+     */
+    const cmd_user_ctxBack = 6015;
+
+    /**
+     * 6016 查询其他玩家信息
+     */
+    const cmd_user_other_info = 6016;
+
+    /*
+     * 删除角色
+     */
+    const cmd_user_deleteUserUId = 6017;
+    // </editor-fold>
+    //
+    // <editor-fold defaultstate="collapsed" desc="好友操作码 - 61xx">
+
+    /**
+     * [6101]申请好友
+     */
+    const cmd_user_friend_apply = 6101;
+
+    /**
+     * [6102]同意成为好友
+     */
+    const cmd_user_friend_accept = 6102;
+
+    /**
+     * [6103]拒绝好友申请->?这里需不需要通知被拒绝人?
+     */
+    const cmd_user_friend_deny = 6103;
+
+    /**
+     * [6104]解除好友关系
+     */
+    const cmd_user_friend_remove = 6104;
+
+    /**
+     * [6105]拉取好友请求列表
+     */
+    const cmd_user_friend_getapplylist = 6105;
+// --------- 好友列表 -------------
+
+    /**
+     * [6106] 拉取好友列表
+     */
+    const cmd_user_friend_get_list = 6106;
+
+    /**
+     * [6107] 拉取好友详细信息(分批次)
+     */
+    const cmd_user_friend_get_infos = 6107;
+//----------消息--------------------
+
+    /**
+     * [6108] 给好友发送消息
+     */
+    const cmd_user_friend_leave_message = 6108;
+
+    /**
+     * [6109] 拉取最新好友消息
+     */
+    const cmd_user_friend_get_message = 6109;
+//------------查找----------------------
+
+    /**
+     * [6110]搜索好友
+     */
+    const cmd_user_friend_search = 6110;
+
+    /**
+     * [6111]系统推荐好友列表(添加好友面板适用)
+     */
+    const cmd_user_friend_suggestList = 6111;
+// ---------------刷新--------------------
+
+    /**
+     * [6112] 重新载入好友模块(刷新好友模块,该删除的删除,该添加的添加)
+     */
+    const cmd_user_friend_reload = 6112;
+
+    /**
+     * [6113] 拉取好友向我赠送礼物的记录
+     */
+    const cmd_user_friend_gift_getlist = 6113;
+
+    /**
+     * [6114] 领取礼物
+     */
+    const cmd_user_friend_gift_redraw = 6114;
+
+    /**
+     * [6115]向好友示好(如浇水,送花之类的表现)
+     */
+    const cmd_user_friend_gift_send = 6115;
+
+    /**
+     * [6116]请求查看玩家是否有未读信息
+     */
+    const cmd_user_friend_unduckmsg = 6116;
+
+    /**
+     * [6117]请求查看玩家公会信息
+     */
+    const cmd_user_friend_LookGuildInfo = 6117;
+
+    /**
+     * [6118]请求查看玩家简介
+     */
+    const cmd_user_friend_LookFriendInfo = 6118;
+// </editor-fold>
+    //
+    // <editor-fold defaultstate="collapsed" desc="任务操作码 - 62xx">
+
+    /**
+     * [6201] 任务 - 拉取最新任务信息
+     */
+    const cmd_task_getInfo = 6201;
+
+    /**
+     * [6202] 任务 - 领取任务奖励
+     */
+    const cmd_task_getReward = 6202;
+
+    /**
+     * [6203]普通任务 - 设置关注任务
+     */
+    const cmd_Task_setAttentionTask = 6203;
+
+    /**
+     * [6204]日常任务 - 领取活跃度奖励
+     */
+    const cmd_Task_getActiveReward = 6204;
+
+    // <editor-fold defaultstate="collapsed" desc="任务卡相关通讯">
+    //
+
+    /**
+     * 任务卡 - 剧情触发任务结束
+     */
+    const cmd_taskCard_PlotFinish = 6210;
+
+    /**
+     * 任务卡 - 剧情回收任务卡
+     * @deprecated since version 2020.12.12
+     */
+    const cmd_taskCard_PlotExchangeTaskCard = 6211;
+
+    /**
+     * 任务卡 - 剧情赠与任务卡
+     * @deprecated since version 2020.12.12
+     */
+    const cmd_taskCard_PlotPresentTaskCard = 6212;
+
+    /**
+     * 任务卡 - 即时结算
+     * @deprecated since version 2020.12.12
+     */
+    const cmd_taskCard_FinishAndReward = 6213;
+
+    /**
+     * 任务卡 - 杀死怪物事件
+     */
+    const cmd_taskCard_onKillMonster = 6214;
+
+    /**
+     * 任务卡 - 激活
+     */
+    const cmd_taskCard_active = 6215;
+
+    /**
+     * 任务卡 - 领取奖励
+     */
+    const cmd_taskCard_reward = 6216;
+
+    /**
+     * 任务卡 - 更新信息
+     */
+    const cmd_taskCard_info = 6217;
+
+    /**
+     * 任务步骤 - start/finish action完成
+     */
+    const cmd_taskCard_StepActionDone = 6218;
+
+    /**
+     * [6219]任务追踪-设置当前追踪
+     */
+    const cmd_Task_setTracingCard = 6219;
+
+    /**
+     * [6220] 任务步骤 - 回档重置
+     */
+    const cmd_task_StepFallBack = 6220;
+
+    //
+// </editor-fold>
+// <editor-fold defaultstate="collapsed" desc="任务卡商城">
+//
+
+    /**
+     * 任务卡商城 - 开启商店
+     */
+    const cmd_taskcard_shop_open = 6231;
+
+    /**
+     * 任务卡商城 - 购买
+     */
+    const cmd_taskcard_shop_buy = 6232;
+
+    /**
+     * 任务卡商城 - 手动刷新
+     */
+    const cmd_taskcard_shop_refresh = 6233;
+
+//
+// </editor-fold>
+    // </editor-fold>
+    //
+    // <editor-fold defaultstate="collapsed" desc="英雄操作码 - 63xx">
+
+    /**
+     * 英雄 - 升级
+     * ::= 消耗金币和碎片进行升级
+     */
+    const cmd_hero_levelup = 6301;
+
+    /**
+     * 英雄 - 加上装备
+     */
+    const cmd_hero_equip = 6302;
+
+    /**
+     * 英雄 - 卸下装备
+     */
+    const cmd_hero_unequip = 6303;
+
+    /**
+     * 英雄 - 升阶 :: 消耗碎片
+     */
+    const cmd_hero_stageup = 6304;
+
+    /**
+     * 英雄- 升星
+     */
+    const cmd_hero_upstar = 6305;
+
+    /**
+     * 英雄- 更改锁定状态
+     */
+    const cmd_hero_changelockstate = 6306;
+
+    /**
+     * 英雄- 更改好友支援状态
+     */
+    const cmd_hero_changefirendbackup = 6307;
+
+    /**
+     * 英雄---获得 一个英雄
+     */
+    const cmd_hero_gethero = 6308;
+
+    /**
+     * 英雄的突破升级
+     */
+    const cmd_hero_strength = 6309;
+
+    /**
+     * 英雄的解锁好感度
+     */
+    const cmd_hero_openFavor = 6310;
+
+    /**
+     * 英雄的分解获得好感度晶石
+     */
+    const cmd_hero_separate = 6311;
+
+    /**
+     * 购买玩家可以收集的英雄的数量上限
+     */
+    const cmd_hero_buyCollectHeroLimtCount = 6312;
+
+    /**
+     * 更改好友支援
+     */
+    const cmd_hero_changefriendsupport = 6313;
+
+    /**
+     * 英雄的技能升级
+     */
+    const cmd_hero_upgradeSkillLevel = 6314;
+
+    /**
+     * 存储队伍配置
+     */
+    const cmd_hero_saveHeroTeamConfig = 6315;
+
+    /**
+     * 拉取英雄评论列表
+     */
+    const cmd_hero_GetDiscuss = 6316;
+
+    /**
+     * 对英雄发表评论
+     */
+    const cmd_hero_PostDiscuss = 6317;
+
+    /**
+     * 给某条评论点赞
+     */
+    const cmd_hero_PraiseDiscuss = 6318;
+
+    /**
+     * 删除对某个英雄的评论
+     */
+    const cmd_hero_DeleteDiscuss = 6319;
+
+    /**
+     * 给某个英雄打分
+     */
+    const cmd_hero_scoreit = 6320;
+
+    /**
+     * 购买英雄
+     */
+    const cmd_hero_buyHero = 6321;
+
+    /**
+     * 英雄神血升级
+     */
+    const cmd_hero_upGodBlood = 6322;
+
+    /**
+     * 英雄碎片  先解锁  再购买
+     */
+    const cmd_hero_unlockByPieces = 6323;
+
+    /**
+     * 英雄技能 - 解锁技能
+     */
+    const cmd_hero_unlockSkill = 6324;
+
+    /**
+     * 英雄技能 - 一键升级
+     */
+    const cmd_hero_skillLevel_onekeyupgrade = 6325;
+
+    /**
+     * 升星
+     */
+    const cmd_hero_StrengthenStar = 6326;
+
+    /**
+     * 言灵升级
+     */
+    const cmd_hero_YanlinUpLevel = 6327;
+
+    /**
+     * 唤灵师突破
+     */
+    const cmd_hero_tupo = 6328;
+
+    /**
+     * 言灵替换
+     */
+    const cmd_hero_YanLingReplace = 6329;
+
+    /**
+     * 召唤言灵
+     */
+    const cmd_hero_zhaohuanYanLing = 6330;
+// </editor-fold>
+    //
+    // <editor-fold defaultstate="collapsed" desc="仓库操作码 - 64xx">
+
+    /**
+     * 放入仓库
+     */
+    const cmd_store_put = 6401;
+
+    /**
+     * 卖出单个物品
+     */
+    const cmd_store_singleSell = 6402;
+
+    /**
+     * 从背包批量卖出物品
+     */
+    const cmd_store_mutliSell = 6403;
+
+    /**
+     * 使用物品
+     */
+    const cmd_store_use = 6404;
+
+    /**
+     * 刷新仓库
+     */
+    const cmd_store_refresh = 6405;
+
+    /**
+     * 删除道具
+     */
+    const cmd_store_delItem = 6406;
+
+    /**
+     * 测试用的命令
+     */
+    const cmd_store_Testcmd = 6407;
+
+    /**
+     * 升级某个装备
+     */
+    const cmd_store_ItemUpgrade = 6408;
+
+    /**
+     * 宝石合成
+     */
+    //const cmd_store_GemCompose = 6409;
+
+    /**
+     * 英雄穿装备
+     */
+    const cmd_store_WearEquip = 6410;
+
+    /**
+     * 英雄脱装备
+     */
+    const cmd_store_UnWieldEquip = 6411;
+
+    /**
+     * 购买增加物品栏格子数
+     */
+    const cmd_store_AddMaxPacketNum = 6412;
+
+    /**
+     * 装备熔炼
+     */
+    const cmd_store_MeltEquip = 6413;
+    /*     * *
+     * 碎片合成
+     */
+    const cmd_store_PiecesCompose = 6415;
+
+    /**
+     * 装备言灵
+     */
+    const cmd_store_WearYanling = 6416;
+
+    /**
+     * 卸下言灵
+     */
+    const cmd_store_UnWieldYanling = 6417;
+
+    /**
+     * 言灵召唤书碎片合成召唤书
+     */
+    const cmd_store_mergeYanlingbook = 6418;
+
+    /**
+     * 利用言灵召唤书召唤言灵
+     */
+    const cmd_store_callyanling = 6419;
+
+    /**
+     * 言灵进阶---废弃
+     */
+    const cmd_store_yanling_upgrade = 6420;
+
+    /**
+     * 武器升级
+     */
+    const cmd_store__weapon_upgrade = 6421;
+
+    /**
+     * 武器突破
+     */
+    const cmd_store__weapon_tupo = 6422;
+
+    /**
+     * 武器替换
+     */
+    const cmd_store_weaponReplace = 6423;
+
+    /**
+     * 宝石合成
+     */
+    const cmd_store_GemCompose = 6424;
+
+    /**
+     * 宝石研究等级提升
+     */
+    const cmd_store_GemResearchLvUp = 6425;
+
+    /**
+     * 宝石镶嵌
+     */
+    const cmd_store_GemSet = 6426;
+
+    /*
+     * 宝石卸下
+     */
+    const cmd_store_GemRemove = 6427;
+
+    /**
+     * 背包扩展
+     */
+    const cmd_store_unlockStore = 6428;
+
+    /**
+     * 购买武器
+     */
+    public const cmd_store_buyWeapon = 6429;
+
+    /**
+     * 获取商店武器信息
+     */
+    public const cmd_store_getShopWeapon = 6430;
+
+    /**
+     *
+     */
+    public const cmd_store_buySupplies = 6431;
+
+    /*
+     * 扩容第三个格子
+     */
+    public const cmd_store_expandStorage = 6432;
+
+    /*
+     * 放入和移除储物间
+     */
+    public const cmd_store_changeStorage = 6433;
+
+    /**
+     * 添加、移除血瓶
+     */
+    public const cmd_store_changeBettleItem = 6434;
+
+    /*
+     * 道具全部使用,删除
+     */
+    public const cmd_store_useBettleItem = 6435;
+
+    /**
+     * 血瓶或蓝瓶自动使用条件设置
+     */
+    public const cmd_store_setBettleItemUseVal = 6436;
+
+    /**
+     * 删除所有类型道具
+     */
+    public const cmd_store_removeItem = 6437;
+
+    /*
+     * 击杀怪,唤灵师获得的信息加成,暂时是经验
+     */
+    public const cmd_store_killMosterAddData = 6438;
+
+    /**
+     * 查看新道具
+     */
+    public const cmd_store_refreshItem = 6439;
+
+    /**
+     * 言灵进化
+     */
+    public const cmd_store_yanlingEvolve = 6440;
+
+    /**
+     * 一键进化
+     */
+    public const cmd_store_yanlingEvolve_overall = 6441;
+
+    /**
+     *
+     */
+    public const cmd_store_setBettleItemAutoVal = 6442;
+
+    /**
+     * 从前段更新到后端战力值
+     */
+    public const cmd_store_UpdateFightPower = 6443;
+// </editor-fold>
+    //
+    // <editor-fold defaultstate="collapsed" desc="活动操作码 - 65xx">
+//    /**
+//     * 开服七日活动 - 刷新任务列表
+//     */
+//    const active_day7_gettasklist = 6500;
+//
+
+    /**
+     * 活动 - 等级奖励: 领取奖励
+     */
+    const active_levelgift_getReward = 6501;
+//
+
+    /**
+     * 开服七日活动 - 领取奖励
+     */
+    const active_day7_drawreward = 6502;
+
+    /**
+     * 查询开服时间
+     */
+    const active_getzonePublicTs = 6503;
+
+    /**
+     * 查询当日在线时长信息
+     */
+    const active_getTodayOnlineInfos = 6504;
+
+//    /**
+//     * 神庙抽奖
+//     */
+//    const active_shenmiaoDrawPrize = 6505;
+//    /**
+//     * 普通任务 - 完成任务
+//     */
+//    const Task_completetask = 6506;
+//
+//    /**
+//     * 普通任务 - 领取奖励
+//     */
+//    const Task_drawreward = 6507;
+
+    /**
+     * 领取体力,间隔领取体力
+     */
+    const Task_Tili = 6508;
+
+//    /**
+//     * 活动 - 抽奖
+//     */
+//    const lottery = 6509;
+//
+//    /**
+//     * 新手引导 - 活动-抽奖
+//     */
+//    const lottery_demo = 6510;
+//
+//    /**
+//     * 活动 - 抽奖 领取保底奖励
+//     */
+//    const lottery_baodi = 6511;
+
+    /**
+     * 活动 - 凭兑换码领取礼包
+     */
+    const active_token_drawReward = 6512;
+
+    /**
+     * 活动 - 领取在线礼包
+     */
+    const active_draw_onlinegift = 6513;
+
+    /**
+     * 活动 - 领取全服注册礼包
+     */
+    const active_draw_reggift = 6514;
+
+    /**
+     * 活动 - 加油站: 领取在线赠送体力
+     */
+    const active_presentTili = 6515;
+
+    /**
+     * 活动 - 查询当前全服注册人数
+     */
+    const active_get_regnum = 6516;
+
+    /**
+     * 开宝箱-减少冷却时间
+     */
+    const box_SubCoolDown = 6517;
+
+    /**
+     * 购买体力
+     */
+    const active_BuyTili = 6520;
+
+    /**
+     * 刷新当前体力
+     */
+    const active_GetCurTili = 6521;
+
+    /**
+     * 金币兑换活动
+     */
+    const active_goldexchange = 6522;
+
+    // </editor-fold>
+    //
+    // <editor-fold defaultstate="collapsed" desc="排行榜操作码 - 66xx">
+    //
+
+    /**
+     * 排行榜 - 战斗力榜
+     */
+    const rank_fpower_getRank = 6601;
+
+    /**
+     * 排行榜 - 领取战斗力榜突破奖励
+     */
+    const rank_fpower_drawReward = 6602;
+
+    /**
+     * 排行榜 - 查询玩家战斗力排名
+     */
+    const rank_fpower_getRanking = 6603;
+
+    /**
+     * 排行榜 - 查询各榜榜一
+     */
+    const rank_getTop1 = 6604;
+
+    /**
+     * 排行榜 - 通关榜
+     */
+    //const rank_passgate_getrank = 6605;
+
+    /**
+     * 排行榜--玩家等级榜信息
+     */
+    const rank_playerlevel_getrank = 6605;
+
+    /**
+     * 排行榜 - 领取通关榜突破奖励
+     */
+    const rank_passgate_drawReward = 6606;
+
+    /**
+     * 排行榜 - 查询战力突破记录
+     */
+    const rank_fpower_breachLog = 6607;
+
+    /**
+     * 排行榜 - 查询通关榜突破记录
+     */
+    const rank_passgate_breachLog = 6608;
+
+    //
+    // </editor-fold>
+    //
+    // <editor-fold defaultstate="collapsed" desc="邮件操作码 - 67xx开始(ope)">
+
+    /**
+     * [6701]获取邮件列表
+     */
+    const cmd_email_questEmailList = 6701;
+
+    /**
+     * [6702]读取/打开一封邮件
+     */
+    const cmd_email_readAEmail = 6702;
+
+    /**
+     * [6703] 邮件 - 领取附件
+     */
+    const cmd_email_DrawReward = 6703;
+
+    /**
+     * [6704] 邮件 - 领取全部附件奖励
+     */
+    const cmd_email_DrawAllRewards = 6704;
+
+    /**
+     * [6705] 删除邮件——所有已读(不包含已读未领取状态的邮件)
+     */
+    const cmd_mail_delMailReaded = 6705;
+
+    /**
+     * [6706] 请求邮件未处理的数量(未打开邮件时检查邮件图标应该提示啥)
+     */
+    const cmd_mail_notReadMailNum = 6706;
+
+    /**
+     * [6707] 发送测试用道具
+     */
+    const cmd_mail_sendTestItems = 6707;
+//    const
+// </editor-fold>
+    //
+    // <editor-fold defaultstate="collapsed" desc="战斗操作码 - 68xx">
+
+    /**
+     * 关卡战斗-预掉落计算
+     */
+    const cmd_fight_arenas_preFight = 6800;
+
+    /**
+     * 关卡战斗
+     */
+    const cmd_fight_arenasfight = 6801;
+
+    /**
+     * 关卡扫荡
+     */
+    const cmd_fight_arenassweep = 6802;
+
+    /**
+     * 挑战 - 获得挑战对手的信息
+     */
+    const cmd_fight_GetChallengeAdversaryInfo = 6803;
+
+    /**
+     * 挑战 - 记录挑战结果
+     */
+    const cmd_fight_LogChallengeResult = 6804;
+
+    /**
+     * 挑战 - 拉取挑战记录
+     */
+    const cmd_fight_GetChallengeLog = 6805;
+
+    /**
+     * 剧情 - 领取剧情任务章节星数奖励
+     */
+    const cmd_fight_GetArenasActiveReward = 6806;
+
+//
+//      <editor-fold defaultstate="collapsed" desc="    竞技场 681x  ">
+//
+
+    /**
+     *  竞技场 主界面信息
+     */
+    const cmd_fight_pvp_maininfo = 6810;
+
+    /**
+     * 竞技场 刷新对手列表
+     */
+    const cmd_fight_pvp_refresh = 6811;
+
+    /**
+     * 竞技场 挑战xx.
+     */
+    const cmd_fight_pvp_pk = 6812;
+
+    /**
+     * 竞技场 调整阵容
+     */
+    const cmd_fight_pvp_setTeam = 6813;
+
+    /**
+     * 竞技场 购买挑战票
+     */
+    const cmd_fight_pvp_buyTicket = 6814;
+
+    /**
+     * 竞技场 查看榜单
+     */
+    const cmd_fight_pvp_getrank = 6815;
+
+    /**
+     * 竞技场 查询战报
+     */
+    const cmd_fight_pvp_getLog = 6816;
+
+//
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="   竞技商店  682x   ">
+
+    /**
+     * 竞技场 商店 主界面信息
+     */
+    const cmd_fight_pvpShop_getMainInfo = 6820;
+
+    /**
+     * 竞技场 商店 购买道具
+     */
+    const cmd_fight_pvpShop_buy = 6821;
+
+    /**
+     * 竞技场 商店 刷新道具
+     */
+    const cmd_fight_pvpShop_refresh = 6822;
+
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="世界boss战">
+
+    /**
+     * 世界boss - 进入
+     */
+    const fight_worldBoss_enter = 6831;
+
+    /**
+     * 世界boss - 上报伤害
+     */
+    const fight_worldBoss_addDamage = 6832;
+
+    /**
+     * 世界boss - 查询boss剩余血量
+     */
+    const fight_worldBoss_refresh_blood = 6833;
+
+    /**
+     * 世界boss - 查询当前伤害榜(前x名)
+     */
+    const fight_worldBoss_refresh_rank = 6834;
+
+    /**
+     * 世界boss - 查询boss输出伤害列表
+     */
+    const fight_worldBoss_refresh_bossSkill = 6835;
+//
+// // </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="无尽塔">
+
+    /**
+     * 无尽塔 - 查询当前层
+     */
+    const fight_endlessTower_Get = 6841;
+
+    /**
+     * 无尽塔 - 前进
+     */
+    const fight_endlessTower_Up = 6842;
+
+    /**
+     * 无尽塔 - 领取成就奖励
+     */
+    const fight_endlessTower_drawreward = 6843;
+
+    /**
+     * 满血复活
+     */
+    const fight_fullBlood = 6844;
+// </editor-fold>
+//
+// </editor-fold>
+    //
+    // <editor-fold defaultstate="collapsed" desc="系统操作码 - 69xx">
+
+    /**
+     * 获取系统消息列表
+     */
+    const cmd_system_getsysmessage = 6901;
+
+    /**
+     * 系统日志上报
+     */
+    const cmd_system_logreport = 6902;
+
+    /**
+     * 客户端心跳包
+     */
+    const cmd_system_clienttick = 6903;
+
+    /**
+     * 玩家发送系统消息
+     */
+    const cmd_system_userSendsysmessage = 6904;
+
+// </editor-fold>
+//
+//
+    // <editor-fold defaultstate="collapsed" desc="公会操作码 - 70xx开始(ope)">
+
+    /**
+     * 【会员】查询自己的公会信息
+     */
+    const cmd_guild_getUserGuildInfo = 7000;
+
+    /**
+     * 查询公会列表
+     */
+    const cmd_guild_getList = 7001;
+
+    /**
+     * 查询 推荐公会列表
+     */
+    const cmd_guild_refuseGuildCupScore = 7002;
+
+    /**
+     * 搜索 公会
+     */
+    const cmd_guild_searchGuildByID = 7003;
+
+    /**
+     * 创建公会
+     */
+    const cmd_guild_create = 7004;
+
+    /**
+     * 申请加入
+     */
+    const cmd_guild_apply = 7005;
+
+    /**
+     * 一键加入
+     */
+    const cmd_guild_QuickIn = 7006;
+
+    /**
+     * 请求公会信息
+     */
+    const cmd_guild_GetGuildInfo = 7007;
+
+    /**
+     * 编辑
+     */
+    const cmd_guild_modifyDeclare = 7008;
+
+    /**
+     * 解散
+     */
+    const cmd_guild_dismiss = 7009;
+
+    /**
+     * 开除
+     */
+    const cmd_guild_fireMember = 7010;
+
+    /**
+     * 审批
+     */
+    const cmd_guild_approve = 7011;
+
+    /**
+     * 转让副会长
+     */
+    //const cmd_guild_transferChair = 7012;
+
+    /**
+     * 设置副会长
+     */
+    const cmd_guild_setPriceChairman = 7013;
+
+    /**
+     * 获取成员信息
+     */
+    const cmd_guild_getGuildMembers = 7014;
+
+    /**
+     * 设置 干部职位
+     */
+    const cmd_guild_setOfficer = 7015;
+
+    /**
+     * 退会
+     */
+    const cmd_guild_quit = 7016;
+
+    /**
+     * 发起弹劾
+     */
+    const cmd_guild_InitiateAccuse = 7017;
+
+    /**
+     * 同意弹劾
+     */
+    const cmd_guild_Accuse = 7018;
+
+    /**
+     * 会长取消本次弹劾
+     */
+    const cmd_guild_ChairmanCancelAccuse = 7019;
+
+    /**
+     * 申请者玩家简介
+     */
+    const cmd_guild_ApplyUserIntro = 7020;
+
+    /**
+     * 发起捐献
+     */
+    const cmd_guild_requestDonate = 7021;
+
+    /**
+     * 捐献
+     */
+    const cmd_guild_donate = 7022;
+
+    /**
+     * 捐献数据刷新
+     */
+    const cmd_guild_donateInfoRefresh = 7023;
+
+    /**
+     * 购买捐献度 礼包
+     */
+    const cmd_guild_buyDonateGift = 7024;
+
+    /**
+     * 购买公会钻石 礼包
+     */
+    const cmd_guild_buyGuildCashGift = 7025;
+
+    /**
+     * 公会公告
+     */
+    const cmd_guild_announcement = 7026;
+
+    /**
+     * 公会邮件
+     */
+    const cmd_guild_noticeMail = 7027;
+
+    /**
+     * 【公会战】 邀请成员战斗
+     */
+    const cmd_guild_vsFightInvite = 7028;
+
+    /**
+     * 【公会战】 取消邀请
+     */
+    const cmd_guild_cancelInvite = 7029;
+
+    /**
+     * 【公会战】 接受,战斗
+     */
+    const cmd_guild_fight = 7030;
+    //    const
+// </editor-fold>
+//
+    // <editor-fold defaultstate="collapsed" desc="商城 - 71xx ">
+//
+
+    /**
+     * 限购礼包主界面
+     */
+    const shop_limit_maininfo = 7101;
+
+    /**
+     * 购买限购礼包
+     */
+    const shop_limit_buy = 7102;
+
+    /**
+     * 月卡信息
+     */
+    const shop_monthlyVIP_Info = 7103;
+
+    /**
+     * 购买月卡
+     */
+    const shop_monthlyVIP_Buy = 7104;
+
+    /**
+     * 获取每日特惠信息
+     */
+    const shop_getDaliySpecial = 7105;
+
+    /*
+     * 获取充值返利信息
+     */
+    const shop_getRechargeRebate = 7106;
+
+    /**
+     * 日常商城购买
+     */
+    const shop_dailyShopBuy = 7107;
+//
+// </editor-fold>
+//
+    // <editor-fold defaultstate="collapsed" desc="事件操作码 - 72xx">
+
+    /**
+     *  查询角标事件通知
+     */
+    const cmd_event_GetNotifications = 7201;
+
+    /**
+     * 清理指定角标
+     */
+    const cmd_event_ClearNotifications = 7202;
+// </editor-fold>
+// <editor-fold defaultstate="collapsed" desc="学院操作码 - 73xx">
+
+    /**
+     *  激活某任务卡
+     */
+    const cmd_college_ActiveTaskCard = 7301;
+
+    /**
+     *  领取任务卡奖励
+     */
+    const cmd_college_ReceiveCollegeReward = 7302;
+
+    /**
+     *  领取课程奖励
+     */
+    const cmd_college_ReceiveCourseReward = 7303;
+
+    /**
+     * 积分兑换道具
+     */
+    const cmd_college_ScoreExchangeItem = 7304;
+
+    /**
+     *
+     */
+    const cmd_college_GetCollegeData = 7305;
+    /**
+     *
+     */
+    //const cmd_college_GetCollegeTaskCardData = 7305;
+// </editor-fold>
+// <editor-fold defaultstate="collapsed" desc="Auction操作码 - 74xx">
+
+    /**
+     *  获取全部拍卖信息
+     */
+    const cmd_Auction_GetUserAuctionItemsInfo = 7401;
+
+    /**
+     *  玩家上架拍品信息
+     */
+    const cmd_Auction_GetUserUploadAuctionItems = 7402;
+
+    /**
+     *  玩家竞拍信息
+     */
+    const cmd_Auction_GetUserAuctionItems = 7403;
+
+    /**
+     * 一口价
+     */
+    const cmd_Auction_BuyoutPrice = 7404;
+
+    /**
+     *  取消出售
+     */
+    const cmd_Auction_CancelAuction = 7405;
+
+    /**
+     * 上传拍品
+     */
+    const cmd_Auction_UploadAuctionItems = 7406;
+
+    /**
+     * 竞拍
+     */
+    const cmd_Auction_UserAuctionBidItem = 7407;
+
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="地图操作码75xx">
+//
+
+    /**
+     * 进入据点
+     */
+    public const map_EnterFootHold = 7501;
+
+    /**
+     * 开启传送阵
+     */
+    public const map_FixUpTransmission = 7502;
+
+    /**
+     * 更新探索度
+     */
+    public const map_UpdateExplorerationProgress = 7503;
+
+    /**
+     * 解锁据点
+     */
+    public const map_UnlockMap = 7504;
+
+//    /**
+//     * 获取100_0_0_时间戳这些已经解锁保存了的数据
+//     */
+//    public const map_getUnlockInfoList = 7505;
+
+    /**
+     * 100_0_0_时间戳保存
+     */
+    public const map_unlockInfoSva = 7505;
+
+    /*
+     * 领取探索奖励
+     */
+    public const map_reviceExplorerReward = 7506;
+
+    /*
+     * 回城券使用
+     */
+    public const map_huichengQuanUse = 7507;
+
+    /*
+     * 回城券传送阵消失
+     */
+    public const map_huichengQuanEnd = 7508;
+
+//
+// // </editor-fold>
+//
+    // <editor-fold defaultstate="collapsed" desc="    反射方法    ">
+
+    /**
+     * 辅助方法, 将所有错误码信息转换到CSV文本中.
+     * 用法: 先在本文件中用ctrl + H 全部替换掉 'c onst ' -> 's tatic $'
+     *       然后再调用本方法,即可在同目录下生成ErrCode.txt, 里面包含了所需信息.
+     * @throws \Exception
+     * @author gwang
+     */
+    static function L() {
+        $class = new \ReflectionClass(__CLASS__);                               # 建立这个类的反射对象
+        $properties = $class->getProperties(\ReflectionProperty::IS_STATIC);    # 拉取所有静态属性
+        $fileName = __DIR__ . "/" . str_replace('\\', '.', __CLASS__) . ".txt"; # 输出文件名
+        $fd = fopen($fileName, "w");
+        if (false === $fd) {                                                    # 打开文件失败
+            throw new \Exception("打开$fileName 失败");
+        }
+        foreach ($properties as &$p) {
+            $d = preg_replace('/[\*|\/|\s+]/', '', $p->getDocComment());        # 处理下注释
+            $type = (strpos($p->getName(), 'err') === false ? 0 : 1);           # errorType: 0 继续, 1 重启
+            $n = fputs($fd, $p->getName() . ";" . $p->getValue() . ";$type;$d" . PHP_EOL);  # 写入文件
+            if (false === $n) {                                                 # 写入时失败
+                throw new Exception("写入$fileName 时失败");
+            }
+        }
+        fclose($fd);
+    }
+
+// </editor-fold>
+}

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

@@ -0,0 +1,1772 @@
+<?php
+
+namespace loyalsoft;
+
+/**
+ * 错误码及错误描述字典
+ * @author gwang
+ */
+class ErrCode {
+
+    /**
+     * 交互成功
+     */
+    const ok = 0;
+//
+// <editor-fold defaultstate="collapsed" desc="    基础错误码 10xx   ">
+
+    /**
+     * 未知原因错误
+     */
+    const err_unknownn = 1001;
+
+    /**
+     * 内部错误
+     */
+    const err_innerfault = 1002;
+
+    /**
+     * 数据库操作失败
+     */
+    const err_db = 1003;
+
+    /**
+     * 内存操作失败
+     */
+    const err_mem = 1004;
+
+    /**
+     * 断言失败
+     */
+    const err_assert = 1005;
+
+    /**
+     * 消息内容非法(不满足tk校验的条件)
+     */
+    const err_illegal = 1011;
+
+    /**
+     * 消息内容缺少校验值
+     */
+    const err_signo = 1012;
+
+    /**
+     * 消息超时
+     */
+    const err_outtime = 1021;
+
+    /**
+     * Just重试
+     */
+    const err_retry = 1024;
+
+    /**
+     * 客户端版本过低-整包更
+     */
+    const clientversionlow_err = 1031;
+
+    /**
+     * 客户端版本过低-增量更
+     */
+    const clientnewversion_msg = 1032;
+
+    /**
+     * 客户端打印信息并且退出
+     */
+    const clientPrintMsg_Halt = 1033;
+
+    /**
+     * 功能码非法
+     */
+    const ope_err = 1210;
+
+    /**
+     * 操作码非法
+     */
+    const cmd_err = 1211;
+
+    /**
+     * 参数非法
+     */
+    const paras_err = 1212;
+
+    /**
+     * 参数不足
+     */
+    const parasnotenough_msg = 1213;
+
+    /**
+     * 内容包含敏感词
+     */
+    const sensword_msg = 1234;
+
+    /**
+     * 服务器正在维护中
+     */
+    const err_server_maintaining = 1301;
+
+    /**
+     * 服务器正在升级,请过会儿再来。
+     */
+    const err_server_updating = 1302;
+
+    /**
+     * 已经在其他地方登录
+     */
+    const err_anotherlogin = 1303;
+
+    /**
+     * 功能暂未开放
+     */
+    const function_notopen_msg = 1801;
+
+    /**
+     * 方法尚未实现
+     */
+    const err_method_notimplement = 1802;
+
+    /**
+     * 方法已过时, 废弃的.
+     */
+    const err_method_obsoleted = 1803;
+
+    /**
+     * 游戏常量数据错误
+     */
+    const err_const_no = 1825;
+
+// </editor-fold>
+//
+//   // <editor-fold defaultstate="collapsed" desc="    商城/付费 88xx    ">
+
+    /**
+     * 尚未首付
+     */
+    const pay_firstpayno_err = 8801;
+
+    /**
+     * 已经领取首付
+     */
+    const pay_firstpaygetted = 8802;
+
+    /**
+     * 系统繁忙
+     */
+    const pay_systembusy_err = 8803;
+
+    /**
+     * 不是黄钻或已经领取黄钻礼包
+     */
+    const pay_vipnewerno = 8804;
+
+    /**
+     * amt数值小于等于0
+     */
+    const pay_m_amtzero_err = 8805;
+
+    /**
+     * 价格异常
+     */
+    const pay_price_err = 8806;
+
+    /**
+     *  支付类型异常
+     */
+    const pay_m_type_err = 8807;
+
+    /**
+     * 商品常量数据错误-货物内容
+     */
+    const pay_shopItem_cosnt_goods_err = 8808;
+
+    /**
+     * 商城 已达刷新次数上限
+     */
+    const pay_refresh_times = 8809;
+
+    /**
+     * 神秘商城 - 购买次数已达上限
+     */
+    const pay_secretshop_buytimes = 8810;
+
+    /**
+     * 神秘商城 - 物品数据错误
+     */
+    const pay_secretshop_noitem_err = 8811;
+
+    /**
+     * 充值 - 订单不存在
+     */
+    const pay_order_no = 8812;
+
+    /**
+     * 充值 - 付款状态不正确 正在重新查询...
+     */
+    const pay_order_paystatus = 8813;
+
+    /**
+     * 充值 - 此订单已经发货, 无需重复请求
+     */
+    const pay_order_drawed = 8814;
+
+    /**
+     * 充值 - 订单uid不符
+     */
+    const pay_order_uid = 8815;
+
+    /**
+     * 神秘商城 - 免费刷新时间未到
+     */
+    const pay_secretshopt_freeRefresh_Time = 8816;
+    const pay_order_product_id = 8817;
+    const pay_fail = 8818;
+
+    /**
+     * 不能重复购买
+     */
+    const pay_repeatbuy = 8819;
+
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="    not enough 系列    ">
+
+    /**
+     * 金币不足
+     */
+    const notenough_gold_msg = 3014;
+
+    /**
+     * 宝石不足
+     */
+    const notenough_cash_msg = 3015;
+
+    /**
+     * 友情点不足
+     */
+    const notenough_friendshippoint = 3016;
+
+    /**
+     * 玩家荣誉值不足[荣誉值兑换]
+     */
+    const notenough_honour = 3032;
+
+    /**
+     * 元宝不足
+     */
+    const notenought_yuanbao = 3040;
+
+    /**
+     * 玩家体力值不足
+     */
+    const notenough_tili = 3046;
+
+    /**
+     * 晶石不足
+     */
+    const notenough_spar = 3047;
+
+    /**
+     * 资源点不足
+     */
+    const notenough_resPoint = 3048;
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="    user 31xx    ">
+
+    /**
+     * 玩家未登录
+     */
+    const user_login_err = 3101;
+
+    /**
+     * 玩家不存在
+     */
+    const user_no_err = 3102;
+
+    /**
+     * 玩家数据损坏
+     */
+    const user_data_broken_err = 3103;
+
+    /**
+     * 连续登录天数不够
+     */
+    const user_contigiftno_msg = 3104;
+
+    /**
+     * 已经领取连续登录礼包
+     */
+    const user_contigiftfalse_msg = 3105;
+
+    /**
+     * 设置新手引导进度失败
+     */
+    const user_settutorialscompletedfail_err = 3106;
+
+    /**
+     * 玩家等级不足
+     */
+    const user_levelnotenough_msg = 3107;
+
+    /**
+     * 找不到玩家的交互体数据
+     */
+    const user_interact_no_err = 3108;
+
+    /**
+     * 找不到玩家的分区记录
+     */
+    const user_zoneinfo_no_err = 3109;
+
+    /**
+     * 玩家昵称已经存在,请换一个再试
+     */
+    const user_nicknameexist = 3110;
+
+    /**
+     * 没有这种奖励类型
+     */
+    const user_reward_typeno = 3031;
+
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="    英雄错误码 33xx    ">
+
+    /**
+     * 玩家没有这个英雄
+     */
+    const hero_no = 3301;
+
+    /**
+     * 找不到英雄升级消耗数据
+     */
+    const hero_level_const_no_err = 3302;
+
+    /**
+     * 英雄碎片不足
+     */
+    const hero_segment_not_enough = 3303;
+
+    /**
+     * 缺少英雄的常量数据
+     */
+    const hero_const_no_err = 3304;
+
+    /**
+     * 英雄强化--已经达到最大等阶
+     */
+    const hero_strength_maxstrengthlevel = 3305;
+
+    /**
+     * 英雄升级--已经达到当前最大等级
+     */
+    const hero_upgrade_maxupgradelevel = 3306;
+
+    /**
+     * 英雄升级--消耗的数据错误(道具或者卡牌不存在)
+     */
+    const hero_upgrade_cost = 3307;
+
+    /**
+     * 英雄升星--已经达到最大星级
+     */
+    const hero_star_maxstarlevel = 3308;
+
+    /**
+     * 英雄升星--消耗英雄参数错误
+     */
+    const hero_star_costhero = 3309;
+
+    /**
+     * 英雄升星--消耗道具数量不充足
+     */
+    const hero_star_notengoughitem = 3310;
+
+    /**
+     * 英雄升星--升星消耗的常量数据不存在
+     */
+    const hero_star_level_const_no_err = 3311;
+
+    /**
+     * 英雄升星--全局变量缺失该英雄属性对应的升星消耗道具信息
+     */
+    const hero_star_noglobal_costitem = 3312;
+
+    /**
+     * 英雄升星--消耗道具与消耗道具数量的常量配置不匹配
+     */
+    const hero_star_conststr_itemnotmathnum = 3313;
+
+    /**
+     * 英雄好感度---缺少对应好感度的消耗设置的常量数据
+     */
+    const hero_favor_cost_const_no = 3314;
+
+    /**
+     * 英雄好感度---解锁目标好感度参数错误
+     */
+    const hero_favor_targetfavor_para = 3315;
+
+    /**
+     * 英雄分解---传递消耗英雄参数错误
+     */
+    const hero_separate_cost_hero = 3316;
+
+    /**
+     * 英雄升阶---缺少对应等阶的消耗设置的常量数据
+     */
+    const hero_strength_cost_const_no = 3317;
+
+    /**
+     * 英雄技能__当前技能等级已经达到上限
+     */
+    const hero_upgradeSkill_maxLevel = 3318;
+
+    /**
+     * 英雄技能__该技能升级的消耗常量配置不存在
+     */
+    const hero_upgradeSkill_cost_const_no = 3319;
+
+    /**
+     * 英雄打分 -- 已经给次英雄打过分了
+     */
+    const hero_scoreit_hasscored = 3320;
+
+    /**
+     * 英雄升级——消耗的常量配置不存在
+     */
+    const hero_upgrade_cost_const_no = 3321;
+
+    /**
+     * 玩家已经存在一个此类的英雄
+     */
+    const hero_existSameHero_err = 3322;
+
+    /**
+     * 玩家神血的消耗常量数据不存在
+     */
+    const hero_godblood_level_const_no = 3323;
+
+    /**
+     * 玩家神血的血脉达到定级
+     */
+    const hero_godblood_maxlevel = 3324;
+
+    /**
+     * 玩家神血 强化,消耗道具不足
+     */
+    const hero_godblood_notengoughitem = 3325;
+
+    /**
+     * 玩家已经解锁
+     */
+    const hero_lockState = 3326;
+
+    /**
+     * 言灵已达到可装备的最大数量
+     */
+    const hero_yanling_full = 3327;
+
+    /**
+     * 英雄身上找不到这个言灵
+     */
+    const hero_yanling_notfound = 3328;
+
+    /**
+     * 言灵等级配置缺失
+     */
+    const hero_yanling_levelconst_no = 3329;
+
+    /**
+     * 言灵等级已达上限
+     */
+    const hero_yanling_levelMax = 3330;
+
+    /**
+     * 重复言灵
+     */
+    const hero_yanling_repeat = 3331;
+
+    /**
+     * 言灵星级达到最大值
+     */
+    const hero_yanling_starMax = 3332;
+
+    /**
+     * 错误的言灵
+     */
+    const hero_yanling_errorYanling = 3333;
+
+    /**
+     * 不能突破
+     */
+    const hero_yanling_canotTupo = 3334;
+
+    /**
+     * 言灵进化
+     */
+    const yanling_canotevolve = 3335;
+
+    /**
+     * 该言灵不能被消耗
+     */
+    const yanling_canotconsume = 3336;
+//
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="    仓库/背包 34xx    ">
+
+    /**
+     * 该目标不能放入仓库
+     */
+    const store_putinto = 3401;
+
+    /**
+     * 仓库没有这个道具
+     */
+    const store_itemno_err = 3402;
+
+    /**
+     * 道具不可使用
+     */
+    const store_itemcantuse = 3404;
+
+    /**
+     * 道具数量不足
+     */
+    const store_itemnotenough = 3405;
+
+    /**
+     * 移除道具失败!
+     */
+    const store_removefail = 3407;
+
+    /**
+     * 道具不能分解
+     */
+    const store_itemcantdecompose = 3408;
+
+    /**
+     * 装备已经在别的英雄身上装备
+     */
+    const store_equipWeared_err = 3409;
+
+    /**
+     * 装备没有在此英雄身上装备
+     */
+    const store_noequip_err = 3410;
+
+    /**
+     * 未知装备类型
+     */
+    const store_equip_type = 3411;
+
+    /**
+     * 言灵召唤书常量数据有误
+     */
+    const store_book_info = 3412;
+
+    /**
+     * 言灵进阶数据有问题
+     */
+    const store_yanlingGrade_cfg = 3413;
+
+    /**
+     * 言灵已经进阶至最高
+     */
+    const store_yanlingGrade_max = 3414;
+
+    /**
+     * 背包空间不足!
+     */
+    const store_bagSpaceNotEnough = 3415;
+
+    /**
+     * 没有该武器
+     */
+    const store_weapon_err = 3416;
+
+    /**
+     * 请先提升玩家等级
+     */
+    const store_GemResearchLvUp_UserLevelLimit = 3417;
+
+    /**
+     * 请先提升宝石研究等级
+     */
+    const store_GemComplose_ResearchLevelLimit = 3418;
+
+    /**
+     * 合成宝石的图纸不足
+     */
+    const store_GemComploseTuZhiNotEnough = 3419;
+
+    /**
+     * 合成宝石的材料不足
+     */
+    const store_GemComploseMaterialNotEnough = 3420;
+
+    /**
+     * 合成宝石需要消耗的宝石材料不足
+     */
+    const store_ComploseGemNotEnough = 3421;
+
+    /**
+     * 言灵身上没有宝石
+     */
+    const store_YanLingNotGem = 3422;
+
+    /**
+     * 言灵已经装备了宝石
+     */
+    const store_YanLingHaveGem = 3423;
+
+    /**
+     * 不能买该武器
+     */
+    const store_weaponCantBuy = 3424;
+
+    /**
+     * 储物间不能再次扩容
+     */
+    const store_expandStorage = 3425;
+
+    /**
+     * 不存在该储物格子
+     */
+    const store_NotHaveStorage = 3426;
+
+    /**
+     * 当前储物间已满
+     */
+    const store_StorageEnough = 3427;
+
+    /**
+     * 药瓶不足
+     */
+    const store_bettleitemNumNotEnough = 3428;
+
+    /**
+     * 言灵升级不能使用自己
+     */
+    const store_notRemoveYanlingSelf = 3429;
+
+    /**
+     * 没有该言灵
+     */
+    const store_NotHaveYanling = 3430;
+
+    /**
+     * 存在不能被消耗的武器
+     */
+    const store_WeaponCanotConsume = 3431;
+
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="   任务错误码 35xx系列   ">
+
+    /**
+     * 找不到任务数据
+     */
+    const task_no = 3501;
+
+    /**
+     * 任务进度尚未完成
+     */
+    const task_progress_not_complete = 3502;
+
+    /**
+     * 任务奖励已经领取
+     */
+    const task_reward_geted = 3503;
+
+    /**
+     * 日常任务活跃点数不足
+     */
+    const task_activePoint_notenough = 3504;
+
+    /**
+     * 任务卡未找到
+     */
+    const taskCard_no = 3510;
+
+    /**
+     * 任务卡-不可堆叠
+     */
+    const taskCard_no_pile = 3511;
+
+    /**
+     * 任务卡-状态错误
+     */
+    const taskCard_state = 3512;
+
+    /**
+     * 任务卡-不可激活多张同种类任务卡
+     */
+    const taskCard_active_multi = 3513;
+
+    /**
+     * 任务卡-同时激活数量达到上限(9)
+     */
+    const taskCard_active_max = 3514;
+
+    /**
+     * 任务卡-此卡已售罄
+     */
+    const taskCard_selled = 3515;
+
+    /**
+     * 任务卡-收集的道具数量尚未满足条件
+     */
+    const taskCard_gainItem_no = 3516;
+
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="    交互操作 36xx    ">
+//
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="    好友 37xx    ">
+
+    /**
+     * 不存在该好友
+     */
+    const friend_no_err = 3701;
+
+    /**
+     * 不存在好友的平台信息
+     */
+    const friend_noplat_err = 3702;
+
+    /**
+     * 已经领取该好友礼物
+     */
+    const friend_gift = 3703;
+
+    /**
+     * 已到达当天领取好友礼物上限
+     */
+    const friend_maxgift = 3704;
+
+    /**
+     * 获取不到好友礼物几率常量数据
+     */
+    const friend_giftrent_const_no_err = 3705;
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="   任务 38xx    ">
+
+    /**
+     * 不存在该任务
+     */
+    const goal_const_no_err = 3801;
+
+    /**
+     * 未找到该任务信息
+     */
+    const goal_nogoaldata_err = 3802;
+
+    /**
+     * 任务尚未完成
+     */
+    const goal_notcomplete = 3803;
+
+    /**
+     * 任务奖励已领取
+     */
+    const goal_rewarded = 3804;
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="    活动 39xx    ">
+
+    /**
+     * 不存在该活动礼包
+     */
+    const active_const_no_err = 3901;
+
+    /**
+     * 活动领取非法
+     */
+    const active_illegal = 3902;
+
+    /**
+     * 礼包已领取
+     */
+    const active_hasgetted = 3903;
+
+    /**
+     * 在线礼包常量数据不存在
+     */
+    const onlinegift_constno_err = 3904;
+
+    /**
+     * 在线礼包时间未到
+     */
+    const onlinegift_timenotenough = 3905;
+
+    /**
+     * 在线礼包id错误
+     */
+    const onlinegift_wrongid = 3906;
+
+    /**
+     * 免费抽奖类型不存在
+     */
+    const lottery_typenotexist = 3907;
+
+    /**
+     * 剩余免费抽奖次数不够了
+     */
+    const lottery_freenotenough = 3908;
+
+    /**
+     * 连续签到常量数据不存在
+     */
+    const checkin_const_no = 3909;
+
+    /**
+     * 连续签到活动已过期
+     */
+    const checkin_outofday = 3910;
+
+    /**
+     * 连续签到奖励已领取
+     */
+    const checkin_giftgetted = 3911;
+
+    /**
+     * 连续签到奖励礼包id不存在
+     */
+    const checkin_giftidno = 3912;
+
+    /**
+     * 连续签到天数不够.
+     */
+    const chekin_daysnotenough = 3913;
+
+    /**
+     * 完成新手引导的大礼包找不到常量数据。
+     */
+    const Guide_completeGiftNo = 3914;
+
+    /**
+     * 不存在的抽奖次数
+     */
+    const lottery_notexistLotterCount = 3915;
+
+    /**
+     * 不存在的抽奖消耗财富类型
+     */
+    const lottery_notexistLotterCostType = 3916;
+
+    /**
+     * 未能生成中奖物品
+     */
+    const lottery_noselecteditem = 3917;
+
+    /**
+     * 已经留下回归密码了
+     */
+    const active_returncode_leaved = 3921;
+
+    /**
+     * 密码格式不合法
+     */
+    const active_returncode_illegal = 3922;
+
+    /**
+     * 新手七天礼包,想要领取的礼包索引有误
+     */
+    const active_new7_wrongindex = 3923;
+
+    /**
+     * 活动 - 激活码 渠道错误.
+     */
+    const active_activecode_plat = 3924;
+
+    /**
+     * 活动 - 激活码 无效
+     */
+    const active_activecode_format = 3925;
+
+    /**
+     * 没有充值返利常量数据
+     * * */
+    const active_rechargereward_const_no = 3926;
+
+    /**
+     * 充值返利活动未开启
+     * * */
+    const active_rechargereward_notopen = 3927;
+
+    /**
+     * 充值返利,领取奖励,充值金额不足
+     * * */
+    const active_rechargereward_notenough = 3928;
+
+    /**
+     * 充值返利,领取奖励,当前开启的活动key与mem中存储的key不一致
+     * * */
+    const active_rechargereward_keynotsuit = 3929;
+
+    /**
+     * 充值返利,您已经领取过此奖励
+     * * */
+    const active_rechargereward_hasgetted = 3930;
+
+    /**
+     * 玩家充值返利数据错误
+     * * */
+    const active_rechargereward_userinfoerr = 3931;
+
+    /**
+     * 回归奖励已经领取
+     */
+    const active_returnreward_drawed = 3932;
+
+    /**
+     * 回归奖励验证失败
+     */
+    const active_returnreward_VerifyFailed = 3933;
+
+    /**
+     * 回归奖励验证的时候通讯失败,请稍后再试
+     */
+    const active_returnreward_VerifyConnectionFailed = 3934;
+
+    /**
+     * 回归奖励,这组回归密码已经被使用过啦.
+     */
+    const active_returnreward_codeused = 3935;
+
+    /**
+     * 预约礼包活动已经结束
+     */
+    const active_reserve_reward_outtime = 3936;
+
+    /**
+     * 激活码礼包已经过期
+     */
+    const active_activecode_outtime = 3937;
+
+    /**
+     * 开服七日活动 - 任务状态异常
+     */
+    const active_day7_taskstate_err = 3938;
+
+    /**
+     * 开服七日活动 - 找不到常量数据
+     */
+    const active_day7_const_no_err = 3939;
+
+    /**
+     * 开服七日活动 - 总天数不足
+     */
+    const active_day7_totaldays = 3940;
+
+    /**
+     * 开服七日活动 - 找不到任务
+     */
+    const active_day7_taskno_err = 3941;
+
+    /**
+     * 抽奖 - 保底奖励, 次数不满足
+     */
+    const lottery_baodi_times_lt = 3942;
+
+    /**
+     * 抽奖 - 卡槽尚未解锁
+     */
+    const err_lottery_slot_locked = 3943;
+
+    /**
+     * 抽奖 - 卡槽使用中
+     */
+    const err_lottery_slot_not_emputy = 3944;
+
+    /**
+     * 抽奖 - 搜索尚未结束
+     */
+    const err_lottery_slot_time = 3945;
+
+    /**
+     * 抽奖 - 卡槽数据异常
+     */
+    const err_lottery_slot_emputy = 3946;
+
+    /**
+     * 抽奖 - 卡槽已经解锁
+     */
+    const err_lottery_slot_unlocked = 3947;
+
+    /**
+     * 抽奖 - 达到每次次数限制
+     */
+    const err_lottery_daily_limit = 3948;
+
+    /**
+     * 宝箱 - 数量不足
+     */
+    const box_not_enough = 3950;
+
+    /**
+     * 活动 - 此活动尚未开放
+     */
+    const active_time = 3951;
+
+    /**
+     * 活动 - 兑换码已经使用过了
+     */
+    const active_activecode_used = 3952;
+
+    /**
+     * 活动不存在
+     */
+    const active_activeNoExistent = 3953;
+
+    /**
+     * 抽奖次数已经达到上限
+     */
+    const active_NewUserActiveNumLimit = 3954;
+
+    /**
+     * 每日购买体力次数限制
+     */
+    const active_BuyTiliNumLimit = 3955;
+
+    /**
+     *
+     */
+    const active_FirstRechargeRewardRepeat = 3956;
+
+    /**
+     * 金币购买次数超出最大值
+     */
+    const active_goldExchangeNum_maxLimit = 3957;
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="    战斗错误码 40xx ">
+
+    /**
+     * 关卡挑战 - 掉落奖励与后台不匹配
+     */
+    const err_arenas_rewardIllegal = 4003;
+
+    /**
+     * 关卡挑战 - 难度参数错误
+     */
+    const err_arenas_difficulty = 4004;
+
+    /**
+     * 关卡挑战记录非法
+     */
+    const err_arenas_logillegal = 4005;
+
+    /**
+     * 错误的关卡索引
+     */
+    const err_arenasgate_indexillegal = 4006;
+
+    /**
+     * 关卡挑战体力值不足,无法战斗
+     */
+    const err_arenasgate_nocount = 4007;
+
+    /**
+     * 战场解锁星数不足,无法扫荡该关卡
+     */
+    const err_arenas_unlockstarnotenough = 4008;
+
+    /**
+     * 关卡的挑战次数已达上限
+     */
+    const err_arenas_normalgate_numno = 4009;
+
+    /**
+     * 错误的扫荡次数
+     */
+    const err_arenasgate_errSweepCount = 4010;
+
+    /**
+     * 关卡星星奖励的常量数据不存在!
+     */
+    const err_arenas_starreward_const_no = 4011;
+
+    /**
+     * 关卡星星奖励--奖励已经领取
+     */
+    const err_arenas_hasgetstarreward = 4012;
+
+    /**
+     * 关卡星星奖励--星星数量不足无法领取奖励
+     */
+    const err_arenas_starreward_starNotEnough = 4013;
+
+    /**
+     * 无尽关卡模式——常量数据丢失
+     */
+    const err_gateForever_const_no = 4014;
+
+    /**
+     * 无尽关卡模式—挑战次数已达上限
+     */
+    const err_gateForever_countIsFull = 4015;
+
+    /**
+     * 无尽关卡模式—挑战次数非法
+     */
+    const err_gateForever_countillegal = 4016;
+
+    /**
+     * 副本开启中
+     */
+    const carbon_opened = 4017;
+
+    /**
+     * 副本未开启
+     */
+    const carbon_closed = 4018;
+
+    /**
+     * 副本挑战的关卡索引错误
+     */
+    const carbon_gateIndex = 4019;
+
+    /**
+     * 副本-难度等级错误
+     */
+    const carbon_wrongdifficult = 4020;
+
+    /**
+     * 竞技场 - 指定的pvp对手不存在
+     */
+    const pvp_wrongMather = 4021;
+
+    /**
+     * 竞技场 - 刷新过于频繁
+     */
+    const pvp_refresh_time = 4022;
+
+    /**
+     * 竞技场 - 错误的体力充值数量
+     */
+    const pvp_tili_chargenum = 4023;
+
+    /**
+     * 竞技场 - 挑战票不足.
+     */
+    const pvp_no_tickets = 4024;
+
+    /**
+     * 竞技场 - 刷新对手花费数据对不上.
+     */
+    const pvp_refresh_cost_ilegal = 4030;
+
+    /**
+     * 竞技场 - 刷新对手已达次数上限
+     */
+    const pvp_refresh_max = 4029;
+
+    /**
+     * 竞技场 - 挑战票购买, 跟预期的值对不上
+     */
+    const pvp_ticket_cost_ilegal = 4028;
+
+    /**
+     * 竞技场 - 道具已售罄
+     */
+    const pvp_item_soldout = 4027;
+
+    /**
+     * 竞技场 - 活跃值不够
+     */
+    const pvp_coinnotenough = 4026;
+
+    /**
+     * 剧情关卡 - 剧情关卡不能重复挑战,只能挑战一次
+     */
+    const story_repeatfight = 4025;
+
+    /**
+     * 剧情关卡 - 星数奖励领取条件不够
+     */
+    const err_arenas_starrwd_star = 4031;
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="    排行榜错误码  41xx    ">
+
+    /**
+     * 排行榜 - 战斗力解锁条件尚未达成
+     */
+    const rank_fpower_unlocked = 4101;
+
+    /**
+     * 排行榜 - 奖励已经领取了
+     */
+    const rank_reward_hasgetted = 4102;
+
+    /**
+     * 排行榜 - 通关帮奖励解锁条件尚未达成
+     */
+    const rank_passsgate_unlocked = 4103;
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="    邮件错误码 42xx   ">
+
+    /**
+     * 邮件 - 错误的邮件id
+     */
+    const email_wrongid = 4201;
+
+    /**
+     * 邮件 - 未找到指定邮件
+     */
+    const email_not_found = 4202;
+
+    /**
+     * 邮件 - 不存在附件
+     */
+    const email_no_appendix = 4203;
+
+    /**
+     * 邮件 - 附件已领取
+     */
+    const email_appendix_drawed = 4204;
+
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="战斗错误码">
+//
+
+    /**
+     * 无尽塔 - 错误的关卡索引
+     */
+    const Fight_endlessTower_index = 4341;
+//
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="    拍卖 47xx    ">
+
+    /**
+     * 拍卖物品的常量数据不存在
+     */
+    const auction_const_no = 4701;
+
+    /**
+     * 当天拍卖物品的数据不存在
+     */
+    const auction_curdaynotexist = 4702;
+
+    /**
+     * 竞价的时候超过时间限制
+     */
+    const auction_timeout = 4703;
+
+    /**
+     * 拍卖一件不在拍品列表中的物品
+     */
+    const auction_noexistautionItem = 4704;
+
+    /**
+     * 拍卖一件不在拍品列表中的物品
+     */
+    const auction_pricelowthancurprice = 4705;
+
+    /**
+     * 拍品尚未开始拍卖
+     */
+    const auction_beforstart = 4706;
+
+    /**
+     * 拍品已经结束拍卖
+     */
+    const auction_end = 4707;
+
+    /**
+     * 出价低于当前价
+     */
+    const auction_failprice = 4708;
+
+    /**
+     * 上传拍品价格太低
+     */
+    const auction_loadpricelow = 4709;
+
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="公会错误码 - 48xx开始">
+
+    /**
+     * 玩家等级不足
+     */
+    const err_guild_userlevel = 4800;
+
+    /**
+     * 您已经属于一个公会成员了.
+     */
+    const err_guild_userhasbeenaguildmember = 4801;
+
+    /**
+     * 解散公会后的24小时冷却时间尚未过去.
+     */
+    const err_guild_dissmisscodingtime = 4802;
+
+    /**
+     * 同名公会已存在
+     */
+    const err_guild_nameexists = 4803;
+
+    /**
+     *  创建公会时所传公会名称参数为空.
+     */
+    const err_guild_nameEmputy = 4804;
+
+    /**
+     * 金币不足
+     */
+    const err_msg_goldnotenough = 4805;
+
+    /**
+     * 找不到公会数据
+     */
+    const err_guild_guildinfono = 4806;
+
+    /**
+     * 成员已满
+     */
+    const err_guild_memberfull = 4807;
+
+    /**
+     *  申请队列已满
+     */
+    const err_guild_applyListFull = 4808;
+
+    /**
+     * 公会未开启一键加入功能
+     */
+    const err_guild_quickinclosed = 4809;
+
+    /**
+     * 玩家不属于此公会
+     */
+    const err_guild_usernotguildmember = 4810;
+
+    /**
+     * 找不到玩家的公会信息
+     */
+    const err_guild_userguildinfono = 4811;
+
+    /**
+     * 玩家不是该公会的会长或是干部
+     */
+    const err_guild_usernotchairman = 4812;
+
+    /**
+     * 解散工会的时候, 公会不为空
+     */
+    const err_guild_notEmputy = 4813;
+
+    /**
+     * 会长不能开除自己.
+     */
+    const err_guild_cannotfireyourself = 4814;
+
+    /**
+     * 申请信息未找到
+     */
+    const err_guild_appmsgnotfount = 4815;
+
+    /**
+     * 申请信息已经处理过了
+     */
+    const err_guild_applymsgdealed = 4816;
+
+    /**
+     * 玩家不存在
+     */
+    const err_user_no = 4817;
+
+    /**
+     * 无权限
+     */
+    const err_guild_nopermission = 4818;
+
+    /**
+     * 副会长名额已满
+     */
+    const err_guild_viceChairmanFull = 4819;
+
+//    /**
+//     * 操作码非法
+//     */
+//    const err_msg_cmd = 4820;
+
+    /**
+     * 徽章不能为null
+     */
+    const err_guild_imgEmputy = 4821;
+
+    /**
+     * 不能删除会长
+     */
+    const err_guild_cannotfireychairman = 4822;
+
+    /**
+     * 下一任会长必须是本公会的会员
+     */
+// const err_guild_lastchairmanidnoexist = 4823;
+
+    /**
+     * 玩家已经是该职位
+     */
+    const err_guild_positionconflict = 4824;
+
+    /**
+     * 干部名额已满
+     */
+    const err_guild_OfficermanFull = 4825;
+
+    /**
+     * 没有限权设置此职位
+     */
+    const err_guild_cannotsetpositioncon = 4826;
+
+    /**
+     * 申请信息已经存在请稍候在申请
+     */
+    const err_guild_applymsgalwaysexist = 4827;
+
+    /**
+     * 申请信息被拒接
+     */
+    const err_guild_applymsgrejected = 4828;
+
+    /**
+     * 会长登陆时间信息发生改变无法弹劾,请刷新数据
+     */
+    const err_guild_notsatisfiedaccusecondition = 4829;
+
+    /**
+     * 不在弹劾有效时间内
+     */
+    const err_guild_noaccusevalidtimeperiod = 4830;
+
+    /**
+     * 弹劾 冷却中请稍候在弹劾
+     */
+    const err_guild_accusecooling = 4831;
+
+    /**
+     * 不允许申请加入该公会
+     */
+    const err_guild_noallowaddguild = 4832;
+
+    /**
+     * 会长没有被弹劾
+     */
+    const err_guild_chairmannoaccused = 4833;
+
+    /**
+     * 不允许反复弹劾
+     */
+    const err_guild_noallowagainaccuse = 4834;
+
+    /**
+     * 请求捐献数据不能为null
+     */
+    const err_guild_requestdonatecannotnull = 4835;
+
+    /**
+     * 请求捐献 时间不到
+     */
+    const err_guild_lessthannextrequestdonate = 4836;
+
+    /**
+     * 没有卡牌常量数据
+     */
+    const err_guild_nosegment = 4837; //这个暂时用着,卡牌那应该有这个错误码
+
+    /**
+     * 不能请求该类型的卡牌
+     */
+    const err_guild_thiscardcannotrequestordonate = 4838; //这个暂时用着,卡牌那应该有这个错误码
+
+    /**
+     * 请求卡牌数量过多
+     */
+    const err_guild_requestcardnumtomuch = 4839; //这个暂时用着,卡牌那应该有这个错误码
+
+    /**
+     * 玩家没有足够的卡牌可以捐献
+     */
+    const err_guild_noenoughcardinfo = 4840; //这个暂时用着,卡牌那应该有这个错误码
+
+    /**
+     * 卡牌类型不一致
+     */
+    const err_guild_cardtypeinconformity = 4841;
+
+    /**
+     * 今天捐献卡牌数量已经达到最大值
+     */
+    const err_guild_donatecardnumreachlimit = 4842;
+
+    /**
+     * 已经超过捐献时间无法捐献
+     */
+    const err_guild_overdonatetime = 4843;
+
+    /**
+     * 玩家背包中没有该类型的碎片
+     */
+    const err_guild_usersegementnothechip = 4844;
+
+    /**
+     * 英雄合成碎片与参数id不一致
+     */
+    const err_guild_herochiptypeinconformity = 4846;
+
+    /**
+     * 不存在该英雄
+     */
+    const err_guild_nohero = 4847;
+
+    /**
+     * 该贡献度礼包没有开放
+     */
+    const err_guild_contributionGiftnoopen = 4848;
+
+    /**
+     * 该公会钻石礼包没有开放
+     */
+    const err_guild_cashGiftnoopen = 4849;
+
+    /**
+     * 贡献度不够
+     */
+    const err_guild_contributionnosatisfy = 4850;
+
+    /**
+     * 缺少礼包常量数据
+     */
+    const err_guild_noguildgift = 4851;
+
+    /**
+     * 公会消息没有该卡牌的信息
+     */
+    const err_guild_guildjournalnothechipinfo = 4852;
+
+    /**
+     * 公会邮件内容不能为null
+     */
+    const err_guild_mailcontentcannotbenull = 4853;
+
+    /**
+     * 公会公告编辑冷却时间中
+     */
+    const err_guild_AnnouncementEditCooling = 4854;
+
+    /**
+     * 公会战 已经存在邀请数据,不能再次邀请
+     */
+    const err_guild_fightInvitealreadyexisted = 4855;
+
+    /**
+     * 公会战 邀请信息不存在
+     */
+    const err_guild_fightInvitenoexisted = 4856;
+
+    /**
+     * 公会战 在战斗中
+     */
+    const err_guild_fighting = 4857;
+
+    /**
+     * 公会战 在战斗中
+     */
+    const err_guild_applyconditionnoenough = 4858;
+
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="   商城错误码 49xx">
+
+    /**
+     * 限购礼包-购买数量已达上限
+     */
+    const shop_limit_max = 4901;
+
+    /**
+     * 月卡已购买,失效前不可再次购买
+     */
+    const shop_monthlyvip_buyed = 4902;
+
+    /**
+     *  每日特惠奖励不能重复领取
+     */
+    const shop_daliySpecialRewardNotRepeat = 4903;
+
+    /**
+     * 首充奖励不能重复领取
+     */
+    const shop_firstRechargeNotRepeat = 4904;
+
+    /**
+     * 充值返利奖励不能重复领取
+     */
+    const shop_RechargeRebateRewardNotRepeat = 4905;
+
+    /**
+     * 不足
+     */
+    const shop_RechargeRebateRmbNotEnough = 4906;
+
+    /*
+     * 不是免费领取的礼包
+     */
+    const shop_limit_NotFree = 4907;
+
+    /*
+     * 超时
+     */
+    const shop_limit_TsMax = 4908;
+// </editor-fold>
+// <editor-fold defaultstate="collapsed" desc="   学院错误码 51xx">
+
+    /**
+     * 不存在该任务卡
+     */
+    const college_notExistTaskCard = 5101;
+
+    /**
+     * 任务卡状态错误
+     */
+    const college_TaskCardStateError = 5102;
+
+    /**
+     * 一个年级下的课程数量错误
+     */
+    const college_courseNumError = 5103;
+
+    /**
+     * 一个课程下的任务卡数量错误
+     */
+    const college_taskCardNumError = 5104;
+
+    /**
+     * 学院积分奖励不能重复领取
+     */
+    const college_taskScoreRewardRepeatReceive = 5105;
+
+    /**
+     * 学院课程奖励不能重复领取
+     */
+    const college_CourseRewardRepeatReceive = 5106;
+
+    /**
+     * 没有解锁
+     */
+    const college_CourseNotUnlocked = 5107;
+
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="地图错误码52xx">
+//
+
+    /**
+     * 地图-目的地据点尚未解锁
+     */
+    const map_NotUnlocked = 5201;
+
+    /**
+     * 地图-目的地据点已经解锁
+     */
+    const map_Unlocked = 5202;
+
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="    反射方法    ">
+
+    /**
+     * 辅助方法, 将所有错误码信息转换到CSV文本中.
+     * 用法: 先在本文件中用ctrl + H 全部替换掉 'c onst ' -> 's tatic $'
+     *       然后再调用本方法,即可在同目录下生成ErrCode.txt, 里面包含了所需信息.
+     * @throws \Exception
+     * @author gwang
+     */
+    static function L() {
+        $class = new \ReflectionClass(__CLASS__);                               # 建立这个类的反射对象
+        $properties = $class->getProperties(\ReflectionProperty::IS_STATIC);     # 拉取所有静态属性
+
+        $fileName = __DIR__ . "/ErrCode.txt";                                   # 输出文件名
+        $fd = fopen($fileName, "w");
+        if (false === $fd) {                                                    # 打开文件失败
+            throw new \Exception("打开$fileName 失败");
+        }
+        foreach ($properties as &$p) {
+            $d = preg_replace('/[\*|\/|\s+]/', '', $p->getDocComment());        # 处理下注释
+            $type = (strpos($p->getName(), 'err') === false ? 0 : 1);           # errorType: 0 继续, 1 重启
+            $n = fputs($fd, $p->getName() . ";" . $p->getValue() . ";$type;$d" . PHP_EOL);  # 写入文件
+            if (false === $n) {                                                 # 写入时失败
+                throw new Exception("写入$fileName 时失败");
+            }
+        }
+        fclose($fd);
+    }
+
+    /**
+     * 辅助方法, 将所有错误码信息转换到CS文件中.
+     * 用法: 先在本文件中用ctrl + H 全部替换掉 'c onst ' -> 's tatic $'
+     *       然后再调用本方法,即可在同目录下生成ErrCode.cs, 里面包含了所有错误信息.
+     * @throws \Exception
+     * @author gwang
+     */
+    static function M() {
+        $class = new \ReflectionClass(__CLASS__);                               # 建立这个类的反射对象
+        $properties = $class->getProperties(\ReflectionProperty::IS_STATIC);     # 拉取所有静态属性
+
+        $fileName = __DIR__ . "/ErrCode.cs";                                   # 输出文件名
+        $fd = fopen($fileName, "w");
+        if (false === $fd) {                                                    # 打开文件失败
+            throw new \Exception("打开$fileName 失败");
+        }
+        $classHead = <<<HEAD
+/// <summary>
+/// 错误码
+/// </summary>
+class ErrCode
+{
+
+
+HEAD;
+        $classEnd = <<<END
+}
+END;
+
+        $cst = 'const';
+        fputs($fd, $classHead);                                                 # 类头
+        foreach ($properties as &$p) {
+            $d = preg_replace('/[\*|\/|\s+]/', '', $p->getDocComment());        # 提取注释
+            $pname = $p->getName();                                             # 字段名称
+            $pvalue = $p->getValue();                                           # 错误码
+            $filed = <<<FILED
+    /// <summary>
+    /// {$d}
+    /// </summary>
+    public {$cst} int {$pname} = {$pvalue};
+
+
+FILED;
+            $n = fputs($fd, $filed);                                            # 写入错误编号
+            if (false === $n) {                                                 # 写入时失败
+                throw new Exception("写入$fileName 时失败");
+            }
+        }
+        fputs($fd, $classEnd);                                                  # 类尾
+        fclose($fd);
+    }
+
+// </editor-fold>
+}
+
+//ErrCode::L();
+//ErrCode::M();

+ 81 - 0
Gameserver/Amfphp/base/HashSaver.php

@@ -0,0 +1,81 @@
+<?php
+
+namespace loyalsoft;
+
+/**
+ * 对象字段将以hash表结构存入Redis中.
+ * 以达到拆分读写各个子节点的目标, 最终能够节省(带宽、内存、运算)消耗,提升性能.
+ * @author gwang 
+ * @version
+ *           1.0.1 增加了一个stVer 记录存储次数. --gwang 2022.2.22
+ *           1.0.0 创建. 2年以前就跟高健讨论过的理念,我一直没有落到实处(高健已经使用了). --gwang 2020.4.24
+ */
+class HashSaver extends Object_ext {
+
+    private static $save_tag = array();
+
+    /**
+     * 添加回存记录
+     * @param type $name
+     */
+    protected static function save_tag($name) {
+        self::$save_tag[] = $name;
+    }
+
+    /**
+     * storeage version 存储版本(每写入一次+1)
+     * @var int
+     */
+    public $stVer = 0;
+
+    //
+    // <editor-fold defaultstate="collapsed">
+
+    /**
+     * 自定义的数据加载方式
+     * @param type $mem_key
+     */
+    function readDataFromMem($mem_key) {
+        $ret = gMem()->hgetall($mem_key);                                       # 已JSON解析
+        if (null == $ret) {
+            return $ret;
+        }
+//        my_Assert(null != $ret, ErrCode::err_mem);                              # 未找到数据
+        $this->LoadFrom($ret);
+        return $this;
+    }
+
+    /**
+     * 存储数据到redis
+     * @return boolean 是否成功
+     */
+    function updateDataFull($mem_key) {
+        $this->stVer++;
+        return gMem()->hmset_Cas($mem_key, $this);
+//        return true;
+//        return gMem()->hmset($mem_key, $this);
+    }
+
+    function dic() {
+        $newdic = ArrayInit();
+        foreach ($this as $k => $v) {
+            $newdic[$k] = msgpack_pack($v);
+        }
+        return $newdic;
+    }
+
+    /**
+     * 存储数据到redis(这个设计目的是只保存改变的部分)
+     */
+    function updateDataByTag($mem_key) {
+        $data = array();
+        foreach (self::$save_tag as $k) {
+            $data[$k] = $this->$k;
+        }
+        $this->stVer++;
+        $data['stVer'] = $this->stVer;
+        return gMem()->hmset($mem_key, $data);
+    }
+
+    // </editor-fold>
+}

+ 17 - 0
Gameserver/Amfphp/base/Include.php

@@ -0,0 +1,17 @@
+<?php
+
+namespace loyalsoft;
+
+if (!defined("VO_ROOT")) {
+    define("VO_ROOT", __DIR__);
+    include_once VO_ROOT . '/Object_ext.php';
+    include_once VO_ROOT . '/CmdCode.php';
+    include_once VO_ROOT . '/OpeCode.php';
+    include_once VO_ROOT . '/ErrCode.php';
+    include_once VO_ROOT . '/Req.php';
+    include_once VO_ROOT . '/Resp.php';
+    include_once VO_ROOT . '/MemKey_User.php';
+    include_once VO_ROOT . '/MemKey_GameRun.php';
+    include_once VO_ROOT . '/HashSaver.php';
+    include_once VO_ROOT . '/MemKey_Guild.php';
+}

+ 290 - 0
Gameserver/Amfphp/base/MemKey_GameRun.php

@@ -0,0 +1,290 @@
+<?php
+
+namespace loyalsoft;
+
+/**
+ *  运行时游戏全局数据
+ * @version
+ *          1.0.0 Created at 2017-4-6. by --gwang
+ * @author gwang (mail@wanggangzero.cn)
+ * @copyright ? 2017-4-6, SJZ LoyalSoft Corporation & gwang. All rights reserved.
+ */
+class MemKey_GameRun {
+    //
+// <editor-fold defaultstate="collapsed" desc="英雄">
+
+    /**
+     * 运行时数据 - 英雄评价内容
+     * @param type $heroId
+     * @return string
+     */
+    public static function HeroDiscusses_item_hash($heroId) {
+        return "gamerun-herodiscuss-$heroId-item";
+    }
+
+    /**
+     * 运行时数据 - 英雄评价内容的评分
+     * @param int $heroId
+     * @return string
+     */
+    public static function HeroDiscusses_score_zset($heroId) {
+        return "gamerun-herodiscuss-$heroId-score";
+    }
+
+    /**
+     * 运行时数据 - 英雄评价 -  玩家给英雄打分
+     * @param int $heroId
+     * @return string
+     */
+    public static function HeroDiscusses_userScore_normal($heroId) {
+        return "gamerun-herodiscuss-$heroId-userscore";
+    }
+
+// </editor-fold>
+
+    /**
+     * 运行时数据 - 订单编号 - 当前秒内的订单序号
+     * @return type
+     */
+    public static function Game_OrderID_normal_int() {
+        return "gamerun-orderId-" . now();
+    }
+
+    /**
+     * 运行时数据 - 玩家记录集
+     * @param int $zoneid 分区id
+     * @param int $day  tsDay
+     * @return string
+     */
+    public static function Game_UserRecordByZone($zoneid, $day) {
+        return "gamerun-dailyUserRecord-$day-zone$zoneid";
+    }
+
+    /**
+     * 运行时数据 - 系统消息
+     * @param int $zoneid
+     * @return string
+     */
+    public static function Game_SysMsgByZone_zset($zoneid) {
+        return "gamerun-sysmsg-zone$zoneid";
+    }
+
+    // <editor-fold defaultstate="collapsed" desc="世界Boss">
+    //
+
+    /**
+     * 世界boss排行榜
+     * @param type $zoneid
+     * @return type
+     */
+    public static function Game_WorldBossRank($zoneid) {
+        $dateHour = date('YmdH');
+        return "gamerun-BossFight-byDateHour-zone$zoneid-$dateHour";
+    }
+
+    /**
+     * 世界boss排行榜(指定bossID)
+     * @param type $zoneid
+     * @return type
+     */
+    public static function Game_WorldBoss_X_Rank($zoneid, $bossid) {
+        $dateHour = date('YmdH');
+        return "gamerun-BossFight-byDateHour-zone$zoneid-boss$bossid-$dateHour";
+    }
+
+    //
+// </editor-fold>
+    // <editor-fold defaultstate="collapsed" desc="   竞技场   ">
+
+    /**
+     * 运行时数据 - 竞技场 实时积分榜(总榜)
+     * @param int $zoneid 分区id
+     * @param int $season 赛季
+     * @return string
+     */
+    public static function Game_PVPScoreByZoneSeason_zset($zoneid, $season) {
+        return "gamerun-pvpScore-zone$zoneid-season$season";
+    }
+
+    /**
+     * 运行时数据 - 竞技场 积分榜(某天)
+     * 业务逻辑: 查询下昨天的榜, 根据榜单发放奖励
+     * @param int $zoneid
+     * @param int $day 天
+     * @return string
+     */
+    public static function Game_PVPScoreByZone_zset_Day($zoneid, $day) {
+        return "gamerun-pvpScore-zone$zoneid-day$day";
+    }
+
+    /**
+     * 运行时数据 - 战斗力总榜
+     * @param type $zoneid
+     */
+    public static function Game_FightPowerRank_zset($zoneid) {
+        return "gamerun-rank-fpower-zone$zoneid";
+    }
+
+    /**
+     * 运行时数据 - 战力突破记录
+     * @param int $zoneid
+     * @return type
+     */
+    public static function Game_Rank_FPowerBreakLog_hash($zoneid) {
+        return "gamerun-rank-fpower-breaklog-zone$zoneid";
+    }
+
+    /**
+     * 运行时数据 - 通关榜
+     * @param type $zoneid
+     * @return type
+     */
+    public static function Game_Rank_passgate_zset($zoneid) {
+        return "gamerun-rank-passgate-zone$zoneid";
+    }
+
+    /**
+     * 运行时数据 - 通关人数统计(达到100W人以后溢出)
+     *   {
+     *    33=>99, (每一关从0增加到100W,统计100W个人以后溢出)
+     *    32=>87,
+     *   }
+     * @param type $zoneid
+     * @return type
+     */
+    public static function Game_Rank_passgate_count_hash($zoneid) {
+        return "gamerun-rank-passgate-count-zone$zoneid";
+    }
+
+    /**
+     * 运行时数据 - 通关帮突破记录
+     * @param type $zoneid
+     * @return type
+     */
+    public static function Game_Rank_passage_BreachLog_hash($zoneid) {
+        return "gamerun-rank-passgate-breaklog-zone$zoneid";
+    }
+
+    public static function Game_PaiMingFPowerRewardDeal_hash($zoneid) {
+        return "gamerun-PaiMingFPowerRewardDeal_-zone$zoneid";
+    }
+
+    public static function Game_PaiMingFPowerRewardDealStart_hash($zoneid) {
+        return "gamerun-PaiMingFPowerRewardDealStart_-zone$zoneid";
+    }
+
+    public static function Game_PaiMingLevelRewardDeal_hash($zoneid) {
+        return "gamerun-PaiMingLevelRewardDeal_-zone$zoneid";
+    }
+
+    public static function Game_PaiMingLevelRewardDealStart_hash($zoneid) {
+        return "gamerun-PaiMingLevelRewardDealStart_-zone$zoneid";
+    }
+
+// </editor-fold>
+    //
+
+    /**
+     * 运行时数据 - 每天的登录用户记录-byUId
+     * @param type $zoneid
+     * @param type $tsDay
+     * @return type
+     */
+    static function DailyLoginUser_byUID_hash($zoneid, $tsDay = null) {
+        if (!$tsDay) {                                                          # 检查是否默认参数
+            $tsDay = totalDays();
+        }
+        return "gamerun-loginUser-byUid-zone$zoneid-day_$tsDay";
+    }
+
+    /**
+     * 运行时数据 - 每天的登录用户记录-byLevel
+     * @param type $zoneid
+     * @param int $level 玩家等级
+     * @param type $tsDay
+     * @return type
+     */
+    static function DailyLoginUser_byLevel_hash($zoneid, $level, $tsDay = null) {
+        if (!$tsDay) {                                                          # 检查是否默认参数
+            $tsDay = totalDays();
+        }
+        return "gamerun-loginUser-byLevel-zone$zoneid-day_$tsDay-lvl_$level";
+    }
+
+//  ------ 统计分析 数据 ↓ ----
+    // <editor-fold defaultstate="collapsed" desc="   统计分析数据">
+
+    /**
+     * 统计数据 - 用户总数量 (int)
+     * @return string
+     */
+    public static function Stat_UserCountByZone_int($zoneid) {
+        return "stat-totalUserNum-zone$zoneid";
+    }
+
+    // <editor-fold defaultstate="collapsed" desc="商城">
+
+    /**
+     * 统计数据 - 每日商品销量 (zset)
+     * @param type $zoneid
+     * @return string
+     */
+    public static function stat_daily_ShopSales_zset($zoneid, $tsday) {
+        return "stat-daily-shopsales-zone$zoneid-$tsday";
+    }
+
+    /**
+     * 统计数据 - 每周商品销量 (zset)
+     * @param type $zoneid
+     * @param type $tsweek
+     * @return string
+     */
+    public static function stat_weekly_ShopSales_zset($zoneid, $tsweek) {
+        return "stat-weekly-shopsales-zone$zoneid-$tsweek";
+    }
+
+    /**
+     * 统计数据 - 每月商品销量 (zset)
+     * @param type $zoneid
+     * @param type $tsmonth
+     * @return string
+     */
+    public static function stat_monthly_ShopSales_zset($zoneid, $tsmonth) {
+        return "stat-monthly-shopsales-zone$zoneid-$tsmonth";
+    }
+
+    /**
+     * 消费日志 - 普通商城消费记录 (list1000)
+     * @param type $zoneid
+     * @return type
+     */
+    public static function log_ShopSales_list($zoneid) {
+        return "log-shopsales-zone$zoneid";
+    }
+
+// </editor-fold>
+    public static function stat_daily_secretshopSales_zset($zoneid, $tsday) {
+        return "stat-daily-secretshopsales-zone$zoneid-$tsday";
+    }
+
+    public static function stat_weekly_secretshopSalse_zset($zoneid, $tsweek) {
+        return "stat-weekly-secretshopsales-zone$zoneid-$tsweek";
+    }
+
+    public static function stat_monthly_secretshopSales_zset($zoneid, $tsMonth) {
+        return "stat-monthly-secretshopsales-zone$zoneid-$tsMonth";
+    }
+
+    /**
+     *
+     * 客户端上报日志
+     * @param type $eventID
+     * @return type
+     */
+    public static function stat_clientReportLog($eventID) {
+        return "stat-reported-log-$eventID";
+    }
+
+// </editor-fold>
+    // 
+}

+ 111 - 0
Gameserver/Amfphp/base/MemKey_Guild.php

@@ -0,0 +1,111 @@
+<?php
+
+namespace loyalsoft;
+
+/**
+ * Description of MemKey_Guild
+ *
+ * @author cyzhao
+ */
+class MemKey_Guild {
+//
+// <editor-fold defaultstate="collapsed" desc="    辅助方法  ">
+//
+
+    /**
+     * @return bool 是否使用短名称
+     */
+    private static function bUseShort() {
+//        return true;  # 全部启用
+        return match (PLAT) {
+            Enum_Plat::dev_gwang => false, # dev时不使用
+            default => true,
+        };
+    }
+
+    /**
+     * key前缀
+     * @param int $zoneid 分区id
+     * @param string $uid
+     * @return string
+     */
+    private static function Key_($zoneid, $uid) {
+        return self::bUseShort() ? 'u-' . $uid . '-' . $zoneid : 'user-' . $uid . '-zone' . $zoneid;
+    }
+
+// </editor-fold>
+
+    /**
+     * 获取玩家公会信息
+     * @param type $zoneid
+     * @return string
+     */
+    public static function getUserGuildInfo_hash($uid, $zoneid) {
+        return self::Key_($zoneid, $uid) . "-guild";
+    }
+
+    /**
+     * 公会列表缓存
+     * @param type $page
+     * @param type $zoneid
+     * @return type
+     */
+    public static function guildListCache($page, $zoneid) {
+        return "cache-guild-list" . "-zone" . $zoneid . $page;
+    }
+
+//    /**
+//     * 推荐公会列表缓存
+//     * @return string
+//     */
+//    static function guildRecommendationCache($zoneid) {
+//        return "cache-guild-recommendation" . "-zone" . $zoneid;
+//    }
+//
+//    /**
+//     *  推荐公会队列
+//     * @return string
+//     */
+//    static function constGuildRecommendationQueue($zoneid) {
+//        return "guild-recommendation-queue" . "-zone" . $zoneid;
+//    }
+
+    /**
+     * 获取公会信息
+     */
+    static function getGuildInfo_hash($gid, $zoneid) {
+        return "guild-" . $gid . "-zone" . $zoneid;
+    }
+
+    /**
+     * 获取当前最大公会ID,
+     * @return string
+     */
+    static function constGetCurrentMaxGuildID($zoneid) {
+        return "guild-currentmaxid" . "-zone" . $zoneid;
+    }
+
+//    /**
+//     * 【哈希】捐献请求记录
+//     * @return string
+//     */
+//    static function CacheGuildDonate($guildId, $zoneid) {
+//        return "guild-donate-" . $guildId . "-zone" . $zoneid;
+//    }
+//
+//    /**
+//     * 【LIST】捐献者记录
+//     * @return string
+//     */
+//    static function UserDonateRecordList($guildId, $index, $zoneid) {
+//        return "guild-donor-" . $guildId . "-" . $index . "-zone" . $zoneid;
+//    }
+//
+//    /**
+//     * 【LIST】除了捐献之外的日志
+//     * @return string
+//     */
+//    static function constGuildJournal($guildId, $zoneid) {
+//        return "guild-journal-" . $guildId . "-zone" . $zoneid;
+//    }
+}

+ 333 - 0
Gameserver/Amfphp/base/MemKey_User.php

@@ -0,0 +1,333 @@
+<?php
+
+namespace loyalsoft;
+
+/**
+ * 玩家相关字段
+ * 组织方案: 前缀 user-uid  + 字段名称 -filedname
+ * 分隔符: -
+ * @version
+ *          1.0.0 Created at 2017-4-6. by --gwang
+ * @author gwang (mail@wanggangzero.cn)
+ * @copyright ? 2017-4-6, SJZ LoyalSoft Corporation & gwang. All rights reserved.
+ */
+class MemKey_User {
+//
+// <editor-fold defaultstate="collapsed" desc="    辅助方法  ">
+//
+
+    /**
+     * @return bool 是否使用短名称
+     */
+    private static function bUseShort() {
+//        return true;  # 全部启用
+        return match (PLAT) {
+            Enum_Plat::dev_gwang => false, # dev时不使用
+            default => true,
+        };
+    }
+
+    /**
+     * key前缀
+     * @param int $zoneid 分区id
+     * @param string $uid
+     * @return string
+     */
+    private static function Key_($zoneid, $uid) {
+        return self::bUseShort() ? 'u-' . $uid . '-' . $zoneid : 'user-' . $uid . '-zone' . $zoneid;
+    }
+
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="    Union 玩家公共(不分区)数据    ">
+
+    /**
+     * [共享]获取玩家的分区记录(玩过哪些分区)
+     * @param int $zoneid 分区id
+     * @param string $uid
+     * @return string json []
+     */
+    public static function Union_PlayedZoneInfo_normal($uid) {
+        return self::bUseShort() ? 'u-' . $uid . '-z' : 'user-' . $uid . '-zoneinfo';
+    }
+
+    /**
+     * [共享]玩家各区公共数据
+     * @param string $uid
+     * @return string json
+     */
+    public static function Union_PublicState_hash($uid) {
+        return self::bUseShort() ? 'u-' . $uid . '-p' : 'user-' . $uid . '-public';
+    }
+
+// </editor-fold>
+//
+
+    /**
+     * 玩家信息
+     * @param int $zoneid 分区id
+     * @param string $uid
+     * @return string
+     */
+    public static function Info_hash($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . (self::bUseShort() ? '-g' : '-gameinfo');
+    }
+
+    /**
+     * 玩家交互信息
+     * @param int $zoneid 分区id
+     * @param string $uid
+     * @return string
+     */
+    public static function Interact($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . (self::bUseShort() ? '-i' : '-interact');
+    }
+
+    /**
+     * 主动挑战记录
+     * @param type $zoneid
+     * @param type $uid
+     *
+     */
+    public static function OffensiveLog_zset($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . (self::bUseShort() ? '-offlog' : '-offensivelog');
+    }
+
+    /**
+     * 被动挑战记录
+     * @param type $zoneid
+     * @param type $uid
+     * @return type
+     */
+    public static function DefensiveLog_zset($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . (self::bUseShort() ? '-deflog' : '-defensivelog');
+    }
+
+    /**
+     *  竞技场 主动挑战记录
+     * @param type $zoneid
+     * @param type $uid
+     */
+    public static function PVP_OffensiveLog_zset($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . "-pvp" . (self::bUseShort() ? '-offlog' : '-offensivelog');
+    }
+
+    /**
+     * 竞技场 被动挑战记录
+     * @param type $zoneid
+     * @param type $uid
+     * @return type
+     */
+    public static function PVP_DefensiveLog_zset($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . "-pvp" . (self::bUseShort() ? '-deflog' : '-defensivelog');
+    }
+
+    /**
+     * 玩家证书
+     * @param int $zoneid 分区id
+     * @param string $uid
+     * @return string
+     */
+    public static function Sig($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . (self::bUseShort() ? '-sig' : '-sig');
+    }
+
+// <editor-fold defaultstate="collapsed" desc="    Mail 邮件    ">
+
+    /**
+     * 玩家邮件 - 当前的maxid
+     * @param int $zoneid
+     * @param strng $uid
+     * @return string
+     */
+    public static function Mail_CurId_int($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . (self::bUseShort() ? '-m-ci' : '-mail-curid');
+    }
+
+    /**
+     * 玩家邮件 - 已领取到的系统邮件id集合
+     * @param int $zoneid
+     * @param strng $uid
+     * @return string
+     */
+    public static function Mail_SysRecord_set($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . (self::bUseShort() ? '-m-s' : '-mail-sysrecord');
+    }
+
+    /**
+     * 玩家邮件 - 邮件列表
+     * @param int $zoneid
+     * @param strng $uid
+     * @return string
+     */
+    public static function Mail_Queue_hash($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . (self::bUseShort() ? '-m-q' : '-mail-queue');
+    }
+
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="  Friend 好友数据  ">
+
+    /**
+     * 玩家好友列表
+     * @param int $zoneid 分区id
+     * @param string $uid
+     * @return string
+     */
+    public static function FriendsList_set($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . (self::bUseShort() ? '-f-l' : '-friends-list');
+    }
+
+    /**
+     * 玩家好友-留言数据
+     * @param int $zoneid 分区id
+     * @param string $uid
+     * @return string
+     */
+    public static function FriendsMsgQueue_hash($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . (self::bUseShort() ? '-f-m' : '-friends-msgqueue');
+    }
+
+    /**
+     * 玩家好友-操作队列
+     * @param int $zoneid 分区id
+     * @param string $uid
+     * @return string
+     */
+    public static function FriendsOps_hash($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . (self::bUseShort() ? '-f-o' : '-friends-ops');
+    }
+
+    /**
+     * 玩家好友-别人发送过来的礼物记录
+     * @param type $zoneid
+     * @param type $uid
+     * @return type
+     */
+    public static function GiftOps($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . (self::bUseShort() ? '-f-go' : '-friends-giftops');
+    }
+
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="  obsoleted for webpay edition  ">
+//
+
+    /**
+     * [obsolete]
+     * 玩家支付token信息
+     * @param int $zoneid 分区id
+     * @param string $uid
+     * @return string
+     */
+    public static function TokenInfo($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . (self::bUseShort() ? '-t' : '-tokens');
+    }
+
+    /**
+     * [obsolete]
+     * 玩家营销礼包临时挂起列表 【qqweb版】
+     * @param int $zoneid 分区id
+     * @param string $uid
+     * @return string
+     */
+    public static function GiftStore($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . ( self::bUseShort() ? '-gt' : '-giftitems');
+    }
+
+// </editor-fold>
+//
+
+    /**
+     * 支付流程中, 渠道支付服务器发过来的订单通知, 需要客户端主动请求服务端刷新到自己的账户中.
+     * @param int $zoneid 分区id
+     * @param string $uid
+     * @return string
+     */
+    public static function PayOrders($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . ( self::bUseShort() ? '-o' : '-orders');
+    }
+
+//
+// <editor-fold defaultstate="collapsed" desc="  status data  ">
+
+    /**
+     * 客户端属性信息(@火山引擎)
+     * @param type $zoneid
+     * @param type $uid
+     * @return type
+     */
+    public static function stat_volc_headers($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . (self::bUseShort() ? "-s-cp" : "stat-clientProperties");
+    }
+
+    /**
+     * 玩家抽奖数据
+     * @param int $zoneid 分区id
+     * @param string $uid
+     * @return string
+     */
+    public static function stat_LotteryRecords($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . ( self::bUseShort() ? '-s-l' : '-stat-lotterys');
+    }
+
+    /**
+     * 玩家消费数据 - 商品购买量 (zset)
+     * @param type $zoneid
+     * @param type $uid
+     * @return {
+     *   id:times,
+     *   id:times,...s
+     *  }
+     */
+    public static function stat_Shopbuy_zset($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . (self::bUseShort() ? '-s-sb' : '-stat-shopbuy');
+    }
+
+    /**
+     * 玩家消费数据 - 神秘商城商品购买量 (zsets)
+     * @param type $zoneid
+     * @param type $uid
+     * @return type
+     */
+    public static function stat_SecretShopBuy_zset($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . (self::bUseShort() ? '-s-sb' : '-stat-shopbuy');
+    }
+
+    /**
+     * 玩家消费数据 - 消费记录 (list)
+     * @param type $zoneid
+     * @param type $uid
+     * @return type
+     */
+    public static function log_shopbuy_list($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . (self::bUseShort() ? '-l-sb' : "-log-shopbuy");
+    }
+
+    /**
+     * 玩家消费数据 - 神秘商城消费记录 (list30)
+     * @param type $zoneid
+     * @param type $uid
+     * @return type
+     */
+    public static function log_secretshopbuy_list($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . (self::bUseShort() ? '-l-ssb' : "-log-secretshopbuy");
+    }
+
+// </editor-fold>
+//
+    // <editor-fold defaultstate="collapsed" desc="   临时/时效性数据   ">
+    //
+
+    /**
+     * 玩家临时/时效性数据 - 战场奖励与计算串的MD5值
+     * @param int $zoneid
+     * @param string $uid
+     */
+    public static function temp_arenas_pre_reward_md5_str($zoneid, $uid) {
+        return self::Key_($zoneid, $uid) . (self::bUseShort() ? "-t-aprwd5" : "-temp-arenasPreRewardMD5");
+    }
+
+    //
+// </editor-fold>
+}

+ 100 - 0
Gameserver/Amfphp/base/Object_ext.php

@@ -0,0 +1,100 @@
+<?php
+
+namespace loyalsoft;
+
+/**
+ * 扩展对象的一些通用方法
+ * 使用方法: $var = new XX($obj); ... 用完后注意进行回存.(相当于克隆一个原始对象,若需覆盖原始对象记得回存操作)
+ * @version
+ *          1.0.3 增加了Json()和MD5()方法,用于计算对象的摘要,方便与客户端或者存储端进行校验. --gwang 2022.5.31
+ *          1.0.2 增加了LoadFrom()方法. --gwang 2020.4.24
+ *          1.0.1 改名, PHP 7以后的语法中已经将Object作为关键字 --gwang 2017年8月2日
+ *          1.0.0 Created at 2017-3-28. by --gwang
+ * @author gwang (mail@wanggangzero.cn)
+ * @copyright ? 2017-3-28, SJZ LoyalSoft Corporation & gwang. All rights reserved.
+ */
+class Object_ext {
+
+    /**
+     * 默认构造函数,能够智能提取关联数组或者是object中的字段进行初始化.
+     * Ps. 不会进行递归类型检查, php的serilize函数也没有附带字段的类型信息
+     */
+    function __construct($arg = null) {
+        if (func_num_args() != 1 || is_null($arg)) {                            # 若参数为null,无特殊操作
+            return;
+        }
+        $para = is_array($arg) ? $arg : (array) $arg;                           # 关联数组
+        $vars = get_class_vars(get_class($this));                               # 后期绑定,获得实例的实际类名称=>属性数组
+        foreach ($vars as $name => $value) {
+            $this->$name = isset($para[$name]) ? $para[$name] : $value;         # 取参数中的或者默认值
+        }
+    }
+
+    /**
+     * 从对象加载数据(赋值给自己的字段)
+     * (注意: 对于自身未定义的字段直接抛弃了,所以要求所有字段都必须在model中定义好,运行时增加的字段下次加载时就会丢失)
+     * @param array/Object $obj
+     */
+    public function LoadFrom($obj) {
+        if (func_num_args() != 1 || is_null($obj)) {                            # 防御: 参数数量不对
+            die("too many args or arg obj was null!");
+        }
+        $para = is_array($obj) ? $obj : (array) $obj;                           # 转关联数组
+        $vars = get_class_vars(get_class($this));                               # 后期绑定,获得实例的实际类名称=>属性数组
+        foreach ($vars as $name => $value) {
+            if (isset($para[$name])) {
+                $this->$name = $para[$name];                                    # 取参数中的或者默认值
+            }
+        }
+        return $this;
+    }
+
+    public function __toString() {                                              # 用json_encode覆盖下toString()方法
+        return $this->toString();
+    }
+
+    /**
+     * @return 将自身数据序列化为json串.
+     */
+    public function Json() {
+        return JsonUtil::encode($this);
+    }
+
+    public function toString() {                                                # 还没想好要不要留一个显式的toString()方法
+        $str = $this->Json();
+        return $str;
+    }
+
+    /**
+     * @param bool $lower 是否返回小写字符串,默认值false, 返回大写字符串
+     * @return string 计算自身数据序列化为json串后的MD5值(大写16进制)
+     */
+    public function MD5($lower = false) {
+        $str = $this->Json();
+        return $lower ? md5($str) : strtoupper(md5($str));
+    }
+
+    /**
+     * 从json反序列化回来的时候,修正下类型. 有的时候空数组会序列化为{},再反序列化回来的时候类型就变了.
+     */
+    public function fixArray() {
+        $ref = new \ReflectionObject($this);                                    # 建立反射对象
+        $properties = $ref->getProperties();                                    # 获取属性列表
+        foreach ($properties as $p) {                                           # 遍历属性
+            isEditor() and $p = new \ReflectionProperty();
+            $attrs = $p->getAttributes("loyalsoft\ArrayType");                  # 获取 "数组类型" 的注解
+            if (count($attrs) > 0) {
+                $v = self::ConsureArr($p->getValue($this));                     # 属性值类型转换为数组
+                $p->setValue($this, $v);                                        # 回写属性值到对象上
+            }
+        }
+    }
+
+    private static function ConsureArr($mix) {
+        if (is_array($mix)) {
+            return $mix;
+        }
+        return (array) $mix;
+    }
+
+}

+ 113 - 0
Gameserver/Amfphp/base/OpeCode.php

@@ -0,0 +1,113 @@
+<?php
+
+namespace loyalsoft;
+
+/**
+ * 功能码常量定义, 要求: 常量名称和对应的功能处理模块的名称相一致(无需Proc后缀).
+ * @author gwang
+ */
+class OpeCode {
+
+    /**
+     * 支付功能
+     */
+    const Pay = 888;
+
+    /**
+     * 玩家主功能
+     */
+    const User = 600;
+
+//    /**
+//     * 好友功能
+//     */
+//    const Friend = 601;
+
+    /**
+     * 任务模块
+     */
+    const Task = 602;
+
+    /**
+     * 英雄功能
+     */
+    const Hero = 603;
+
+    /**
+     * 邮件功能
+     */
+    const Email = 604;
+
+    /**
+     * 活动功能
+     */
+    const Active = 605;
+
+    /**
+     * 战斗功能
+     */
+    const Fight = 606;
+
+    /**
+     * 商城功能
+     */
+    const Shop = 607;
+
+    /**
+     * 仓库功能
+     */
+    const Store = 608;
+
+    /** 系统功能 */
+    const System = 609;
+
+    /**
+     * 排行榜功能
+     */
+    const Rank = 611;
+
+    /**
+     * 事件功能
+     */
+    const Event = 612;
+
+    /**
+     * 学院
+     */
+    const College = 613;
+
+    /**
+     * 公会功能
+     */
+    const Guild = 614;
+
+    /**
+     * 拍卖
+     */
+    const Auction = 615;
+
+    /**
+     * 地图
+     */
+    const Map = 616;
+
+    // <editor-fold defaultstate="collapsed" desc="反射方法">
+    //
+
+    /**
+     * 依据opecode=> Proc模块名称
+     * @param type $ope
+     * @return string
+     * @author gwang
+     */
+    public static function getProc($ope) {
+        $r = new \ReflectionClass(__CLASS__);                                   # 新建反射对象
+        $procs = array_flip($r->getConstants());                                # 提取操作码到数组中
+        if (!isset($procs[$ope])) {                                             # 找不到
+            return 'err';                                                       # 返回固定的字符串: err
+        }
+        return __NAMESPACE__ . '\\' . $procs[$ope] . 'Proc';                    # 拼装处理模块的名称
+    }
+
+// </editor-fold>
+}

+ 187 - 0
Gameserver/Amfphp/base/Req.php

@@ -0,0 +1,187 @@
+<?php
+
+namespace loyalsoft;
+
+/**
+ * Description of Req
+ * 客户端数据请求实体
+ * @author jgao
+ */
+class Req extends Object_ext {
+
+    /**
+     * 谁(openId)
+     * @var String
+     */
+    public $uid;
+
+    /**
+     * 对哪个功能
+     * @var int
+     */
+    public $ope;
+
+    /**
+     * 执行什么操作
+     * @var int
+     */
+    public $cmd;
+
+    /**
+     * 数据体[数组]
+     * @var array
+     */
+    public $paras;
+
+    /**
+     * 时间戳
+     * @var int
+     */
+    public $ts;
+
+    /**
+     * 分区id
+     * @var string
+     */
+    public $zoneid;
+
+    /**
+     *
+     * @var 序列码
+     */
+    public $SN;
+
+    /**
+     * @var string token
+     */
+    public $TK;
+
+    /**
+     * @var string 客户端版本号
+     */
+    public $CV = "nil";
+
+// <editor-fold defaultstate="collapsed" desc=" 服务端为了便于操作使用到的变量直接挂载到req上 ">
+
+    /**
+     * 挂载玩家数据实体
+     * @var Data_UserGame
+     */
+    public $game;
+
+    /**
+     * @var bool userInfo是否需要回写
+     */
+    public $userInfoChanged = false;
+
+// </editor-fold>
+
+    /**
+     * @param Req $req
+     * @return Req
+     */
+    public function __construct($req) {
+        if (is_string($req)) {                                                  // fix黑窗调试直接调用
+            $req = JsonUtil::decode($req);
+        }
+        parent::__construct($req);
+        if ($this->CV == "unityEditor") {                                       # 对特殊CV做下处理
+            $this->CV = "999.999.999";
+        }
+        if ($this->CV == "unity") {
+            $this->CV = "1.1.8";
+        }
+        self::$_req = $this;                                                    // ---赋值---
+        switch ($this->cmd) {
+            case CmdCode::cmd_user_loginuserinfo :                              # 登录
+            case CmdCode::cmd_user_gameconstinfo :                              # 下载常量
+            case CmdCode::cmd_user_testUserLogin :                              # 测试登录
+            case CmdCode::cmd_user_registerNewUID :                             # 测试注册账号
+            case CmdCode::cmd_user_registerNewRole :                            # 测试注册角色
+            case CmdCode::cmd_user_getzonelist:                                 # 下载分区列表
+                # 这些消息不需要初始化UserInfo
+                break;
+            default :                                                           # 其余消息,初始化UserInfo
+                if ($this->uid) {
+                    $this->game = UserProc::getUserGame($this->zoneid, $this->uid);
+                    if (null == $this->game) {
+                        Err(">>>>>>>>>>用户数据读取为空!!<<<<<<<<<<<[$this->uid]:PreProc");
+                    }
+                    if (!Index::$isDebugging && $this->TK != $this->game->TK) {
+                        Err(ErrCode::err_anotherlogin);
+                    }
+                }
+                break;
+        }
+    }
+
+    /**
+     * 把Req对象序列化到字符串
+     * @return type
+     */
+    public function __toString() {
+        $clone = clone $this;
+        unset($clone->userInfoChanged);                                         # 删除不必要的字段
+        unset($clone->game);                                                    # 删除不必要的字段
+        $str = JsonUtil::encode($clone);                                        # json
+        return $str;
+    }
+
+    /**
+     * 获得用户的平台字符串
+     * @return string
+     */
+    function getPlatStr() {
+        $uid = $this->uid;
+        return match (PLAT) {
+            Enum_Plat::Online_WEB => 'qzone', #                                 # 过时的平台,QQ空间
+            Enum_Plat::Online_IOS => 'ios', #                                   # ios平台, 尚未开启
+            default => strrpos($uid, '_') > 0 ? substr($uid, strrpos($uid, '_') + 1) : "", # 提取渠道后缀字符串
+        };
+//        switch (PLAT) {
+//            case 'web':                                                         # web版
+//                return 'qzone';                                                 # only QQ空间
+//            case 'ios':                                                         # ios版
+//                return 'ios';                                                   # only ios
+//            case 'and':                                                         # 安卓版/默认
+//            default :
+//                return strrpos($uid, '_') > 0 ? substr($uid, strrpos($uid, '_') + 1) : ""; # 提取平台字符串
+//        }
+        //PS. substr() 函数返回字符串的一部分 strrpos() 函数查找字符串在另一字符串中最后一次出现的位置。
+    }
+
+    /**
+     * 获得用户的平台唯一id.
+     * @return string
+     */
+    public function getPlatOid() {
+        return substr($this->uid, 0, strrpos($this->uid, '_'));                 # 提取平台给的唯一id字符串
+        //PS. substr() 函数返回字符串的一部分 strrpos() 函数查找字符串在另一字符串中最后一次出现的位置。
+    }
+
+    /**
+     * 将要进行存储的数据
+     * @return Req
+     */
+    public function storage() {
+        $clone = clone $this;
+        if (!$clone->userInfoChanged) {
+            unset($clone->game);                                                # 删除不必要的字段
+        }
+        return (array) $clone;
+    }
+
+    // <editor-fold defaultstate="collapsed" desc="单例:想着以后不在通过函数透传此对象了">
+
+    /**
+     * 全局实例
+     * @return Req
+     */
+    public static function Ins() {
+        return self::$_req;
+    }
+
+    private static $_req;
+
+// </editor-fold>
+}

+ 145 - 0
Gameserver/Amfphp/base/Resp.php

@@ -0,0 +1,145 @@
+<?php
+
+namespace loyalsoft;
+
+/**
+ * Description of ResponseVo
+ * 服务端消息应答实体
+ * @author jgao,gwang
+ */
+class Resp extends Object_ext {
+
+    /**
+     * 错误码[成功为0]
+     * @var int
+     */
+    public $err;
+
+    /**
+     * @var int 请求的SN带回,更方便对号入座.
+     */
+    public $SN;
+
+    /**
+     * 执行结果
+     * @var Object
+     */
+    public $result;
+
+    /**
+     * 时间戳
+     * @var int
+     */
+    public $ts;
+
+    /**
+     * 事件列表
+     * @var array/list
+     */
+    public $events = array();
+
+    /**
+     * 标签[扩展用,保留]
+     * @var object
+     * @deprecated since version 0 弃用
+     */
+    public $tag;
+
+    /**
+     * 附加错误信息, err!=0时赋值
+     * @var string
+     */
+    public $errmsg = "";
+
+    /**
+     * @var int data version on server
+     */
+    public $DN = -1;
+
+    /**
+     * 产生服务端成功应答数据
+     * @param Req $req
+     * @param assoc Array $ret
+     * @return \ResponseVo
+     */
+    public static function ok($ret = null) {
+        $resp = new Resp();
+        $resp->err = ErrCode::ok;
+        $resp->result = $ret == null ? ObjectInit() : $ret;                     # 避免出现null
+        $resp->ts = time();
+//        $resp->tag = ObjectInit();
+        $resp->SN = req()->SN;
+        $resp->DN = isset(req()->game->stVer) ? req()->game->stVer : -1;
+        return $resp;
+    }
+
+    /**
+     * 产生服务端错误应答数据
+     * @param Req $req
+     * @param int $err
+     * @param string $msg 【可选】附加信息
+     * @return \ResponseVo
+     */
+    public static function err($err, $msg = "") {
+        $resp = new Resp();
+        $resp->err = $err;
+        $resp->result = ObjectInit();
+        $resp->ts = time();
+        $resp->errmsg = $msg;
+//        $resp->tag = ObjectInit();
+//        self::addTag('errmsg', $msg);
+        $resp->SN = req()->SN;
+        return $resp;
+    }
+
+    /**
+     * 实例方法, 将静态变量上累积的数据转移到自己身上
+     */
+    public function AfterProc() {
+//        $this->tag = arr2obj(array_merge((array) $this->tag, (array) self::$ext_tag)); # 合并附加tags
+//        self::$ext_tag = ObjectInit();
+        $this->events = self::$ext_events;                                      # 合并附加events
+        self::$ext_events = array();
+        if (count($this->events) > 0) {                                         # 对于出现event的情况下自动附带store到客户端.
+            if (is_array($this->result)) {
+                if (!array_key_exists('store', (array) $this->result)) {
+                    $this->result['store'] = ctx()->store;
+                }
+            } else {
+                if (!array_key_exists('store', (array) $this->result)) {
+                    $this->result->store = ctx()->store;
+                }
+            }
+        }
+    }
+
+    // <editor-fold defaultstate="collapsed" desc="附加event带回">
+
+
+    static $ext_events = array();
+
+    public static function AddEvent($name, $arg1, $arg2) {
+        self::$ext_events[] = array(
+            'name' => $name,
+            'arg1' => is_null($arg1) ? ObjectInit() : $arg1,
+            'arg2' => is_null($arg2) ? ObjectInit() : $arg2
+        );
+    }
+
+// </editor-fold>
+    // <editor-fold defaultstate="collapsed" desc="附加Tags带回">
+//    static $ext_tag = null;
+//
+//    /**
+//     * 向返回值添加附加数据
+//     * @param string $name
+//     * @param any $value
+//     */
+//    public static function addTag($name, $value) {
+//        if (null == self::$ext_tag) {
+//            self::$ext_tag = ObjectInit();
+//        }
+//        self::$ext_tag->$name = $value;
+//    }
+// </editor-fold>
+}

+ 102 - 0
Gameserver/Amfphp/config.php

@@ -0,0 +1,102 @@
+<?php
+
+namespace loyalsoft;
+
+//use \GAME_ONLINE;
+
+/**
+ * Description of config
+ * 尝试用这种写法来定义服务器配置
+ * @author gwang (email: mail@wanggangzero.cn)
+ * @copyright © 2015-2-3, SJZ LoyalSoft Corporation & gwang. All rights reserved.
+ */
+abstract class config {
+
+    protected $testerArr;                                                       # 测试号数组
+    protected $banedArr;                                                        # 封号数组
+    public $paydb;                                                              # mysql配置
+    public $nosql;                                                              # nosql配置
+    public $stat;                                                               # 统计配置
+    public $mongo;                                                            # MongoDB配置
+
+    /**
+     * CDN地址 (没有写继承是因为暂时没有特殊逻辑)
+     * @return type
+     */
+    public static function CDN_host() {
+        return "https://loyalsoft.oss-cn-shanghai.aliyuncs.com" . "/ylsj/" . PLAT;
+    }
+
+    /**
+     * 测试号
+     * @param string $uid
+     * @return bool
+     */
+    function isTester($uid) {
+        return in_array($uid, $this->testerArr);
+    }
+
+    /**
+     * 封号
+     * @param string $uid
+     */
+    function isBaned($uid) {
+        return in_array($uid, $this->banedArr);
+    }
+
+    // 测试号
+    abstract protected function _InitTester();
+
+    // 封号
+    abstract protected function _InitBaneder();
+
+    /**
+     * 初始化paydb
+     */
+    abstract protected function _InitPaydb();
+
+    /**
+     * redis配置
+     */
+    abstract protected function _InitNosql();
+
+    /**
+     * mongodb配置
+     */
+    abstract protected function _InitMongoDB();
+
+    /**
+     * @return config 单例
+     */
+    static public function Inst() {
+        static $config = null;
+        if (is_null($config)) {
+            $config = include __DIR__ . '/configs/config_' . PLAT . '.php';
+        }
+        return $config;
+    }
+
+    /**
+     * 构造函数负责初始化配置数据
+     */
+    private function __construct() {
+        $this->_InitTester();                                                   # 测试用户
+        $this->_InitBaneder();                                                  # 封号用户
+
+        $this->paydb = new \stdclass();
+        $this->paydb->persistant = false;                                       # 持久链接 or not.
+        $this->paydb->driver = 'mysql';                                         # Must be MySQL. Don't support other database server yet.
+        $this->paydb->encoding = 'UTF8';                                        # Encoding of database.
+        $this->paydb->strictMode = false;                                       # Turn off the strict mode of MySQL.
+        // $this->paydb->emulatePrepare = true;                                 # PDO::ATTR_EMULATE_PREPARES
+        // $this->paydb->bufferQuery    = true;                                 # PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
+        $this->paydb->prefix = '';                                              # 表前缀
+        $this->_InitPaydb();                                                    # mysql数据库配置
+
+        $this->nosql = new \stdClass();
+        $this->_InitNosql();                                                    # nosql数据库配置
+
+        $this->mongo = new \stdClass();
+        $this->_InitMongoDB();                                                  # mongodb
+    }
+}

+ 2009 - 0
Gameserver/Amfphp/configs/GameConfig.php

@@ -0,0 +1,2009 @@
+<?php
+
+////////////////////
+// 由CodeGenerator创建。
+// Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+// author: gwang
+// 日期: 2023-05-26 16:41:03
+////////////////////
+
+namespace loyalsoft;
+
+/**
+ * 常量配置数据
+ */
+class GameConfig {
+// <editor-fold defaultstate="collapsed" desc="  基础代码 ">
+
+    /**
+     * 是否启用codegen
+     */
+    private static function isCG() {
+        return defined('CodeGen_Enabled') && CodeGen_Enabled;
+    }
+
+    /**
+     * @var bool 分区是否使用独立的常量配置数据
+     */
+    private static $useZoneId = false;
+
+    /**
+     * 追加分区列表字符串
+     * @return string
+     */
+    private static function zoneid() {
+        global $zoneid;
+        return self::$useZoneId ? "-zone$zoneid" : "";
+    }
+
+    /**
+     * @return ClientVersion
+     */
+    private static function CV() {
+        return req() ? req()->CV . '-' : "";
+    }
+
+    /**
+     * 初始化指定变量, 非null的情况下直接跳出
+     * 可能从文件中或者redis中获取原始数据对变量进行初始化
+     * @param mixed $a 变量
+     * @param string $modelName 用来初始化变量的资源名称
+     * @param bool $isHash 数据是否采用hash结构(否:普通字符串)
+     */
+    static private function initValue(&$a, $modelName, $isHash = true) {
+        $key = 'gamecfg-' . self::CV() . $modelName . self::zoneid();
+        if (is_null($a)) {
+            if (self::isCG()) {
+                $a = include $key . '.php';
+                if ($isHash) {
+                    $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) {
+        if (self::isCG()) {
+            $data = self::$modelName();
+            if (property_exists($data, $itemId)) {
+                return $data->$itemId;
+            }
+        } else {
+            $key = 'gamecfg-' . self::CV() . $modelName . self::zoneid();
+            return gMem()->hget($key, $itemId);
+        }
+        return null;
+    }
+
+// </editor-fold>
+
+    /**
+     * 全局参数
+     * @return \globalsettings
+     */
+    public static function globalsettings() {
+        static $a = null;
+        return self::initValue($a, 'globalsettings');
+    }
+
+    /**
+     * 英雄模块
+     * @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 self::get_hash_item('hero', $itemid);
+    }
+
+    /**
+     * 英雄的升级(属性加成)
+     * @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 self::get_hash_item('heroextra_level', $heroId)->$quality;
+    }
+
+    /**
+     * 武器等级,品质,等级双索引
+     * @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 self::get_hash_item('weapon_levelexp', $type)->$level;
+    }
+
+    /**
+     * 累充表-改成首充表
+     * @return \shop_accumulating
+     */
+    public static function shop_accumulating() {
+        static $a = null;
+        return self::initValue($a, 'shop_accumulating');
+    }
+
+    /**
+     * @return \sm_shop_accumulating shop_accumulating item数据
+     */
+    public static function shop_accumulating_getItem($itemid) {
+        return self::get_hash_item('shop_accumulating', $itemid);
+    }
+
+    /**
+     * [废弃]
+     * @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 self::get_hash_item('itemlevel', $itemid);
+    }
+
+    /**
+     * 武器突破
+     * @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 self::get_hash_item('weaponextra_level', $weaponId)->$starLv;
+    }
+
+    /**
+     * 英雄的升级——每级成长消耗经验需求表
+     * @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 self::get_hash_item('hero_levelexp', $itemid);
+    }
+
+    /**
+     * 英雄的升阶(消耗金币+ 属性加成)
+     * @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 self::get_hash_item('heroextra_dengjie', $itemid);
+    }
+
+    /**
+     * 关卡
+     * @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 \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 self::get_hash_item('gatelevel', $itemid);
+    }
+
+    /**
+     * 关卡—— 星级奖励
+     * @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 self::get_hash_item('gate_starreward', "$chapterId-$hardLevel");
+    }
+
+    /**
+     * 任务
+     * @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 self::get_hash_item('task', $itemid);
+    }
+
+    /**
+     *
+     * @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 self::get_hash_item('playerlevel', $itemid);
+    }
+
+    /**
+     * 言灵类道具
+     * @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 self::get_hash_item('item_yanling', $itemid);
+    }
+
+    /**
+     * 无尽塔关卡数据
+     * @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 self::get_hash_item('endless_tower', $itemid);
+    }
+
+    /**
+     *
+     * @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 self::get_hash_item('heroextra_level_tupo', $heroId)->$starLv;
+    }
+
+    /**
+     * 商城
+     * @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 self::get_hash_item('shop', $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 \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 \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 self::get_hash_item('item_taskcard', $itemid);
+    }
+
+    /**
+     *
+     * @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 self::get_hash_item('shenmiaoActiveIdTs', $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 self::get_hash_item('sysmail', $itemid);
+    }
+
+    /**
+     * 剧情对话
+     * @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 self::get_hash_item('plot', $gateId)->$stage;
+    }
+
+    /**
+     * 言灵附加随机表
+     * @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 self::get_hash_item('item_additional', $itemid);
+    }
+
+    /**
+     * 活跃点奖励表
+     * @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 self::get_hash_item('task_active_reward', $itemid);
+    }
+
+    /**
+     * 竞技场 上榜单奖励
+     * @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 self::get_hash_item('pvp_rankreward', $itemid);
+    }
+
+    /**
+     * 竞技 商店
+     * @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 self::get_hash_item('pvp_shop', $itemid);
+    }
+
+    /**
+     * 配置的关卡相关的战斗数据
+     * @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 self::get_hash_item('gate_combat', $itemid);
+    }
+
+    /**
+     * 根据类型找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 self::get_hash_item('shenmiaoTypeList', $key);
+    }
+
+    /**
+     * 每日任务
+     * @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 self::get_hash_item('task_daily', $itemid);
+    }
+
+    /**
+     * 神庙定期活动时间
+     * @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 self::get_hash_item('shenmiaoActiveTs', $itemid);
+    }
+
+    /**
+     * 英雄的升级——成长可消耗的道具表
+     * @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 self::get_hash_item('hero_levelexp_costitem', $itemid);
+    }
+
+    /**
+     * 言灵等级
+     * @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 self::get_hash_item('yanlingLeve', $itemid);
+    }
+
+    /**
+     * 神庙
+     * @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 self::get_hash_item('shenmiao', $itemid);
+    }
+
+    /**
+     * 圣哲学院表
+     * @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 self::get_hash_item('college', $itemid);
+    }
+
+    /**
+     * 引导触发
+     * @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 self::get_hash_item('guide_trigger', $itemid);
+    }
+
+    /**
+     * 任务节点
+     * @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 self::get_hash_item('task_node', $itemid);
+    }
+
+    /**
+     * 圣哲学院课程表
+     * @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 self::get_hash_item('course', $itemid);
+    }
+
+    /**
+     *
+     * @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 self::get_hash_item('gate_mainland', $itemid);
+    }
+
+    /**
+     * 动作事件表
+     * @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 self::get_hash_item('eventAction', $itemid);
+    }
+
+    /**
+     * 碎片
+     * @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 self::get_hash_item('segment', $itemid);
+    }
+
+    /**
+     * 关卡-区域表
+     * @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 self::get_hash_item('gate_zone', $itemid);
+    }
+
+    /**
+     * 建筑表_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 self::get_hash_item('build', $itemid);
+    }
+
+    /**
+     * 神秘商城道具表-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 self::get_hash_item('secretshop_goodsType', $itemid);
+    }
+
+    /**
+     * 神秘商城刷新价格表
+     * @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 self::get_hash_item('secretshop_refresh', $itemid);
+    }
+
+    /**
+     * 神秘商城道具表-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 self::get_hash_item('secretshop_typeId', $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 self::initValue($a, 'zonelist');
+    }
+
+    /**
+     * @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 self::initValue($a, 'tokenGift');
+    }
+
+    /**
+     * @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 self::initValue($a, 'activity');
+    }
+
+    /**
+     * @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 self::initValue($a, 'taskcard_shop');
+    }
+
+    /**
+     * @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 self::initValue($a, 'segment_byPinzhi');
+    }
+
+    /**
+     * @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 self::initValue($a, 'npc');
+    }
+
+    /**
+     * @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 self::initValue($a, 'activity_onlinegift');
+    }
+
+    /**
+     * @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;
+        return self::initValue($a, 'GM_uids');
+    }
+
+    /**
+     * 活动, 全服注册礼包
+     * @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 self::get_hash_item('activity_reggift', $itemid);
+    }
+
+    /**
+     * 错误信息表
+     * @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 \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 self::get_hash_item('guilddonatereward', $itemid);
+    }
+
+    /**
+     * 公会等级相关数据
+     * @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 self::get_hash_item('guildlevel', $itemid);
+    }
+
+    /**
+     * 公会礼包
+     * @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 self::get_hash_item('guildlibao', $itemid);
+    }
+
+    /**
+     * 玩家初始化数据
+     * @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 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 self::get_hash_item('heroextra_skill_lv_limit', $itemid);
+    }
+
+    /**
+     * 武器类道具
+     * @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 self::get_hash_item('item_weapon', $itemid);
+    }
+
+    /**
+     * 礼包类道具
+     * @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 self::get_hash_item('item_package', $itemid);
+    }
+
+    /**
+     * 强化类道具
+     * @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 self::get_hash_item('item_stones', $itemid);
+    }
+
+    /**
+     * 药水类道具
+     * @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 self::get_hash_item('item_pills', $itemid);
+    }
+
+    /**
+     * 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 self::get_hash_item('item_buffcard', $itemid);
+    }
+
+    /**
+     * 碎片类道具
+     * @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 self::get_hash_item('item_segment', $itemid);
+    }
+
+    /**
+     * 道具通用字段表
+     * @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 self::get_hash_item('item_base', $itemid);
+    }
+
+    /**
+     * 子技能表
+     * @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 self::get_hash_item('subSkill', $itemid);
+    }
+
+    /**
+     * 宝箱类道具
+     * @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 self::get_hash_item('item_box', $itemid);
+    }
+
+    /**
+     * 关卡-通关条件
+     * @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 self::get_hash_item('gate_passCondition', $itemid);
+    }
+
+    /**
+     * 元素相克关系表
+     * @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 self::get_hash_item('attack_relation', "$attack1-$attack2");
+    }
+
+    /**
+     * 战斗力榜全服突破奖励
+     * @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 self::get_hash_item('rankreward_fpower', $itemid);
+    }
+
+    /**
+     * 合体技能
+     * @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 self::get_hash_item('skill_cross', $itemid);
+    }
+
+    /**
+     * 通关榜突破奖励
+     * @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 self::get_hash_item('rankreward_passgate', $itemid);
+    }
+
+    /**
+     * 言灵召唤书
+     * @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 self::get_hash_item('item_yanlingbook', $itemid);
+    }
+
+    /**
+     * 言灵进阶表
+     * @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 self::get_hash_item('yanling_upgrade', $typeId)->$grade;
+    }
+
+    /**
+     * 功能引导模块
+     * @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 self::get_hash_item('guide_module', $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 \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 self::get_hash_item('shop_limit', $itemid);
+    }
+
+    /**
+     * 月卡商城
+     * @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 self::get_hash_item('shop_monthVIP', $itemid);
+    }
+
+    /**
+     * 掉落数据表
+     * @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 self::get_hash_item('drop', $itemid);
+    }
+
+    /**
+     *
+     * @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 self::get_hash_item('item_stones_type', $key);
+    }
+
+    /**
+     *
+     * @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 self::get_hash_item('yanlingLevel_type', $type)->$level;
+    }
+
+    /**
+     * 言灵突破
+     * @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 self::get_hash_item('yanlingextra_level', $yanlingId)->$starLv;
+    }
+
+    /**
+     * 世界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 self::get_hash_item('worldboss_rankreward', $itemid);
+    }
+
+    /**
+     * 世界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 \score
+     */
+    public static function score() {
+        static $a = null;
+        return self::initValue($a, 'score');
+    }
+
+    /**
+     * @return \sm_score score item数据
+     */
+    public static function score_getItem($itemid) {
+        return self::get_hash_item('score', $itemid);
+    }
+
+    /**
+     * 宝石配方表
+     * @return \gem_formula
+     */
+    public static function gem_formula() {
+        static $a = null;
+        return self::initValue($a, 'gem_formula');
+    }
+
+    /**
+     * @return \sm_gem_formula gem_formula item数据
+     */
+    public static function gem_formula_getItem($itemid) {
+        return self::get_hash_item('gem_formula', $itemid);
+    }
+
+    /**
+     * 宝石合成研究等级表
+     * @return \gem_researchlevel
+     */
+    public static function gem_researchlevel() {
+        static $a = null;
+        return self::initValue($a, 'gem_researchlevel');
+    }
+
+    /**
+     * @return \sm_gem_researchlevel gem_researchlevel item数据
+     */
+    public static function gem_researchlevel_getItem($itemid) {
+        return self::get_hash_item('gem_researchlevel', $itemid);
+    }
+
+    /**
+     * 任务根据类型区别
+     * @return \item_taskcard_type
+     */
+    public static function item_taskcard_type() {
+        static $a = null;
+        return self::initValue($a, 'item_taskcard_type');
+    }
+
+    /**
+     * @return \sm_item_taskcard_type item_taskcard_type itemArray
+     */
+    public static function item_taskcard_type_getItemArray($key) {
+        return self::get_hash_item('item_taskcard_type', $key);
+    }
+
+    /**
+     * 背包扩容次数及消耗
+     * @return \expandStoreNum
+     */
+    public static function expandStoreNum() {
+        static $a = null;
+        return self::initValue($a, 'expandStoreNum');
+    }
+
+    /**
+     * @return \sm_expandStoreNum expandStoreNum item数据
+     */
+    public static function expandStoreNum_getItem($itemid) {
+        return self::get_hash_item('expandStoreNum', $itemid);
+    }
+
+    /**
+     * 宝石属性
+     * @return \gemProperty
+     */
+    public static function gemProperty() {
+        static $a = null;
+        return self::initValue($a, 'gemProperty');
+    }
+
+    /**
+     * @return \sm_gemProperty gemProperty item数据
+     */
+    public static function gemProperty_getItem($itemid) {
+        return self::get_hash_item('gemProperty', $itemid);
+    }
+
+    /**
+     * 充值
+     * @return \recharge
+     */
+    public static function recharge() {
+        static $a = null;
+        return self::initValue($a, 'recharge');
+    }
+
+    /**
+     * @return \sm_recharge recharge item数据
+     */
+    public static function recharge_getItem($itemid) {
+        return self::get_hash_item('recharge', $itemid);
+    }
+
+    /**
+     * 特惠区别
+     * @return \shop_limit_type
+     */
+    public static function shop_limit_type() {
+        static $a = null;
+        return self::initValue($a, 'shop_limit_type');
+    }
+
+    /**
+     * @return \sm_shop_limit_type shop_limit_type itemArray
+     */
+    public static function shop_limit_type_getItemArray($key) {
+        return self::get_hash_item('shop_limit_type', $key);
+    }
+
+    /**
+     * 任务兼容表
+     * @return \taskJianRong
+     */
+    public static function taskJianRong() {
+        static $a = null;
+        return self::initValue($a, 'taskJianRong');
+    }
+
+    /**
+     * @return \sm_taskJianRong taskJianRong item数据
+     */
+    public static function taskJianRong_getItem($itemid) {
+        return self::get_hash_item('taskJianRong', $itemid);
+    }
+
+    /**
+     * 限时
+     * @return \shop_limitTs
+     */
+    public static function shop_limitTs() {
+        static $a = null;
+        return self::initValue($a, 'shop_limitTs');
+    }
+
+    /**
+     * @return \sm_shop_limitTs shop_limitTs item数据
+     */
+    public static function shop_limitTs_getItem($itemid) {
+        return self::get_hash_item('shop_limitTs', $itemid);
+    }
+
+    /**
+     * 限时类型区别
+     * @return \shop_limitTs_Type
+     */
+    public static function shop_limitTs_Type() {
+        static $a = null;
+        return self::initValue($a, 'shop_limitTs_Type');
+    }
+
+    /**
+     * @return \sm_shop_limitTs_Type shop_limitTs_Type itemArray
+     */
+    public static function shop_limitTs_Type_getItemArray($key) {
+        return self::get_hash_item('shop_limitTs_Type', $key);
+    }
+
+    /**
+     * 召唤卡
+     * @return \zhaohuanCard
+     */
+    public static function zhaohuanCard() {
+        static $a = null;
+        return self::initValue($a, 'zhaohuanCard');
+    }
+
+    /**
+     * @return \sm_zhaohuanCard zhaohuanCard item数据
+     */
+    public static function zhaohuanCard_getItem($itemid) {
+        return self::get_hash_item('zhaohuanCard', $itemid);
+    }
+
+    /**
+     * 场景出口对应关系
+     * @return \map_scene_relation
+     */
+    public static function map_scene_relation() {
+        static $a = null;
+        return self::initValue($a, 'map_scene_relation');
+    }
+
+    /**
+     * @return \sm_map_scene_relation map_scene_relation item数据
+     */
+    public static function map_scene_relation_getItem($mapId, $pointId) {
+        return self::get_hash_item('map_scene_relation', $mapId)->$pointId;
+    }
+
+    /**
+     * 地图探索
+     * @return \map_explorer
+     */
+    public static function map_explorer() {
+        static $a = null;
+        return self::initValue($a, 'map_explorer');
+    }
+
+    /**
+     * @return \sm_map_explorer map_explorer itemArray
+     */
+    public static function map_explorer_getItemArray($key) {
+        return self::get_hash_item('map_explorer', $key);
+    }
+
+    /**
+     * 武器商店
+     * @return \shop_weapon
+     */
+    public static function shop_weapon() {
+        static $a = null;
+        return self::initValue($a, 'shop_weapon');
+    }
+
+    /**
+     * @return \sm_shop_weapon shop_weapon itemArray
+     */
+    public static function shop_weapon_getItemArray($key) {
+        return self::get_hash_item('shop_weapon', $key);
+    }
+
+    /**
+     * 补给品商店
+     * @return \shop_supplies
+     */
+    public static function shop_supplies() {
+        static $a = null;
+        return self::initValue($a, 'shop_supplies');
+    }
+
+    /**
+     * @return \sm_shop_supplies shop_supplies item数据
+     */
+    public static function shop_supplies_getItem($npc, $items) {
+        return self::get_hash_item('shop_supplies', $npc)->$items;
+    }
+
+    /**
+     * 区域不同
+     * @return \map_scene_zoneid
+     */
+    public static function map_scene_zoneid() {
+        static $a = null;
+        return self::initValue($a, 'map_scene_zoneid');
+    }
+
+    /**
+     * @return \sm_map_scene_zoneid map_scene_zoneid itemArray
+     */
+    public static function map_scene_zoneid_getItemArray($key) {
+        return self::get_hash_item('map_scene_zoneid', $key);
+    }
+
+    /**
+     * 言灵套装表
+     * @return \yanling_compose
+     */
+    public static function yanling_compose() {
+        static $a = null;
+        return self::initValue($a, 'yanling_compose');
+    }
+
+    /**
+     * @return \sm_yanling_compose yanling_compose item数据
+     */
+    public static function yanling_compose_getItem($itemid) {
+        return self::get_hash_item('yanling_compose', $itemid);
+    }
+
+    /**
+     * 加成属性
+     * @return \eHeroAddProperties
+     */
+    public static function eHeroAddProperties() {
+        static $a = null;
+        return self::initValue($a, 'eHeroAddProperties');
+    }
+
+    /**
+     * @return \sm_eHeroAddProperties eHeroAddProperties item数据
+     */
+    public static function eHeroAddProperties_getItem($itemid) {
+        return self::get_hash_item('eHeroAddProperties', $itemid);
+    }
+
+    /**
+     * 玩家等级排行奖励表
+     * @return \rank_playerlevel_reward
+     */
+    public static function rank_playerlevel_reward() {
+        static $a = null;
+        return self::initValue($a, 'rank_playerlevel_reward');
+    }
+
+    /**
+     * @return \sm_rank_playerlevel_reward rank_playerlevel_reward item数据
+     */
+    public static function rank_playerlevel_reward_getItem($itemid) {
+        return self::get_hash_item('rank_playerlevel_reward', $itemid);
+    }
+
+    /**
+     * 新充值返利
+     * @return \rechargeRebate
+     */
+    public static function rechargeRebate() {
+        static $a = null;
+        return self::initValue($a, 'rechargeRebate');
+    }
+
+    /**
+     * @return \sm_rechargeRebate rechargeRebate item数据
+     */
+    public static function rechargeRebate_getItem($type, $rmb) {
+        return self::get_hash_item('rechargeRebate', $type)->$rmb;
+    }
+
+    /**
+     * 得给注释
+     * @return \duplicate_defense
+     */
+    public static function duplicate_defense() {
+        static $a = null;
+        return self::initValue($a, 'duplicate_defense');
+    }
+
+    /**
+     * @return \sm_duplicate_defense duplicate_defense item数据
+     */
+    public static function duplicate_defense_getItem($itemid) {
+        return self::get_hash_item('duplicate_defense', $itemid);
+    }
+
+    /**
+     * 言灵品阶进阶表
+     * @return \yanlingQuality
+     */
+    public static function yanlingQuality() {
+        static $a = null;
+        return self::initValue($a, 'yanlingQuality');
+    }
+
+    /**
+     * @return \sm_yanlingQuality yanlingQuality item数据
+     */
+    public static function yanlingQuality_getItem($typeId, $qualityId) {
+        return self::get_hash_item('yanlingQuality', $typeId)->$qualityId;
+    }
+
+    /**
+     * 金币兑换
+     * @return \goldexchange
+     */
+    public static function goldexchange() {
+        static $a = null;
+        return self::initValue($a, 'goldexchange');
+    }
+
+    /**
+     * @return \sm_goldexchange goldexchange item数据
+     */
+    public static function goldexchange_getItem($itemid) {
+        return self::get_hash_item('goldexchange', $itemid);
+    }
+
+    /**
+     * 日常商城表
+     * @return \shop_daily
+     */
+    public static function shop_daily() {
+        static $a = null;
+        return self::initValue($a, 'shop_daily');
+    }
+
+    /**
+     * @return \sm_shop_daily shop_daily item数据
+     */
+    public static function shop_daily_getItem($itemid) {
+        return self::get_hash_item('shop_daily', $itemid);
+    }
+
+    /**
+     * 日常商店
+     * @return \shop_daily_type
+     */
+    public static function shop_daily_type() {
+        static $a = null;
+        return self::initValue($a, 'shop_daily_type');
+    }
+
+    /**
+     * @return \sm_shop_daily_type shop_daily_type item数据
+     */
+    public static function shop_daily_type_getItem($type, $typeId) {
+        return self::get_hash_item('shop_daily_type', $type)->$typeId;
+    }
+
+    /**
+     * 公共兑换码
+     * @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 \PaiMingReward_fpower
+     */
+    public static function PaiMingReward_fpower() {
+        static $a = null;
+        return self::initValue($a, 'PaiMingReward_fpower');
+    }
+
+    /**
+     * @return \sm_PaiMingReward_fpower PaiMingReward_fpower item数据
+     */
+    public static function PaiMingReward_fpower_getItem($itemid) {
+        return self::get_hash_item('PaiMingReward_fpower', $itemid);
+    }
+
+    /**
+     * 等级榜排行榜奖励
+     * @return \PaiMingReward_level
+     */
+    public static function PaiMingReward_level() {
+        static $a = null;
+        return self::initValue($a, 'PaiMingReward_level');
+    }
+
+    /**
+     * @return \sm_PaiMingReward_level PaiMingReward_level item数据
+     */
+    public static function PaiMingReward_level_getItem($itemid) {
+        return self::get_hash_item('PaiMingReward_level', $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 self::initValue($a, 'client', false);
+    }
+}

+ 92 - 0
Gameserver/Amfphp/configs/GameConstants.php

@@ -0,0 +1,92 @@
+<?php
+
+namespace loyalsoft;
+
+// 所谓const是指游戏上线后就不再变动的变量
+/**
+ * 游戏内常量
+ * @author gwang email:wanggangzero@qq.com
+ * @copyright © 2015-3-9, SJZ LoyalSoft Corporation & gwang. All rights reserved.
+ */
+class GameConstants {
+// <editor-fold defaultstate="collapsed" desc="    兑换码相关   ">
+
+    /**
+     * @var string 全平台后缀字符串
+     */
+    const AllPlatStr = "all";
+
+    /**
+     * 密码本
+     * @return string
+     */
+    public static function GetCipherString() {
+        switch (PLAT) {
+            case 'and':                                                         # android平台 20171101110403
+                return "qh6jid4g598rfnwp37xyb2vetzuskcam";
+            case 'web':                                                         # web平台
+                return "zgyqfmpav4whex9td7nu2kj8b5ris36c";
+            case 'ios':                                                         # ios平台
+                return "m8hsn46efyuatvp972cdgz3qrxj5wibk";
+            case 'and_hw':                                                         # android平台 20171101110403
+                return "qh6jid4g598rfnwp37xyb2vetzuskcam";
+            default :                                                           # 默认采用原文密码本
+                return "abcdefghijkmnpqrstuvwxyz23456789";
+        }
+    }
+
+    /**
+     * 根据激活码拿到平台字符串,增加新的平台的时候需要对应修改常量配置
+     * @param ActiveCode $code
+     */
+    public static function GetPlatStringByActivteCode($code) {
+        if (isset(self::$platStr[$code->plat])) {
+            return self::$platStr[$code->plat];
+        }
+        return "unknown";
+    }
+
+    /**
+     * 平台字符串,这是和客户端的一个约定,所上的渠道咱们给他们加个字符串后缀,方便区分.
+     * @var array(string)
+     */
+    private static $platStr = array(
+        "all", #                                                                # 0 全平台
+        "yyb", #                                                                # 1 腾讯
+        "uc", #                                                                 # 2 九游
+        "xiaomi_yj", #                                                          # 3 小米
+        "qh360", #                                                              # 4 360
+        "baidu", #                                                              # 5 百度
+        "huawei", #                                                             # 6 华为
+        "lenove", #                                                             # 7 联想
+        "oppo_yj", #                                                            # 8 OPPO(易接)
+        "wandoujia", #                                                          # 9 豌豆荚
+        "dangle_yj", #                                                          # 10 当乐(易接)
+        "meizu_yj", #                                                           # 11 魅族(易接)
+        "yijie", #                                                              # 12 安智(易接)
+        "jinli", #                                                              # 13 金立
+        "anysdk", #                                                             # 14 anysdk
+        "vivo", #                                                               # 15 vivo
+        "samsung", #                                                            # 16 三星()
+        "x7sy", #                                                               # 17 小七手游
+        "yile_yj", #                                                            # 18 以乐易接
+    );
+
+// </editor-fold>
+}
+
+//                                                            <=> 元数据定义 <=>
+define("META_EXP", 0);                                                          # 指挥官经验
+define("META_GOLD_ITEMID", 1);                                                  # 金币物品id
+define("META_CASH_ITEMID", 2);                                                  # 宝石物品id
+define("META_tili_ITEMID", 3);                                                  # 体力的物品ID
+define('META_FriendShipPoit_ItemId', 4);                                        # 友情点的物品ID
+define("META_PVPCOIN_ITEMID", 5);                                               # PVP竞技币物品id
+define("META_ActivePoint_ITEMID", 6);                                           # 每日任务活跃点物品id
+define("META_YUANBAOITEMID", 7);                                                # 元宝物品ID
+define("META_RESPOINT_ITEMID", 8);                                               #资源点
+//                                                            TODO: config the c-s offset data
+//define("OFFSET_TIMESPAN", -3);                                                  # 服务端相对于客户端的偏移时间戳
+define("OFFSET_MSGTIME", 30);                                                   # 客户端服务端时间戳偏移最大误差
+
+require_once __DIR__ . '/defines/const_' . PLAT . '.php';                       # 引入个平台特定设置: and,ios,web

+ 57 - 0
Gameserver/Amfphp/configs/config_dev.php

@@ -0,0 +1,57 @@
+<?php
+
+namespace loyalsoft;
+
+/**
+ * 本机/局域网测试
+ * 尝试用这种写法来定义服务器配置
+ * @author gwang email:mail@wanggangzero.cn
+ * @copyright © 2015-2-3, SJZ LoyalSoft Corporation & gwang. All rights reserved.
+ */
+class config_dev extends config {
+
+    function _InitTester() {
+        $this->testerArr = array(
+            "gwang", //                王刚
+            "8796-any", //             王倩倩
+            "wanggangzero.cn", //      王刚
+        );
+    }
+
+    function _InitBaneder() {
+        $this->banedArr = array(
+            "251984775-baidu", // 王刚
+        );
+    }
+
+    /**
+     * 初始化paydb
+     */
+    protected function _InitPaydb() {
+        $this->paydb->host = '10.88.0.14';
+        $this->paydb->port = '3306';
+        $this->paydb->name = 'jzhj2023_pay_dev';
+        $this->paydb->user = 'ylsjMTY0LjkyLjE5NC4x';
+        $this->paydb->password = 'wanggang1985';
+    }
+
+    /**
+     * nosql
+     */
+    protected function _InitNosql() {
+        $this->nosql->host = "10.88.0.14";                                       # host/ip
+        $this->nosql->port = 6379;                                              # 端口
+        $this->nosql->pwd = 'wanggang1985';                                     # 密钥
+        $this->nosql->db = 2;                                                   # db索引
+    }
+
+    /**
+     * MongoDB
+     */
+    protected function _InitMongoDB() {
+        $this->mongo->db = 'ylsj2019_dev';
+        $this->mongo->conn = "mongodb://ylsjMTY0LjkyLjE5NC4x:wanggang1985@10.88.0.14:23333/?authSource=ylsj2019";
+    }
+}
+
+return new config_dev();

+ 72 - 0
Gameserver/Amfphp/configs/config_dev_wg.php

@@ -0,0 +1,72 @@
+<?php
+
+namespace loyalsoft;
+
+/**
+ * 本机/局域网测试
+ * 尝试用这种写法来定义服务器配置
+ * @author gwang email:mail@wanggangzero.cn
+ * @copyright © 2015-2-3, SJZ LoyalSoft Corporation & gwang. All rights reserved.
+ */
+class config_dev_wg extends config {
+
+    function _InitTester() {
+        $this->testerArr = array(
+            "gwang", //                王刚
+            "D51D63CA040982E406BDE9898AD757AE", //             王倩倩
+            "wanggangzero.cn", //      王刚
+        );
+    }
+
+    function _InitBaneder() {
+        $this->banedArr = array(
+            "251984775-baidu", // 王刚
+        );
+    }
+
+    /**
+     * 初始化paydb
+     */
+    protected function _InitPaydb() {
+        $this->paydb->host = '127.0.0.1';
+        $this->paydb->port = '3306';
+        $this->paydb->name = 'ylsj2019_pay';
+        $this->paydb->user = 'gwang';
+        $this->paydb->password = 'wanggang1985';
+//
+//        $this->paydb->host = '127.0.0.1';
+//        $this->paydb->port = '3306';
+//        $this->paydb->name = 'chongwu';
+//        $this->paydb->user = 'root';
+//        $this->paydb->password = 'root';
+//        $this->paydb->host = '192.168.10.16';
+//        $this->paydb->port = '3306';
+//        $this->paydb->name = 'ylsj2019_pay';
+//        $this->paydb->user = 'gwang';
+//        $this->paydb->password = 'wanggang1985';
+    }
+
+    /**
+     * nosql
+     */
+    protected function _InitNosql() {
+        $this->nosql->host = "127.0.0.1";                                       # host/ip
+        $this->nosql->port = 6379;                                              # 端口
+        $this->nosql->pwd = 'wanggang1985';                                     # 密钥
+        $this->nosql->db = 0;                                                   # db索引
+//        $this->nosql->host = "162.168.10.16";                                   # host/ip
+//        $this->nosql->port = 6004;                                              # 端口
+//        $this->nosql->pwd = 'wanggang1985';                                     # 密钥
+//        $this->nosql->db = 0;
+    }
+
+    /**
+     * MongoDB
+     */
+    protected function _InitMongoDB() {
+        $this->mongo->db = "ylsj2019";
+        $this->mongo->conn = "mongodb://gwang:wanggang1985@localhost:23333/?authSource=admin";
+    }
+}
+
+return new config_dev_wg();

+ 8 - 0
Gameserver/Amfphp/configs/defines/const_dev.php

@@ -0,0 +1,8 @@
+<?php
+
+/**
+ * 用于安卓平台的特定常量
+ * @author gwang <wanggangzero@qq.com>
+ */
+
+// put your code here

+ 8 - 0
Gameserver/Amfphp/configs/defines/const_dev_wg.php

@@ -0,0 +1,8 @@
+<?php
+
+/**
+ * 用于安卓平台的特定常量
+ * @author gwang <wanggangzero@qq.com>
+ */
+
+// put your code here

+ 151 - 0
Gameserver/Amfphp/index.php

@@ -0,0 +1,151 @@
+<?php
+
+namespace loyalsoft;
+
+/**
+ * 服务端程序入口(单一入口)
+ * method: post/get 皆可
+ * params: 一个经过(压缩)转码的json串.
+ * @author gwang (mail@wanggangzero.cn)
+ * @version 2018.11.08
+ * @modifys
+ *      2018.11.08 将index.php原来的代码整理到Index类中,使用到的全局变量用类的静态变量打理起来。
+ *                 给$req的全局静态变量增加req()访问方式。
+ *                 对于逻辑中的ErrResp, 添加Err方法,直接截断逻辑,返回响应结果。   -- gwang
+ *      2018.04.05 去掉返回值中的content-encoding信息,开发了配套的fiddler插件,不需要自动识别机制了. --gwang
+ *      2017.11.15 调整传输层协议, get的返回值也采用deflate编码.
+ *      2017.07.19 代码优化, 格式整理
+ *      2016.4.26  引入客户端检查机制,来源为模拟客户端时输出调试信息.
+ *      2016.4.25  echo 中的连字符改为逗号表达式.
+ */
+class Index {
+
+    /**
+     * @var boolean 请求方式是否为Post
+     */
+    static $isPost = false;
+
+    /**
+     * @var string 调试信息
+     */
+    static $debugMsg = "";
+
+    /**
+     * @var string user-agent
+     */
+    static $ua = "";
+
+    /**
+     * @var boolean 调试模式
+     */
+    static $isDebugging = false;
+
+    /**
+     * @var int 超大响应的判断标准50kb
+     */
+    static $bigRespInKbs = 50;
+
+    static function Init() {
+        ob_start();                                                             # 开启一重output_buffer截获意外输出.
+        self::$isPost = (isset($_SERVER['REQUEST_METHOD']) ? ($_SERVER['REQUEST_METHOD'] == 'PUT' || $_SERVER['REQUEST_METHOD'] == 'POST' ) : FALSE); # 判断是否为Post方式
+        self::$debugMsg = "";                                                   # 记录调试信息
+        self::$ua = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : "";                # 客户端标志
+        self::$isDebugging = isset(self::$ua) && \strncmp(self::$ua, "WebRequest", 10) == 0; # 是否将ob_buff的输出信息附加到返回值
+        self::$bigRespInKbs = self::$isDebugging ? 1 : 50;                      # 记录超大返回值,测试模式1k,正式50k.
+        include_once __DIR__ . '/Services/AppServer.php';                       # 引入主程序
+        $data = query_string();                                                 # 取参数
+        if (self::$isDebugging) {                                               # 调试模式=>性能记录
+            $rt = new RenderTime();                                             # 计时器, 默认开始计时
+        }
+# 传输层解码(压缩、去除控制字符)
+# 目前规则: Post发送数据时使用deflate编码, GET方式发送数据时使用base64编码
+        $data = self::$isPost ? gzinflate($data) : base64_decode($data);
+//$data = base64_decode($data);
+# 加密层解码, 加密传输, 保障数据安全
+# ....
+        $req = JsonUtil::decode($data);                                         # 请求数据, 数据层协议JSON
+        if (self::$isDebugging) {                                               # 刷调试信息
+            $rt->end();                                                         # 计时器结束
+            self::$debugMsg .= '<br/>解压耗时:' . $rt->getRenderTime();          # 解码耗时
+            # 计时器开始
+        }
+        new Req($req);                                                          # 初始化req()
+    }
+
+    static function Run() {
+        if (self::$isDebugging) {                                               # 调试模式=>性能记录
+            $rt = new RenderTime();                                             # 计时器, 默认开始计时
+            $rt->start();
+        }
+        $app = new AppServer();                                                 # 初始化业务框架
+        $resp = $app->api();                                                    # 分发处理逻辑
+        if (self::$isDebugging) {                                               # 组织调试信息
+            $rt->end();                                                         # 计时器结束
+            $ms = round($rt->getRenderTime(false) / 1000, 2);                   # 耗时换算成毫秒
+            $msi = $ms > 50 ? "<font color='red'>$ms</font>" : $ms;             # 超过50ms用红色显示
+            self::$debugMsg .= "<br/>逻辑耗时: $msi 毫秒";                        # 逻辑耗时
+            self::$debugMsg .= '<br/>内存分配:' . number_format(memory_get_peak_usage() / 1024) . 'kb,';
+            self::$debugMsg .= '内存占用:' . number_format(memory_get_usage() / 1024) . 'kb';  # 内存使用数量(kb)
+        }
+        return $resp;
+    }
+
+    static function OverPass($resp) {
+        $ret = JsonUtil::encode($resp);                                         # 返回值, 数据层协议:JSON
+        $errinfo = ob_get_clean();                                              # 检查并截获异常输出
+        if (self::$isDebugging) {                                               # 附加调试信息和异常输出
+            $ret .= '<br/><hr/><font color=\'#6666FF\'>' . self::$debugMsg;     # 附加调试信息,
+            if (strlen($errinfo) > 0) {                                         # 将捕获的异常输出附加到返回值
+                $ret .= '<br/><br/>Unexpected output:<br/>' . $errinfo;
+            }
+            $ret .= '</font>';
+        } else {
+            if (!empty(self::$debugMsg)) {
+                CLog::err(self::$debugMsg);
+            }
+        }
+# 返回数据, 加密层编码, 加密传输, 保障数据安全
+# ....
+# 返回数据, 传输层编码(一律deflate压缩)
+        if (php_sapi_name() === 'cli') {
+            # 命令行的就算了, 要不肉眼看不懂了
+        } else {
+            $ret = gzdeflate($ret);                                             # 不管请求时使用的是什么方法, 返回时一律使用deflate压缩
+        }
+        $retLen = strlen($ret);                                                 # 计算下返回值长度.
+        if ($retLen > (1024 * self::$bigRespInKbs)) {                           # 长度大于50k时记录超大返回值日志.
+            CLog::warn("Big Response(" . req()->cmd . "):\n"                    # 带有\n转义符的时候, 必须用双引号
+                    . "\t" . substr(JsonUtil::encode($resp), 0, 30)             # 返回串(截断为30bytes)
+                    . "..., about " . CommUtil::floatToInt($retLen / 1024) . "kbs.", "Index"); # 返回串长度
+        }
+        return $ret;
+    }
+
+    /**
+     * 直接返回错误resp并结束运行
+     * @param int $err
+     * @param string $msg
+     */
+    static function Err($err, $msg = "") {
+        if (ErrCode::ok === $err) {
+            CLog::err("Err()方法的参数err==ok, 那你还调个蛋的Err()!!!");
+        }
+        if (Index::$isDebugging) {                                              # 组织调试信息
+            Index::$debugMsg .= "<br/><font color='red'>发生错误逻辑中断($err):$msg</font>"; # 错误信息用红色显示
+            Index::$debugMsg .= '<br/>内存分配:' . number_format(memory_get_peak_usage() / 1024) . 'kb,';
+            Index::$debugMsg .= '内存占用:' . number_format(memory_get_usage() / 1024) . 'kb';  # 内存使用数量(kb)
+        }
+        if (is_string($err)) {                                                  # 防御Err中直接输入字符串的货
+            $msg = "发生错误($err)直接中断逻辑执行." . $msg;
+            CLog::err($msg);
+            $err = ErrCode::err_innerfault;
+        }
+        $resp = Resp::err($err, $msg);
+        $resp->AfterProc();
+        exit(Index::OverPass($resp));                                           # 直接返回错误信息
+    }
+}
+
+Index::Init();
+$resp = Index::Run();
+exit(Index::OverPass($resp));

+ 169 - 0
Gameserver/Amfphp/main.php

@@ -0,0 +1,169 @@
+<?php
+
+namespace loyalsoft;
+
+header('Cache-Control: no-store');                                              # 防御缓存设施
+header('Host:' . PHP_OS . "-" . (isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : ""));   # 这里提取服务器地址返给客户端,方便留意负载均衡/弹性扩容的效果
+header('PoweredBy: PHP-' . PHP_VERSION);
+
+$GLOBALS['OS'] = "win32";                                                       # os,      used by JsonUtil::encode()
+
+defined("ROOTDIR") or define("ROOTDIR", __DIR__);                               # 定义项目根目录
+
+/**
+ * 获取项目根路径URL(限制条件,本方法所在的文件也必须在项目根路径下wg)
+ * @author gwang
+ * @return string
+ */
+function getRootURL() {
+    $self = substr(__FILE__, strlen($_SERVER['DOCUMENT_ROOT']));
+    $self = str_replace('\\', '/', $self);
+    $uri = substr($self, 0, strrpos($self, '/') + 1);
+    $url = "http://" . $_SERVER['HTTP_HOST'] . $uri;
+    return $url;
+}
+
+/**
+ * 一种优化方案, 如果部署环境可以支持动态代码生成,将会减少与redis网络通信的次数.
+ * (在云服务器实验中,开了不如不开效率高 ̄□ ̄||,而且文件模式需要在多台机子中分发.-gwang2017)
+ * 经验证,复杂逻辑(会多次读取配置信息时)可以有效改善性能. -gwang 2020.11.24
+ * @var boolean (部署环境)是否允许代码生成
+ */
+define('CodeGen_Enabled', false)
+        and CodeGen_Enabled
+        and define('CodeGen_Folder', ROOTDIR . '/../../CodeGen/');              # 代码生成功能的输出位置
+
+require_once ROOTDIR . '/AutoLoad.php';                                         # 初始化框架自动加载机制
+
+/**
+ * get dao instance,
+ * @version  2019年12月23日 经过梦幻星工场2一年多的使用, 未发现特别明显的bug. 决定侧重使用. -- 王刚
+ *           2017.06.23     第一版 学习自禅道的开源框架.    -- 王刚
+ * @staticvar type $a
+ * @return \loyalsoft\dao  注意: dao并非什么好东西,只是一些改进尝试, 稳定性, 性能, 效率尚未得到证明.-gwang 2017.06.23
+ */
+function daoInst() {
+    static $a = null;
+    if (is_null($a)) {
+        $a = new dao();                                                         # 结束请求的时候自动回收,无需主动写关闭代码
+        $a->connectDB(config::Inst());                                          # 建立链接,传入配置文件
+    }
+    return $a;
+}
+
+/**
+ * @return \loyalsoft\CRedisUtil 获取全局MEM单例
+ */
+function gMem() {
+    static $cmem = null;
+    if ($cmem == null) {
+        $nosql = config::Inst()->nosql;
+//        $use_ext = true;                # 使用扩展,测试用(暂时仅支持php7)
+//        if ($use_ext) {
+//            $cmem = new \Redis();       # 还是需要重写下, 之前的CRedisUtil已经增加了json_encode/decode.
+//            $cmem->connect($nosql->host, $nosql->port);
+//            $cmem->auth($nosql->pwd);
+//        } else {
+        $cmem = new CRedisUtil();
+        $cmem->conn($nosql->host, $nosql->port, $nosql->pwd, $nosql->db);
+
+//        }
+    }
+    return $cmem;
+}
+
+/**
+ * MongoUtil 辅助类
+ * @return MongoUtil
+ */
+function gMongo() {
+    static $mu = null;
+    if (null == $mu) {
+        $mu = new MongoUtil();
+        $mc = config::Inst()->mongo;
+        $mgr = $mu->conn($mc->conn, $mc->db);
+        if ($mgr === false) {
+            CLog::err("MongoDB连接异常!");
+        }
+    }
+    return $mu;
+}
+
+/**
+ * 简化提取全局变量的写法
+ * @return \globalsettings
+ */
+function glc() {
+    return GameConfig::globalsettings();
+}
+
+/**
+ * @return \loyalsoft\Req 全局访问
+ */
+function req() {
+    return Req::Ins();
+}
+
+/**
+ *
+ * @param \loyalsoft\Data_UserGame $game 不为空则用参数更新 ctx
+ * @return \loyalsoft\Data_UserGame 玩家数据
+ */
+function ctx($game = null) {
+    if (null != $game) {
+        req()->game = $game;
+    }
+    return req()->game;
+}
+
+default_timezone();                                                             # 全局范围内启用默认时区 中国时区
+
+$zoneid = "1";                                                                  # 定义全局变量zoneid
+
+/**
+ * 从QueryString初始化分区Id
+ * @global int $zoneid
+ */
+function InitZoneId() {
+    global $zoneid;
+    if (isset($_REQUEST['zoneid'])) {
+        $zoneid = $_REQUEST['zoneid'];                                          # 从参数提取到全局变量.
+    }
+}
+
+/**
+ * 直接返回错误resp并结束运行
+ * @param int $err
+ * @param string $msg
+ */
+function Err($err, $msg = "") {
+    Index::Err($err, $msg);
+}
+
+/**
+ * 断言快速访问
+ * @param bool $condition
+ * @param int/str $err
+ */
+function my_Assert($condition, $err) {
+    DebugHelper::assert($condition, $err);
+}
+
+use Attribute;
+
+#[Attribute]
+class ArrayType {
+
+}
+
+/**
+ * 带换行符输出
+ */
+function echoLine() {
+    $cli = (php_sapi_name() === 'cli');
+    $args = func_get_args();
+    echo implode(" ", $args) . ( $cli ? PHP_EOL : "<br/>");                     # CLI下追加\n, html下追加<br>
+}
+
+set_time_limit(25);                                                             # 设置脚本执行的超时时间: 不超过25秒
+

+ 27 - 0
Gameserver/Amfphp/model/Const/GM_uids.php

@@ -0,0 +1,27 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-12-21 14:42:27
+////////////////////
+
+
+/**
+ * Static Model GM_uids GM号的UID
+ */
+class GM_uids
+{
+
+    /**
+    * @var Object GM Master  
+    */
+    public $wanggangzero;
+
+    /**
+    * @var Object   
+    */
+    public $wanggangzero_cn;
+
+}
+

+ 1981 - 0
Gameserver/Amfphp/model/Const/GameConfig.php

@@ -0,0 +1,1981 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-06-16 18:50:38
+////////////////////
+
+/**
+ * 常量配置数据 
+ */
+class GameConfig {
+// <editor-fold defaultstate="collapsed" desc="  基础代码 ">    
+    /**
+     * 是否启用codegen 
+     */
+    private static function isCG()  {
+        return defined('CodeGen_Enabled') && CodeGen_Enabled; 
+    }
+    /**
+     * @var bool 分区是否使用独立的常量配置数据
+     */
+    private static $useZoneId = false;
+    /**
+     * 追加分区列表字符串
+     * @return string
+     */
+    private static function zoneid()
+    {
+        global $zoneid;
+        return self::$useZoneId ? "-zone$zoneid" : "";
+    }
+    /**
+     * 初始化指定变量, 非null的情况下直接跳出
+     * 可能从文件中或者redis中获取原始数据对变量进行初始化
+     * @param mixed $a 变量
+     * @param string $modelName 用来初始化变量的资源名称
+     * @param bool $isHash 数据是否采用hash结构(否:普通字符串)
+     */
+    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;                     # 转关联数组 
+                    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)
+    {
+        if (self::isCG()) {
+            $data = self::$modelName();
+            if (property_exists($data, $itemId)) {
+                return $data->$itemId;
+            }
+        } else {
+            $key = 'gamecfg-' . $modelName . self::zoneid();
+            return gMem()->hget($key, $itemId);
+        }
+        return null;
+    }
+// </editor-fold>
+    /**
+    * 全局参数
+    * @return \globalsettings
+    */
+    public static function globalsettings()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'globalsettings');
+    }
+    /**
+    * 英雄模块
+    * @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 self::get_hash_item('hero', $itemid);
+    }
+    /**
+    * 英雄的升级(属性加成)
+    * @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 self::get_hash_item('heroextra_level', $heroId)->$quality;
+    }
+    /**
+    * 武器等级,品质,等级双索引
+    * @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 self::get_hash_item('weapon_levelexp', $type)->$level;
+    }
+    /**
+    * 累充表-改成首充表
+    * @return \shop_accumulating
+    */
+    public static function shop_accumulating()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'shop_accumulating');
+    }
+    /**
+    * @return \sm_shop_accumulating shop_accumulating item数据 
+    */
+    public static function shop_accumulating_getItem($itemid)
+    { 
+        return self::get_hash_item('shop_accumulating', $itemid);
+    }
+    /**
+    * [废弃]
+    * @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 self::get_hash_item('itemlevel', $itemid);
+    }
+    /**
+    * 武器突破
+    * @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 self::get_hash_item('weaponextra_level', $weaponId)->$starLv;
+    }
+    /**
+    * 英雄的升级——每级成长消耗经验需求表
+    * @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 self::get_hash_item('hero_levelexp', $itemid);
+    }
+    /**
+    * 英雄的升阶(消耗金币+ 属性加成)
+    * @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 self::get_hash_item('heroextra_dengjie', $itemid);
+    }
+    /**
+    * 关卡
+    * @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 \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 self::get_hash_item('gatelevel', $itemid);
+    }
+    /**
+    * 关卡—— 星级奖励
+    * @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 self::get_hash_item('gate_starreward', "$chapterId-$hardLevel");
+    }
+    /**
+    * 任务
+    * @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 self::get_hash_item('task', $itemid);
+    }
+    /**
+    * 
+    * @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 self::get_hash_item('playerlevel', $itemid);
+    }
+    /**
+    * 言灵类道具
+    * @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 self::get_hash_item('item_yanling', $itemid);
+    }
+    /**
+    * 无尽塔关卡数据
+    * @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 self::get_hash_item('endless_tower', $itemid);
+    }
+    /**
+    * 
+    * @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 self::get_hash_item('heroextra_level_tupo', $heroId)->$starLv;
+    }
+    /**
+    * 商城
+    * @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 self::get_hash_item('shop', $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 \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 \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 self::get_hash_item('item_taskcard', $itemid);
+    }
+    /**
+    * 
+    * @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 self::get_hash_item('shenmiaoActiveIdTs', $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 self::get_hash_item('sysmail', $itemid);
+    }
+    /**
+    * 剧情对话
+    * @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 self::get_hash_item('plot', $gateId)->$stage;
+    }
+    /**
+    * 言灵附加随机表
+    * @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 self::get_hash_item('item_additional', $itemid);
+    }
+    /**
+    * 活跃点奖励表
+    * @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 self::get_hash_item('task_active_reward', $itemid);
+    }
+    /**
+    * 竞技场 上榜单奖励
+    * @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 self::get_hash_item('pvp_rankreward', $itemid);
+    }
+    /**
+    * 竞技 商店
+    * @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 self::get_hash_item('pvp_shop', $itemid);
+    }
+    /**
+    * 配置的关卡相关的战斗数据
+    * @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 self::get_hash_item('gate_combat', $itemid);
+    }
+    /**
+    * 根据类型找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 self::get_hash_item('shenmiaoTypeList', $key);
+    }
+    /**
+    * 每日任务
+    * @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 self::get_hash_item('task_daily', $itemid);
+    }
+    /**
+    * 神庙定期活动时间
+    * @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 self::get_hash_item('shenmiaoActiveTs', $itemid);
+    }
+    /**
+    * 英雄的升级——成长可消耗的道具表
+    * @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 self::get_hash_item('hero_levelexp_costitem', $itemid);
+    }
+    /**
+    * 言灵等级
+    * @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 self::get_hash_item('yanlingLeve', $itemid);
+    }
+    /**
+    * 神庙
+    * @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 self::get_hash_item('shenmiao', $itemid);
+    }
+    /**
+    * 圣哲学院表
+    * @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 self::get_hash_item('college', $itemid);
+    }
+    /**
+    * 引导触发
+    * @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 self::get_hash_item('guide_trigger', $itemid);
+    }
+    /**
+    * 任务节点
+    * @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 self::get_hash_item('task_node', $itemid);
+    }
+    /**
+    * 圣哲学院课程表
+    * @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 self::get_hash_item('course', $itemid);
+    }
+    /**
+    * 
+    * @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 self::get_hash_item('gate_mainland', $itemid);
+    }
+    /**
+    * 动作事件表
+    * @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 self::get_hash_item('eventAction', $itemid);
+    }
+    /**
+    * 碎片
+    * @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 self::get_hash_item('segment', $itemid);
+    }
+    /**
+    * 关卡-区域表
+    * @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 self::get_hash_item('gate_zone', $itemid);
+    }
+    /**
+    * 建筑表_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 self::get_hash_item('build', $itemid);
+    }
+    /**
+    * 神秘商城道具表-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 self::get_hash_item('secretshop_goodsType', $itemid);
+    }
+    /**
+    * 神秘商城刷新价格表
+    * @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 self::get_hash_item('secretshop_refresh', $itemid);
+    }
+    /**
+    * 神秘商城道具表-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 self::get_hash_item('secretshop_typeId', $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 self::initValue($a, 'zonelist');
+    }
+    /**
+    * @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 self::initValue($a, 'tokenGift');
+    }
+    /**
+    * @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 self::initValue($a, 'activity');
+    }
+    /**
+    * @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 self::initValue($a, 'taskcard_shop');
+    }
+    /**
+    * @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 self::initValue($a, 'segment_byPinzhi');
+    }
+    /**
+    * @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 self::initValue($a, 'npc');
+    }
+    /**
+    * @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 self::initValue($a, 'activity_onlinegift');
+    }
+    /**
+    * @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; 
+        return self::initValue($a, 'GM_uids');
+    }
+    /**
+    * 活动, 全服注册礼包
+    * @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 self::get_hash_item('activity_reggift', $itemid);
+    }
+    /**
+    * 错误信息表
+    * @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 \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 self::get_hash_item('guilddonatereward', $itemid);
+    }
+    /**
+    * 公会等级相关数据
+    * @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 self::get_hash_item('guildlevel', $itemid);
+    }
+    /**
+    * 公会礼包
+    * @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 self::get_hash_item('guildlibao', $itemid);
+    }
+    /**
+    * 玩家初始化数据
+    * @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 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 self::get_hash_item('heroextra_skill_lv_limit', $itemid);
+    }
+    /**
+    * 武器类道具
+    * @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 self::get_hash_item('item_weapon', $itemid);
+    }
+    /**
+    * 礼包类道具
+    * @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 self::get_hash_item('item_package', $itemid);
+    }
+    /**
+    * 强化类道具
+    * @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 self::get_hash_item('item_stones', $itemid);
+    }
+    /**
+    * 药水类道具
+    * @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 self::get_hash_item('item_pills', $itemid);
+    }
+    /**
+    * 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 self::get_hash_item('item_buffcard', $itemid);
+    }
+    /**
+    * 碎片类道具
+    * @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 self::get_hash_item('item_segment', $itemid);
+    }
+    /**
+    * 道具通用字段表
+    * @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 self::get_hash_item('item_base', $itemid);
+    }
+    /**
+    * 子技能表
+    * @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 self::get_hash_item('subSkill', $itemid);
+    }
+    /**
+    * 宝箱类道具
+    * @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 self::get_hash_item('item_box', $itemid);
+    }
+    /**
+    * 元素相克关系表
+    * @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 self::get_hash_item('attack_relation', "$attack1-$attack2");
+    }
+    /**
+    * 战斗力榜全服突破奖励
+    * @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 self::get_hash_item('rankreward_fpower', $itemid);
+    }
+    /**
+    * 合体技能
+    * @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 self::get_hash_item('skill_cross', $itemid);
+    }
+    /**
+    * 通关榜突破奖励
+    * @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 self::get_hash_item('rankreward_passgate', $itemid);
+    }
+    /**
+    * 言灵召唤书
+    * @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 self::get_hash_item('item_yanlingbook', $itemid);
+    }
+    /**
+    * 言灵进阶表
+    * @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 self::get_hash_item('yanling_upgrade', $typeId)->$grade;
+    }
+    /**
+    * 功能引导模块
+    * @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 self::get_hash_item('guide_module', $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 \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 self::get_hash_item('shop_limit', $itemid);
+    }
+    /**
+    * 月卡商城
+    * @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 self::get_hash_item('shop_monthVIP', $itemid);
+    }
+    /**
+    * 掉落数据表
+    * @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 self::get_hash_item('drop', $itemid);
+    }
+    /**
+    * 
+    * @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 self::get_hash_item('item_stones_type', $key);
+    }
+    /**
+    * 
+    * @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 self::get_hash_item('yanlingLevel_type', $type)->$level;
+    }
+    /**
+    * 言灵突破
+    * @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 self::get_hash_item('yanlingextra_level', $yanlingId)->$starLv;
+    }
+    /**
+    * 世界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 self::get_hash_item('worldboss_rankreward', $itemid);
+    }
+    /**
+    * 世界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 \score
+    */
+    public static function score()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'score');
+    }
+    /**
+    * @return \sm_score score item数据 
+    */
+    public static function score_getItem($itemid)
+    { 
+        return self::get_hash_item('score', $itemid);
+    }
+    /**
+    * 宝石配方表
+    * @return \gem_formula
+    */
+    public static function gem_formula()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'gem_formula');
+    }
+    /**
+    * @return \sm_gem_formula gem_formula item数据 
+    */
+    public static function gem_formula_getItem($itemid)
+    { 
+        return self::get_hash_item('gem_formula', $itemid);
+    }
+    /**
+    * 宝石合成研究等级表
+    * @return \gem_researchlevel
+    */
+    public static function gem_researchlevel()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'gem_researchlevel');
+    }
+    /**
+    * @return \sm_gem_researchlevel gem_researchlevel item数据 
+    */
+    public static function gem_researchlevel_getItem($itemid)
+    { 
+        return self::get_hash_item('gem_researchlevel', $itemid);
+    }
+    /**
+    * 任务根据类型区别
+    * @return \item_taskcard_type
+    */
+    public static function item_taskcard_type()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'item_taskcard_type');
+    }
+    /**
+    * @return \sm_item_taskcard_type item_taskcard_type itemArray 
+    */
+    public static function item_taskcard_type_getItemArray($key)
+    { 
+        return self::get_hash_item('item_taskcard_type', $key);
+    }
+    /**
+    * 背包扩容次数及消耗
+    * @return \expandStoreNum
+    */
+    public static function expandStoreNum()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'expandStoreNum');
+    }
+    /**
+    * @return \sm_expandStoreNum expandStoreNum item数据 
+    */
+    public static function expandStoreNum_getItem($itemid)
+    { 
+        return self::get_hash_item('expandStoreNum', $itemid);
+    }
+    /**
+    * 宝石属性
+    * @return \gemProperty
+    */
+    public static function gemProperty()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'gemProperty');
+    }
+    /**
+    * @return \sm_gemProperty gemProperty item数据 
+    */
+    public static function gemProperty_getItem($itemid)
+    { 
+        return self::get_hash_item('gemProperty', $itemid);
+    }
+    /**
+    * 充值
+    * @return \recharge
+    */
+    public static function recharge()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'recharge');
+    }
+    /**
+    * @return \sm_recharge recharge item数据 
+    */
+    public static function recharge_getItem($itemid)
+    { 
+        return self::get_hash_item('recharge', $itemid);
+    }
+    /**
+    * 特惠区别
+    * @return \shop_limit_type
+    */
+    public static function shop_limit_type()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'shop_limit_type');
+    }
+    /**
+    * @return \sm_shop_limit_type shop_limit_type itemArray 
+    */
+    public static function shop_limit_type_getItemArray($key)
+    { 
+        return self::get_hash_item('shop_limit_type', $key);
+    }
+    /**
+    * 任务兼容表
+    * @return \taskJianRong
+    */
+    public static function taskJianRong()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'taskJianRong');
+    }
+    /**
+    * @return \sm_taskJianRong taskJianRong item数据 
+    */
+    public static function taskJianRong_getItem($itemid)
+    { 
+        return self::get_hash_item('taskJianRong', $itemid);
+    }
+    /**
+    * 限时
+    * @return \shop_limitTs
+    */
+    public static function shop_limitTs()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'shop_limitTs');
+    }
+    /**
+    * @return \sm_shop_limitTs shop_limitTs item数据 
+    */
+    public static function shop_limitTs_getItem($itemid)
+    { 
+        return self::get_hash_item('shop_limitTs', $itemid);
+    }
+    /**
+    * 限时类型区别
+    * @return \shop_limitTs_Type
+    */
+    public static function shop_limitTs_Type()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'shop_limitTs_Type');
+    }
+    /**
+    * @return \sm_shop_limitTs_Type shop_limitTs_Type itemArray 
+    */
+    public static function shop_limitTs_Type_getItemArray($key)
+    { 
+        return self::get_hash_item('shop_limitTs_Type', $key);
+    }
+    /**
+    * 召唤卡
+    * @return \zhaohuanCard
+    */
+    public static function zhaohuanCard()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'zhaohuanCard');
+    }
+    /**
+    * @return \sm_zhaohuanCard zhaohuanCard item数据 
+    */
+    public static function zhaohuanCard_getItem($itemid)
+    { 
+        return self::get_hash_item('zhaohuanCard', $itemid);
+    }
+    /**
+    * 场景出口对应关系
+    * @return \map_scene_relation
+    */
+    public static function map_scene_relation()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'map_scene_relation');
+    }
+    /**
+    * @return \sm_map_scene_relation map_scene_relation item数据 
+    */
+    public static function map_scene_relation_getItem($mapId, $pointId)
+    { 
+        return self::get_hash_item('map_scene_relation', $mapId)->$pointId;
+    }
+    /**
+    * 地图探索
+    * @return \map_explorer
+    */
+    public static function map_explorer()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'map_explorer');
+    }
+    /**
+    * @return \sm_map_explorer map_explorer itemArray 
+    */
+    public static function map_explorer_getItemArray($key)
+    { 
+        return self::get_hash_item('map_explorer', $key);
+    }
+    /**
+    * 武器商店
+    * @return \shop_weapon
+    */
+    public static function shop_weapon()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'shop_weapon');
+    }
+    /**
+    * @return \sm_shop_weapon shop_weapon itemArray 
+    */
+    public static function shop_weapon_getItemArray($key)
+    { 
+        return self::get_hash_item('shop_weapon', $key);
+    }
+    /**
+    * 补给品商店
+    * @return \shop_supplies
+    */
+    public static function shop_supplies()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'shop_supplies');
+    }
+    /**
+    * @return \sm_shop_supplies shop_supplies item数据 
+    */
+    public static function shop_supplies_getItem($npc, $items)
+    { 
+        return self::get_hash_item('shop_supplies', $npc)->$items;
+    }
+    /**
+    * 区域不同
+    * @return \map_scene_zoneid
+    */
+    public static function map_scene_zoneid()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'map_scene_zoneid');
+    }
+    /**
+    * @return \sm_map_scene_zoneid map_scene_zoneid itemArray 
+    */
+    public static function map_scene_zoneid_getItemArray($key)
+    { 
+        return self::get_hash_item('map_scene_zoneid', $key);
+    }
+    /**
+    * 言灵套装表
+    * @return \yanling_compose
+    */
+    public static function yanling_compose()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'yanling_compose');
+    }
+    /**
+    * @return \sm_yanling_compose yanling_compose item数据 
+    */
+    public static function yanling_compose_getItem($itemid)
+    { 
+        return self::get_hash_item('yanling_compose', $itemid);
+    }
+    /**
+    * 加成属性
+    * @return \eHeroAddProperties
+    */
+    public static function eHeroAddProperties()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'eHeroAddProperties');
+    }
+    /**
+    * @return \sm_eHeroAddProperties eHeroAddProperties item数据 
+    */
+    public static function eHeroAddProperties_getItem($itemid)
+    { 
+        return self::get_hash_item('eHeroAddProperties', $itemid);
+    }
+    /**
+    * 玩家等级排行奖励表
+    * @return \rank_playerlevel_reward
+    */
+    public static function rank_playerlevel_reward()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'rank_playerlevel_reward');
+    }
+    /**
+    * @return \sm_rank_playerlevel_reward rank_playerlevel_reward item数据 
+    */
+    public static function rank_playerlevel_reward_getItem($itemid)
+    { 
+        return self::get_hash_item('rank_playerlevel_reward', $itemid);
+    }
+    /**
+    * 新充值返利
+    * @return \rechargeRebate
+    */
+    public static function rechargeRebate()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'rechargeRebate');
+    }
+    /**
+    * @return \sm_rechargeRebate rechargeRebate item数据 
+    */
+    public static function rechargeRebate_getItem($type, $rmb)
+    { 
+        return self::get_hash_item('rechargeRebate', $type)->$rmb;
+    }
+    /**
+    * 得给注释
+    * @return \duplicate_defense
+    */
+    public static function duplicate_defense()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'duplicate_defense');
+    }
+    /**
+    * @return \sm_duplicate_defense duplicate_defense item数据 
+    */
+    public static function duplicate_defense_getItem($itemid)
+    { 
+        return self::get_hash_item('duplicate_defense', $itemid);
+    }
+    /**
+    * 言灵品阶进阶表
+    * @return \yanlingQuality
+    */
+    public static function yanlingQuality()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'yanlingQuality');
+    }
+    /**
+    * @return \sm_yanlingQuality yanlingQuality item数据 
+    */
+    public static function yanlingQuality_getItem($typeId, $qualityId)
+    { 
+        return self::get_hash_item('yanlingQuality', $typeId)->$qualityId;
+    }
+    /**
+    * 金币兑换
+    * @return \goldexchange
+    */
+    public static function goldexchange()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'goldexchange');
+    }
+    /**
+    * @return \sm_goldexchange goldexchange item数据 
+    */
+    public static function goldexchange_getItem($itemid)
+    { 
+        return self::get_hash_item('goldexchange', $itemid);
+    }
+    /**
+    * 日常商城表
+    * @return \shop_daily
+    */
+    public static function shop_daily()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'shop_daily');
+    }
+    /**
+    * @return \sm_shop_daily shop_daily item数据 
+    */
+    public static function shop_daily_getItem($itemid)
+    { 
+        return self::get_hash_item('shop_daily', $itemid);
+    }
+    /**
+    * 日常商店
+    * @return \shop_daily_type
+    */
+    public static function shop_daily_type()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'shop_daily_type');
+    }
+    /**
+    * @return \sm_shop_daily_type shop_daily_type item数据 
+    */
+    public static function shop_daily_type_getItem($type, $typeId)
+    { 
+        return self::get_hash_item('shop_daily_type', $type)->$typeId;
+    }
+    /**
+    * 公共兑换码
+    * @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 \PaiMingReward_fpower
+    */
+    public static function PaiMingReward_fpower()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'PaiMingReward_fpower');
+    }
+    /**
+    * @return \sm_PaiMingReward_fpower PaiMingReward_fpower item数据 
+    */
+    public static function PaiMingReward_fpower_getItem($itemid)
+    { 
+        return self::get_hash_item('PaiMingReward_fpower', $itemid);
+    }
+    /**
+    * 等级榜排行榜奖励
+    * @return \PaiMingReward_level
+    */
+    public static function PaiMingReward_level()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'PaiMingReward_level');
+    }
+    /**
+    * @return \sm_PaiMingReward_level PaiMingReward_level item数据 
+    */
+    public static function PaiMingReward_level_getItem($itemid)
+    { 
+        return self::get_hash_item('PaiMingReward_level', $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 self::initValue($a, 'client', false);
+    }
+}
+

+ 559 - 0
Gameserver/Amfphp/model/Const/globalsettings.php

@@ -0,0 +1,559 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-05-23 14:42:13
+////////////////////
+
+
+/**
+ * Static Model globalsettings 全局参数
+ */
+class globalsettings
+{
+
+    /**
+    * @var Object demo  
+    */
+    public $key;
+
+    /**
+    * @var Object 某战斗开启的玩家等级限制  
+    */
+    public $Fight_OpenLevelLimit;
+
+    /**
+    * @var Object 英雄升级_消耗卡牌的卡槽,最大数量  
+    */
+    public $Hero_Upgrade_MaxCostHeroCardNum;
+
+    /**
+    * @var Object 七日大奖要求完成的任务点数  
+    */
+    public $day7_dianshu;
+
+    /**
+    * @var Object 七日最终奖励  
+    */
+    public $day7_reward;
+
+    /**
+    * @var Object 装备经验=吞噬经验X系数+初始值  
+    */
+    public $shengxing_xishu;
+
+    /**
+    * @var Object 升级成为高1等级的宝石需要的数量  
+    */
+    public $baoshi_shengjishu;
+
+    /**
+    * @var Object 游戏内玩家账号的最高等级限制  
+    */
+    public $Game_MaxPlayerLevel;
+
+    /**
+    * @var Object 战斗内攻击时间间隔(毫秒)  
+    */
+    public $Fight_AttackTime;
+
+    /**
+    * @var Object 英雄升级_当前卡提供的基础经验值  
+    */
+    public $Hero_Upgrade_BasicEXP;
+
+    /**
+    * @var Object 英雄升级_当前卡的累计经验值,折扣系数  
+    */
+    public $Hero_Upgrade_EXP_XiShu;
+
+    /**
+    * @var Object 英雄升级_获得经验与消耗金币之间的系数  
+    */
+    public $Hero_Upgrade_ExpConverGold;
+
+    /**
+    * @var Object 英雄升级——英雄能达到的最大等级  
+    */
+    public $Hero_Upgrade_BasicMaxLevel;
+
+    /**
+    * @var Object 英雄升星——最大星级  
+    */
+    public $Hero_Star_MaxStarLevel;
+
+    /**
+    * @var Object 英雄升星——升星消耗的道具种类 (  金元素)  
+    */
+    public $Hero_Star_CostItem_1;
+
+    /**
+    * @var Object 英雄升星——升星消耗的道具种类 (  木元素)  
+    */
+    public $Hero_Star_CostItem_2;
+
+    /**
+    * @var Object 英雄升星——升星消耗的道具种类 (  水元素)  
+    */
+    public $Hero_Star_CostItem_3;
+
+    /**
+    * @var Object 强化5,10级时,当前属性乘以一次系数  
+    */
+    public $item_qianghua;
+
+    /**
+    * @var Object 英雄升星——升星消耗的道具种类 (  火元素)  
+    */
+    public $Hero_Star_CostItem_4;
+
+    /**
+    * @var Object 英雄升星——升星消耗的道具种类 (  土元素)  
+    */
+    public $Hero_Star_CostItem_5;
+
+    /**
+    * @var Object 英雄装备_每个卡槽的开放要求好感度  
+    */
+    public $Hero_Equip_SlotOpenConditions_Favor;
+
+    /**
+    * @var Object 英雄分解——不同的星星数量分解转换的晶石数量  
+    */
+    public $Hero_Separate_StarConvertToSpar;
+
+    /**
+    * @var Object 英雄分解—— 消耗卡牌的卡槽,最大数量  
+    */
+    public $Hero_Separate_MaxCostHeroCardNum;
+
+    /**
+    * @var Object 英雄升星——消耗英雄的卡槽,最大数量  
+    */
+    public $Hero_Star_MaxCostHeroCardNum;
+
+    /**
+    * @var Object 英雄升阶——最大等阶  
+    */
+    public $Hero_Stength_MaxStrengthLevel;
+
+    /**
+    * @var Object 游戏账号内_默认,收集的英雄数量上限  
+    */
+    public $Game_CollectHero_BasicMaxCount;
+
+    /**
+    * @var Object 游戏账号内_收集的英雄数量上限_每次购买数目  
+    */
+    public $Game_CollectHero_OneBuyLimtNum;
+
+    /**
+    * @var Object 战斗_每个页面上存在的关卡的数量(删)  
+    */
+    public $Battle_GateNumOnePage;
+
+    /**
+    * @var Object 默认背包最大数量  
+    */
+    public $Item_Packet_MaxNum;
+
+    /**
+    * @var Object 每开10个格子需要消耗的钻石价格  
+    */
+    public $Item_Packet_NumCostCash;
+
+    /**
+    * @var Object 英雄评论区一个赞的排行权重(秒), 3600秒
+    *  Ps. 暂行公式: score = ts + praise * weight
+    *    按照score 从大到小排序.  
+    */
+    public $Hero_Discuss_Praise_weight;
+
+    /**
+    * @var Object 战前消耗金币购买buff  
+    */
+    public $Battle_CostGoldBuyBuff;
+
+    /**
+    * @var Object 战斗计算的 格属性比重系数(李宁)  
+    */
+    public $Battle_PowerFactor;
+
+    /**
+    * @var Object 单场战斗总时间, 单位毫秒  
+    */
+    public $Battle_BattleShowTime;
+
+    /**
+    * @var Object 战斗队伍最大人数(千万别改)  
+    */
+    public $Battle_BattleTeamMaxFighter;
+
+    /**
+    * @var Object 己方释放技能恢复己方团队能量值  
+    */
+    public $Battle_IncreasePowerByCastSkill;
+
+    /**
+    * @var Object 己方连击能量值上限(数值满足时,可以进行连击)  
+    */
+    public $Battle_BlueTeamMaxPower;
+
+    /**
+    * @var Object 神秘商城, 刷新时间间隔(单位: 秒)  
+    */
+    public $secretshop_refresh_interval;
+
+    /**
+    * @var Object 物品栏购买栏位梯度价格  
+    */
+    public $Item_Packet_MaxNumPrice;
+
+    /**
+    * @var Object 游戏账号内_收集的英雄数量上限_英雄栏购买栏位梯度价格  
+    */
+    public $Game_CollectHero_BasicMaxPrice;
+
+    /**
+    * @var Object 无穷无尽关卡——每天的挑战次数总上限  
+    */
+    public $Battle_Forever_MaxCountEveryDay;
+
+    /**
+    * @var Object 玩家发送一条系统消息消(当前分区)耗钻石数量  
+    */
+    public $SystemMessage_UserSendToMyZone_Cos;
+
+    /**
+    * @var Object 系统消息 - 对英雄升星进行系统广播的最低星级限制  
+    */
+    public $SystemMessage_HeroStar_Limit_Min;
+
+    /**
+    * @var Object 系统消息 - 对英雄升阶进行系统广播的最低等阶限制  
+    */
+    public $SystemMessage_HeroStage_Limit_Min;
+
+    /**
+    * @var Object 系统消息 - 对装备强化进行系统广播的最低等级限制  
+    */
+    public $SystemMessage_WeaponLevel_Limit_Min;
+
+    /**
+    * @var Object 新手引导中抽奖的掉落  
+    */
+    public $choujiang_guide_items;
+
+    /**
+    * @var Object 神秘商城最单个物品大购买次数  
+    */
+    public $secretshop_itembuy_maxtimes;
+
+    /**
+    * @var Object 宝箱开启里大R充值判断条件  
+    */
+    public $bigRPay_Condition;
+
+    /**
+    * @var Object 宝箱开启里大R当日抽奖次数判断条件  
+    */
+    public $bigROpenBoxTimesDayliy_Condition;
+
+    /**
+    * @var Object 修改昵称消耗的钻石,0代表不消耗  
+    */
+    public $User_SetNickname_Cost;
+
+    /**
+    * @var Object 新手引导中发放所需碎片(cardid,numb;cardid,num...)  
+    */
+    public $User_SetNewbieGuideCards;
+
+    /**
+    * @var Object 系统设定: 操作日志保存天数  
+    */
+    public $syscfg_oplog_keepdays;
+
+    /**
+    * @var Object 装备属性升级的参数  
+    */
+    public $Equip_Upgrade_Property;
+
+    /**
+    * @var Object 神秘商城最大刷新次数  
+    */
+    public $secretshop_refresh_maxtimes;
+
+    /**
+    * @var Object 己方连击(倒计时)时间  
+    */
+    public $Battle_BlueCriticalTime;
+
+    /**
+    * @var Object 连击伤害概率(x/100)  
+    */
+    public $Battle_BattleLianJiDamageRate;
+
+    /**
+    * @var Object 竞技商店 - 刷新花费(钻石)  
+    */
+    public $PVP_shop_refresh_cash;
+
+    /**
+    * @var Object 竞技商店 - 免费刷新间隔  
+    */
+    public $PVP_shop_refresh_interval;
+
+    /**
+    * @var Object 碎片融合时需要花费的金币  
+    */
+    public $Compose_Pieces_Gold;
+
+    /**
+    * @var Object 首充活动礼包的商品ID  
+    */
+    public $FirstPay_ItemId;
+
+    /**
+    * @var Object 赠送体力的时间段(24小时的数字无前导0, 逗号分隔)  
+    */
+    public $activity_presentTili_times;
+
+    /**
+    * @var Object 每次赠送体力的数量  
+    */
+    public $activity_presentTili_number;
+
+    /**
+    * @var Object 竞技场-挑战票价格(钻石)  
+    */
+    public $PVP_pk_ticket_price;
+
+    /**
+    * @var Object 【废弃】当前客户端版本号  
+    */
+    public $clientVer;
+
+    /**
+    * @var Object 支付模块是否开放  
+    */
+    public $Game_Pay_Open;
+
+    /**
+    * @var Object 更新开始时间戳  
+    */
+    public $updatingBeginTs;
+
+    /**
+    * @var Object 更新结束时间戳  
+    */
+    public $updatingEndTs;
+
+    /**
+    * @var Object 开宝箱的公共冷却值(热保护值)  
+    */
+    public $Box_Total_CoolDown;
+
+    /**
+    * @var Object 免cd开各种宝箱所花费的钻石数。  
+    */
+    public $Box_NoCoolDown_Cash;
+
+    /**
+    * @var Object 任务卡商城 - 手动刷新消耗钻石数量   
+    */
+    public $TaskCardShop_Refresh_Cash;
+
+    /**
+    * @var Object 任务卡商城 - 自动刷新间隔(秒)  
+    */
+    public $TaskCardShop_Refresh_TS;
+
+    /**
+    * @var Object 新手祈愿奖池 限定次数上限   
+    */
+    public $UserWishNumLimit;
+
+    /**
+    * @var Object 武器等级最大值  
+    */
+    public $Weapon_Upgrade_BasicMaxLevel;
+
+    /**
+    * @var Object 系统额定增加,比如每次加价10钻石  
+    */
+    public $AuctionAddPrice;
+
+    /**
+    * @var Object 竞拍结束时间  
+    */
+    public $AuctionEndTs;
+
+    /**
+    * @var Object   
+    */
+    public $IdeaBackActive;
+
+    /**
+    * @var Object 描述信息  
+    */
+    public $firstRechargePrizes;
+
+    /**
+    * @var Object   
+    */
+    public $BugBackActive;
+
+    /**
+    * @var Object 首次充值金额达到指定值  
+    */
+    public $firstRechargeRMB;
+
+    /**
+    * @var Object 活动祈愿保底必出UR唤灵师次数设置  
+    */
+    public $Active_UR_Num;
+
+    /**
+    * @var Object 新手引导中发放所需经验卡(id,num;id,num...)  
+    */
+    public $User_SetNewbieGuideExps;
+
+    /**
+    * @var Object 游戏聊天功能——是否开放 1开放0 关闭  
+    */
+    public $Game_ChatIsOpen;
+
+    /**
+    * @var Object 游戏引导功能——是否开放 1开放0 关闭  
+    */
+    public $Game_Guide_IsOpen;
+
+    /**
+    * @var Object 己方(释放技能)共用总能量条(按时间增长)  
+    */
+    public $Battle_BlueTeamMaxSkillPower;
+
+    /**
+    * @var Object 敌方(释放技能)共用总能量条(按时间增长)  
+    */
+    public $Battle_RedTeamMaxSkillPower;
+
+    /**
+    * @var Object 系统公告图片的网址  
+    */
+    public $Game_PublicNotice;
+
+    /**
+    * @var Object 进入战场后,角色初始能量(sp)  
+    */
+    public $Arenas_Init_SP;
+
+    /**
+    * @var Object 普通攻击(一击)命中目标并造成上海, 增加3点能量SP  
+    */
+    public $Arenas_hit_SP;
+
+    /**
+    * @var Object 触发极限闪避并进入【失控漩涡】时间, 增加2点能量SP  
+    */
+    public $Arenas_jixianshanbi_SP;
+
+    /**
+    * @var Object 背包最大数量  
+    */
+    public $Item_Packet_MaxNum_New;
+
+    /**
+    * @var Object 背包起始默认数量  
+    */
+    public $Item_Packet_InitNum_New;
+
+    /**
+    * @var Object 限时活动礼包开始时间  
+    */
+    public $limitTsActiveGiftStartTs;
+
+    /**
+    * @var Object 限时活动礼包结束时间  
+    */
+    public $limitTsActiveGiftEndTs;
+
+    /**
+    * @var Object 扩容第三个格子的花费  
+    */
+    public $expandStorageCost;
+
+    /**
+    * @var Object 战斗槽位冷却时间  
+    */
+    public $caoWeiCoolTs;
+
+    /**
+    * @var Object 血瓶生命初始值和蓝瓶的魔法的初始值  
+    */
+    public $YaoPingAttrInitVal;
+
+    /**
+    * @var Object 每日任务等级限制解锁  
+    */
+    public $DailyTaskLevelLimitLock;
+
+    /**
+    * @var Object 每日任务常规任务  
+    */
+    public $dailyTask_Common;
+
+    /**
+    * @var Object 每日任务交付任务  
+    */
+    public $dailyTask_HandOver;
+
+    /**
+    * @var Object 每日购买体力消费  
+    */
+    public $active_BuyTili_Cost;
+
+    /**
+    * @var Object 每次购买体力的体力回复值  
+    */
+    public $active_BuyTili_RecoveryNum;
+
+    /**
+    * @var Object 每日购买体力次数限制  
+    */
+    public $active_BuyTili_DailyNum;
+
+    /**
+    * @var Object 自动恢复体力的上线值  
+    */
+    public $TiliMaxVal;
+
+    /**
+    * @var Object 原地满血复活消耗的钻石  
+    */
+    public $backFullBloodCost;
+
+    /**
+    * @var Object 限购里累计998可得武器  
+    */
+    public $AccumulateRechargePrize;
+
+    /**
+    * @var Object 免费原地满血复活次数  
+    */
+    public $battleReviveNum;
+
+    /**
+    * @var Object 言灵品阶分组  
+    */
+    public $yanlingExpQualityGroup;
+
+    /**
+    * @var Object 恢复一点体力所需时间(秒)  
+    */
+    public $active_Tili_RecoverTS;
+
+}
+

+ 87 - 0
Gameserver/Amfphp/model/Const/primordial_data.php

@@ -0,0 +1,87 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-02-10 15:37:37
+////////////////////
+
+
+/**
+ * Static Model primordial_data 玩家初始化数据
+ */
+class primordial_data
+{
+
+    /**
+    * @var Object 初始战队  
+    */
+    public $User_HeroTeamConfig;
+
+    /**
+    * @var Object 初始金币  
+    */
+    public $User_Gold;
+
+    /**
+    * @var Object 初始钻石  
+    */
+    public $User_Cash;
+
+    /**
+    * @var Object 初始经验  
+    */
+    public $User_XP;
+
+    /**
+    * @var Object 初始形象  
+    */
+    public $User_img;
+
+    /**
+    * @var Object 初始英雄_附加言灵id  
+    */
+    public $User_Heros;
+
+    /**
+    * @var Object 宝箱初始化  
+    */
+    public $User_Store_boxes;
+
+    /**
+    * @var Object 元素初始化  
+    */
+    public $User_Store_element;
+
+    /**
+    * @var Object 物品的背包格子的上限  
+    */
+    public $User_Private_MaxItem_num;
+
+    /**
+    * @var Object 碎片初始化数据  
+    */
+    public $User_Store_segment;
+
+    /**
+    * @var Object 道具初始化数据  
+    */
+    public $User_Store_items;
+
+    /**
+    * @var Object 装备初始化数据  
+    */
+    public $User_Store_equipment;
+
+    /**
+    * @var Object 言灵初始化数据  
+    */
+    public $User_Store_yanling;
+
+    /**
+    * @var Object 初始头像  
+    */
+    public $User_head;
+
+}
+

+ 47 - 0
Gameserver/Amfphp/model/Const/sm_PaiMingReward_fpower.php

@@ -0,0 +1,47 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-06-14 11:48:12
+////////////////////
+
+
+/**
+ * Static Model PaiMingReward_fpower 战力榜排行榜奖励
+ */
+class sm_PaiMingReward_fpower
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $id;
+
+    /**
+    * @var String 排名等级  
+    */
+    public $rankName;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $minRank;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $maxRank;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $reward;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $desc;
+
+}
+

+ 47 - 0
Gameserver/Amfphp/model/Const/sm_PaiMingReward_level.php

@@ -0,0 +1,47 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-06-14 11:49:28
+////////////////////
+
+
+/**
+ * Static Model PaiMingReward_level 等级榜排行榜奖励
+ */
+class sm_PaiMingReward_level
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $id;
+
+    /**
+    * @var String 排名等级  
+    */
+    public $rankName;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $minRank;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $maxRank;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $reward;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $desc;
+
+}
+

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

@@ -0,0 +1,72 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-06-13 17:47:47
+////////////////////
+
+
+/**
+ * Static Model activity 活动配置
+ */
+class sm_activity
+{
+
+    /**
+    * @var Int32 活动ID  
+    */
+    public $typeId;
+
+    /**
+    * @var String 活动名称  
+    */
+    public $name;
+
+    /**
+    * @var Int32 开始时间  
+    */
+    public $startts;
+
+    /**
+    * @var Int32 结束时间  
+    */
+    public $endts;
+
+    /**
+    * @var Int32 新活动标志, 可能会显示个"新"的角标之类的  
+    */
+    public $isNew;
+
+    /**
+    * @var Int32 是否展示在活动面板上  
+    */
+    public $inPanel;
+
+    /**
+    * @var Int32 是否处于选中活动, 所有活动只能选一个开启. default(0) 
+    */
+    public $isSelected;
+
+    /**
+    * @var String 介绍文字  
+    */
+    public $desc;
+
+    /**
+    * @var String 展示图片  
+    */
+    public $pic;
+
+    /**
+    * @var String 商品图标  
+    */
+    public $icon;
+
+    /**
+    * @var String 逗号分隔字符串,哪个渠道关闭此活动(例如:yyb,hw代表应用宝和华为渠道这个活动不显示)  
+    */
+    public $hidden_plat;
+
+}
+

+ 37 - 0
Gameserver/Amfphp/model/Const/sm_activity_day7.php

@@ -0,0 +1,37 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-05-25 16:03:07
+////////////////////
+
+
+/**
+ * Static Model activity_day7 活动: 七日签到
+ */
+class sm_activity_day7
+{
+
+    /**
+    * @var Int32 主键  
+    */
+    public $tid;
+
+    /**
+    * @var Int32 第x天(1~7)  
+    */
+    public $day;
+
+    /**
+    * @var String 奖励:itemId,num  
+    */
+    public $reward;
+
+    /**
+    * @var String 备注  
+    */
+    public $desc;
+
+}
+

+ 47 - 0
Gameserver/Amfphp/model/Const/sm_activity_levelgift.php

@@ -0,0 +1,47 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-05-23 10:12:56
+////////////////////
+
+
+/**
+ * Static Model activity_levelgift 活动: 等级礼包
+ */
+class sm_activity_levelgift
+{
+
+    /**
+    * @var Int32 自动编号  
+    */
+    public $id;
+
+    /**
+    * @var String 名称  
+    */
+    public $name;
+
+    /**
+    * @var String 图标  
+    */
+    public $icon;
+
+    /**
+    * @var String 描述  
+    */
+    public $desc;
+
+    /**
+    * @var String 奖励内容字符串: itemid,num;itemid,num....  
+    */
+    public $rewardstr;
+
+    /**
+    * @var Int32 奖励领取等级 default(1) 
+    */
+    public $level;
+
+}
+

+ 47 - 0
Gameserver/Amfphp/model/Const/sm_activity_onlinegift.php

@@ -0,0 +1,47 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-02-02 10:42:20
+////////////////////
+
+
+/**
+ * Static Model activity_onlinegift 活动: 在线礼包
+ */
+class sm_activity_onlinegift
+{
+
+    /**
+    * @var Int32 在线礼包的编号 default(0) 
+    */
+    public $typeId;
+
+    /**
+    * @var Int32 需要的在线时长(单位:秒) default(100) 
+    */
+    public $onlineSec;
+
+    /**
+    * @var String 名称  
+    */
+    public $name;
+
+    /**
+    * @var String 图标  
+    */
+    public $icon;
+
+    /**
+    * @var String 描述  
+    */
+    public $desc;
+
+    /**
+    * @var String 奖励内容字符串: itemid,num;itemid,num....  
+    */
+    public $rewardstr;
+
+}
+

+ 52 - 0
Gameserver/Amfphp/model/Const/sm_activity_reggift.php

@@ -0,0 +1,52 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2022-03-25 15:15:35
+////////////////////
+
+
+/**
+ * Static Model activity_reggift 活动, 全服注册礼包
+ */
+class sm_activity_reggift
+{
+
+    /**
+    * @var Int32 全服注册礼包的编号 default(0) 
+    */
+    public $typeId;
+
+    /**
+    * @var Int32 需要的注册人数 default(100) 
+    */
+    public $regNumber;
+
+    /**
+    * @var String 名称  
+    */
+    public $name;
+
+    /**
+    * @var String 图标  
+    */
+    public $icon;
+
+    /**
+    * @var String 描述  
+    */
+    public $desc;
+
+    /**
+    * @var String 奖励内容字符串: itemid,num;itemid,num....  
+    */
+    public $rewardstr;
+
+    /**
+    * @var Int32 奖励领取等级 default(1) 
+    */
+    public $level;
+
+}
+

+ 47 - 0
Gameserver/Amfphp/model/Const/sm_activity_tiligift.php

@@ -0,0 +1,47 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-05-24 15:10:58
+////////////////////
+
+
+/**
+ * Static Model activity_tiligift 活动: 体力加油站
+ */
+class sm_activity_tiligift
+{
+
+    /**
+    * @var Int32 自动编号  
+    */
+    public $id;
+
+    /**
+    * @var String 名称  
+    */
+    public $name;
+
+    /**
+    * @var TimeSpan 起始时间  
+    */
+    public $start_time;
+
+    /**
+    * @var TimeSpan 结束时间  
+    */
+    public $end_time;
+
+    /**
+    * @var Int32 获得体力  
+    */
+    public $tili;
+
+    /**
+    * @var Int32 补领消耗钻石  
+    */
+    public $late_cost;
+
+}
+

+ 32 - 0
Gameserver/Amfphp/model/Const/sm_attack_relation.php

@@ -0,0 +1,32 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-12-21 14:42:19
+////////////////////
+
+
+/**
+ * Static Model attack_relation 元素相克关系表
+ */
+class sm_attack_relation
+{
+
+    /**
+    * @var String 元素1  
+    */
+    public $attack1;
+
+    /**
+    * @var String 元素2  
+    */
+    public $attack2;
+
+    /**
+    * @var String 效果  
+    */
+    public $effect;
+
+}
+

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

@@ -0,0 +1,72 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2022-11-09 21:25:46
+////////////////////
+
+
+/**
+ * Static Model build 建筑表_2021.2.5
+ */
+class sm_build
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $id;
+
+    /**
+    * @var String 建筑名称  
+    */
+    public $name;
+
+    /**
+    * @var String 指定场景资源(切换关卡,有关卡时优先切换关卡)  
+    */
+    public $sceneRes;
+
+    /**
+    * @var String 建筑资源 prefab 上层显示  
+    */
+    public $iconRes;
+
+    /**
+    * @var String 功能名称  
+    */
+    public $functionName;
+
+    /**
+    * @var String 功能界面(不能进入细节二级界面时 直接弹出功能界面)  
+    */
+    public $functionUI;
+
+    /**
+    * @var String 建筑详情 背景图片  
+    */
+    public $bgImage;
+
+    /**
+    * @var String 1001  
+    */
+    public $npcList;
+
+    /**
+    * @var String 解锁 条件 玩家等级  
+    */
+    public $playerLevelLimit;
+
+    /**
+    * @var String 解锁特效资源  
+    */
+    public $unlockRes;
+
+    /**
+    * @var String 房间描述信息  
+    */
+    public $speech;
+
+}
+

+ 63 - 0
Gameserver/Amfphp/model/Const/sm_cfg_duplicate_defense.php

@@ -0,0 +1,63 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2022-12-15 17:10:05
+////////////////////
+
+
+/**
+ * Static Model cfg_duplicate_defense 得给注释
+ */
+class sm_cfg_duplicate_defense
+{
+
+    /**
+    * @var Int32 自然序号 唯一ID  
+    */
+    public $id;
+
+    /**
+    * @var String 怪物列表[id_num,id_num
+    *  id_num]  
+    */
+    public $monsterList;
+
+    /**
+    * @var String 通关奖励列表[id_num,id_num]  
+    */
+    public $rewardList;
+
+    /**
+    * @var Single 波次间隔时间  
+    */
+    public $intervalTime;
+
+    /**
+    * @var Single 通关时间  
+    */
+    public $clearanceTime;
+
+    /**
+    * @var String 特殊奖励[id_num]  
+    */
+    public $rewardOne;
+
+    /**
+    * @var Int32 推荐等级 default(0) 
+    */
+    public $recommendLv;
+
+    /**
+    * @var Int32 解锁等级 default(0) 
+    */
+    public $unlockLv;
+
+    /**
+    * @var Int32 怪物逃生数量 default(1) 
+    */
+    public $escapeNum;
+
+}
+

+ 32 - 0
Gameserver/Amfphp/model/Const/sm_clientVersionHistory.php

@@ -0,0 +1,32 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-05-31 15:17:41
+////////////////////
+
+
+/**
+ * Static Model clientVersionHistory 客户端版本信息
+ */
+class sm_clientVersionHistory
+{
+
+    /**
+    * @var String 版本号 default(0) 
+    */
+    public $ver;
+
+    /**
+    * @var String 发布时间 default(0) 
+    */
+    public $releaseTime;
+
+    /**
+    * @var String 版本说明 default(0) 
+    */
+    public $description;
+
+}
+

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

@@ -0,0 +1,42 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2022-03-25 15:16:51
+////////////////////
+
+
+/**
+ * Static Model college 圣哲学院表
+ */
+class sm_college
+{
+
+    /**
+    * @var Int32 年级部门id default(0) 
+    */
+    public $id;
+
+    /**
+    * @var String 年级部门名称  
+    */
+    public $name;
+
+    /**
+    * @var String 年级部门下的课程列表  
+    */
+    public $cList;
+
+    /**
+    * @var String 年级奖励  
+    */
+    public $prize;
+
+    /**
+    * @var String 额外字段  
+    */
+    public $etc;
+
+}
+

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

@@ -0,0 +1,42 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2022-03-25 15:17:02
+////////////////////
+
+
+/**
+ * Static Model course 圣哲学院课程表
+ */
+class sm_course
+{
+
+    /**
+    * @var Int32 课程id default(0) 
+    */
+    public $id;
+
+    /**
+    * @var String 课程的名称  
+    */
+    public $name;
+
+    /**
+    * @var String 课程下的任务卡列表  
+    */
+    public $misslist;
+
+    /**
+    * @var String 课程奖励  
+    */
+    public $prize;
+
+    /**
+    * @var String 额外字段  
+    */
+    public $etc;
+
+}
+

+ 37 - 0
Gameserver/Amfphp/model/Const/sm_drop.php

@@ -0,0 +1,37 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-06-09 10:28:22
+////////////////////
+
+
+/**
+ * Static Model drop 掉落数据表
+ */
+class sm_drop
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $id;
+
+    /**
+    * @var Int32 掉落类型 default(0) 
+    */
+    public $dropType;
+
+    /**
+    * @var String 随机道具掉落列表 id,mixNum,maxNum,Range;id2,mixNum,maxNum,range;  
+    */
+    public $randItems;
+
+    /**
+    * @var String 指定道具掉落列表 id,mixNum,maxNum;id,mixNum,maxNum,range;  
+    */
+    public $assignItems;
+
+}
+

+ 63 - 0
Gameserver/Amfphp/model/Const/sm_duplicate_defense.php

@@ -0,0 +1,63 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2022-12-15 17:10:05
+////////////////////
+
+
+/**
+ * Static Model duplicate_defense 得给注释
+ */
+class sm_duplicate_defense
+{
+
+    /**
+    * @var Int32 自然序号 唯一ID  
+    */
+    public $id;
+
+    /**
+    * @var String 怪物列表[id_num,id_num
+    *  id_num]  
+    */
+    public $monsterList;
+
+    /**
+    * @var String 通关奖励列表[id_num,id_num]  
+    */
+    public $rewardList;
+
+    /**
+    * @var Single 波次间隔时间  
+    */
+    public $intervalTime;
+
+    /**
+    * @var Single 通关时间  
+    */
+    public $clearanceTime;
+
+    /**
+    * @var String 特殊奖励[id_num]  
+    */
+    public $rewardOne;
+
+    /**
+    * @var Int32 推荐等级 default(0) 
+    */
+    public $recommendLv;
+
+    /**
+    * @var Int32 解锁等级 default(0) 
+    */
+    public $unlockLv;
+
+    /**
+    * @var Int32 怪物逃生数量 default(1) 
+    */
+    public $escapeNum;
+
+}
+

+ 32 - 0
Gameserver/Amfphp/model/Const/sm_eHeroAddProperties.php

@@ -0,0 +1,32 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2022-06-23 16:38:37
+////////////////////
+
+
+/**
+ * Static Model eHeroAddProperties 加成属性
+ */
+class sm_eHeroAddProperties
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $typeId;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $name;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $etc;
+
+}
+

+ 48 - 0
Gameserver/Amfphp/model/Const/sm_endless_tower.php

@@ -0,0 +1,48 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2022-03-25 15:17:15
+////////////////////
+
+
+/**
+ * Static Model endless_tower 无尽塔关卡数据
+ */
+class sm_endless_tower
+{
+
+    /**
+    * @var Int32 自然序号 唯一ID  
+    */
+    public $id;
+
+    /**
+    * @var String 怪物列表[id_num,id_num
+    *  id_num]  
+    */
+    public $monsterList;
+
+    /**
+    * @var String 通关奖励列表[id_num,id_num]  
+    */
+    public $rewardList;
+
+    /**
+    * @var Single 波次间隔时间  
+    */
+    public $intervalTime;
+
+    /**
+    * @var Single 通关时间  
+    */
+    public $clearanceTime;
+
+    /**
+    * @var String 特殊奖励[id_num]  
+    */
+    public $rewardOne;
+
+}
+

+ 37 - 0
Gameserver/Amfphp/model/Const/sm_errmsg.php

@@ -0,0 +1,37 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-04-14 19:40:40
+////////////////////
+
+
+/**
+ * Static Model errmsg 错误信息表
+ */
+class sm_errmsg
+{
+
+    /**
+    * @var String ERR_ID  
+    */
+    public $err;
+
+    /**
+    * @var Int32 错误码  
+    */
+    public $no;
+
+    /**
+    * @var Int32 错误类型: 继续=0.重启=1. default(0) 
+    */
+    public $type;
+
+    /**
+    * @var String 描述信息  
+    */
+    public $msg;
+
+}
+

+ 35 - 0
Gameserver/Amfphp/model/Const/sm_eventAction.php

@@ -0,0 +1,35 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2022-03-25 15:17:39
+////////////////////
+
+
+/**
+ * Static Model eventAction 动作事件表
+ */
+class sm_eventAction
+{
+
+    /**
+    * @var Int32 动作id(枚举值)
+    *  101触发场景剧情: 场景id, 剧情stageid
+    *  102
+    *  103 解锁建筑: 建筑id default(0) 
+    */
+    public $cmd;
+
+    /**
+    * @var String 动作所需参数:逗号分隔,(约定: 每个参数都是int)  
+    */
+    public $parameters;
+
+    /**
+    * @var String 备注(每个动作类型,自己注释好自己的参数解析方案)  
+    */
+    public $desc;
+
+}
+

+ 37 - 0
Gameserver/Amfphp/model/Const/sm_expandStoreNum.php

@@ -0,0 +1,37 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-12-21 14:37:37
+////////////////////
+
+
+/**
+ * Static Model expandStoreNum 背包扩容次数及消耗
+ */
+class sm_expandStoreNum
+{
+
+    /**
+    * @var Int32 扩充次数 default(0) 
+    */
+    public $id;
+
+    /**
+    * @var Int32 扩容格子数量 default(0) 
+    */
+    public $expandNum;
+
+    /**
+    * @var String 每次扩容消耗  
+    */
+    public $cost;
+
+    /**
+    * @var String 额外字段  
+    */
+    public $etc;
+
+}
+

+ 242 - 0
Gameserver/Amfphp/model/Const/sm_gate.php

@@ -0,0 +1,242 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-02-03 10:48:12
+////////////////////
+
+
+/**
+ * Static Model gate 关卡
+ */
+class sm_gate
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $gateId;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $gateName;
+
+    /**
+    * @var String 预制体名称  
+    */
+    public $prefabName;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $desc;
+
+    /**
+    * @var Int32 所在页码(0开始算第一页) default(0) 
+    */
+    public $pageId;
+
+    /**
+    * @var String 关卡的头像  
+    */
+    public $gateIcon;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $tili1;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $tili2;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $tili3;
+
+    /**
+    * @var Int32 【废弃】普通难度达到对应关卡解锁此关的精英难度 default(0) 
+    */
+    public $requireNormalLevel;
+
+    /**
+    * @var Int32 【废弃】精英关卡达到对应关卡解锁此关的噩梦难度 default(0) 
+    */
+    public $requireHardLevel;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $cishu1;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $cishu2;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $cishu3;
+
+    /**
+    * @var String 关卡奖励字符串  
+    */
+    public $reward1;
+
+    /**
+    * @var String 关卡奖励字符串(困难难度)  
+    */
+    public $reward2;
+
+    /**
+    * @var String 关卡奖励字符串  
+    */
+    public $reward3;
+
+    /**
+    * @var String 首次通关奖励(普通难度)  
+    */
+    public $first_reward1;
+
+    /**
+    * @var String 首次通关奖励(困难难度)  
+    */
+    public $first_reward2;
+
+    /**
+    * @var String 首次通关奖励(噩梦难度)  
+    */
+    public $first_reward3;
+
+    /**
+    * @var Int32 掉落金币(普通难度) default(0) 
+    */
+    public $gold1;
+
+    /**
+    * @var Int32 掉落金币(困难难度) default(0) 
+    */
+    public $gold2;
+
+    /**
+    * @var Int32 掉落金币(噩梦难度) default(0) 
+    */
+    public $gold3;
+
+    /**
+    * @var Int32 首次通关掉落的指挥官经验(普通难度) default(0) 
+    */
+    public $first_exp1;
+
+    /**
+    * @var Int32 首次通关掉落的指挥官经验(困难难度) default(0) 
+    */
+    public $first_exp2;
+
+    /**
+    * @var Int32 首次通关掉落的指挥官经验(噩梦难度) default(0) 
+    */
+    public $first_exp3;
+
+    /**
+    * @var Int32 首次通关解锁英雄ID(普通难度) default(0) 
+    */
+    public $first_hero1;
+
+    /**
+    * @var Int32 首次通关解锁英雄ID(困难难度) default(0) 
+    */
+    public $first_hero2;
+
+    /**
+    * @var Int32 首次通关解锁英雄ID(噩梦难度) default(0) 
+    */
+    public $first_hero3;
+
+    /**
+    * @var Int32 常规通关掉落玩家经验(普通难度) default(0) 
+    */
+    public $exp1;
+
+    /**
+    * @var Int32 常规通关掉落玩家经验(困难难度) default(0) 
+    */
+    public $exp2;
+
+    /**
+    * @var Int32 常规通关掉落玩家经验(噩梦难度) default(0) 
+    */
+    public $exp3;
+
+    /**
+    * @var Int32 掉落英雄经验(普通难度) default(0) 
+    */
+    public $heroExp1;
+
+    /**
+    * @var Int32 掉落英雄经验(困难难度) default(0) 
+    */
+    public $heroExp2;
+
+    /**
+    * @var Int32 掉落英雄经验(噩梦难度) default(0) 
+    */
+    public $heroExp3;
+
+    /**
+    * @var String 通关条件(逗号分隔通关条件的ID)  
+    */
+    public $passCondition;
+
+    /**
+    * @var String 战斗类型(0普通 怪物全部创建 1Boss站 2引导剧情 3竞技场 4非战斗场景 5 材料副本 6无尽之塔 7世界BOSS 8守护战)  
+    */
+    public $battleType;
+
+    /**
+    * @var String 奖励列表  
+    */
+    public $reward;
+
+    /**
+    * @var String 怪物列表(逗号分隔的id)  
+    */
+    public $monsters;
+
+    /**
+    * @var Int32 城镇0/据点1/非据点2/Boss点3/;其他4 default(4) 
+    */
+    public $mapType;
+
+    /**
+    * @var String 怪物等级信息  
+    */
+    public $monsterLevel;
+
+    /**
+    * @var String 怪物特性信息  
+    */
+    public $monsterAttr;
+
+    /**
+    * @var String 探索完成奖励数据(itemid,num;itemid,num;...)  
+    */
+    public $exploreReward;
+
+    /**
+    * @var Int32 关联副本数据ID default(0) 
+    */
+    public $duplicateDataId;
+
+    /**
+    * @var Int32 解锁等级  
+    */
+    public $unlockLevel;
+
+}
+

+ 77 - 0
Gameserver/Amfphp/model/Const/sm_gate_combat.php

@@ -0,0 +1,77 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-12-21 14:42:24
+////////////////////
+
+
+/**
+ * Static Model gate_combat 配置的关卡相关的战斗数据
+ */
+class sm_gate_combat
+{
+
+    /**
+    * @var Int32 关卡Id  
+    */
+    public $typeId;
+
+    /**
+    * @var String 关卡名称  
+    */
+    public $typeName;
+
+    /**
+    * @var String 关卡地形-地图  
+    */
+    public $senceName;
+
+    /**
+    * @var String 关卡地形-背景图  
+    */
+    public $senceBgName;
+
+    /**
+    * @var String 描述文本  
+    */
+    public $desc;
+
+    /**
+    * @var String [废弃]  
+    */
+    public $level;
+
+    /**
+    * @var String 普通难度_波次ID(Gatelevel.id)  
+    */
+    public $levels_normal;
+
+    /**
+    * @var String 困难难度_波次  
+    */
+    public $levels_hard;
+
+    /**
+    * @var String 噩梦难度_波次  
+    */
+    public $levels_elite;
+
+    /**
+    * @var Int32 普通难度推荐等级 default(0) 
+    */
+    public $recommendLevel_normal;
+
+    /**
+    * @var Int32 困难难度推荐等级 default(0) 
+    */
+    public $recommendLevel_hard;
+
+    /**
+    * @var Int32 噩梦难度推荐等级 default(0) 
+    */
+    public $recommendLevel_elite;
+
+}
+

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

@@ -0,0 +1,57 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-12-21 14:42:25
+////////////////////
+
+
+/**
+ * Static Model gate_mainland 
+ */
+class sm_gate_mainland
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $id;
+
+    /**
+    * @var Int32    
+    */
+    public $landId;
+
+    /**
+    * @var String 关卡名称  
+    */
+    public $landName;
+
+    /**
+    * @var String 描述  
+    */
+    public $desc;
+
+    /**
+    * @var String 是否是主线 default(1) 
+    */
+    public $isMain;
+
+    /**
+    * @var String 包含的区域内容  
+    */
+    public $containZones;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $path;
+
+    /**
+    * @var DateTime 上次修改 default(CURRENT_TIMESTAMP) 
+    */
+    public $lastupdate;
+
+}
+

+ 38 - 0
Gameserver/Amfphp/model/Const/sm_gate_passCondition.php

@@ -0,0 +1,38 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2022-01-18 11:54:59
+////////////////////
+
+
+/**
+ * Static Model gate_passCondition 关卡-通关条件
+ */
+class sm_gate_passCondition
+{
+
+    /**
+    * @var Int32 通关条件类型
+    *  1.通关耗时不超过n秒, 参数: n秒
+    *  2.无人阵亡下通关, 参数: 无
+    *  3.唤灵师血量高于n%, 参数: n
+    *  4.装备指定言灵,参数: 言灵TypeId
+    *  5.至少装备n个指定x属性的言灵,参数: 数量n,元素类型s(见言灵表weaktype)
+    *  6.开启关卡内所有宝箱, 参数: 无 default(0) 
+    */
+    public $conditionType;
+
+    /**
+    * @var String 通关条件参数 default(0) 
+    */
+    public $conditionParas;
+
+    /**
+    * @var String 描述 default(0) 
+    */
+    public $desc;
+
+}
+

+ 37 - 0
Gameserver/Amfphp/model/Const/sm_gate_starreward.php

@@ -0,0 +1,37 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-12-21 14:42:26
+////////////////////
+
+
+/**
+ * Static Model gate_starreward 关卡—— 星级奖励
+ */
+class sm_gate_starreward
+{
+
+    /**
+    * @var Int32 章节id  
+    */
+    public $chapterId;
+
+    /**
+    * @var Int32 难度级别:1 普通, 2 困难, 3 精英. default(1) 
+    */
+    public $hardLevel;
+
+    /**
+    * @var Int32 星级  
+    */
+    public $star;
+
+    /**
+    * @var String 奖励物品  
+    */
+    public $reward;
+
+}
+

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

@@ -0,0 +1,42 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2022-09-20 14:29:22
+////////////////////
+
+
+/**
+ * Static Model gate_zone 关卡-区域表
+ */
+class sm_gate_zone
+{
+
+    /**
+    * @var Int32 区域编号  
+    */
+    public $zoneId;
+
+    /**
+    * @var String 区域名称  
+    */
+    public $zoneName;
+
+    /**
+    * @var String 描述/备注  
+    */
+    public $desc;
+
+    /**
+    * @var String 包含关卡列表  
+    */
+    public $contains;
+
+    /**
+    * @var String 解锁 玩家等级 条件  
+    */
+    public $playerLevelLimit;
+
+}
+

+ 107 - 0
Gameserver/Amfphp/model/Const/sm_gatelevel.php

@@ -0,0 +1,107 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-12-21 14:42:24
+////////////////////
+
+
+/**
+ * Static Model gatelevel 关卡波茨数据
+ */
+class sm_gatelevel
+{
+
+    /**
+    * @var Int32 波次ID  
+    */
+    public $levelId;
+
+    /**
+    * @var String 怪物列表(逗号分隔)  
+    */
+    public $enemys1;
+
+    /**
+    * @var Int32 bossID default(0) 
+    */
+    public $boss1;
+
+    /**
+    * @var String 【废弃2019年12月17日】  
+    */
+    public $parm;
+
+    /**
+    * @var String 【废弃2019年12月17日】对应的关卡ID  
+    */
+    public $gateId;
+
+    /**
+    * @var String 【废弃2019年12月17日】  
+    */
+    public $normal1;
+
+    /**
+    * @var String 【废弃2019年12月17日】  
+    */
+    public $hard1;
+
+    /**
+    * @var String 【废弃2019年12月17日】  
+    */
+    public $elite1;
+
+    /**
+    * @var String 【废弃2019年12月17日】  
+    */
+    public $enemys2;
+
+    /**
+    * @var Int32 【废弃2019年12月17日】是否为boss default(0) 
+    */
+    public $boss2;
+
+    /**
+    * @var String 【废弃2019年12月17日】  
+    */
+    public $normal2;
+
+    /**
+    * @var String 【废弃2019年12月17日】  
+    */
+    public $hard2;
+
+    /**
+    * @var String 【废弃2019年12月17日】  
+    */
+    public $elite2;
+
+    /**
+    * @var String 【废弃2019年12月17日】  
+    */
+    public $enemys3;
+
+    /**
+    * @var Int32 【废弃2019年12月17日】是否为boss default(0) 
+    */
+    public $boss3;
+
+    /**
+    * @var String 【废弃2019年12月17日】  
+    */
+    public $normal3;
+
+    /**
+    * @var String 【废弃2019年12月17日】  
+    */
+    public $hard3;
+
+    /**
+    * @var String 【废弃2019年12月17日】  
+    */
+    public $elite3;
+
+}
+

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

@@ -0,0 +1,57 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-12-21 14:37:41
+////////////////////
+
+
+/**
+ * Static Model gemProperty 宝石属性
+ */
+class sm_gemProperty
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $tid;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $id;
+
+    /**
+    * @var Int32 生命上限 default(0) 
+    */
+    public $additional_hpUpperlimit;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $additional_phyDamage;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $additional_magDamage;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $additional_critDamage;
+
+    /**
+    * @var Int32 技能冷却时间 default(0) 
+    */
+    public $skillCoolTs;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $etc;
+
+}
+

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

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

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

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

+ 37 - 0
Gameserver/Amfphp/model/Const/sm_goldexchange.php

@@ -0,0 +1,37 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-01-17 09:31:10
+////////////////////
+
+
+/**
+ * Static Model goldexchange 金币兑换
+ */
+class sm_goldexchange
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $id;
+
+    /**
+    * @var Int32 消耗钻石 default(0) 
+    */
+    public $cashCostNum;
+
+    /**
+    * @var Int32 兑换金币数量 default(0) 
+    */
+    public $goldNum;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $etc;
+
+}
+

+ 77 - 0
Gameserver/Amfphp/model/Const/sm_guide_module.php

@@ -0,0 +1,77 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2022-12-26 12:02:35
+////////////////////
+
+
+/**
+ * Static Model guide_module 功能引导模块
+ */
+class sm_guide_module
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $id;
+
+    /**
+    * @var UInt32 0强制 1非强制  
+    */
+    public $guidetype;
+
+    /**
+    * @var UInt32 唯一标识  
+    */
+    public $guideindex;
+
+    /**
+    * @var Int32 开始条件  
+    */
+    public $startevent;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $endevent;
+
+    /**
+    * @var String 模块UI名称  
+    */
+    public $moduleName;
+
+    /**
+    * @var String 按钮组件路径  
+    */
+    public $cmptPath;
+
+    /**
+    * @var Int32 点击类型 0 按钮 1空白  
+    */
+    public $clickType;
+
+    /**
+    * @var String 引导语  
+    */
+    public $guideDesc;
+
+    /**
+    * @var Int32 引导语位置 1左上 2右上 3左下 4右下  
+    */
+    public $position;
+
+    /**
+    * @var Int32 引导背包内的指定道具  
+    */
+    public $itemId;
+
+    /**
+    * @var Int32 引导下一步  
+    */
+    public $nextGuideIndex;
+
+}
+

+ 67 - 0
Gameserver/Amfphp/model/Const/sm_guide_trigger.php

@@ -0,0 +1,67 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-12-21 14:42:28
+////////////////////
+
+
+/**
+ * Static Model guide_trigger 引导触发
+ */
+class sm_guide_trigger
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $id;
+
+    /**
+    * @var Int32 组索引  
+    */
+    public $tid;
+
+    /**
+    * @var String 引导名称  
+    */
+    public $name;
+
+    /**
+    * @var Int32 触发类型 default(0) 
+    */
+    public $triggertype;
+
+    /**
+    * @var Int32 场景id default(4) 
+    */
+    public $senceid;
+
+    /**
+    * @var String 关联关卡数据  
+    */
+    public $gateid;
+
+    /**
+    * @var String 执行条件  
+    */
+    public $relation;
+
+    /**
+    * @var Int32 引导模式0=硬性,1=软引 default(0) 
+    */
+    public $mode;
+
+    /**
+    * @var String 步骤列表,以‘,’隔开,按顺序作为索引依次执行  
+    */
+    public $stepindexs;
+
+    /**
+    * @var Int32 优先级,越大越优先触发 default(0) 
+    */
+    public $priority;
+
+}
+

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

@@ -0,0 +1,42 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-12-21 14:42:28
+////////////////////
+
+
+/**
+ * Static Model guilddonatereward 公会捐献卡牌奖励
+ */
+class sm_guilddonatereward
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $cardType;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $exp;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $gold;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $maxDonateNum;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $contribution;
+
+}
+

+ 37 - 0
Gameserver/Amfphp/model/Const/sm_guildlevel.php

@@ -0,0 +1,37 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-12-21 14:42:28
+////////////////////
+
+
+/**
+ * Static Model guildlevel 公会等级相关数据
+ */
+class sm_guildlevel
+{
+
+    /**
+    * @var Int32 公会等级  
+    */
+    public $level;
+
+    /**
+    * @var Int32 人数上限  
+    */
+    public $maxPersoNum;
+
+    /**
+    * @var String 贡献度礼包开启设置  
+    */
+    public $contributionGift;
+
+    /**
+    * @var String 公会礼包(钻石礼包)开启设置  
+    */
+    public $guildGift;
+
+}
+

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

@@ -0,0 +1,72 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-12-21 14:42:29
+////////////////////
+
+
+/**
+ * Static Model guildlibao 公会礼包
+ */
+class sm_guildlibao
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $libaoid;
+
+    /**
+    * @var Int32 礼包购买需要的个人贡献度要求 default(0) 
+    */
+    public $donaterequire;
+
+    /**
+    * @var Int32 礼包价格1=金币2=钻石  
+    */
+    public $pricetype;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $price;
+
+    /**
+    * @var String 礼包的具体内容  
+    */
+    public $libaocontent;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $name;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $describe;
+
+    /**
+    * @var Int32 礼包购买。需要的公会等级 default(1) 
+    */
+    public $openguildlevel;
+
+    /**
+    * @var Int32 公会礼包是否对外开放购买 0 不能购买1 = 对外开放可购买 default(0) 
+    */
+    public $isOpen;
+
+    /**
+    * @var Int32 购买礼包 是否附赠额外奖励 0 = 不送1= 有附赠礼品 default(0) 
+    */
+    public $isSendReward;
+
+    /**
+    * @var String 附赠礼物的具体内容  
+    */
+    public $sendRewardStr;
+
+}
+

+ 387 - 0
Gameserver/Amfphp/model/Const/sm_hero.php

@@ -0,0 +1,387 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-02-10 16:25:57
+////////////////////
+
+
+/**
+ * Static Model hero 英雄模块
+ */
+class sm_hero
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $heroId;
+
+    /**
+    * @var String 英雄名称  
+    */
+    public $name;
+
+    /**
+    * @var String 技能特效id 方便查看  
+    */
+    public $skill;
+
+    /**
+    * @var Int32 0=小怪 1=英雄   1:意味着战斗中使用公共power default(1) 
+    */
+    public $roletype;
+
+    /**
+    * @var String 英雄/怪物图标  
+    */
+    public $icon;
+
+    /**
+    * @var String 人物描述  
+    */
+    public $desc;
+
+    /**
+    * @var String boss擅长描述  
+    */
+    public $proficientDesc;
+
+    /**
+    * @var Int32 图鉴分类 default(1) 
+    */
+    public $tujianId;
+
+    /**
+    * @var String 龙骨动画  
+    */
+    public $dragonBoneMod;
+
+    /**
+    * @var String 模型资源  
+    */
+    public $prefabRes;
+
+    /**
+    * @var Int32 珍惜程度(越大越珍惜) default(1) 
+    */
+    public $zhenxidu;
+
+    /**
+    * @var Int32 英雄排序 default(1) 
+    */
+    public $order;
+
+    /**
+    * @var Int32 是否对玩家开放,可以拥有(0不开,1 可以拥有) default(0) 
+    */
+    public $isOpenForPlayer;
+
+    /**
+    * @var Int32 是否可购买 1可以买 0 不开放购买 default(0) 
+    */
+    public $isCanBuy;
+
+    /**
+    * @var Int32 钻石定价 default(99999) 
+    */
+    public $cashPrice;
+
+    /**
+    * @var Int32 金币购买价格 default(9999999) 
+    */
+    public $goldPrice;
+
+    /**
+    * @var Int32 英雄解锁的条件限制ID default(1) 
+    */
+    public $unlockConditionId;
+
+    /**
+    * @var String 元素类型//0 空的//1 金 //2 冰 //3 火 //4 风 //5 雷 //6 毒 //7 黑暗 //8 亡灵 // 9 物理  
+    */
+    public $element;
+
+    /**
+    * @var String 职业类型  
+    */
+    public $zhiye;
+
+    /**
+    * @var Int32 默认的等阶 default(0) 
+    */
+    public $dengjie;
+
+    /**
+    * @var Int32 默认的星级 default(0) 
+    */
+    public $xingji;
+
+    /**
+    * @var Int32 基础血量 default(0) 
+    */
+    public $hp;
+
+    /**
+    * @var Int32 每段血量值 (主要是boss) default(0) 
+    */
+    public $hp_len;
+
+    /**
+    * @var Int32 能量值(言能)----Mp default(0) 
+    */
+    public $nengliangzhi;
+
+    /**
+    * @var Int32 物理攻击(基础物攻) default(0) 
+    */
+    public $wuligongji;
+
+    /**
+    * @var Int32 防御护甲(基础护甲) default(0) 
+    */
+    public $fangyuhujia;
+
+    /**
+    * @var Single 【废弃2019年12月4日】攻击速度--废弃  
+    */
+    public $gongjisudu;
+
+    /**
+    * @var Int32 法术强度(基础言攻) default(0) 
+    */
+    public $fashuqiangdu;
+
+    /**
+    * @var Int32 魔法抗性(基础言抗) default(0) 
+    */
+    public $mofakangxing;
+
+    /**
+    * @var String 1近战2远程  
+    */
+    public $atkType;
+
+    /**
+    * @var Single 【2019年12月17日】攻击范围 default(0) 
+    */
+    public $atkRange;
+
+    /**
+    * @var Single 【2019年12月17日】警戒范围 default(0) 
+    */
+    public $alarmRange;
+
+    /**
+    * @var Single 【2019年12月17日】攻击速度--2022-7-11废弃 default(0) 
+    */
+    public $atkSpeed;
+
+    /**
+    * @var Single 【2019年12月17日】移动速度 default(0) 
+    */
+    public $moveSpeed;
+
+    /**
+    * @var Int32 暴击(基础暴击) default(0) 
+    */
+    public $baoji;
+
+    /**
+    * @var Int32 2022-7-11抗暴力 default(0) 
+    */
+    public $kangbaoji;
+
+    /**
+    * @var Int32 【2022-7-11】言力 default(0) 
+    */
+    public $yanli;
+
+    /**
+    * @var Int32 释放技能需要的能量值(1000==1000毫秒) default(2000) 
+    */
+    public $npower;
+
+    /**
+    * @var Int32 每回合自身能量恢复速度 default(15) 
+    */
+    public $rpower;
+
+    /**
+    * @var String 【废弃2019年12月4日】 default(0) 
+    */
+    public $hp1;
+
+    /**
+    * @var String 【废弃2019年12月4日】  
+    */
+    public $nengliangzhi1;
+
+    /**
+    * @var String 【废弃2019年12月4日】物理攻击成长 default(0) 
+    */
+    public $wuligongji1;
+
+    /**
+    * @var String 【废弃2019年12月4日】防御护甲成长 default(0) 
+    */
+    public $fangyuhujia1;
+
+    /**
+    * @var String 【废弃2019年12月4日】法术强度成长  
+    */
+    public $fashuqiangdu1;
+
+    /**
+    * @var String 【废弃2019年12月4日】魔法抗性成长  
+    */
+    public $mofakangxing1;
+
+    /**
+    * @var String 【废弃2019年12月4日】攻击速度  
+    */
+    public $gongjisudu1;
+
+    /**
+    * @var String 【废弃2019年12月4日】暴击  
+    */
+    public $baoji1;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $normalSkill;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $manuSkill1;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $manuSkill2;
+
+    /**
+    * @var String 被动技能  
+    */
+    public $passiveSkill;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $leaderSkill;
+
+    /**
+    * @var String 【新】普攻(2020.10.21 改为逗号分隔的技能列表)  
+    */
+    public $skill_normal;
+
+    /**
+    * @var String 【新】必杀  
+    */
+    public $skill_bisha;
+
+    /**
+    * @var String 【新】闪避  
+    */
+    public $skill_shanbi;
+
+    /**
+    * @var String 【新】冲刺  
+    */
+    public $skill_chongci;
+
+    /**
+    * @var String 【新】极限闪避  
+    */
+    public $skill_jixianshanbi;
+
+    /**
+    * @var String 【新】队长技  
+    */
+    public $skill_leader;
+
+    /**
+    * @var String 【新】被动技  
+    */
+    public $skill_beidong;
+
+    /**
+    * @var String (界面 展示)音效  
+    */
+    public $normalSound;
+
+    /**
+    * @var String 技能释放(有用 )  
+    */
+    public $skillSound;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $beattackSound;
+
+    /**
+    * @var Int32 关联掉落表唯一id  
+    */
+    public $dropId;
+
+    /**
+    * @var String 人工智能行为树  
+    */
+    public $ai_btree;
+
+    /**
+    * @var Int32 弱体 金 default(0) 
+    */
+    public $weak_gold;
+
+    /**
+    * @var Int32 弱体 冰 default(0) 
+    */
+    public $weak_ice;
+
+    /**
+    * @var Int32 弱体 火 default(0) 
+    */
+    public $weak_fire;
+
+    /**
+    * @var Int32 弱体 风 default(0) 
+    */
+    public $weak_wind;
+
+    /**
+    * @var Int32 弱体 雷 default(0) 
+    */
+    public $weak_thunder;
+
+    /**
+    * @var Int32 弱体 毒  
+    */
+    public $weak_drug;
+
+    /**
+    * @var Int32 弱体 黑暗 default(0) 
+    */
+    public $weak_dark;
+
+    /**
+    * @var Int32 弱体 亡灵 default(0) 
+    */
+    public $weak_ghost;
+
+    /**
+    * @var Int32 弱体 物理 default(0) 
+    */
+    public $weak_phy;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $exp;
+
+}
+

+ 52 - 0
Gameserver/Amfphp/model/Const/sm_hero_levelexp.php

@@ -0,0 +1,52 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2022-07-22 11:58:14
+////////////////////
+
+
+/**
+ * Static Model hero_levelexp 英雄的升级——每级成长消耗经验需求表
+ */
+class sm_hero_levelexp
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $id;
+
+    /**
+    * @var Int32 当前等级  
+    */
+    public $level;
+
+    /**
+    * @var Int32 升级消耗金币--废弃 default(0) 
+    */
+    public $gold;
+
+    /**
+    * @var String 废弃  
+    */
+    public $costItems;
+
+    /**
+    * @var Int32 达到当前等级所需经验 default(100) 
+    */
+    public $needExp;
+
+    /**
+    * @var Int32 达到当前等级所需累计各级经验 default(0) 
+    */
+    public $requiredExp;
+
+    /**
+    * @var Int32 【废弃,暂时没有融合相关设定了】当前等级的卡牌, 被吃掉的时候价值的经验。 default(1) 
+    */
+    public $dogExp;
+
+}
+

+ 37 - 0
Gameserver/Amfphp/model/Const/sm_hero_levelexp_costitem.php

@@ -0,0 +1,37 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-12-21 14:42:31
+////////////////////
+
+
+/**
+ * Static Model hero_levelexp_costitem 英雄的升级——成长可消耗的道具表
+ */
+class sm_hero_levelexp_costitem
+{
+
+    /**
+    * @var Int32 物品id  
+    */
+    public $typeId;
+
+    /**
+    * @var String 名称  
+    */
+    public $name;
+
+    /**
+    * @var Int32 提供的经验值 default(0) 
+    */
+    public $dogExp;
+
+    /**
+    * @var Int32 消耗金币  
+    */
+    public $costGold;
+
+}
+

+ 77 - 0
Gameserver/Amfphp/model/Const/sm_heroextra_dengjie.php

@@ -0,0 +1,77 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-12-21 14:42:30
+////////////////////
+
+
+/**
+ * Static Model heroextra_dengjie 英雄的升阶(消耗金币+ 属性加成)
+ */
+class sm_heroextra_dengjie
+{
+
+    /**
+    * @var Int32 等阶索引  
+    */
+    public $typeId;
+
+    /**
+    * @var String 等阶名称  
+    */
+    public $name;
+
+    /**
+    * @var Int32 升阶消耗金币 default(0) 
+    */
+    public $cost;
+
+    /**
+    * @var String 等阶对应图标  
+    */
+    public $icon;
+
+    /**
+    * @var String 玩家名称等阶底框  
+    */
+    public $nameBgIcon;
+
+    /**
+    * @var String 玩家的大卡片的等阶边框  
+    */
+    public $borderIcon;
+
+    /**
+    * @var String 英雄正常的外包框  
+    */
+    public $heroBorder_normal;
+
+    /**
+    * @var String 英雄称号 对应的底  
+    */
+    public $heroChenghao_bgIcon;
+
+    /**
+    * @var String 物品等阶的外包框  
+    */
+    public $itemBorder_normal;
+
+    /**
+    * @var String 属性加成系数 default(1) 
+    */
+    public $attributeBonus;
+
+    /**
+    * @var Int32 当前等阶的 限制的玩家最小等级  
+    */
+    public $minLevel;
+
+    /**
+    * @var Int32 当前等阶的 限制的玩家最大等级  
+    */
+    public $maxLevel;
+
+}
+

+ 117 - 0
Gameserver/Amfphp/model/Const/sm_heroextra_level.php

@@ -0,0 +1,117 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-02-02 18:46:51
+////////////////////
+
+
+/**
+ * Static Model heroextra_level 英雄的升级(属性加成)
+ */
+class sm_heroextra_level
+{
+
+    /**
+    * @var Int32 英雄ID  
+    */
+    public $heroId;
+
+    /**
+    * @var Int32 碎片ID  
+    */
+    public $segID;
+
+    /**
+    * @var Int32 升阶所需碎片数量  
+    */
+    public $segNum;
+
+    /**
+    * @var Int32 星级 default(0) 
+    */
+    public $starLv;
+
+    /**
+    * @var Int32 当前星级下的等级限制 default(0) 
+    */
+    public $starlimitLv;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $promoteLv;
+
+    /**
+    * @var Int32 玩家等级限制 default(0) 
+    */
+    public $userlvLimit;
+
+    /**
+    * @var String 消耗道具  
+    */
+    public $costItems;
+
+    /**
+    * @var Int32 消耗的金币 default(0) 
+    */
+    public $gold;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $quality;
+
+    /**
+    * @var Single 生命值成长 default(0) 
+    */
+    public $hp;
+
+    /**
+    * @var Single 能量值(言能)成长 default(0) 
+    */
+    public $nengliangzhi;
+
+    /**
+    * @var Single 物理攻击(物攻)成长 default(0) 
+    */
+    public $wuligongji;
+
+    /**
+    * @var Single 防御护甲(护甲)成长 default(0) 
+    */
+    public $fangyuhujia;
+
+    /**
+    * @var Single 法术强度(言攻)成长 default(0) 
+    */
+    public $fashuqiangdu;
+
+    /**
+    * @var Single 魔法抗性(言抗)成长 default(0) 
+    */
+    public $mofakangxing;
+
+    /**
+    * @var Single 【废弃】敏捷 default(0) 
+    */
+    public $gongjisudu;
+
+    /**
+    * @var Single 暴击成长 default(0) 
+    */
+    public $baoji;
+
+    /**
+    * @var Single 抗暴力 default(0) 
+    */
+    public $kangbaoji;
+
+    /**
+    * @var Single 言力 default(0) 
+    */
+    public $yanli;
+
+}
+

+ 117 - 0
Gameserver/Amfphp/model/Const/sm_heroextra_level_tupo.php

@@ -0,0 +1,117 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-02-02 18:46:51
+////////////////////
+
+
+/**
+ * Static Model heroextra_level_tupo 
+ */
+class sm_heroextra_level_tupo
+{
+
+    /**
+    * @var Int32 英雄ID  
+    */
+    public $heroId;
+
+    /**
+    * @var Int32 碎片ID  
+    */
+    public $segID;
+
+    /**
+    * @var Int32 升阶所需碎片数量  
+    */
+    public $segNum;
+
+    /**
+    * @var Int32 星级 default(0) 
+    */
+    public $starLv;
+
+    /**
+    * @var Int32 当前星级下的等级限制 default(0) 
+    */
+    public $starlimitLv;
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $promoteLv;
+
+    /**
+    * @var Int32 玩家等级限制 default(0) 
+    */
+    public $userlvLimit;
+
+    /**
+    * @var String 消耗道具  
+    */
+    public $costItems;
+
+    /**
+    * @var Int32 消耗的金币 default(0) 
+    */
+    public $gold;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $quality;
+
+    /**
+    * @var Single 生命值成长 default(0) 
+    */
+    public $hp;
+
+    /**
+    * @var Single 能量值(言能)成长 default(0) 
+    */
+    public $nengliangzhi;
+
+    /**
+    * @var Single 物理攻击(物攻)成长 default(0) 
+    */
+    public $wuligongji;
+
+    /**
+    * @var Single 防御护甲(护甲)成长 default(0) 
+    */
+    public $fangyuhujia;
+
+    /**
+    * @var Single 法术强度(言攻)成长 default(0) 
+    */
+    public $fashuqiangdu;
+
+    /**
+    * @var Single 魔法抗性(言抗)成长 default(0) 
+    */
+    public $mofakangxing;
+
+    /**
+    * @var Single 【废弃】敏捷 default(0) 
+    */
+    public $gongjisudu;
+
+    /**
+    * @var Single 暴击成长 default(0) 
+    */
+    public $baoji;
+
+    /**
+    * @var Single 抗暴力 default(0) 
+    */
+    public $kangbaoji;
+
+    /**
+    * @var Single 言力 default(0) 
+    */
+    public $yanli;
+
+}
+

+ 27 - 0
Gameserver/Amfphp/model/Const/sm_heroextra_skill_lv_limit.php

@@ -0,0 +1,27 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-12-21 14:42:30
+////////////////////
+
+
+/**
+ * Static Model heroextra_skill_lv_limit 英雄技能升级的限定
+ */
+class sm_heroextra_skill_lv_limit
+{
+
+    /**
+    * @var Int32 技能等级  
+    */
+    public $skillLvl;
+
+    /**
+    * @var Int32 要求的英雄等级  
+    */
+    public $heroLevel;
+
+}
+

+ 67 - 0
Gameserver/Amfphp/model/Const/sm_item_additional.php

@@ -0,0 +1,67 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-12-21 14:37:48
+////////////////////
+
+
+/**
+ * Static Model item_additional 言灵附加随机表
+ */
+class sm_item_additional
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $id;
+
+    /**
+    * @var Int32 附加生命 default(0) 
+    */
+    public $hp;
+
+    /**
+    * @var Int32 攻击 default(0) 
+    */
+    public $atk;
+
+    /**
+    * @var Int32 防御 default(0) 
+    */
+    public $def;
+
+    /**
+    * @var Int32 暴击 default(0) 
+    */
+    public $crit;
+
+    /**
+    * @var Int32 物理攻击 default(0) 
+    */
+    public $phyAtk;
+
+    /**
+    * @var Int32 防御护甲 default(0) 
+    */
+    public $phyDef;
+
+    /**
+    * @var Int32 攻击速度 default(0) 
+    */
+    public $atkSpeed;
+
+    /**
+    * @var Int32 法术强度 default(0) 
+    */
+    public $fashuqiangdu;
+
+    /**
+    * @var Int32 魔法抗性 default(0) 
+    */
+    public $mofakangxing;
+
+}
+

+ 157 - 0
Gameserver/Amfphp/model/Const/sm_item_base.php

@@ -0,0 +1,157 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2023-06-14 15:21:39
+////////////////////
+
+
+/**
+ * Static Model item_base 道具通用字段表
+ */
+class sm_item_base
+{
+
+    /**
+    * @var Int32 查询用的ID  
+    */
+    public $typeId;
+
+    /**
+    * @var String 物品名称 default(物品名称) 
+    */
+    public $name;
+
+    /**
+    * @var String 物品icon名  
+    */
+    public $icon;
+
+    /**
+    * @var String 大图标  
+    */
+    public $bigIcon;
+
+    /**
+    * @var String 物品大图片名  
+    */
+    public $img;
+
+    /**
+    * @var String 言灵专用  
+    */
+    public $yanlingIcon;
+
+    /**
+    * @var String 物品模型资源  
+    */
+    public $res;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $pfbRes;
+
+    /**
+    * @var String 物品描述 default(物品描述) 
+    */
+    public $itemDesc;
+
+    /**
+    * @var Int32  物品大归类 0 系统 1武器,2碎片,3材料, 4 言灵, 5 礼包,   8头像框 default(0) 
+    */
+    public $itemType;
+
+    /**
+    * @var Int32 物品大归类 0 系统 1武器,2碎片,3材料, 4 言灵
+    *  物品小分类,
+    *  详细区分每类物品的作用: 
+    *      Gold = 1, // 金币
+    *      Gem = 2,  // 钻石
+    *      Weapon = 101,             // 武器
+    *      Segment = 201,            // 英雄碎片
+    *      YanlingBookSegement =202, // 言灵书碎片
+    *      BuffCard = 301,           // 消耗品 
+    *   经验卡
+    *      Package = 302,            // 消耗品 
+    *   礼包
+    *      Pill = 303,               // 药品(体力)
+    *      Gene = 311,               // 基础材料 
+    *   基因(角色经验丹)
+    *      StrengthStone = 312,      // 基础材料 
+    *   强化石(用于武器、言灵强化)
+    *      AdvancedStone = 321,      // 进阶材料 
+    *   进阶石(用于武器、言灵升阶)
+    *      AdvancedFineStone = 322,  // 进阶材料 
+    *   进阶 精华石(用于武器、言灵的升阶)
+    *      ForgingMaterial = 323,    // 锻造材料 
+    *   用于武器言灵锻造
+    *      Hunqi = 324,              //魂器
+    *      ElementTuPoMaterial = 325,//元素突破材料
+    *      professionTuPoMaterial = 326,//职业突破材料
+    *      YanLingAdvancedStone = 327,//言灵的突破石
+    *      YanLingAdvancedMaterial = 328,//言灵的突破材料
+    *      WuqiAdvancedStone = 329,      //武器的突破石
+    *      WuqiAdvancedMaterial = 330,   //武器的突破材料
+    *      Box = 331,                 // 活动道具 
+    *   宝箱
+    *      // 备注
+    *      BattleItem_HP = 341,       // 战场道具 
+    *   血瓶
+    *   default(0) 
+    */
+    public $subType;
+
+    /**
+    * @var Int32 道具可叠加展示的数量上限, 0 代表不可叠加 default(0) 
+    */
+    public $pileNum;
+
+    /**
+    * @var Int32 是否可以从包裹中卖掉 default(0) 
+    */
+    public $canSell;
+
+    /**
+    * @var Int32 道具的回收(从包裹中卖掉)价格 default(0) 
+    */
+    public $sellPrice;
+
+    /**
+    * @var Int32 是否可以在包裹中使用 default(0) 
+    */
+    public $canUse;
+
+    /**
+    * @var Int32 一次可以使用的数量上限 default(0) 
+    */
+    public $maxUseNum;
+
+    /**
+    * @var Int32 品质/稀有度 1白2绿3蓝4蓝+5紫6紫+7橙8橙+9红10红+11金12金+ default(1) 
+    */
+    public $quality;
+
+    /**
+    * @var String item的关卡途径  
+    */
+    public $channel;
+
+    /**
+    * @var String 竞拍初始价格不得低于此价格 default(0) 
+    */
+    public $auctionPrice;
+
+    /**
+    * @var String 一口价  
+    */
+    public $buyoutPrice;
+
+    /**
+    * @var Int32 是否可拍卖 default(0) 
+    */
+    public $canAuction;
+
+}
+

+ 27 - 0
Gameserver/Amfphp/model/Const/sm_item_box.php

@@ -0,0 +1,27 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2021-12-21 14:42:32
+////////////////////
+
+
+/**
+ * Static Model item_box 宝箱类道具
+ */
+class sm_item_box
+{
+
+    /**
+    * @var Int32 查询用的ID  
+    */
+    public $typeId;
+
+    /**
+    * @var String 奖品池类型id,(boxPool里面的dropType),逗号分隔  
+    */
+    public $contents;
+
+}
+

Some files were not shown because too many files changed in this diff