test_client
简介
测试客户端的启动文件
组件接口
common.gs
公共模块的启动/关闭流程处理
| 函数原型 | 函数作用 |
|---|---|
| void boot() | 启动 |
| void shutdown() | 关闭 |
FChildInstanceNode.gs
测试实例对象的子节点组件
| 函数原型 | 函数作用 |
|---|---|
| object instance() | 获取测试实例对象 |
| void output(...) | 向控制台输出信息 |
FClientComm.gs
游戏服务器的连接组件
| 函数原型 | 函数作用 |
|---|---|
| void debug_on() | 调试接口: 开启调试 |
| void debug_off() | 调试接口: 关闭调试 |
| string desc() | 获取描述信息 |
| void set_ip(string ip) | 设置游戏服务器IP |
| string get_ip() | 获取游戏服务器IP |
| void set_port(int port) | 设置游戏服务器端口 |
| int get_port() | 获取游戏服务器端口 |
| void set_using_websocket(bool using_websocket) | 设置连接是否使用websocket协议 |
| bool is_using_websocket() | 获取连接是否使用websocket协议 |
| bool is_connected() | 判断连接是否已建立 |
| bool connect(string ip, int port) | 连接游戏服务器 |
| object get_connection() | 获取连接对象 |
| bool reconnect() | 重连游戏服务器 |
| void disconnect() | 断开连接 |
| bool send(string cmd, ...) | 向游戏服务器发送命令 |
| bool on_send(string cmd, ...) | 执行发送命令 |
| mixed send_request(string cmd, ...) | 向游戏服务器发送命令并等待处理结果 |
| void set_message_callback(string msg, function func) | 设置游戏服务器消息的处理函数 |
| void invoke_message_callback(string msg, array args) | 执行游戏服务器消息处理函数 |
| void on_message(string msg, array args) | 收到游戏服务器消息时处理 |
| void on_connect() | 连接建立时处理 |
| void on_disconnect() | 连接断开时处理 |
FCloseGuard.gs
对象close守卫组件
守卫的目的是一些对象不期望外部通过close方法直接析构,而是使用drop方法
| 函数原型 | 函数作用 |
|---|---|
| void destroy() | 销毁本对象 |
| void drop() | 丢弃本对象 |
FComponentBase.gs
动态组件对象的基础组件
| 函数原型 | 函数作用 |
|---|---|
| string get_component_name() | 获取组件名称 |
| void set_component_owner(object parent) | 设置所有者 |
| object get_component_owner() | 获取所有者 |
| object gco() | 获取所有者(get_component_owner的简短版) |
FComponents.gs
对象形式的动态组件管理器
| 函数原型 | 函数作用 |
|---|---|
| void dump_components() | 调试接口: 输出所有动态组件 |
| void add_dyn_component(object comp) | 添加一个动态组件对象 |
| void remove_dyn_component(object comp) | 移除一个动态组件对象 |
| object get_dyn_component(string name) | 通过名称查找动态组件对象 |
| object comp(string name) | 通过名称查找动态组件对象(get_dyn_component的简短版) |
| array get_dyn_components() | 获取所有动态组件对象列表 |
| map get_dyn_components_dict() | 获取所有动态组件对象字典 |
| void do_components_heartbeat() | 执行所有动态组件的心跳 |
| void notify_event(string evt, array args) | 向所有动态组件对象通知事件 |
| map query_components_dbase() | 获取所有动态组件的数据字典 |
FEntity.gs
实体对象的基础组件,和游戏服务器engine的FEntity对应
| 函数原型 | 函数作用 |
|---|---|
| string get_rid() | 获取rid |
| string get_name() | 获取名称 |
| int get_class_id() | 获取class_id |
| string get_type() | 获取实体类别 |
| object game_client() | 获取本实体对象所属的游戏服务器连接对象 |
| object instance() | 获取本实体对象所属的测试实例对象 |
| void output(...) | 向控制台输出信息 |
| string desc() | 获取描述信息 |
| mixed FDbase.query(string key) | 查询字段值 |
| void refer_by(string reason) | 标记实体对象被引用 |
| void unrefer_by(string reason) | 标记实体对象被取消引用 |
| bool is_referred_by(string reason) | 判断是否被指定类型引用 |
| bool is_referred() | 判断是否被引用 |
| void FCloseGuard.drop() | 丢弃所有子对象以及自身 |
FEventEmitter.gs
事件触发器组件
| 函数原型 | 函数作用 |
|---|---|
| void on(string event, function fn) | 注册指定名称的事件的响应函数(展开参数) |
| void on_raw(string event, function fn) | 注册指定名称的事件的响应函数(不展开参数) |
| void once(string event, function fn) | 注册指定名称的事件的响应函数(展开参数),触发一次后自动移除 |
| void remove_event(string event) | 移除指定名称的事件的所有响应函数 |
| void emit(string event, ...) | 触发指定名称的事件 |
| void emit_local(string event, ...) | 触发指定名称的事件(确定不跨域) |
| void remove_listener(string event, function fn) | 移除指定名称的事件的特定响应函数 |
| void remove_listener_by_object(string event, object func_ob) | 移除指定名称的事件的特定所有者的所有响应函数 |
| void remove_listeners_by_object(object func_ob) | 移除特定所有者的所有响应函数 |
| map debug_get_events() | 调试接口 - 获取所有事件词典 |
FFieldListener.gs
实体对象的字段监听组件
| 函数原型 | 函数作用 |
|---|---|
| void listen_any_field_changed(mixed listener, function func) | 监听者向本对象注册任意字段变更的处理函数 |
| void unlisten_any_field_changed(mixed listener) | 监听者向本对象注销任意字段变更的处理函数 |
| void listen_field_changed(mixed key, mixed listener, function func, bool run_when_listen = false) | 监听者向本对象注册指定字段变更的处理函数 |
| void unlisten_field_changed(mixed listener, bool not_show_err = false) | 监听者向本对象注销所有对象字段变更的处理函数 |
| void notice_field_changed(string key, mixed sub_key, mixed old_val, mixed val) | 本对象通知所有监听者字段发生变更 |
FFields.gs
实体对象的字段组件,和游戏服务器engine的FFields对应
FGameClientBase.gs
游戏客户端连接对象的基础组件
| 函数原型 | 函数作用 |
|---|---|
| string FClientComm.desc() | 获取描述信息 |
| bool fetch_server_info() | 获取游戏服务器信息 |
| string get_server_id() | 获取游戏服务器ID |
| string get_server_name() | 获取游戏服务器名称 |
| map get_server_info() | 获取游戏服务器信息 |
| bool is_using_proxy() | 是否通过代理服务器连接 |
| void set_proxy_client_ob(object proxy_client_ob) | 设置代理服务器连接对象 |
FHeartbeat.gs
为对象提供心跳功能的组件
| 函数原型 | 函数作用 |
|---|---|
| void start_heartbeat(int ms) | 开启心跳 |
| void stop_heartbeat() | 停止心跳 |
| void heartbeat() | 心跳处理函数 |
FInRoom.gs
实体对象的房间组件,和游戏服务器engine的FInRoom组件对应
包含本组件的对象支持设置房间和坐标等操作
| 函数原型 | 函数作用 |
|---|---|
| object get_room() | 获取本实体对象所在的房间对象 |
| void on_enter_room(object room_ob, POS pos) | 进入房间时的处理 |
| void on_leave_room(object room_ob) | 离开房间时的处理 |
| void set_position(POS pos) | 设置位置 |
| POS get_position() | 获取位置 |
FInstance.gs
测试实例对象的基础组件
| 函数原型 | 函数作用 |
|---|---|
| bool startup() | 初始化 |
| bool run_test(string test) | 执行指定名称的测试案例 |
| bool try_close_manually() | 接管对象的close操作 |
| void post_create() | 对象创建后的处理 |
| void prev_close() | 对象close前的处理 |
| void FHeartbeat.heartbeat() | 心跳处理 |
FInstanceAuthClient.gs
测试实例对象的认证服务器连接组件
| 函数原型 | 函数作用 |
|---|---|
| object create_auth_client(map para = ) | 创建并绑定一个认证服务器连接对象 |
| object get_auth_client() | 获取本对象绑定的认证服务器连接对象 |
FInstanceBase.gs
测试实例对象的基础组件
| 函数原型 | 函数作用 |
|---|---|
| void set_no(int n) | 设置测试实例对象的数字编号 |
| int get_no() | 获取测试实例对象的数字编号 |
| string desc() | 获取描述信息 |
| mixed get_config(string path) | 获取配置值 |
| void output(...) | 向控制台输出信息 |
FInstanceGameClient.gs
测试实例对象的游戏服务器连接组件
| 函数原型 | 函数作用 |
|---|---|
| object create_client(map para = ) | 创建并绑定一个游戏服务器连接对象 |
| object get_client() | 获取游戏服务器连接对象 |
| mixed cmd(string cmd, ...) | 如果本地存在指令处理对象(CommandD.query_entry可获取)则直接执行 |
| mixed gm(string cmd, ...) | 如果本地存在指令处理对象(GmD.query_entry可获取)则直接执行 |
FInstanceProxyClient.gs
测试实例对象的代理服务器连接组件
| 函数原型 | 函数作用 |
|---|---|
| object create_proxy_client(map para = ) | 创建并绑定一个代理服务器连接对象实例 |
| object get_proxy_client() | 获取本对象绑定的代理服务器连接处理对象 |
FInstanceServerSelector.gs
测试实例对象的服务器选择器组件
| 函数原型 | 函数作用 |
|---|---|
| object create_server_selector(map para = ) | 创建并绑定服务器选择器的处理对象 |
| object get_server_selector() | 获取本对象绑定的服务器选择器的对象实例 |
FInstanceTester.gs
测试实例对象创建测试案例对象实例的组件
| 函数原型 | 函数作用 |
|---|---|
| object create_test(string name) | 创建并绑定指定名称的测试案例对象 |
| object get_test() | 获取本对象绑定的测试案例对象实例 |
FMachineFactory.gs
状态机组件
| 函数原型 | 函数作用 |
|---|---|
| Machine create_machine(string name, array state_list = nil, map transition_dict = nil, string initial_state = nil) | 创建一个状态机实例 |
| Machine get_machine(string name) | 通过状态机名称查找获取状态机实例 |
| void destroy_machine(string name) | 通过状态机名称销毁一个状态机实例 |
FNode.gs
节点组件
FTestBase.gs
测试案例基础组件
使用者实现的测试案例对象需要包含本组件
| 函数原型 | 函数作用 |
|---|---|
| void on_game_message(string msg, function func) | 注册游戏服务器消息的处理函数 |
| void on_any_game_message(function func) | 注册所有游戏服务器消息的处理函数 |
| string desc() | 获取描述信息 |
| mixed get_config(string path) | 获取本案例对象绑定的测试实例对象的配置值 |
| string raw_name() | 获取本案例的名称 |
| void wait_util_true(function fn = nil, int wait_time = 1) | 等待直至条件函数返回true |
| void stop() | 停止执行(析构本案例绑定的测试实例对象) |
| void record_request_api(string method, string name, int response_time, mixed exception = nil, int content_length = 0) | 记录请求api的统计信息 |
ClientControlD.gs
受游戏服务器控制的压力测试客户端功能模 块
本模块持有的客户端连接会得到一个游戏服务器分发的ID(control id),这个id在游戏服务器上是唯一的
在配置文件中配置了[as_client_control]值,本模块将在进程启动后激活功能
和mods.stress_node的区别在于:stress_node是受雷霆平台控制的压力测试客户端功能模块
| 函数原型 | 函数作用 |
|---|---|
| int get_control_id() | 获取受控客户端ID |
| string get_version() | 获取游戏版本号 |
| void set_version(string version) | 记录游戏版本号 |
| string gen_account() | 生成一个游戏账号的前缀(游戏服务器上唯一) |
| void dump() | 调试接口: 输出当前已创建的测试实例对象 |
DelayD.gs
提供延迟执行功能的模块
延迟执行的时长分为高精度和低精度两类,延迟时长>=15秒时使用低精度延迟执行,否则使用高精度延迟执行
| 函数原型 | 函数作用 |
|---|---|
| void delay_invoke(float seconds, function func) | 延迟执行 |
| void delay_invoke_high(float seconds, function func) | 高精度延迟执行 |
| void delay_invoke_low(float seconds, function func) | 低精度延迟执行 |
DynObjectsD.gs
动态对象管理模块
支持通过文本名称创建动态对象实例 DynObjectsD.create_object("baggage")
支持使用者扩展动态对象
| 函数原型 | 函数作用 |
|---|---|
| void set_factory_callback(string name, function callback) | 设置动态对象创建回调函数 |
| object create_object(string name, domain d = nil, mixed para = nil) | 创建动态对象 |
GmD.gs
GM调试接口模块
主要是提供一些调试接口,可以在控制台上直接调用
| 函数原型 | 函数作用 |
|---|---|
| void trace_on() | 调试接口: 打开内置的调试输出 |
| void trace_off() | 调试接口: 关闭内置的调试输出 |
| void dump() | 调试接口: 输出所有GM指令 |
| void focus_output_on() | 调试接口: 焦点实例打开输出 |
| void focus_output_off() | 调试接口: 焦点实例关闭输出 |
| void output_on() | 调试接口: 允许输出 |
| void output_off() | 调试接口: 不允许输出 |
| void gm(string cmd, ...) | 调试接口: 焦点实例发送gm指令 |
InstancesD.gs
测试实例对象管理模块
提供测试实例对象的创建接口
提供将指定测试实例对象设置为焦点或者移除焦点等辅助调试输出的功能
支持使用者扩展测试实例
| 函数原型 | 函数作用 |
|---|---|
| int allocate_no() | 获取一个测试实例编号(进程内唯一) |
| object create_instance(string instance_name, domain d, map para) | 创建一个测试实例对象 |
| void set_no_output(bool no_output = true) | 设置所有测试实例对象禁止输出 |
| void set_focus_output_only(bool focus_output_only = true) | 设置仅焦点客户端允许输出 |
| bool is_outputable(object ob) | 判断一个测试实例对象是否允许输出 |
| void output(object ob, ...) | 测试实例对象执行控制台输出 |
| void add_instance(object ob) | 添加一个测试实例对象到管理列表中 |
| void remove_instance(object ob) | 从管理列表中移除一个测试实例对象 |
| object find_instance(int no) | 根据编号找到对应的测试实例对象 |
| void iterate_instance(function func) | 遍历所有已创建的测试实例对象 |
| void set_focus(int no) | 设置指定编号的测试实例对象为焦点 |
| object get_focus() | 获取当前焦点 |
| void dump() | 调试接口: 按编号顺序输出所有已创建的测试实例对象 |
MsgHandlerD.gs
消息处理器管理对象
使用者可以扩展消息处理器
| 函数原型 | 函数作用 |
|---|---|
| void handle_message(object c, string msg, array args) | 处理消息 |
TestD.gs
测试案例管理功能模块
提供测试案例对象的创建、测试案例的执行等功能
使用者可以扩展测试案例
| 函数原型 | 函数作用 |
|---|---|
| object create_test(string name, map para, domain d) | 创建一个测试案例对象 |
| void start_test(map para) | 开始执行测试案例 |
| object run_test(string name, map args, string instance_name) | 创建测试实例对象并执行测试 |
CClientEntities.gs
名称为entities的动态组件对象,管理客户端持有的entity对象
| 函数原型 | 函数作用 |
|---|---|
| void add_object(object ob) | 添加有rid的对象 |
| void remove_object(object ob) | 移除有rid的对象 |
| object find_object_by_rid(string rid) | 根据rid查找对象 |
| string FComponentBase.get_component_name() | 获取本动态组件对象名称 |
| object create_entity(string rid, int class_id, map dbase) | 创建实体对象(entity) |
| void destroy(string rid) | 销毁实体对象 |
| void add_entity(string rid, map dbase) | 创建实体对象并添加 |
| void remove_entity(string rid) | 移除实体对象 |
| object self() | 获取用户的实体对象(User对象实例) |
| void iterate_entity(function func) | 遍历所有实体对象 |
| array filter_entity(function func) | 获取过滤后的实体对象列表 |
| object find_entity(string rid) | 根据rid查找实体对象(和find_object_by_rid一样) |
| array get_entities(function func = nil) | 获取满足条件的实体对象列表 |
CSocialClient.gs
名称为social的动态组件对 象,负责客户端和社交服务器的交互功能
CUserData.gs
名称为data的动态组件对象,负责玩家自身数据的管理
| 函数原型 | 函数作用 |
|---|---|
| string FComponentBase.get_component_name() | 获取本动态组件对象的名称 |
| string get_user_account() | 获取玩家账号 |
| string get_user_rid() | 获取玩家rid |
| string get_user_account_id() | 获取玩家账号id |
| object get_user_ob() | 获取玩家实体对象 |
| mixed query_from_user(string key) | 获取玩家指定字段的值 |
| string get_rid() | 获取玩家rid(同get_user_rid) |
| string get_account() | 获取玩家账号(同get_user_account) |
config.gs
测试客户端全局配置
启动参数指定/D CONFIG值时加载该配置文件,否则加载/config/config.json
| 函数原型 | 函数作用 |
|---|---|
| mixed get(string path) | 获取配置值 |
DomainAsset.gs
资源池对象
资源池对象可以包含一组共享资源,目前这里只包含有一个心跳对象
| 函数原型 | 函数作用 |
|---|---|
| object heart() | 获取共享的心跳对象 |
domain_assets.gs
以域为分割的资源管理模块
资源池(DomainAsset对象实例)里包括心跳等共享资源;不同资源池在不同的狱中;
本模块负责将实体对象(entity)创建到资源池对应的域中,让这些实体对象共享资源池里的资源,以便达到节约系统资源的目的
使用资源池的实体对象需要包含FDomainAsset组件
| 函数原型 | 函数作用 |
|---|---|
| object find_asset(domain d) | 通过域找到对应的资源池 |
| object exclusive_allocate(int handle_id) | 为指定的对象分配一个独占的资源池 |
| void release(domain d, int handle_id) | 对象归还持有的资源池对象 |
FDomainAsset.gs
| 函数原型 | 函数作用 |
|---|---|
| void allocate_asset() | 为本对象分配资源池对象 |
| void release_asset() | 本对象归还资源池对象 |
| object get_heartbeat() | 获取共享的心跳对象 |
error_handler.gs
错误处理模块
| 函数原型 | 函数作用 |
|---|---|
| array get_last_error() | 获取最后一次错误信息 |
init.gs
调试接口 - 模拟注册接口
| 函数原型 | 函数作用 |
|---|---|
| void main(object req, object res) | 处理请求 |
spawning_complete.gs
调试接口 - 模拟登录上报接口
| 函数原型 | 函数作用 |
|---|---|
| void main(object req, object res) | 处理请求 |
stats.gs
调试接口 - 统计接口
| 函数原型 | 函数作用 |
|---|---|
| void main(object req, object res) | 处理请求 |
FStressNodeInterface.gs
受控节点接口基础组件
| 函数原型 | 函数作用 |
|---|---|
| void set_result(object res, int status = 0, string message = nil, mixed data = nil) | 设置结果 |
heartbeat.gs
http消息处理器 - 启动机器人
| 函数原型 | 函数作用 |
|---|---|
| void main(object req, object res) | 处理请求 |
quit.gs
http消息处理器 - 受控节点停止机器人
| 函数原型 | 函数作用 |
|---|---|
| void main(object req, object res) | 处理请求 |
stop.gs
http消息处理器 - 受控节点系统退出
| 函数原型 | 函数作用 |
|---|---|
| void main(object req, object res) | 处理请求 |
swarm.gs
http消息处理器 - 受控节点心跳
| 函数原型 | 函数作用 |
|---|---|
| void main(object req, object res) | 处理请求 |
StressNodeStats.gs
统计相关操作的对象
代码源自平台提供的stats.py
| 函数原型 | 函数作用 |
|---|---|
| void record_request_api(string method, string name, int response_time, mixed exception = nil, int content_length = 0) | 记录请求api的统计信息 |
| map get_report_to_master() | 获取统计信息 |
stress_node.gs
和压测平台对接的受控节点的一些操作
文档:https://leiting.feishu.cn/wiki/E2QRwT9ewivL0xknyVScUBPLngh
util.gs
用于存放一些工具函数
| 函数原型 | 函数作用 |
|---|---|
| map load_instance_config(map para) | 加载副本配置 |
AuthClient.gs
验证服务器的客户端连接对象
它是测试实例对象的一部分,负责和验证服务器的交互处理
通常它身上会挂载一些额外的动态组件对象用于处理不同的游戏逻辑
| 函数原型 | 函数作用 |
|---|---|
| string FEntry0.get_entry_id() | 获取动态对象的名称(用于DynObjectsD识别) |
| string desc() | 获取描述信息 |
| bool reconnect() | 重连验证服务器(仅创建验证客户端连接对象) |
| void disconnect() | 断开连接验证服务器(销毁验证客户端连接对象) |
| void send(string cmd, map args = ) | 向验证服务器发送命令 |
| mixed send_request(string cmd, map args = ) | 向验证服务器发送请求 |
Baggage.gs
背包实体对象
| 函数原型 | 函数作用 |
|---|---|
| string FEntry0.get_entry_id() | 获取动态对象的名称(用于DynObjectsD识别) |
| bool is_baggage() | 判断是否为背包 |
| array get_items(mixed class_id_or_alias, string quality = nil) | 获取背包里满足条件的道具列表(class_id或alias/品质) |
| array get_items_by_tag(string tag_name, mixed tag_value, string quality = nil) | 获取背包里满足条件的道具列表(字段名称, 字段值, 品质) |
| map get_item_amounts_by_type(string item_type, string quality = nil) | 获取背包里指定类型的道具数量(道具类型, 品质) |
| int get_item_amount(mixed class_id_or_alias, string quality = nil) | 获取背包里道具数量(道具class_id, 品质) |
Entity.gs
游戏客户端的实体对象基础组件
使用者扩展实体对象推荐包含本对象
| 函数原型 | 函数作用 |
|---|---|
| string FEntry0.get_entry_id() | 获取动态对象的名称(用于DynObjectsD识别) |
GameClient.gs
游戏服务器客户端连接对象
它是测试实例对象的一部分,负责和游戏服务器的交互处理
通常它身上会挂载一些额外的动态组件对象用于处理不同的游戏逻辑
比如,挂载data组件用于处理玩家数据
比如,挂载entities组件用于处理实体对象列表
比如,挂载vision组件用于处理游戏视野等等
| 函数原型 | 函数作用 |
|---|---|
| string FEntry0.get_entry_id() | 获取动态对象的名称(用于DynObjectsD识别) |
| void append_dyn_components(array name_list) | 挂载一组动态组件对象 |
| object get_user_ob() | 获取玩家实体对象 |
| object RidD() | 获取管理实体RID的动态组件对象 |
| object UserD() | 获取管理玩家数据的 动态组件对象 |
| object EntityD() | 获取管理实体对象的动态组件对象 |
| object RID(string rid) | 根据RID获取实体对象 |
Instance.gs
测试实例的基础对象
一个测试实例相当于一个游戏客户端进程(类比)
使用者扩展的测试实例都推荐包含自此对象
| 函数原型 | 函数作用 |
|---|---|
| string FEntry0.get_entry_id() | 获取动态对象的名称(用于DynObjectsD识别) |
| bool FInstance.startup() | 启动 |
| bool FInstance.run_test(string name) | 运行测试案例 |
Item.gs
道具实体对象
| 函数原型 | 函数作用 |
|---|---|
| string FEntry0.get_entry_id() | 获取动态对象的名称(用于DynObjectsD识别) |
| bool is_item() | 判断是否为道具 |
| int get_amount() | 获取道 具数量 |
| int get_combinable() | 获取可叠加数量上限 |
| bool is_full_combined() | 判断是否叠满了 |
| string get_quality() | 获取道具品质 |
ProxyClientAdaptor.gs
proxy_server客户端适配器
用在测试客户端需要通过proxy_server连接游戏服务器的测试环境下
| 函数原型 | 函数作用 |
|---|---|
| string FEntry0.get_entry_id() | 获取动态对象的名称(用于DynObjectsD识别) |
| string desc() | 获取描述信息 |
| object get_client_ob() | 获取连接proxy_server的客户端对象 |
| bool reconnect() | 重连proxy_server |
| void disconnect() | 断开连接proxy_server |
| void send(string cmd, map args = ) | 向proxy_server发送命令 |
| mixed send_request(string cmd, map args = ) | 向proxy_server发送请求 |
RobotInstance.gs
受游戏服务器控制的压测机器人测试实例
不使用目录服务器和验证服务器,直接连接游戏服务器
| 函数原型 | 函数作用 |
|---|---|
| string FEntry0.get_entry_id() | 获取动态对象的名称(用于DynObjectsD识别) |
| bool FInstance.startup() | 启动 |
Room.gs
房间实体对象
| 函数原型 | 函数作用 |
|---|---|
| string FEntry0.get_entry_id() | 获取动态对象的名称(用于DynObjectsD识别) |
| bool is_room() | 判断我是否是一个房间对象 |
| int entity_count() | 获取房间内的实体数量 |
| string new_appear_tag(string ent_rid) | 生成实体对象出现时的唯一外观标识(用于appear消息处理) |
ServerSelector.gs
服务器选择器
用于获取各类目标服务器的连接信息,这里默认提供验证服务器/游戏服务器/社交服务器的获取方式
| 函数原型 | 函数作用 |
|---|---|
| string FEntry0.get_entry_id() | 获取动态对象的名称(用于DynObjectsD识别) |
| bool select_servers() | 更新各类服务器的连接信息 |
| void set_server(string name, map info) | 设置服务器信息 |
| map get_server(string name) | 获取服务器信息 |
| map get_list_server() | 获取目录服务器连接信息 |
| map get_game_server() | 获取游戏服务器连接信息 |
| map get_auth_server() | 获取认证服务器连接信息 |
| map get_social_server() | 获取社交服务器连接信息 |
| map select_game_server() | 更新并获取游戏服务器连接信息 |
StressNodeRobotInstance.gs
受控节点的机器人实例
| 函数原型 | 函数作用 |
|---|---|
| string RobotInstance.get_entry_id() | 获取动态对象的名称(用于DynObjectsD识别) |
| bool RobotInstance.startup() | 启动接口 |
User.gs
玩家实体对象
| 函数原型 | 函数作用 |
|---|---|
| string FEntry0.get_entry_id() | 获取动态对象的名称(用于DynObjectsD识别) |
| bool is_user() | 判断我是否为玩家 |
| object get_baggage(string baggage_name = nil) | 获取玩家的背包实体对象 |
类
StressNodeResult
受控节点请求结果
成员变量
| 变量名 | 类型 | 初始值 | 须初始化 | 描述 |
|---|---|---|---|---|
| status | int | -666666 | 可选 | 状态码(0: 成功) |
| message | string | nil | 可选 | 描述信息(可选) |
| data | mixed | nil | 可选 | 结果数据(可选,成功时返回) |
成员方法
| 函数原型 | 函数作用 |
|---|---|
| bool is_ok() | 请求结果是否成功 |
| map get_result() | 成功时获取结果数据 |
StressNodeRequestBase
请求基础类
成员变量
| 变量名 | 类型 | 初始值 | 须初始化 | 描述 |
|---|
成员方法
| 函数原型 | 函数作用 |
|---|---|
| string get_url(string host) | 获取请求URL |
| map get_para() | 获取请求参数 |
| Content_Type get_request_content_type() | 获取请求使用的content_type |
| StressNodeResult request(string host) | 发起请求 |
StressNodeInitRequest
继承自 StressNodeRequestBase
注册接口
成员变量
| 变量名 | 类型 | 初始值 | 须初始化 | 描述 |
|---|---|---|---|---|
| id | string | nil | 可选 | 节点ID |
| swarm | string | nil | 可选 | 启动孵化回调地址 |
| stop | string | nil | 可选 | 停止回调地址 |
| heartbeat | string | nil | 可选 | 心跳回调地址 |
| quit | string | nil | 可选 | 终止回调地址 |