Beiträge von Campbell

    MD5 ist sicherlich keine sichere Variante, Passwörter zu verschlüsseln.

    Wenn ihr alle meint einen auf so klug zu machen müsstet ihr aber auch wissen das man jedes Verschlüsselungs System Brechen kann! Und da er sich sicherlich noch nicht so gut im Pawn Scripting auskennt(Sonst würde er MD5 sicherlich schon kennen) ist das für ihn die leichteste Variante... Ich selber kann MD5 nicht entschlüsseln.. wenn ich es erlerne sowas zu entschlüsseln dann kann ich auch solch scheiße machen wie die typen die das playstation dings gehakkt haben... da ist das was hier alles kam auch der größte müll... und um md5 zu entschlüsseln muss so ein hakker auch erstmal an die daten... also ein sehr langer weg^^[/quote]


    Zitat


    Is genau das, was ich damit meine.


    MD5 ist nicht zu ntschlüsseln, man muss BruteForcen und das dauert seine Zeit.


    Daher ist dies eine gute Möglichkeit, Daten zu verschlüsseln.


    • Ein Angriff auf Playstation Network mit einer MD5 Verschlüsselung zu vergleichen ist sehr amüsant.
    • Es bedarf keinerlei Kenntnissen, um MD5-Hashs in Sekunden zu decrypten: http://www.md5decrypter.com/
    • Wenn man sich hinsetzt und versucht seine Spieler zu schützen, sollte man sich Zeit dafür nehmen, sich informieren und es einigermaßen gut realisieren. Das gilt nicht nur für die Realisierung des Verschlüsselns von Passwörtern, sondern jeder Realisierung in jederlei Hinsicht.
    • Niemand hat von einem komplett sicheren System geredet. Die Frage ist eher, ob man sich Mühe gibt, das Beste herauszuholen oder es für jedermann einfach macht.
    • Gute Algorithmen zu verwenden ist gut, jedoch sollte man auch noch weitere logische Varianten hinzuziehen, wie zB. Salts etc.


    Zitat


    Allerdings ist ja das PW dann so verschlüsselt.


    Ich sehe keinerlei Verschlüsselung.

    • Das Ganze kann auf einer Variable pro Spieler basieren.
    • Befehl zur Aktivierung des Chats zwischen den 2 Personen setzt die Variable der 2 Spieler auf true.
    • In OnPlayerText() wird abgefragt, ob die 2-Player-Chat-Variable true ist - Falls ja, wird der eingegebene Text dieser Person gesendet.

    Dann versuche doch mal zu debuggen. Lasse dir systemgenerierte Variablen wie params ausgeben und schau dir den Rückgabewert von sscanf() an etc.

    MD5 ist schwachsinn, da es jeder innerhalb von wenigen Sekunden entschlüsseln kann. Verwende zumindest Whirlpool und verwende eine Salt. Falls du dazu nicht im Stande bist, verwende ein PHP Skript zur Verschlüsselung mit u.a. sha-Algorithmen. MD5 kannst du auch direkt weglassen.

    Du hast nicht genügend Indexe gefüllt, um MAX_PICKUPS zu erreichen. Multi-dimensionale Arrays müssen komplett initialisiert werden (= deklariert und definiert). Entferne einfach MAX_PICKUPS und lasse die Klammern frei, sodass die größe automatisch berechnet wird. Anschließend verwende in Schleifen etc. sizeof().


    Test Quellcode:



    #include <a_samp>


    enum PickupInfo {
    PickupName[22],
    PickVW,
    Float:PickPosX,
    Float:PickPosY,
    Float:PickPosZ,
    EnterInterior,
    Float:EnterX,
    Float:EnterY,
    Float:EnterZ,
    Float:EnterR,
    VirtualWorld
    };


    new Pickups[][PickupInfo] = {
    {"Fahrschule", 0, -1316.7506, 448.9586, 7.1875, 3, 1494.4972, 1305.9852, 1093.2891, 342.4809, 1}, //fahrschule
    {"Ausgang", 1, 1494.4679, 1303.8994, 1093.2891, 0, -1315.6484, 451.6973, 7.1875, 347.5659, 0}, //fahrschule ausgang
    {"Bank", 0, -2764.6179, 375.4535, 6.3418, 0, 2308.3975, -15.6699, 26.7496, 275.3731, 1}, //bank
    {"Ausgang", 1, 2305.5515, -16.0594, 26.7496, 0, -2760.5349, 375.4937, 4.8637, 270.1382, 0}, //bank ausgang
    {"Burger Shot", 0, -2319.6907, -155.0268, 35.5466, 10, 368.2901, -72.5143, 1001.5078, 00.0000, 1}, //burger shot 1
    {"Burger Shot", 0, -1912.2753, 828.6730, 35.1846, 10, 368.2901, -72.5143, 1001.5078, 00.0000, 2}, //burger shot 2
    {"Burger Shot", 0, -2357.0728, 1007.6878, 50.8984, 10, 368.2901, -72.5143, 1001.5078, 00.0000, 3}, //burger shot 3
    {"Ausgang", 1, 363.5244, -74.7451, 1001.5078, 0, -2319.0020, -151.5349, 35.5466, 245.6091, 0}, //burger shot ausgang 1
    {"Ausgang", 2, 363.5244, -74.7451, 1001.5078, 0, -1910.0277, 830.9349, 35.1719, 325.3798, 0}, //burger shot ausgang 2
    {"Ausgang", 3, 363.5244, -74.7451, 1001.5078, 0, -2356.8230, 1002.0397, 50.8984, 124.3975, 0} //burger shot ausgang 3
    };


    main() {
    for(new p = 0; p != sizeof(Pickups); p++) {
    printf("PickupData #%i: %s | %i | %.2f | %.2f | %.2f | %i | %.2f | %.2f | %.2f | %.2f | %i", p,
    Pickups[p][PickupName],
    Pickups[p][PickVW],
    Pickups[p][PickPosX],
    Pickups[p][PickPosY],
    Pickups[p][PickPosZ],
    Pickups[p][EnterInterior],
    Pickups[p][EnterX],
    Pickups[p][EnterY],
    Pickups[p][EnterZ],
    Pickups[p][EnterR],
    Pickups[p][VirtualWorld]);
    }
    }


    Ausgabe:


    Code
    [21:03:23] PickupData #0: Fahrschule | 0 | -1316.75 | 448.95 | 7.18 | 3 | 1494.49 | 1305.98 | 1093.28 | 342.48 | 1
    [21:03:23] PickupData #1: Ausgang | 1 | 1494.46 | 1303.89 | 1093.28 | 0 | -1315.64 | 451.69 | 7.18 | 347.56 | 0
    [21:03:23] PickupData #2: Bank | 0 | -2764.61 | 375.45 | 6.34 | 0 | 2308.39 | -15.66 | 26.74 | 275.37 | 1
    [21:03:23] PickupData #3: Ausgang | 1 | 2305.55 | -16.05 | 26.74 | 0 | -2760.53 | 375.49 | 4.86 | 270.13 | 0
    [21:03:23] PickupData #4: Burger Shot | 0 | -2319.69 | -155.02 | 35.54 | 10 | 368.29 | -72.51 | 1001.50 | 0.00 | 1
    [21:03:23] PickupData #5: Burger Shot | 0 | -1912.27 | 828.67 | 35.18 | 10 | 368.29 | -72.51 | 1001.50 | 0.00 | 2
    [21:03:23] PickupData #6: Burger Shot | 0 | -2357.07 | 1007.68 | 50.89 | 10 | 368.29 | -72.51 | 1001.50 | 0.00 | 3
    [21:03:23] PickupData #7: Ausgang | 1 | 363.52 | -74.74 | 1001.50 | 0 | -2319.00 | -151.53 | 35.54 | 245.60 | 0
    [21:03:23] PickupData #8: Ausgang | 2 | 363.52 | -74.74 | 1001.50 | 0 | -1910.02 | 830.93 | 35.17 | 325.37 | 0
    [21:03:23] PickupData #9: Ausgang | 3 | 363.52 | -74.74 | 1001.50 | 0 | -2356.82 | 1002.03 | 50.89 | 124.39 | 0

    Ich bezweifle, dass du Pawn (fast) komplett kannst. Falls du jedoch in andere Sprachen schnuppern möchtest empfehle ich in erster Linie PHP bzw. Java, da bei Sprachen recht viel können und du auch in Verbindung mit Pawn hier interessante Dinge realisieren kannst.


    eigentlich sagte ich ob es ein tutorial gibts oder was für funktionen man für so ein privat car script braucht.


    Das kann man doch so nicht sagen, man kann ein komplexes System nicht nur mit zwei Wörtern beschreiben. Und wenn ein System komplex wird, wird man auch hier nicht sagen können, welche Funktionen man verwendet. Planung und Umsetzung sind zweierlei Schuhe.

    Warum erstellst du es dir nicht selbst, sondern vertraust auf irgendeine Implementierung, die evt. total in die Hosen gehen wird und später kaum bearbeitet werden kann? Wir sind hier doch in einer Scripting Base, oder habe ich mich da verschaut?


    Könnte unter Umständen funktionieren, da Strings als Booleans fungieren. Aber das ist schlechte Validierung und es sollte auch zu Warnings/Errors kommen (Aktiviere deine Fehlerausgabe).

    Limits: http://wiki.sa-mp.com/wiki/Limits


    Auch wenn der Textdraw etwas fehlplatziert scheint wird er bei mir angezeigt. Quellcode:



    #include <a_samp>


    #define forumlink "www.tng-roleplay.de.to"


    new Text:Forum;


    main() {
    }


    public OnGameModeInit() {
    Forum = TextDrawCreate(516.000000, 300.000000, forumlink);
    TextDrawBackgroundColor(Forum, 255);
    TextDrawFont(Forum, 2);
    TextDrawLetterSize(Forum, 0.320000, 1.000000);
    TextDrawColor(Forum, -1);
    TextDrawSetOutline(Forum, 1);
    TextDrawSetProportional(Forum, 1);
    }


    public OnPlayerSpawn(playerid) {
    TextDrawShowForPlayer(playerid, Forum);
    }


    • Kann es sein, dass du sehr viele Textdraws per Schleifen erstellt hast, so wie du es bereits oben getan hast?