L 02/08/2019 - 16:21:39: Info (map "DE_Dust2_Santorini_Export_B1") (file "addons/amxmodx/logs/error_20190208.log")
L 02/08/2019 - 16:21:39: replace() buffer not big enough (33>=31)
L 02/08/2019 - 16:21:39: [AMXX] Run time error 10 (plugin "demo_rec.amxx") (native "replace") - debug not enabled!
L 02/08/2019 - 16:21:39: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
bind_pcvar_float(create_cvar("amx_demo_timeout", "5.0", .has_min = true, .min = 0.0), Timeout);
public plugin_cfg() {
Timeout = get_cvar_float("amx_demo_timeout");
HookChangeFormat(get_cvar_pointer("amx_demo_format"));
}
- public HookChangeFormat(const pcvar) {
+ public HookChangeFormat(const pcvar, const oldValue[], const newValue[]) {
- get_pcvar_string(pcvar, DemoName, charsmax(DemoName));
+ copy(DemoName, charsmax(DemoName), newValue);
new map[32];
get_mapname(map, charsmax(map));
replace(DemoName, charsmax(DemoName), "%mapname%", map);
}
public client_putinserver(id) {
if (!is_user_bot(id) && !is_user_hltv(id)) {
if (Timeout) {
set_task(Timeout, "TaskRecord", id);
} else {
TaskRecord(id);
}
}
}
!Timeout && TaskRecord(id);
Timeout && set_task(Timeout, "TaskRecord", id);
1, 2, 3 - попробуй изменить значение квара в консоли без прописи в конфиг. После этого изменить карту. Если сделат как ты предлагаешь (что также верно в некой мере), то получим значения кваров одни, а в плагине переменные другие. Эти манипуляции сделаны именно для такого случая.
Timeout = get_cvar_float("amx_demo_timeout");
Да и то- непонятная конструкция.. че к чему) Зечем из поинтера получать и зачем квары, которые не пишутся в конфиге для возможности их восстановления
bind_pcvar_float(pcvar, Timeout);
new Float:Timeout = 5.0
#include <amxmodx>
new Float:Timeout = 5.0, DemoName[32] = "Demo";
public plugin_init() {
register_plugin("Demo Recorder", "2.4.0", "F@nt0M");
new pcvar;
pcvar = create_cvar(
.name = "amx_demo_timeout",
.string = "5.0",
.has_min = true,
.min_val = 0.0
);
bind_pcvar_float(pcvar, Timeout);
pcvar = create_cvar(
.name = "amx_demo_format",
.string = "Demo-%mapname%"
);
hook_cvar_change(pcvar, "HookChangeFormat");
}
public plugin_cfg() {
Timeout = get_cvar_float("amx_demo_timeout");
HookChangeFormat(get_cvar_pointer("amx_demo_format"));
}
public HookChangeFormat(const pcvar) {
get_pcvar_string(pcvar, DemoName, charsmax(DemoName));
new map[32];
get_mapname(map, charsmax(map));
replace(DemoName, charsmax(DemoName), "%mapname%", map);
}
public client_putinserver(id) {
if (!is_user_bot(id) && !is_user_hltv(id)) {
if (Timeout > 0.0) {
set_task(Timeout, "TaskRecord", id);
} else {
TaskRecord(id);
}
}
}
public client_disconnected(id) {
remove_task(id)
}
public TaskRecord(id) {
if (is_user_connected(id)) {
client_cmd(id, "stop;wait;wait;record ^"%s^"", DemoName);
set_task(5.0, "TaskShowMessage", id);
}
}