GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: staubka - 2011. november 23. - 19:48:41

Cím: onplayertext...
Írta: staubka - 2011. november 23. - 19:48:41
Hi.
OnPlayerText alá raktam õt:
[pawn]if(strfind(text,\"geci\",true) != 0 || strfind(text,\"kurva\",true) != 0 || strfind(text,\"anyád\",true) != 0 ||
strfind(text,\"csicska\",true) != 0 || strfind(text,\"fasz\",true) != 0 || strfind(text,\"ribanc\",true) != 0 ||
strcmp(text,\"buzi\",true) != 0 || strfind(text,\"baszdmeg\",true) != 0 || strfind(text,\"bazdmeg\",true) != 0)
{
    warns[playerid]++;
    if(warns[playerid] < 3)
    {
       MSG(COLOR_YELLOW,\"|- Adminisztrátor Anonym figyelmeztette a(z) %s nevû játékost. || Indok: Moderáld magad! | Figyelmeztetések: %d/3 -|\",PlayerName(playerid),warns[playerid]);
   }
   else if(warns[playerid] >= 3)
   {
       MSG(COLOR_RED,\"|- Adminisztrátor Anonym figyelmeztette a(z) %s nevû játékost. || Indok: Moderáld magad! | Figyelmeztetések: 3/3 -|\",PlayerName(playerid),warns[playerid]);
       Kick(playerid);
   }
}[/pawn]
És az a problem vele, hogy akkor is végrehajtja a figyelmeztetést, ha nem szerepel az üzenetemben akármelyik szó is. Mi lehet a gond?:S
Cím: onplayertext...
Írta: kadaradam - 2011. november 23. - 20:35:15
Szerintem:
[pawn]strfind(text,\"szöveg\",true) != 0[/pawn]
helyett
[pawn]strfind(text, \"szöveg\") != -1[/pawn]
Cím: onplayertext...
Írta: Gang[St]e[R] - 2011. november 23. - 20:40:10
[pawn]new BadWords[][]
{
     \"buzi\",
     \"fasz\",
     \"köcsög\",
     \"barom\"
};
public OnPlayerText(playerid, text[])
{
     if(!strfind(text, BadWords[text][1], true))
     {
      // figyelmeztetés, stb.
     }
     return 1;
}[/pawn]
! jelet tegyél inkább a strfind elé, és a végén hagyd a true értéket, aztán ne használj semmi többet, az érték után egyböl zárd le ))
Cím: onplayertext...
Írta: staubka - 2011. november 24. - 18:55:07
Egyiksem. Viszont rájöttem... Helyes megfejtés:
[pawn]static const BadWords[][] = {
\"geci\",
\"kurva\",
\"anyád\",
\"csicska\",
\"fasz\",
\"ribanc\",
\"buzi\",
\"bazdmeg\",
\"baszdmeg\"
};[/pawn]
onplayertext alatt:
[pawn]if(IsBadWord(text))
{
    warns[playerid]++;
    if(warns[playerid] < 3)
    {
       MSG(COLOR_YELLOW,\"|- Adminisztrátor Anonym figyelmeztette a(z) %s nevû játékost. || Indok: Moderáld magad! | Figyelmeztetések: %d/3 -|\",PlayerName(playerid),warns[playerid]);
   }
   else if(warns[playerid] >= 3)
   {
       MSG(COLOR_RED,\"|- Adminisztrátor Anonym figyelmeztette a(z) %s nevû játékost. || Indok: Moderáld magad! | Figyelmeztetések: 3/3 -|\",PlayerName(playerid),warns[playerid]);
       Kick(playerid);
   }
}[/pawn]
[pawn]stock IsBadWord(string[])
{
for (new i = 0; i < sizeof (BadWords); ++i)
   if (strfind (string, BadWords , true) != -1)

      return true;


return false;


}[/pawn]


Azé kösz mindenkinek, adok egy-egy lájkot :D
Cím: onplayertext...
Írta: Sheet - 2011. november 24. - 19:03:12
Ha a téma megoldódott máskor zárj!
[mod]Zárok[/mod]