pigflower 6 dienas atpakaļ
revīzija
d3c6af2760
100 mainītis faili ar 4012 papildinājumiem un 0 dzēšanām
  1. 48 0
      .gitignore
  2. 394 0
      README.md
  3. 15 0
      apollo_60000/serverlist - 副本.json
  4. 15 0
      apollo_60000/serverlist.json
  5. 10 0
      apollo_60000/stop_server_list.json
  6. 12 0
      apollo_60000/update_server_config.json
  7. 28 0
      data/ClientScript/Protocol/generated/DeepCore.Protocol.Notify.lua
  8. 28 0
      data/ClientScript/Protocol/generated/DeepCore.Protocol.Request.lua
  9. 32 0
      data/ClientScript/Protocol/generated/DeepCore.Protocol.Response.lua
  10. 28 0
      data/ClientScript/Protocol/generated/DeepCore.SerialData.lua
  11. 30 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.AchieveIconData.lua
  12. 50 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.AdminRoleInfo.lua
  13. 30 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.AstrologyRemindData.lua
  14. 34 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.AtlantisActivityListDtoData.lua
  15. 36 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.AtlantisActivityNormalRewardConfig.lua
  16. 42 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.AtlantisActivityTargetRewardConfig.lua
  17. 38 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.AtlantisActivityValleyRuinsDtoData.lua
  18. 32 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.AtlantisActivityValleyRuinsRewardHistoryDtoData.lua
  19. 34 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.BossChallengeActivityInfoDtoData.lua
  20. 32 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.BossChallengeActivityRecordItemDtoData.lua
  21. 34 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.CanHireMercenaryData.lua
  22. 30 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ChatMessage.lua
  23. 36 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ChatPlayer.lua
  24. 34 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientActivityStateData.lua
  25. 30 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaArtifactData.lua
  26. 32 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaEquipData.lua
  27. 40 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaHeroData.lua
  28. 32 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaHeroFullData.lua
  29. 50 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaHighendBattleResultData.lua
  30. 52 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaHighendRecordData.lua
  31. 36 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaPinnacleFightHeroData.lua
  32. 34 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaPinnacleFightRecordData.lua
  33. 36 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaPinnacleFightRoleData.lua
  34. 52 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaPinnacleGloryRankData.lua
  35. 32 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaPinnaclePeriodData.lua
  36. 40 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaPinnacleQuizRecordData.lua
  37. 32 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaPinnacleQuizStatisticsData.lua
  38. 42 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaValorBattleResultData.lua
  39. 52 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaValorRecordData.lua
  40. 44 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientCheckMultiRoleData.lua
  41. 70 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientCheckRoleData.lua
  42. 34 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientGuildDungeonLogData.lua
  43. 36 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientGuildSecretCaveLegendScore.lua
  44. 36 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientGuildWarriorTreasureOverView.lua
  45. 32 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientMuteState.lua
  46. 56 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientRoleArenaHighendData.lua
  47. 50 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientRoleArenaPinnacleData.lua
  48. 46 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientRoleArenaPinnacleEliminationData.lua
  49. 62 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientRoleArenaValorData.lua
  50. 72 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientRoleData.lua
  51. 42 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientRoleListItemData.lua
  52. 46 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientSecretCaveBaseRoleSnap.lua
  53. 30 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientSecretCaveDream.lua
  54. 42 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientSecretCaveEntry.lua
  55. 36 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientSecretCaveRank.lua
  56. 42 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientServerData.lua
  57. 32 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientSoulEchoRecordData.lua
  58. 48 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientStageHistoryRoleInfo.lua
  59. 38 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientVoidGuestData.lua
  60. 44 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientWishSummonBossChallengeRankItem.lua
  61. 42 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientWorldMapRoleInfo.lua
  62. 32 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.DotDataItemInfo.lua
  63. 32 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.DrawRecord.lua
  64. 30 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.DropItemSet.lua
  65. 34 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.DropItemSetDynamic.lua
  66. 36 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.EquipDigInfo.lua
  67. 48 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.FansPlayerData.lua
  68. 36 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.FettersHeroBuffData.lua
  69. 30 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.FindPlayerData.lua
  70. 32 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ForeignAidHeroUseInfo.lua
  71. 34 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ForeignAidItemData.lua
  72. 30 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.FormationRoleData.lua
  73. 32 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.FriendData.lua
  74. 46 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.GuildHunterBossInfo.lua
  75. 34 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.GuildLayerRankScore.lua
  76. 32 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.GuildSecretCaveInfo.lua
  77. 44 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.GuildWarriorTreasureEntry.lua
  78. 44 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.HeroDigInfo.lua
  79. 32 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.HeroFullData.lua
  80. 36 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.HeroHeadData.lua
  81. 40 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.HistoricalArchivesItemData.lua
  82. 30 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.HistoricalArchivesListDataDto.lua
  83. 42 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ItemInstanceData.lua
  84. 28 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ItemInstanceDataAddition.lua
  85. 30 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.MagicTopHatRewardHistoryDtoData.lua
  86. 34 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.MarketPackageAward.lua
  87. 30 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.MarketPackageData.lua
  88. 32 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.MarketPushData.lua
  89. 38 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.MarketSubTab.lua
  90. 30 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.MarketTab.lua
  91. 40 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.MercenaryAppointPlayerData.lua
  92. 36 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.MercenaryData.lua
  93. 30 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.PlayerAppointMercenaryData.lua
  94. 28 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.PlayerScoreRankData.lua
  95. 36 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.PlayerTempMercenaryData.lua
  96. 28 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.RankHeroScoreData.lua
  97. 28 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.RankLowestMarkData.lua
  98. 46 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.RankPlayerData.lua
  99. 28 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.RankRewardData.lua
  100. 30 0
      data/ClientScript/Protocol/generated/OpenCards.Core.Data.ServerWishSummonBossChallengeRankData.lua

+ 48 - 0
.gitignore

@@ -0,0 +1,48 @@
+# macOS
+.DS_Store
+.AppleDouble
+.LSOverride
+._*
+.Spotlight-V100
+.Trashes
+
+# Visual Studio
+.vs/
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+*.userprefs
+
+# JetBrains Rider / IntelliJ
+.idea/
+*.iml
+
+# .NET build outputs
+[Bb]in/
+[Oo]bj/
+*.dll
+*.exe
+*.pdb
+*.nupkg
+*.snupkg
+*.cache
+*.tmp
+
+# Output directories
+_output*/
+output*/
+
+# Logs
+*.log
+logs/
+
+# Redis
+*.rdb
+
+# Data archives
+*.zip
+
+# Secrets / config overrides
+appsettings.*.json
+!appsettings.example.json

+ 394 - 0
README.md

@@ -0,0 +1,394 @@
+# 简炉远镇 游戏服务端
+
+## 项目结构
+
+```
+jianyuyuanzhen/
+├── houduan/
+│   ├── cccz/
+│   │   ├── server/                        # 主服务端
+│   │   │   ├── Workspace.sln              # VS2019 解决方案入口
+│   │   │   ├── src/
+│   │   │   │   ├── core/                  # 核心库(OpenCards.Core 等)
+│   │   │   │   ├── server/                # 业务服务端源码(29 个工程)
+│   │   │   │   ├── library/               # 预编译框架依赖(DeepCore / DeepFrozen)
+│   │   │   │   ├── data/
+│   │   │   │   │   ├── ServerData/        # 游戏配置/模板数据
+│   │   │   │   │   └── ClientScript/      # Lua 业务逻辑脚本(4361 个文件)
+│   │   │   │   ├── _output.server/        # 编译产物输出目录
+│   │   │   │   │   └── dev/               # 启动配置与脚本
+│   │   │   │   ├── afk.sql                # 主库建库脚本(orm / dbpay)
+│   │   │   │   └── afk_gm.sql             # GM 后台库脚本(afk_gm)
+│   │   │   └── DeepMMO/                   # 底层框架源码
+│   │   └── data/ClientScript/             # 协议文件
+│   └── phpstudy_pro/WWW/apollo_60000/     # Nginx 静态文件(服务器列表等)
+└── server_battle/                         # 战斗服(独立工程,.NET Framework 4.6)
+    ├── server_battle.sln
+    ├── GameLogic/
+    ├── ServerLib/
+    └── _output.battle.server/
+```
+
+## 节点架构
+
+| 启动顺序 | 节点 | 说明 | 端口 |
+|:---:|---|---|---|
+| 1 | `NameServer` | 根节点,节点注册中心 | RPC 17000 |
+| 2 | `PublicNode` | 公会 / 支付 / 聊天 / GM 后台 | RPC 17060,HTTP 18082 / 18088 / 18089 |
+| 3 | `GameNode1` | 游戏逻辑,客户端 TCP 连接入口 | RPC 17020,TCP 19821 |
+| 4 | `AccountNode1` | 账号 / 登录服务 | RPC 17010,HTTP 18081 |
+| 独立 | `BattleServer` | 战斗结算(独立进程) | HTTP 8088 |
+
+---
+
+# Mac 本地开发环境
+
+## 依赖安装
+
+```bash
+# .NET 5.0 SDK
+brew install --cask dotnet-sdk
+
+# 验证版本(需要 5.x)
+dotnet --version
+
+# MySQL、Redis、Nginx
+brew install mysql@5.7 redis nginx
+
+# libuv(服务端网络层依赖)
+brew install libuv
+
+# 启动服务并设置开机自启
+brew services start mysql@5.7
+brew services start redis
+brew services start nginx
+```
+
+## 初始化数据库
+
+```bash
+# 设置 MySQL root 密码为 123456(与配置文件一致)
+mysql_secure_installation
+
+mysql -u root -p < houduan/cccz/server/src/afk.sql
+mysql -u root -p < houduan/cccz/server/src/afk_gm.sql
+```
+
+## 配置 Nginx(服务器列表)
+
+编辑 Nginx 配置(`/opt/homebrew/etc/nginx/nginx.conf` 或新增 conf.d 文件):
+
+```nginx
+server {
+    listen 80;
+    server_name localhost;
+    root /path/to/jianyuyuanzhen/houduan/phpstudy_pro/WWW;
+    location /apollo_60000/ {
+        add_header Content-Type application/json;
+        try_files $uri =404;
+    }
+}
+```
+
+```bash
+nginx -t && brew services restart nginx
+# 验证:curl http://localhost/apollo_60000/serverlist.json
+```
+
+## 编译主服务端
+
+Mac 下使用 `dotnet build` 命令行编译,无需 Visual Studio。
+
+```bash
+cd houduan/cccz/server/src/server/OpenCards.Server.DotNetCore
+
+dotnet build OpenCards.Server.DotNetCore.csproj -c Debug
+```
+
+> **注意**:编译完成后 PostBuild 阶段会调用 `copydll.bat`,在 Mac 上会报错,这是正常的——
+> 实际 DLL 已通过 `<OutputPath>` 配置直接输出到 `_output.server/`,忽略该报错即可。
+
+## 配置启动参数
+
+编辑 `houduan/cccz/server/src/_output.server/dev/_launch_server.xml`,
+将 `ServerListUrl`、`client_storage_url` 等地址改为本机 Nginx 地址:
+
+```xml
+<ServerListUrl>http://127.0.0.1/apollo_60000/serverlist.json</ServerListUrl>
+<client_storage_url>http://127.0.0.1/apollo_60000/</client_storage_url>
+<StopServerDataURL>http://127.0.0.1/apollo_60000/stop_server_list.json</StopServerDataURL>
+<UpdateServerConfig>http://127.0.0.1/apollo_60000/update_server_config.json</UpdateServerConfig>
+```
+
+MySQL 密码确认与配置文件一致(默认 `123456`):
+
+```xml
+<Mysql>server=127.0.0.1;User ID=root;Password=123456;database=orm</Mysql>
+```
+
+## 启动主服务端
+
+**开 4 个终端窗口,按顺序执行**:
+
+```bash
+# 公共变量
+export DEV=houduan/cccz/server/src/_output.server/dev
+export DLL=houduan/cccz/server/src/_output.server/OpenCards.Server.DotNetCore.dll
+
+# 终端 1 — NameServer(先启动)
+cd $DEV && dotnet ../$DLL ./_launch_server.xml NameServer
+
+# 终端 2 — PublicNode
+cd $DEV && dotnet ../$DLL ./_launch_server.xml PublicNode
+
+# 终端 3 — GameNode
+cd $DEV && dotnet ../$DLL ./_launch_server.xml GameNode1 global.RealmID=1 global.ServerID=1
+
+# 终端 4 — AccountNode(最后启动)
+cd $DEV && dotnet ../$DLL ./_launch_server.xml AccountNode1
+```
+
+## 启动战斗服(Mac 需要 Mono)
+
+战斗服基于 .NET Framework 4.6,Mac 下用 Mono 运行:
+
+```bash
+brew install mono
+
+# 修改 Config.json,luaRoot 改为本机路径
+cat > server_battle/_output.battle.server/Config.json << 'EOF'
+{
+    "ip": "127.0.0.1",
+    "port": 8088,
+    "luaRoot": "/absolute/path/to/houduan/cccz/server/src/data/ClientScript/"
+}
+EOF
+
+cd server_battle/_output.battle.server
+mono GameLogic.exe
+```
+
+---
+
+# Linux 部署
+
+## 1. 安装系统依赖
+
+```bash
+# Ubuntu / Debian
+apt update
+apt install -y mysql-server redis-server nginx libuv1 mono-complete
+
+# CentOS / RHEL
+yum install -y mysql-server redis nginx libuv mono-complete
+```
+
+## 2. 安装 .NET 5.0
+
+```bash
+wget https://download.visualstudio.microsoft.com/download/pr/820db713-c9a5-466e-b72a-16f2f5ed00e2/628aa2a75f6aa270e77f4a83b3742fb8/dotnet-sdk-5.0.100-linux-x64.tar.gz
+
+mkdir -p $HOME/dotnet
+tar zxf dotnet-sdk-5.0.100-linux-x64.tar.gz -C $HOME/dotnet
+
+echo 'export DOTNET_ROOT=$HOME/dotnet' >> ~/.bashrc
+echo 'export PATH=$PATH:$HOME/dotnet' >> ~/.bashrc
+source ~/.bashrc
+
+dotnet --version   # 确认输出 5.0.x
+```
+
+## 3. 初始化数据库
+
+```bash
+mysql -u root -p < houduan/cccz/server/src/afk.sql
+mysql -u root -p < houduan/cccz/server/src/afk_gm.sql
+```
+
+## 4. 上传服务端文件
+
+在本机(Windows/Mac)完成编译后上传到服务器:
+
+```bash
+# 编译产物
+scp -r houduan/cccz/server/src/_output.server/ user@server:/opt/gameserver/_output.server/
+
+# Lua 脚本和游戏数据
+scp -r houduan/cccz/server/src/data/ user@server:/opt/gameserver/data/
+```
+
+目标服务器目录结构:
+```
+/opt/gameserver/
+├── _output.server/
+│   ├── OpenCards.Server.DotNetCore.dll
+│   ├── dev/
+│   │   └── _launch_server.xml
+│   └── logfile/
+└── data/
+    ├── ServerData/
+    └── ClientScript/
+```
+
+## 5. 修改启动配置
+
+编辑 `/opt/gameserver/_output.server/dev/_launch_server.xml`:
+
+```xml
+<!-- 服务器列表地址改为服务器公网 IP -->
+<ServerListUrl>http://<公网IP>/apollo_60000/serverlist.json</ServerListUrl>
+<client_storage_url>http://<公网IP>/apollo_60000/</client_storage_url>
+<StopServerDataURL>http://<公网IP>/apollo_60000/stop_server_list.json</StopServerDataURL>
+<UpdateServerConfig>http://<公网IP>/apollo_60000/update_server_config.json</UpdateServerConfig>
+
+<!-- MySQL 密码 -->
+<Mysql>server=127.0.0.1;User ID=root;Password=YOUR_PASSWORD;database=orm</Mysql>
+```
+
+`TemplateRoot` 使用相对路径 `../../data/ServerData/`,
+确保 `_output.server/dev/` 和 `data/` 在同一父目录下即可,无需修改。
+
+## 6. 配置 Nginx
+
+```bash
+mkdir -p /var/www/html/apollo_60000
+cp houduan/phpstudy_pro/WWW/apollo_60000/* /var/www/html/apollo_60000/
+
+cat > /etc/nginx/conf.d/gameserver.conf << 'EOF'
+server {
+    listen 80;
+    server_name _;
+    root /var/www/html;
+    location /apollo_60000/ {
+        add_header Content-Type application/json;
+        try_files $uri =404;
+    }
+}
+EOF
+
+nginx -t && systemctl reload nginx
+```
+
+## 7. 启动主服务端
+
+```bash
+BASE=/opt/gameserver/_output.server
+DLL=$BASE/OpenCards.Server.DotNetCore.dll
+CFG=$BASE/dev/_launch_server.xml
+
+# 按顺序后台启动(建议使用 screen 或 systemd 管理)
+cd $BASE/dev
+
+nohup dotnet $DLL $CFG NameServer  > $BASE/logfile/nameserver.log 2>&1 &
+sleep 3
+
+nohup dotnet $DLL $CFG PublicNode  > $BASE/logfile/publicnode.log 2>&1 &
+sleep 3
+
+nohup dotnet $DLL $CFG GameNode1 global.RealmID=1 global.ServerID=1 > $BASE/logfile/gamenode1.log 2>&1 &
+sleep 3
+
+nohup dotnet $DLL $CFG AccountNode1 > $BASE/logfile/accountnode.log 2>&1 &
+```
+
+> 各节点日志也会自动写入 `_output.server/logfile/` 目录(log4net 配置)。
+
+## 8. 启动战斗服
+
+```bash
+# 修改 luaRoot 为 Linux 路径
+cat > server_battle/_output.battle.server/Config.json << 'EOF'
+{
+    "ip": "0.0.0.0",
+    "port": 8088,
+    "luaRoot": "/opt/gameserver/data/ClientScript/"
+}
+EOF
+
+cd server_battle/_output.battle.server
+nohup mono GameLogic.exe > /var/log/battleserver.log 2>&1 &
+```
+
+## 9. 用 systemd 管理进程(推荐)
+
+以 NameServer 为例,创建 `/etc/systemd/system/gameserver-name.service`:
+
+```ini
+[Unit]
+Description=Game NameServer
+After=network.target
+
+[Service]
+WorkingDirectory=/opt/gameserver/_output.server/dev
+ExecStart=/root/dotnet/dotnet /opt/gameserver/_output.server/OpenCards.Server.DotNetCore.dll ./_launch_server.xml NameServer
+Restart=on-failure
+RestartSec=5
+
+[Install]
+WantedBy=multi-user.target
+```
+
+```bash
+systemctl daemon-reload
+systemctl enable gameserver-name
+systemctl start gameserver-name
+```
+
+其余节点(PublicNode / GameNode1 / AccountNode1)按同样方式创建对应 service 文件。
+
+---
+
+## 端口规划
+
+| 服务 | 端口 | 协议 |
+|---|---|---|
+| NameServer | 17000 | RPC |
+| AccountNode RPC | 17010 | RPC |
+| GameNode1 RPC | 17020 | RPC |
+| PublicNode RPC | 17060 | RPC |
+| AccountServer(登录) | 18081 | HTTP |
+| PayServer(支付) | 18082 | HTTP |
+| AdminService(GM 接口) | 18088 | HTTP |
+| ChatService | 18089 | HTTP |
+| ConnectorService(客户端) | 19821 | TCP |
+| BattleServer(战斗结算) | 8088 | HTTP |
+| Nginx(服务器列表) | 80 | HTTP |
+| MySQL | 3306 | TCP |
+| Redis | 6379 | TCP |
+
+---
+
+## 前端调试连接速查
+
+前端/客户端只需关心以下几个对外暴露的地址,其余 RPC 端口是服务端内部通信,不需要配置。
+
+### 本机调试(服务端跑在本地)
+
+| 用途 | 地址 | 备注 |
+|---|---|---|
+| 服务器列表 | `http://43.226.57.217/apollo_60000/serverlist.json` | Nginx 静态文件,客户端启动时拉取 |
+| 登录 / 账号接口 | `http://43.226.57.217:18081` | AccountNode HTTP,登录、注册等接口 |
+| 游戏逻辑连接 | `43.226.57.217:19821` | TCP 长连接,游戏主逻辑入口 |
+| 战斗结算 | `http://43.226.57.217:8088` | BattleServer HTTP,战斗结果上报 |
+| GM 后台 | `http://43.226.57.217:18088` | AdminService,仅调试用 |
+
+### 连接远程服务器
+
+将上表中的 `127.0.0.1` 替换为服务器公网 IP 即可。例如服务器 IP 为 `1.2.3.4`:
+
+```
+服务器列表:http://1.2.3.4/apollo_60000/serverlist.json
+登录接口:  http://1.2.3.4:18081
+游戏连接:  1.2.3.4:19821  (TCP)
+战斗服:    http://1.2.3.4:8088
+```
+
+> **防火墙注意**:远程服务器需要开放 `80`、`18081`、`19821`、`8088` 端口,其余端口(17000~17060)是内网 RPC,不需要对外暴露。
+
+## 注意事项
+
+- 4 个主节点**必须按顺序启动**,NameServer 最先、AccountNode 最后,否则节点注册会失败
+- `TemplateRoot` 使用相对路径,工作目录必须在 `_output.server/dev/` 下执行 dotnet 命令
+- 战斗服 `Config.json` 中的 `luaRoot` 不同系统路径格式不同:Windows 用 `\\`,Mac/Linux 用 `/`
+- `serverlist.json` 中的 `address` 字段需与 `ConnectorService` 实际监听的 `IP:Port`(默认 19821)一致
+- `update_server_config.json` 中的 `loginServerUrl` 需指向 AccountNode 的 HTTP 地址(默认端口 18081)

