Szerző Téma: onplayertext...  (Megtekintve 880 alkalommal)

onplayertext...
« Dátum: 2011. november 23. - 19:48:41 »
0 Show voters
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

onplayertext...
« Válasz #1 Dátum: 2011. november 23. - 20:35:15 »
+1 Show voters
Szerintem:
[pawn]strfind(text,\"szöveg\",true) != 0[/pawn]
helyett
[pawn]strfind(text, \"szöveg\") != -1[/pawn]

Gang[St]e[R]

  • Vendég
onplayertext...
« Válasz #2 Dátum: 2011. november 23. - 20:40:10 »
+1 Show voters
[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 ))

onplayertext...
« Válasz #3 Dátum: 2011. november 24. - 18:55:07 »
0 Show voters
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

Nem elérhető Sheet

  • 1508
  • Támogató
    • Profil megtekintése
onplayertext...
« Válasz #4 Dátum: 2011. november 24. - 19:03:12 »
0 Show voters
Ha a téma megoldódott máskor zárj!
[mod]Zárok[/mod]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal