- Регистрация
- 2 Дек 2013
- Сообщения
- 249
- Лучшие ответы
- 0
- Репутация
- 27
С помощью этого бана вы можете банить по железу сильно "борзых" игроков, на вашем сервере.
Команды:
В дефайн:
В public OnPlayerConnect(playerid)
В public OnPlayerCommandText(playerid, cmdtext[])
В сток
Автор: я
include:
Команды:
PHP:
/sban id игрока - забанить
/serials - узнать список забаненых серийных номеров
/sunban - разбан
PHP:
#define SERIAL_LENGTH 40
/*
add line: native gpci(playerid, serial[], len); to a_players.inc
*/
PHP:
if(!fexist("SerialBans.txt")) return 1;
new serialid[164];
gpci(playerid, serialid, sizeof(serialid));
new File:sfile = fopen("SerialBans.txt", io_read);
if(sfile)
{
new banstr[512];
while(fread(sfile, banstr))
{
if(strfind(banstr, serialid) != -1)
{
SendClientMessage(playerid, 0x6EF83CFF, "Ваш {FFFFFF}Serial ID {6EF83C}забанен на этом сервере.");
Kick(playerid);
}
}
fclose(sfile);
}
return 1;
}
PHP:
new cmd[256], idx;
cmd = strtok(cmdtext, idx);
if(strcmp(cmd, "/sban", true) == 0)
{
new tmp[30];
tmp = strtok(cmdtext, idx);
new targetid = strval(tmp);
new serial[164];
gpci(targetid, serial, sizeof(serial));
new File:sfile = fopen("SerialBans.txt", io_readwrite);
new sstring[162];
format(sstring, sizeof(sstring), "%s\n", serial);
fwrite(sfile, sstring);
fclose(sfile);
sstring[0] = EOS;
format(sstring, sizeof(sstring), "Вы забанили серийный номер {FFFFFF}%s", serial);
SendClientMessage(playerid, 0x6EF83CFF, sstring);
Kick(targetid);
return 1;
}
if(strcmp(cmd, "/sunban", true) == 0)
{
new tmp[30];
tmp = strtok(cmdtext, idx);
new serialid[164];
serialid = tmp;
if(!fexist("SerialBans.txt")) return SendClientMessage(playerid, 0x6EF83CFF, "На сервере нет забаненных {FFFFFF}Serial ID");
new File:sfile = fopen("SerialBans.txt", io_readwrite);
new banstr[512], templine[1024];
while(fread(sfile, banstr)) strcat(templine, banstr);
fclose(sfile);
new index = strfind(templine, serialid);
if(index == -1) return SendClientMessage(playerid, 0x6EF83CFF, "На этом сервере данный {FFFFFF}Serial ID {6EF83C}не забанен.");
strdel(templine, index, index + SERIAL_LENGTH);
sfile = fopen("SerialBans.txt", io_write);
fwrite(sfile, templine);
fclose(sfile);
SendClientMessage(playerid, 0x6EF83CFF, "Вы разабанили серийный номер:");
new sstring[128];
format(sstring, sizeof(sstring), "{FFFFFF}%s", serialid);
SendClientMessage(playerid, -1, sstring);
return 1;
}
if(strcmp(cmdtext, "/serials", true) == 0)
{
if(!fexist("SerialBans.txt")) return SendClientMessage(playerid, 0x6EF83CFF, "На сервере нет забаненных {FFFFFF}Serial ID");
new banstr[512], File:file = fopen("SerialBans.txt", io_read);
SendClientMessage(playerid, -1, "{6EF83C}Список забаненых серийных номеров:");
if(file)
{
fread(file, banstr);
fclose(file);
if(strlen(banstr) < 2) return SendClientMessage(playerid, 0xFFFFFFFF, "Список пуст");
file = fopen("SerialBans.txt", io_read);
while(fread(file, banstr)) SendClientMessage(playerid, 0xFFFFFFFF, banstr);
fclose(file);
}
return 1;
}
PHP:
stock strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' ')) index++;
new offset = index, result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
include:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Последнее редактирование: