Доступ к готовым решениям

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

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

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

Мануал Подозрение на рекламу.

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

Snow®

Умник
И в вновь здравствуйте, дорогие Пользователи портала Pawno-Info, держите от меня очередной мануал "Подозрение на рекламу".
Как это видят игроки:
Допустим я игрок и написал сайт pawno-info.ru или ип 127.0.0.1:7777.
Как это вижу я:



P.S. Игрока сервер уведомляет, что это реклама, но не глушит, а админам показывает эту рекламу и администратор выносит вердикт.

Как это видят админы:



Перейдем к коду:

Ко всем new добавить:
PHP:
new domains[][] = {".ws",".ru",".tk",".com","www.",".org",".net",".cc",".рф",".by",".biz",".su",".info"};
В конец мода:
PHP:
stock CheckPR(str[])
{
	new tmp1[2];
	new n1, n2;
	for(new i; i<strlen(str); i++)
	{
		strcat(tmp1, str[i]);
	    if(IsNumeric(tmp1))
		{
			n1++;
			if(n1>0 && i==strlen(str)-1) n2++;
		} else {
		    if(n1>0)
		    {
		        n2++;
		    	n1 = 0;
			}
		}
		format(tmp1,sizeof(tmp1),"");
	}
	if(n2 > 3) return true;
	for(new i = 0;i<sizeof(domains);i++) if(strfind(str,domains[i],true) != -1) return true;
	return false;
}
В паблик "OnPlayerText" в самый конец вставляем, а так-же если у вас командный процессор ZCMD, вставляем это-же самое в паблик "OnPlayerCommandText", а если dc_cmd, к каждой команде добавляем это, где -бы вы хотели видеть подозрение на рекламу.
PHP:
if(CheckPR(text))
		{
			format(glstr,sizeof(glstr),"{FF0000}%s [%d] (подозрение на рекламу): %s", Name(playerid), playerid, text);
			SendAdminMessage(100, glstr, playerid);
			SendClientMessage(playerid, 0xFF0000FF, "Подозрение на рекламу");
			return false;
		}
Использовал "SendAdminMessage", для удобства вот он:
PHP:
stock SendAdminMessage(alvl, msg[], notid = PLAYERS)
{
	for(new i;i<=GetPlayerPoolSize();i++)
	{
	    if(!InGame(i) || notid == i) continue;
	    if(PI[i][Admin] >= alvl) SendClientMessage(i, -1, msg);
	}
}
А так-же не забываем менять все переменные на свои! Как узнать какой у вас командный процессор? Идем ко всем include и смотрим если написано "#include <dc_cmd>", значит у вас dc_cmd, если не чего не написано или написано "#include <zcmd>" - значит zcmd. Думаю объяснил доступно для всех.
Автор - макси2​
.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу