Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

UID игрока и SuperBan (часть 2)

, Помогите совместить 2 куска кода
Статус пользователя mcrc
сообщение 1.7.2014, 4:14
Сообщение #1


Стаж: 12 лет

Сообщений: 70
Благодарностей: 6
Полезность: 70

Всем привет!
Цитата
У меня проблема, часто стало получаться, что на сервер приходят игроки с одинаковыми UID в конфиге CS. Получается, если забанишь одного такого чела SuperBan'ом, то в бан неминуемо попадает куча народа (с той же сборкой CS). Есть ли какая-то возможность сбрасывать/изменять некоторые наиболее часто встречающиеся UID (например, BSmg4SfgmA)?

На форуме добрый человек поделился куском кода (спасибо, ВаНеК), который детектирует у клиента наличие UID из списка и может заменить его на случайно сгенерированный.

Помогите, пожалуйста, добавить в Код1 функцию генерации рандомного UID (Код2) и прописывать его игроку вместо кика.
Ну и чтобы это был полноценный исходник для компиляции.

Код1
Код:
public to_log(id)
{
if(!is_user_connected(id) || is_user_bot(id) || is_user_hltv(id)) return
new botc[32], rate[32], nick[32], ip[32], steam[32], uid[11], ruid[11]
get_user_info(id, "bottomcolor", botc, 31)
get_user_info(id, "rate", rate, 31)
get_user_name(id, nick, 31)
get_user_ip(id, ip, 31, 1)
get_user_authid(id, steam, 31)
if(contain(botc, "'")!=-1 || contain(rate, "'")!=-1 || contain(botc, "\")!=-1 || contain(rate, "\")!=-1)
{
log_amx("%s <%s> <%s>: обнаружен check, \ или ' в UID", nick, ip, steam);
client_cmd(id, "rate 25000");
client_cmd(id, "bottomcolor 6");
client_cmd(id, "setinfo rate 25000");
client_cmd(id, "setinfo bottomcolor 6");
client_print(id, print_notify, "Ошибка при проверке UID, перезайдите на сервер");
client_print(id, print_notify, "Если вы не можете зайти на сервер со 2-ой и более попыток");
client_print(id, print_notify, "Обратитесь к администрации");
client_print(id, print_notify, "Или к автору плагина: ");
client_print(id, print_notify, "При добавлении отправляйте это сообщение");
server_cmd("kick #%d ^"Ошибка при проверке UID. Подробности в консоле.^"", get_user_userid(id));
return
}

log_amx("<%s> <%s> Name: %s; UID: %s; R: %s", ip, steam, nick, botc, rate)

new i
for(i=0;i<=31;i++)
{
if(isdigit(botc[i])) continue;
formatex(uid, 31, "%s", botc[i])
break
}
for(i=0;i<=31;i++)
{
if(isdigit(rate[i])) continue;
formatex(ruid, 31, "%s", rate[i])
break
}

if(equali(uid, "") || is_str_num(uid) || !equal(uid, ruid))
{
log_amx("%s <%s> <%s>: %s - %s обнаружен HL Protector", nick, ip, steam, uid, ruid);
client_cmd(id, "rate 25000");
client_cmd(id, "bottomcolor 6");
client_cmd(id, "setinfo rate 25000");
client_cmd(id, "setinfo bottomcolor 6");
client_print(id, print_notify, "Ошибка при проверке UID, выключите HL Protector и зайдите на сервер");
client_print(id, print_notify, "Если у вас нет протектора, обратитесь к администрации ");
client_print(id, print_notify, "Или к автору плагина: ");
client_print(id, print_notify, "При добавлении отправляйте это сообщение");
server_cmd("kick #%d ^"Ошибка при проверке UID. Подробности в консоле.^"", get_user_userid(id));
return
}

if(equali(uid, "XYWIaEB3oa")||equali(uid, "eHYRihWm6S")||equali(uid, "BSmg4SfgmA")||strlen(uid)!=10)
{
log_amx("%s <%s> <%s>: обнаружен запрещенный UID", nick, ip, steam);
client_cmd(id, "rate 25000");
client_cmd(id, "bottomcolor 6");
client_cmd(id, "setinfo rate 25000");
client_cmd(id, "setinfo bottomcolor 6");
client_print(id, print_notify, "Ошибка при проверке UID, перезайдите на сервер");
client_print(id, print_notify, "Если вы не можете зайти на сервер со 2-ой и более попыток");
client_print(id, print_notify, "Обратитесь к администрации");
client_print(id, print_notify, "Или к автору плагина: ");
client_print(id, print_notify, "При добавлении отправляйте это сообщение");
server_cmd("kick #%d ^"Ошибка при проверке UID. Подробности в консоле.^"", get_user_userid(id));
return
}
}

Код2
Код:
public CreateUID(id)
{
// Генератор UID-ов, первый символ обязательно буква, остальные - буквы и цифры.
new UID[32], i, Letter
Letter = random(52)

if (Letter < 26)
UID[0] = 65 + Letter
if (Letter > 25)
UID[0] = 71 + Letter

for (i = 1; i < 10; i++)
{
Letter = random(62)
if (Letter < 10)
UID[i] = 48 + Letter
if ((Letter > 9) && (Letter < 36))
UID[i] = 55 + Letter
if (Letter > 35)
UID[i] = 61 + Letter
}

return UID
}


Отредактировал: mcrc, - 1.7.2014, 4:15
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   Цитировать сообщение
Статус пользователя Lukmanov
сообщение 10.7.2014, 20:36
Сообщение #2


Стаж: 16 лет

Сообщений: 53
Благодарностей: 116
Полезность: < 0

mcrc,
Отписался в предыдущей теме: https://c-s.net.ua/forum/index.php?showtopi...mp;#entry626548

Отредактировал: Lukmanov, - 10.7.2014, 20:36
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mcrc
сообщение 18.8.2014, 5:10
Сообщение #3


Стаж: 12 лет

Сообщений: 70
Благодарностей: 6
Полезность: 70

Ребята-скриптеры, не проходите мимо, помогите пожалуйста!
Эльдару сейчас не до СуперБана, а функционал этот очень критичный(
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: