Hey,
habe mal wieder nen Problem mit MySQL.
Hier findet ihr ne Beschreibung des Problems, sowie den Code.
Datenbank:
Hoffe auf Hilfe.
LG
Hey,
habe mal wieder nen Problem mit MySQL.
Hier findet ihr ne Beschreibung des Problems, sowie den Code.
Datenbank:
Hoffe auf Hilfe.
LG
Kann sein das ich das nicht sehe aber mir fehlt die Funktion new id = getFreeVehID();
Ist drinne...^^
Steigst du durch deinen Code durch? Ich tus ohne Kommentare ja nicht Wenn ichs richtig lese legst du ein Array an, in dem alle Spalten deiner Datenbank eingetragen werden. Was macht die Variable vStatus und was ist die vOwnerID?
Bist du sicher, dass alles korrekt im Array gespeichert wird? Gibt sizeof(VehicleData) Zeile 71 im Pastebin Post evtl 3 zurück? Bitte mal überprüfen
vStatus = Kaufstatus (Player, Firma etc)
vOwnerID sagt alles selbst.^^
array schau ich dann mal
Auf Anfrage in PM:
Zu dem Problem mit den drei Autos:
VehicleData[id][vID] = SetVehicleNumberPlate(CreateVehicle(modelid, x, y, z, r, colorid1, colorid2, -1), kennzeichen);
das ist falsch so. (Das Gleiche bei SpawnPlayerVehicles).
So ist es richtig:
VehicleData[id][vID] = CreateVehicle(modelid, x, y, z, r, colorid1, colorid2, -1);
SetVehicleNumberPlate(VehicleData[id][vID], kennzeichen);
Warum? SetVehicleNumberPlate gibt nur 1 oder 0 zurück.
Dann teste es nochmal.
Wenn noch Probleme da sind, dann füge bitte zu deinem Code mehr prints dazu und füre die jeweiligen Schritte aus. Dann postest du den Log hier und beschreibst zu den Log Abschnitten was du jeweils ingame gemacht hast.
Der MySQL Log wäre dazu auch sinnvoll.
Jetzt klappt es, dass die Fahrzeuge spawnen und gelöscht werden. Allerdings nur die, die schon in den Arrays sind, weil sie gespawnt wurden. Die, die vor dem Restart da waren, werden nicht geladen. Also funktioniert OnGameModeInit wohl nicht.
Wenn noch Probleme da sind, dann füge bitte zu deinem Code mehr prints dazu und füre die jeweiligen Schritte aus. Dann postest du den Log hier und beschreibst zu den Log Abschnitten was du jeweils ingame gemacht hast.
Der MySQL Log wäre dazu auch sinnvoll.
^ für OnGameModeInit.
Code dann bitte auch dazu posten, damit wir die prints nachvollziehen können.
Hab den Pastebin Code geupdated.
[19:23:12] [join] ElDiabolo has joined the server (1:127.0.0.1)
[19:23:18] INSERT INTO vehicles (vID, vModel, vOwnerID, vX, vY, vZ, vR, vColor1, vColor2, vKennzeichen) VALUES (0, 400, 1, -1753.508056, 955.691345, 24.742187, 180.000015, 14, 18, 'Swagkarre')
[19:23:23] INSERT INTO vehicles (vID, vModel, vOwnerID, vX, vY, vZ, vR, vColor1, vColor2, vKennzeichen) VALUES (1, 400, 1, -1764.071166, 951.667541, 24.742187, 180.000015, 14, 18, 'Swagkarre')
[19:23:31] ElDiabolo wurde gespeichert
[19:23:31] [Despawn] 0 [1]
[19:23:31] [Despawn] 1 [1]
[19:23:31] [part] ElDiabolo has left the server (1:1)
[19:24:20] Incoming connection: 127.0.0.1:53148
[19:24:20] [join] ElDiabolo has joined the server (1:127.0.0.1)
[19:24:23] [BLAA] 0 - -1753.508056 955.691345 24.742187 - Swagkarre
[19:24:23] [BLAA] 1 - -1764.071166 951.667541 24.742187 - Swagkarre
Alles anzeigen
Wenn man den GameMode ausführt, printet er nur "[19:22:47] [START] Fahrzeuge geladen.".
Wüsste nicht, was ich da printen könnte.
public OnGameModeInit()
{
print("Start");
new vi, vResult[200];
mysql_query("SELECT * FROM `vehicles`;");
mysql_store_result();
print("Stored");
while(mysql_fetch_row_format(vResult))
{
printf("ID: %d", vi);
print(vResult);
sscanf(vResult,"p<|>e<iiiiiffffiiiiiiiiiiiiiiiiiis[50]>",VehicleData[vi]);
++vi;
}
mysql_free_result();
print("[START] Fahrzeuge geladen.");
return 1;
}
Dann poste was im server_log steht.
Mach den MySQL-Debug-Modus auch an.
[19:42:53] Start
[19:42:53] Stored
[19:42:53] ID: 0
[19:42:53] 30|0|400|1|1|-1746.1|947.8|24.9|24.9|0|0|14|18|0|0|0|0|0|0|0|0|0|0|0|0|0|0|Swagkarre
[19:42:53] ID: 1
[19:42:53] 31|1|400|1|1|-1786.6|958.7|24.9|24.9|1|0|14|18|0|0|0|0|0|0|0|0|0|0|0|0|0|0|Swagkarre
[19:42:53] [START] Fahrzeuge geladen.
[19:42:53] CMySQLHandler::Query(SELECT * FROM `vehicles`;) - Successfully executed.
[19:42:53] >> mysql_store_result( Connection handle: 1 )
[19:42:53] CMySQLHandler::StoreResult() - Result was stored.
[19:42:53] >> mysql_fetch_row_format( Connection handle: 1 )
[19:42:53] CMySQLHandler::FetchRow() - Return: 30|0|400|1|1|-1746.1|947.8|24.9|24.9|0|0|14|18|0|0|0|0|0|0|0|0|0|0|0|0|0|0|Swagkarre
[19:42:53] >> mysql_fetch_row_format( Connection handle: 1 )
[19:42:53] CMySQLHandler::FetchRow() - Return: 31|1|400|1|1|-1786.6|958.7|24.9|24.9|1|0|14|18|0|0|0|0|0|0|0|0|0|0|0|0|0|0|Swagkarre
[19:42:53] >> mysql_fetch_row_format( Connection handle: 1 )
[19:42:53] >> mysql_free_result( Connection handle: 1 )
[19:42:53] CMySQLHandler::FreeResult() - Result was successfully free'd.
Alles anzeigen
Koordinaten et cetera sind also richtig. Scheint nur nicht übergeben zu werden?
enum eVehicles{
veID,
vID,
vStatus,
vModel,
vOwnerID,
Float:vX,
Float:vY,
Float:vZ,
Float:vR,
vEngine,
vLights,
vColor1,
vColor2,
vSlot0,
vSlot1,
vSlot2,
vSlot3,
vSlot4,
vSlot5,
vSlot6,
vSlot7,
vSlot8,
vSlot9,
vSlot10,
vSlot11,
vSlot12,
vSlot13,
vKennzeichen[50]
};
zu:
enum eVehicles{
veID,
vID,
vModel, //getauscht
vStatus, //getauscht
vOwnerID,
Float:vX,
Float:vY,
Float:vZ,
Float:vR,
vEngine,
vLights,
vColor1,
vColor2,
vSlot0,
vSlot1,
vSlot2,
vSlot3,
vSlot4,
vSlot5,
vSlot6,
vSlot7,
vSlot8,
vSlot9,
vSlot10,
vSlot11,
vSlot12,
vSlot13,
vKennzeichen[50]
};
Die Reihenfolge sollte gleich sein wie in der Datenbank, wenn du es direkt ins enum speicherst.
Danke dir, war wohl nen Einfügfehler. Klappt nun alles! Danke an alle