Snow®
Умник
И в вновь здравствуйте, дорогие Пользователи портала Pawno-Info, держите от меня очередной мануал "Подозрение на рекламу".
Как это видят игроки:
Допустим я игрок и написал сайт pawno-info.ru или ип 127.0.0.1:7777.
Как это вижу я:
P.S. Игрока сервер уведомляет, что это реклама, но не глушит, а админам показывает эту рекламу и администратор выносит вердикт.
Как это видят админы:
Перейдем к коду:
Ко всем new добавить:
В конец мода:
В паблик "OnPlayerText" в самый конец вставляем, а так-же если у вас командный процессор ZCMD, вставляем это-же самое в паблик "OnPlayerCommandText", а если dc_cmd, к каждой команде добавляем это, где -бы вы хотели видеть подозрение на рекламу.
Использовал "SendAdminMessage", для удобства вот он:
А так-же не забываем менять все переменные на свои! Как узнать какой у вас командный процессор? Идем ко всем include и смотрим если написано "#include <dc_cmd>", значит у вас dc_cmd, если не чего не написано или написано "#include <zcmd>" - значит zcmd. Думаю объяснил доступно для всех.
Автор - макси2
.Как это видят игроки:
Допустим я игрок и написал сайт 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;
}
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;
}
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);
}
}
Автор - макси2
Последнее редактирование:
