协议文件分布在以下位置: 协议定义(手写源文件) 客户端服务端协议(按消息ID分模块):server/src/core/0penCards.Core/Protocol/Client/-主协议定义-0x35000.Logic.Common.cs、0x35200.Logic.Fight.cs、0x35300.Logic.Role.cs0x39000.Logic.Arena.cs、0x37300.Logic.Mail.cs等,按功能模块拆分server/src/core/0penCards.Core/Protocol/Constants.cs -消息 ID 段常量定义server/src/core/0penCards.Core/Protocol/MsgAttribute.cs - [RequestMsg]/[ResponseMsg] 标记 服务端内部 RPC协议:-server/src/server/0penCards.Server.Core/RPC/ -服务器间 RPC 消息(Account、Arena、Guild、Role等) 共享数据结构:-server/src/core/0penCards.Core/Data/ -协议里用到的数据对象(0x22000.Role.cs、0x23800.Arena.cs 等) 自动生成文件(不要手改) 目录 server/src/core/0penCards.GenCodec/generated_msg/ server/src/server/0pencards.Server.GenORM/generated_msg/ data/clientscript/Protocol/generated/ 内容 C#序列化/反序列化 codec(gitignored) 服务端 RPC codec (gitignored) Lua 版 codec,给客户端用 整体架构 -协议在 C#的 OpenCards.Core.Protocol.Client 命名空间里手写定义,用[RequestMsg]标记配对OpenCards.GenCodec项目的 PostBuild 把这些定义生成对应的 C#codec和 Lua codec-客户端(Lua)用 data/ClientScript/Protocol/generated/下的 Lua 文件通信-服务端用C#codeC,消息ID按模块分段(Arena在0x39000段,等等) 改协议的正确流程:移改 DpenCards.Core/ProtocoU/CLient/ 里的源文件 重新编译 DpenCards.TooLs (触发 PostBuild 生成新 codec) 前后端 codec 同步更新