rc_log

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
181
Реакции
18
Помог
8 раз(а)
Ошибка
//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// rc_log.sma
// C:\Users\artyo\Desktop\ъюья Ёхряш\rc_log.sma(27) : error 088: number of arguments does not match definition
//
// 1 Error.
// Could not locate output file C:\Users\artyo\Desktop\ъюья Ёхряш\compiled\rc_log.amx (compile failed).
//
// Compilation Time: 0,2 sec
// ----------------------------------------

Press enter to exit ...
Компилятор
Локальный
Amx Mod X
Исходный код
#pragma semicolon 1

#include <amxmodx>
#include <reapi>

new g_File;

public plugin_init() {
register_plugin("Rechecker Log", "0.1", "F@nt0M");
RegisterHookChain(RC_CmdExec, "CmdExec", true);
}

public plugin_cfg() {
new path[128];
get_localinfo("amxx_logs", path, charsmax(path));
add(path, charsmax(path), "/rc_log");
if (!dir_exists(path)) {
mkdir(path);
}

add(path, charsmax(path), "/L%Y%m%d.log");

format_time(path, charsmax(path), path);

g_File = fopen(path, "a");
if (!g_File) {
set_fail_state("Could not open %s for write", path);
}
}

public plugin_end() {
fclose(g_File);
}

public CmdExec(const client, const filename[], cmd[], const hash) {
new hour, minute, second;
time(hour, minute, second);

new nick[32], authid[24], ip[15];
get_user_name(client, nick, charsmax(nick));
get_user_authid(client, authid, charsmax(authid));
get_user_ip(client, ip, charsmax(ip), 1);

trim(cmd);

fprintf(
g_File,
"%02d:%02d:%02d: <%s><%s><%s> found '%s' with hash %s.^n^tExecuteCMD: %s^n",
hour, minute, second,
nick, authid, ip,
filename, Hash2Hex(hash), cmd
);
fflush(g_File);
}

Hash2Hex(hash) {
new result[9];
for(new i = 0, mask, bit, k; i < 32; i+= 4) {
mask = (1 << i) | (1 << (i+1)) | (1 << (i+2)) | (1 << (i+3));
bit = (hash & mask) >> i;
if (bit < 0) {
bit &= 0xF;
}
k = 7 - (i / 4);
result[k] = bit <= 9 ? bit + 48 : bit + 55;
}
result[8] = EOS;
return result;
}
Плагин под 1.8.3, автор сказал, что возможно будет работать на 1.8.2, помогите исправить ошибку.
 
В этой теме было размещено решение! Перейти к решению.

fox

Сообщения
173
Реакции
49
Помог
7 раз(а)
Я так понимаю, записывает логи recheker данный плагин?
30 Янв 2018
А чем плох данный?

Код:
#include <amxmisc>

new rcString[192];
new rcTime[16];
new rcFile[64];

public plugin_init()
{
    register_plugin("ReChecker Logging", "freesrv", "custom")

    register_srvcmd("rc_log", "cmd_rcLog");
    register_srvcmd("ms_log", "cmd_msLog");
    register_srvcmd("fk_log", "cmd_fkLog");
}

public cmd_rcLog(id)
{
    read_args(rcString, charsmax(rcString));
    get_time("%Y%m%d", rcTime, charsmax(rcTime));
    format(rcFile, charsmax(rcFile), "addons/amxmodx/logs/RC/rc_%s.log", rcTime);
    
    log_to_file(rcFile, "%s", rcString);
}

public cmd_msLog(id)
{
    read_args(rcString, charsmax(rcString));
    get_time("%Y%m%d", rcTime, charsmax(rcTime));
    format(rcFile, charsmax(rcFile), "addons/amxmodx/logs/RC/ms_%s.log", rcTime);
    
    log_to_file(rcFile, "%s", rcString)
}

public cmd_fkLog(id)
{
    read_args(rcString, charsmax(rcString));
    get_time("%Y%m%d", rcTime, charsmax(rcTime));
    format(rcFile, charsmax(rcFile), "addons/amxmodx/logs/RC/fk_%s.log", rcTime);
    
    log_to_file(rcFile, "%s", rcString);
}
 
Сообщения
2,143
Реакции
1,223
Помог
44 раз(а)
fox, как дополнение, ибо стандартные логи ReChecker'a немного сложнее читать, чем те, что будут формированы данным плагином.
 

fox

Сообщения
173
Реакции
49
Помог
7 раз(а)
Minni, спасибо за пояснение.
 
Сообщения
2,491
Реакции
2,790
Помог
61 раз(а)
Diff:
-set_fail_state("Could not open %s for write", path);
+#if AMXX_VERSION_NUM < 183
+new state[64];
+formatex(state, charsmax(state), "Could not open %s for write", path);
+set_fail_state(state);
+#else
+set_fail_state("Could not open %s for write", path);
+#endif
30 Янв 2018
А чем плох данный?
Он лучше только тем, что есть возможность указать свое сообщение в логе, а также ведет разные логы. Но в остальном все минусы. Это и открытие файлового дескриптора при каждом обнаружении и то что нужно дописивать конфиг речекера
 
Статус
В этой теме нельзя размещать новые ответы.

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

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