diff --git a/scripts/server/vehicle.js b/scripts/server/vehicle.js index 19e28737..e540c554 100644 --- a/scripts/server/vehicle.js +++ b/scripts/server/vehicle.js @@ -1421,66 +1421,69 @@ function processVehiclePurchasing() { return false; } - getClients().forEach((client) => { - if(!isPlayerLoggedIn(client)) { - setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); - return false; - } - - if(!isPlayerSpawned(client)) { - setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); - return false; - } - - if(!getPlayerData(client)) { - setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); - return false; - } - - if(!getPlayerData(client).buyingVehicle) { - setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); - return false; - } - - if(!isPlayerInAnyVehicle(client)) { - if(getPlayerData(client).buyingVehicle != false) { - messagePlayerError(client, getLocaleString(client, "DealershipPurchaseExitedVehicle")); - respawnVehicle(getPlayerData(client).buyingVehicle); - getPlayerData(client).buyingVehicle = false; - setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); - } - return false; - } - - if(getDistance(getVehiclePosition(getPlayerData(client).buyingVehicle), getVehicleData(getPlayerData(client).buyingVehicle).spawnPosition) > getGlobalConfig().buyVehicleDriveAwayDistance) { - if(getPlayerCurrentSubAccount(client).cash < getVehicleData(getPlayerData(client).buyingVehicle).buyPrice) { - messagePlayerError(client, getLocaleString(client, "VehiclePurchaseNotEnoughMoney")); - respawnVehicle(getPlayerData(client).buyingVehicle); - getPlayerData(client).buyingVehicle = false; - setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); - return false; - } - - createNewDealershipVehicle(getVehicleData(getPlayerData(client).buyingVehicle).model, getVehicleData(getPlayerData(client).buyingVehicle).spawnPosition, getVehicleData(getPlayerData(client).buyingVehicle).spawnRotation, getVehicleData(getPlayerData(client).buyingVehicle).buyPrice, getVehicleData(getPlayerData(client).buyingVehicle).ownerId); - takePlayerCash(client, getVehicleData(getPlayerData(client).buyingVehicle).buyPrice); - updatePlayerCash(client); - getVehicleData(getPlayerData(client).buyingVehicle).ownerId = getPlayerCurrentSubAccount(client).databaseId; - getVehicleData(getPlayerData(client).buyingVehicle).ownerType = VRR_VEHOWNER_PLAYER; - getVehicleData(getPlayerData(client).buyingVehicle).buyPrice = 0; - getVehicleData(getPlayerData(client).buyingVehicle).rentPrice = 0; - getVehicleData(getPlayerData(client).buyingVehicle).spawnLocked = false; - getPlayerData(client).buyingVehicle = false; - messagePlayerSuccess(client, getLocaleString(client, "VehiclePurchaseComplete")); - setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); - return true; - } - }); return false; } // =========================================================================== +function checkVehicleBuying(client) { + if(!isPlayerLoggedIn(client)) { + setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); + return false; + } + + if(!isPlayerSpawned(client)) { + setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); + return false; + } + + if(!getPlayerData(client)) { + setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); + return false; + } + + if(!getPlayerData(client).buyingVehicle) { + setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); + return false; + } + + if(!isPlayerInAnyVehicle(client)) { + if(getPlayerData(client).buyingVehicle != false) { + messagePlayerError(client, getLocaleString(client, "DealershipPurchaseExitedVehicle")); + respawnVehicle(getPlayerData(client).buyingVehicle); + getPlayerData(client).buyingVehicle = false; + setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); + } + return false; + } + + if(getDistance(getVehiclePosition(getPlayerData(client).buyingVehicle), getVehicleData(getPlayerData(client).buyingVehicle).spawnPosition) > getGlobalConfig().buyVehicleDriveAwayDistance) { + if(getPlayerCurrentSubAccount(client).cash < getVehicleData(getPlayerData(client).buyingVehicle).buyPrice) { + messagePlayerError(client, getLocaleString(client, "VehiclePurchaseNotEnoughMoney")); + respawnVehicle(getPlayerData(client).buyingVehicle); + getPlayerData(client).buyingVehicle = false; + setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); + return false; + } + + createNewDealershipVehicle(getVehicleData(getPlayerData(client).buyingVehicle).model, getVehicleData(getPlayerData(client).buyingVehicle).spawnPosition, getVehicleData(getPlayerData(client).buyingVehicle).spawnRotation, getVehicleData(getPlayerData(client).buyingVehicle).buyPrice, getVehicleData(getPlayerData(client).buyingVehicle).ownerId); + takePlayerCash(client, getVehicleData(getPlayerData(client).buyingVehicle).buyPrice); + updatePlayerCash(client); + getVehicleData(getPlayerData(client).buyingVehicle).ownerId = getPlayerCurrentSubAccount(client).databaseId; + getVehicleData(getPlayerData(client).buyingVehicle).ownerType = VRR_VEHOWNER_PLAYER; + getVehicleData(getPlayerData(client).buyingVehicle).buyPrice = 0; + getVehicleData(getPlayerData(client).buyingVehicle).rentPrice = 0; + getVehicleData(getPlayerData(client).buyingVehicle).spawnLocked = false; + getPlayerData(client).buyingVehicle = false; + messagePlayerSuccess(client, getLocaleString(client, "VehiclePurchaseComplete")); + setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); + return true; + } +} + +// =========================================================================== + function processVehicleBurning() { let vehicles = getElementsByType(ELEMENT_VEHICLE); for(let i in vehicles) {