AntiCarSpam Problem.

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Wieso Funktioniert es so nicht?


    new AntiVehicleSpam[MAX_PLAYERS];
    AntiVehicleSpam[playerid] = 0;
    SetTimerEx("AntiVehSpawnCheck",2500,1,"i",playerid);
    AntiVehicleSpam[playerid]++;


    forward AntiVehSpawnCheck(playerid);
    public AntiVehSpawnCheck(playerid)
    {
    if(AntiVehicleSpam[playerid] >= 4)
    {
    AntiVehicleSpam[playerid] = 0;
    BanSpieler(playerid,999,"Carspawn Hack");
    }
    AntiVehicleSpam[playerid]--;
    return 1;
    }

  • Ja es sollte Hacker Banen, die Autos Spawnen es hat auch geklappt doch jetzt klappt es nicht mehr, und ich Frage mich wieso ....

  • Ich kann dir leider bei deinem Problem nicht helfen und nicht sagen woran es liegt, aber ich
    würde dir empfehlen es etwas abzuändert.


    Versuchs mal so:

    new AntiVehicleSpam[MAX_PLAYERS];
    SetTimerEx("AntiVehSpawnCheck",5000,1,"i",playerid);//5 Sekunden sind besser


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER ||newstate == PLAYER_STATE_PASSENGER)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    AntiVehicleSpam[playerid]++;
    }
    if(AntiVehicleSpam[playerid]>9)
    {
    BanSpieler(playerid,999,"Carspawn Hack");
    AntiVehicleSpam[playerid]=0;
    }
    }
    }


    forward AntiVehSpawnCheck(playerid);
    public AntiVehSpawnCheck(playerid)
    {
    if(AntiVehicleSpam[playerid]>9)
    {
    AntiVehicleSpam[playerid] = 0;
    BanSpieler(playerid,999,"Carspawn Hack");
    }
    AntiVehicleSpam[playerid]=0;
    return 1;
    }


    Es müsste eigentlich gehen, auch vom Timer her müsste es bei 5 Sekunden gehen, ich glaube man kann in kein Fahrzeug 9 mal in 5 Sek einsteigen, außer eine Ausnahme, alle Boote, dann müsstest du eventuell, abfragen ob er in einem Boot ist oder nicht und dieses Limit höher setzen.


    PS: Du musst dir dieses System nicht übernehmen, aber kannst eventuell deinen Fehler finden, in dem du ein funktionierendes System siehst.


    //e: Entschuldigung das es nicht perfekt eingerückt ist.
    //e2: Fehler beseitigt

  • new AntiVehicleSpam[MAX_PLAYERS];
    AntiVehicleSpam[playerid] = 0;
    SetTimerEx("AntiVehSpawnCheck",2500,1,"i",playerid);
    AntiVehicleSpam[playerid]++;


    Die 2. Zeile ist schuldig!
    Die musst du löschen.
    Pack die Zeile in OnPlayerConnect!


    Mit freundlichen Grüßen
    Kevin


  • Nein echt??
    Die ist unter OnPlayerConnect, hab die Abschnitte nur zsm Gepostet :pinch:

  • Tut mir Leid, hellsehen kann Ich nicht.

    AntiVehicleSpam[playerid]++;

    StateChange, richtig?


    Versuch es so:
    forward AntiVehSpawnCheck(playerid);public AntiVehSpawnCheck(playerid){if(AntiVehicleSpam[playerid] >= 4) {BanSpieler(playerid,999,"Carspawn Hack"); } AntiVehicleSpam[playerid] = 0; return 1;}


    Der geht sonst ins Minus, da du den ja dauerhaft am Laufen hast den Timer.
    Oder wo startest du den?