Anti-Command-Spam

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
  • @GlobalTimer();
    new cmdspam[MAX_PLAYERS] = {0, ...};
    #define secL 15 /* 3 cmds */
    #define secJ 5
    public OnGameModeInit() {
    SetTimer("GlobalTimer", 1000, 1);
    return 0;
    }
    @GlobalTimer()
    {
    for(new i = 0; i < GetMaxPlayers(); ++i)
    {
    if(cmdspam[i] != 0)
    cmdspam[i]--;
    }
    }
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(cmdspam[playerid] < secL)
    {
    cmdspam[playerid] += secJ;
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "CMD SPAM!");
    return 1;
    }
    // Hier die cmds
    return 0;
    } ;x

  • Bei /v und /vsel einfach if(!IsPlayerAdmin(playerid)) return 0; einfügen dann könn das nur Rcon Admins ;)


    Danke, aber ich glaube das von DMA spricht mich mehr an, da die Spieler schon Autos spawnen sollen können, allerdings nicht 100'000 Hintereinander.


    Mir ist noch etwas aufgefallen: Auf dem MOB Movieserver ist auch der Debug mode. Dort müssen die Admins das die Gespawnten Fahrzeuge verschwinden kein GMX machen, sonern nur /vclear oder so eingeben, Die Spieler bleiben da wo sie sind- nur die Fahrzeuge verschwinden. Hat jemand dafür eine Idee?




    GER-Clan - Seit 2007 - WIEDER DA!

  • So, ich muss das Thema jezt mal wiedereröffnen. Ich hatte eigentlich vor, das etwas anders zu machen- ohne Debug mode. Ich habs mir aber nochmal anders überlegt, dass ich ihn doch benutzen will. Ich bekomme aber das von DMA leider nicht hin :S . Kann mir das vllt mal einer so machen, dass es sogar ich verstehe? 8)8)8)




    GER-Clan - Seit 2007 - WIEDER DA!

  • Gut, dann anders:
    forward globaltimer();
    new oft[MAX_PLAYERS];
    GameModeInit: {
    SetTimer("globaltimer",X,1);//bei "X" musst du die Zeit eintrage, in der eine "cmd spam" wieder verschwinden soll
    }
    public globaltimer() {
    for(new i=0; i<MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i)) {
    if(oft[i]>=1) { oft[i]--; }}}
    }
    CommandText: {
    //oder in den /v cmd rein
    if(oft[playerid]<3) {
    oft[playerid]++;
    //rest vom cmd...
    }
    }

  • Bei dem von Keks bekomme ich leider Errors (Villeicht könntest du mal über Teamviewer kucken oder es für mich probieren? Wäre nett ;) ). Das von DMA funktioniert, aber wenn einer CMD spam macht ist Jeder für CMDs Gesperrt- solange bis GMX ist.




    GER-Clan - Seit 2007 - WIEDER DA!