远程配置
概述
远程配置系统允许从服务器获取配置参数,并自动绑定到本地变量。支持实时推送更新,当服务器修改配置时,绑定的变量会自动更新。
配置类型
| 常量 | 值 | C++ 类型 | 说明 |
|---|---|---|---|
TXNET_CONFIG_INT | 0 | int | 整数 |
TXNET_CONFIG_FLOAT | 1 | float | 浮点数 |
TXNET_CONFIG_BOOL | 2 | bool | 布尔值 |
TXNET_CONFIG_STRING | 3 | char[] | 字符串 |
TXNET_CONFIG_BUTTON | 7 | - | 按钮:无绑定值,用户点击后通过 txnet_button_callback 回调通知客户端 |
使用流程
- 定义本地变量
- 调用
txnet_bind_config_xxx绑定变量到配置键 - 调用
txnet_get_config从服务器获取配置 - 绑定的变量自动被赋值
- 服务器推送更新时,变量自动更新
函数
txnet_bind_config_int
cpp
void txnet_bind_config_int(const char* key, int* ptr, int default_value);绑定一个整数配置项到本地变量。
| 参数 | 类型 | 说明 |
|---|---|---|
key | const char* | 配置键名 |
ptr | int* | 指向本地 int 变量的指针 |
default_value | int | 默认值 |
txnet_bind_config_float
cpp
void txnet_bind_config_float(const char* key, float* ptr, float default_value);绑定一个浮点数配置项到本地变量。
txnet_bind_config_bool
cpp
void txnet_bind_config_bool(const char* key, bool* ptr, bool default_value);绑定一个布尔配置项到本地变量。
txnet_bind_config_string
cpp
void txnet_bind_config_string(const char* key, char* ptr, int max_len, const char* default_value);绑定一个字符串配置项到本地字符数组。
| 参数 | 类型 | 说明 |
|---|---|---|
key | const char* | 配置键名 |
ptr | char* | 指向本地字符数组的指针 |
max_len | int | 字符数组的最大长度 |
default_value | const char* | 默认值 |
注意
必须使用 char[] 数组,不支持 std::string*。
txnet_set_config_callback
cpp
void txnet_set_config_callback(txnet_config_callback cb);设置配置变更回调函数。
txnet_get_config
cpp
void txnet_get_config();从服务器获取所有远程配置。此函数会阻塞直到获取完成。
txnet_set_button_callback
cpp
typedef void (*txnet_button_callback)(const char* key, const char* name);
void txnet_set_button_callback(txnet_button_callback cb);设置按钮点击回调。当用户在后台配置界面点击按钮类型配置时,会触发此回调。
| 参数 | 类型 | 说明 |
|---|---|---|
key | const char* | 配置键名 |
name | const char* | 配置显示名称 |
txnet_config_set
cpp
void txnet_config_set(const char* key, const char* value);提交单条配置到云端。非阻塞,结果通过 txnet_config_set_result_callback 回调返回。
| 参数 | 类型 | 说明 |
|---|---|---|
key | const char* | 配置键名 |
value | const char* | 配置值 |
txnet_config_set_batch
cpp
void txnet_config_set_batch(const char** keys, const char** values, int count);批量提交配置到云端。非阻塞,每项结果通过 txnet_config_set_result_callback 依次回调。
| 参数 | 类型 | 说明 |
|---|---|---|
keys | const char** | 键名数组 |
values | const char** | 值数组 |
count | int | 项数量 |
txnet_set_config_set_result_callback
cpp
typedef void (*txnet_config_set_result_callback)(const char* key, const char* name, const char* status, const char* reason);
void txnet_set_config_set_result_callback(txnet_config_set_result_callback cb);设置配置提交结果回调。单条或批量提交后,每项会触发一次回调。
| 参数 | 类型 | 说明 |
|---|---|---|
key | const char* | 配置键名 |
name | const char* | 配置显示名称 |
status | const char* | 结果状态:"success" 成功,"fail" 失败 |
reason | const char* | 成功或失败原因描述 |
手动获取函数
cpp
int txnet_config_get_int(const char* key, int default_value);
float txnet_config_get_float(const char* key, float default_value);
bool txnet_config_get_bool(const char* key, bool default_value);
const char* txnet_config_get_string(const char* key, const char* default_value);手动获取配置值(不使用绑定方式)。
回调函数
txnet_config_callback
cpp
typedef void (*txnet_config_callback)(
const char* key,
int type,
const char* name,
const char* value
);| 参数 | 类型 | 说明 |
|---|---|---|
key | const char* | 配置键名 |
type | int | 配置类型(TXNET_CONFIG_*) |
name | const char* | 配置显示名称 |
value | const char* | 配置值(字符串形式) |
示例
cpp
#include "txnet.h"
static bool g_espEnabled = false;
static bool g_aimbotEnabled = false;
static float g_espDistance = 500.0f;
static int g_aimbotKey = 0;
static char g_notice[512] = "";
void onConfigChange(const char* key, int type, const char* name, const char* value) {
printf("[配置] %s (%s) = %s\n", name, key, value);
}
int main() {
txnet_init(&config);
txnet_connect();
txnet_login();
// 绑定配置
txnet_bind_config_bool("espEnabled", &g_espEnabled, false);
txnet_bind_config_bool("aimbotEnabled", &g_aimbotEnabled, false);
txnet_bind_config_float("espDistance", &g_espDistance, 500.0f);
txnet_bind_config_int("aimbotKey", &g_aimbotKey, 0);
txnet_bind_config_string("notice", g_notice, sizeof(g_notice), "");
txnet_set_config_callback(onConfigChange);
txnet_get_config();
printf("ESP: %s, 距离: %.0f\n", g_espEnabled ? "开" : "关", g_espDistance);
// 按钮回调:用户点击后台配置界面中的按钮时触发
txnet_set_button_callback([](const char* key, const char* name) {
printf("[按钮] %s (%s)\n", name, key);
});
// 保存配置结果回调
txnet_set_config_set_result_callback([](const char* key, const char* name, const char* status, const char* reason) {
printf("[提交配置] %s (%s) %s: %s\n", name, key, status, reason);
});
// 单条提交
txnet_config_set("espEnabled", "1");
// 批量提交
const char* keys[] = {"espEnabled", "aimbotEnabled", "espDistance"};
const char* vals[] = {"1", "1", "500"};
txnet_config_set_batch(keys, vals, 3);
while (txnet_is_logged_in()) {
// 变量会随服务器推送自动更新
}
return 0;
}