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

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

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

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

Ставим АнтиФлуд на репорт

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

Armstrrrong

Умник
Вечно надоедало когда игроки беспрерывно строчат в репорт с глупыми вопросами, и вот надумал зделать систему антифлуда на репорт.
И так начнем к Форкавдам добавим это
PHP:
forward Clearpm(playerid);
далее ко вем new добвим это
PHP:
static bool:pm[MAX_PLAYERS];
, создаем новый паблик
PHP:
public Clearpm(playerid)
{
	pm[playerid]=false;
	return 1;
}
в
PHP:
public OnPlayerConnect(playerid)
где нибудь в начале добавим
PHP:
pm[playerid]=false;
и
PHP:
case 10:
заменяем на мое
PHP:
		case 10:
		{
			if(response)
			{
				while(strfind(inputtext,"%",true)!=-1)
				{
					strdel(inputtext,strfind(inputtext,"%",true),strfind(inputtext,"%",true)+2);
				}
				if(pm[playerid]) return SendClientMessage(playerid, COLOR_LIGHTRED,"Вы уже отправляли жалобу. Подождите некоторое время");
				if(!strlen(inputtext))return ShowPlayerDialog(playerid,10,DIALOG_STYLE_INPUT,"Жалоба администрации","Вы собираетесь отправить жалобу администрации сервера.\nЖалобу сформулируйте чётко и ясно!","Ок","<< Назад");
				new sendername[MAX_PLAYER_NAME];
				GetPlayerName(playerid, sendername, sizeof(sendername));
				format(string, sizeof(string), "Жалоба: %s",(inputtext));
				SendClientMessage(playerid, COLOR_WHITE, string);
				SendClientMessage(playerid, COLOR_LIGHTRED,"Ваша жалоба была отправлена администрации сервера");
				format(string, sizeof(string), "Жалоба от %s[%d]: %s", sendername, playerid, (inputtext));
				ABroadCast(0xAA3333AA,string,1);
				pm[playerid]=true;
				SetTimerEx("Clearpm",18000,false,"i",playerid);
				return 1;
			}
и на надо заменить команду /pm вот даю сразу готовую
PHP:
	else if(strcmp(cmd, "/pm", true) == 0 || strcmp(cmd, "/ot", true) == 0)
	{
		if(PlayerInfo[playerid][pAdmin] >= 1)
		{
			if(gPlayerLogged[playerid] == 0) return    SendClientMessage(playerid, COLOR_GREY, "Вы еще не вошли!");
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)) return		SendClientMessage(playerid, COLOR_WHITE, "::: Введите: /pm [id] [текст]");
			giveplayerid = ReturnUser(tmp);
			if (IsPlayerConnected(giveplayerid))
			{
				if(giveplayerid != INVALID_PLAYER_ID)
				{
					GetPlayerName(playerid, sendername, sizeof(sendername));
					GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
					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)) return	SendClientMessage(playerid, COLOR_GRAD2, "::: Введите: /pm [id] [текст]");
					if (PlayerInfo[playerid][pAdmin] >= 1)
					{
						format(string, sizeof(string), "Ответ от %s: %s",sendername, (result));
						SendClientMessage(giveplayerid, COLOR_YELLOW, string);
						pm[giveplayerid]=false;
						format(string, sizeof(string), "<-Ответ к %s[%d]: %s", giveplayer, giveplayerid, (result));
						ABroadCast(0xA85400AA,string,1);
					}
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Игрок не найден!");
			}
		}
		else
		{
			SendClientMessage(playerid, COLOR_GREY, "Вы не уполномочены использовать эту команду!");
			return 1;
		}
		return 1;
	}
Все
PHP:
pm
можно заменить на свое, только что бы везде было оденаковое. Это вам дасть то что если игрок отправил жалобу то он не сможет дать ее повторно пока не истекет таймер или вы ему не ответете на ее. Работает на модах РЛС, на остольных не проверял.
Всё что не ясно остовляйте в коментариях
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу