Hallo Leute,
ich habe derzeit das Problem, dass meine Fahrzeuge scheinbar nicht mit den richtigen Infos gespawnt/bestückt werden.
Ich lasse die Fahrzeuge der einzellnen Fraktionen über solch einen Stock laden/erstellen:
stock LoadFrakCars1()
{
new Query[128], v, fcarload1;
mysql_query("SELECT * FROM `frak1_cars`"); mysql_store_result(); while(mysql_fetch_row_format(Query))
{ sscanf(Query, "p<|>e<{i}iiffffii>", FrakCarInfo[v]); SetVehicleNumberPlate(CreateVehicle(FrakCarInfo[v][fcModel], FrakCarInfo[v][fcPosX], FrakCarInfo[v][fcPosY], FrakCarInfo[v][fcPosZ], FrakCarInfo[v][fcPosA], FrakCarInfo[v][fcCol1], FrakCarInfo[v][fcCol2], -1),"LSPD"); v++; fcarload1 = 1; }
if(fcarload1 != 0) { print("<-| [MYSQL] - [FRAKTION_1] | Alle Fahrzeuge wurden erfolgreich geladen!"); } else { print("<-| [ERROR] - [FRAKTION_1] | Die Fahrzeuge konnten nicht geladen werden!"); }
mysql_free_result();
return 1;
}
Den Stock starte ich unter OnGameModeInit und lasse die Fahrzeuge direkt nachdem der Stock fertig ist respawnen.
public OnGameModeInit()
{
LoadFrakCars1();
new v = 0; for(;v < MAX_VEHICLES; v++) { SetVehicleToRespawn(v); }
return 1;
}
Respawnen lasse ich die Fahrzeuge Aufgrund dessen, damit die (jeweils 4) Sultäne des LSPD und der Army Sirenen haben.
- Derzeit lasse ich nur die Fraktionsfahrzeuge des LSPD's laden/erstellen.
Siehe da:
public OnVehicleSpawn(vehicleid)
{
if(FrakCarInfo[vehicleid][fcModel] == 560 && FrakCarInfo[vehicleid][fcVehFrak] == 3 || FrakCarInfo[vehicleid][fcModel] == 560 && FrakCarInfo[vehicleid][fcVehFrak] == 1)
{
DestroyObject(sirene1[vehicleid]);
sirene1[vehicleid] = CreateObject(19420,0,0,0,0,0,0,100);
AttachObjectToVehicle(sirene1[vehicleid],vehicleid,0,0.0,0.8,0,0,0);
printf("Sirene an Fahrzeug [%i] montiert!", vehicleid);
}
return 1;
]
Dem Anschein nach hat alles Funktioniert, printf gibt folgendes aus:
[14:51:34] Sirene an Fahrzeug [21] montiert!
[14:51:34] Sirene an Fahrzeug [22] montiert!
[14:51:34] Sirene an Fahrzeug [23] montiert!
[14:51:34] Sirene an Fahrzeug [24] montiert!
Wenn ich nun InGame gehe und die Sultäne betrachte, fehlt bei einen der Sultäne die Sirene.
Die Sirene die eigentlich am Sultan seien sollte, ist an einem Wasserwerfer attached.
Um zu überprüfen, das dabei schief gelaufen ist, habe ich mir kurz folgenden Befehl gemacht:
if (strcmp("/test", cmdtext, true, 10) == 0) //TEST
{
if(!IsPlayerInAnyVehicle(playerid)) return 1;
{
new string[128], v = GetPlayerVehicleID(playerid);
format(string, sizeof(string), "Fahrzeug VehicleID: %i| Fraktion: %i | Model: %i",v,FrakCarInfo[v][fcVehFrak],FrakCarInfo[v][fcModel]);
SendClientMessage(playerid,ROT,string);
}
return 1;
}
Wenn ich nun in den Sultan steige, an dem die Sirene fehlt und '/test' eingebe, erscheint folgende Nachricht:
Und wenn ich in den Wasserwerfer einsteige und '/test' eingebe, erscheint komischerweise folgende Nachricht:
Demnach müsste der Sultan eigentlich garnicht da sein und der Wasserwerfer müsste ein Sultan sein. - Was aber nicht so ist!
Nun weiß ich nicht weiter, vielleicht könntet ihr mir bitte weiter helfen.
- Ich bedanke mich schonmal für die Hilfe!
Gruß
AlphaGen!