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

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

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

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

/awarn and /unawarn

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

SteelGun1996

Новичок
Приветствую всех!

Я знаю что данные команды уже есть на просторах PI, но я разработал свою версию, делал для мода Arizona RP, слитым на youtube.

Данные команды предназначены для выдачи/снятия выговора администратору, ибо мало кто запомнит кому выдавал выговор, или у кого снимал, да и на форуме лень все вписать (лично для меня), по этому я решил сделать данную команду.

Приступим:


В enum pInfo (или какой там у вас отвечает за игрока) вписываем:
Код:
pAWarns
И этот же код добавляем в регистрацию и т.д.

Добавляем также и в базу данных, но это уже объяснять не буду, ничего сложного в этом нет.

Теперь переходим к самой команде.

/awarn
Код:
CMD:awarn(playerid, params[])
{
	if(PI[playerid][pAdmin] >= ADM_GRAND_ADMIN)
	{
		new id,reason[150],string[200];
		if(sscanf(params,"us[150]",id,reason)) return SendClientMessage(playerid, COLOR_ISPOLZUY, "Используй: /awarn [id] [причина]");
		if(IsPlayerConnected(id))
		{
		    if(IsGiveWarn(playerid, id))
		    {
		        PI[id][pAWarns] ++;
		        format(string,sizeof(string),"Вы дали выговор администратору %s с причиной %s",Name(id),reason);
		        SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
		        format(string,sizeof(string),"%s дал вам выговор с причиной %s",Name(playerid),reason);
		        SendClientMessage(id,COLOR_LIGHTRED,string);
				if(PI[id][pAWarns] >= 3)
				{
				    PI[id][pAWarns] = 0;
				    SendClientMessage(id,COLOR_GREY,"Вы были автоматически сняты с поста администратора т.к у вас больше 2-х выговоров");
				    format(string,sizeof(string),"%s снят с админки т.к у него больше 2-х выговоров",Name(id));
				    SendTeamMessage(PI[id][pMember],COLOR_GREY,string);
				    PI[id][pAdmin] = 0;
			        PI[id][pAWarns] = 0;
			        PI[id][pMember] = 0;
			        PI[id][pRank] = 0;
				}
		    }
		}
	}
	return true;
}
/unawarn:

Код:
CMD:unawarn(playerid, params[])
{
	if(PI[playerid][pAdmin] >= ADM_GRAND_ADMIN)
	{
		new id,string[200];
		if(sscanf(params,"u",id)) return SendClientMessage(playerid, COLOR_ISPOLZUY, "Используй: /unawarn [id]");
		if(IsPlayerConnected(id))
		{
		    if(GetTeamID(id) == GetTeamID(playerid))
		    {
				if(PI[id][pAWarns] > 0)
				{
			        PI[id][pAWarns] --;
			        format(string,sizeof(string),"Вы сняли выговор администратору %s",Name(id));
			        SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
			        format(string,sizeof(string),"%s снял вам выговор",Name(playerid));
			        SendClientMessage(id,COLOR_LIGHTRED,string);
		        }
		    }
		}
	}
	return true;
}
На этом у меня все.

P.S. Команда сделана под мод который использую я, вам надо будет сделать ее под свой мод.

Это первая команда которую я написал своими руками, строго не судите, если есть какие-то ошибки или можно оптимизировать, напишите в комментах, буду благодарен.

Не откажусь от "+" :dn:

---------- Сообщение добавлено в 12:35 ---------- Предыдущее сообщение добавлено в 12:33 ----------

И еще, если кто считает что это:

Код:
			        PI[id][pMember] = 0;
			        PI[id][pRank] = 0;
не нужно, можете убрать. Я добавил это потому-что множество администраторов дают себе лидерки или же кидают себя в фракцию.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу