Beiträge von maddin

    So, ich dachte das passt hier ganz gut rein. Ich hab mir grad mal ein paar gedanken gemacht wegen Timern un globalen variablen und hab da nu 2 fragen^^
    1. Nehmen sich PVars und normale Variablen performance mäßig was? Also das z.b PVars schneller/langsamer/ressourcen schonender/fressender sind etc?


    2. Je mehr timer gleichzeitig laufen, desto mehr ressourcen, das is ja klar. Aber was wenn ich jetzt z.b nur einen timer benutze, der jede sekunde ausgeführt wird, und dann jede sekunde eine variable hochzähle und wenn diese dann z.b 60 erreicht hat (60 sekunden = eine minute^^) dann halt meinen code ausführen lasse?
    Falls man nicht versteht was ich meine:
    new AntiCheatTimer = 0,
    SpielerStatsUpdateTimer = 0,
    SpielerSaveTimer = 0;

    public OnGameModeInit()
    {
    SetTimer("GlobalTimer",1000,true);//Alle 1 Sekunden
    }
    public GlobalTimer()
    {
    AntiCheatTimer++;
    SpielerStatsUpdateTimer++;
    SpielerSaveTimer++;
    if(AntiCheatTimer == 5)//5 Sekunden
    {
    //blabla anticheat code oder funktion oder was auch immer
    AntiCheatTimer=0;
    }
    if(SpielerStatsUpdateTimer == 120)//120 Sekunden = 2 Minuten
    {
    //blabla Spieler Update code oder funktion oder was auch immer
    SpielerStatsUpdateTimer=0;
    }
    if(SpielerSaveTimer == 360)//360 Sekunden = 5 Minuten
    {
    //blabla alle spieler speichern
    SpielerSaveTimer=0;
    }
    }
    Ist das jetzt Besser oder schlechter das so zu machen? Und warum?
    Wäre schön wenn jmd ne antwort darauf hätte^^


    Mfg.

    if((PlayerInfo[shooter][pMember] >= 8 && PlayerInfo[shooter][pMember] <= 13 || PlayerInfo[shooter][pLeader] >= 8 && PlayerInfo[shooter][pLeader] <= 13) && GetPlayerWeapon(shooter) == 23)


    ich denke die klammer (rot markiert) gehört da nicht hin

    um zwei strings zu vergleichen solltest du lieber strcmp benutzen.
    if(!strcmp(text, "Fick Dich", true))//Das true bedeutet das Groß und klein schreibung nicht beachtet wird. "FiCk DiCH" ist das gleiche wie "fick dich"
    {
    SendClientMessage(playerid, Rot, "Benimm dich!");
    warn += 1;
    return 1;
    }

    Wenn es dir wirklich um sicherheit geht, würde ich dir Whirpool empfehlen. Die einzigen die ich sonst noch kenne sind MD5 und SHA512, die beide schon geknackt wurden. Wer sich jetzt denkt, das er ja nix verschlüsseln braucht, weils ja eh "nur" samp ist und dort nichts wirklich wichtiges gestohlen werden kann, der täuscht sich. Ich verweise dazu gerne mal auf einen Post von Y_Less aus dem englischen Forum:

    Yes, this is "only" SA:MP, but many people use the same passwords for everything, or a large number of things. What happens when your low security (because it's "only" SA:MP, who needs real security) server gets hacked and your user files, complete with registration emails and weakly hashed passwords, gets stolen? The hacker now has access to possibly hundreds of accounts because of your lack of security.


    Und ich bin der meinung das man als Scripter bzw Server besitzer dafür verantwortlich ist und sich da schon gedanken drüber machen sollte.


    Für Whirpool brauchst du allerdings das Whirlpool Plugin.
    Falls du nicht weiss wie du es machen sollst, meld dich einfach ich erkläre dir das gerne. Und denk immer daran das der string mindestens 129(128+1) Zeichen groß sein muss, gleiches gilt auch für die DB.


    Mfg.


    //Edit: Wie decrypten?
    Ich idealfall garnicht. Das decryptete passwort stellt immer ein gewissen sicherheitsrisiko da (in pawn vllt weniger als in php oder anderen systemen). Deshalb ist die einfachste methode:

    • Registrierung

      • Passwort verschlüsselt in der Datenbank speichern


    • Login

      • Verschlüseltes passwort aus der Datenbank holen und in einem String speichern
      • Das eingegebene passwort des Spielers verschlüsseln und in einem string speichern
      • beide strings vergleichen
      • Wenn gleich -> Login
      • Wenn nicht gleich -> falsches passwort