+ 15 - 0
apollo_60000/serverlist - 副本.json

@@ -0,0 +1,15 @@
+[
+  {
+    "id": 1,
+    "index": 1,
+    "name": "測試服1區",
+    "address": "116.196.97.242:19821",
+    "state": 1,
+   "is_open": true,
+   "capacity":2000,
+    "serverid": 1,
+    "groupid": 1,
+    "note": "测试服"
+  }
+
+]

+ 15 - 0
apollo_60000/serverlist.json

@@ -0,0 +1,15 @@
+[
+  {
+    "id": 1,
+    "index": 0,
+    "name": "测试服1区",
+    "address": "47.109.111.123:19821",
+    "state": 1,
+   "is_open": true,
+   "capacity":2000,
+    "serverid": 1,
+    "groupid": 1,
+    "note": "测试服"
+  }
+
+]

+ 10 - 0
apollo_60000/stop_server_list.json

@@ -0,0 +1,10 @@
+[
+  {
+    "id": 1081,
+    "server_id": 2,
+    "state": 2,
+    "start_time": 1662804900,
+    "stop_time": 1662806700,
+    "advance_send_email_time": 3
+  }
+]

+ 12 - 0
apollo_60000/update_server_config.json

@@ -0,0 +1,12 @@
+[
+  {
+      "productLine": "dev",
+      "deviceType": "android",
+      "targetAppVersion": "0.0.0",
+      "forceUpdateUrl": "https://www.baidu.com/sov_{0}_{1}.apk",
+      "resServerUrlPrefix": "http://www.baidu.com/dev",
+      "loginServerUrl": "http://47.109.111.123:18081/",
+      "appVersionReview": "0.0.0",
+      "loginServerUrlReview": "http://47.109.111.123:18081/"
+  }
+]

+ 28 - 0
data/ClientScript/Protocol/generated/DeepCore.Protocol.Notify.lua

@@ -0,0 +1,28 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- DeepCore, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- DeepCore.Protocol.Notify
+
+
+local _M = {MessageID = 0x00000000,Name = 'DeepCore.Protocol.Notify'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00000000] = _M
+Protocol.Serializer.StringDefined['DeepCore.Protocol.Notify'] = _M
+
+function _M.Write(output,data)
+		
+	
+end
+
+
+function _M.Read(input,data)
+		
+	
+end
+
+

+ 28 - 0
data/ClientScript/Protocol/generated/DeepCore.Protocol.Request.lua

@@ -0,0 +1,28 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- DeepCore, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- DeepCore.Protocol.Request
+
+
+local _M = {MessageID = 0x00000000,Name = 'DeepCore.Protocol.Request'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00000000] = _M
+Protocol.Serializer.StringDefined['DeepCore.Protocol.Request'] = _M
+
+function _M.Write(output,data)
+		
+	
+end
+
+
+function _M.Read(input,data)
+		
+	
+end
+
+

+ 32 - 0
data/ClientScript/Protocol/generated/DeepCore.Protocol.Response.lua

@@ -0,0 +1,32 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- DeepCore, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- DeepCore.Protocol.Response
+
+
+local _M = {MessageID = 0x00000000,Name = 'DeepCore.Protocol.Response'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00000000] = _M
+Protocol.Serializer.StringDefined['DeepCore.Protocol.Response'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.s2c_code)
+	output:PutUTF(data.s2c_msg)
+	output:PutOBJ(data.InnerResponse,'DeepCore.Protocol.Response')
+end
+
+
+function _M.Read(input,data)
+		
+	data.s2c_code = input:GetS32()
+	data.s2c_msg = input:GetUTF()
+	data.InnerResponse = input:GetOBJ('DeepCore.Protocol.Response')
+end
+
+

+ 28 - 0
data/ClientScript/Protocol/generated/DeepCore.SerialData.lua

