Problem mit Fraktionsfahrzeugen ["/fpark"]

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
  • Guten Tag Com,
    ich sitze zur Zeit an einem Fraktionsfahrzeugsystem.


    Nun habe ich einen "/fveh" geschrieben, um die Fraktions-Fahrzeuge InGame zu erstellen und dies Funktioniert einwandfrei, aber wenn ich mein Fahrzeug mit "/fpark" parken will, werden zwar die Daten in der Datenbank gesetzt, aber sobald ich "/respawncars" (um alle Fahrzeug zu respawnen) oder "/gmx" (um den Server neuzustarten) eingebe wird das Fahrzeug wieder mit der Angle gesetzt, wie ich dieses mit "/fveh" erstellt habe.


    Hier einmal meine #defines, mein enum und mein "/fpark" + "/respawncars"




    #define MAX_FRAK_VEHICLES 500
    new spawncar_frak[MAX_FRAK_VEHICLES];
    new spawncar_rank[MAX_FRAK_VEHICLES];


    enum FrakVehDaten
    {
    vID,
    vCarID,
    vModel,
    Float:v_X,
    Float:v_Y,
    Float:v_Z,
    Float:v_A,
    vC1,
    vC2,
    vFrak,
    vRank,
    vPlate
    }
    new FrakVehicle[MAX_FRAK_VEHICLES][FrakVehDaten];


    //Fraktionsfahrzeug parken
    CMD:fpark(playerid,params[])
    {
    if(GetPVarInt(playerid,"Eingeloggt") != 1)return SendClientMessage(playerid,Grau,"Info: Du musst eingeloggt sein, um diesen Befehl zu nutzen.");
    if(GetPVarInt(playerid,"Mute") == 1) return SendClientMessage(playerid,Grau,"Info: Du bist gemutet!");
    if(SpielerInfo[playerid][pLeader]==0) return SendClientMessage(playerid,Grau,"Info: Du bist dazu nicht befugt! Verwende: /hilfe.");
    new query[200], Float:X, Float:Y, Float:Z, Float:A,idx=GetPlayerVehicleID(playerid);
    if(spawncar_frak[idx]==SpielerInfo[playerid][pLeader])
    {
    GetVehiclePos(idx,X,Y,Z);
    GetVehicleZAngle(idx,A);
    FrakVehicle[idx][v_X] = X;
    FrakVehicle[idx][v_Y] = Y;
    FrakVehicle[idx][v_Z] = Z;
    FrakVehicle[idx][v_A] = A;
    RemovePlayerFromVehicle(playerid);
    SetVehiclePos(idx,X,Y,Z);
    SetVehicleZAngle(idx,A);
    SendClientMessage(playerid, Grau, "Hinweis: Fraktionsfahrzeug erfolgreich geparkt!");


    format(query, 128, "UPDATE `FrakVehicles` SET `posx` = '%.3f' WHERE `id` = '%i'", X, FrakVehicle[idx][vID]);
    format(query, 128, "UPDATE `FrakVehicles` SET `posy` = '%.3f' WHERE `id` = '%i'", Y, FrakVehicle[idx][vID]);
    format(query, 128, "UPDATE `FrakVehicles` SET `posz` = '%.3f' WHERE `id` = '%i'", Z, FrakVehicle[idx][vID]);
    format(query, 128, "UPDATE `FrakVehicles` SET `posa` = '%.3f' WHERE `id` = '%i'", A, FrakVehicle[idx][vID]);
    mysql_query(query);



    }else{SendClientMessage(playerid,Grau,"Hinweis: Dieses Fahrzeug gehört nicht zu deiner Fraktion!");}


    return 1;
    }


    //Load + CreateFrakVeh
    stock LoadFrakCars()
    {
    new idx=0;
    mysql_query( "SELECT * FROM FrakVehicles");
    mysql_store_result();
    while(mysql_retrieve_row())//lauf durch alle zeilen durch
    {
    new tmp[128];
    mysql_fetch_field_row(tmp, "model");
    FrakVehicle[idx][vModel] = strval(tmp);
    if(FrakVehicle[idx][vModel] < 400) {
    continue; // break wäre auch möglich, jedoch könnte es sein, dass in der Datenbank die ID's auch Lücken haben
    }
    mysql_fetch_field_row(tmp, "id");
    FrakVehicle[idx][vID] = strval(tmp);
    mysql_fetch_field_row(tmp, "posx");
    FrakVehicle[idx][v_X] = floatstr(tmp);
    mysql_fetch_field_row(tmp, "posy");
    FrakVehicle[idx][v_Y] = floatstr(tmp);
    mysql_fetch_field_row(tmp, "posz");
    FrakVehicle[idx][v_Z] = floatstr(tmp);
    mysql_fetch_field_row(tmp, "posa");
    FrakVehicle[idx][v_A] = floatstr(tmp);
    mysql_fetch_field_row(tmp, "plate");
    strmid(FrakVehicle[idx][vPlate], tmp, 0, strlen(tmp), 255);
    mysql_fetch_field_row(tmp, "color1");
    FrakVehicle[idx][vC1] = strval(tmp);
    mysql_fetch_field_row(tmp, "color2");
    FrakVehicle[idx][vC2] = strval(tmp);
    mysql_fetch_field_row(tmp, "frak");
    FrakVehicle[idx][vFrak] = strval(tmp);
    mysql_fetch_field_row(tmp, "rank");
    FrakVehicle[idx][vRank] = strval(tmp);


    CreateFrakVehicle(
    FrakVehicle[idx][vModel],
    FrakVehicle[idx][v_X],
    FrakVehicle[idx][v_Y],
    FrakVehicle[idx][v_Z],
    FrakVehicle[idx][v_A],
    FrakVehicle[idx][vC1],
    FrakVehicle[idx][vC2],
    FrakVehicle[idx][vFrak],
    FrakVehicle[idx][vRank],
    FrakVehicle[idx][vPlate]);
    idx++;
    }
    mysql_free_result();
    printf("* Es wurden %i Fraktions-Fahrzeuge geladen. *", idx);
    }
    forward CreateFrakVehicle(modelid, Float:X, Float:Y, Float:Z, Float:R, color1, color2,frakid,rank,plate);
    public CreateFrakVehicle(modelid, Float:X, Float:Y, Float:Z, Float:R, color1, color2,frakid,rank,plate)
    {
    new v = CreateVehicle(modelid,Float:X,Float:Y,Float:Z,Float:R,color1,color2,-1);
    spawncar_frak[v] = frakid;
    spawncar_rank[v] = rank;
    SetVehicleNumberPlate(v,FrakVehicle[v][vPlate]);
    }


    Bitte um Hilfe, habe schon viel versucht...
    Vielen Dank im Voraus für eure Antworten!


    Mit freundlichen Grüßen
    AndyWalker

  • Danke für den Tipp Beavis
    Also so müsste ich dann doch alle 4 Werte speichern oder?
    format(query, 128, "UPDATE `FrakVehicles` SET `posx` = '%.3f', `posy` = '%.3f', `posz` = '%.3f', `posa` = '%.3f' WHERE `id` = '%i'", X,Y,Z,A, FrakVehicle[idx][vID]);
    mysql_query(query);