Hallo,
Ich bin zu doof um ein Spam schutz zu machen, und wollte fragen ob mir das einer vllt. in einem filterscript machen kann.
wenn der gleiche text 4 mal geschrieben wird, woll mal gekickt werden.
kann mir das einer machen?
Hallo,
Ich bin zu doof um ein Spam schutz zu machen, und wollte fragen ob mir das einer vllt. in einem filterscript machen kann.
wenn der gleiche text 4 mal geschrieben wird, woll mal gekickt werden.
kann mir das einer machen?
Entfernt
Sry geht doch nicht, ich guck mal weiter^^
//Edit2: http://forum.sa-mp.com/index.php?topic=96625.0 <- Das ist das einzigste was ich so gefunden habe was Spam blockt. Musst dann einfach alle Sachen auf 0 stellen (außer Spam^^)
Schon, aber nur wegen spam schutz will ich nicht dan ganze junkbuster rein machen
new
gSpamWarnings[MAX_PLAYERS],
bool:gTextBlocked[MAX_PLAYERS];
@gDeleteWarns(playerid);
@gDeleteWarns(playerid)
{
gSpamWarnings[playerid]--;
return 1;
}
@gAllowChat(playerid);
@gAllowChat(playerid)
{
gTextBlocked[playerid] = false;
SendClientMessage(playerid, 0xFFAA00FF, "Du kannst wieder chatten!");
return 1;
}
public OnPlayerText(playerid, text[])
{
if(gTextBlocked[playerid] == true) {
SendClientMessage(playerid, 0xFF0000FF, "Du darfst nichts schreiben!");
return 0;
}
gSpamWarnings[playerid]++;
if(gSpamWarnings[playerid] >= 3) {
gTextBlocked[playerid] = true;
SendClientMessage(playerid, 0xFF0000FF, "Du wurdest wegen Spam für 5 Minuten gemutet!");
SetTimerEx("gAllowChat", 300000, false, "i", playerid);
return 0;
}
SetTimerEx("gDeleteWarns", 2500, false, "i", playerid);
return 1;
}
Funktioniert bei mir in abgeänderter Form perfekt.
Danke,
aber ich will was ganz einfaches, wenn man 5 mal das gleiche schreibt wird man gekickt, mehr will ich nicht
new LastText[MAX_PLAYERS][128],SpokenTheSameText[MAX_PLAYERS];
public OnPlayerText(playerid, text[])
{
if(!strcmp(LastText[playerid],text))
{
SpokenTheSameText[playerid]++;
if(SpokenTheSameText[playerid] == 5)
{
new str[64],ppname[MAX_PLAYER_NAME];
GetPlayerName(playerid,ppname,sizeof ppname);
format(str,sizeof str,"%s wurde gekickt, weil er gespammt hat.",ppname);
SendClientMessageToAll(FARBE,str);
Kick(playerid);
format(LastText[playerid],sizeof LastText[playerid],"%s",text);
}
return 1;
}
UNGETESTET!
Danke geht so halb.
wenn ich einmal gespammt habe, und ein anderer kommt aufn server, kann der andere ununterbrochen spamen und wenn der eine wieder aufn server kommt, kann er auch spamen, alsob sich das antispam dann zur ruhe legen würde
new LastText[MAX_PLAYERS][128],SpokenTheSameText[MAX_PLAYERS];
public OnPlayerText(playerid, text[])
{
if(strlen(LastText[playerid]) != 0)
{
if(!strcmp(LastText[playerid],text))
{
SpokenTheSameText[playerid]++;
if(SpokenTheSameText[playerid] == 5)
{
new str[64],ppname[MAX_PLAYER_NAME];
GetPlayerName(playerid,ppname,sizeof ppname);
format(str,sizeof str,"%s wurde gekickt, weil er gespammt hat.",ppname);
SendClientMessageToAll(FARBE,str);
Kick(playerid);
}
}
format(LastText[playerid],sizeof LastText[playerid],"%s",text);
}
return 1;
}
Probier es mal so.
format(LastText[playerid],sizeof LastText[playerid],"%s",text);
wegen dieserzeile bekomme ich 5 errors, und wenn ich sie weg mache, und dann spame passiert nichts...
Naja erstmal fehlen da 2 Klammern, dann sollte es so aussehen:
format(LastText[playerid],sizeof (LastText[playerid]),"%s",text);
Wenn dann immernoch Errors kommen, probier mal so:
format(LastText[playerid],128,"%s",text);
Und wenn dann immer noch Errors kommen, poste sie doch mal hier.
die 2te variante geht, aber wenn ich spame dann passiert immernoch nichts
kann mir keiner helfen??
//EDIT//
brauche immer noch hilfe