Fix duplicate vehicle spawning

This commit is contained in:
Vortrex
2023-02-22 05:27:03 -06:00
parent ac397a9011
commit 44cbdc07ac

View File

@@ -156,14 +156,6 @@ class VehicleData {
this.licensePlate = toInteger(dbAssoc["veh_license_plate"]); this.licensePlate = toInteger(dbAssoc["veh_license_plate"]);
} }
} }
saveToDatabase() {
saveVehicleToDatabase(this);
}
respawn() {
respawnVehicle(this.vehicle);
}
}; };
// =========================================================================== // ===========================================================================
@@ -186,7 +178,7 @@ function loadVehiclesFromDatabase() {
dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString); dbAssoc = fetchQueryAssoc(dbConnection, dbQueryString);
if (dbAssoc.length > 0) { if (dbAssoc.length > 0) {
for (let i in dbAssoc) { for (let i in dbAssoc) {
let tempVehicleData = new VehicleData(dbAssoc[i]); let tempVehicleData = new VehicleData(dbAssoc[i], false);
tempVehicles.push(tempVehicleData); tempVehicles.push(tempVehicleData);
} }
} }
@@ -322,9 +314,11 @@ function saveVehicleToDatabase(vehicleDataId) {
function spawnAllVehicles() { function spawnAllVehicles() {
for (let i in getServerData().vehicles) { for (let i in getServerData().vehicles) {
let vehicle = spawnVehicle(getServerData().vehicles[i]); if (getServerData().vehicles[i].vehicle == false) {
getServerData().vehicles[i].vehicle = vehicle; let vehicle = spawnVehicle(getServerData().vehicles[i]);
setEntityData(vehicle, "v.rp.dataSlot", i, false); getServerData().vehicles[i].vehicle = vehicle;
setEntityData(vehicle, "v.rp.dataSlot", i, false);
}
} }
setAllVehicleIndexes(); setAllVehicleIndexes();
} }
@@ -1464,22 +1458,21 @@ function stopRentingVehicle(client) {
// =========================================================================== // ===========================================================================
function respawnVehicle(vehicle) { function respawnVehicle(vehicle) {
let vehicles = getServerData().vehicles; for (let i in getServerData().vehicles) {
for (let i in vehicles) { if (vehicle == getServerData().vehicles[i].vehicle) {
if (vehicle == vehicles[i].vehicle) { if (getServerData().vehicles[i].spawnLocked == true) {
if (vehicles[i].spawnLocked == true) { getServerData().vehicles[i].engine = false;
vehicles[i].engine = false;
} }
if (vehicles[i].ownerType == V_VEHOWNER_JOB) { if (getServerData().vehicles[i].ownerType == V_VEHOWNER_JOB) {
vehicles[i].locked = true; getServerData().vehicles[i].locked = true;
} }
destroyElement(vehicle); destroyElement(vehicle);
vehicles[i].vehicle = false; getServerData().vehicles[i].vehicle = false;
let newVehicle = spawnVehicle(vehicles[i]); let newVehicle = spawnVehicle(getServerData().vehicles[i]);
vehicles[i].vehicle = newVehicle; getServerData().vehicles[i].vehicle = newVehicle;
setEntityData(newVehicle, "v.rp.dataSlot", i, false); setEntityData(newVehicle, "v.rp.dataSlot", i, false);
} }
} }
@@ -1868,7 +1861,7 @@ function removeAllOccupantsFromVehicle(vehicle) {
let clients = getClients(); let clients = getClients();
for (let i in clients) { for (let i in clients) {
if (clients[i].player != null) { if (clients[i].player != null) {
if (clients[i].player.vehicle != null) { if (clients[i].player.vehicle != false) {
if (clients[i].player.vehicle == vehicle) { if (clients[i].player.vehicle == vehicle) {
removePlayerFromVehicle(clients[i]); removePlayerFromVehicle(clients[i]);
} }
@@ -1920,8 +1913,10 @@ function isPlayerInVehicleDriverSeat(client) {
function despawnAllVehicles() { function despawnAllVehicles() {
for (let i in getServerData().vehicles) { for (let i in getServerData().vehicles) {
destroyGameElement(getServerData().vehicles[i].vehicle); if (getServerData().vehicles[i].vehicle != false) {
getServerData().vehicles[i].vehicle = null; destroyGameElement(getServerData().vehicles[i].vehicle);
getServerData().vehicles[i].vehicle = false;
}
} }
} }