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

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

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

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

/awarn and /unawarn

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

MrJunior

Изучающий
Пользователь
Регистрация
11 Окт 2015
Сообщения
537
Лучшие ответы
0
Репутация
154
Здравствуйте пользователи и гости игрового портала pawno-info.ru, На этот раз я написал команду для выдачи выговора(варна) администратору. К ней конечно написал и /unawarn

Начнём:

1. Добавить в enum pInfo(Или какой у вас Инфо отвечает за игрока):
PHP:
pAWarn,
2. Добавить pAWarn в: Регистрацию/Логин/Сохранение/Загрузку и т.д.

3. Добавить следующие команды в OnPlayerCommandText:
PHP:
	else if(strcmp(cmd, "/awarn", true) == 0)
	{
		if(PlayerInfo[playerid][pAdmin] != 6) return SendClientMessage(playerid, 0xB80404FF, "Вы не администратор шестого уровня!");
		new giveplayerid, giveplayer[MAX_PLAYER_NAME], sendername[MAX_PLAYER_NAME], string[365];
		tmp = strtok(cmdtext, idx), giveplayerid = ReturnUser(tmp);
		if(!strlen(tmp)) return SendClientMessage(playerid, 0xB80404FF, "Введите: /awarn [id]");
		if(giveplayerid == playerid) return SendClientMessage(playerid, 0xB80404FF, "Вы ввели свой id!");
		if(PlayerInfo[giveplayerid][pAdmin] < 1) return SendClientMessage(playerid, 0xB80404FF, "Игрок не администратор");
		if(PlayerInfo[giveplayerid][pAdmin] == 6) return SendClientMessage(playerid, 0xB80404FF, "Нельзя выдать выговор администатору шестого уровня!");
		GetPlayerName(playerid, sendername, sizeof(sendername)), GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		PlayerInfo[giveplayerid][pAWarn] += 1;
		if(PlayerInfo[giveplayerid][pAWarn] == 3) return PlayerInfo[giveplayerid][pAdmin] = 0, PlayerInfo[giveplayerid][pWarn] = 1;
		format(string, sizeof(string), "[AWARN]: Администратор %s выдал варн администратору %s у него уже: %d/3 варн(ов).", sendername, giveplayer, PlayerInfo[giveplayerid][pAWarn]);
		SendAdminMessage(0xFF0000FF, string);
		format(string, sizeof(string), "Вы выдали варн администратору %s. У него уже %d/3 варн(ов)", giveplayer, PlayerInfo[playerid][pAWarn]);
		SendClientMessage(playerid, 0x2BFF00FF, string);
		format(string, sizeof(string), "Вам был выдан варн администратором %s. У вас уже %d варн(ов). По достижению 3-х варнов вы будете сняты и вам будет выдан простой варн", sendername, PlayerInfo[giveplayerid][pAWarn]);
		ShowPlayerDialog(giveplayerid, 5562, DIALOG_STYLE_MSGBOX, "[Admin-warn]:", string, "Ок", "");
		Kick(giveplayerid);
		return 1;
	}
И команду /unawarn:
PHP:
 	else if(strcmp(cmd, "/awarn", true) == 0)
	{
		if(PlayerInfo[playerid][pAdmin] != 6) return SendClientMessage(playerid, 0xB80404FF, "Вы не администратор шестого уровня!");
		new giveplayerid, giveplayer[MAX_PLAYER_NAME], sendername[MAX_PLAYER_NAME], string[200];
		tmp = strtok(cmdtext, idx), giveplayerid = ReturnUser(tmp);
		if(!strlen(tmp)) return SendClientMessage(playerid, 0xB80404FF, "Введите: /awarn [id]");
		if(giveplayerid == playerid) return SendClientMessage(playerid, 0xB80404FF, "Вы ввели свой id!");
		if(PlayerInfo[giveplayerid][pAdmin] < 1) return SendClientMessage(playerid, 0xB80404FF, "Игрок не администратор");
		if(PlayerInfo[giveplayerid][pAdmin] == 6) return 1;
		GetPlayerName(playerid, sendername, sizeof(sendername)), GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		PlayerInfo[giveplayerid][pAWarn] -= 1;
		format(string, sizeof(string), "[AWARN]: Администратор %s снял 1 варн администратору %s теперь у него: %d/3 варн(ов).", sendername, giveplayer, PlayerInfo[giveplayerid][pAWarn]);
		SendAdminMessage(0xFF0000FF, string);
		format(string, sizeof(string), "Вы сняли 1 варн администратору %s. Теперь у него %d/3 варн(ов)", giveplayer, PlayerInfo[playerid][pAWarn]);
		SendClientMessage(playerid, 0x2BFF00FF, string);
		format(string, sizeof(string), "%s снял с вас админ-варн.У вас теперь %d варн(ов).", sendername, PlayerInfo[giveplayerid][pAWarn]);
		ShowPlayerDialog(giveplayerid, 5562, DIALOG_STYLE_MSGBOX, "[Admin-warn]:", string, "Ок", "");
		Kick(giveplayerid);
		return 1;
	}


Примечания:
1. Команды написаны под мой мод!(6 лвл адм - максимальный).
2. В команде /awarn где ShowPlayerDialog если если у вас уже есть диалог с id 5562 то меняем на незанятый.
3. Обязательный дефайн: #define SCM SendClientMessage
4. На всякий случай у кого нет то вот вам функция SendAdminMessage(color, str[])
5. (Дополнение) Проверку на 3 варна(если вдруг обойдёт админ) можно вложить в OnPlayerSpawn/OnPlayerUpdate/OnPlayerConnect.

PHP:
stock SendAdminMessage(color, str[])
{
	foreach(Player,i)
	{
		if(PlayerInfo[i][pAdmin] > 0)
		SCM(i, color, str);
	}
	return 1;
}

Вопросы как всегда в комментарии.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу