не собирается плагин (trash errors :D)

Сообщения
20
Реакции
0
Ошибка
playeractions.sma(50) : error 088: number of arguments does not match definition
playeractions.sma(67) : error 001: expected token: ";", but found "("
playeractions.sma(69) : error 008: must be a constant expression; assumed zero
playeractions.sma(70) : error 021: symbol already defined: "get_user_name"
playeractions.sma(71) : error 010: invalid function or declaration
playeractions.sma(69) : warning 203: symbol is never used: "name"
Компилятор
Локальный
Amx Mod X
1.9.0
Исходный код
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <fakemeta>

// Путь к файлу логов
new const LOG_FILE[] = "logs/player_actions.log";
// Кэш для хранения предыдущих значений CVAR клиента
new g_cvar_cache[33][128];
// Флаги, которые отслеживают, был ли заголовок записан
new header_written[33];
new MAX_PLAYER_NAME[64];

public plugin_init() {
register_plugin("Console CVAR Logger", "2.1", "Ukraine Team Amxx");
register_forward(FM_CmdStart, "hook_cmdstart", 1);
}

public plugin_cfg() {
for (new i = 1; i <= get_maxplayers(); i++) {
if (is_user_connected(i)) {
arrayset(g_cvar_cache[i], 0, charsmax(g_cvar_cache[]));
header_written[i] = false;
}
}
}

public hook_cmdstart(client, seed) {
if (!is_user_connected(client)) return FMRES_IGNORED;

new command[128], args[128];
client_cmd(client, command, charsmax(command));
read_args(args, charsmax(args));

if (is_cvar_valid(command)) {
new cvar_value[128];
get_cvar_string(command, cvar_value, charsmax(cvar_value));

if (!equal(cvar_value, g_cvar_cache[client])) {
log_to_beauty_file(client, command, g_cvar_cache[client], cvar_value);
copy(g_cvar_cache[client], charsmax(g_cvar_cache[]), cvar_value);
}
}
return FMRES_IGNORED;
}

stock log_to_beauty_file(client, const cvar_name[], const old_value[], const new_value[]) {
if (!header_written[client]) {
log_to_file(LOG_FILE, "[%s] Игрок %s изменил значения кваров:", get_time_stamp(), get_player_name(client));
header_written[client] = true;
}
log_to_file(LOG_FILE, " %s: '%s' -> '%s'", cvar_name, old_value, new_value);
return 1;
}

bool:is_cvar_valid(const name[]) {
return get_cvar_pointer(name) != 0;
}

stock get_time_stamp() {
new timestamp[32];
get_time("%Y-%m-%d %H:%M:%S", timestamp, charsmax(timestamp));
return timestamp;
}

stock const get_player_name(id)
{
static name[MAX_PLAYER_NAME];
get_user_name(id, name, charsmax(name));
return 1;
}
help me guyz'

плагин заказной, увы предоставили как я понимаю прекрасно 'быдло-код'.
надеюсь знающие люди помогут <3
 
Сообщения
398
Реакции
222
Помог
13 раз(а)
midnightfury,
Код:
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <fakemeta>

// Путь к файлу логов
new const LOG_FILE[] = "logs/player_actions.log";
// Кэш для хранения предыдущих значений CVAR клиента
new g_cvar_cache[33][128];
// Флаги, которые отслеживают, был ли заголовок записан
new header_written[33];
// new MAX_PLAYER_NAME[64];

public plugin_init() {
    register_plugin("Console CVAR Logger", "2.1", "Ukraine Team Amxx");
    register_forward(FM_CmdStart, "hook_cmdstart", 1);
}

public plugin_cfg() {
    for (new i = 1; i <= get_maxplayers(); i++) {
        if (is_user_connected(i)) {
            arrayset(g_cvar_cache[i], 0, charsmax(g_cvar_cache[]));
            header_written[i] = false;
        }
    }
}

public hook_cmdstart(client, seed) {
    if (!is_user_connected(client)) return FMRES_IGNORED;

    new command[128], args[128];
    client_cmd(client, command, charsmax(command));
    read_args(args, charsmax(args));

    if (is_cvar_valid(command)) {
        new cvar_value[128];
        get_cvar_string(command, cvar_value, charsmax(cvar_value));

        if (!equal(cvar_value, g_cvar_cache[client])) {
           log_to_beauty_file(client, command, g_cvar_cache[client], cvar_value);
           copy(g_cvar_cache[client], charsmax(g_cvar_cache[]), cvar_value);
        }
    }
    return FMRES_IGNORED;
}

stock log_to_beauty_file(client, const cvar_name[], const old_value[], const new_value[]) {
    if (!header_written[client]) {
        log_to_file(LOG_FILE,fmt("[%s] Игрок %s изменил значения кваров:",get_time_stamp(),get_player_name(client)));
        header_written[client] = true;
    }
    log_to_file(LOG_FILE, "   %s: '%s' -> '%s'", cvar_name, old_value, new_value);
    return 1;
}

bool:is_cvar_valid(const name[]) {
    return get_cvar_pointer(name) != 0;
}

stock get_time_stamp() {
    new timestamp[32];
    get_time("%Y-%m-%d %H:%M:%S", timestamp, charsmax(timestamp));
    return timestamp;
}

stock get_player_name(id)
{
    new name[32];
    get_user_name(id, name, charsmax(name));
    
    return name;
}
 

Вложения

  • 2.2 KB Просмотры: 6

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу