Возможно исправить этот фильтра скрипт? ошибка заключается в том что он блокирует слова с таким же началом т.е. не матные слова, ПРИМЕР: "хули" а есть "хулиган" если возможно помогите
Code
#pragma tabsize 4
#include <a_samp>
main()
{
print("\n***********************************");
print("* xAntiSwear FS by Boylett loaded *");
print("***********************************\n");
}
#define MAX_SWEARS 100
#define STR 100
forward UnMute(playerid);
new Swears[MAX_SWEARS][STR];
new num_words = 0;
new swear[MAX_PLAYERS];
public OnFilterScriptInit()
{
new string[STR], File:file;
if((file = fopen("antiswear.cfg",io_read)))
{
while(fread(file,string))
{
for(new i = 0, j = strlen(string); i < j; i++) if(string[i] == '\n' || string[i] == '\r') string[i] = '\0';
Swears[num_words] = string;
printf("%s", string);
num_words++;
}
fclose(file);
}
return 1;
}
public OnPlayerText(playerid,text[])
{
if(swear[playerid] == 1)
{
SendClientMessage(playerid, 0xFFFFFFAA, " Ты заткнут за мат");
return 0;
}
for(new s = 0; s < num_words; s++)
{
new pos;
while((pos = strfind(text,Swears[s],true)) != -1) for(new i = pos, j = pos + strlen(Swears[s]); i < j; i++){
text[i] = '*';
swear[playerid] = 1;
SendClientMessage(playerid, 0x990000AA, " Матерится - плохо для здаровья");
if(swear[i] == 1)
{
SetTimerEx("UnMute",60000,0,"M",playerid);
return 0;
}
}
}
return 1;
}
public UnMute(playerid)
{
swear[playerid] = 0;
SendClientMessage(playerid, 0x33FF33AA, " Вы разоткнуты, и не материтесь больше");
return 0;
}
public OnPlayerConnect(playerid)
{
swear[playerid] = 0;
return 1;
}