From 930c66a439a590bd3e7395f318f539ccc4db5d50 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Thu, 30 Dec 2021 16:03:07 -0600 Subject: [PATCH 001/609] Reverted 1.4.0 stuff This reverts commit 7a5167743bc5ff520688adf0d9093cb007fb9dc6. Revert "Use new stream distance stuff" This reverts commit bdda7caf4c9b73521a2f8ae9b9ecf3783b8c8cca. Revert "Add blip/pickup distance to global cfg" This reverts commit 5a916c4a9853c1cbeb75be368050c01d5f5da253. Revert "Add utils for new element streaming funcs" This reverts commit 22d39ceb69e806ba9e819285d016f6a8aa9076d9. --- scripts/server/business.js | 19 ++++++++------ scripts/server/config.js | 7 ------ scripts/server/event.js | 3 +++ scripts/server/house.js | 11 ++------ scripts/server/native/connected.js | 40 ------------------------------ 5 files changed, 16 insertions(+), 64 deletions(-) diff --git a/scripts/server/business.js b/scripts/server/business.js index 5c23034b..e4e1fef6 100644 --- a/scripts/server/business.js +++ b/scripts/server/business.js @@ -1324,8 +1324,6 @@ function createBusinessEntrancePickup(businessId) { getBusinessData(businessId).entrancePickup = createGamePickup(pickupModelId, getBusinessData(businessId).entrancePosition, getGameConfig().pickupTypes[getServerGame()].business); setElementOnAllDimensions(getBusinessData(businessId).entrancePickup, false); setElementDimension(getBusinessData(businessId).entrancePickup, getBusinessData(businessId).entranceDimension); - setElementStreamInDistance(getBusinessData(businessId).entrancePickup, getGlobalConfig().businessPickupStreamInDistance); - setElementStreamOutDistance(getBusinessData(businessId).entrancePickup, getGlobalConfig().businessPickupStreamOutDistance); updateBusinessPickupLabelData(businessId); addToWorld(getBusinessData(businessId).entrancePickup); } @@ -1348,8 +1346,11 @@ function createBusinessEntranceBlip(businessId) { getBusinessData(businessId).entranceBlip = createGameBlip(getBusinessData(businessId).entrancePosition, blipModelId, 1, getColourByName("businessBlue")); setElementOnAllDimensions(getBusinessData(businessId).entranceBlip, false); setElementDimension(getBusinessData(businessId).entranceBlip, getBusinessData(businessId).entranceDimension); - setElementStreamInDistance(getBusinessData(businessId).entranceBlip, getGlobalConfig().businessBlipStreamInDistance); - setElementStreamOutDistance(getBusinessData(businessId).entranceBlip, getGlobalConfig().businessBlipStreamOutDistance); + //getBusinessData(businessId).entranceBlip.streamInDistance = 300; + //getBusinessData(businessId).entranceBlip.streamOutDistance = 350; + //getBusinessData(businessId).entranceBlip.interior = getBusinessData(businessId).entranceInterior; + //setEntityData(getBusinessData(businessId).entranceBlip, "vrr.owner.type", VRR_BLIP_BUSINESS_ENTRANCE, false); + //setEntityData(getBusinessData(businessId).entranceBlip, "vrr.owner.id", businessId, false); addToWorld(getBusinessData(businessId).entranceBlip); } } @@ -1372,8 +1373,9 @@ function createBusinessExitPickup(businessId) { getBusinessData(businessId).exitPickup = createGamePickup(pickupModelId, getBusinessData(businessId).exitPosition, getGameConfig().pickupTypes[getServerGame()].business); setElementDimension(getBusinessData(businessId).exitPickup, getBusinessData(businessId).exitDimension); setElementOnAllDimensions(getBusinessData(businessId).exitPickup, false); - setElementStreamInDistance(getBusinessData(businessId).exitPickup, getGlobalConfig().businessPickupStreamInDistance); - setElementStreamOutDistance(getBusinessData(businessId).exitPickup, getGlobalConfig().businessPickupStreamOutDistance); + //setEntityData(getBusinessData(businessId).entranceBlip, "vrr.owner.type", VRR_PICKUP_BUSINESS_EXIT, false); + //setEntityData(getBusinessData(businessId).entranceBlip, "vrr.owner.id", businessId, false); + //getBusinessData(businessId).exitPickup.interior = getBusinessData(businessId).exitInterior; updateBusinessPickupLabelData(businessId); addToWorld(getBusinessData(businessId).exitPickup); } @@ -1398,8 +1400,9 @@ function createBusinessExitBlip(businessId) { getBusinessData(businessId).exitBlip = createGameBlip(getBusinessData(businessId).exitPosition, blipModelId, 1, getColourByName("businessBlue")); setElementDimension(getBusinessData(businessId).exitBlip, getBusinessData(businessId).entranceDimension); setElementOnAllDimensions(getBusinessData(businessId).exitBlip, false); - setElementStreamInDistance(getBusinessData(businessId).exitBlip, getGlobalConfig().businessBlipStreamInDistance); - setElementStreamOutDistance(getBusinessData(businessId).exitBlip, getGlobalConfig().businessBlipStreamOutDistance); + //getBusinessData(businessId).exitBlip.interior = getBusinessData(businessId).exitInterior; + //setEntityData(getBusinessData(businessId).exitBlip, "vrr.owner.type", VRR_BLIP_BUSINESS_EXIT, false); + //setEntityData(getBusinessData(businessId).exitBlip, "vrr.owner.id", businessId, false); addToWorld(getBusinessData(businessId).exitBlip); } } diff --git a/scripts/server/config.js b/scripts/server/config.js index 65474917..78cd89a2 100644 --- a/scripts/server/config.js +++ b/scripts/server/config.js @@ -80,13 +80,6 @@ let globalConfig = { VRR_ITEM_USETYPE_VEHTIRE, ], vehicleInactiveRespawnDelay: 1800000, // 20 minutes - housePickupStreamInDistance: 50, - housePickupStreamOutDistance: 75, - businessPickupStreamInDistance: 50, - businessPickupStreamOutDistance: 75, - jobPickupStreamInDistance: 50, - jobPickupStreamOutDistance: 75, - vehicleTrunkRearDistance: 3, }; // =========================================================================== diff --git a/scripts/server/event.js b/scripts/server/event.js index ca3008e4..9aee4443 100644 --- a/scripts/server/event.js +++ b/scripts/server/event.js @@ -95,6 +95,9 @@ function onPlayerQuit(event, client, quitReasonId) { } messageDiscordEventChannel(`๐Ÿ‘‹ ${getPlayerDisplayForConsole(client)} has left the server.`); + + clearTemporaryVehicles(); + clearTemporaryPeds(); } // =========================================================================== diff --git a/scripts/server/house.js b/scripts/server/house.js index 8ac3b0ff..0031955e 100644 --- a/scripts/server/house.js +++ b/scripts/server/house.js @@ -861,9 +861,6 @@ function createHouseEntrancePickup(houseId) { getHouseData(houseId).entrancePickup = createGamePickup(pickupModelId, getHouseData(houseId).entrancePosition, getGameConfig().pickupTypes[getServerGame()].house); setElementOnAllDimensions(getHouseData(houseId).entrancePickup, false); setElementDimension(getHouseData(houseId).entrancePickup, getHouseData(houseId).entranceDimension); - setElementStreamInDistance(getBusinessData(businessId).entrancePickup, getGlobalConfig().housePickupStreamInDistance); - setElementStreamOutDistance(getBusinessData(businessId).entrancePickup, getGlobalConfig().housePickupStreamOutDistance); - setEntityData(getHouseData(houseId).entrancePickup, "vrr.owner.type", VRR_PICKUP_HOUSE_ENTRANCE, false); setEntityData(getHouseData(houseId).entrancePickup, "vrr.owner.id", houseId, false); setEntityData(getHouseData(houseId).entrancePickup, "vrr.label.type", VRR_LABEL_HOUSE, true); @@ -900,8 +897,8 @@ function createHouseEntranceBlip(houseId) { getHouseData(houseId).entranceBlip = createGameBlip(getHouseData(houseId).entrancePosition, blipModelId, 1, getColourByName("houseGreen")); setElementDimension(getHouseData(houseId).entranceBlip, getHouseData(houseId).entranceDimension); setElementOnAllDimensions(getHouseData(houseId).entranceBlip, false); - setElementStreamInDistance(getBusinessData(businessId).entranceBlip, getGlobalConfig().houseBlipStreamInDistance); - setElementStreamOutDistance(getBusinessData(businessId).entranceBlip, getGlobalConfig().houseBlipStreamOutDistance); + //getHouseData(houseId).entranceBlip.streamInDistance = 300; + //getHouseData(houseId).entranceBlip.streamOutDistance = 350; setEntityData(getHouseData(houseId).entranceBlip, "vrr.owner.type", VRR_BLIP_HOUSE_ENTRANCE, false); setEntityData(getHouseData(houseId).entranceBlip, "vrr.owner.id", houseId, false); addToWorld(getHouseData(houseId).entranceBlip); @@ -926,8 +923,6 @@ function createHouseExitPickup(houseId) { getHouseData(houseId).exitPickup = createGamePickup(pickupModelId, getHouseData(houseId).exitPosition, getGameConfig().pickupTypes[getServerGame()].house); setElementDimension(getHouseData(houseId).exitPickup, getHouseData(houseId).exitDimension); setElementOnAllDimensions(getHouseData(houseId).exitPickup, false); - setElementStreamInDistance(getBusinessData(businessId).exitPickup, getGlobalConfig().housePickupStreamInDistance); - setElementStreamOutDistance(getBusinessData(businessId).exitPickup, getGlobalConfig().housePickupStreamOutDistance); setEntityData(getHouseData(houseId).exitPickup, "vrr.owner.type", VRR_PICKUP_HOUSE_EXIT, false); setEntityData(getHouseData(houseId).exitPickup, "vrr.owner.id", houseId, false); setEntityData(getHouseData(houseId).exitPickup, "vrr.label.type", VRR_LABEL_EXIT, true); @@ -954,8 +949,6 @@ function createHouseExitBlip(houseId) { getHouseData(houseId).exitBlip = createGameBlip(blipModelId, getHouseData(houseId).exitPosition, 1, getColourByName("houseGreen")); setElementDimension(getHouseData(houseId).exitBlip, getHouseData(houseId).entranceDimension); setElementOnAllDimensions(getHouseData(houseId).exitBlip, false); - setElementStreamInDistance(getBusinessData(businessId).exitBlip, getGlobalConfig().houseBlipStreamInDistance); - setElementStreamOutDistance(getBusinessData(businessId).exitBlip, getGlobalConfig().houseBlipStreamOutDistance); setEntityData(getHouseData(houseId).exitBlip, "vrr.owner.type", VRR_BLIP_HOUSE_EXIT, false); setEntityData(getHouseData(houseId).exitBlip, "vrr.owner.id", houseId, false); addToWorld(getHouseData(houseId).exitBlip); diff --git a/scripts/server/native/connected.js b/scripts/server/native/connected.js index 7dd3118c..4f88d10e 100644 --- a/scripts/server/native/connected.js +++ b/scripts/server/native/connected.js @@ -424,46 +424,6 @@ function setElementOnAllDimensions(element, state) { // =========================================================================== -function setElementDefaultExistance(element, state) { - if(!isNull(element) && element != false) { - element.defaultExistance = state; - } -} - -// =========================================================================== - -function setElementExistsFor(element, client, state) { - if(!isNull(element) && element != false) { - element.setExistsFor(client, state); - } -} - -// =========================================================================== - -function clearElementExistsFor(element) { - if(!isNull(element) && element != false) { - element.clearExistsFor(); - } -} - -// =========================================================================== - -function setElementStreamInDistance(element, distance) { - if(!isNull(element) && element != false) { - element.streamInDistance = distance; - } -} - -// =========================================================================== - -function setElementStreamOutDistance(element, distance) { - if(!isNull(element) && element != false) { - element.streamOutDistance = distance; - } -} - -// =========================================================================== - function destroyGameElement(element) { if(!isNull(element) && element != false) { destroyElement(element); From c1322f2bab2c75acb334be42139ff9a7dca7b0c4 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Sat, 1 Jan 2022 13:25:41 -0600 Subject: [PATCH 002/609] Use native for HUD on IV --- scripts/client/server.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/client/server.js b/scripts/client/server.js index aa46f493..2ac8df8b 100644 --- a/scripts/client/server.js +++ b/scripts/client/server.js @@ -123,7 +123,11 @@ function setPlayer2DRendering(hudState, labelState, smallGameMessageState, score renderHUD = hudState; if(typeof setHUDEnabled != "undefined") { - setHUDEnabled(hudState); + if(getGame() == VRR_GAME_GTA_IV) { + natives.displayHud(false); + } else { + setHUDEnabled(hudState); + } } renderLabels = labelState; From 386b6f395233e7ce25ea27770b7957f3b5e8cf16 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Sat, 1 Jan 2022 13:26:17 -0600 Subject: [PATCH 003/609] Disable loading job route from db until ready --- scripts/server/job.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/server/job.js b/scripts/server/job.js index 6f5749b0..4f3db3cd 100644 --- a/scripts/server/job.js +++ b/scripts/server/job.js @@ -39,7 +39,7 @@ function loadJobsFromDatabase() { tempJobData.locations = loadJobLocationsFromDatabase(tempJobData.databaseId); tempJobData.equipment = loadJobEquipmentsFromDatabase(tempJobData.databaseId); tempJobData.uniforms = loadJobUniformsFromDatabase(tempJobData.databaseId); - tempJobData.routes = loadJobRoutesFromDatabase(tempJobData.databaseId); + //tempJobData.routes = loadJobRoutesFromDatabase(tempJobData.databaseId); tempJobs.push(tempJobData); logToConsole(LOG_DEBUG, `[VRR.Job]: Job '${tempJobData.name}' loaded from database successfully!`); } From 8bad9eb5a6fdd3f37d97ac0c2db3e4d6e23461a5 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Sat, 1 Jan 2022 13:26:28 -0600 Subject: [PATCH 004/609] More native utils --- scripts/server/native/connected.js | 34 +++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/scripts/server/native/connected.js b/scripts/server/native/connected.js index 4f88d10e..7f369e5b 100644 --- a/scripts/server/native/connected.js +++ b/scripts/server/native/connected.js @@ -480,9 +480,41 @@ function setVehicleSiren(vehicle, siren) { // =========================================================================== -function setVehicleColours(vehicle, colour1, colour2) { +function getVehicleLights(vehicle) { + return vehicle.lights; +} + +// =========================================================================== + +function getVehicleEngine(vehicle) { + return vehicle.engine; +} + +// =========================================================================== + +function getVehicleLocked(vehicle) { + return vehicle.locked; +} + +// =========================================================================== + +function getVehicleSiren(vehicle) { + return vehicle.siren; +} + +// =========================================================================== + +function setVehicleColours(vehicle, colour1, colour2, colour3 = -1, colour4 = -1) { vehicle.colour1 = colour1; vehicle.colour2 = colour2; + + if(colour3 != -1) { + vehicle.colour3 = colour3; + } + + if(colour4 != -1) { + vehicle.colour4 = colour4; + } } // =========================================================================== From ecbe91895bf997b10205f0aa16e5cd779f4c4f13 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Sat, 1 Jan 2022 13:26:51 -0600 Subject: [PATCH 005/609] Make sure vehicle exists before saving pos/rot --- scripts/server/vehicle.js | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/scripts/server/vehicle.js b/scripts/server/vehicle.js index e25cf955..7baa250c 100644 --- a/scripts/server/vehicle.js +++ b/scripts/server/vehicle.js @@ -78,13 +78,15 @@ function saveVehicleToDatabase(vehicleDataId) { logToConsole(LOG_VERBOSE, `[VRR.Vehicle]: Saving vehicle ${tempVehicleData.databaseId} to database ...`); let dbConnection = connectToDatabase(); if(dbConnection) { - if(!tempVehicleData.spawnLocked) { - if(areServerElementsSupported()) { - tempVehicleData.spawnPosition = tempVehicleData.vehicle.position; - tempVehicleData.spawnRotation = tempVehicleData.vehicle.heading; - } else { - tempVehicleData.spawnPosition = tempVehicleData.syncPosition; - tempVehicleData.spawnRotation = tempVehicleData.syncHeading; + if(tempVehicleData.vehicle != false) { + if(!tempVehicleData.spawnLocked) { + if(areServerElementsSupported()) { + tempVehicleData.spawnPosition = tempVehicleData.vehicle.position; + tempVehicleData.spawnRotation = tempVehicleData.vehicle.heading; + } else { + tempVehicleData.spawnPosition = tempVehicleData.syncPosition; + tempVehicleData.spawnRotation = tempVehicleData.syncHeading; + } } } @@ -1174,6 +1176,7 @@ function respawnVehicle(vehicle) { // =========================================================================== function spawnVehicle(vehicleData) { + logToConsole(LOG_DEBUG, `[VRR.Vehicle]: Spawning ${getVehicleNameFromModel(vehicleData.model)} at ${vehicleData.spawnPosition.x}, ${vehicleData.spawnPosition.y}, ${vehicleData.spawnPosition.z} with heading ${vehicleData.spawnRotation}`); let vehicle = createGameVehicle(vehicleData.model, vehicleData.spawnPosition, vehicleData.spawnRotation); addToWorld(vehicle); @@ -1184,25 +1187,30 @@ function spawnVehicle(vehicleData) { if(isGameFeatureSupported("vehicleColours")) { if(vehicleData.colour1IsRGBA && vehicleData.colour2IsRGBA) { vehicle.setRGBColours(vehicleData.colour1RGBA, vehicleData.colour2RGBA); + let colour1 = rgbaArrayFromToColour(vehicleData.colour1RGBA); + let colour2 = rgbaArrayFromToColour(vehicleData.colour2RGBA); + logToConsole(LOG_VERBOSE, `[VRR.Vehicle]: Setting vehicle ${vehicle.id}'s colours to RGBA [${colour1[0]}, ${colour1[1]}, ${colour1[2]}, ${colour1[3]}], [(]${colour2[0]}, ${colour2[1]}, ${colour2[2]}, ${colour2[3]}]`); + vehicle.setRGBColours(vehicleData.colour1RGBA, vehicleData.colour2RGBA); } else { - vehicle.colour1 = vehicleData.colour1; - vehicle.colour2 = vehicleData.colour2; - vehicle.colour3 = vehicleData.colour3; - vehicle.colour4 = vehicleData.colour4; + setVehicleColours(vehicle, vehicleData.colour1, vehicleData.colour2, vehicleData.colour3, vehicleData.colour4); + logToConsole(LOG_VERBOSE, `[VRR.Vehicle]: Setting vehicle ${vehicle.id}'s colours to ${vehicleData.colour1}, ${vehicleData.colour2}, ${vehicleData.colour3}, ${vehicleData.colour4}`); } } if(vehicleData.spawnLocked == true) { - vehicle.engine = false; + setVehicleEngine(vehicle, false); + logToConsole(LOG_VERBOSE, `[VRR.Vehicle]: Setting vehicle ${vehicle.id}'s engine to OFF`); } else { - vehicle.engine = intToBool(vehicleData.engine); + setVehicleEngine(vehicle, intToBool(vehicleData.engine)); + logToConsole(LOG_VERBOSE, `[VRR.Vehicle]: Setting vehicle ${vehicle.id}'s engine to ${toUpperCase(getOnOffFromBool(getVehicleEngineState(vehicle)))}`); } if(typeof vehicle.locked != "undefined") { - vehicle.locked = intToBool(vehicleData.locked); + setVehicleLocked(vehicle, intToBool(vehicleData.locked)); + logToConsole(LOG_VERBOSE, `[VRR.Vehicle]: Setting vehicle ${vehicle.id}'s lock state to ${toUpperCase(getOnOffFromBool(getVehicleLockState(vehicle)))}`); } - vehicle.dimension = vehicleData.dimension; + setElementDimension(vehicle.dimension, vehicleData.dimension); vehicleData.vehicle = vehicle; From e985cd07e329359596fb7c08ae3d698adc90f920 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Sat, 1 Jan 2022 13:28:03 -0600 Subject: [PATCH 006/609] Revert "Reverted 1.4.0 stuff" This reverts commit 930c66a439a590bd3e7395f318f539ccc4db5d50. --- scripts/server/business.js | 19 ++++++-------- scripts/server/config.js | 7 ++++++ scripts/server/event.js | 3 --- scripts/server/house.js | 11 ++++++-- scripts/server/native/connected.js | 40 ++++++++++++++++++++++++++++++ 5 files changed, 64 insertions(+), 16 deletions(-) diff --git a/scripts/server/business.js b/scripts/server/business.js index e4e1fef6..5c23034b 100644 --- a/scripts/server/business.js +++ b/scripts/server/business.js @@ -1324,6 +1324,8 @@ function createBusinessEntrancePickup(businessId) { getBusinessData(businessId).entrancePickup = createGamePickup(pickupModelId, getBusinessData(businessId).entrancePosition, getGameConfig().pickupTypes[getServerGame()].business); setElementOnAllDimensions(getBusinessData(businessId).entrancePickup, false); setElementDimension(getBusinessData(businessId).entrancePickup, getBusinessData(businessId).entranceDimension); + setElementStreamInDistance(getBusinessData(businessId).entrancePickup, getGlobalConfig().businessPickupStreamInDistance); + setElementStreamOutDistance(getBusinessData(businessId).entrancePickup, getGlobalConfig().businessPickupStreamOutDistance); updateBusinessPickupLabelData(businessId); addToWorld(getBusinessData(businessId).entrancePickup); } @@ -1346,11 +1348,8 @@ function createBusinessEntranceBlip(businessId) { getBusinessData(businessId).entranceBlip = createGameBlip(getBusinessData(businessId).entrancePosition, blipModelId, 1, getColourByName("businessBlue")); setElementOnAllDimensions(getBusinessData(businessId).entranceBlip, false); setElementDimension(getBusinessData(businessId).entranceBlip, getBusinessData(businessId).entranceDimension); - //getBusinessData(businessId).entranceBlip.streamInDistance = 300; - //getBusinessData(businessId).entranceBlip.streamOutDistance = 350; - //getBusinessData(businessId).entranceBlip.interior = getBusinessData(businessId).entranceInterior; - //setEntityData(getBusinessData(businessId).entranceBlip, "vrr.owner.type", VRR_BLIP_BUSINESS_ENTRANCE, false); - //setEntityData(getBusinessData(businessId).entranceBlip, "vrr.owner.id", businessId, false); + setElementStreamInDistance(getBusinessData(businessId).entranceBlip, getGlobalConfig().businessBlipStreamInDistance); + setElementStreamOutDistance(getBusinessData(businessId).entranceBlip, getGlobalConfig().businessBlipStreamOutDistance); addToWorld(getBusinessData(businessId).entranceBlip); } } @@ -1373,9 +1372,8 @@ function createBusinessExitPickup(businessId) { getBusinessData(businessId).exitPickup = createGamePickup(pickupModelId, getBusinessData(businessId).exitPosition, getGameConfig().pickupTypes[getServerGame()].business); setElementDimension(getBusinessData(businessId).exitPickup, getBusinessData(businessId).exitDimension); setElementOnAllDimensions(getBusinessData(businessId).exitPickup, false); - //setEntityData(getBusinessData(businessId).entranceBlip, "vrr.owner.type", VRR_PICKUP_BUSINESS_EXIT, false); - //setEntityData(getBusinessData(businessId).entranceBlip, "vrr.owner.id", businessId, false); - //getBusinessData(businessId).exitPickup.interior = getBusinessData(businessId).exitInterior; + setElementStreamInDistance(getBusinessData(businessId).exitPickup, getGlobalConfig().businessPickupStreamInDistance); + setElementStreamOutDistance(getBusinessData(businessId).exitPickup, getGlobalConfig().businessPickupStreamOutDistance); updateBusinessPickupLabelData(businessId); addToWorld(getBusinessData(businessId).exitPickup); } @@ -1400,9 +1398,8 @@ function createBusinessExitBlip(businessId) { getBusinessData(businessId).exitBlip = createGameBlip(getBusinessData(businessId).exitPosition, blipModelId, 1, getColourByName("businessBlue")); setElementDimension(getBusinessData(businessId).exitBlip, getBusinessData(businessId).entranceDimension); setElementOnAllDimensions(getBusinessData(businessId).exitBlip, false); - //getBusinessData(businessId).exitBlip.interior = getBusinessData(businessId).exitInterior; - //setEntityData(getBusinessData(businessId).exitBlip, "vrr.owner.type", VRR_BLIP_BUSINESS_EXIT, false); - //setEntityData(getBusinessData(businessId).exitBlip, "vrr.owner.id", businessId, false); + setElementStreamInDistance(getBusinessData(businessId).exitBlip, getGlobalConfig().businessBlipStreamInDistance); + setElementStreamOutDistance(getBusinessData(businessId).exitBlip, getGlobalConfig().businessBlipStreamOutDistance); addToWorld(getBusinessData(businessId).exitBlip); } } diff --git a/scripts/server/config.js b/scripts/server/config.js index 78cd89a2..65474917 100644 --- a/scripts/server/config.js +++ b/scripts/server/config.js @@ -80,6 +80,13 @@ let globalConfig = { VRR_ITEM_USETYPE_VEHTIRE, ], vehicleInactiveRespawnDelay: 1800000, // 20 minutes + housePickupStreamInDistance: 50, + housePickupStreamOutDistance: 75, + businessPickupStreamInDistance: 50, + businessPickupStreamOutDistance: 75, + jobPickupStreamInDistance: 50, + jobPickupStreamOutDistance: 75, + vehicleTrunkRearDistance: 3, }; // =========================================================================== diff --git a/scripts/server/event.js b/scripts/server/event.js index 9aee4443..ca3008e4 100644 --- a/scripts/server/event.js +++ b/scripts/server/event.js @@ -95,9 +95,6 @@ function onPlayerQuit(event, client, quitReasonId) { } messageDiscordEventChannel(`๐Ÿ‘‹ ${getPlayerDisplayForConsole(client)} has left the server.`); - - clearTemporaryVehicles(); - clearTemporaryPeds(); } // =========================================================================== diff --git a/scripts/server/house.js b/scripts/server/house.js index 0031955e..8ac3b0ff 100644 --- a/scripts/server/house.js +++ b/scripts/server/house.js @@ -861,6 +861,9 @@ function createHouseEntrancePickup(houseId) { getHouseData(houseId).entrancePickup = createGamePickup(pickupModelId, getHouseData(houseId).entrancePosition, getGameConfig().pickupTypes[getServerGame()].house); setElementOnAllDimensions(getHouseData(houseId).entrancePickup, false); setElementDimension(getHouseData(houseId).entrancePickup, getHouseData(houseId).entranceDimension); + setElementStreamInDistance(getBusinessData(businessId).entrancePickup, getGlobalConfig().housePickupStreamInDistance); + setElementStreamOutDistance(getBusinessData(businessId).entrancePickup, getGlobalConfig().housePickupStreamOutDistance); + setEntityData(getHouseData(houseId).entrancePickup, "vrr.owner.type", VRR_PICKUP_HOUSE_ENTRANCE, false); setEntityData(getHouseData(houseId).entrancePickup, "vrr.owner.id", houseId, false); setEntityData(getHouseData(houseId).entrancePickup, "vrr.label.type", VRR_LABEL_HOUSE, true); @@ -897,8 +900,8 @@ function createHouseEntranceBlip(houseId) { getHouseData(houseId).entranceBlip = createGameBlip(getHouseData(houseId).entrancePosition, blipModelId, 1, getColourByName("houseGreen")); setElementDimension(getHouseData(houseId).entranceBlip, getHouseData(houseId).entranceDimension); setElementOnAllDimensions(getHouseData(houseId).entranceBlip, false); - //getHouseData(houseId).entranceBlip.streamInDistance = 300; - //getHouseData(houseId).entranceBlip.streamOutDistance = 350; + setElementStreamInDistance(getBusinessData(businessId).entranceBlip, getGlobalConfig().houseBlipStreamInDistance); + setElementStreamOutDistance(getBusinessData(businessId).entranceBlip, getGlobalConfig().houseBlipStreamOutDistance); setEntityData(getHouseData(houseId).entranceBlip, "vrr.owner.type", VRR_BLIP_HOUSE_ENTRANCE, false); setEntityData(getHouseData(houseId).entranceBlip, "vrr.owner.id", houseId, false); addToWorld(getHouseData(houseId).entranceBlip); @@ -923,6 +926,8 @@ function createHouseExitPickup(houseId) { getHouseData(houseId).exitPickup = createGamePickup(pickupModelId, getHouseData(houseId).exitPosition, getGameConfig().pickupTypes[getServerGame()].house); setElementDimension(getHouseData(houseId).exitPickup, getHouseData(houseId).exitDimension); setElementOnAllDimensions(getHouseData(houseId).exitPickup, false); + setElementStreamInDistance(getBusinessData(businessId).exitPickup, getGlobalConfig().housePickupStreamInDistance); + setElementStreamOutDistance(getBusinessData(businessId).exitPickup, getGlobalConfig().housePickupStreamOutDistance); setEntityData(getHouseData(houseId).exitPickup, "vrr.owner.type", VRR_PICKUP_HOUSE_EXIT, false); setEntityData(getHouseData(houseId).exitPickup, "vrr.owner.id", houseId, false); setEntityData(getHouseData(houseId).exitPickup, "vrr.label.type", VRR_LABEL_EXIT, true); @@ -949,6 +954,8 @@ function createHouseExitBlip(houseId) { getHouseData(houseId).exitBlip = createGameBlip(blipModelId, getHouseData(houseId).exitPosition, 1, getColourByName("houseGreen")); setElementDimension(getHouseData(houseId).exitBlip, getHouseData(houseId).entranceDimension); setElementOnAllDimensions(getHouseData(houseId).exitBlip, false); + setElementStreamInDistance(getBusinessData(businessId).exitBlip, getGlobalConfig().houseBlipStreamInDistance); + setElementStreamOutDistance(getBusinessData(businessId).exitBlip, getGlobalConfig().houseBlipStreamOutDistance); setEntityData(getHouseData(houseId).exitBlip, "vrr.owner.type", VRR_BLIP_HOUSE_EXIT, false); setEntityData(getHouseData(houseId).exitBlip, "vrr.owner.id", houseId, false); addToWorld(getHouseData(houseId).exitBlip); diff --git a/scripts/server/native/connected.js b/scripts/server/native/connected.js index 7f369e5b..e0f36a8e 100644 --- a/scripts/server/native/connected.js +++ b/scripts/server/native/connected.js @@ -424,6 +424,46 @@ function setElementOnAllDimensions(element, state) { // =========================================================================== +function setElementDefaultExistance(element, state) { + if(!isNull(element) && element != false) { + element.defaultExistance = state; + } +} + +// =========================================================================== + +function setElementExistsFor(element, client, state) { + if(!isNull(element) && element != false) { + element.setExistsFor(client, state); + } +} + +// =========================================================================== + +function clearElementExistsFor(element) { + if(!isNull(element) && element != false) { + element.clearExistsFor(); + } +} + +// =========================================================================== + +function setElementStreamInDistance(element, distance) { + if(!isNull(element) && element != false) { + element.streamInDistance = distance; + } +} + +// =========================================================================== + +function setElementStreamOutDistance(element, distance) { + if(!isNull(element) && element != false) { + element.streamOutDistance = distance; + } +} + +// =========================================================================== + function destroyGameElement(element) { if(!isNull(element) && element != false) { destroyElement(element); From 70ba9e99b35f0d3763182306151e8aea294540b8 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Sun, 2 Jan 2022 20:07:57 -0600 Subject: [PATCH 007/609] Element transient --- scripts/server/house.js | 5 ++++- scripts/server/native/connected.js | 12 ++++++++++++ scripts/server/vehicle.js | 2 ++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/scripts/server/house.js b/scripts/server/house.js index 8ac3b0ff..15adb883 100644 --- a/scripts/server/house.js +++ b/scripts/server/house.js @@ -863,7 +863,7 @@ function createHouseEntrancePickup(houseId) { setElementDimension(getHouseData(houseId).entrancePickup, getHouseData(houseId).entranceDimension); setElementStreamInDistance(getBusinessData(businessId).entrancePickup, getGlobalConfig().housePickupStreamInDistance); setElementStreamOutDistance(getBusinessData(businessId).entrancePickup, getGlobalConfig().housePickupStreamOutDistance); - + setElementTransient(getHouseData(houseId).entrancePickup, false); setEntityData(getHouseData(houseId).entrancePickup, "vrr.owner.type", VRR_PICKUP_HOUSE_ENTRANCE, false); setEntityData(getHouseData(houseId).entrancePickup, "vrr.owner.id", houseId, false); setEntityData(getHouseData(houseId).entrancePickup, "vrr.label.type", VRR_LABEL_HOUSE, true); @@ -902,6 +902,7 @@ function createHouseEntranceBlip(houseId) { setElementOnAllDimensions(getHouseData(houseId).entranceBlip, false); setElementStreamInDistance(getBusinessData(businessId).entranceBlip, getGlobalConfig().houseBlipStreamInDistance); setElementStreamOutDistance(getBusinessData(businessId).entranceBlip, getGlobalConfig().houseBlipStreamOutDistance); + setElementTransient(getHouseData(houseId).entranceBlip, false); setEntityData(getHouseData(houseId).entranceBlip, "vrr.owner.type", VRR_BLIP_HOUSE_ENTRANCE, false); setEntityData(getHouseData(houseId).entranceBlip, "vrr.owner.id", houseId, false); addToWorld(getHouseData(houseId).entranceBlip); @@ -928,6 +929,7 @@ function createHouseExitPickup(houseId) { setElementOnAllDimensions(getHouseData(houseId).exitPickup, false); setElementStreamInDistance(getBusinessData(businessId).exitPickup, getGlobalConfig().housePickupStreamInDistance); setElementStreamOutDistance(getBusinessData(businessId).exitPickup, getGlobalConfig().housePickupStreamOutDistance); + setElementTransient(getHouseData(houseId).exitPickup, false); setEntityData(getHouseData(houseId).exitPickup, "vrr.owner.type", VRR_PICKUP_HOUSE_EXIT, false); setEntityData(getHouseData(houseId).exitPickup, "vrr.owner.id", houseId, false); setEntityData(getHouseData(houseId).exitPickup, "vrr.label.type", VRR_LABEL_EXIT, true); @@ -956,6 +958,7 @@ function createHouseExitBlip(houseId) { setElementOnAllDimensions(getHouseData(houseId).exitBlip, false); setElementStreamInDistance(getBusinessData(businessId).exitBlip, getGlobalConfig().houseBlipStreamInDistance); setElementStreamOutDistance(getBusinessData(businessId).exitBlip, getGlobalConfig().houseBlipStreamOutDistance); + setElementTransient(getHouseData(houseId).exitBlip, false); setEntityData(getHouseData(houseId).exitBlip, "vrr.owner.type", VRR_BLIP_HOUSE_EXIT, false); setEntityData(getHouseData(houseId).exitBlip, "vrr.owner.id", houseId, false); addToWorld(getHouseData(houseId).exitBlip); diff --git a/scripts/server/native/connected.js b/scripts/server/native/connected.js index e0f36a8e..553a8f5c 100644 --- a/scripts/server/native/connected.js +++ b/scripts/server/native/connected.js @@ -155,6 +155,18 @@ function setVehicleHeading(vehicle, heading) { // =========================================================================== +function getElementTransient(element) { + return element.transient; +} + +// =========================================================================== + +function setElementTransient(element, state) { + return element.transient = state; +} + +// =========================================================================== + function getVehicleSyncer(vehicle) { return getElementSyncer(vehicle); } diff --git a/scripts/server/vehicle.js b/scripts/server/vehicle.js index 7baa250c..63608796 100644 --- a/scripts/server/vehicle.js +++ b/scripts/server/vehicle.js @@ -1178,6 +1178,8 @@ function respawnVehicle(vehicle) { function spawnVehicle(vehicleData) { logToConsole(LOG_DEBUG, `[VRR.Vehicle]: Spawning ${getVehicleNameFromModel(vehicleData.model)} at ${vehicleData.spawnPosition.x}, ${vehicleData.spawnPosition.y}, ${vehicleData.spawnPosition.z} with heading ${vehicleData.spawnRotation}`); let vehicle = createGameVehicle(vehicleData.model, vehicleData.spawnPosition, vehicleData.spawnRotation); + setVehicleHeading(vehicle, vehicleData.spawnRotation); + setElementTransient(vehicle, false); addToWorld(vehicle); if(!vehicle) { From d0a0eb15f121ad44675c894ce8bf164b09b21ded Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Sun, 2 Jan 2022 20:08:42 -0600 Subject: [PATCH 008/609] Some prep --- scripts/server/native/connected.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/server/native/connected.js b/scripts/server/native/connected.js index 553a8f5c..e8340ffd 100644 --- a/scripts/server/native/connected.js +++ b/scripts/server/native/connected.js @@ -348,7 +348,7 @@ function setElementDimension(element, dimension) { // =========================================================================== function setElementRotation(element, rotation) { - return element.setRotation(rotation); + return element.rotation = rotation; } // =========================================================================== @@ -545,7 +545,7 @@ function getVehicleEngine(vehicle) { // =========================================================================== function getVehicleLocked(vehicle) { - return vehicle.locked; + return vehicle.lockedStatus; } // =========================================================================== From e44307991dcabc38110f788964d0e7fec83dca6c Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Thu, 24 Feb 2022 15:45:00 -0600 Subject: [PATCH 009/609] Arrange meta.xml client scripts by name --- meta.xml | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/meta.xml b/meta.xml index 33f8807f..e41b8fd1 100644 --- a/meta.xml +++ b/meta.xml @@ -25,7 +25,6 @@