ANTi Cheat

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

  • Für was sinnlos Ressoursen mit einem Timer fressen? Man kann das ganze in einen Stock packen und es hooken und nach dem Geld geben abfragen, ob es den selben Wert hat.



    Für was sinnlos Ressoursen mit einem Timer fressen? Man kann das ganze in einen Stock packen und es hooken und nach dem Geld geben abfragen, ob es den selben Wert hat.


    Wäre unnütze schreibarbeit, Warum kein timer? Man muss ja keine 10 timer haben, ich hab im script nur 2 serverseitige timer, die reichen.
    Darüber kann man bequem nen anticheat abfragen

  • ich hab mir ein antimoney selbergescripted. Außerdem scripte ich alles selber... Ich brauche nur manchmal eine vorgehensweise als tipp.


    Gibt es aber eine Möglichkeit Airbreak zu erkennen, und zwar nicht da durch, das der Spieler kurz in die luft Teleportiert wird, und geschaut wird, ob er fällt??


    Und kann mir jmd erklären wie stocks gehen, ich versteh das nicht so gaaanz... Und wann wird eine stock ausgelöst, oder wie kann ich sie auslösen...

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ich gebe dir mal ein Beispiel für einen stock:
    stock SpielerName(playerid)
    {
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Name,sizeof(Name));
    return Name;
    }
    Das fügst du ganz unten ein!
    So, jetzt brauchst du nicht mehr GetPlayerName(...); und so was machen, wenn du einen SpielerNamen auslesen möchtest.
    Jetzt brauchst du einfach z.B. nur so etwas machen:
    new string[128];
    format(string,sizeof(string)," Dein Name: %s",SpielerName(playerid));
    SendClientMessage(playerid,FARBE,string);
    Jetzt wird dir der Name ausgegeben.


    Ich habe es jetzt nicht so ausführlich erklärt, wenn du etwas nicht verstanden hast, kannst du dich gerne melden.

  • Eine kleine Absicherung wäre, wenn du die Höhe des MC nimmst, und abfragst ob die Position des Spielers darüber ist. Dann fragst du noch ab ob die CarSurfingID invalid ist und zu guter letzt fragst du ab, ob die Person langsam -, normal -, schnell geht (Natürlich mit Animationen). Es ist natürlich auch möglich mit Map Andreas, aber ich höre sehr oft, das es sehr viele Ressoursen verbraucht, vor allem, wenn du es in einem Spielerdefinieren Timer machst, des alle 5-10 Sekunden aufgerufen wird.


    Wenn du irgendwie hilfe brauchst, bei Anticheat System, kannst du dich per PN melden. (Musst aber zuerst Freundschaftsanfrage schicken)

  • Ähhhm, danke, du hast halt noch vergessen ob der Spieler im Vehicle (Heli) ist, weil dann kann er ja höher als MC sein. Und dann mus man noch beachten, wenn der Spieler ausm Heli springt... Ok; das ist seeehr viel ARBEIT :D


    Und wenn der Spieler esc drückt bleibt er in der Luft.. wie kann man abfragen ob der spieler das spiel pausiert hat??


  • Ähhhm, danke, du hast halt noch vergessen ob der Spieler im Vehicle (Heli) ist, weil dann kann er ja höher als MC sein. Und dann mus man noch beachten, wenn der Spieler ausm Heli springt... Ok; das ist seeehr viel ARBEIT


    Und wenn der Spieler esc drückt bleibt er in der Luft.. wie kann man abfragen ob der spieler das spiel pausiert hat??


    Nein, wenn er eine Geh-Animation ausführt, kann er wohl kaum in einem Helikopter sitzen.

    Achtung!

    Ich habe vergessen zu sagen, abzufragen, ob die Person in einem Interior ist.


    Empfehlung:
    Außerdem würde ich dir empfehlen, in deinem Anticheat-Timer die Position zu speichern und abzufragen ob es zu letzten gespeicherten Position eine große Differenz gibt.

  • hab die geh anim überlesen...





    Ne stock ist also eigentlich ein string über mehrere zeilen oder hab ich das falsch verstanden


    und bei return, wie kann man mehrere strings aus einem stock returnen lassen, also saven

    Einmal editiert, zuletzt von TH4NKFULL ()

  • Ein Stock kannst du als Vereinfachung beim scripten sehen, er hilft dir, das du nicht so viel Schreibarbeit hast.
    Beispiel:
    Ich möchte meinen Spieler speichern, und habe einen ewig langen Query, der ungefähr 50 Zeilen lang ist.
    Ich kann überall diese 50 Zeilen schreiben, oder ich kann Zeilen sparen und es mir leicht machen und den Code einen Stock packen.
    Das würde so aussehen:
    stock BeliebigerName(Parameter, z.B. playerid)
    {
    //Meine 50 Zeilen Code
    return 1;
    }
    Nun kann ich unter OnPlayerDisconecct einfach schreiben: BeliebigerName(playerid); --> jetzt werden meine 50 Zeilen ausgeführt.