ToPsxmirex
Компетентный
Писал сегодня блокировку сообщения. Когда написал, то подумал: а ведь можно написать другую систему и решил скинуть то, что уже написал, в паблик. Итак. Представляю вам мою быдло - работу - блокировка сообщений.
Автор:
- ToPsxmirex
Что блокирует:
- Рекламу сайтов / форумов.
- Рекламу IP.
- Маты / оскорбления.
- Смайлы. ( настройка под OOC )
Использованиет:
PHP:
Пример: if(!GetPlayerMessageBlock(playerid, "by ToPsxmirex", false / true)) return SCM(playerid, COLOR_ERROR, "Ошибка:{FFFFFF} Ваше сообщение заблокировано.");
playerid - ID игрока
string[] - Сообщение игрока
bool: ooc - true - OOC сообщение, false - IC сообщение
- SCMA - сообщение, высылаемое только администрации.
- COLOR_SERVER - Ваш любой цвет.
- COLOR_ERROR - Ваш любой цвет.
- SCM - SendClientMessage.
- String - Ваша любая переменная для хранения текста.
PHP:
GetPlayerMessageBlock(playerid, string[], bool: ooc)
{
new Var[2];
for(new i; i < 256; i ++)
{
switch(string[i] == '0' || string[i] == '1' || string[i] == '2' || string[i] == '3' || string[i] == '4' || string[i] == '5' ||
string[i] == '6' || string[i] == '7' || string[i] == '8' || string[i] == '9')
{
case 0: Var[1] ++;
default:
{
if(Var[1] == 4)
{
format(String, sizeof(String), "Сервер:{FFFFFF} Произошло блокирование сообщения у %s [ID: %d]. Причина: Реклама IP.", GetPlayerNameEx(playerid), playerid), SCMA(COLOR_SERVER, String);
format(String, sizeof(String), "Сервер:{FFFFFF} %s", string), SCMA(COLOR_SERVER, String);
return true;
}
Var[1] = 0;
}
}
if(string[i] == '.')
{
switch(Var[0])
{
case 0:
{
Var[0] = i;
continue;
}
default:
{
if(i - Var[0] > 4 || i - Var[0] < 2)
{
Var[0] = i;
continue;
}
format(String, sizeof(String), "Сервер:{FFFFFF} Произошло блокирование сообщения у %s [ID: %d]. Причина: Реклама IP.", GetPlayerNameEx(playerid), playerid), SCMA(COLOR_SERVER, String);
format(String, sizeof(String), "Сервер:{FFFFFF} %s", string), SCMA(COLOR_SERVER, String);
return true;
}
}
}
}
if(strfind(string, "www", true) != - 1 || strfind(string, "http", true) != - 1 || strfind(string, "ru", true) != - 1 ||
strfind(string, "com", true) != - 1 || strfind(string, "ua", true) != - 1 || strfind(string, "ucoz", true) != - 1 ||
strfind(string, "www", true) != - 1 || strfind(string, "forum", true) != - 1)
{
format(String, sizeof(String), "Сервер:{FFFFFF} Произошло блокирование сообщения у %s [ID: %d]. Причина: Реклама сайта/форума.", GetPlayerNameEx(playerid), playerid), SCMA(COLOR_SERVER, String);
format(String, sizeof(String), "Сервер:{FFFFFF} %s", string), SCMA(COLOR_SERVER, String);
return true;
}
if(strfind(string, "***а", true) != - 1 || strfind(string, "***", true) != - 1 || strfind(string, "еба", true) != - 1 ||
strfind(string, "***", true) != - 1 || strfind(string, "мамку", true) != - 1 || strfind(string, "рак", true) != - 1 ||
strfind(string, "ёб", true) != - 1 || strfind(string, "нуб", true) != - 1)
{
format(String, sizeof(String), "Сервер:{FFFFFF} Произошло блокирование сообщения у %s [ID: %d]. Причина: Оскорбление / нецензурные выражения.", GetPlayerNameEx(playerid), playerid), SCMA(COLOR_SERVER, String);
format(String, sizeof(String), "Сервер:{FFFFFF} %s", string), SCMA(COLOR_SERVER, String);
return true;
}
if(ooc == true) return false;
if(strfind(string, ":)", true) != - 1 || strfind(string, "))", true) != - 1 || strfind(string, ":D", true) != - 1 ||
strfind(string, "=)", true) != - 1 || strfind(string, "((", true) != - 1 || strfind(string, "С:", true) != - 1)
{
format(String, sizeof(String), "Сервер:{FFFFFF} Произошло блокирование сообщения у %s [ID: %d]. Причина: Смайлы в IC.", GetPlayerNameEx(playerid), playerid), SCMA(COLOR_SERVER, String);
format(String, sizeof(String), "Сервер:{FFFFFF} %s", string), SCMA(COLOR_SERVER, String);
return true;
}
return false;
}
Последнее редактирование:
