Add respawnveh cmd for single vehicle respawn

This commit is contained in:
Vortrex
2022-02-13 19:38:42 -06:00
parent 1780cd1ab6
commit 3514e8d5f5
2 changed files with 93 additions and 58 deletions

View File

@@ -506,6 +506,7 @@ function loadCommands() {
commandData("vehrespawnpublic", respawnPublicVehiclesCommand, "", getStaffFlagValue("ManageVehicles"), true, true), commandData("vehrespawnpublic", respawnPublicVehiclesCommand, "", getStaffFlagValue("ManageVehicles"), true, true),
commandData("vehrespawnbiz", respawnBusinessVehiclesCommand, "", getStaffFlagValue("ManageVehicles"), true, true), commandData("vehrespawnbiz", respawnBusinessVehiclesCommand, "", getStaffFlagValue("ManageVehicles"), true, true),
commandData("vehreloadall", reloadAllVehiclesCommand, "", getStaffFlagValue("ManageVehicles"), true, true), commandData("vehreloadall", reloadAllVehiclesCommand, "", getStaffFlagValue("ManageVehicles"), true, true),
commandData("vehreload", respawnVehicleCommand, "", getStaffFlagValue("ManageVehicles"), true, true),
commandData("vehrent", rentVehicleCommand, "", getStaffFlagValue("None"), true, true), commandData("vehrent", rentVehicleCommand, "", getStaffFlagValue("None"), true, true),
commandData("vehrentprice", setVehicleRentPriceCommand, "", getStaffFlagValue("None"), true, true), commandData("vehrentprice", setVehicleRentPriceCommand, "", getStaffFlagValue("None"), true, true),

View File

@@ -1076,6 +1076,20 @@ function reloadAllVehiclesCommand(command, params, client) {
getVehicleData(vehicle).needsSaved = true; getVehicleData(vehicle).needsSaved = true;
} }
// ===========================================================================
function respawnVehicleCommand(command, params, client) {
if(isPlayerInAnyVehicle(client)) {
removeAllOccupantsFromVehicle(getPlayerVehicle(client));
respawnVehicle(getPlayerVehicle(client));
}
setAllVehicleIndexes();
messagePlayerSuccess(client, `Your vehicle has been respawned`);
}
// =========================================================================== // ===========================================================================
function respawnAllVehiclesCommand(command, params, client) { function respawnAllVehiclesCommand(command, params, client) {
@@ -1396,69 +1410,77 @@ function createPermanentVehicle(modelIndex, position, heading, interior = 0, dim
// =========================================================================== // ===========================================================================
function checkVehicleBuying(client) { function processVehiclePurchasing() {
if(!isPlayerLoggedIn(client)) { if(!getGlobalConfig().useServerSideVehiclePurchaseCheck) {
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); return false;
return false; }
}
if(!isPlayerSpawned(client)) { getClients().forEach((client) => {
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); if(!isPlayerLoggedIn(client)) {
return false; setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
} return false;
}
if(!getPlayerData(client)) { if(!isPlayerSpawned(client)) {
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
return false; return false;
} }
if(!getPlayerData(client).buyingVehicle) { if(!getPlayerData(client)) {
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
return false; return false;
} }
if(!isPlayerInAnyVehicle(client)) { if(!getPlayerData(client).buyingVehicle) {
if(getPlayerData(client).buyingVehicle != false) { setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
messagePlayerError(client, getLocaleString(client, "DealershipPurchaseExitedVehicle")); return false;
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(!isPlayerInAnyVehicle(client)) {
if(getPlayerCurrentSubAccount(client).cash < getVehicleData(getPlayerData(client).buyingVehicle).buyPrice) { if(getPlayerData(client).buyingVehicle != false) {
messagePlayerError(client, getLocaleString(client, "VehiclePurchaseNotEnoughMoney")); messagePlayerError(client, getLocaleString(client, "DealershipPurchaseExitedVehicle"));
respawnVehicle(getPlayerData(client).buyingVehicle); respawnVehicle(getPlayerData(client).buyingVehicle);
getPlayerData(client).buyingVehicle = false; getPlayerData(client).buyingVehicle = false;
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
return false; }
} 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); if(getDistance(getVehiclePosition(getPlayerData(client).buyingVehicle), getVehicleData(getPlayerData(client).buyingVehicle).spawnPosition) > getGlobalConfig().buyVehicleDriveAwayDistance) {
takePlayerCash(client, getVehicleData(getPlayerData(client).buyingVehicle).buyPrice); if(getPlayerCurrentSubAccount(client).cash < getVehicleData(getPlayerData(client).buyingVehicle).buyPrice) {
updatePlayerCash(client); messagePlayerError(client, getLocaleString(client, "VehiclePurchaseNotEnoughMoney"));
getVehicleData(getPlayerData(client).buyingVehicle).ownerId = getPlayerCurrentSubAccount(client).databaseId; respawnVehicle(getPlayerData(client).buyingVehicle);
getVehicleData(getPlayerData(client).buyingVehicle).ownerType = VRR_VEHOWNER_PLAYER; getPlayerData(client).buyingVehicle = false;
getVehicleData(getPlayerData(client).buyingVehicle).buyPrice = 0; setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
getVehicleData(getPlayerData(client).buyingVehicle).rentPrice = 0; return false;
getVehicleData(getPlayerData(client).buyingVehicle).spawnLocked = false; }
getPlayerData(client).buyingVehicle = false;
messagePlayerSuccess(client, getLocaleString(client, "VehiclePurchaseComplete")); 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);
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null); takePlayerCash(client, getVehicleData(getPlayerData(client).buyingVehicle).buyPrice);
return true; 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; return false;
} }
// =========================================================================== // ===========================================================================
function checkVehicleBurning() { function processVehicleBurning() {
let vehicles = getElementsByType(ELEMENT_VEHICLE); let vehicles = getElementsByType(ELEMENT_VEHICLE);
for(let i in vehicles) { for(let i in vehicles) {
if(vehicles[i].health <= 250) {
return false;
}
} }
} }
@@ -1496,17 +1518,19 @@ function setAllVehicleIndexes() {
// =========================================================================== // ===========================================================================
function doesVehicleHaveMegaphone(vehicle) { function doesVehicleHaveMegaphone(vehicle) {
if(getJobType(getJobIdFromDatabaseId(getVehicleData(vehicle).job)) == VRR_JOB_POLICE) { if(getVehicleData(vehicle).ownerType == VRR_VEHOWNER_JOB) {
return true; if(getJobType(getJobIdFromDatabaseId(getVehicleData(vehicle).ownerId)) == VRR_JOB_POLICE) {
} return true;
}
if(getJobType(getJobIdFromDatabaseId(getVehicleData(vehicle).job)) == VRR_JOB_FIRE) { if(getJobType(getJobIdFromDatabaseId(getVehicleData(vehicle).ownerId)) == VRR_JOB_FIRE) {
return true; return true;
} }
if(getJobType(getJobIdFromDatabaseId(getVehicleData(vehicle).job)) == VRR_JOB_MEDICAL) { if(getJobType(getJobIdFromDatabaseId(getVehicleData(vehicle).ownerId)) == VRR_JOB_MEDICAL) {
return true; return true;
} }
}
return false; return false;
} }
@@ -1548,4 +1572,14 @@ function getVehicleTrunkPosition(vehicle) {
return getPosBehindPos(getVehiclePosition(vehicle), getVehicleHeading(vehicle), getGlobalConfig().vehicleTrunkRearDistance); return getPosBehindPos(getVehiclePosition(vehicle), getVehicleHeading(vehicle), getGlobalConfig().vehicleTrunkRearDistance);
} }
// ===========================================================================
function removeAllOccupantsFromVehicle(vehicle) {
for(let i = 0 ; i <= 16 ; i++) {
if(vehicle.getOccupant(i) != null) {
removePlayerFromVehicle(vehicle.getOccupant(i));
}
}
}
// =========================================================================== // ===========================================================================