Add respawnveh cmd for single vehicle respawn
This commit is contained in:
@@ -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),
|
||||||
|
|||||||
@@ -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));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
Reference in New Issue
Block a user