docs(server_999): 添加 TDR 工具使用文档和连接测试文档
- 新增 csharptdr.md 文件,详细说明了 csharptdr 工具的使用方法和选项 - 新增 test_conn.md 文件,提供了连接测试工具的使用说明和示例 - 在 .gitignore 中添加了忽略项,以防止生成的文件被纳入版本控制
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -11,3 +11,4 @@ meta.txt
|
||||
nohup.out
|
||||
battle_server_999/runenv/battle_svr/cfg/dump_verify_battle/
|
||||
.vscode/
|
||||
*.tags
|
||||
|
||||
Binary file not shown.
BIN
server_999/runenv/zone_svr/cfg/res/ActivityOpenConfig.bin.bak@all_open
Executable file
BIN
server_999/runenv/zone_svr/cfg/res/ActivityOpenConfig.bin.bak@all_open
Executable file
Binary file not shown.
170
server_999/tools/build/csharptdr.md
Normal file
170
server_999/tools/build/csharptdr.md
Normal file
@@ -0,0 +1,170 @@
|
||||
|
||||
- 将多个XML格式的元数据描述库转换成二进制格式、C语言定义格式描述及生成数据定义的C语言头文件。
|
||||
也可以把多个XML格式的元数据描述库转换成AS3、C++、C#的类文件,这些类文件实现了打解包等接口。
|
||||
如果多个xml文件之间存在依赖关系,则被依赖的xml文件必须放在参数表的前面。
|
||||
|
||||
用法:
|
||||
csharptdr (-B,--xml2dr [-o,--out_file=FILE] )
|
||||
| (-C,--xml2c [-o,--out_file=FILE])
|
||||
| (-H,--xml2h [-p,--no_type_prefix] [-s,--add_custom_prefix=PREFIX]
|
||||
[-l,--no_lowercase_prefix] [-c,--no_type_declare])
|
||||
[-u,--prefix_file=FILE] [-w,--with-namespace])
|
||||
| (-A,--as3 [-i,--indent-size=TABSIZE])
|
||||
| (-P,--xml2cpp [-i,--indent-size=TABSIZE] [--no_comm_files]
|
||||
[--only_comm_files] [-p,--no_type_prefix]
|
||||
[-s,--add_custom_prefix=PREFIX] [-l,--no_lowercase_prefix]
|
||||
[-c,--no_type_declare] [-u,--prefix_file=FILE] [--no_united_name]
|
||||
[--common_namespace=NAME] [--capital_macro_name]
|
||||
[--with_from_xml] [--with_to_xml]
|
||||
[--no_pack] [--no_unpack] [--no_visualize]
|
||||
[--no_macro_from_xml] [--no_macro_to_xml]
|
||||
[--compatible_macro_name] [--no_created_time]
|
||||
[--use_switch_case_style] [--no_msvc_c1061_error]
|
||||
| (-S,--xml2csharp [-i,--indent-size=TABSIZE] [--no_error_trace])
|
||||
| (-G,--gen_xmltmplt --meta_name=NAME [-e,--meta_version=VERSION]
|
||||
[-x,--xml_format=formatId] [-n,--encoding=ENCODING] [-o,--out_file=FILE])
|
||||
| (-T,--export_prefix --prefix_file=FILE
|
||||
| (-E,--errorlookup=ERRORCODE)
|
||||
[-O,--out_path=PATH] [-f,--old_xml_tagset] [-d,--dump_lib ] [-h,--help] [-v -version] xmlfile...
|
||||
|
||||
主要转换操作选项:
|
||||
-B,--xml2dr 指定使用将多个xml格式的元数据描述库转换成二进制个数描述库的功能(xml2dr)。
|
||||
-C,--xml2c 指定使用将多个xml格式的元数据描述库转换成C语言定义格式描述库的功能(xml2c)。
|
||||
-H,--xml2h 指定使用将多个xml格式的元数据描述库转换为数据的C语言头文件的功能(xml2h)。
|
||||
每个xml文件会转换为一个相应头文件;除文件后缀外,头文件与xml文件名相同。
|
||||
-A,--xml2as3 指定使用将多个xml格式的元数据描述库转换为ActionScript3语言的类文件的功能。
|
||||
-P,--xml2cpp 指定使用将多个xml格式的元数据描述库转换为C++语言类文件的功能。
|
||||
-S,--xml2csharp 指定使用将多个xml格式的元数据描述库转换为C#语言类文件的功能。
|
||||
-G,--gen_xmltmplt 为指定元数据生成xml格式的配置文件模板(gen_xmltmplt)。
|
||||
-T,--export_prefix 导出tdr生成.h文件或C++类文件时使用的数据成员前缀表到文件中。
|
||||
-E,--errorlookup 根据tdr API接口返回的错误号,查找具体的错误信息。
|
||||
|
||||
|
||||
xml2dr的可选项:
|
||||
-o,--out_file=FILE
|
||||
指定转换出来的二进制描述库的文件名,如果没有指定此选择,则缺省以a.tdr为文件名。
|
||||
|
||||
xml2c的可选项:
|
||||
-o,--out_file=FILE
|
||||
指定转换出来的C语言定义格式描述库的文件名,如果没有指定此选择,则缺省以a.c为文件名。
|
||||
|
||||
xml2h的可选项:
|
||||
-p,--no_type_prefix
|
||||
生成的结构体(struct)/联合体(union)成员名不添加表示此成员类型的前缀。
|
||||
如果不指定此选择,缺省会添加表示成员类型的前缀。
|
||||
-s,--add_custom_prefix=PREFIX
|
||||
生成的结构体(struct)/联合体(union)成员名添加自定义的前缀。
|
||||
PREFIX为要添加的前缀串,目前其最多只能包含8个字符。
|
||||
-l,--no_lowercase_prefix
|
||||
如果指定此选项,则生成的结构体(struct)/联合体(union)成员名不强制将首字母改成小写。
|
||||
-c,--no_type_declare
|
||||
如果指定了此选项则在元数据的C语句头文件中不生成结构体(struct)/联合体(union)的类型声明。
|
||||
-u,--prefix_file=FILE
|
||||
如果指定了此选项则使用文件FILE中的前缀规则生成C语言头文件的数据成员前缀。
|
||||
注意,如果指定了此选项,其他关于前缀的选项均被设置为无效。
|
||||
-w,--with-namespace
|
||||
如果指定此选项,则在生成的头文件中加入namespace(其值为metalib的name属性的值)。
|
||||
|
||||
xml2as3的可选项:
|
||||
-i,--indent-size
|
||||
指定生成的ActionScript3类文件的缩进大小(必须大于0),默认为 4 个空格。
|
||||
|
||||
xml2cpp的可选项(同时支持所有xml2h的可选项, -w选项除外):
|
||||
-i,--indent-size
|
||||
指定生成的c++类文件的缩进大小(必须大于0),默认为 4 个空格。
|
||||
--no_comm_files
|
||||
如果指定了此选项则不生成与协议无关的、公用的C++类文件。
|
||||
--only_comm_files
|
||||
如果指定了此选项则只生成与协议无关的、公用C++类文件, 此时不需要指定xml描述文件。
|
||||
--no_united_name
|
||||
如果指定了此选项,根节点的 name 属性值为 "" 的xml描述文件, 生成的代码不指定namespace。
|
||||
--common_namespace=NAME
|
||||
如果指定了此选项则生成的common文件的namespace为NAME,否则采用默认值"tsf4g_tdr"。
|
||||
--capital_macro_name
|
||||
如果指定了此选项则生成的C++头文件中防止重复包含的预定义宏采用全大写。
|
||||
--with_from_xml
|
||||
如果指定了此选则生成输入XML格式数据的成员函数及相关的第三方源代码。
|
||||
--with_to_xml
|
||||
如果指定了此选则生成输出XML格式数据的成员函数。
|
||||
--no_pack
|
||||
如果指定了此选则不生成 pack 成员函数。
|
||||
--no_unpack
|
||||
如果指定了此选则不生成 unpack 成员函数。
|
||||
--no_visualize
|
||||
如果指定了此选项则不生成visualize成员函数, 默认生成visualize成员函数。
|
||||
--no_macro_from_xml
|
||||
如果指定了此选项则加载xml格式数据时,不支持整数类型配置成macro名,默认支持。
|
||||
--no_macro_to_xml
|
||||
如果指定了此选项则输出xml格式数据时,绑定了macrosgroup的类型以数值输出, 默认以macro名输出。
|
||||
--compatible_macro_name
|
||||
如果指定了此选项则生成的C++代码的头文件中的宏名和枚举名与--xml2h方式一致,默认不一致。
|
||||
--no_created_time
|
||||
如果指定了此选项则生成的所有文件中不输出时间注释信息,默认输出时间注释。
|
||||
--use_switch_case_style
|
||||
如果指定了此选项则生成的union方法使用switch case风格分支处理语句,默认if else风格。
|
||||
--no_msvc_c1061_error
|
||||
如果出现了MSVC的C1061(blocks netsted too deeply)编译错误,请务必打开此选项。
|
||||
--with_tlog_util
|
||||
如果指定了此选项并且未指定--no_comm_files,则生成与协议无关的、公共的tlog辅助文件。
|
||||
|
||||
xml2csharp的可选项:
|
||||
-i,--indent-size
|
||||
指定生成的c++类文件的缩进大小(必须大于0),默认为 4 个空格。
|
||||
-p,--no_type_prefix
|
||||
生成的类成员名不添加表示此成员类型的前缀。
|
||||
如果不指定此选择,缺省会添加表示成员类型的前缀。
|
||||
--no_error_trace
|
||||
如果指定了此选项则生成的C#类文件中不插入用于跟踪错误的调试代码。
|
||||
|
||||
gen_xmltmplt的必选项:
|
||||
-m,--meta_name=NAME 指定要生成模板的元数据名称。
|
||||
|
||||
gen_xmltmplt的可选项:
|
||||
-e,--meta_version=VERSION 如果指定此选项,则只输出版本号小于或等于此值的元数据或子成员数据。
|
||||
VERSION必须大于元数据的基础版本,且小于TDR支持的最大版本(2147483647)。
|
||||
如果没有指定此选项,或指定的值为0,则取指定元数据的最大版本值。
|
||||
-x,--xml_formatID=FORMATID 指定生成的xml文件的格式, 目前支持如下格式:
|
||||
ATTR: 简单非数组成员以属性方式输出。
|
||||
LIST: 简单非数组成员以子节点方式输出。
|
||||
如果没有指定 -x 选项,则缺省输出格式为 LIST。
|
||||
-n,--encoding=ENCODING 指定输出的xml模板文件的头部的 encoding 属性的值。
|
||||
如果没有指定 -n 选项,则缺省输出 encoding="GBK"。
|
||||
-o,--out_file=FILE 指定生成的配置文件,如果没有指定此选择,则缺省以a.xml为文件名。
|
||||
|
||||
export_prefix的必选项:
|
||||
-u,--prefix_file=FILE 指定用于保存导出的数据成员前缀表的文件名。
|
||||
|
||||
转换公共选项:
|
||||
-O,--out_path=PATH 指定输出文件的保存路径。
|
||||
如果不指定此选项:
|
||||
对于xml2dr和xml2c其输出目录缺省为当前工作目录;
|
||||
对于xml2h其输出目录为对应xml所在目录。
|
||||
-f,--old_xml_tagset 指明xml元数据描述库是采用FO定义的老的XML标签进行描述的,转换工具必须按照老的格式去解析。
|
||||
如果没有指定此选项,则转换工具会按照TDR定义的xml标签去解析xml元数据描述库。
|
||||
-d,--dump_lib 以可视化的方式打印出元数据描述库,并输出到"dump_lib.txt"文件中。
|
||||
|
||||
其他选项:
|
||||
-h,--help 输出此工具的帮助列表
|
||||
-v,--version 输出此工具的构建版本
|
||||
|
||||
使用示例:
|
||||
./csharptdr -B -o ov_res.tdr ov_res.xml
|
||||
#xml格式元数据库生成.tdr二进制库
|
||||
./csharptdr -C -o ov_res.c --old_xml_tagset ov_res.xml
|
||||
#使用老标签集的xml格式元数据库生成.c文件
|
||||
./csharptdr -H -O "include" --add_custom_prefix="m_" --no_type_prefix net_protocol.xml
|
||||
#xml元数据库生成.h文件,生成的文件保存在include目录
|
||||
#结构体(struct)/联合体(union)成员名添加前缀"m_",但不添加类型前缀
|
||||
./csharptdr -G -m Pkg -x ATTR -o Pkg.xml net_protocol.xml
|
||||
#为Pkg生成xml格式的配置文件, 剪切版本为Pkg的最大版本, 文件名为Pkg.xml
|
||||
./csharptdr -T -u prefixfile
|
||||
#导出生成.h文件时使用的数据成员前缀表到文件prefixfile中
|
||||
./csharptdr -A --indent-size=8 net_protocol.xml
|
||||
#根据net_protocol.xml中描述的协议生成ActionScript3语言的类文件,缩进大小为8个空格
|
||||
./csharptdr -P --indent-size=8 net_protocol.xml
|
||||
#根据net_protocol.xml中描述的协议生成C++语言的类文件,缩进大小为8个空格
|
||||
./csharptdr -S --indent-size=8 net_protocol.xml
|
||||
#根据net_protocol.xml中描述的协议生成C#语言的类文件,缩进大小为8个空格
|
||||
./csharptdr -E 0x83010404
|
||||
#查询错误号0x83010404对应的错误信息
|
||||
|
||||
14
server_999/tools/test_conn.md
Normal file
14
server_999/tools/test_conn.md
Normal file
@@ -0,0 +1,14 @@
|
||||
Usage:
|
||||
Options:
|
||||
-d <value> 对应线的 proto_cs.tdr 的路径
|
||||
-h <value> 服务器ip
|
||||
-p <value> 服务器端口
|
||||
-t <value> 超时时间 默认2s
|
||||
-u <value> 登录服务器uin 默认999
|
||||
-w 是否使用websocket h5线需要使用 设置-i使用Uri 否则使用ip端口
|
||||
-i <value> 使用websocket wss连接的Uri
|
||||
-v <value> 指定战斗版本号 可以不填 默认被踢 可以通过查看FuncParamConfig.txt中FuncID=500对应的值
|
||||
示例:
|
||||
zone_conn: test_conn -d ~/a5game_server/protocol/tdr/proto_cs.tdr -h 127.0.0.1 -p 17501
|
||||
ws_conn: test_conn -d ~/a5game_server/protocol/tdr/proto_cs.tdr -w -h 127.0.0.1 -p 17501
|
||||
ws_conn: test_conn -d ~/a5game_server/protocol/tdr/proto_cs.tdr -w -i wss://wss-a5h5.hncqkj.cn/997
|
||||
Reference in New Issue
Block a user