[INC] Amstaff's Geld System v1.0

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
  • Naja es ist eig kein Anti Cheat System ... ein Anti Cheat System schützt gegen Weapon Hack / Money Hack / Tp Hack.


    und deins ist eig nur ein Neues Geldsystem.

    Es ist kein komplettes Anticheat System das stimmt.
    Aber ein Anti Mony Hack System ist es.
    Es ist wie jede andere AMH System nur dieses hier ist absolut sicher.
    Wenn mich nicht alles täuscht xDD

  • Verbesserungsvorschläge am Coding-Stil:
    1.
    Schauen wir uns mal das hier an:
    new PlayersOnline = 0;
    for(new i = 0; i < GetMaxPlayers(); i++)
    {
    if (IsPlayerConnected(i)) {
    if(IsPlayerNPC(i)) {
    }
    else
    PlayersOnline++;
    }
    }



    Ich sags mal so: Ist verbesserungswürdig.


    Ich hab das ganze mal ein bisschen umgeändert so dass es zum einen kürzer, zum anderen aber auch schneller und wesentlich einfacher ist.
    new lPlayers, max = GetServerVarAsInt("maxplayers"), l;
    for(; l < max; l++)
    {
    if(!IsPlayerConnected(l)) continue;
    if(IsPlayerNPC(l)) continue;
    lPlayers ++;
    }


    Schon viel besser, oder? ;)


    2.
    Der Textdraw.


    Ich setze nichts am Design aus, aber an der Weise wie der Textdraw "gecodet" ist.
    Alle 700 Millisekunden rufst du insgesamt 12 Funktionen allein zum ERSTELLEN des Textdraws auf!
    Wäre es nicht viel praktischer wenn der Textdraw vor-erstellt wird, erst beim Connecten/Spawnen gezeigt, und bei einer Änderung des Geldbetrags dann aktualisiert wird?


    3.
    Der Timer.


    Für was bitteschön einen Timer? Warum nicht einfach den Textdraw (wie oben erwähnt) bei einer Geldänderung updaten? (Bzw. beim Connecten eines Users (betrifft Players-Online Anzeige))


    4.
    Irrelevanter Code der nie benutzt wird.


    new MStringy[128];
    new geld = sDaten[playerid][Geld];
    valstr(MStringy,geld - sDaten[playerid][Geld]);


    Ich setze mal nichts am zu großen Array/String aus, aber daran dass du "MStringy" nie verwendest. Du hast einfach sinnlosen Code drin den um ehrlich zu sein keiner braucht.


    5.
    Die bereitgestellten Funktionen.


    Ich will nicht darauf kommen dass man Funktionen normalerweise mit der englischen Sprache bezeichnet, sondern daran dass du einige Speed-Optimierungen daran vornehmen kannst.


    stock GeldGeben(playerid, summe) sDaten[playerid][Geld] += summe;
    stock HatGeld(playerid) return sDaten[playerid][Geld];
    stock ResetGeld(playerid) sDaten[playerid][Geld] = 0;


    Kann man ganz einfach mit:
    #define GeldGeben(%1,%2) sDaten[%1][Geld] += %2
    #define HatGeld(%1) sDaten[%1][Geld]
    #define ResetGeld(%1) sDaten[%1][Geld] = 0
    ersetzen. Spart den Funktionsaufruf, und ist somit auch schneller.


    6.
    It won't work.


    Das "Anti-Cheat" wird ab playerid 1 nicht mehr funktionieren, bzw. die Moneyanzeige nur das Geld von ID 0 anzeigen.
    Ein "normaler" Timer der per SetTimer erstellt wird ruft nämlich nur public-classes OHNE Parameter auf. Sollte ein Parameter im Header drin sein ist der Wert 0. Somit würde alles nur bei ID 0 funktionieren!


    Der Post soll in keiner Weise ein persönlicher Angriff sein, ich will lediglich auf eventuelle Schwächen im Code hinweisen und diese ausmerzen.

  • Also erstmal echt klasse :D
    Da bringt kein Money Cheat mehr was :D
    10/10
    Aber kann man die Schwarz da nicht so machen das es unsichtbar ist? Das man da durch gucken kann... Wens nicht geht vllt. den Kasten kleiner machen xD

    naja ist das gleiche wie ein Normales Antimoney cheat.


    Nur dass die Dollar ANzeige durch eine Häßlichere ersetzt wurde.

    Lol nein ein Antimoney Cheat kann nur GivePlayerMoney also das normale Geld in Sa:mp cheaten... Aber da es da sich um ein ganz anderes Geld System handelt kann man sich da kein Geld cheaten.