@@ -0,0 +1,28 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- DeepCore, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- DeepCore.SerialData
+
+
+local _M = {MessageID = 0x00000000,Name = 'DeepCore.SerialData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00000000] = _M
+Protocol.Serializer.StringDefined['DeepCore.SerialData'] = _M
+
+function _M.Write(output,data)
+		
+	
+end
+
+
+function _M.Read(input,data)
+		
+	
+end
+
+

+ 30 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.AchieveIconData.lua

@@ -0,0 +1,30 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.AchieveIconData
+
+
+local _M = {MessageID = 0x00023103,Name = 'OpenCards.Core.Data.AchieveIconData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023103] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.AchieveIconData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.X)
+	output:PutS32(data.Y)
+end
+
+
+function _M.Read(input,data)
+		
+	data.X = input:GetS32()
+	data.Y = input:GetS32()
+end
+
+

+ 50 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.AdminRoleInfo.lua

@@ -0,0 +1,50 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.AdminRoleInfo
+
+
+local _M = {MessageID = 0x00040301,Name = 'OpenCards.Core.Data.AdminRoleInfo'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00040301] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.AdminRoleInfo'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.RoleUUID)
+	output:PutUTF(data.RoleName)
+	output:PutS32(data.NumberID)
+	output:PutUTF(data.ServerID)
+	output:PutUTF(data.ServerName)
+	output:PutS64(data.Coin)
+	output:PutS64(data.Diamond)
+	output:PutUTF(data.Platform)
+	output:PutS64(data.CreateTimeStamp)
+	output:PutS64(data.LastLoginTimeStamp)
+	output:PutUTF(data.DeviceId)
+	output:PutUTF(data.AccountUUID)
+end
+
+
+function _M.Read(input,data)
+		
+	data.RoleUUID = input:GetUTF()
+	data.RoleName = input:GetUTF()
+	data.NumberID = input:GetS32()
+	data.ServerID = input:GetUTF()
+	data.ServerName = input:GetUTF()
+	data.Coin = input:GetS64()
+	data.Diamond = input:GetS64()
+	data.Platform = input:GetUTF()
+	data.CreateTimeStamp = input:GetS64()
+	data.LastLoginTimeStamp = input:GetS64()
+	data.DeviceId = input:GetUTF()
+	data.AccountUUID = input:GetUTF()
+end
+
+

+ 30 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.AstrologyRemindData.lua

@@ -0,0 +1,30 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.AstrologyRemindData
+
+
+local _M = {MessageID = 0x00025001,Name = 'OpenCards.Core.Data.AstrologyRemindData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00025001] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.AstrologyRemindData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.Name)
+	output:PutS32(data.HeroId)
+end
+
+
+function _M.Read(input,data)
+		
+	data.Name = input:GetUTF()
+	data.HeroId = input:GetS32()
+end
+
+

+ 34 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.AtlantisActivityListDtoData.lua

@@ -0,0 +1,34 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.AtlantisActivityListDtoData
+
+
+local _M = {MessageID = 0x00023601,Name = 'OpenCards.Core.Data.AtlantisActivityListDtoData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023601] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.AtlantisActivityListDtoData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.id)
+	output:PutS64(data.activityStartTime)
+	output:PutS64(data.activityDuration)
+	output:PutBool(data.isProgressing)
+end
+
+
+function _M.Read(input,data)
+		
+	data.id = input:GetS32()
+	data.activityStartTime = input:GetS64()
+	data.activityDuration = input:GetS64()
+	data.isProgressing = input:GetBool()
+end
+
+

+ 36 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.AtlantisActivityNormalRewardConfig.lua

@@ -0,0 +1,36 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.AtlantisActivityNormalRewardConfig
+
+
+local _M = {MessageID = 0x00023609,Name = 'OpenCards.Core.Data.AtlantisActivityNormalRewardConfig'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023609] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.AtlantisActivityNormalRewardConfig'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.id)
+	output:PutS32(data.item_id)
+	output:PutS32(data.item_num)
+	output:PutS32(data.app_weight)
+	output:PutS32(data.num_perfloor)
+end
+
+
+function _M.Read(input,data)
+		
+	data.id = input:GetS32()
+	data.item_id = input:GetS32()
+	data.item_num = input:GetS32()
+	data.app_weight = input:GetS32()
+	data.num_perfloor = input:GetS32()
+end
+
+

+ 42 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.AtlantisActivityTargetRewardConfig.lua

@@ -0,0 +1,42 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.AtlantisActivityTargetRewardConfig
+
+
+local _M = {MessageID = 0x00023608,Name = 'OpenCards.Core.Data.AtlantisActivityTargetRewardConfig'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023608] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.AtlantisActivityTargetRewardConfig'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.id)
+	output:PutS32(data.reward_type)
+	output:PutS32(data.reward_id)
+	output:PutS32(data.reward_num)
+	output:PutS32(data.choice_num)
+	output:PutS32(data.unlock_type)
+	output:PutArray(data.open_con_val, output.PutS32,'int')
+	output:PutS32(data.unlock_visible)
+end
+
+
+function _M.Read(input,data)
+		
+	data.id = input:GetS32()
+	data.reward_type = input:GetS32()
+	data.reward_id = input:GetS32()
+	data.reward_num = input:GetS32()
+	data.choice_num = input:GetS32()
+	data.unlock_type = input:GetS32()
+	data.open_con_val = input:GetArray(input.GetS32,'int')
+	data.unlock_visible = input:GetS32()
+end
+
+

+ 38 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.AtlantisActivityValleyRuinsDtoData.lua

@@ -0,0 +1,38 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.AtlantisActivityValleyRuinsDtoData
+
+
+local _M = {MessageID = 0x00023602,Name = 'OpenCards.Core.Data.AtlantisActivityValleyRuinsDtoData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023602] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.AtlantisActivityValleyRuinsDtoData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.currentFloor)
+	output:PutS32(data.currentAmazingRewardId)
+	output:PutArray(data.lotterRewardedPositionArray, output.PutS32,'int')
+	output:PutBool(data.isActive)
+	output:PutMap(data.amazingRewardHistory, output.PutS32, output.PutS32,'int', 'int')
+	output:PutS32(data.amazingRewardPosition)
+end
+
+
+function _M.Read(input,data)
+		
+	data.currentFloor = input:GetS32()
+	data.currentAmazingRewardId = input:GetS32()
+	data.lotterRewardedPositionArray = input:GetArray(input.GetS32,'int')
+	data.isActive = input:GetBool()
+	data.amazingRewardHistory = input:GetMap(input.GetS32, input.GetS32,'int', 'int')
+	data.amazingRewardPosition = input:GetS32()
+end
+
+

+ 32 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.AtlantisActivityValleyRuinsRewardHistoryDtoData.lua

@@ -0,0 +1,32 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.AtlantisActivityValleyRuinsRewardHistoryDtoData
+
+
+local _M = {MessageID = 0x00023603,Name = 'OpenCards.Core.Data.AtlantisActivityValleyRuinsRewardHistoryDtoData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023603] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.AtlantisActivityValleyRuinsRewardHistoryDtoData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.id)
+	output:PutS32(data.position)
+	output:PutBool(data.isAmazingReward)
+end
+
+
+function _M.Read(input,data)
+		
+	data.id = input:GetS32()
+	data.position = input:GetS32()
+	data.isAmazingReward = input:GetBool()
+end
+
+

+ 34 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.BossChallengeActivityInfoDtoData.lua

@@ -0,0 +1,34 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.BossChallengeActivityInfoDtoData
+
+
+local _M = {MessageID = 0x00023606,Name = 'OpenCards.Core.Data.BossChallengeActivityInfoDtoData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023606] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.BossChallengeActivityInfoDtoData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.avaliableCount)
+	output:PutS32(data.purchaseCount)
+	output:PutS32(data.receiveRewardTimes)
+	output:PutS32(data.usedCount)
+end
+
+
+function _M.Read(input,data)
+		
+	data.avaliableCount = input:GetS32()
+	data.purchaseCount = input:GetS32()
+	data.receiveRewardTimes = input:GetS32()
+	data.usedCount = input:GetS32()
+end
+
+

+ 32 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.BossChallengeActivityRecordItemDtoData.lua

@@ -0,0 +1,32 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.BossChallengeActivityRecordItemDtoData
+
+
+local _M = {MessageID = 0x00023607,Name = 'OpenCards.Core.Data.BossChallengeActivityRecordItemDtoData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023607] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.BossChallengeActivityRecordItemDtoData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.mFightingId)
+	output:PutS64(data.mFightingValue)
+	output:PutS64(data.mFightingTime)
+end
+
+
+function _M.Read(input,data)
+		
+	data.mFightingId = input:GetUTF()
+	data.mFightingValue = input:GetS64()
+	data.mFightingTime = input:GetS64()
+end
+
+

+ 34 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.CanHireMercenaryData.lua

@@ -0,0 +1,34 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.CanHireMercenaryData
+
+
+local _M = {MessageID = 0x00022705,Name = 'OpenCards.Core.Data.CanHireMercenaryData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022705] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.CanHireMercenaryData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.MercenaryId)
+	output:PutS32(data.MercenaryRank)
+	output:PutS32(data.MercenaryLevel)
+	output:PutList(data.DataList, output.PutOBJ,'OpenCards.Core.Data.MercenaryAppointPlayerData')
+end
+
+
+function _M.Read(input,data)
+		
+	data.MercenaryId = input:GetS32()
+	data.MercenaryRank = input:GetS32()
+	data.MercenaryLevel = input:GetS32()
+	data.DataList = input:GetList(input.GetOBJ,'OpenCards.Core.Data.MercenaryAppointPlayerData')
+end
+
+

+ 30 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ChatMessage.lua

@@ -0,0 +1,30 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ChatMessage
+
+
+local _M = {MessageID = 0x00024001,Name = 'OpenCards.Core.Data.ChatMessage'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00024001] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ChatMessage'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutOBJ(data.Data,'OpenCards.Core.ORM.ChatData')
+	output:PutOBJ(data.Player,'OpenCards.Core.Data.ChatPlayer')
+end
+
+
+function _M.Read(input,data)
+		
+	data.Data = input:GetOBJ('OpenCards.Core.ORM.ChatData')
+	data.Player = input:GetOBJ('OpenCards.Core.Data.ChatPlayer')
+end
+
+

+ 36 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ChatPlayer.lua

@@ -0,0 +1,36 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ChatPlayer
+
+
+local _M = {MessageID = 0x00024002,Name = 'OpenCards.Core.Data.ChatPlayer'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00024002] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ChatPlayer'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.Uuid)
+	output:PutUTF(data.Name)
+	output:PutUTF(data.Icon)
+	output:PutUTF(data.IconBox)
+	output:PutUTF(data.ServerId)
+end
+
+
+function _M.Read(input,data)
+		
+	data.Uuid = input:GetUTF()
+	data.Name = input:GetUTF()
+	data.Icon = input:GetUTF()
+	data.IconBox = input:GetUTF()
+	data.ServerId = input:GetUTF()
+end
+
+

+ 34 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientActivityStateData.lua

@@ -0,0 +1,34 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientActivityStateData
+
+
+local _M = {MessageID = 0x00040501,Name = 'OpenCards.Core.Data.ClientActivityStateData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00040501] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientActivityStateData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.ActivityId)
+	output:PutS32(data.ActivityGroupId)
+	output:PutBool(data.OpenState)
+	output:PutS64(data.EndTime)
+end
+
+
+function _M.Read(input,data)
+		
+	data.ActivityId = input:GetS32()
+	data.ActivityGroupId = input:GetS32()
+	data.OpenState = input:GetBool()
+	data.EndTime = input:GetS64()
+end
+
+

+ 30 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaArtifactData.lua

@@ -0,0 +1,30 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientArenaArtifactData
+
+
+local _M = {MessageID = 0x0CDDAC6E,Name = 'OpenCards.Core.Data.ClientArenaArtifactData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x0CDDAC6E] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientArenaArtifactData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.ConfigId)
+	output:PutS32(data.Level)
+end
+
+
+function _M.Read(input,data)
+		
+	data.ConfigId = input:GetS32()
+	data.Level = input:GetS32()
+end
+
+

+ 32 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaEquipData.lua

@@ -0,0 +1,32 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientArenaEquipData
+
+
+local _M = {MessageID = 0x04782850,Name = 'OpenCards.Core.Data.ClientArenaEquipData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x04782850] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientArenaEquipData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.ConfigId)
+	output:PutS32(data.Level)
+	output:PutS32(data.Race)
+end
+
+
+function _M.Read(input,data)
+		
+	data.ConfigId = input:GetS32()
+	data.Level = input:GetS32()
+	data.Race = input:GetS32()
+end
+
+

+ 40 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaHeroData.lua

@@ -0,0 +1,40 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientArenaHeroData
+
+
+local _M = {MessageID = 0x1D4B27AE,Name = 'OpenCards.Core.Data.ClientArenaHeroData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x1D4B27AE] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientArenaHeroData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.Uuid)
+	output:PutS32(data.ConfigId)
+	output:PutS32(data.Level)
+	output:PutS32(data.Quality)
+	output:PutS32(data.spEquip)
+	output:PutS32(data.spEquipLevel)
+	output:PutS64(data.Power)
+end
+
+
+function _M.Read(input,data)
+		
+	data.Uuid = input:GetUTF()
+	data.ConfigId = input:GetS32()
+	data.Level = input:GetS32()
+	data.Quality = input:GetS32()
+	data.spEquip = input:GetS32()
+	data.spEquipLevel = input:GetS32()
+	data.Power = input:GetS64()
+end
+
+

+ 32 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaHeroFullData.lua

@@ -0,0 +1,32 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientArenaHeroFullData
+
+
+local _M = {MessageID = 0x16BDA84D,Name = 'OpenCards.Core.Data.ClientArenaHeroFullData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x16BDA84D] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientArenaHeroFullData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutOBJ(data.HeroData,'OpenCards.Core.Data.ClientArenaHeroData')
+	output:PutList(data.Equips, output.PutOBJ,'OpenCards.Core.Data.ClientArenaEquipData')
+	output:PutOBJ(data.ArtifactData,'OpenCards.Core.Data.ClientArenaArtifactData')
+end
+
+
+function _M.Read(input,data)
+		
+	data.HeroData = input:GetOBJ('OpenCards.Core.Data.ClientArenaHeroData')
+	data.Equips = input:GetList(input.GetOBJ,'OpenCards.Core.Data.ClientArenaEquipData')
+	data.ArtifactData = input:GetOBJ('OpenCards.Core.Data.ClientArenaArtifactData')
+end
+
+

+ 50 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaHighendBattleResultData.lua

@@ -0,0 +1,50 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientArenaHighendBattleResultData
+
+
+local _M = {MessageID = 0x54EBAA36,Name = 'OpenCards.Core.Data.ClientArenaHighendBattleResultData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x54EBAA36] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientArenaHighendBattleResultData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.s2c_selfOldTier)
+	output:PutS32(data.s2c_oppositeOldTier)
+	output:PutS32(data.s2c_selfNewTier)
+	output:PutS32(data.s2c_oppositeNewTier)
+	output:PutS32(data.s2c_selfOldRank)
+	output:PutS32(data.s2c_oppositeOldRank)
+	output:PutS32(data.s2c_selfNewRank)
+	output:PutS32(data.s2c_oppositeNewRank)
+	output:PutS32(data.s2c_selfScore)
+	output:PutS32(data.s2c_oppositeScore)
+	output:PutS32(data.s2c_IncreaseCoinIncone)
+	output:PutS32(data.s2c_IncreaseScoringIncone)
+end
+
+
+function _M.Read(input,data)
+		
+	data.s2c_selfOldTier = input:GetS32()
+	data.s2c_oppositeOldTier = input:GetS32()
+	data.s2c_selfNewTier = input:GetS32()
+	data.s2c_oppositeNewTier = input:GetS32()
+	data.s2c_selfOldRank = input:GetS32()
+	data.s2c_oppositeOldRank = input:GetS32()
+	data.s2c_selfNewRank = input:GetS32()
+	data.s2c_oppositeNewRank = input:GetS32()
+	data.s2c_selfScore = input:GetS32()
+	data.s2c_oppositeScore = input:GetS32()
+	data.s2c_IncreaseCoinIncone = input:GetS32()
+	data.s2c_IncreaseScoringIncone = input:GetS32()
+end
+
+

+ 52 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaHighendRecordData.lua

@@ -0,0 +1,52 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientArenaHighendRecordData
+
+
+local _M = {MessageID = 0x4D9E7C7A,Name = 'OpenCards.Core.Data.ClientArenaHighendRecordData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x4D9E7C7A] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientArenaHighendRecordData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.Name)
+	output:PutUTF(data.Icon)
+	output:PutUTF(data.IconBox)
+	output:PutUTF(data.RecordUUID)
+	output:PutUTF(data.OpponentUUID)
+	output:PutList(data.FightUUIDList, output.PutUTF,'string')
+	output:PutS64(data.FightTime)
+	output:PutS32(data.Tier)
+	output:PutBool(data.FightResult)
+	output:PutS32(data.Level)
+	output:PutUTF(data.GuildName)
+	output:PutUTF(data.SelfGuildName)
+	output:PutBool(data.IsChallanger)
+end
+
+
+function _M.Read(input,data)
+		
+	data.Name = input:GetUTF()
+	data.Icon = input:GetUTF()
+	data.IconBox = input:GetUTF()
+	data.RecordUUID = input:GetUTF()
+	data.OpponentUUID = input:GetUTF()
+	data.FightUUIDList = input:GetList(input.GetUTF,'string')
+	data.FightTime = input:GetS64()
+	data.Tier = input:GetS32()
+	data.FightResult = input:GetBool()
+	data.Level = input:GetS32()
+	data.GuildName = input:GetUTF()
+	data.SelfGuildName = input:GetUTF()
+	data.IsChallanger = input:GetBool()
+end
+
+

+ 36 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaPinnacleFightHeroData.lua

@@ -0,0 +1,36 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientArenaPinnacleFightHeroData
+
+
+local _M = {MessageID = 0x17F3808E,Name = 'OpenCards.Core.Data.ClientArenaPinnacleFightHeroData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x17F3808E] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientArenaPinnacleFightHeroData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.HeroUUID)
+	output:PutS32(data.HeroConfigID)
+	output:PutS32(data.HeroLevel)
+	output:PutS32(data.HeroQuality)
+	output:PutF64(data.HeroCurrentHp)
+end
+
+
+function _M.Read(input,data)
+		
+	data.HeroUUID = input:GetUTF()
+	data.HeroConfigID = input:GetS32()
+	data.HeroLevel = input:GetS32()
+	data.HeroQuality = input:GetS32()
+	data.HeroCurrentHp = input:GetF64()
+end
+
+

+ 34 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaPinnacleFightRecordData.lua

@@ -0,0 +1,34 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientArenaPinnacleFightRecordData
+
+
+local _M = {MessageID = 0x39A11C81,Name = 'OpenCards.Core.Data.ClientArenaPinnacleFightRecordData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x39A11C81] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientArenaPinnacleFightRecordData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.FightUUID)
+	output:PutOBJ(data.LeftRole,'OpenCards.Core.Data.ClientArenaPinnacleFightRoleData')
+	output:PutOBJ(data.RightRole,'OpenCards.Core.Data.ClientArenaPinnacleFightRoleData')
+	output:PutUTF(data.WinRoleUUID)
+end
+
+
+function _M.Read(input,data)
+		
+	data.FightUUID = input:GetUTF()
+	data.LeftRole = input:GetOBJ('OpenCards.Core.Data.ClientArenaPinnacleFightRoleData')
+	data.RightRole = input:GetOBJ('OpenCards.Core.Data.ClientArenaPinnacleFightRoleData')
+	data.WinRoleUUID = input:GetUTF()
+end
+
+

+ 36 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaPinnacleFightRoleData.lua

@@ -0,0 +1,36 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientArenaPinnacleFightRoleData
+
+
+local _M = {MessageID = 0x3C44339A,Name = 'OpenCards.Core.Data.ClientArenaPinnacleFightRoleData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x3C44339A] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientArenaPinnacleFightRoleData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutOBJ(data.RoleData,'OpenCards.Core.Data.ClientRoleArenaPinnacleData')
+	output:PutList(data.RoleHeroList, output.PutOBJ,'OpenCards.Core.Data.ClientArenaPinnacleFightHeroData')
+	output:PutS32(data.WinCount)
+	output:PutS32(data.BuffCount)
+	output:PutS32(data.FormationIndex)
+end
+
+
+function _M.Read(input,data)
+		
+	data.RoleData = input:GetOBJ('OpenCards.Core.Data.ClientRoleArenaPinnacleData')
+	data.RoleHeroList = input:GetList(input.GetOBJ,'OpenCards.Core.Data.ClientArenaPinnacleFightHeroData')
+	data.WinCount = input:GetS32()
+	data.BuffCount = input:GetS32()
+	data.FormationIndex = input:GetS32()
+end
+
+

+ 52 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaPinnacleGloryRankData.lua

@@ -0,0 +1,52 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientArenaPinnacleGloryRankData
+
+
+local _M = {MessageID = 0x52362035,Name = 'OpenCards.Core.Data.ClientArenaPinnacleGloryRankData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x52362035] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientArenaPinnacleGloryRankData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.RegionId)
+	output:PutUTF(data.RoleUUID)
+	output:PutUTF(data.ServerID)
+	output:PutS32(data.Rank)
+	output:PutUTF(data.Icon)
+	output:PutUTF(data.IconBox)
+	output:PutUTF(data.Name)
+	output:PutS32(data.Gender)
+	output:PutUTF(data.GuildName)
+	output:PutUTF(data.DreamlandNameplate)
+	output:PutS64(data.GloryOwnTimeStamp)
+	output:PutS64(data.Power)
+	output:PutS32(data.Level)
+end
+
+
+function _M.Read(input,data)
+		
+	data.RegionId = input:GetS32()
+	data.RoleUUID = input:GetUTF()
+	data.ServerID = input:GetUTF()
+	data.Rank = input:GetS32()
+	data.Icon = input:GetUTF()
+	data.IconBox = input:GetUTF()
+	data.Name = input:GetUTF()
+	data.Gender = input:GetS32()
+	data.GuildName = input:GetUTF()
+	data.DreamlandNameplate = input:GetUTF()
+	data.GloryOwnTimeStamp = input:GetS64()
+	data.Power = input:GetS64()
+	data.Level = input:GetS32()
+end
+
+

+ 32 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaPinnaclePeriodData.lua

@@ -0,0 +1,32 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientArenaPinnaclePeriodData
+
+
+local _M = {MessageID = 0x179C4F19,Name = 'OpenCards.Core.Data.ClientArenaPinnaclePeriodData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x179C4F19] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientArenaPinnaclePeriodData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutEnum8(data.PinnacleStage)
+	output:PutEnum8(data.CompetitionPeriod)
+	output:PutS64(data.PhasedTimeStamp)
+end
+
+
+function _M.Read(input,data)
+		
+	data.PinnacleStage = input:GetEnum8()
+	data.CompetitionPeriod = input:GetEnum8()
+	data.PhasedTimeStamp = input:GetS64()
+end
+
+

+ 40 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaPinnacleQuizRecordData.lua

@@ -0,0 +1,40 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientArenaPinnacleQuizRecordData
+
+
+local _M = {MessageID = 0x67A95D2E,Name = 'OpenCards.Core.Data.ClientArenaPinnacleQuizRecordData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x67A95D2E] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientArenaPinnacleQuizRecordData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutEnum8(data.Stage)
+	output:PutOBJ(data.HomeQuizRole,'OpenCards.Core.Data.ClientRoleArenaPinnacleData')
+	output:PutOBJ(data.VisitingQuizRole,'OpenCards.Core.Data.ClientRoleArenaPinnacleData')
+	output:PutUTF(data.WinRoleUUID)
+	output:PutBool(data.IsQuizSuccess)
+	output:PutS32(data.ResultGoldNum)
+	output:PutS32(data.GroupId)
+end
+
+
+function _M.Read(input,data)
+		
+	data.Stage = input:GetEnum8()
+	data.HomeQuizRole = input:GetOBJ('OpenCards.Core.Data.ClientRoleArenaPinnacleData')
+	data.VisitingQuizRole = input:GetOBJ('OpenCards.Core.Data.ClientRoleArenaPinnacleData')
+	data.WinRoleUUID = input:GetUTF()
+	data.IsQuizSuccess = input:GetBool()
+	data.ResultGoldNum = input:GetS32()
+	data.GroupId = input:GetS32()
+end
+
+

+ 32 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaPinnacleQuizStatisticsData.lua

@@ -0,0 +1,32 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientArenaPinnacleQuizStatisticsData
+
+
+local _M = {MessageID = 0x57151B84,Name = 'OpenCards.Core.Data.ClientArenaPinnacleQuizStatisticsData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x57151B84] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientArenaPinnacleQuizStatisticsData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutEnum8(data.Stage)
+	output:PutS32(data.QuizResult)
+	output:PutS32(data.ResultGoldNum)
+end
+
+
+function _M.Read(input,data)
+		
+	data.Stage = input:GetEnum8()
+	data.QuizResult = input:GetS32()
+	data.ResultGoldNum = input:GetS32()
+end
+
+

+ 42 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaValorBattleResultData.lua

@@ -0,0 +1,42 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientArenaValorBattleResultData
+
+
+local _M = {MessageID = 0x59ACE845,Name = 'OpenCards.Core.Data.ClientArenaValorBattleResultData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x59ACE845] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientArenaValorBattleResultData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.s2c_OldRank)
+	output:PutS32(data.s2c_NewRank)
+	output:PutS32(data.s2c_OldScore)
+	output:PutS32(data.s2c_NewScore)
+	output:PutS32(data.s2c_OppositeOldRank)
+	output:PutS32(data.s2c_OppositeNewRank)
+	output:PutS32(data.s2c_OppositeOldScore)
+	output:PutS32(data.s2c_OppositeNewScore)
+end
+
+
+function _M.Read(input,data)
+		
+	data.s2c_OldRank = input:GetS32()
+	data.s2c_NewRank = input:GetS32()
+	data.s2c_OldScore = input:GetS32()
+	data.s2c_NewScore = input:GetS32()
+	data.s2c_OppositeOldRank = input:GetS32()
+	data.s2c_OppositeNewRank = input:GetS32()
+	data.s2c_OppositeOldScore = input:GetS32()
+	data.s2c_OppositeNewScore = input:GetS32()
+end
+
+

+ 52 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientArenaValorRecordData.lua

@@ -0,0 +1,52 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientArenaValorRecordData
+
+
+local _M = {MessageID = 0x21D5FCA1,Name = 'OpenCards.Core.Data.ClientArenaValorRecordData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x21D5FCA1] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientArenaValorRecordData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.Name)
+	output:PutUTF(data.Icon)
+	output:PutUTF(data.IconBox)
+	output:PutUTF(data.RecordUUID)
+	output:PutUTF(data.OpponentUUID)
+	output:PutUTF(data.FightUUID)
+	output:PutS64(data.FightTime)
+	output:PutS32(data.Score)
+	output:PutBool(data.IsRevenge)
+	output:PutBool(data.FightResult)
+	output:PutS32(data.Level)
+	output:PutBool(data.IsChallenger)
+	output:PutS32(data.RobotLibraryId)
+end
+
+
+function _M.Read(input,data)
+		
+	data.Name = input:GetUTF()
+	data.Icon = input:GetUTF()
+	data.IconBox = input:GetUTF()
+	data.RecordUUID = input:GetUTF()
+	data.OpponentUUID = input:GetUTF()
+	data.FightUUID = input:GetUTF()
+	data.FightTime = input:GetS64()
+	data.Score = input:GetS32()
+	data.IsRevenge = input:GetBool()
+	data.FightResult = input:GetBool()
+	data.Level = input:GetS32()
+	data.IsChallenger = input:GetBool()
+	data.RobotLibraryId = input:GetS32()
+end
+
+

+ 44 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientCheckMultiRoleData.lua

@@ -0,0 +1,44 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientCheckMultiRoleData
+
+
+local _M = {MessageID = 0x00023107,Name = 'OpenCards.Core.Data.ClientCheckMultiRoleData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023107] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientCheckMultiRoleData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutOBJ(data.s2c_info,'OpenCards.Core.Data.ClientCheckRoleData')
+	output:PutMap(data.s2c_Team, output.PutS32, function(_,v1) output:PutList(v1, output.PutOBJ, 'OpenCards.Core.Data.FormationRoleData') end,'int', 'System.Collections.Generic.List<OpenCards.Core.Data.FormationRoleData>')
+	output:PutMap(data.s2c_LifeLevel, output.PutS32, output.PutS32,'int', 'int')
+	output:PutMap(data.s2c_Medals, output.PutS32, output.PutUTF,'int', 'string')
+	output:PutS32(data.s2c_isFriend)
+	output:PutBool(data.s2c_isBlack)
+	output:PutS32(data.s2c_isFans)
+	output:PutS32(data.s2c_scoreGrowRate)
+	output:PutS32(data.s2c_coinGrowRate)
+end
+
+
+function _M.Read(input,data)
+		
+	data.s2c_info = input:GetOBJ('OpenCards.Core.Data.ClientCheckRoleData')
+	data.s2c_Team = input:GetMap(input.GetS32, function(_) return input:GetList(input.GetOBJ,'OpenCards.Core.Data.FormationRoleData') end,'int', 'System.Collections.Generic.List<OpenCards.Core.Data.FormationRoleData>')
+	data.s2c_LifeLevel = input:GetMap(input.GetS32, input.GetS32,'int', 'int')
+	data.s2c_Medals = input:GetMap(input.GetS32, input.GetUTF,'int', 'string')
+	data.s2c_isFriend = input:GetS32()
+	data.s2c_isBlack = input:GetBool()
+	data.s2c_isFans = input:GetS32()
+	data.s2c_scoreGrowRate = input:GetS32()
+	data.s2c_coinGrowRate = input:GetS32()
+end
+
+

+ 70 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientCheckRoleData.lua

@@ -0,0 +1,70 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientCheckRoleData
+
+
+local _M = {MessageID = 0x00023101,Name = 'OpenCards.Core.Data.ClientCheckRoleData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023101] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientCheckRoleData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.Name)
+	output:PutS32(data.NumberId)
+	output:PutS32(data.Level)
+	output:PutUTF(data.GuildUuid)
+	output:PutUTF(data.GuildName)
+	output:PutS32(data.GuildPos)
+	output:PutUTF(data.Sign)
+	output:PutUTF(data.Icon)
+	output:PutUTF(data.FrameIcon)
+	output:PutS32(data.Gender)
+	output:PutS64(data.FightPower)
+	output:PutUTF(data.ServerId)
+	output:PutS32(data.MainFightLevel)
+	output:PutS32(data.FansCount)
+	output:PutBool(data.IsGuildProtector)
+	output:PutUTF(data.DreamStep)
+	output:PutS64(data.DreamStepOverTime)
+	output:PutS32(data.ArenaHighendTier)
+	output:PutBool(data.IsRobot)
+	output:PutArray(data.HeroList, output.PutOBJ,'OpenCards.Core.Data.HeroHeadData')
+	output:PutMap(data.AchieveIcon, output.PutS32, function(_,v1) output:PutMap(v1, output.PutS32, output.PutOBJ,'int', 'OpenCards.Core.Data.AchieveIconData') end,'int', 'DeepCore.HashMap<int, OpenCards.Core.Data.AchieveIconData>')
+	output:PutS32(data.RobotLibraryId)
+end
+
+
+function _M.Read(input,data)
+		
+	data.Name = input:GetUTF()
+	data.NumberId = input:GetS32()
+	data.Level = input:GetS32()
+	data.GuildUuid = input:GetUTF()
+	data.GuildName = input:GetUTF()
+	data.GuildPos = input:GetS32()
+	data.Sign = input:GetUTF()
+	data.Icon = input:GetUTF()
+	data.FrameIcon = input:GetUTF()
+	data.Gender = input:GetS32()
+	data.FightPower = input:GetS64()
+	data.ServerId = input:GetUTF()
+	data.MainFightLevel = input:GetS32()
+	data.FansCount = input:GetS32()
+	data.IsGuildProtector = input:GetBool()
+	data.DreamStep = input:GetUTF()
+	data.DreamStepOverTime = input:GetS64()
+	data.ArenaHighendTier = input:GetS32()
+	data.IsRobot = input:GetBool()
+	data.HeroList = input:GetArray(input.GetOBJ,'OpenCards.Core.Data.HeroHeadData')
+	data.AchieveIcon = input:GetMap(input.GetS32, function(_) return input:GetMap(input.GetS32, input.GetOBJ,'int', 'OpenCards.Core.Data.AchieveIconData') end,'int', 'DeepCore.HashMap<int, OpenCards.Core.Data.AchieveIconData>')
+	data.RobotLibraryId = input:GetS32()
+end
+
+

+ 34 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientGuildDungeonLogData.lua

@@ -0,0 +1,34 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientGuildDungeonLogData
+
+
+local _M = {MessageID = 0x00022582,Name = 'OpenCards.Core.Data.ClientGuildDungeonLogData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022582] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientGuildDungeonLogData'] = _M
+
+function _M.Write(output,data)
+	Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientSecretCaveBaseRoleSnap'].Write(output, data)
+	output:PutS64(data.PlayerDamage)
+	output:PutUTF(data.RecordID)
+	output:PutDateTime(data.RecordTime)
+	output:PutUTF(data.FightUuid)
+end
+
+
+function _M.Read(input,data)
+	Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientSecretCaveBaseRoleSnap'].Read(input, data)
+	data.PlayerDamage = input:GetS64()
+	data.RecordID = input:GetUTF()
+	data.RecordTime = input:GetDateTime()
+	data.FightUuid = input:GetUTF()
+end
+
+

+ 36 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientGuildSecretCaveLegendScore.lua

@@ -0,0 +1,36 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientGuildSecretCaveLegendScore
+
+
+local _M = {MessageID = 0x0002258A,Name = 'OpenCards.Core.Data.ClientGuildSecretCaveLegendScore'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x0002258A] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientGuildSecretCaveLegendScore'] = _M
+
+function _M.Write(output,data)
+	Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientSecretCaveBaseRoleSnap'].Write(output, data)
+	output:PutS32(data.Layer)
+	output:PutS32(data.Rank)
+	output:PutS32(data.LegendScore)
+	output:PutS32(data.Grade)
+	output:PutS32(data.Relation)
+end
+
+
+function _M.Read(input,data)
+	Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientSecretCaveBaseRoleSnap'].Read(input, data)
+	data.Layer = input:GetS32()
+	data.Rank = input:GetS32()
+	data.LegendScore = input:GetS32()
+	data.Grade = input:GetS32()
+	data.Relation = input:GetS32()
+end
+
+

+ 36 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientGuildWarriorTreasureOverView.lua

@@ -0,0 +1,36 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientGuildWarriorTreasureOverView
+
+
+local _M = {MessageID = 0x00022585,Name = 'OpenCards.Core.Data.ClientGuildWarriorTreasureOverView'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022585] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientGuildWarriorTreasureOverView'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.WarriorTreasureID)
+	output:PutS32(data.ConfigID)
+	output:PutList(data.Args, output.PutUTF,'string')
+	output:PutS32(data.GetNum)
+	output:PutDateTime(data.ExpireTime)
+end
+
+
+function _M.Read(input,data)
+		
+	data.WarriorTreasureID = input:GetUTF()
+	data.ConfigID = input:GetS32()
+	data.Args = input:GetList(input.GetUTF,'string')
+	data.GetNum = input:GetS32()
+	data.ExpireTime = input:GetDateTime()
+end
+
+

+ 32 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientMuteState.lua

@@ -0,0 +1,32 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientMuteState
+
+
+local _M = {MessageID = 0x00024004,Name = 'OpenCards.Core.Data.ClientMuteState'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00024004] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientMuteState'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutBool(data.s2c_HasMuted)
+	output:PutBool(data.s2c_IsMuteForever)
+	output:PutS64(data.s2c_MuteTimeStamps)
+end
+
+
+function _M.Read(input,data)
+		
+	data.s2c_HasMuted = input:GetBool()
+	data.s2c_IsMuteForever = input:GetBool()
+	data.s2c_MuteTimeStamps = input:GetS64()
+end
+
+

+ 56 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientRoleArenaHighendData.lua

@@ -0,0 +1,56 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientRoleArenaHighendData
+
+
+local _M = {MessageID = 0x53BB330B,Name = 'OpenCards.Core.Data.ClientRoleArenaHighendData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x53BB330B] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientRoleArenaHighendData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.RoleUUID)
+	output:PutS32(data.Tier)
+	output:PutS32(data.Rank)
+	output:PutS64(data.ArenaCoin)
+	output:PutS32(data.Score)
+	output:PutUTF(data.Icon)
+	output:PutUTF(data.IconBox)
+	output:PutUTF(data.Name)
+	output:PutS32(data.Gender)
+	output:PutS32(data.Level)
+	output:PutS32(data.DreamlandNameplate)
+	output:PutMap(data.AchieveIcon, output.PutS32, function(_,v1) output:PutMap(v1, output.PutS32, output.PutOBJ,'int', 'OpenCards.Core.Data.AchieveIconData') end,'int', 'DeepCore.HashMap<int, OpenCards.Core.Data.AchieveIconData>')
+	output:PutS64(data.Power)
+	output:PutBool(data.IsRobot)
+	output:PutBool(data.IsInScoreRankTop50)
+end
+
+
+function _M.Read(input,data)
+		
+	data.RoleUUID = input:GetUTF()
+	data.Tier = input:GetS32()
+	data.Rank = input:GetS32()
+	data.ArenaCoin = input:GetS64()
+	data.Score = input:GetS32()
+	data.Icon = input:GetUTF()
+	data.IconBox = input:GetUTF()
+	data.Name = input:GetUTF()
+	data.Gender = input:GetS32()
+	data.Level = input:GetS32()
+	data.DreamlandNameplate = input:GetS32()
+	data.AchieveIcon = input:GetMap(input.GetS32, function(_) return input:GetMap(input.GetS32, input.GetOBJ,'int', 'OpenCards.Core.Data.AchieveIconData') end,'int', 'DeepCore.HashMap<int, OpenCards.Core.Data.AchieveIconData>')
+	data.Power = input:GetS64()
+	data.IsRobot = input:GetBool()
+	data.IsInScoreRankTop50 = input:GetBool()
+end
+
+

+ 50 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientRoleArenaPinnacleData.lua

@@ -0,0 +1,50 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientRoleArenaPinnacleData
+
+
+local _M = {MessageID = 0x2A91455E,Name = 'OpenCards.Core.Data.ClientRoleArenaPinnacleData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x2A91455E] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientRoleArenaPinnacleData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.RoleUUID)
+	output:PutUTF(data.ServerID)
+	output:PutS32(data.Season)
+	output:PutUTF(data.Icon)
+	output:PutUTF(data.IconBox)
+	output:PutUTF(data.Name)
+	output:PutS32(data.Gender)
+	output:PutUTF(data.DreamlandNameplate)
+	output:PutUTF(data.GuildName)
+	output:PutS32(data.Victories)
+	output:PutS32(data.Defeats)
+	output:PutS32(data.Level)
+end
+
+
+function _M.Read(input,data)
+		
+	data.RoleUUID = input:GetUTF()
+	data.ServerID = input:GetUTF()
+	data.Season = input:GetS32()
+	data.Icon = input:GetUTF()
+	data.IconBox = input:GetUTF()
+	data.Name = input:GetUTF()
+	data.Gender = input:GetS32()
+	data.DreamlandNameplate = input:GetUTF()
+	data.GuildName = input:GetUTF()
+	data.Victories = input:GetS32()
+	data.Defeats = input:GetS32()
+	data.Level = input:GetS32()
+end
+
+

+ 46 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientRoleArenaPinnacleEliminationData.lua

@@ -0,0 +1,46 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientRoleArenaPinnacleEliminationData
+
+
+local _M = {MessageID = 0x1E636773,Name = 'OpenCards.Core.Data.ClientRoleArenaPinnacleEliminationData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x1E636773] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientRoleArenaPinnacleEliminationData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.RoleUUID)
+	output:PutUTF(data.ServerID)
+	output:PutUTF(data.Icon)
+	output:PutUTF(data.IconBox)
+	output:PutUTF(data.Name)
+	output:PutUTF(data.DreamlandNameplate)
+	output:PutUTF(data.GuildName)
+	output:PutS32(data.HighestQualificationNowThisSeason)
+	output:PutBool(data.BeBet)
+	output:PutS32(data.Level)
+end
+
+
+function _M.Read(input,data)
+		
+	data.RoleUUID = input:GetUTF()
+	data.ServerID = input:GetUTF()
+	data.Icon = input:GetUTF()
+	data.IconBox = input:GetUTF()
+	data.Name = input:GetUTF()
+	data.DreamlandNameplate = input:GetUTF()
+	data.GuildName = input:GetUTF()
+	data.HighestQualificationNowThisSeason = input:GetS32()
+	data.BeBet = input:GetBool()
+	data.Level = input:GetS32()
+end
+
+

+ 62 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientRoleArenaValorData.lua

@@ -0,0 +1,62 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientRoleArenaValorData
+
+
+local _M = {MessageID = 0x6053CA5A,Name = 'OpenCards.Core.Data.ClientRoleArenaValorData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x6053CA5A] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientRoleArenaValorData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.UUID)
+	output:PutUTF(data.RoleUUID)
+	output:PutS32(data.Score)
+	output:PutS32(data.Rank)
+	output:PutUTF(data.Icon)
+	output:PutUTF(data.IconBox)
+	output:PutUTF(data.Name)
+	output:PutS32(data.Level)
+	output:PutS32(data.DreamlandNameplate)
+	output:PutMap(data.AchieveIcon, output.PutS32, function(_,v1) output:PutMap(v1, output.PutS32, output.PutOBJ,'int', 'OpenCards.Core.Data.AchieveIconData') end,'int', 'DeepCore.HashMap<int, OpenCards.Core.Data.AchieveIconData>')
+	output:PutS64(data.Power)
+	output:PutBool(data.IsRobot)
+	output:PutS32(data.Gender)
+	output:PutS32(data.TotalFightCountInSeason)
+	output:PutBool(data.FightResult)
+	output:PutS32(data.Tier)
+	output:PutS32(data.SlotScore)
+	output:PutS32(data.RobotLibraryId)
+end
+
+
+function _M.Read(input,data)
+		
+	data.UUID = input:GetUTF()
+	data.RoleUUID = input:GetUTF()
+	data.Score = input:GetS32()
+	data.Rank = input:GetS32()
+	data.Icon = input:GetUTF()
+	data.IconBox = input:GetUTF()
+	data.Name = input:GetUTF()
+	data.Level = input:GetS32()
+	data.DreamlandNameplate = input:GetS32()
+	data.AchieveIcon = input:GetMap(input.GetS32, function(_) return input:GetMap(input.GetS32, input.GetOBJ,'int', 'OpenCards.Core.Data.AchieveIconData') end,'int', 'DeepCore.HashMap<int, OpenCards.Core.Data.AchieveIconData>')
+	data.Power = input:GetS64()
+	data.IsRobot = input:GetBool()
+	data.Gender = input:GetS32()
+	data.TotalFightCountInSeason = input:GetS32()
+	data.FightResult = input:GetBool()
+	data.Tier = input:GetS32()
+	data.SlotScore = input:GetS32()
+	data.RobotLibraryId = input:GetS32()
+end
+
+

+ 72 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientRoleData.lua

@@ -0,0 +1,72 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientRoleData
+
+
+local _M = {MessageID = 0x00022001,Name = 'OpenCards.Core.Data.ClientRoleData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022001] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientRoleData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.RoleUUID)
+	output:PutS32(data.NumberId)
+	output:PutUTF(data.AccountUUID)
+	output:PutUTF(data.Name)
+	output:PutS32(data.Level)
+	output:PutS32(data.Exp)
+	output:PutS32(data.VipLevel)
+	output:PutS32(data.VipExp)
+	output:PutS64(data.ServerTime)
+	output:PutUTF(data.Icon)
+	output:PutMap(data.ChapterMap, output.PutS32, output.PutS32,'int', 'int')
+	output:PutS64(data.CreateTime)
+	output:PutS32(data.AccumulativeCount)
+	output:PutS64(data.Coin)
+	output:PutS32(data.Diamond)
+	output:PutS32(data.FreeDiamond)
+	output:PutS32(data.FriendPoint)
+	output:PutS64(data.HeroExp)
+	output:PutS32(data.Gender)
+	output:PutS32(data.NowPower)
+	output:PutS64(data.HighestPower)
+	output:PutUTF(data.GuildUuid)
+	output:PutUTF(data.IconBox)
+end
+
+
+function _M.Read(input,data)
+		
+	data.RoleUUID = input:GetUTF()
+	data.NumberId = input:GetS32()
+	data.AccountUUID = input:GetUTF()
+	data.Name = input:GetUTF()
+	data.Level = input:GetS32()
+	data.Exp = input:GetS32()
+	data.VipLevel = input:GetS32()
+	data.VipExp = input:GetS32()
+	data.ServerTime = input:GetS64()
+	data.Icon = input:GetUTF()
+	data.ChapterMap = input:GetMap(input.GetS32, input.GetS32,'int', 'int')
+	data.CreateTime = input:GetS64()
+	data.AccumulativeCount = input:GetS32()
+	data.Coin = input:GetS64()
+	data.Diamond = input:GetS32()
+	data.FreeDiamond = input:GetS32()
+	data.FriendPoint = input:GetS32()
+	data.HeroExp = input:GetS64()
+	data.Gender = input:GetS32()
+	data.NowPower = input:GetS32()
+	data.HighestPower = input:GetS64()
+	data.GuildUuid = input:GetUTF()
+	data.IconBox = input:GetUTF()
+end
+
+

+ 42 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientRoleListItemData.lua

@@ -0,0 +1,42 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientRoleListItemData
+
+
+local _M = {MessageID = 0x00022002,Name = 'OpenCards.Core.Data.ClientRoleListItemData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022002] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientRoleListItemData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.RoleUUID)
+	output:PutUTF(data.AccountUUID)
+	output:PutUTF(data.Name)
+	output:PutS32(data.Level)
+	output:PutS32(data.Gender)
+	output:PutUTF(data.Icon)
+	output:PutUTF(data.IconBox)
+	output:PutUTF(data.ServerID)
+end
+
+
+function _M.Read(input,data)
+		
+	data.RoleUUID = input:GetUTF()
+	data.AccountUUID = input:GetUTF()
+	data.Name = input:GetUTF()
+	data.Level = input:GetS32()
+	data.Gender = input:GetS32()
+	data.Icon = input:GetUTF()
+	data.IconBox = input:GetUTF()
+	data.ServerID = input:GetUTF()
+end
+
+

+ 46 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientSecretCaveBaseRoleSnap.lua

@@ -0,0 +1,46 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientSecretCaveBaseRoleSnap
+
+
+local _M = {MessageID = 0x00022588,Name = 'OpenCards.Core.Data.ClientSecretCaveBaseRoleSnap'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022588] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientSecretCaveBaseRoleSnap'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.RoleID)
+	output:PutUTF(data.Name)
+	output:PutS32(data.Gender)
+	output:PutS32(data.Level)
+	output:PutUTF(data.Icon)
+	output:PutUTF(data.IconBox)
+	output:PutUTF(data.GuildID)
+	output:PutUTF(data.GuildName)
+	output:PutUTF(data.DreamStep)
+	output:PutUTF(data.ServerID)
+end
+
+
+function _M.Read(input,data)
+		
+	data.RoleID = input:GetUTF()
+	data.Name = input:GetUTF()
+	data.Gender = input:GetS32()
+	data.Level = input:GetS32()
+	data.Icon = input:GetUTF()
+	data.IconBox = input:GetUTF()
+	data.GuildID = input:GetUTF()
+	data.GuildName = input:GetUTF()
+	data.DreamStep = input:GetUTF()
+	data.ServerID = input:GetUTF()
+end
+
+

+ 30 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientSecretCaveDream.lua

@@ -0,0 +1,30 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientSecretCaveDream
+
+
+local _M = {MessageID = 0x0002258C,Name = 'OpenCards.Core.Data.ClientSecretCaveDream'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x0002258C] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientSecretCaveDream'] = _M
+
+function _M.Write(output,data)
+	Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientSecretCaveBaseRoleSnap'].Write(output, data)
+	output:PutS32(data.Score)
+	output:PutDateTime(data.FinishTime)
+end
+
+
+function _M.Read(input,data)
+	Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientSecretCaveBaseRoleSnap'].Read(input, data)
+	data.Score = input:GetS32()
+	data.FinishTime = input:GetDateTime()
+end
+
+

+ 42 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientSecretCaveEntry.lua

@@ -0,0 +1,42 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientSecretCaveEntry
+
+
+local _M = {MessageID = 0x00022587,Name = 'OpenCards.Core.Data.ClientSecretCaveEntry'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022587] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientSecretCaveEntry'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.RoleID)
+	output:PutS64(data.TopDamage)
+	output:PutS32(data.BattleCount)
+	output:PutS32(data.LegendScore)
+	output:PutS32(data.Layer)
+	output:PutS32(data.BuyCount)
+	output:PutS32(data.Rank)
+	output:PutS32(data.Grade)
+end
+
+
+function _M.Read(input,data)
+		
+	data.RoleID = input:GetUTF()
+	data.TopDamage = input:GetS64()
+	data.BattleCount = input:GetS32()
+	data.LegendScore = input:GetS32()
+	data.Layer = input:GetS32()
+	data.BuyCount = input:GetS32()
+	data.Rank = input:GetS32()
+	data.Grade = input:GetS32()
+end
+
+

+ 36 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientSecretCaveRank.lua

@@ -0,0 +1,36 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientSecretCaveRank
+
+
+local _M = {MessageID = 0x00022589,Name = 'OpenCards.Core.Data.ClientSecretCaveRank'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022589] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientSecretCaveRank'] = _M
+
+function _M.Write(output,data)
+	Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientSecretCaveBaseRoleSnap'].Write(output, data)
+	output:PutS64(data.TopDamage)
+	output:PutS32(data.Rank)
+	output:PutS32(data.Grade)
+	output:PutBool(data.IsFriend)
+	output:PutS32(data.Priority)
+end
+
+
+function _M.Read(input,data)
+	Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientSecretCaveBaseRoleSnap'].Read(input, data)
+	data.TopDamage = input:GetS64()
+	data.Rank = input:GetS32()
+	data.Grade = input:GetS32()
+	data.IsFriend = input:GetBool()
+	data.Priority = input:GetS32()
+end
+
+

+ 42 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientServerData.lua

@@ -0,0 +1,42 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientServerData
+
+
+local _M = {MessageID = 0x00022003,Name = 'OpenCards.Core.Data.ClientServerData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022003] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientServerData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.ID)
+	output:PutUTF(data.Name)
+	output:PutUTF(data.Address)
+	output:PutS32(data.State)
+	output:PutBool(data.IsOpen)
+	output:PutS32(data.Index)
+	output:PutS32(data.Capacity)
+	output:PutBool(data.IsFull)
+end
+
+
+function _M.Read(input,data)
+		
+	data.ID = input:GetS32()
+	data.Name = input:GetUTF()
+	data.Address = input:GetUTF()
+	data.State = input:GetS32()
+	data.IsOpen = input:GetBool()
+	data.Index = input:GetS32()
+	data.Capacity = input:GetS32()
+	data.IsFull = input:GetBool()
+end
+
+

+ 32 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientSoulEchoRecordData.lua

@@ -0,0 +1,32 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientSoulEchoRecordData
+
+
+local _M = {MessageID = 0x00023201,Name = 'OpenCards.Core.Data.ClientSoulEchoRecordData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023201] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientSoulEchoRecordData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.HeroConfigId)
+	output:PutS32(data.Quality)
+	output:PutS32(data.ItemNum)
+end
+
+
+function _M.Read(input,data)
+		
+	data.HeroConfigId = input:GetS32()
+	data.Quality = input:GetS32()
+	data.ItemNum = input:GetS32()
+end
+
+

+ 48 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientStageHistoryRoleInfo.lua

@@ -0,0 +1,48 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientStageHistoryRoleInfo
+
+
+local _M = {MessageID = 0x132D0BA7,Name = 'OpenCards.Core.Data.ClientStageHistoryRoleInfo'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x132D0BA7] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientStageHistoryRoleInfo'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.RoleUUID)
+	output:PutUTF(data.ServerID)
+	output:PutUTF(data.Icon)
+	output:PutUTF(data.IconBox)
+	output:PutS32(data.Level)
+	output:PutUTF(data.Name)
+	output:PutS32(data.Gender)
+	output:PutS64(data.Power)
+	output:PutUTF(data.RecordUUID)
+	output:PutEnum8(data.RoleType)
+	output:PutList(data.Heroes, output.PutOBJ,'OpenCards.Core.ORM.SingleSlotData')
+end
+
+
+function _M.Read(input,data)
+		
+	data.RoleUUID = input:GetUTF()
+	data.ServerID = input:GetUTF()
+	data.Icon = input:GetUTF()
+	data.IconBox = input:GetUTF()
+	data.Level = input:GetS32()
+	data.Name = input:GetUTF()
+	data.Gender = input:GetS32()
+	data.Power = input:GetS64()
+	data.RecordUUID = input:GetUTF()
+	data.RoleType = input:GetEnum8()
+	data.Heroes = input:GetList(input.GetOBJ,'OpenCards.Core.ORM.SingleSlotData')
+end
+
+

+ 38 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientVoidGuestData.lua

@@ -0,0 +1,38 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientVoidGuestData
+
+
+local _M = {MessageID = 0x27CA4F65,Name = 'OpenCards.Core.Data.ClientVoidGuestData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x27CA4F65] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientVoidGuestData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.VoidGuestConfigId)
+	output:PutS32(data.HeroConfigId)
+	output:PutUTF(data.HeroUuid)
+	output:PutBool(data.IsInTrial)
+	output:PutS64(data.ActivityCountdownTime)
+	output:PutS64(data.ExchangeOpenCountdownTime)
+end
+
+
+function _M.Read(input,data)
+		
+	data.VoidGuestConfigId = input:GetS32()
+	data.HeroConfigId = input:GetS32()
+	data.HeroUuid = input:GetUTF()
+	data.IsInTrial = input:GetBool()
+	data.ActivityCountdownTime = input:GetS64()
+	data.ExchangeOpenCountdownTime = input:GetS64()
+end
+
+

+ 44 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientWishSummonBossChallengeRankItem.lua

@@ -0,0 +1,44 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientWishSummonBossChallengeRankItem
+
+
+local _M = {MessageID = 0x00040502,Name = 'OpenCards.Core.Data.ClientWishSummonBossChallengeRankItem'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00040502] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientWishSummonBossChallengeRankItem'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.RoleUUID)
+	output:PutUTF(data.ServerID)
+	output:PutS32(data.Rank)
+	output:PutUTF(data.FightUUID)
+	output:PutF64(data.DamageValue)
+	output:PutUTF(data.Icon)
+	output:PutUTF(data.IconBox)
+	output:PutUTF(data.Name)
+	output:PutS32(data.Level)
+end
+
+
+function _M.Read(input,data)
+		
+	data.RoleUUID = input:GetUTF()
+	data.ServerID = input:GetUTF()
+	data.Rank = input:GetS32()
+	data.FightUUID = input:GetUTF()
+	data.DamageValue = input:GetF64()
+	data.Icon = input:GetUTF()
+	data.IconBox = input:GetUTF()
+	data.Name = input:GetUTF()
+	data.Level = input:GetS32()
+end
+
+

+ 42 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ClientWorldMapRoleInfo.lua

@@ -0,0 +1,42 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ClientWorldMapRoleInfo
+
+
+local _M = {MessageID = 0x22B052C3,Name = 'OpenCards.Core.Data.ClientWorldMapRoleInfo'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x22B052C3] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ClientWorldMapRoleInfo'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.RoleUUID)
+	output:PutUTF(data.ServerID)
+	output:PutUTF(data.Icon)
+	output:PutUTF(data.IconBox)
+	output:PutS32(data.Level)
+	output:PutUTF(data.Name)
+	output:PutS32(data.Gender)
+	output:PutEnum8(data.RoleType)
+end
+
+
+function _M.Read(input,data)
+		
+	data.RoleUUID = input:GetUTF()
+	data.ServerID = input:GetUTF()
+	data.Icon = input:GetUTF()
+	data.IconBox = input:GetUTF()
+	data.Level = input:GetS32()
+	data.Name = input:GetUTF()
+	data.Gender = input:GetS32()
+	data.RoleType = input:GetEnum8()
+end
+
+

+ 32 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.DotDataItemInfo.lua

@@ -0,0 +1,32 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.DotDataItemInfo
+
+
+local _M = {MessageID = 0x10EB1D96,Name = 'OpenCards.Core.Data.DotDataItemInfo'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x10EB1D96] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.DotDataItemInfo'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.ConfigId)
+	output:PutUTF(data.ItemName)
+	output:PutS32(data.Count)
+end
+
+
+function _M.Read(input,data)
+		
+	data.ConfigId = input:GetS32()
+	data.ItemName = input:GetUTF()
+	data.Count = input:GetS32()
+end
+
+

+ 32 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.DrawRecord.lua

@@ -0,0 +1,32 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.DrawRecord
+
+
+local _M = {MessageID = 0x00022584,Name = 'OpenCards.Core.Data.DrawRecord'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022584] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.DrawRecord'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.DrawItemID)
+	output:PutS32(data.DrawItemNum)
+	output:PutDateTime(data.DrawTime)
+end
+
+
+function _M.Read(input,data)
+		
+	data.DrawItemID = input:GetS32()
+	data.DrawItemNum = input:GetS32()
+	data.DrawTime = input:GetDateTime()
+end
+
+

+ 30 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.DropItemSet.lua

@@ -0,0 +1,30 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.DropItemSet
+
+
+local _M = {MessageID = 0x5AF5DB22,Name = 'OpenCards.Core.Data.DropItemSet'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x5AF5DB22] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.DropItemSet'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.ItemSetID)
+	output:PutS32(data.ItemSetNum)
+end
+
+
+function _M.Read(input,data)
+		
+	data.ItemSetID = input:GetS32()
+	data.ItemSetNum = input:GetS32()
+end
+
+

+ 34 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.DropItemSetDynamic.lua

@@ -0,0 +1,34 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.DropItemSetDynamic
+
+
+local _M = {MessageID = 0x084D78F1,Name = 'OpenCards.Core.Data.DropItemSetDynamic'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x084D78F1] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.DropItemSetDynamic'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.ItemSetID)
+	output:PutS32(data.ItemSetNum)
+	output:PutS32(data.DropGroupID)
+	output:PutS32(data.DropTeamID)
+end
+
+
+function _M.Read(input,data)
+		
+	data.ItemSetID = input:GetS32()
+	data.ItemSetNum = input:GetS32()
+	data.DropGroupID = input:GetS32()
+	data.DropTeamID = input:GetS32()
+end
+
+

+ 36 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.EquipDigInfo.lua

@@ -0,0 +1,36 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.EquipDigInfo
+
+
+local _M = {MessageID = 0x5DBF408E,Name = 'OpenCards.Core.Data.EquipDigInfo'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x5DBF408E] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.EquipDigInfo'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.EquipID)
+	output:PutS32(data.EquipName)
+	output:PutS32(data.EquipQuality)
+	output:PutS32(data.EquipLevel)
+	output:PutS32(data.EquipT)
+end
+
+
+function _M.Read(input,data)
+		
+	data.EquipID = input:GetS32()
+	data.EquipName = input:GetS32()
+	data.EquipQuality = input:GetS32()
+	data.EquipLevel = input:GetS32()
+	data.EquipT = input:GetS32()
+end
+
+

+ 48 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.FansPlayerData.lua

@@ -0,0 +1,48 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.FansPlayerData
+
+
+local _M = {MessageID = 0x00023105,Name = 'OpenCards.Core.Data.FansPlayerData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023105] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.FansPlayerData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.uuid)
+	output:PutS32(data.level)
+	output:PutUTF(data.name)
+	output:PutUTF(data.icon)
+	output:PutUTF(data.frame)
+	output:PutS32(data.gender)
+	output:PutUTF(data.attentionTime)
+	output:PutS64(data.power)
+	output:PutS32(data.fansCount)
+	output:PutS64(data.offLineTime)
+	output:PutS32(data.mainPro)
+end
+
+
+function _M.Read(input,data)
+		
+	data.uuid = input:GetUTF()
+	data.level = input:GetS32()
+	data.name = input:GetUTF()
+	data.icon = input:GetUTF()
+	data.frame = input:GetUTF()
+	data.gender = input:GetS32()
+	data.attentionTime = input:GetUTF()
+	data.power = input:GetS64()
+	data.fansCount = input:GetS32()
+	data.offLineTime = input:GetS64()
+	data.mainPro = input:GetS32()
+end
+
+

+ 36 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.FettersHeroBuffData.lua

@@ -0,0 +1,36 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.FettersHeroBuffData
+
+
+local _M = {MessageID = 0x00023005,Name = 'OpenCards.Core.Data.FettersHeroBuffData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023005] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.FettersHeroBuffData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.RewardID)
+	output:PutS32(data.RewardNum)
+	output:PutArray(data.RewardTypse, output.PutS32,'int')
+	output:PutArray(data.RewardNumbers, output.PutS32,'int')
+	output:PutArray(data.IsPerForRewards, output.PutBool,'bool')
+end
+
+
+function _M.Read(input,data)
+		
+	data.RewardID = input:GetS32()
+	data.RewardNum = input:GetS32()
+	data.RewardTypse = input:GetArray(input.GetS32,'int')
+	data.RewardNumbers = input:GetArray(input.GetS32,'int')
+	data.IsPerForRewards = input:GetArray(input.GetBool,'bool')
+end
+
+

+ 30 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.FindPlayerData.lua

@@ -0,0 +1,30 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.FindPlayerData
+
+
+local _M = {MessageID = 0x00022701,Name = 'OpenCards.Core.Data.FindPlayerData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022701] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.FindPlayerData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutOBJ(data.Player,'OpenCards.Core.ORM.PlayerData')
+	output:PutBool(data.IsApply)
+end
+
+
+function _M.Read(input,data)
+		
+	data.Player = input:GetOBJ('OpenCards.Core.ORM.PlayerData')
+	data.IsApply = input:GetBool()
+end
+
+

+ 32 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ForeignAidHeroUseInfo.lua

@@ -0,0 +1,32 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ForeignAidHeroUseInfo
+
+
+local _M = {MessageID = 0x45079FBD,Name = 'OpenCards.Core.Data.ForeignAidHeroUseInfo'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x45079FBD] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ForeignAidHeroUseInfo'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.userUUID)
+	output:PutUTF(data.userName)
+	output:PutS32(data.foreignAidHeroUseStatus)
+end
+
+
+function _M.Read(input,data)
+		
+	data.userUUID = input:GetUTF()
+	data.userName = input:GetUTF()
+	data.foreignAidHeroUseStatus = input:GetS32()
+end
+
+

+ 34 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ForeignAidItemData.lua

@@ -0,0 +1,34 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ForeignAidItemData
+
+
+local _M = {MessageID = 0x00023003,Name = 'OpenCards.Core.Data.ForeignAidItemData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023003] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ForeignAidItemData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.heroUUID)
+	output:PutS64(data.fireTimetemp)
+	output:PutS32(data.positionIndex)
+	output:PutList(data.heroUseInfos, output.PutOBJ,'OpenCards.Core.Data.ForeignAidHeroUseInfo')
+end
+
+
+function _M.Read(input,data)
+		
+	data.heroUUID = input:GetUTF()
+	data.fireTimetemp = input:GetS64()
+	data.positionIndex = input:GetS32()
+	data.heroUseInfos = input:GetList(input.GetOBJ,'OpenCards.Core.Data.ForeignAidHeroUseInfo')
+end
+
+

+ 30 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.FormationRoleData.lua

@@ -0,0 +1,30 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.FormationRoleData
+
+
+local _M = {MessageID = 0x00023106,Name = 'OpenCards.Core.Data.FormationRoleData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023106] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.FormationRoleData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS64(data.Power)
+	output:PutOBJ(data.Formation,'OpenCards.Core.ORM.FormationData')
+end
+
+
+function _M.Read(input,data)
+		
+	data.Power = input:GetS64()
+	data.Formation = input:GetOBJ('OpenCards.Core.ORM.FormationData')
+end
+
+

+ 32 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.FriendData.lua

@@ -0,0 +1,32 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.FriendData
+
+
+local _M = {MessageID = 0x00022702,Name = 'OpenCards.Core.Data.FriendData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022702] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.FriendData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutOBJ(data.Player,'OpenCards.Core.ORM.PlayerData')
+	output:PutBool(data.IsGive)
+	output:PutEnum8(data.Status)
+end
+
+
+function _M.Read(input,data)
+		
+	data.Player = input:GetOBJ('OpenCards.Core.ORM.PlayerData')
+	data.IsGive = input:GetBool()
+	data.Status = input:GetEnum8()
+end
+
+

+ 46 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.GuildHunterBossInfo.lua

@@ -0,0 +1,46 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.GuildHunterBossInfo
+
+
+local _M = {MessageID = 0x00022581,Name = 'OpenCards.Core.Data.GuildHunterBossInfo'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022581] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.GuildHunterBossInfo'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.BossID)
+	output:PutUTF(data.TopDamagePlayer)
+	output:PutS64(data.TopDamage)
+	output:PutDateTime(data.OverTime)
+	output:PutS32(data.BattleCount)
+	output:PutS32(data.MaxCount)
+	output:PutBool(data.ShowSweep)
+	output:PutS64(data.LastDamage)
+	output:PutList(data.LastGainItemList, output.PutOBJ,'OpenCards.Core.Data.ItemInstanceData')
+	output:PutOBJ(data.TopDamagePlayerInfo,'OpenCards.Core.Data.ClientSecretCaveBaseRoleSnap')
+end
+
+
+function _M.Read(input,data)
+		
+	data.BossID = input:GetS32()
+	data.TopDamagePlayer = input:GetUTF()
+	data.TopDamage = input:GetS64()
+	data.OverTime = input:GetDateTime()
+	data.BattleCount = input:GetS32()
+	data.MaxCount = input:GetS32()
+	data.ShowSweep = input:GetBool()
+	data.LastDamage = input:GetS64()
+	data.LastGainItemList = input:GetList(input.GetOBJ,'OpenCards.Core.Data.ItemInstanceData')
+	data.TopDamagePlayerInfo = input:GetOBJ('OpenCards.Core.Data.ClientSecretCaveBaseRoleSnap')
+end
+
+

+ 34 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.GuildLayerRankScore.lua

@@ -0,0 +1,34 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.GuildLayerRankScore
+
+
+local _M = {MessageID = 0x0002258B,Name = 'OpenCards.Core.Data.GuildLayerRankScore'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x0002258B] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.GuildLayerRankScore'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.Layer)
+	output:PutS32(data.Rank)
+	output:PutS32(data.Score)
+	output:PutS32(data.Grade)
+end
+
+
+function _M.Read(input,data)
+		
+	data.Layer = input:GetS32()
+	data.Rank = input:GetS32()
+	data.Score = input:GetS32()
+	data.Grade = input:GetS32()
+end
+
+

+ 32 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.GuildSecretCaveInfo.lua

@@ -0,0 +1,32 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.GuildSecretCaveInfo
+
+
+local _M = {MessageID = 0x00022586,Name = 'OpenCards.Core.Data.GuildSecretCaveInfo'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022586] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.GuildSecretCaveInfo'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutBool(data.IsOpen)
+	output:PutDateTime(data.FinishTime)
+	output:PutS32(data.BattleCount)
+end
+
+
+function _M.Read(input,data)
+		
+	data.IsOpen = input:GetBool()
+	data.FinishTime = input:GetDateTime()
+	data.BattleCount = input:GetS32()
+end
+
+

+ 44 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.GuildWarriorTreasureEntry.lua

@@ -0,0 +1,44 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.GuildWarriorTreasureEntry
+
+
+local _M = {MessageID = 0x00022583,Name = 'OpenCards.Core.Data.GuildWarriorTreasureEntry'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022583] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.GuildWarriorTreasureEntry'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.WarriorTreasureID)
+	output:PutS32(data.RemainderCount)
+	output:PutS64(data.CreateTime)
+	output:PutDateTime(data.ExpireTime)
+	output:PutS32(data.ConfigID)
+	output:PutList(data.Args, output.PutUTF,'string')
+	output:PutS32(data.RemainderItemNum)
+	output:PutS32(data.ItemID)
+	output:PutMap(data.MemberDrawRecord, output.PutUTF, output.PutOBJ,'string', 'OpenCards.Core.Data.DrawRecord')
+end
+
+
+function _M.Read(input,data)
+		
+	data.WarriorTreasureID = input:GetUTF()
+	data.RemainderCount = input:GetS32()
+	data.CreateTime = input:GetS64()
+	data.ExpireTime = input:GetDateTime()
+	data.ConfigID = input:GetS32()
+	data.Args = input:GetList(input.GetUTF,'string')
+	data.RemainderItemNum = input:GetS32()
+	data.ItemID = input:GetS32()
+	data.MemberDrawRecord = input:GetMap(input.GetUTF, input.GetOBJ,'string', 'OpenCards.Core.Data.DrawRecord')
+end
+
+

+ 44 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.HeroDigInfo.lua

@@ -0,0 +1,44 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.HeroDigInfo
+
+
+local _M = {MessageID = 0x50535CB0,Name = 'OpenCards.Core.Data.HeroDigInfo'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x50535CB0] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.HeroDigInfo'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.HeroUUID)
+	output:PutS32(data.HeroID)
+	output:PutUTF(data.HeroName)
+	output:PutS32(data.HeroLevel)
+	output:PutS32(data.HeroQuality)
+	output:PutS32(data.HeroRarity)
+	output:PutMap(data.EquipDataList, output.PutS32, output.PutOBJ,'int', 'OpenCards.Core.Data.EquipDigInfo')
+	output:PutS32(data.SpEquipID)
+	output:PutS32(data.SpEquipLevel)
+end
+
+
+function _M.Read(input,data)
+		
+	data.HeroUUID = input:GetUTF()
+	data.HeroID = input:GetS32()
+	data.HeroName = input:GetUTF()
+	data.HeroLevel = input:GetS32()
+	data.HeroQuality = input:GetS32()
+	data.HeroRarity = input:GetS32()
+	data.EquipDataList = input:GetMap(input.GetS32, input.GetOBJ,'int', 'OpenCards.Core.Data.EquipDigInfo')
+	data.SpEquipID = input:GetS32()
+	data.SpEquipLevel = input:GetS32()
+end
+
+

+ 32 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.HeroFullData.lua

@@ -0,0 +1,32 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.HeroFullData
+
+
+local _M = {MessageID = 0x00023104,Name = 'OpenCards.Core.Data.HeroFullData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023104] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.HeroFullData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutOBJ(data.HeroData,'OpenCards.Core.ORM.HeroData')
+	output:PutMap(data.Equips, output.PutS32, output.PutOBJ,'int', 'OpenCards.Core.ORM.EquipData')
+	output:PutOBJ(data.ArtifactData,'OpenCards.Core.ORM.ArtifactData')
+end
+
+
+function _M.Read(input,data)
+		
+	data.HeroData = input:GetOBJ('OpenCards.Core.ORM.HeroData')
+	data.Equips = input:GetMap(input.GetS32, input.GetOBJ,'int', 'OpenCards.Core.ORM.EquipData')
+	data.ArtifactData = input:GetOBJ('OpenCards.Core.ORM.ArtifactData')
+end
+
+

+ 36 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.HeroHeadData.lua

@@ -0,0 +1,36 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.HeroHeadData
+
+
+local _M = {MessageID = 0x00023102,Name = 'OpenCards.Core.Data.HeroHeadData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023102] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.HeroHeadData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.heroUuid)
+	output:PutS32(data.HeroID)
+	output:PutS32(data.SlotId)
+	output:PutS32(data.Level)
+	output:PutS32(data.Quality)
+end
+
+
+function _M.Read(input,data)
+		
+	data.heroUuid = input:GetUTF()
+	data.HeroID = input:GetS32()
+	data.SlotId = input:GetS32()
+	data.Level = input:GetS32()
+	data.Quality = input:GetS32()
+end
+
+

+ 40 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.HistoricalArchivesItemData.lua

@@ -0,0 +1,40 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.HistoricalArchivesItemData
+
+
+local _M = {MessageID = 0x00023002,Name = 'OpenCards.Core.Data.HistoricalArchivesItemData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023002] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.HistoricalArchivesItemData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.heroID)
+	output:PutUTF(data.userUUID)
+	output:PutUTF(data.heroUUID)
+	output:PutUTF(data.userName)
+	output:PutS32(data.heroQuality)
+	output:PutS32(data.heroStatus)
+	output:PutBool(data.isExistBetterSelect)
+end
+
+
+function _M.Read(input,data)
+		
+	data.heroID = input:GetS32()
+	data.userUUID = input:GetUTF()
+	data.heroUUID = input:GetUTF()
+	data.userName = input:GetUTF()
+	data.heroQuality = input:GetS32()
+	data.heroStatus = input:GetS32()
+	data.isExistBetterSelect = input:GetBool()
+end
+
+

+ 30 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.HistoricalArchivesListDataDto.lua

@@ -0,0 +1,30 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.HistoricalArchivesListDataDto
+
+
+local _M = {MessageID = 0x00023001,Name = 'OpenCards.Core.Data.HistoricalArchivesListDataDto'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023001] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.HistoricalArchivesListDataDto'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutMap(data.dataList, output.PutS32, function(_,v1) output:PutMap(v1, output.PutS32, output.PutOBJ,'int', 'OpenCards.Core.Data.HistoricalArchivesItemData') end,'int', 'DeepCore.HashMap<int, OpenCards.Core.Data.HistoricalArchivesItemData>')
+	output:PutMap(data.tipsList, output.PutS32, output.PutS32,'int', 'int')
+end
+
+
+function _M.Read(input,data)
+		
+	data.dataList = input:GetMap(input.GetS32, function(_) return input:GetMap(input.GetS32, input.GetOBJ,'int', 'OpenCards.Core.Data.HistoricalArchivesItemData') end,'int', 'DeepCore.HashMap<int, OpenCards.Core.Data.HistoricalArchivesItemData>')
+	data.tipsList = input:GetMap(input.GetS32, input.GetS32,'int', 'int')
+end
+
+

+ 42 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ItemInstanceData.lua

@@ -0,0 +1,42 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ItemInstanceData
+
+
+local _M = {MessageID = 0x00022101,Name = 'OpenCards.Core.Data.ItemInstanceData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022101] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ItemInstanceData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.ItemId)
+	output:PutS32(data.ItemType)
+	output:PutS32(data.Count)
+	output:PutS32(data.HeroRare)
+	output:PutS32(data.HeroLevel)
+	output:PutS32(data.WeaponRace)
+	output:PutS32(data.PackageType)
+	output:PutS32(data.WeaponLevel)
+end
+
+
+function _M.Read(input,data)
+		
+	data.ItemId = input:GetS32()
+	data.ItemType = input:GetS32()
+	data.Count = input:GetS32()
+	data.HeroRare = input:GetS32()
+	data.HeroLevel = input:GetS32()
+	data.WeaponRace = input:GetS32()
+	data.PackageType = input:GetS32()
+	data.WeaponLevel = input:GetS32()
+end
+
+

+ 28 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ItemInstanceDataAddition.lua

@@ -0,0 +1,28 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ItemInstanceDataAddition
+
+
+local _M = {MessageID = 0x00022102,Name = 'OpenCards.Core.Data.ItemInstanceDataAddition'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022102] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ItemInstanceDataAddition'] = _M
+
+function _M.Write(output,data)
+	Protocol.Serializer.StringDefined['OpenCards.Core.Data.ItemInstanceData'].Write(output, data)
+	output:PutS32(data.AdditionReason)
+end
+
+
+function _M.Read(input,data)
+	Protocol.Serializer.StringDefined['OpenCards.Core.Data.ItemInstanceData'].Read(input, data)
+	data.AdditionReason = input:GetS32()
+end
+
+

+ 30 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.MagicTopHatRewardHistoryDtoData.lua

@@ -0,0 +1,30 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.MagicTopHatRewardHistoryDtoData
+
+
+local _M = {MessageID = 0x00023604,Name = 'OpenCards.Core.Data.MagicTopHatRewardHistoryDtoData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023604] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.MagicTopHatRewardHistoryDtoData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS64(data.timestamp)
+	output:PutList(data.rewardContent, output.PutOBJ,'OpenCards.Core.ORM.MagicTopHatRewardRecordItemByEachData')
+end
+
+
+function _M.Read(input,data)
+		
+	data.timestamp = input:GetS64()
+	data.rewardContent = input:GetList(input.GetOBJ,'OpenCards.Core.ORM.MagicTopHatRewardRecordItemByEachData')
+end
+
+

+ 34 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.MarketPackageAward.lua

@@ -0,0 +1,34 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.MarketPackageAward
+
+
+local _M = {MessageID = 0x00023904,Name = 'OpenCards.Core.Data.MarketPackageAward'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023904] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.MarketPackageAward'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.ID)
+	output:PutS32(data.Refresh)
+	output:PutS32(data.Stock)
+	output:PutList(data.ExtraData, output.PutS32,'int')
+end
+
+
+function _M.Read(input,data)
+		
+	data.ID = input:GetS32()
+	data.Refresh = input:GetS32()
+	data.Stock = input:GetS32()
+	data.ExtraData = input:GetList(input.GetS32,'int')
+end
+
+

+ 30 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.MarketPackageData.lua

@@ -0,0 +1,30 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.MarketPackageData
+
+
+local _M = {MessageID = 0x00023903,Name = 'OpenCards.Core.Data.MarketPackageData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023903] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.MarketPackageData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutMap(data.Ext, output.PutUTF, output.PutS64,'string', 'long')
+	output:PutList(data.Award, output.PutOBJ,'OpenCards.Core.Data.MarketPackageAward')
+end
+
+
+function _M.Read(input,data)
+		
+	data.Ext = input:GetMap(input.GetUTF, input.GetS64,'string', 'long')
+	data.Award = input:GetList(input.GetOBJ,'OpenCards.Core.Data.MarketPackageAward')
+end
+
+

+ 32 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.MarketPushData.lua

@@ -0,0 +1,32 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.MarketPushData
+
+
+local _M = {MessageID = 0x00023905,Name = 'OpenCards.Core.Data.MarketPushData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023905] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.MarketPushData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.ID)
+	output:PutS32(data.LeftTime)
+	output:PutMap(data.GiftDataMap, output.PutS32, function(_,v1) output:PutList(v1, output.PutS32, 'int') end,'int', 'System.Collections.Generic.List<int>')
+end
+
+
+function _M.Read(input,data)
+		
+	data.ID = input:GetS32()
+	data.LeftTime = input:GetS32()
+	data.GiftDataMap = input:GetMap(input.GetS32, function(_) return input:GetList(input.GetS32,'int') end,'int', 'System.Collections.Generic.List<int>')
+end
+
+

+ 38 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.MarketSubTab.lua

@@ -0,0 +1,38 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.MarketSubTab
+
+
+local _M = {MessageID = 0x00023902,Name = 'OpenCards.Core.Data.MarketSubTab'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023902] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.MarketSubTab'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.TimeType)
+	output:PutS64(data.StartTime)
+	output:PutS64(data.EndTime)
+	output:PutS32(data.State)
+	output:PutS32(data.Refresh)
+	output:PutMap(data.MarketPackageMap, output.PutS32, output.PutOBJ,'int', 'OpenCards.Core.Data.MarketPackageData')
+end
+
+
+function _M.Read(input,data)
+		
+	data.TimeType = input:GetS32()
+	data.StartTime = input:GetS64()
+	data.EndTime = input:GetS64()
+	data.State = input:GetS32()
+	data.Refresh = input:GetS32()
+	data.MarketPackageMap = input:GetMap(input.GetS32, input.GetOBJ,'int', 'OpenCards.Core.Data.MarketPackageData')
+end
+
+

+ 30 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.MarketTab.lua

@@ -0,0 +1,30 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.MarketTab
+
+
+local _M = {MessageID = 0x00023901,Name = 'OpenCards.Core.Data.MarketTab'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023901] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.MarketTab'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutS32(data.ID)
+	output:PutMap(data.MarketSubMap, output.PutS32, output.PutOBJ,'int', 'OpenCards.Core.Data.MarketSubTab')
+end
+
+
+function _M.Read(input,data)
+		
+	data.ID = input:GetS32()
+	data.MarketSubMap = input:GetMap(input.GetS32, input.GetOBJ,'int', 'OpenCards.Core.Data.MarketSubTab')
+end
+
+

+ 40 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.MercenaryAppointPlayerData.lua

@@ -0,0 +1,40 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.MercenaryAppointPlayerData
+
+
+local _M = {MessageID = 0x00022706,Name = 'OpenCards.Core.Data.MercenaryAppointPlayerData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022706] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.MercenaryAppointPlayerData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutOBJ(data.Mercenary,'OpenCards.Core.Data.MercenaryData')
+	output:PutUTF(data.OwnerUuid)
+	output:PutUTF(data.OwnerName)
+	output:PutS32(data.OwnerGender)
+	output:PutS32(data.Count)
+	output:PutEnum8(data.Status)
+	output:PutUTF(data.HirerName)
+end
+
+
+function _M.Read(input,data)
+		
+	data.Mercenary = input:GetOBJ('OpenCards.Core.Data.MercenaryData')
+	data.OwnerUuid = input:GetUTF()
+	data.OwnerName = input:GetUTF()
+	data.OwnerGender = input:GetS32()
+	data.Count = input:GetS32()
+	data.Status = input:GetEnum8()
+	data.HirerName = input:GetUTF()
+end
+
+

+ 36 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.MercenaryData.lua

@@ -0,0 +1,36 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.MercenaryData
+
+
+local _M = {MessageID = 0x00022703,Name = 'OpenCards.Core.Data.MercenaryData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022703] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.MercenaryData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.HeroUuid)
+	output:PutS32(data.HeroId)
+	output:PutS32(data.HeroRank)
+	output:PutS32(data.HeroLevel)
+	output:PutS64(data.HeroPower)
+end
+
+
+function _M.Read(input,data)
+		
+	data.HeroUuid = input:GetUTF()
+	data.HeroId = input:GetS32()
+	data.HeroRank = input:GetS32()
+	data.HeroLevel = input:GetS32()
+	data.HeroPower = input:GetS64()
+end
+
+

+ 30 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.PlayerAppointMercenaryData.lua

@@ -0,0 +1,30 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.PlayerAppointMercenaryData
+
+
+local _M = {MessageID = 0x00022704,Name = 'OpenCards.Core.Data.PlayerAppointMercenaryData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022704] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.PlayerAppointMercenaryData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutOBJ(data.Player,'OpenCards.Core.ORM.PlayerData')
+	output:PutOBJ(data.Mercenary,'OpenCards.Core.Data.MercenaryData')
+end
+
+
+function _M.Read(input,data)
+		
+	data.Player = input:GetOBJ('OpenCards.Core.ORM.PlayerData')
+	data.Mercenary = input:GetOBJ('OpenCards.Core.Data.MercenaryData')
+end
+
+

+ 28 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.PlayerScoreRankData.lua

@@ -0,0 +1,28 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.PlayerScoreRankData
+
+
+local _M = {MessageID = 0x00023402,Name = 'OpenCards.Core.Data.PlayerScoreRankData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023402] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.PlayerScoreRankData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutMap(data.rankList, output.PutS32, output.PutOBJ,'int', 'OpenCards.Core.Data.RankRewardData')
+end
+
+
+function _M.Read(input,data)
+		
+	data.rankList = input:GetMap(input.GetS32, input.GetOBJ,'int', 'OpenCards.Core.Data.RankRewardData')
+end
+
+

+ 36 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.PlayerTempMercenaryData.lua

@@ -0,0 +1,36 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.PlayerTempMercenaryData
+
+
+local _M = {MessageID = 0x00022707,Name = 'OpenCards.Core.Data.PlayerTempMercenaryData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022707] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.PlayerTempMercenaryData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutOBJ(data.Player,'OpenCards.Core.ORM.PlayerData')
+	output:PutOBJ(data.Mercenary,'OpenCards.Core.Data.MercenaryData')
+	output:PutS32(data.Count)
+	output:PutEnum8(data.Status)
+	output:PutUTF(data.HirerName)
+end
+
+
+function _M.Read(input,data)
+		
+	data.Player = input:GetOBJ('OpenCards.Core.ORM.PlayerData')
+	data.Mercenary = input:GetOBJ('OpenCards.Core.Data.MercenaryData')
+	data.Count = input:GetS32()
+	data.Status = input:GetEnum8()
+	data.HirerName = input:GetUTF()
+end
+
+

+ 28 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.RankHeroScoreData.lua

@@ -0,0 +1,28 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.RankHeroScoreData
+
+
+local _M = {MessageID = 0x00023401,Name = 'OpenCards.Core.Data.RankHeroScoreData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023401] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.RankHeroScoreData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutMap(data.heroTopScoreList, output.PutS32, output.PutS32,'int', 'int')
+end
+
+
+function _M.Read(input,data)
+		
+	data.heroTopScoreList = input:GetMap(input.GetS32, input.GetS32,'int', 'int')
+end
+
+

+ 28 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.RankLowestMarkData.lua

@@ -0,0 +1,28 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.RankLowestMarkData
+
+
+local _M = {MessageID = 0x00022802,Name = 'OpenCards.Core.Data.RankLowestMarkData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00022802] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.RankLowestMarkData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutMap(data.rankLowestMark, output.PutS32, output.PutS32,'int', 'int')
+end
+
+
+function _M.Read(input,data)
+		
+	data.rankLowestMark = input:GetMap(input.GetS32, input.GetS32,'int', 'int')
+end
+
+

+ 46 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.RankPlayerData.lua

@@ -0,0 +1,46 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.RankPlayerData
+
+
+local _M = {MessageID = 0x00023404,Name = 'OpenCards.Core.Data.RankPlayerData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023404] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.RankPlayerData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.uuid)
+	output:PutUTF(data.dreamStep)
+	output:PutS32(data.level)
+	output:PutUTF(data.name)
+	output:PutUTF(data.icon)
+	output:PutUTF(data.frame)
+	output:PutS32(data.gender)
+	output:PutUTF(data.value)
+	output:PutS64(data.towerTime)
+	output:PutUTF(data.serverID)
+end
+
+
+function _M.Read(input,data)
+		
+	data.uuid = input:GetUTF()
+	data.dreamStep = input:GetUTF()
+	data.level = input:GetS32()
+	data.name = input:GetUTF()
+	data.icon = input:GetUTF()
+	data.frame = input:GetUTF()
+	data.gender = input:GetS32()
+	data.value = input:GetUTF()
+	data.towerTime = input:GetS64()
+	data.serverID = input:GetUTF()
+end
+
+

+ 28 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.RankRewardData.lua

@@ -0,0 +1,28 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.RankRewardData
+
+
+local _M = {MessageID = 0x00023403,Name = 'OpenCards.Core.Data.RankRewardData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x00023403] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.RankRewardData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutMap(data.scoreRankList, output.PutS32, function(_,v1) output:PutMap(v1, output.PutUTF, output.PutS64,'string', 'long') end,'int', 'DeepCore.HashMap<string, long>')
+end
+
+
+function _M.Read(input,data)
+		
+	data.scoreRankList = input:GetMap(input.GetS32, function(_) return input:GetMap(input.GetUTF, input.GetS64,'string', 'long') end,'int', 'DeepCore.HashMap<string, long>')
+end
+
+

+ 30 - 0
data/ClientScript/Protocol/generated/OpenCards.Core.Data.ServerWishSummonBossChallengeRankData.lua

@@ -0,0 +1,30 @@
+
+-- Warning: do not edit this file.
+-- 警告: 不要编辑此文件
+
+-- OpenCards.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+-- OpenCards.Core.Data.ServerWishSummonBossChallengeRankData
+
+
+local _M = {MessageID = 0x052C0C33,Name = 'OpenCards.Core.Data.ServerWishSummonBossChallengeRankData'}
+_M.__index = _M
+function _M.IsSuccess(self)
+   return self.s2c_code ~= nil and self.s2c_code >= 200 and self.s2c_code <= 299
+end
+Protocol.Serializer[0x052C0C33] = _M
+Protocol.Serializer.StringDefined['OpenCards.Core.Data.ServerWishSummonBossChallengeRankData'] = _M
+
+function _M.Write(output,data)
+		
+	output:PutUTF(data.RoleUuid)
+	output:PutF64(data.DamageValue)
+end
+
+
+function _M.Read(input,data)
+		
+	data.RoleUuid = input:GetUTF()
+	data.DamageValue = input:GetF64()
+end
+
+

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels