Vehicle will nicht speichern [mysql]

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
  • Bin grad dabei kaufbare vehicles zu erstellen,
    soweit ein player in einem bestimmten shopfahrzeug sitz kann er den selben wagen an einer bestimmten stelle spawnen


    irgendwie will der das aber nicht in die datenbank speichern, kann mal einer drüberschauen, ich finde den fehler nicht


    CMD:abuyvehicle(playerid, params[])
    {
    if(Vehicles[GetPlayerVehicleIDEX(playerid)][fvType] == 10)
    {
    new Query[500], vModel, vColor1, vColor2;
    vModel = GetVehicleModel(GetPlayerVehicleID(playerid));
    GetVehicleColor(GetPlayerVehicleID(playerid), vColor1, vColor2);
    format(Query, sizeof(Query), "INSERT INTO `Vehicles` (VehicleModel = '%d', VehicleX = '%f', VehicleY = '%f', VehicleZ = '%f', VehicleAngle = '%f', Color1 = '%d', Color2 = '%d', VehicleType = '%d', vBesitzer = '%s', vPreis = '%d')",
    vModel, -1630.91, 1289.79, 6.74587, 134.595, vColor1, vColor2, 999, SpielerNameAnzeige(playerid), 100);
    mysql_query(Query);
    mysql_free_result();

    LoadPlayerVehicle(playerid);
    SendClientMessage(playerid, green, "{FF0000}[SERVER] {FFFFFF}Du hast dir das Fahzeug gekauft");
    }
    return 1;
    }

    mfg
    Ali ;)

  • Deine SQL Command ist falsch aufgebaut


    dieser sollte so aufgebaut sein
    "INSERT INTO `Vehicles` (`VehicleModel`, `VehicleX`, `VehicleY`, `VehicleZ`, `VehicleAngle`, `Color1`, `Color2`, `VehicleType`, `vBesitzer`, `vPreis`) VALUES ('%d', '%f', '%f', '%f', '%f', '%d', '%d', '%d', '%s', '%d')"

  • das macht eig kein untschied, so hatte ich das auch vorher..
    damit geht das aber auch nicht habe es eben nochmal getestet


    das funktioniert z.b. wenn ich noale autos spawne und speichere
    stock AddVehicleToFile(Float:vX, Float:vY, Float:vZ, Float:vA, vModel, vColor1, vColor2)
    {
    new Query[200];
    format(Query, sizeof(Query), "INSERT INTO `Vehicles` (VehicleModel, VehicleX, VehicleY, VehicleZ, VehicleAngle, Color1, Color2) VALUES(%d, %f, %f, %f, %f, %d, %d)",
    vModel, vX, vY, vZ, vA, vColor1, vColor2);
    mysql_query(Query);
    mysql_free_result();
    return 1;
    }


    muss man die werte erst floaten? eig nicht oder, die parameter zeigen ja das es floads sind oder?


    //edit 1
    float text hinzugefügt

    mfg
    Ali ;)

    Einmal editiert, zuletzt von Cryptex ()

  • Achso, hab ich nicht gesehen. Aber selbst dann hätte ich es für Sinnvoll gehalten diese Funktion in den anderen Code zu kopieren und die 2 Variablen anzuhängen, dann tauchen wohl eher weniger Bugs auf bei solchen minimalen Veränderungen

  • Ich habe das umgeschrieben, habe auch einpar fehler gefunden jedoch geht das immernoch nicht :D
    Da muss ein experte ran :D Bestimmt ist nur wieder was kleine flasch und ich sehe das wieder nicht...


    CMD:abuyvehicle(playerid, params[])
    {
    new rand = random(sizeof(RandomSpawnVehicleShop)), vModel, vColor1, vColor2, vType, vBesitzer[500], vPreis;
    vModel = GetVehicleModel(GetPlayerVehicleID(playerid));
    GetVehicleColor(GetPlayerVehicleID(playerid), vColor1, vColor2);
    vType = 999;
    vBesitzer = SpielerNameAnzeige(playerid);
    vPreis = 100;


    if(Vehicles[GetPlayerVehicleIDEX(playerid)][fvType] == 10)
    {
    AddPlayerVehicleToFile(vModel, RandomSpawnVehicleShop[rand][0], RandomSpawnVehicleShop[rand][1], RandomSpawnVehicleShop[rand][2], RandomSpawnVehicleShop[rand][3], vColor1, vColor2, vType, vBesitzer[128], vPreis);
    SendClientMessage(playerid, green, "{FF0000}[SERVER] {FFFFFF}Du hast dir das Fahzeug gekauft");
    }
    return 1;
    }


    stock AddPlayerVehicleToFile(vModel, Float:vX, Float:vY, Float:vZ, Float:vA, vColor1, vColor2, vType, vBesitzer, vPreis)
    {
    new Query[200];
    format(Query, sizeof(Query), "INSERT INTO `Vehicles` (`VehicleModel`, `VehicleX`, `VehicleY`, `VehicleZ`, `VehicleAngle`, `Color1`, `Color2`, `VehicleType`, `Besitzer`, `Price`) VALUES ('%d', '%f', '%f', '%f', '%f', '%d', '%d', '%d', '%s', '%d')",
    vModel, vX, vY, vZ, vA, vColor1, vColor2, vType, vBesitzer, vPreis);
    mysql_query(Query);
    mysql_free_result();
    return 1;
    }


    Mein SQL Aufbau


    Die SQLTabelle

    mfg
    Ali ;)

  • Einen Fehler den ich auf Anhieb finde ist hier:
    AddPlayerVehicleToFile(vModel, RandomSpawnVehicleShop[rand][0], RandomSpawnVehicleShop[rand][1], RandomSpawnVehicleShop[rand][2], RandomSpawnVehicleShop[rand][3], vColor1, vColor2, vType, vBesitzer[128], vPreis);
    Du darfst bei vBesitzer keine Zahl hinten Anhängen. Einfach nur vBesitzer.

  • jo der will für die zeile


    vBesitzer = SpielerNameAnzeige(playerid);


    ein array, darum habe ich das eig gemacht


    Error wenn ich den arry bei new weg mache

    Code
    error 006: must be assigned to an array


    wenn ich es nur unten im quarry weg mache

    Code
    error 035: argument type mismatch (argument 9)

    mfg
    Ali ;)

  • Das entfernen im Quarry ist richtig. Nur hast du in deinem anderen Code noch einen Fehler.


    stock AddPlayerVehicleToFile(vModel, Float:vX, Float:vY, Float:vZ, Float:vA, vColor1, vColor2, vType, vBesitzer, vPreis)


    wird zu


    stock AddPlayerVehicleToFile(vModel, Float:vX, Float:vY, Float:vZ, Float:vA, vColor1, vColor2, vType, vBesitzer[], vPreis)


    Wenns nicht so ist denkt der Code dass vBesitzer ein Integer ist, aber es ist ja ein String.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • stimmt, ich währe nicht drauf gekommen jedoch macht er immernoch nicht, muss aber nah dran sein


    aktuell sieht das so aus


    new Float:RandomSpawnVehicleShop[][4] =
    {
    {-1630.91, 1289.79, 6.74587, 134.595},
    {-1630.91, 1289.79, 6.74587, 134.595}
    };


    CMD:abuyvehicle(playerid, params[])
    {
    new rand = random(sizeof(RandomSpawnVehicleShop)), vModel, vColor1, vColor2, vType, vBesitzer[500], vPreis;
    vModel = GetVehicleModel(GetPlayerVehicleID(playerid));
    GetVehicleColor(GetPlayerVehicleID(playerid), vColor1, vColor2);
    vType = 999;
    vBesitzer = SpielerNameAnzeige(playerid);
    vPreis = 100;


    if(Vehicles[GetPlayerVehicleIDEX(playerid)][fvType] == 10)
    {
    AddPlayerVehicleToFile(vModel, RandomSpawnVehicleShop[rand][0], RandomSpawnVehicleShop[rand][1], RandomSpawnVehicleShop[rand][2], RandomSpawnVehicleShop[rand][3], vColor1, vColor2, vType, vBesitzer, vPreis);
    SendClientMessage(playerid, green, "{FF0000}[SERVER] {FFFFFF}Du hast dir das Fahzeug gekauft");
    }
    return 1;
    }


    stock AddPlayerVehicleToFile(vModel, Float:vX, Float:vY, Float:vZ, Float:vA, vColor1, vColor2, vType, vBesitzer[], vPreis)
    {
    new Query[200];
    format(Query, sizeof(Query), "INSERT INTO `Vehicles` (`VehicleModel`, `VehicleX`, `VehicleY`, `VehicleZ`, `VehicleAngle`, `Color1`, `Color2`, `VehicleType`, `Besitzer`, `Price`) VALUES ('%d', '%f', '%f', '%f', '%f', '%d', '%d', '%d', '%s', '%d')",
    vModel, vX, vY, vZ, vA, vColor1, vColor2, vType, vBesitzer, vPreis);
    mysql_query(Query);
    mysql_free_result();
    return 1;
    }

    mfg
    Ali ;)

  • Omg, wie konnte ich das nur übersehen
    Du kannst einen String nicht mit = ändern. (vBesitzer = SpielerNameAnzeige(playerid);)
    Verwende das so:


    format(vBesitzer,500,"%s",SpielerNameAnzeige(playerid));
    Und die Größe würde ich nebenbei gesagt auch niedriger einstellen, hab noch keine Person gesehen die nen Namen mit 500 Buchstaben hatte ;)

  • Jo, die größe habe ich einfach so eingelegt um zu gucken ob da was flasch ist,
    danke für deine hilfe, aber da ist immernoch fas faul... :S


    CMD:abuyvehicle(playerid, params[])
    {
    new rand = random(sizeof(RandomSpawnVehicleShop)), vModel, vColor1, vColor2, vType, vBesitzer[500], vPreis;
    vModel = GetVehicleModel(GetPlayerVehicleID(playerid));
    GetVehicleColor(GetPlayerVehicleID(playerid), vColor1, vColor2);
    vType = 999;
    format(vBesitzer, 500, "%s", SpielerNameAnzeige(playerid));
    vPreis = 100;


    if(Vehicles[GetPlayerVehicleIDEX(playerid)][fvType] == 10)
    {
    AddPlayerVehicleToFile(vModel, RandomSpawnVehicleShop[rand][0], RandomSpawnVehicleShop[rand][1], RandomSpawnVehicleShop[rand][2], RandomSpawnVehicleShop[rand][3], vColor1, vColor2, vType, vBesitzer, vPreis);
    SendClientMessage(playerid, green, "{FF0000}[SERVER] {FFFFFF}Du hast dir das Fahzeug gekauft");
    }
    return 1;
    }

    mfg
    Ali ;)

  • und zu guter schluss, es geht :D
    man man man, lag zuletzt an der querry, jop die nachricht bekomme ich, sonst würde ich hier nicht fragen hehe ^^
    danke an alle.. und besonders an d3adlockz <3 xD


    stock AddPlayerVehicleToFile(vModel, Float:vX, Float:vY, Float:vZ, Float:vA, vColor1, vColor2, vType, vBesitzer[], vPreis)
    {
    new Query[400];
    format(Query, sizeof(Query), "INSERT INTO `Vehicles` (`VehicleModel`, `VehicleX`, `VehicleY`, `VehicleZ`, `VehicleAngle`, `Color1`, `Color2`, `VehicleType`, `Besitzer`, `Price`) VALUES ('%d', '%f', '%f', '%f', '%f', '%d', '%d', '%d', '%s', '%d')",
    vModel, vX, vY, vZ, vA, vColor1, vColor2, vType, vBesitzer, vPreis);
    mysql_query(Query);
    mysql_free_result();
    return 1;
    }

    mfg
    Ali ;)