MySQL | Fahrzeug laden

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
  • Hallo Leute, ich habe ein kleines "Problem" mit meinem "System", und zwar seh ich keinerlei Fahrzeug Ingame obwohl die Server_log.txt was anderes sagt :)


    Datenbank:


    Script:
    static loadFrakCars(const frak[]); // dient als alternative für forward
    mysql_pquery(dbhandle, "SELECT * FROM `frakCars` WHERE `frakName`='SFPD'", "loadFrakCars", "s", "SFPD"); //Ongamemodeinit (query für laden ausführen)
    public loadFrakCars(const frak[]) //Callback fürs auslesen
    {
    printf("frak: %s", frak);
    if(cache_get_row_count(dbhandle) != 0 && !strcmp(frak, "SFPD", true))
    {
    print("vor schleife");
    for(new i;i<cache_get_row_count(dbhandle);i++)
    {
    print("in schleife");
    policeCars[i][c_pos][0] = cache_get_field_content_float(i, "c_x", dbhandle),
    policeCars[i][c_pos][1] = cache_get_field_content_float(i, "c_y", dbhandle),
    policeCars[i][c_pos][2] = cache_get_field_content_float(i, "c_z", dbhandle),
    policeCars[i][c_pos][3] = cache_get_field_content_float(i, "c_r", dbhandle),
    policeCars[i][c_id] = CreateVehicle(cache_get_field_content_int(i, "c_model", dbhandle), policeCars[i][c_pos][1], policeCars[i][c_pos][1], policeCars[i][c_pos][2], policeCars[i][c_pos][3], 79, 1, -1, 0),
    SetVehicleNumberPlate(policeCars[i][c_id], "SFPD"),
    printf("%i,%f,%f,%f,%f,cid:%i,id:%i", cache_get_field_content_int(i, "c_model", dbhandle), policeCars[i][c_pos][0], policeCars[i][c_pos][1], policeCars[i][c_pos][2], policeCars[i][c_pos][3], policeCars[i][c_id], i);
    }
    print("nach schleife");
    }
    print("am ende");
    return 1;
    }


    Server.log (Debugging)


    mfg :thumbup:

  • Beitrag von AirM4X ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Bist du vielleicht in einer anderen Welt?
    Ansonsten baue dir mal ein Befehl um dich zu einem dieser SFPD-Fahrzeuge zu porten.

  • Habe mir jetzt 2 Befehle zum testen "gebaut".



    ocmd:porttocar(playerid)
    {
    new Float:pos[3];
    GetVehiclePos(policeCars[5][c_id], pos[0], pos[1], pos[2]),
    SetPlayerPos(playerid, pos[0], pos[1], pos[2]);
    return 1;
    }


    ocmd:myvw(playerid)return printf("Du bist in der Welt %i", GetPlayerVirtualWorld(playerid));
    In der Log steht ich bin in der Welt 0.
    Ich habe jetzt eine neue Spur!
    Die Autos stehen komischerweiße hier:


    mfg :thumbup:

  • Wo landest du denn wenn du anstatt die Variablen einfach mal die Koordinaten in deinem Befehl einträgst?

  • ocmd:porttocord(playerid, params[])
    {
    new Float:pos[4];
    if(sscanf(params, "ffff", pos[0], pos[1], pos[2], pos[3]))return SendClientMessage(playerid, COLOR_GREY, "Befehl: /porttocord [x] [y] [z] [r]");
    SetPlayerPos(playerid, pos[0], pos[1], pos[2]), SetPlayerFacingAngle(playerid, pos[3]);
    return 1;
    }
    Wenn ich das so mache, lande ich da wo die Autos eigentlich stehen sollten.


    mfg :thumbup:

  • Vielleicht lädt das ja alles korrekt und es ist ein Fehler beim erstellen bzw. Speichern. Wie erstellst du denn die Fahrzeuge und wie lässt du diese speichern.

  • Momentan werden die Autos nicht gespeichert, hast du also einen Tipp für mich ?


    //Edit
    So habe ich die Fahrzeuge übrigens in die Datenbank eingespeichert.


    ocmd:insertcar(playerid, params[])
    {
    new Float:pos[4], model;
    if(sscanf(params, "iffff", model, pos[0], pos[1], pos[2], pos[3]))return SendClientMessage(playerid, COLOR_GREY, "Befehl: /insertcar [model] [x] [y] [z] [r]");
    new query[256];
    mysql_format(dbhandle, query, sizeof query, "INSERT INTO `frakCars` (`frakName`,`c_model`,`c_x`,`c_y`,`c_z`,`c_r`) VALUES ('SFPD',%i,%f,%f,%f,%f)", model, pos[0], pos[1], pos[2], pos[3]),
    mysql_pquery(dbhandle, query, "", "");
    return 1;
    }


    mfg :thumbup:

  • Naja wenn ich gerade so drüber nachdenke.. Der Fehler muss ja beim laden sein denn die Koordinaten sind richtig (die geladen werden) aber die Autos werden falsch gesetzt, richtig?

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Es gibt Stellen im Spiel, da fallen Fahrzeuge durch, wenn niemand bei der Erstellung in der Nähe ist.


    Mach dir mal einen Befehl, der alle diese Fahrzeuge zum Respawn setzt (http://wiki.sa-mp.com/wiki/Function:SetVehicleToRespawn).
    Dann gebe den Befehl ein, wenn du in der Nähe bist, sie also siehst.
    Stehen sie dann an der richtigen Position?
    Wenn ja, gebe den Befehl (nach einem Server Restart) ein, wenn du sie nicht siehst, also wenn du ganz weit weg bist. Dann gehe hin, stehen sie dann richtig?

  • policeCars[i][c_id] = CreateVehicle(cache_get_field_content_int(i, "c_model", dbhandle), policeCars[i][c_pos][1], policeCars[i][c_pos][1], policeCars[i][c_pos][2], policeCars[i][c_pos][3], 79, 1, -1, 0),
    zu (ohne die Kommentarszeile):
    policeCars[i][c_id] = CreateVehicle(cache_get_field_content_int(i, "c_model", dbhandle), policeCars[i][c_pos][0], policeCars[i][c_pos][1], policeCars[i][c_pos][2], policeCars[i][c_pos][3], 79, 1, -1, 0),
    // siehe ^


    Ein Bild sagt mehr als 1000 Worte. :D
    Erklärt dann auch, warum die Fahrzeuge irgendwo standen.