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

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

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

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

[Урок]Создаем /ban по нику,а не ip

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

Joey_Air

Начинающий
Пользователь
Регистрация
12 Ноя 2011
Сообщения
54
Лучшие ответы
0
Репутация
7
Здравствуйте!!!Хотел бы вам показать как сделать команду /ban по нику!
Итак создадим переменную,чтобы закрывала доступ на сервер если игрок забанен!
В enum pinfo:
PHP:
	pLocked,
Теперь найдем public OnPlayerConnect(playerid) и вставим:
PHP:
	PlayerInfo[playerid][pLocked] = 0;
Ищем public OnPlayerRegister(playerid, password[]) и ниже этого
PHP:
		iniSetInt(File,"AdminLevel",PlayerInfo[playerid][pAdmin]);
вставляем
PHP:
  		iniSetInt(File,"Locked",PlayerInfo[playerid][pLocked]);
Ищем еще public OnPlayerUpdate_GF(playerid) и также ниже
PHP:
		iniSetInt(File,"AdminLevel",PlayerInfo[playerid][pAdmin]);
вставляем:
PHP:
   			iniSetInt(File,"Locked",PlayerInfo[playerid][pLocked]);
Следующий и последний ищем public OnPlayerLogin(playerid,password[]) и также вставляем как и в предыдущие паблики:

PHP:
		iniGetInt(File,"Locked",PlayerInfo[playerid][pLocked]);
Все!Теперь заходим в public OnPlayerConnect И вставляем:

PHP:
	if(PlayerInfo[playerid][pLocked] == 1) //autoban
		{
			SendClientMessage(playerid, COLOR_LIGHTRED, " * Этот аккаунт заблокирован администрацией!");
			SendClientMessage(playerid, Cvet_19, " * Если вы хотите обжаловать бан,вам на сайт:ваш сайт!");
			SendClientMessage(playerid, Cvet_19, " * Или в скайп : ваш скайп");
			Kick(playerid);
		}
Создадим команду чтобы банить! идем в public OnPlayerCommandText И вставляем:
PHP:
	if(strcmp(cmd, "/ban", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
	    	tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /ban [playerid/PartOfName] [reason]");
				return 1;
			}
			giveplayerid = ReturnUser(tmp);
			
			if (PlayerInfo[playerid][pAdmin] >= 7)
			{
			    if(IsPlayerConnected(giveplayerid))
			    {
			        if(giveplayerid != INVALID_PLAYER_ID)
			        {
					    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
						GetPlayerName(playerid, sendername, sizeof(sendername));
						new length = strlen(cmdtext);
						while ((idx < length) && (cmdtext[idx] <= ' '))
						{
							idx++;
						}
						new offset = idx;
						new result[64];
						while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
						{
							result[idx - offset] = cmdtext[idx];
							idx++;
						}
						result[idx - offset] = EOS;
						if(!strlen(result))
						{
							SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /ban [playerid/PartOfName] [причина]");
							return 1;
						}
						new year, month,day;
						getdate(year, month, day);
						format(string, sizeof(string), " AdmCmd: Игрок %s забанен админом %s, причина: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year);
						format(string, sizeof(string), " AdmCmd: Игрок %s забанен админом %s, причина: %s", giveplayer, sendername, (result));
						SendClientMessageToAll(COLOR_LIGHTRED, string);
						PlayerInfo[giveplayerid][pLocked] = 1;
						BanLog(string);
						Ban(giveplayerid);
						return 1;
					}
				}
			}
			else
			{
				format(string, sizeof(string), "   %d не активный игрок.", giveplayerid);
				SendClientMessage(playerid, COLOR_GRAD1, string);
			}
		}
		return 1;
	}
Да еще хочу сказать разбанить ВОЗМОЖНО ТОЛЬКО КОМАНДОЙ!!!

Вот она же вставить ее в public OnPlayerCommandText:
PHP:
 	if(strcmp(cmd, "/unban", true) == 0)
	{
  if(PlayerInfo[playerid][pAdmin] < 6)
		{
			SendClientMessage(playerid,COLOR_RED,"Нет доступа!");
			return 1;
		}
		new akk[256],ssss[256];
		akk = strtok(cmdtext, idx);
		if(!strlen(akk))
		{
			SendClientMessage(playerid,COLOR_GREY," Èñïîëüçóéòå: /unban [Имя_Фамилия]");
			return 1;
		}
		format(string,sizeof(string),"Players/%s.ini",akk);
		if(!fexist(string))
		{
			SendClientMessage(playerid,COLOR_RED,"Такого аккаунта не существует");
			return 1;
		}
		else
		{
			new File = iniOpen(string);
			iniSetInt(File,"Locked",0);
			iniClose(File);
			format(ssss,sizeof(ssss)," %s был разбанен",akk);
			SendClientMessage(playerid,COLOR_LIGHTBLUE,ssss);
		}
		return 1;
	}
Где
PHP:
format(string,sizeof(string),"Players/%s.ini",akk);
Указываем свой путь к аккаунтам!Вот и впринципе и все!Кому понадобилось + сика не откажусь :df: !

Автор : Я
Спросите откуда?Писал сам не с 0 конечно,но переменную и все остальное Я :df:
Будут ошибки пишите помогу чем смогу!

---------- Post added at 14:55 ---------- Previous post was at 14:17 ----------

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