Текущая версия SA-MP: 0.3.7


IP: 77.220.180.96:7777
  Новые сообщения · Поиск
  • Страница 1 из 1
  • 1
Модератор форума: KaTacTpOqpa  
Делаем бан по никнейму
BJIADOKC Сообщение # 1  | 17:15:38
Скриптеры
Сообщений: 601
Репутация: 161
1) Надо сделать функцию занесения ника в "чёрный список" и при коннекте игрока, если его имя есть в чёрном списке, то кикать его с сервера.
2)Начинаем
Сначала поставим вверх
Code

new BadNames[100][100];
new BadNameCount = 0;   

Потом

Code

if(strcmp(cmd, "/nban", true) == 0)
{

tmp = strtok(cmdtext, idx);

if(!strlen(tmp))
{
SendClientMessage(playerid, 0xFFFF00AA, "Используйте: /nban [id]");
return 1;
}

new playa;
if(IsStringAName(tmp))
{
playa = GetPlayerID(tmp);
}

else
{
playa = strval(tmp);
}

if(!IsPlayerConnected(playa))
{
SendClientMessage(playerid,0xFFFF00AA,"Этого игрока нету на сервере.");
return 1;
}

GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new File:BLfile;//новый файл
BLfile = fopen("BannedNames.cfg",io_append);//открываем забаненых
format(string,sizeof(string),"%s\r\n",giveplayer);//формат записи
fwrite(BLfile,string);//записываемс
fclose(BLfile);//закрываемс
SendClientMessage(playa, 0xFFFF00AA, "Вас забанили");//Пишем это игроку что он знал
format(string, sizeof(string), " %s Был Забанен по нику админом %s",giveplayer ,sendername);
SendClientMessageToAll(0xFFFF00AA, string);
UpdateConfigNames();
Kick(playa);
return 1;
}   

3)Теперь делаем паблик UpdateConfigNames() Чтобы обновлять список забаненных

Code

forward UpdateConfigNames();
public UpdateConfigNames()
{
new File:file2, string[100];

if((file2 = fopen("BannedNames.cfg",io_read)))
{
while(fread(file2,string))
{
for(new i = 0, j = strlen(string); i < j; i++) if(string[i] == '\n' || string[i] == '\r') string[i] = '\0';
BadNames[BadNameCount] = string;
BadNameCount++;
}
fclose(file2);
print("Banned List Reloaded");
}
}   

И ещё Обязательно вставьте строчку UpdateConfigNames(); в GameModeInIt Чтобы При Запуске/перезагрузке сервера загружался чёрный спиок
И теперь осталось немного, это сделать чтоб при коннекте Проверяло есть ли игрок в "чёрном списке"
Code

for(new s = 0; s < BadNameCount; s++)
{
new PlayerName[30];
GetPlayerName(playerid, PlayerName, 30);
new pos;
while((pos = strfind(PlayerName,BadNames[s],true)) != -1)
for(new i = pos, j = pos + strlen(BadNames[s]); i < j; i++)
{
SendClientMessage(playerid,0xA9C4E4AA,"Вы забанены на этом сервере");
Kick(playerid);
return 1;
}
}   

сперто у PAWNO.RU


тут больше не сижу... открыл свой проект


Редактировано BJIADOKC - Понедельник, 02 Авг 2010, 17:16:38
Polcar Сообщение # 2  | 20:11:16
Руководитель проекта SM
Администраторы
Сообщений: 788
Репутация: 323
да, полезна инфа, для про скриптёров



Demetrius Сообщение # 3  | 22:02:08
VIP-пользователи
Сообщений: 1192
Репутация: 158
мда... еле что-то да разобрал...

Sweet >>> Armin >>> Demetrius

SA:MP >> MTA:SA >> IRL
HaeMHuK[aka]zet Сообщение # 4  | 03:23:01
Дизайнер сайта
Пользователи
Сообщений: 73
Репутация: 13
вот эта вешь нужна на сервер. а то по ип мало толку банить

delete
Polcar Сообщение # 5  | 19:01:15
Руководитель проекта SM
Администраторы
Сообщений: 788
Репутация: 323
по нику тоже, был ник DIMAN, сменили его, стал DIMAN_ и т.д, или вообще поменяют и будут в наглую читерить под другим ником и не узнаем!

Поэтому иногда она наоборот ненужна




blackroses Сообщение # 6  | 09:01:25
Пользователи
Сообщений: 2
Репутация: 0
Quote (Polcar)
по нику тоже, был ник DIMAN, сменили его, стал DIMAN_ и т.д, или вообще поменяют и будут в наглую читерить под другим ником и не узнаем!

Поэтому иногда она наоборот ненужна

Согласен даже когда так банеш всеравно заходят ники меняют, но инфа палезная smile

  • Страница 1 из 1
  • 1
Поиск: