Доступ к архиву

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Бан по железу

Статус
В этой теме нельзя размещать новые ответы.

Vitalik)

Изучающий
Пользователь
Регистрация
2 Дек 2013
Сообщения
249
Лучшие ответы
0
Репутация
27
С помощью этого бана вы можете банить по железу сильно "борзых" игроков, на вашем сервере.
Команды:
PHP:
/sban id игрока - забанить 
/serials - узнать список забаненых серийных номеров
/sunban - разбан
В дефайн:
PHP:
#define SERIAL_LENGTH 40
/*
add line: native gpci(playerid, serial[], len); to a_players.inc
*/
В public OnPlayerConnect(playerid)
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;
}
В public OnPlayerCommandText(playerid, cmdtext[])
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:
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу