From 7b9ae0eacb5c8e10cd1477eac9b34a90d1ecdd09 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Mon, 28 Mar 2022 19:46:58 -0500 Subject: [PATCH] Fix vehicle buying --- scripts/server/vehicle.js | 111 +++++++++++++++++++------------------- 1 file changed, 57 insertions(+), 54 deletions(-) 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) {