diff --git a/.gitignore b/.gitignore index 658f4aa..4ff81c4 100755 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ meta.txt nohup.out battle_server_999/runenv/battle_svr/cfg/dump_verify_battle/ .vscode/ +*.tags diff --git a/server_999/runenv/zone_svr/cfg/res/ActivityOpenConfig.bin b/server_999/runenv/zone_svr/cfg/res/ActivityOpenConfig.bin index f83d8b7..412689d 100755 Binary files a/server_999/runenv/zone_svr/cfg/res/ActivityOpenConfig.bin and b/server_999/runenv/zone_svr/cfg/res/ActivityOpenConfig.bin differ diff --git a/server_999/runenv/zone_svr/cfg/res/ActivityOpenConfig.bin.bak@all_open b/server_999/runenv/zone_svr/cfg/res/ActivityOpenConfig.bin.bak@all_open new file mode 100755 index 0000000..f83d8b7 Binary files /dev/null and b/server_999/runenv/zone_svr/cfg/res/ActivityOpenConfig.bin.bak@all_open differ diff --git a/server_999/tools/build/csharptdr.md b/server_999/tools/build/csharptdr.md new file mode 100644 index 0000000..741dd0f --- /dev/null +++ b/server_999/tools/build/csharptdr.md @@ -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对应的错误信息 + diff --git a/server_999/tools/test_conn.md b/server_999/tools/test_conn.md new file mode 100644 index 0000000..1a6ce11 --- /dev/null +++ b/server_999/tools/test_conn.md @@ -0,0 +1,14 @@ +Usage: +Options: + -d 对应线的 proto_cs.tdr 的路径 + -h 服务器ip + -p 服务器端口 + -t 超时时间 默认2s + -u 登录服务器uin 默认999 + -w 是否使用websocket h5线需要使用 设置-i使用Uri 否则使用ip端口 + -i 使用websocket wss连接的Uri + -v 指定战斗版本号 可以不填 默认被踢 可以通过查看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