PARTYRNAKS
Дебютант
Всем привет
Сегодня я покажу вам защиту RCON доступа (Самую надежную)
Для удобности создаем #define
Далее ищем паблик OnRconLoginAttempt
Для тех, кто не освоил вариант этого кода, оставляю старый(без #define)
Даная защита позволит только вам - RCON администраторам входить в RCON доступ
Обновлено: 20.03.2015
Как оказалось можно ставить несколько администраторов
Обновлено: 20.08.2018
Оптимизирован код(как по мне более солиднее смотрится)
P.S. Для того что бы не было багов найдите у себя в моде такую строчку
Помогло? Поставь +
Сегодня я покажу вам защиту RCON доступа (Самую надежную)
Для удобности создаем #define
PHP:
#define ADMIN(%0,%1) !strcmp(PlayerInfo[%0][pNames], %1, false) //Проверка на ник Администратора. Если есть своя переменная ника игрока используем ее так(Name[%0], pInfo[%0][pName] и т.д.)
#define foreach(%0:%1) for(new %0 = 0; %0 < %1; %0++) //Знаю, что есть нормальный инклуд foreach, по этом тут уже на свой вкус
Далее ищем паблик OnRconLoginAttempt
PHP:
public OnRconLoginAttempt(ip[], password[], success)
{
new pip[16];
if !success*then //Если пароль введен неверно, то
{
printf("Попытка взлома Rcon пароля игроком под IP: %s .Вводимый пароль: %s",ip, password);//Выводим сообщение к ноцоль о попытке взлома
foreach(i:MAX_PLAYERS) //Узнаем ID игроков Online
{
GetPlayerIp(i, pip, sizeof(pip)); //Узнаем IP игроков Online
if !strcmp(ip, pip, true)*then //Если IP игрока совпадает с IP взломщика, то
{
if ADMIN(i,"M4jORiK")*then return SendClientMessage(i, COLOR(FFFFFF), "Вспоминай пароль!"); // Если игрок администратор, вызывается откат функции и вывод сообщения
SendClientMessage(i, COLOR(ADC7E7), "You are banned from this server.."), Ban(i); return true; // В противном случаи, выдается БАН(так-же бан можно ставить на свое усмотрение)
}
}
}
else //Либо, если пароль введен верно
{
foreach(i:MAX_PLAYERS) //Узнаем ID игроков Online
{
GetPlayerIp(i, pip, sizeof(pip)); //Узнаем IP игроков Online
if !strcmp(ip, pip, true)*then //Если IP игрока совпал с IP игрока, который знает(угадал, взломал и т.д.) RCON пароль, то
{
if ADMIN(i,"M4jORiK")*then
{
SendClientMessage(i, COLOR(FFFFFF), "Вы успешно вошли как {00AAFF}RCON Администратор"); //Если игрок администратор, вызывается откат функции, выдается RCON доступ и выводится сообщения
return true;
}
SendClientMessage(i, COLOR(FFFFFF), "Вы не {00AAFF}RCON Администратор!"), Ban(i);// В противном случаи, выдается БАН за попытку взлома RCON пароля
//Так-же можно добавлять свои действия как для Админов, так и для взомщиков
}
}
}
return true;
}
PHP:
public OnRconLoginAttempt(ip[], password[], success) {
if(!success) //If the password was incorrect
{
printf("Попытка взлома RCON пароля игроком под IP: %s .Вводимый пароль: %s",ip, password);
new Nick[MAX_PLAYER_NAME];
new pip[16];
for(new i=0; i<MAX_PLAYERS; i++) //Ищем Взломщика
{
GetPlayerIp(i, pip, sizeof(pip));
if(!strcmp(ip, pip, true)) //Если у игрока и взломщика тот же IP, то
{
GetPlayerName(i, Nick, sizeof(Nick));
if(!strcmp(Nick, "PARTYRNAKS", false))//Сюда ник RCON администратора
{
SendClientMessage(i, 0xAA3333AA, "Вспоминай Пароль!");
return 1;
}
SendClientMessage(i, 0xFFFFFFFF, "Неверный RCON пароль. Бан!"); //Пишется данное сообщение
Ban(i); //Все Игрок Забанен
return 1;
}
}
}
else
{
//printf("Попытка взлома RCON пароля игроком под IP: %s .Вводимый пароль: %s",ip, password);
new pip[16];
new Nick[MAX_PLAYER_NAME];
for(new i=0; i<MAX_PLAYERS; i++) //Ищем взломщика
{
GetPlayerIp(i, pip, sizeof(pip));
if(!strcmp(ip, pip, true)) //Если у игрока и взломщика тот же IP, то
{
GetPlayerName(i, Nick, sizeof(Nick));
if(!strcmp(Nick, "PARTYRNAKS", false))//Сюда ник RCON администратора
{
SendClientMessage(i, 0xAA3333AA, "Вы успешно вошли");//Если пароль и ник совпадают то
SetPVarInt(i, "AR", 1);
return 1;
}
SendClientMessage(i, 0xAA3333AA, "Вы не RCON администратор!");//Если пароль введен верно но ник не совпадает то
Ban(i);
}
}
}
return 1;
}
Обновлено: 20.03.2015
Как оказалось можно ставить несколько администраторов
Обновлено: 20.08.2018
Оптимизирован код(как по мне более солиднее смотрится)
P.S. Для того что бы не было багов найдите у себя в моде такую строчку
PHP:
public OnRconLoginAttempt(ip[], password[], success)
Последнее редактирование:
