Beiträge von Jeffry

    saveCarToDB(playerid,carid)
    {
    new query[256],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(query,sizeof(query),"INSERT INTO autos (modelx,y,z,r) VALUES ('%i','%f','%f','%f','%f')",cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]);
    mysql_tquery(Handle, query, "OnVehicleAdded", "d", carid)
    return 1;
    }


    forward OnVehicleAdded(carid);
    public OnVehicleAdded(carid)
    {
    cInfo[i][db_id] = cache_insert_id();
    return 1;
    }

    Mit welchem Code aktualisierst du denn das 3D Label? Hast du da einen Timer dafür?
    Wenn nicht, dann musst du einen Timer erstellen, der in entsprechenden Zeitabständen aufgerufen wird und eine Schleife durch alle deine Drogen geht (SetTimer & for-Schleife).

    Dann denke ich, wenn du mein Tutorial wirklich gewissenhaft und gut durcharbeitest, wirst du auf jeden Fall mehr als die 0% verstehen, ich denke sogar, dass du es danach ziemlich gut verstehst, wie das ganze funktioniert.
    Nimm dir dafür einfach ein paar Stunden/Tage Zeit und arbeite es Stück für Stück durch. Du wirst bald merken, dass es gar nicht so schwer ist wie es aussieht. Ich glaube, dass es jedem von uns einmal so ging, aller Anfang ist schwer.

    Ein Fahrzeug-System auf Dini basierend zu machen ist keine wirklich gute Idee, da es einfach zu viele Daten sind auf die zum Teil gleichzeitig zugegriffen werden müssen, das dauert zu lange. MySQL eignet sich da besser.
    Oder du erstellst ein eigenes, besseres, Datenverwaltungssystem mit Dateien, aber da wird es wahrscheinlich einfacher sein, wenn du dich an MySQL versuchst. Das ist zwar am Anfang kompliziert, geht aber recht schnell bis man sich da zu Recht findet.


    Ich würde dir da MySQL raten, sofern du kein eigenes Datenverwaltungssystem schreiben willst.

    Genau gleich, nur dass du nicht %d nimmst, sondern %s beim Speichern, und cache_get_field_content anstatt cache_get_field_content_int beim Laden.

    Versuch es so:
    ocmd:vehiclelock(playerid,params[])
    {
    new veh = GetOwnVehicle(playerid);
    if(veh == INVALID_VEHICLE_ID) return SendClientMessage(playerid,COLOR_RED,!"Es befindet sich keines deiner Fahrzeuge in der Nähe.");
    new engine,lights,alarm,bonnet,boot,objective;
    GetVehicleParamsEx(veh,engine,lights,alarm,vehdoor,bonnet,boot,objective);
    GameTextForPlayer(playerid, (vehdoor)?("~w~Fahrzeug ~g~aufgeschlossen"):("~w~Fahrzeug ~g~abgeschlossen"), 3000, 5);
    PlaySoundForPlayer(playerid,1147);
    SetTimerEx("PlaySoundForPlayer",500,0,"id",playerid,1147);
    if(vehdoor!=0) vehdoor = 1;
    else vehdoor = 0;
    SetVehicleParamsEx(veh,engine,lights,alarm,vehdoor,bonnet,boot,objective);
    for(new i; i<MAX_PLAYERS; i++) SetVehicleParamsForPlayer(veh,i,0,vehdoor);
    return 1;
    }

    Nimm den root Benutzer ohne Passwort:
    #define db_host "127.0.0.1"
    #define db_user "root"
    #define db_pass ""
    #define db_db "dystopia"


    Das ist in 99% aller Fälle standardmäßig so eingestellt.
    Dein user "samp" wird nicht die richtigen Berechtigungen haben, das ist auf localhost (dein Rechner) so eingestellt, standardmäßig zumindest.
    Deshalb benutze, wie ich oben geschrieben habe, den root - User ohne Passwort, der hat ALLE Berechtigungen. Dem kannst du später auch, je nach Client, ein Passwort geben.

    Deshalb sagte ich ja:

    Den Fraktions-Teil kannst du ja weg lassen, falls du das nicht brauchst.


    Das System ist an sich fast identisch, nur dass du eben die Fraktion weg lässt und den Code unter OnPlayerEnterVehicle. Der Rest ist gleich. 95% kannst du 1:1 übernehmen.