From 3559fd3a1ea94ec9d4df93efdd53e90703629345 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Sun, 15 May 2022 22:27:32 -0500 Subject: [PATCH] Fix job, biz & house blips stream distance and dimension --- scripts/server/business.js | 118 ++++++++++++-------- scripts/server/house.js | 219 ++++++++++++++++++++++++------------- scripts/server/job.js | 11 +- 3 files changed, 227 insertions(+), 121 deletions(-) diff --git a/scripts/server/business.js b/scripts/server/business.js index 924bcfde..cbcbefd1 100644 --- a/scripts/server/business.js +++ b/scripts/server/business.js @@ -1728,13 +1728,20 @@ function createBusinessEntrancePickup(businessId) { if(areServerElementsSupported()) { let entrancePickup = createGamePickup(pickupModelId, getBusinessData(businessId).entrancePosition, getGameConfig().pickupTypes[getGame()].business); if(entrancePickup != null) { - setElementOnAllDimensions(entrancePickup, false); - setElementDimension(entrancePickup, getBusinessData(businessId).entranceDimension); - setElementOnAllDimensions(entrancePickup, false); - setElementStreamInDistance(entrancePickup, getGlobalConfig().businessBlipStreamInDistance); - setElementStreamOutDistance(entrancePickup, getGlobalConfig().businessBlipStreamOutDistance); - setElementTransient(entrancePickup, false); + if(businessData.entranceDimension != -1) { + setElementDimension(entrancePickup, businessData.entranceDimension); + setElementOnAllDimensions(entrancePickup, false); + } else { + setElementOnAllDimensions(entrancePickup, true); + } + if(getGlobalConfig().businessPickupStreamInDistance == -1 || getGlobalConfig().businessPickupStreamOutDistance == -1) { + entrancePickup.netFlags.distanceStreaming = false; + } else { + setElementStreamInDistance(entrancePickup, getGlobalConfig().businessPickupStreamInDistance); + setElementStreamOutDistance(entrancePickup, getGlobalConfig().businessPickupStreamOutDistance); + } + setElementTransient(entrancePickup, false); getBusinessData(businessId).entrancePickup = entrancePickup; updateBusinessPickupLabelData(businessId); } @@ -1766,32 +1773,39 @@ function createBusinessEntranceBlip(businessId) { return false; } - if(getBusinessData(businessId).entranceBlipModel != -1) { + let businessData = getBusinessData(businessId); + + if(businessData.entranceBlipModel != -1) { let blipModelId = getGameConfig().blipSprites[getGame()].Business; if(getServerData().businesses[businessId].entranceBlipModel != 0) { - blipModelId = getBusinessData(businessId).entranceBlipModel; + blipModelId = businessData.entranceBlipModel; } - logToConsole(LOG_VERBOSE, `[VRR.Job]: Creating entrance blip for business ${getBusinessData(businessId).name} (model ${blipModelId})`); - + logToConsole(LOG_VERBOSE, `[VRR.Job]: Creating entrance blip for business ${businessData.name} (model ${blipModelId})`); if(areServerElementsSupported()) { - let entranceBlip = createGameBlip(getBusinessData(businessId).entrancePosition, blipModelId, getColourByType("businessBlue")); + let entranceBlip = createGameBlip(businessData.entrancePosition, blipModelId, getColourByType("businessBlue")); if(entranceBlip != null) { - setElementOnAllDimensions(entranceBlip, false); - setElementDimension(entranceBlip, getBusinessData(businessId).entranceDimension); - setElementDimension(entranceBlip, getBusinessData(businessId).entranceDimension); - setElementOnAllDimensions(entranceBlip, false); - setElementStreamInDistance(entranceBlip, getGlobalConfig().businessBlipStreamInDistance); - setElementStreamOutDistance(entranceBlip, getGlobalConfig().businessBlipStreamOutDistance); - setElementTransient(entranceBlip, false); + if(businessData.entranceDimension != -1) { + setElementDimension(entranceBlip, businessData.entranceDimension); + setElementOnAllDimensions(entranceBlip, false); + } else { + setElementOnAllDimensions(entranceBlip, true); + } - getBusinessData(businessId).entranceBlip = entranceBlip; + if(getGlobalConfig().businessBlipStreamInDistance == -1 || getGlobalConfig().businessBlipStreamOutDistance == -1) { + entranceBlip.netFlags.distanceStreaming = false; + } else { + setElementStreamInDistance(entranceBlip, getGlobalConfig().businessBlipStreamInDistance); + setElementStreamOutDistance(entranceBlip, getGlobalConfig().businessBlipStreamOutDistance); + } + setElementTransient(entranceBlip, false); + businessData.entranceBlip = entranceBlip; } } else { - sendBusinessToPlayer(null, businessId, getBusinessData(businessId).name, getBusinessData(businessId).entrancePosition, blipModelId, getBusinessData(businessId).entrancePickupModel, getBusinessData(businessId).hasInterior, false); + sendBusinessToPlayer(null, businessId, businessData.name, businessData.entrancePosition, blipModelId, businessData.entrancePickupModel, businessData.hasInterior, false); } } } @@ -1810,26 +1824,35 @@ function createBusinessExitPickup(businessId) { return false; } - if(getBusinessData(businessId).hasInterior) { - if(getBusinessData(businessId).exitPickupModel != -1) { + let businessData = getBusinessData(businessId); + + if(businessData.hasInterior) { + if(businessData.exitPickupModel != -1) { let pickupModelId = getGameConfig().pickupModels[getGame()].Exit; if(getServerData().businesses[businessId].exitPickupModel != 0) { - pickupModelId = getBusinessData(businessId).exitPickupModel; + pickupModelId = businessData.exitPickupModel; } - logToConsole(LOG_VERBOSE, `[VRR.Job]: Creating exit pickup for business ${getBusinessData(businessId).name} (model ${pickupModelId})`); + logToConsole(LOG_VERBOSE, `[VRR.Job]: Creating exit pickup for business ${businessData.name} (model ${pickupModelId})`); if(areServerElementsSupported()) { - let exitPickup = createGamePickup(pickupModelId, getBusinessData(businessId).exitPosition, getGameConfig().pickupTypes[getGame()].business); + let exitPickup = createGamePickup(pickupModelId, businessData.exitPosition, getGameConfig().pickupTypes[getGame()].business); if(exitPickup != null) { - setElementDimension(exitPickup, getBusinessData(businessId).exitDimension); - setElementOnAllDimensions(exitPickup, false); - setElementStreamInDistance(exitPickup, getGlobalConfig().businessPickupStreamInDistance); - setElementStreamOutDistance(exitPickup, getGlobalConfig().businessPickupStreamOutDistance); - setElementTransient(exitPickup, false); - addToWorld(exitPickup); + if(businessData.exitDimension != -1) { + setElementDimension(exitPickup, businessData.exitDimension); + setElementOnAllDimensions(exitPickup, false); + } else { + setElementOnAllDimensions(exitPickup, true); + } + if(getGlobalConfig().businessPickupStreamInDistance == -1 || getGlobalConfig().businessPickupStreamOutDistance == -1) { + exitPickup.netFlags.distanceStreaming = false; + } else { + setElementStreamInDistance(exitPickup, getGlobalConfig().businessPickupStreamInDistance); + setElementStreamOutDistance(exitPickup, getGlobalConfig().businessPickupStreamOutDistance); + } + setElementTransient(exitPickup, false); getBusinessData(businessId).exitPickup = exitPickup; updateBusinessPickupLabelData(businessId); } @@ -1852,27 +1875,36 @@ function createBusinessExitBlip(businessId) { return false; } - if(getBusinessData(businessId).hasInterior) { - if(getBusinessData(businessId).exitBlipModel != -1) { + let businessData = getBusinessData(businessId); + + if(businessData.hasInterior) { + if(businessData.exitBlipModel != -1) { let blipModelId = getGameConfig().blipSprites[getGame()].Business; if(getServerData().businesses[businessId].exitBlipModel != 0) { - blipModelId = getBusinessData(businessId).exitBlipModel; + blipModelId = businessData.exitBlipModel; } if(areServerElementsSupported()) { - logToConsole(LOG_VERBOSE, `[VRR.Job]: Creating exit blip for business ${getBusinessData(businessId).name} (model ${blipModelId})`); + logToConsole(LOG_VERBOSE, `[VRR.Job]: Creating exit blip for business ${businessData.name} (model ${blipModelId})`); - let exitBlip = createGameBlip(getBusinessData(businessId).exitPosition, blipModelId, 1, getColourByName("businessBlue")); + let exitBlip = createGameBlip(businessData.exitPosition, blipModelId, 1, getColourByName("businessBlue")); if(exitBlip != null) { - setElementDimension(exitBlip, getBusinessData(businessId).exitDimension); - setElementOnAllDimensions(exitBlip, false); - setElementStreamInDistance(exitBlip, getGlobalConfig().businessBlipStreamInDistance); - setElementStreamOutDistance(exitBlip, getGlobalConfig().businessBlipStreamOutDistance); - setElementTransient(exitBlip, false); - addToWorld(exitBlip); + if(businessData.exitDimension != -1) { + setElementDimension(exitBlip, businessData.exitDimension); + setElementOnAllDimensions(exitBlip, false); + } else { + setElementOnAllDimensions(exitBlip, true); + } - getBusinessData(businessId).exitBlip = exitBlip; + if(getGlobalConfig().businessBlipStreamInDistance == -1 || getGlobalConfig().businessBlipStreamOutDistance == -1) { + exitBlip.netFlags.distanceStreaming = false; + } else { + setElementStreamInDistance(exitBlip, getGlobalConfig().businessBlipStreamInDistance); + setElementStreamOutDistance(exitBlip, getGlobalConfig().businessBlipStreamOutDistance); + } + setElementTransient(exitBlip, false); + businessData.exitBlip = exitBlip; } } } diff --git a/scripts/server/house.js b/scripts/server/house.js index a98bd397..d62883d0 100644 --- a/scripts/server/house.js +++ b/scripts/server/house.js @@ -841,126 +841,195 @@ function createAllHouseBlips() { // =========================================================================== function createHouseEntrancePickup(houseId) { + if(areServerElementsSupported()) { + return false; + } + if(!getServerConfig().createHousePickups) { return false; } - if(getHouseData(houseId).entrancePickupModel != -1) { - let pickupModelId = getGameConfig().pickupModels[getGame()].House; + if(!getHouseData(houseId)) { + return false; + } - if(getServerData().houses[houseId].entrancePickupModel != 0) { - pickupModelId = getHouseData(houseId).entrancePickupModel; - } + let houseData = getHouseData(houseId); - if(areServerElementsSupported()) { - let entrancePickup = createGamePickup(pickupModelId, getHouseData(houseId).entrancePosition, getGameConfig().pickupTypes[getGame()].house); - if(entrancePickup != null) { - setElementOnAllDimensions(entrancePickup, false); - setElementDimension(entrancePickup, getHouseData(houseId).entranceDimension); - setElementStreamInDistance(entrancePickup, getGlobalConfig().housePickupStreamInDistance); - setElementStreamOutDistance(entrancePickup, getGlobalConfig().housePickupStreamOutDistance); - setElementTransient(entrancePickup, false); + //if(houseData.hasInterior) { + // return false; + //} - getHouseData(houseId).entrancePickup = entrancePickup; - updateHousePickupLabelData(houseId); - } - } + if(houseData.entrancePickupModel == -1) { + return false; + } + + let pickupModelId = getGameConfig().pickupModels[getGame()].House; + + if(getServerData().houses[houseId].entrancePickupModel != 0) { + pickupModelId = getHouseData(houseId).entrancePickupModel; + } + + let entrancePickup = createGamePickup(pickupModelId, getHouseData(houseId).entrancePosition, getGameConfig().pickupTypes[getGame()].house); + if(entrancePickup != null) { + setElementOnAllDimensions(entrancePickup, false); + setElementDimension(entrancePickup, getHouseData(houseId).entranceDimension); + setElementStreamInDistance(entrancePickup, getGlobalConfig().housePickupStreamInDistance); + setElementStreamOutDistance(entrancePickup, getGlobalConfig().housePickupStreamOutDistance); + setElementTransient(entrancePickup, false); + + getHouseData(houseId).entrancePickup = entrancePickup; + updateHousePickupLabelData(houseId); } } // =========================================================================== function createHouseEntranceBlip(houseId) { + if(areServerElementsSupported()) { + return false; + } + if(!getServerConfig().createHouseBlips) { return false; } - if(getHouseData(houseId).entranceBlipModel != -1) { - let blipModelId = getGameConfig().blipSprites[getGame()].House; + if(!getHouseData(houseId)) { + return false; + } - if(getServerData().houses[houseId].entranceBlipModel != 0) { - blipModelId = getHouseData(houseId).entranceBlipModel; + let houseData = getHouseData(houseId); + + //if(houseData.hasInterior) { + // return false; + //} + + if(houseData.entranceBlipModel == -1) { + return false; + } + + let blipModelId = getGameConfig().blipSprites[getGame()].House; + if(getServerData().houses[houseId].entranceBlipModel != 0) { + blipModelId = getHouseData(houseId).entranceBlipModel; + } + + let entranceBlip = createGameBlip(houseData.entrancePosition, blipModelId, getColourByName("houseGreen")); + if(entranceBlip != null) { + if(houseData.exitDimension != -1) { + setElementDimension(entranceBlip, houseData.entranceDimension); + setElementOnAllDimensions(entranceBlip, false); + } else { + setElementOnAllDimensions(entranceBlip, true); } - if(areServerElementsSupported()) { - let entranceBlip = createGameBlip(getHouseData(houseId).entrancePosition, blipModelId, getColourByName("houseGreen")); - if(entranceBlip != null) { - setElementDimension(entranceBlip, getHouseData(houseId).entranceDimension); - setElementOnAllDimensions(entranceBlip, false); - setElementStreamInDistance(entranceBlip, getGlobalConfig().houseBlipStreamInDistance); - setElementStreamOutDistance(entranceBlip, getGlobalConfig().houseBlipStreamOutDistance); - setElementTransient(entranceBlip, false); - setEntityData(entranceBlip, "vrr.owner.type", VRR_BLIP_HOUSE_ENTRANCE, false); - setEntityData(entranceBlip, "vrr.owner.id", houseId, false); - - getHouseData(houseId).entranceBlip = entranceBlip; - } + if(getGlobalConfig().houseBlipStreamInDistance == -1 || getGlobalConfig().houseBlipStreamOutDistance == -1) { + entranceBlip.netFlags.distanceStreaming = false; + } else { + setElementStreamInDistance(entranceBlip, getGlobalConfig().houseBlipStreamInDistance); + setElementStreamOutDistance(entranceBlip, getGlobalConfig().houseBlipStreamOutDistance); } + + setEntityData(entranceBlip, "vrr.owner.type", VRR_BLIP_HOUSE_ENTRANCE, false); + setEntityData(entranceBlip, "vrr.owner.id", houseId, false); + + houseData.entranceBlip = entranceBlip; } } // =========================================================================== function createHouseExitPickup(houseId) { + if(areServerElementsSupported()) { + return false; + } + if(!getServerConfig().createHousePickups) { return false; } - if(getHouseData(houseId).hasInterior) { - if(getHouseData(houseId).exitPickupModel != -1) { - let pickupModelId = getGameConfig().pickupModels[getGame()].Exit; - - if(getServerData().houses[houseId].exitPickupModel != 0) { - pickupModelId = getHouseData(houseId).exitPickupModel; - } - - if(areServerElementsSupported()) { - let exitPickup = createGamePickup(pickupModelId, getHouseData(houseId).exitPosition, getGameConfig().pickupTypes[getGame()].house); - if(exitPickup != null) { - setElementDimension(exitPickup, getHouseData(houseId).exitDimension); - setElementOnAllDimensions(exitPickup, false); - setElementStreamInDistance(exitPickup, getGlobalConfig().housePickupStreamInDistance); - setElementStreamOutDistance(exitPickup, getGlobalConfig().housePickupStreamOutDistance); - setElementTransient(exitPickup, false); - - getHouseData(houseId).exitPickup = exitPickup; - updateHousePickupLabelData(houseId); - } - } - } + if(!getHouseData(houseId)) { + return false; } + + let houseData = getHouseData(houseId); + + if(houseData.hasInterior) { + return false; + } + + if(houseData.exitPickupModel == -1) { + return false; + } + + let pickupModelId = getGameConfig().pickupModels[getGame()].Exit; + + if(getServerData().houses[houseId].exitPickupModel != 0) { + pickupModelId = houseData.exitPickupModel; + } + + let exitPickup = createGamePickup(pickupModelId, getHouseData(houseId).exitPosition, getGameConfig().pickupTypes[getGame()].house); + if(exitPickup != null) { + setElementDimension(exitPickup, getHouseData(houseId).exitDimension); + setElementOnAllDimensions(exitPickup, false); + setElementStreamInDistance(exitPickup, getGlobalConfig().housePickupStreamInDistance); + setElementStreamOutDistance(exitPickup, getGlobalConfig().housePickupStreamOutDistance); + setElementTransient(exitPickup, false); + + getHouseData(houseId).exitPickup = exitPickup; + updateHousePickupLabelData(houseId); + } + } // =========================================================================== function createHouseExitBlip(houseId) { + if(areServerElementsSupported()) { + return false; + } + if(!getServerConfig().createHouseBlips) { return false; } - if(getHouseData(houseId).hasInterior) { - if(getHouseData(houseId).exitBlipModel != -1) { - let blipModelId = getGameConfig().blipSprites[getGame()].House; + if(!getHouseData(houseId)) { + return false; + } - if(getServerData().houses[houseId].exitBlipModel != 0) { - blipModelId = getHouseData(houseId).exitBlipModel; - } + let houseData = getHouseData(houseId); - if(areServerElementsSupported()) { - let exitBlip = createGameBlip(blipModelId, getHouseData(houseId).exitPosition, 1, getColourByName("houseGreen")); - if(exitBlip != null) { - setElementDimension(exitBlip, getHouseData(houseId).entranceDimension); - setElementOnAllDimensions(exitBlip, false); - setElementStreamInDistance(exitBlip, getGlobalConfig().houseBlipStreamInDistance); - setElementStreamOutDistance(exitBlip, getGlobalConfig().houseBlipStreamOutDistance); - setElementTransient(exitBlip, false); - setEntityData(exitBlip, "vrr.owner.type", VRR_BLIP_HOUSE_EXIT, false); - setEntityData(exitBlip, "vrr.owner.id", houseId, false); + if(houseData.hasInterior) { + return false; + } - getHouseData(houseId).exitBlip = exitBlip; - } - } + if(houseData.exitBlipModel == -1) { + return false; + } + + let blipModelId = getGameConfig().blipSprites[getGame()].House; + + if(getServerData().houses[houseId].exitBlipModel != 0) { + blipModelId = getHouseData(houseId).exitBlipModel; + } + + let exitBlip = createGameBlip(blipModelId, getHouseData(houseId).exitPosition, 1, getColourByName("houseGreen")); + if(exitBlip != null) { + if(houseData.exitDimension != -1) { + setElementDimension(exitBlip, houseData.exitDimension); + setElementOnAllDimensions(exitBlip, false); + } else { + setElementOnAllDimensions(entranceBlip, true); } + + if(getGlobalConfig().houseBlipStreamInDistance == -1 || getGlobalConfig().houseBlipStreamOutDistance == -1) { + exitBlip.netFlags.distanceStreaming = false; + } else { + setElementStreamInDistance(exitBlip, getGlobalConfig().houseBlipStreamInDistance); + setElementStreamOutDistance(exitBlip, getGlobalConfig().houseBlipStreamOutDistance); + } + setElementTransient(exitBlip, false); + setEntityData(exitBlip, "vrr.owner.type", VRR_BLIP_HOUSE_EXIT, false); + setEntityData(exitBlip, "vrr.owner.id", houseId, false); + getHouseData(houseId).exitBlip = exitBlip; } } diff --git a/scripts/server/job.js b/scripts/server/job.js index 880aafda..f8d571e7 100644 --- a/scripts/server/job.js +++ b/scripts/server/job.js @@ -265,9 +265,14 @@ function createAllJobBlips() { for(let i in getServerData().jobs) { for(let j in getServerData().jobs[i].locations) { getServerData().jobs[i].locations[j].blip = game.createBlip((getServerData().jobs[i].blipModel!=0) ? getServerData().jobs[i].blipModel : 0, getServerData().jobs[i].locations[j].position, 2, getColourByName("yellow")); - //setElementStreamInDistance(getServerData().jobs[i].locations[j].blip, getGlobalConfig().jobBlipStreamInDistance); - //setElementStreamOutDistance(getServerData().jobs[i].locations[j].blip, getGlobalConfig().jobBlipStreamOutDistance); - addToWorld(getServerData().jobs[i].locations[j].blip); + if(getGlobalConfig().jobBlipStreamInDistance == -1 || getGlobalConfig().jobBlipStreamOutDistance == -1) { + getServerData().jobs[i].locations[j].blip.netFlags.distanceStreaming = false; + } else { + setElementStreamInDistance(getServerData().jobs[i].locations[j].blip, getGlobalConfig().jobBlipStreamInDistance); + setElementStreamOutDistance(getServerData().jobs[i].locations[j].blip, getGlobalConfig().jobBlipStreamOutDistance); + } + + //addToWorld(getServerData().jobs[i].locations[j].blip); logToConsole(LOG_DEBUG, `[VRR.Job] Job '${getServerData().jobs[i].name}' location blip ${j} spawned!`); } }