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/579] 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/579] 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/579] 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/579] 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/579] 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/579] 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/579] 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/579] 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 dccf8d961d74435eb934c32d61fc1d6d32283de8 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Tue, 8 Mar 2022 12:02:21 -0600 Subject: [PATCH 009/579] Add radar and area name to hud state --- scripts/client/server.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/client/server.js b/scripts/client/server.js index db892867..7146c918 100644 --- a/scripts/client/server.js +++ b/scripts/client/server.js @@ -139,6 +139,8 @@ function setPlayer2DRendering(hudState, labelState, smallGameMessageState, score natives.displayCash(hudState); natives.displayAmmo(hudState); natives.displayHud(hudState); + natives.displayRadar(hudState); + natives.displayAreaName(hudState); } else { if(typeof setHUDEnabled != "undefined") { setHUDEnabled(hudState); From 8d1a5c81ea75de9061a9adb8bd720e34f30511bf Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Tue, 8 Mar 2022 12:02:33 -0600 Subject: [PATCH 010/579] Remove HUD stuff from initial game setup --- scripts/client/startup.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/client/startup.js b/scripts/client/startup.js index e2685005..549d2483 100644 --- a/scripts/client/startup.js +++ b/scripts/client/startup.js @@ -121,12 +121,12 @@ function setUpInitialGame() { natives.setPickupsFixCars(false); // HUD and Display - natives.displayCash(false); - natives.displayAmmo(false); - natives.displayHud(false); - natives.displayRadar(false); - natives.displayAreaName(false); - natives.displayPlayerNames(false); + //natives.displayCash(false); + //natives.displayAmmo(false); + //natives.displayHud(false); + //natives.displayRadar(false); + //natives.displayAreaName(false); + //natives.displayPlayerNames(false); natives.setPoliceRadarBlips(false); natives.removeTemporaryRadarBlipsForPickups(); natives.displayNonMinigameHelpMessages(false); From 22ecb9ea50c7da58f3fe47d0ab05f4f4b62b1f16 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Tue, 8 Mar 2022 12:02:43 -0600 Subject: [PATCH 011/579] Cleanup --- scripts/server/account.js | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/server/account.js b/scripts/server/account.js index 87be5779..549fcdff 100644 --- a/scripts/server/account.js +++ b/scripts/server/account.js @@ -1126,6 +1126,7 @@ function initClient(client) { updatePlayerSnowState(client); showConnectCameraToPlayer(client); + messageClient(`Please wait ...`, client, getColourByName("softGreen")); setTimeout(function() { From ac59e8d9b3d0da76384729f25b90eebc27c77c8f Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Tue, 8 Mar 2022 12:02:55 -0600 Subject: [PATCH 012/579] Set rendering states on connect camera --- scripts/server/utilities.js | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/server/utilities.js b/scripts/server/utilities.js index 92917103..b4f71220 100644 --- a/scripts/server/utilities.js +++ b/scripts/server/utilities.js @@ -283,6 +283,7 @@ function showConnectCameraToPlayer(client) { //setPlayerDimension(client, 0); setPlayerCameraLookAt(client, getServerConfig().connectCameraPosition, getServerConfig().connectCameraLookAt); } + setPlayer2DRendering(client, false, false, false, false, false, false); } // =========================================================================== From 2d12b7f30771497ed35d6a8a7b21d01bb7a67b5b Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Tue, 8 Mar 2022 12:52:24 -0600 Subject: [PATCH 013/579] Fix IV businesses --- scripts/client/business.js | 30 ++++++++++++++++++++++++++---- scripts/client/main.js | 6 +++--- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/scripts/client/business.js b/scripts/client/business.js index 245826e2..10fb2e10 100644 --- a/scripts/client/business.js +++ b/scripts/client/business.js @@ -8,8 +8,9 @@ // =========================================================================== class BusinessData { - constructor(index, name, entrancePosition, blipModel, pickupModel, hasInterior, hasItems) { - this.index = index; + constructor(businessId, name, entrancePosition, blipModel, pickupModel, hasInterior, hasItems) { + this.index = -1; + this.businessId = businessId; this.name = name; this.entrancePosition = entrancePosition; this.blipModel = blipModel; @@ -28,6 +29,7 @@ function receiveBusinessFromServer(businessId, name, entrancePosition, blipModel if(blipModel == -1) { natives.removeBlipAndClearIndex(getBusinessData(businessId).blipId); businesses.splice(getBusinessData(businessId).index, 1); + setAllBusinessDataIndexes(); } else { natives.setBlipCoordinates(getBusinessData(businessId).blipId, getBusinessData(businessId).entrancePosition); natives.changeBlipSprite(getBusinessData(businessId).blipId, getBusinessData(businessId).blipModel); @@ -35,18 +37,38 @@ function receiveBusinessFromServer(businessId, name, entrancePosition, blipModel } } else { if(blipModel != -1) { + let tempBusinessData = new BusinessData(businessId, name, entrancePosition, blipModel, pickupModel, hasInterior, hasItems); let blipId = natives.addBlipForCoord(entrancePosition); if(blipId) { - let tempBusinessData = new BusinessData(businessId, name, entrancePosition, blipModel, pickupModel, hasInterior, hasItems); tempBusinessData.blipId = blipId; natives.changeBlipSprite(blipId, blipModel); natives.setBlipMarkerLongDistance(blipId, true); natives.changeBlipNameFromAscii(blipId, `${name.substr(0, 24)}${(name.length > 24) ? " ...": ""}`); - businesses.push(tempBusinessData); } + businesses.push(tempBusinessData); + setAllBusinessDataIndexes(); } } } } +// =========================================================================== + +/** + * @param {number} businessId - The ID of the business (initially provided by server) + * @return {BusinessData} The business's data (class instance) + */ +function getBusinessData(businessId) { + let tempBusinessData = businesses.find((b) => b.businessId == businessId); + return (typeof tempBusinessData != "undefined") ? tempBusinessData : false; +} + +// =========================================================================== + +function setAllBusinessDataIndexes() { + for(let i in businesses) { + businesses[i].index = i; + } +} + // =========================================================================== \ No newline at end of file diff --git a/scripts/client/main.js b/scripts/client/main.js index 7e56d8ce..6c1719b9 100644 --- a/scripts/client/main.js +++ b/scripts/client/main.js @@ -69,8 +69,8 @@ let forceWantedLevel = 0; // Pre-cache all allowed skins let allowedSkins = getAllowedSkins(getGame()); -let businesses = {}; -let houses = {}; -let jobs = {}; +let businesses = []; +let houses = []; +let jobs = []; // =========================================================================== \ No newline at end of file From cdc54be6925df4935973327d7cdb8246470a2f32 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Tue, 8 Mar 2022 12:55:57 -0600 Subject: [PATCH 014/579] Fix wrong arg in parked car native --- scripts/client/startup.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/client/startup.js b/scripts/client/startup.js index 549d2483..58d85b31 100644 --- a/scripts/client/startup.js +++ b/scripts/client/startup.js @@ -140,7 +140,7 @@ function setUpInitialGame() { // Population natives.dontSuppressAnyCarModels(5.0); natives.dontSuppressAnyPedModels(5.0); - natives.forceGenerateParkedCarsTooCloseToOthers(5.0); + natives.forceGenerateParkedCarsTooCloseToOthers(true); natives.setParkedCarDensityMultiplier(5.0); natives.setRandomCarDensityMultiplier(5.0); natives.setPedDensityMultiplier(5.0); From 1039ac8cfd8abc6f4a1a707cba91dc7cceaf9172 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Tue, 8 Mar 2022 12:56:12 -0600 Subject: [PATCH 015/579] Fix wrong delimiter used in some staff cmd args --- scripts/server/staff.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/scripts/server/staff.js b/scripts/server/staff.js index adc48e5c..e0946934 100644 --- a/scripts/server/staff.js +++ b/scripts/server/staff.js @@ -46,7 +46,7 @@ function setStaffTitleCommand(command, params, client) { return false; } - let splitParams = params.split(""); + let splitParams = params.split(" "); let targetClient = getPlayerFromParams(getParam(params, " ", 1)); let staffTitle = splitParams.slice(1).join(" "); @@ -999,20 +999,16 @@ function forcePlayerSkinCommand(command, params, client) { // return false; //} - let splitParams = params.split(""); + let splitParams = params.split(" "); let targetClient = getPlayerFromParams(splitParams[0]); let skinIndex = getSkinModelIndexFromParams(splitParams.slice(1).join(" "), getGame()); - console.warn(targetClient.name); - console.warn(splitParams.slice(1).join(" ")); - console.warn(skinIndex); - if(!targetClient) { messagePlayerError(client, getLocaleString(client, "InvalidPlayer")); return false; } - if(skinIndex == false) { + if(!skinIndex) { messagePlayerError(client, getLocaleString(client, "InvalidSkin")); return false; } @@ -1036,7 +1032,7 @@ function setPlayerHealthCommand(command, params, client) { // return false; //} - let splitParams = params.split(""); + let splitParams = params.split(" "); let targetClient = getParam(params, " ", 1); let health = getParam(params, " ", 2); From 48ae78084e53e9ff5c9b5fb70fc80c9f08010c78 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Tue, 8 Mar 2022 15:01:11 -0600 Subject: [PATCH 016/579] Disable skin change --- scripts/client/server.js | 5 +++-- scripts/client/skin-select.js | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/scripts/client/server.js b/scripts/client/server.js index 7146c918..2bd4bf32 100644 --- a/scripts/client/server.js +++ b/scripts/client/server.js @@ -303,8 +303,9 @@ function setLocalPlayerInfiniteRun(state) { function setLocalPlayerSkin(skinId) { if(getGame() == VRR_GAME_GTA_IV) { - //natives.changePlayerModel(natives.getPlayerId(), skinId); - localPlayer.skin = allowedSkins[skinSelectorIndex][0]; + natives.changePlayerModel(natives.getPlayerId(), skinId); + //localPlayer.skin = allowedSkins[skinSelectorIndex][0]; + //localPlayer.modelIndex = allowedSkins[skinSelectorIndex][0]; } else { localPlayer.skin = skinId; } diff --git a/scripts/client/skin-select.js b/scripts/client/skin-select.js index 2f3149e7..2b361383 100644 --- a/scripts/client/skin-select.js +++ b/scripts/client/skin-select.js @@ -55,7 +55,8 @@ function processSkinSelectKeyPress(keyCode) { skinSelectMessageTextTop = allowedSkins[skinSelectorIndex][1]; if(getGame() == VRR_GAME_GTA_IV) { //natives.changePlayerModel(natives.getPlayerId(), allowedSkins[skinSelectorIndex][0]); - localPlayer.skin = allowedSkins[skinSelectorIndex][0]; + //localPlayer.skin = allowedSkins[skinSelectorIndex][0]; + //localPlayer.modelIndex = allowedSkins[skinSelectorIndex][0]; } else { localPlayer.skin = allowedSkins[skinSelectorIndex][0]; } @@ -69,7 +70,8 @@ function processSkinSelectKeyPress(keyCode) { skinSelectMessageTextTop = allowedSkins[skinSelectorIndex][1]; if(getGame() == VRR_GAME_GTA_IV) { //natives.changePlayerModel(natives.getPlayerId(), allowedSkins[skinSelectorIndex][0]); - localPlayer.skin = allowedSkins[skinSelectorIndex][0]; + //localPlayer.skin = allowedSkins[skinSelectorIndex][0]; + //localPlayer.modelIndex = allowedSkins[skinSelectorIndex][0]; } else { localPlayer.skin = allowedSkins[skinSelectorIndex][0]; } From 9ce663c1cdc6812b3316e3f26e91e89612f39073 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Tue, 8 Mar 2022 15:01:22 -0600 Subject: [PATCH 017/579] Don't set population stuff --- scripts/client/startup.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/client/startup.js b/scripts/client/startup.js index 58d85b31..bd38327f 100644 --- a/scripts/client/startup.js +++ b/scripts/client/startup.js @@ -138,14 +138,14 @@ function setUpInitialGame() { natives.setPlayersDropMoneyInNetworkGame(false); // Population - natives.dontSuppressAnyCarModels(5.0); - natives.dontSuppressAnyPedModels(5.0); - natives.forceGenerateParkedCarsTooCloseToOthers(true); - natives.setParkedCarDensityMultiplier(5.0); - natives.setRandomCarDensityMultiplier(5.0); - natives.setPedDensityMultiplier(5.0); - natives.setCarDensityMultiplier(5.0); - natives.setScenarioPedDensityMultiplier(5.0, 5.0); + //natives.dontSuppressAnyCarModels(5.0); + //natives.dontSuppressAnyPedModels(5.0); + //natives.forceGenerateParkedCarsTooCloseToOthers(true); + //natives.setParkedCarDensityMultiplier(5.0); + //natives.setRandomCarDensityMultiplier(5.0); + //natives.setPedDensityMultiplier(5.0); + //natives.setCarDensityMultiplier(5.0); + //natives.setScenarioPedDensityMultiplier(5.0, 5.0); natives.switchRandomTrains(true); natives.switchRandomBoats(true); natives.switchAmbientPlanes(true); From dfb0578044fa130b01a01ea11e24d17663951baf Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Tue, 8 Mar 2022 15:01:30 -0600 Subject: [PATCH 018/579] Fix for server settings --- scripts/server/config.js | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/scripts/server/config.js b/scripts/server/config.js index 815f7df1..829c0be9 100644 --- a/scripts/server/config.js +++ b/scripts/server/config.js @@ -84,6 +84,22 @@ function initConfigScript() { serverConfig = loadServerConfigFromGameAndPort(server.game, server.port, getMultiplayerMod()); logToConsole(LOG_DEBUG, "[VRR.Config]: Applying server config ..."); + + getServerConfig().fallingSnow = hasBitFlag(getServerConfig().settings, getServerSettingsFlagValue("FallingSnow")); + getServerConfig().groundSnow = hasBitFlag(getServerConfig().settings, getServerSettingsFlagValue("GroundSnow")); + getServerConfig().useGUI = hasBitFlag(getServerConfig().settings, getServerSettingsFlagValue("GUI")); + getServerConfig().showLogo = hasBitFlag(getServerConfig().settings, getServerSettingsFlagValue("Logo")); + getServerConfig().testerOnly = hasBitFlag(getServerConfig().settings, getServerSettingsFlagValue("Testing")); + getServerConfig().discordEnabled = hasBitFlag(getServerConfig().settings, getServerSettingsFlagValue("DiscordBot")); + getServerConfig().createJobPickups = hasBitFlag(getServerConfig().settings, getServerSettingsFlagValue("JobPickups")); + getServerConfig().createBusinessPickups = hasBitFlag(getServerConfig().settings, getServerSettingsFlagValue("BusinessPickups")); + getServerConfig().createHousePickups = hasBitFlag(getServerConfig().settings, getServerSettingsFlagValue("HousePickups")); + getServerConfig().createJobBlips = hasBitFlag(getServerConfig().settings, getServerSettingsFlagValue("JobBlips")); + getServerConfig().createBusinessBlips = hasBitFlag(getServerConfig().settings, getServerSettingsFlagValue("BusinessBlips")); + getServerConfig().createHouseBlips = hasBitFlag(getServerConfig().settings, getServerSettingsFlagValue("HouseBlips")); + getServerConfig().useRealTime = hasBitFlag(getServerConfig().settings, getServerSettingsFlagValue("RealTime")); + getServerConfig().antiCheat.enabled = hasBitFlag(getServerConfig().settings, getServerSettingsFlagValue("Anticheat")); + applyConfigToServer(serverConfig); logToConsole(LOG_DEBUG, "[VRR.Config]: All config loaded and applied successfully!"); @@ -131,22 +147,6 @@ function loadServerConfigFromId(tempServerId) { if(dbQuery.numRows > 0) { let dbAssoc = fetchQueryAssoc(dbQuery); let tempServerConfigData = new ServerData(dbAssoc); - - tempServerConfigData.fallingSnow = hasBitFlag(tempServerConfigData.settings, getServerSettingsFlagValue("FallingSnow")); - tempServerConfigData.groundSnow = hasBitFlag(tempServerConfigData.settings, getServerSettingsFlagValue("GroundSnow")); - tempServerConfigData.useGUI = hasBitFlag(tempServerConfigData.settings, getServerSettingsFlagValue("GUI")); - tempServerConfigData.showLogo = hasBitFlag(tempServerConfigData.settings, getServerSettingsFlagValue("Logo")); - tempServerConfigData.testerOnly = hasBitFlag(tempServerConfigData.settings, getServerSettingsFlagValue("Testing")); - tempServerConfigData.discordEnabled = hasBitFlag(tempServerConfigData.settings, getServerSettingsFlagValue("DiscordBot")); - tempServerConfigData.createJobPickups = hasBitFlag(tempServerConfigData.settings, getServerSettingsFlagValue("JobPickups")); - tempServerConfigData.createBusinessPickups = hasBitFlag(tempServerConfigData.settings, getServerSettingsFlagValue("BusinessPickups")); - tempServerConfigData.createHousePickups = hasBitFlag(tempServerConfigData.settings, getServerSettingsFlagValue("HousePickups")); - tempServerConfigData.createJobBlips = hasBitFlag(tempServerConfigData.settings, getServerSettingsFlagValue("JobBlips")); - tempServerConfigData.createBusinessBlips = hasBitFlag(tempServerConfigData.settings, getServerSettingsFlagValue("BusinessBlips")); - tempServerConfigData.createHouseBlips = hasBitFlag(tempServerConfigData.settings, getServerSettingsFlagValue("HouseBlips")); - tempServerConfigData.useRealTime = hasBitFlag(tempServerConfigData.settings, getServerSettingsFlagValue("RealTime")); - tempServerConfigData.antiCheat.enabled = hasBitFlag(tempServerConfigData.settings, getServerSettingsFlagValue("Anticheat")); - freeDatabaseQuery(dbQuery); return tempServerConfigData; } From 9a09dcbe3cb21ca269dfb0ff127cc7f797f7ea34 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Tue, 8 Mar 2022 15:01:36 -0600 Subject: [PATCH 019/579] Testing --- scripts/server/subaccount.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/server/subaccount.js b/scripts/server/subaccount.js index e9a16789..af332474 100644 --- a/scripts/server/subaccount.js +++ b/scripts/server/subaccount.js @@ -375,6 +375,11 @@ function selectCharacter(client, characterId = -1) { spawnPlayer(client, spawnPosition, spawnHeading, getGameConfig().skins[getGame()][skin][0], spawnInterior, spawnDimension); } else if(getGame() == VRR_GAME_GTA_IV) { spawnPlayer(client, spawnPosition, spawnHeading, getGameConfig().skins[getGame()][skin][0], spawnInterior, spawnDimension); + //setPlayerSkin(client, skin); + //setPlayerPosition(client, spawnPosition); + //setPlayerHeading(client, spawnHeading); + //setPlayerInterior(client, spawnInterior); + //setPlayerDimension(client, spawnDimension); } else if(getGame() >= VRR_GAME_MAFIA_ONE) { spawnPlayer(client, getGameConfig().skins[getGame()][skin][0], spawnPosition, spawnHeading); } From 9274a83cf16668e9d5f5b7c4554c3c59121c1580 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Tue, 8 Mar 2022 15:01:47 -0600 Subject: [PATCH 020/579] Add melee weapon data --- scripts/shared/gamedata.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/scripts/shared/gamedata.js b/scripts/shared/gamedata.js index 75a543ac..b7487a02 100644 --- a/scripts/shared/gamedata.js +++ b/scripts/shared/gamedata.js @@ -3320,10 +3320,18 @@ let gameData = { ], meleeWeapons: [ [], - [1], - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], - [], + [1], // III + [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], // VC + [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], // SA + [], // UG + [1, 3], // IV + [], // Invalid + [], // Invalid + [], // Invalid + [], // M1 + [], // M2 + [], // M3 + [], // M1DE ], blipSprites: [ false, From b74e3b1152b5d130a0ab3e186bf7fc6de92ad887 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Tue, 8 Mar 2022 15:09:03 -0600 Subject: [PATCH 021/579] More locale strings --- locale/chinese.json | 4 +++- locale/english.json | 4 +++- locale/polish.json | 4 +++- locale/russian.json | 4 +++- locale/spanish.json | 4 +++- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/locale/chinese.json b/locale/chinese.json index 57eab3d4..5286e7db 100644 --- a/locale/chinese.json +++ b/locale/chinese.json @@ -391,5 +391,7 @@ "NotATester": "You are not a tester!", "AccessDenied": "AccessDenied", "InvalidSkin": "That skin is invalid!", - "HeaderInteriorTypes": "Interiors" + "HeaderInteriorTypes": "Interiors List", + "ViewInventoryKeyPressTip": "Press {1} to see your items", + "ViewInventoryCommandTip": "Use {1} to see your items" } diff --git a/locale/english.json b/locale/english.json index db17cb30..5f68c88e 100644 --- a/locale/english.json +++ b/locale/english.json @@ -391,5 +391,7 @@ "NotATester": "You are not a tester!", "AccessDenied": "AccessDenied", "InvalidSkin": "That skin is invalid!", - "HeaderInteriorTypes": "Interiors" + "HeaderInteriorTypes": "Interiors List", + "ViewInventoryKeyPressTip": "Press {1} to see your items", + "ViewInventoryCommandTip": "Use {1} to see your items" } diff --git a/locale/polish.json b/locale/polish.json index 02a57f7c..e38d5e1f 100644 --- a/locale/polish.json +++ b/locale/polish.json @@ -391,5 +391,7 @@ "NotATester": "You are not a tester!", "AccessDenied": "AccessDenied", "InvalidSkin": "That skin is invalid!", - "HeaderInteriorTypes": "Interiors" + "HeaderInteriorTypes": "Interiors List", + "ViewInventoryKeyPressTip": "Press {1} to see your items", + "ViewInventoryCommandTip": "Use {1} to see your items" } diff --git a/locale/russian.json b/locale/russian.json index b9a0ade7..82a535d2 100644 --- a/locale/russian.json +++ b/locale/russian.json @@ -390,5 +390,7 @@ "NotATester": "Вы не тестировщик!", "AccessDenied": "Доступ запрещен", "InvalidSkin": "That skin is invalid!", - "HeaderInteriorTypes": "Interiors" + "HeaderInteriorTypes": "Interiors List", + "ViewInventoryKeyPressTip": "Press {1} to see your items", + "ViewInventoryCommandTip": "Use {1} to see your items" } diff --git a/locale/spanish.json b/locale/spanish.json index 070a9811..7562b925 100644 --- a/locale/spanish.json +++ b/locale/spanish.json @@ -395,5 +395,7 @@ "NotATester": "You are not a tester!", "AccessDenied": "AccessDenied", "InvalidSkin": "That skin is invalid!", - "HeaderInteriorTypes": "Interiors" + "HeaderInteriorTypes": "Interiors List", + "ViewInventoryKeyPressTip": "Press {1} to see your items", + "ViewInventoryCommandTip": "Use {1} to see your items" } From 9887536bcc37237dea082bd21f2d2ee01cada170 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Wed, 9 Mar 2022 00:12:44 -0600 Subject: [PATCH 022/579] Start working on checkpoint display --- scripts/client/label.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/client/label.js b/scripts/client/label.js index a8d2664d..d794b549 100644 --- a/scripts/client/label.js +++ b/scripts/client/label.js @@ -251,8 +251,10 @@ function processLabelRendering() { if(localPlayer != null) { if(!areServerElementsSupported()) { //for(let i in businesses) { - // if(pickups[i].getData("vrr.label.type") != null) { - // if(getDistance(localPlayer.position, pickups[i].position) <= renderLabelDistance) { + // if(getDistance(localPlayer.position, businesses[i].entrancePosition) <= 75.0) { + // natives.drawColouredCylinder(businesses[i].entrancePosition, 0.0, 0.0, 0, 153, 255); + // } + //} // natives.getScreenViewportId // natives.getGameViewportId From a5afefaf39b706354a53f62022e0f9b6033e2888 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Wed, 9 Mar 2022 00:12:54 -0600 Subject: [PATCH 023/579] Add client house script --- meta.xml | 1 + scripts/client/house.js | 82 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 scripts/client/house.js diff --git a/meta.xml b/meta.xml index dd4d6d07..79e7de37 100644 --- a/meta.xml +++ b/meta.xml @@ -119,6 +119,7 @@