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