slonplutalov
Умник
Привет.
Если вы не хотите, чтобы игроки матерились просто в чат или при каком-то условии, внимательно читаем и повторяем:
Сначала вставляем 2 функции в самый конец мода.
Важно: перед randomsymbol(str[], sub) и replacemats(string[]) не нужно вставлять ни stock, ни public
Первая функция служит для розыска по тексту матов, а вторая отвечает за их "замазывание". Допустим, если игрок захочет матернуться, в чат пойдет следующее: "дануна@^#"(Символы всегда будут разные).
Итак, далее если мы хотим, чтобы никто вообще не матерился, ищем
и вставляем в самое начало перед всеми new и остальными делами replacemats(text);
Далее ищем
и вставляем в самое начало перед всеми new и остальными делами replacemats(cmdtext);
Если же хотите, чтобы кто-то матерился с условиями:
На пример, я хочу, чтобы мне в репорт никто не матерился. Значит, если у меня команда /report Не в диалоге, я вставляю replacemats(cmdtext); после tmp = strtok(cmdtext, idx); и радуюсь результату!
Если возникнут вопросы, я на них отвечу
Если что, скайп - мой ник на форуме
P.S. Маты вставите свои, на мои антимат форумный ругается.
Если вы не хотите, чтобы игроки матерились просто в чат или при каком-то условии, внимательно читаем и повторяем:
Сначала вставляем 2 функции в самый конец мода.
PHP:
replacemats(string[])
{
new mati;
mati = strfind(string, "тутпервыймат", true);
if(mati >= 0)
{
for(new i = 0; i < strlen("тутпервыймат"); i++)
{
randomsymbol(string, mati+i);
}
}
mati = strfind(string, "тутвтороймат", true);
if(mati >= 0)
{
for(new i = 0; i < strlen("тутвтороймат"); i++)
{
randomsymbol(string, mati+i);
}
}
}
randomsymbol(str[], sub)
{
new ran = random(28);
if(ran == 0) str[sub] = '!';
if(ran == 1) str[sub] = '@';
if(ran == 2) str[sub] = '#';
if(ran == 3) str[sub] = '$';
if(ran == 4) str[sub] = '%';
if(ran == 5) str[sub] = '^';
if(ran == 6) str[sub] = '&';
if(ran == 7) str[sub] = '*';
if(ran == 8) str[sub] = '(';
if(ran == 9) str[sub] = ')';
if(ran == 10) str[sub] = '_';
if(ran == 11) str[sub] = '+';
if(ran == 12) str[sub] = '-';
if(ran == 13) str[sub] = '=';
if(ran == 14) str[sub] = '"';
if(ran == 15) str[sub] = '№';
if(ran == 16) str[sub] = ';';
if(ran == 17) str[sub] = ':';
if(ran == 18) str[sub] = '?';
if(ran == 19) str[sub] = 'x';
if(ran == 20) str[sub] = ',';
if(ran == 21) str[sub] = ''';
if(ran == 22) str[sub] = '.';
if(ran == 23) str[sub] = ']';
if(ran == 24) str[sub] = '[';
if(ran == 25) str[sub] = '}';
if(ran == 26) str[sub] = '{';
if(ran == 27) str[sub] = '<';
if(ran == 28) str[sub] = '>';
}
Первая функция служит для розыска по тексту матов, а вторая отвечает за их "замазывание". Допустим, если игрок захочет матернуться, в чат пойдет следующее: "дануна@^#"(Символы всегда будут разные).
Итак, далее если мы хотим, чтобы никто вообще не матерился, ищем
PHP:
public OnPlayerText
Далее ищем
PHP:
public OnPlayerCommandText
Если же хотите, чтобы кто-то матерился с условиями:
На пример, я хочу, чтобы мне в репорт никто не матерился. Значит, если у меня команда /report Не в диалоге, я вставляю replacemats(cmdtext); после tmp = strtok(cmdtext, idx); и радуюсь результату!
Если возникнут вопросы, я на них отвечу
P.S. Маты вставите свои, на мои антимат форумный ругается.
Последнее редактирование:
