-
Постов
7 073 -
Зарегистрирован
-
Посещение
-
Победитель дней
546
Тип контента
Загрузки
Форумы
Профили
Магазин
Весь контент ryancoolround
-
Мы ночью с @Blutsauger бегали по карте Порт, в поиске позиции для спавна Толстяка, или для размещения граффити. По итогу, мне надо было что то найти в яндексе, и я тупа натыкаюсь на этот форум...
-
RevEmu снова отпадает, потому что наша бан система в виде из коробки, не предусматривает вход по нику и паролю, и для того что бы пираты смогли подключаться, в этой системе придется кое что переписать.
Можно было бы написать плагин для проверки пароля админа, но опять же Material Admin будет просто игнорировать этот плагин. А вообще, вот код для этого плагина, может кому то пригодится.
#include <regex> static const String:g_sLogPath[] = "addons/sourcemod/logs/admin_password_checker.log"; new String:sInfoVar[32]; public Plugin:myinfo = { name = "Admin Password Checker", author = "Danyas", version = "1.3.1" } public OnPluginStart() { if (!GetPassInfoVar(sInfoVar, sizeof(sInfoVar))) { SetFailState("PassInfoVar не найден в файле core.cfg"); } // else LogMessage("Переменная PassInfoVar имеет значение '%s'",sInfoVar); } public Action:OnClientPreAdminCheck(client) { if (client > 0) { decl String:sBuff[64], String:sPassword[64]; GetClientAuthId(client, AuthId_Engine, sBuff, sizeof(sBuff)); new AdminId:admin = FindAdminByIdentity(AUTHMETHOD_STEAM, sBuff); if (admin != INVALID_ADMIN_ID) { if (GetAdminPassword(admin, sPassword, sizeof(sPassword))) { if(GetClientInfo(client, sInfoVar, sBuff, sizeof(sBuff)) && sBuff[0] != 0) { if (!StrEqual(sPassword, sBuff)) { KickClient(client, "Вы ввели неверный пароль! 'setinfo %s ПАРОЛЬ'", sInfoVar); LogToFileEx(g_sLogPath, "%L<%s> Пытался зайти с паролем %s", client, GetClientIP(client, sPassword, 21) ? sPassword : "?", sBuff); } } else { KickClient(client, "Введите пароль в консоле. 'setinfo %s ПАРОЛЬ'", sInfoVar); LogToFileEx(g_sLogPath, "%L<%s> Пытался зайти без пароля", client, GetClientIP(client, sPassword, 21) ? sPassword : "?"); } } //else PrintToServer("Админ без пароля"); } //else PrintToServer("INVALID_ADMIN_ID"); } } bool:GetPassInfoVar(String:value[], maxlength) { new Handle:file = OpenFile("addons/sourcemod/configs/core.cfg", "rt"); if (file != INVALID_HANDLE) { new Handle:re = CompileRegex("^\\s+\"PassInfoVar\"\\s+\"(\\w+)\""); // ([^\"]*) if (re != INVALID_HANDLE) { decl String:buffer[PLATFORM_MAX_PATH]; while (!IsEndOfFile(file) && ReadFileLine(file, buffer, sizeof(buffer))) { if (MatchRegex(re, buffer) > 0 && GetRegexSubString(re, 1, value, maxlength)) { CloseHandle(re); CloseHandle(file); return true; } } CloseHandle(re); } CloseHandle(file); } return false; }
-
Я обязан предупредить! Играя на сервере FuckTheSystem у вас ведется автоматическая запись демо в ВАШУ папку с игрой, без вашего ведома.