Beiträge von Campbell

    • Verwende kein MD5, es gibt weit bessere Varianten Passwörter zu hashen.
    • Verschlüsseln ist nicht das selbe wie hashen. MD5 ist eine Hashfunktion - keine Verschlüsselung.
    • Dein Problem muss beim Schreiben entstehen, ich sehe jedoch kein "Level" unter OnPlayerRegister() - bitte etwas mehr Quellcode zeigen.

    Ich verstehe dein Problem zwar nicht, jedoch würde ich wie folgt vorgehen:


    • Mögliche Items in einem Array festhalten.
    • Array beim Aufruf des Rucksacks durchlaufen.
    • Falls das Item im Besitz des Spielers ist es in den String für den Dialog einfügen. Max. 5 Items.
    • Nach durchlaufen des Arrays den Dialog ausgeben.

    Desweiteren werde ich mir mal das Tutorial von Cambell anschauen, da es mir auf den ersten Blick ziemlich gut gefallen hat.


    Um sich den Sachverhalt über Threads klar zu machen wird dir das Tutorial nutzen, jedoch würde ich nicht mehr MySQL R6 verwenden, sondern R7 von BlueG, da es keine unthreaded Queries mehr unterstützt und mit Cachefunktionen viel schneller ist.

    Sobald die Taste gedrückt wird testest du, ob der Spieler sich in einem Auto befindet. Falls ja, dann setzt du die entsprechende Beschleunigung in X-, Y- bzw. Z-Richtung. Um in die richtige Richtung zu beschleunigen, kann man sich ebenfalls GetVehicleVelocity() noch herbeiziehen.

    • Per GetPlayerKeys() die gedrückte Taste testen und die Geschwindigkeit des Wagens setzen: SetVehicleVelocity().
    • Einfach Position neu per SetPlayerPos() setzen mit den Daten aus GetPlayerPos() plus 10 auf der Z Achse. 10 entspricht hier jedoch SA-Einheiten von Koordinaten. Was 10 Meter tatsächlich sind, müsstest du selbst herausfinden.

    i ist in diesem Fall ein Integer. Es ist jedoch ein String gefragt. Mich wundert es, dass du diesen Command im Spiel überhaupt ausführen kannst. Ich würde hier ein Tag Mismatch erwarten.


    Ebenfalls ist es doch egal, was für eine Zahl in der for-Schleife steht. MAX_VEHICLES ist genau wie MAX_PLAYERS eine Zahl, die mit einem Namen vordefiniert wurde alias #define. Hier wird der Fehler nicht zustande kommen.

    Du hast ja auch ein Kommentar-Zeichen vor format() stehen. Dann kannst du ja garnicht MySQL sagen, was getan werden soll. Ebenfalls solltest du MySQL R7 verwenden - das ist aktueller und besser.

    Was hat das mit der Frage zu tun, wie man Daten abspeichert? Aus der Fragestellung kommt allerdings auch nicht dir Frage heraus. Falls du möchtest, dass man eine Fahrerliste erstellt, dann musst du einfach die Fahrernamen unter OnPlayerStateChange() zwischenspeichern und später entsprechend ausgeben. Falls du eine Rennliste machen möchtest, wer gerade an welcher Position ist, dann wird das schon schwerer.


    Zitat

    Eine Datei für jede FahruegId erstellen


    Das ist wohl die schlechteste Variante, um das Vorhaben umzusetzen.

    Es gibt die Slots 0 - 12. Also kann man wie folgt vorgehen:



    new weapon, ammo;


    GetPlayerWeaponData(playerid, 0, weapon, ammo);
    // Do smth. with weapon & ammo.


    GetPlayerWeaponData(playerid, 1, weapon, ammo);
    // Do smth. with weapon & ammo.


    GetPlayerWeaponData(playerid, 2, weapon, ammo);
    // Do smth. with weapon & ammo.


    GetPlayerWeaponData(playerid, 3, weapon, ammo);
    // Do smth. with weapon & ammo.


    GetPlayerWeaponData(playerid, 4, weapon, ammo);
    // Do smth. with weapon & ammo.


    GetPlayerWeaponData(playerid, 5, weapon, ammo);
    // Do smth. with weapon & ammo.


    GetPlayerWeaponData(playerid, 6, weapon, ammo);
    // Do smth. with weapon & ammo.


    GetPlayerWeaponData(playerid, 7, weapon, ammo);
    // Do smth. with weapon & ammo.


    GetPlayerWeaponData(playerid, 8, weapon, ammo);
    // Do smth. with weapon & ammo.


    GetPlayerWeaponData(playerid, 9, weapon, ammo);
    // Do smth. with weapon & ammo.


    GetPlayerWeaponData(playerid, 10, weapon, ammo);
    // Do smth. with weapon & ammo.


    GetPlayerWeaponData(playerid, 11, weapon, ammo);
    // Do smth. with weapon & ammo.


    GetPlayerWeaponData(playerid, 12, weapon, ammo);
    // Do smth. with weapon & ammo.


    ... oder man macht das ganze in einer Schleife:


    new weapon, ammo;


    for(new i = 0; i < 13; i++) {
    GetPlayerWeaponData(playerid, i, weapon, ammo);
    // Do smth. with weapon & ammo!
    }

    Warum so umständlich?



    #include <a_samp>


    #define FRAKTIONEN 2


    new FraktionsInfo[FRAKTIONEN][] = {
    "Los Santos Police Department", "Los Santos Fire Department"
    };


    new RankInfo[FRAKTIONEN][8][30] = {
    {"Officer 1", "Officer 2", "Officer 3", "Officer 4", "Officer 5", "Officer 6", "Officer 7", "Officer 8"},
    {"Firefighter 1", "Firefighter 2", "Firefighter 3", "Firefighter 4", "Firefighter 5", "Firefighter 6", "Firefighter 7", "Firefighter 8"}
    };



    main() {
    new pFraktion = 2,
    pRank = 3;


    printf("Fraktion: %s | Rank: %s", FraktionsInfo[pFraktion - 1], RankInfo[pFraktion - 1][pRank - 1]);
    }