diff --git a/README.md b/README.md index 4d93c0f..ece993f 100644 --- a/README.md +++ b/README.md @@ -74,11 +74,11 @@ addons/sourcemod/logs/super_admin_menu.log ## Версия -`1.3.1` — Автор: OpenAI + deidara.dev +`1.3.2` — Автор: OpenAI + deidara.dev ### Changelog -- **1.3.1** +- **1.3.2** - Логирование переведено с `OpenFile` на `LogToFileEx` — родной механизм SourceMod, надёжно работает на shared-хостингах (MyArena и т.п.) - **1.3** - Разграничение прав: обычные админы (флаги `a`–`j`, без `z`) теперь имеют доступ только к меню «Эффекты игрока» diff --git a/scripting/super_admin_menu.sp b/scripting/super_admin_menu.sp index e1d2f22..17335c1 100644 --- a/scripting/super_admin_menu.sp +++ b/scripting/super_admin_menu.sp @@ -24,7 +24,7 @@ public Plugin myinfo = name = "Super Admin Menu", author = "OpenAI + deidara.dev", description = "Единое супер-админ меню по команде sm_sadmin", - version = "1.3.2-debug" + version = "1.3.2" }; public void OnPluginStart() @@ -1339,20 +1339,16 @@ bool IsValidClient(int client) return (client > 0 && client <= MaxClients && IsClientInGame(client)); } -// Логируем действие админа. Действия обычного админа -> в super_admin_menu.log. -// Все действия (любого админа) -> в стандартный SM лог (L.log) для отладки. +// Логируем действие обычного админа в файл addons/sourcemod/logs/super_admin_menu.log. +// Действия DEIDARA/TESTER не логируются. void LogAdminAction(int client, int target, const char[] format, any ...) { + if (!IsRegularAdmin(client)) + return; + char message[256]; VFormat(message, sizeof(message), format, 4); - bool isReg = IsRegularAdmin(client); - bool isAllowed = IsClientInAllowedGroup(client); - int flags = GetUserFlagBits(client); - - // [DEBUG] показываем в чате что произошло - PrintToChat(client, "\x04[SADMIN-DBG]\x01 isReg=%d allowedGroup=%d flags=%d", isReg, isAllowed, flags); - char adminName[MAX_NAME_LENGTH], adminSteam[32]; GetClientName(client, adminName, sizeof(adminName)); if (!GetClientAuthId(client, AuthId_Steam2, adminSteam, sizeof(adminSteam))) @@ -1372,20 +1368,11 @@ void LogAdminAction(int client, int target, const char[] format, any ...) strcopy(targetInfo, sizeof(targetInfo), "UNKNOWN"); } - // [DEBUG] всегда пишем в стандартный SM лог (L.log) — этот файл точно существует - LogMessage("[super_admin_menu DEBUG] isReg=%d allowedGroup=%d flags=%d | %s (%s) -> %s на игроке %s", - isReg, isAllowed, flags, adminName, adminSteam, message, targetInfo); - - if (!isReg) - return; - char path[PLATFORM_MAX_PATH]; BuildPath(Path_SM, path, sizeof(path), "logs/super_admin_menu.log"); char timestamp[32]; FormatTime(timestamp, sizeof(timestamp), "%Y-%m-%d %H:%M:%S"); - PrintToChat(client, "\x04[SADMIN-DBG]\x01 пишу в %s", path); - LogToFileEx(path, "[%s] %s (%s) -> %s на игроке %s", timestamp, adminName, adminSteam, message, targetInfo); } \ No newline at end of file