timeouts beim server joinen und anticheat frage

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
  • meine erste frage ist folgende
    in lezter zeit kommt es in meinem server dazu das der server super läuft unddann auf einmal bekommen alle einen timeout und niemand kann mehr auf den server drauf also man bekommt sofort wenn man das vinewood sieht einen timeout voran kann das liegen ? ich hab eigentlich in der letzten zeit nicht viel am server bzw gm verändert das einzige ist das die settimer eine anderezeit haben und noch etwas am automatischen autoreparieren und dann ist da noch ein anti cheat gegen waffen und godmode aber ich glaube an dem kann es nicht liegen das was ich vermute ist das irgent ein cheater etwas mit einem fahrzeug angestellt hat zb reifen an ein bot machen oder sonstiges kann das möglicherweise das problem sein ?


    und jetzt meine zweite frage
    im anticheat der soll eben auf waffen cheats und auf den godmode achten auf die waffen achtet er aber auch den godmode nicht weiss vieleicht jemand voran das liegt ?
    so weit ich richtig liege fängt der godmode bei 101 leben bzw 101 rüstung an richtig ?


    #include <a_samp>



    #define FILTERSCRIPT
    #if defined FILTERSCRIPT


    #define COLOR_RED 0xFF0000AA
    #define COLOR_YELLOW 0xFFFF00AA



    new banning[MAX_PLAYERS];
    new healthhacking;
    new hackingtotal;
    new weaponhacking;


    forward leben();
    forward banningtimer();
    forward waffen();




    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print(" Anticheat ");
    print("--------------------------------------\n");


    SetTimer("waffen",500,1);
    SetTimer("leben",500,1);
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }


    #endif



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/cst", cmdtext, true, 10) == 0)
    {
    new string[200];
    SendClientMessage(playerid,COLOR_RED,"ANTI-CHEAT Status im Server ");
    format(string, sizeof(string), "Waffen cheating : %d", weaponhacking);
    SendClientMessageToAll(COLOR_RED,string);
    format(string, sizeof(string), "GodMode cheating : %d", healthhacking);
    SendClientMessageToAll(COLOR_RED,string);
    format(string, sizeof(string), "Total cheating : %d", hackingtotal);
    SendClientMessageToAll(COLOR_YELLOW,string);
    return 1;
    }
    return 0;
    }




    public banningtimer()
    {
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    if(banning[i] == 1)
    {
    Ban(i);
    }
    }
    }


    public waffen()
    {
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    if (GetPlayerWeapon(i) == 35 || GetPlayerWeapon(i) == 36 ||GetPlayerWeapon(i) == 43||GetPlayerWeapon(i) == 44 ||GetPlayerWeapon(i) == 45 || GetPlayerWeapon(i) == 37 || GetPlayerWeapon(i) == 38 || GetPlayerWeapon(i) == 27 || GetPlayerWeapon(i) == 4 || GetPlayerWeapon(i) == 17 || GetPlayerWeapon(i) == 16 || GetPlayerWeapon(i) == 18 || GetPlayerWeapon(i) == 26) // here the id's of the weapon who are disabled ( autoban )
    {

    weaponhacking +=1;
    hackingtotal +=1;
    SendClientMessage(i, COLOR_RED, "WARNUNG:deine waffen wurden gelöscht aber kein kick");
    SendClientMessage(i, COLOR_RED, "WARNING: your weapons are deleted but no kick");
    SetTimer("banningtimer",500,0);
    ResetPlayerWeapons(i);
    }
    }
    }


    public leben()
    {
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    new Float:health, Float:armour;
    GetPlayerHealth(i, health);
    GetPlayerArmour(i, armour);
    if(health >=101)
    if(armour >=101)
    {

    healthhacking +=1;
    hackingtotal +=1;
    SendClientMessage(i, COLOR_RED, "WARNUNG:du kannst kein GodMode cheaten");
    SendClientMessage(i, COLOR_RED, "WARNING: you can´t cheat GodMode");
    SetTimer("banningtimer",2000,0);
    SetPlayerHealth(i, 99);
    SetPlayerArmour(i, 1);
    }
    }
    }

  • 1) Mach die beiden Timer mal zusammen, so muss der arme Server keien 4 for-player-schleifen die Sekunde machen
    public waffen()
    {
    for (new i = 0; i <GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i)) {
    if (GetPlayerWeapon(i) == 35 || GetPlayerWeapon(i) == 36 ||GetPlayerWeapon(i) == 43||GetPlayerWeapon(i) == 44 ||GetPlayerWeapon(i) == 45 || GetPlayerWeapon(i) == 37 || GetPlayerWeapon(i) == 38 || GetPlayerWeapon(i) == 27 || GetPlayerWeapon(i) == 4 || GetPlayerWeapon(i) == 17 || GetPlayerWeapon(i) == 16 || GetPlayerWeapon(i) == 18 || GetPlayerWeapon(i) == 26) // here the id's of the weapon who are disabled ( autoban )
    {

    weaponhacking +=1;
    hackingtotal +=1;
    SendClientMessage(i, COLOR_RED, "WARNUNG:deine waffen wurden gelöscht aber kein kick");
    SendClientMessage(i, COLOR_RED, "WARNING: your weapons are deleted but no kick");
    SetTimer("banningtimer",500,0);
    ResetPlayerWeapons(i);
    }
    new Float:health, Float:armour;
    GetPlayerHealth(i, health);
    GetPlayerArmour(i, armour);
    if(health >=101)
    if(armour >=101)
    {

    healthhacking +=1;
    hackingtotal +=1;
    SendClientMessage(i, COLOR_RED, "WARNUNG:du kannst kein GodMode cheaten");
    SendClientMessage(i, COLOR_RED, "WARNING: you can´t cheat GodMode");
    SetTimer("banningtimer",2000,0);
    SetPlayerHealth(i, 99);
    SetPlayerArmour(i, 1);
    }
    }
    }
    }
    2) Nein, bei Godmode wird das Leben einfach nur "gefreezt" oder immer wieder auf seinen Wert, an dem der Godmode aktiviert wurde zurückgesetzt, dies kann auch 75 sein

  • hmmmm aber was ich denke zum godmode ist volgendes das das leben auf 100 gefreezed wird wäre es vieleicht eine lösung das nurmale leben beim joinen auf
    SetPlayerHealth(playerid, 99) zu setzen plus die /medi cmd .......... das selbe dann bei der schutzweste und dann wenn jemand godmode macht denke ich mal das es 100 is und dann snappt der anticheat zu würde das vieleicht gehn ? hmmmm nur dann wäre wieder da problem wenn sich ein spieler eine weste im amo laden kauft die hat ja dann auch wieder 100

  • Und es würde nicht gehen, mal ein kleines Beispiel dazu:
    Spieler 1 schießt Spieler 2 an
    Spieler 3 lacht Spieler 2 aus
    Spieler 2 hat noch 68 Leben und macht nun Godmode an
    Spieler 1 schießt weiterhin auf Spieler 2, welcher aus i-einem Grund die 68 Leben, nichts mehr und nichts weniger beibehält
    Spieler 3 hatn Timeout
    Spieler 1 messert Spieler 2, dieser stribt und spawnt mit 100 Leben neu (wobei der Godmode dann auf die 100 leben fixiert ist)