From 2f5d0865a183b1624a0bebe1400b6ee50bd4a51d Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Sun, 10 Apr 2022 00:01:08 -0500 Subject: [PATCH] Check if dev server before loading/save --- scripts/server/business.js | 85 +++++++++++++++++++++++---------- scripts/server/house.js | 96 ++++++++++++++++++++++++-------------- scripts/server/npc.js | 57 ++++++++++++++-------- scripts/server/radio.js | 5 +- scripts/server/vehicle.js | 13 ++++-- 5 files changed, 171 insertions(+), 85 deletions(-) diff --git a/scripts/server/business.js b/scripts/server/business.js index 8dc31b22..cbbcde36 100644 --- a/scripts/server/business.js +++ b/scripts/server/business.js @@ -9,7 +9,9 @@ function initBusinessScript() { logToConsole(LOG_INFO, "[VRR.Business]: Initializing business script ..."); - getServerData().businesses = loadBusinessesFromDatabase(); + if(!getServerConfig().devServer) { + getServerData().businesses = loadBusinessesFromDatabase(); + } createAllBusinessPickups(); createAllBusinessBlips(); @@ -151,7 +153,7 @@ function createBusinessCommand(command, params, client) { let businessId = getServerData().businesses.push(tempBusinessData); setAllBusinessIndexes(); - saveAllBusinessesToDatabase(); + saveBusinessesToDatabase(); createBusinessEntrancePickup(businessId-1); createBusinessExitPickup(businessId-1); @@ -1571,7 +1573,11 @@ function getPlayerBusiness(client) { * @return {Boolean} Whether or not the businesses were saved * */ -function saveAllBusinessesToDatabase() { +function saveBusinessesToDatabase() { + if(getServerConfig().devServer) { + return false; + } + for(let i in getServerData().businesses) { if(getServerData().businesses[i].needsSaved) { saveBusinessToDatabase(i); @@ -1722,11 +1728,19 @@ function createBusinessEntrancePickup(businessId) { logToConsole(LOG_VERBOSE, `[VRR.Job]: Creating entrance pickup for business ${getBusinessData(businessId).name} (model ${pickupModelId})`); if(areServerElementsSupported()) { - getBusinessData(businessId).entrancePickup = createGamePickup(pickupModelId, getBusinessData(businessId).entrancePosition, getGameConfig().pickupTypes[getServerGame()].business); - setElementOnAllDimensions(getBusinessData(businessId).entrancePickup, false); - setElementDimension(getBusinessData(businessId).entrancePickup, getBusinessData(businessId).entranceDimension); - updateBusinessPickupLabelData(businessId); - addToWorld(getBusinessData(businessId).entrancePickup); + let entrancePickup = createGamePickup(pickupModelId, getBusinessData(businessId).entrancePosition, getGameConfig().pickupTypes[getServerGame()].business); + if(entrancePickup != null) { + setElementOnAllDimensions(entrancePickup, false); + setElementDimension(entrancePickup, getBusinessData(businessId).entranceDimension); + setElementOnAllDimensions(entrancePickup, false); + setElementStreamInDistance(entrancePickup, getGlobalConfig().houseBlipStreamInDistance); + setElementStreamOutDistance(entrancePickup, getGlobalConfig().houseBlipStreamOutDistance); + setElementTransient(entrancePickup, false); + addToWorld(entrancePickup); + + getBusinessData(businessId).entrancePickup = entrancePickup; + updateBusinessPickupLabelData(businessId); + } } else { sendBusinessToPlayer(null, businessId, getBusinessData(businessId), getBusinessData(businessId).entrancePosition, getBusinessData(businessId).entranceBlipModel, getBusinessData(businessId).entrancePickupModel, getBusinessData(businessId).hasInterior, false); } @@ -1765,10 +1779,20 @@ function createBusinessEntranceBlip(businessId) { logToConsole(LOG_VERBOSE, `[VRR.Job]: Creating entrance blip for business ${getBusinessData(businessId).name} (model ${blipModelId})`); if(areServerElementsSupported()) { - getBusinessData(businessId).entranceBlip = createGameBlip(getBusinessData(businessId).entrancePosition, blipModelId, 1, getColourByName("businessBlue")); - setElementOnAllDimensions(getBusinessData(businessId).entranceBlip, false); - setElementDimension(getBusinessData(businessId).entranceBlip, getBusinessData(businessId).entranceDimension); - addToWorld(getBusinessData(businessId).entranceBlip); + let entranceBlip = createGameBlip(getBusinessData(businessId).entrancePosition, blipModelId, 1, getColourByName("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); + addToWorld(entranceBlip); + + getBusinessData(businessId).entranceBlip = entranceBlip; + } + } else { sendBusinessToPlayer(null, businessId, getBusinessData(businessId).name, getBusinessData(businessId).entrancePosition, blipModelId, getBusinessData(businessId).entrancePickupModel, getBusinessData(businessId).hasInterior, false); } @@ -1800,11 +1824,18 @@ function createBusinessExitPickup(businessId) { logToConsole(LOG_VERBOSE, `[VRR.Job]: Creating exit pickup for business ${getBusinessData(businessId).name} (model ${pickupModelId})`); if(areServerElementsSupported()) { - getBusinessData(businessId).exitPickup = createGamePickup(pickupModelId, getBusinessData(businessId).exitPosition, getGameConfig().pickupTypes[getServerGame()].business); - setElementDimension(getBusinessData(businessId).exitPickup, getBusinessData(businessId).exitDimension); - setElementOnAllDimensions(getBusinessData(businessId).exitPickup, false); - updateBusinessPickupLabelData(businessId); - addToWorld(getBusinessData(businessId).exitPickup); + let exitPickup = createGamePickup(pickupModelId, getBusinessData(businessId).exitPosition, getGameConfig().pickupTypes[getServerGame()].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); + + getBusinessData(businessId).exitPickup = exitPickup; + updateBusinessPickupLabelData(businessId); + } } } } @@ -1835,13 +1866,17 @@ function createBusinessExitBlip(businessId) { if(areServerElementsSupported()) { logToConsole(LOG_VERBOSE, `[VRR.Job]: Creating exit blip for business ${getBusinessData(businessId).name} (model ${blipModelId})`); - 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); - addToWorld(getBusinessData(businessId).exitBlip); + let exitBlip = createGameBlip(getBusinessData(businessId).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); + + getBusinessData(businessId).exitBlip = exitBlip; + } } } } @@ -2255,7 +2290,7 @@ function buyFromBusinessCommand(command, params, client) { let keyData = getPlayerKeyBindForCommand("inv"); messagePlayerNewbieTip(client, getLocaleString(client, "ViewInventoryKeyPressTip", `{ALTCOLOUR}${getKeyNameFromId(keyData.key)}{MAINCOLOUR}`)); } else { - messagePlayerNewbieTip(client, getLocaleString(client, "ViewInventoryKeyPressTip", `{ALTCOLOUR}/inv{MAINCOLOUR}`)); + messagePlayerNewbieTip(client, getLocaleString(client, "ViewInventoryCommandTip", `{ALTCOLOUR}/inv{MAINCOLOUR}`)); } } diff --git a/scripts/server/house.js b/scripts/server/house.js index 97499fd3..7677232b 100644 --- a/scripts/server/house.js +++ b/scripts/server/house.js @@ -9,7 +9,9 @@ function initHouseScript() { logToConsole(LOG_INFO, "[VRR.House]: Initializing house script ..."); - getServerData().houses = loadHousesFromDatabase(); + if(!getServerConfig().devServer) { + getServerData().houses = loadHousesFromDatabase(); + } if(getServerConfig().createHousePickups) { createAllHousePickups(); @@ -718,7 +720,11 @@ function getPlayerHouse(client) { // =========================================================================== -function saveAllHousesToDatabase() { +function saveHousesToDatabase() { + if(getServerConfig().devServer) { + return false; + } + logToConsole(LOG_INFO, `[VRR.House]: Saving all server houses to database ...`); for(let i in getServerData().houses) { if(getServerData().houses[i].needsSaved) { @@ -878,14 +884,20 @@ function createHouseEntrancePickup(houseId) { pickupModelId = getHouseData(houseId).entrancePickupModel; } - if(areServerElementsSupported()) { - 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); - setElementTransient(getHouseData(houseId).entrancePickup, false); - addToWorld(getHouseData(houseId).entrancePickup); + if(areServerElementsSupported()) { + let entrancePickup = createGamePickup(pickupModelId, getHouseData(houseId).entrancePosition, getGameConfig().pickupTypes[getServerGame()].house); + if(entrancePickup != null) { + setElementOnAllDimensions(entrancePickup, false); + setElementDimension(entrancePickup, getHouseData(houseId).entranceDimension); + setElementStreamInDistance(entrancePickup, getGlobalConfig().housePickupStreamInDistance); + setElementStreamOutDistance(entrancePickup, getGlobalConfig().housePickupStreamOutDistance); + setElementTransient(entrancePickup, false); + addToWorld(entrancePickup); + + getHouseData(houseId).entrancePickup = entrancePickup; + updateHousePickupLabelData(houseId); + } + } } } @@ -904,15 +916,19 @@ function createHouseEntranceBlip(houseId) { } if(areServerElementsSupported()) { - 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); - 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); + let entranceBlip = createGameBlip(getHouseData(houseId).entrancePosition, blipModelId, 1, 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); + addToWorld(entranceBlip); + + getHouseData(houseId).entranceBlip = entranceBlip; + } } } } @@ -933,15 +949,19 @@ function createHouseExitPickup(houseId) { } if(areServerElementsSupported()) { - 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); - setElementTransient(getHouseData(houseId).exitPickup, false); - addToWorld(getHouseData(houseId).exitPickup); + let exitPickup = createGamePickup(pickupModelId, getHouseData(houseId).exitPosition, getGameConfig().pickupTypes[getServerGame()].house); + if(exitPickup != null) { + setElementDimension(exitPickup, getHouseData(houseId).exitDimension); + setElementOnAllDimensions(exitPickup, false); + setElementStreamInDistance(exitPickup, getGlobalConfig().housePickupStreamInDistance); + setElementStreamOutDistance(exitPickup, getGlobalConfig().housePickupStreamOutDistance); + setElementTransient(exitPickup, false); + addToWorld(exitPickup); + + getHouseData(houseId).exitPickup = exitPickup; + updateHousePickupLabelData(houseId); + } } - updateHousePickupLabelData(houseId); } } } @@ -962,15 +982,19 @@ function createHouseExitBlip(houseId) { } if(areServerElementsSupported()) { - 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); - 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); + 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); + addToWorld(exitBlip); + + getHouseData(houseId).exitBlip = exitBlip; + } } } } diff --git a/scripts/server/npc.js b/scripts/server/npc.js index 8f34166a..33a65dce 100644 --- a/scripts/server/npc.js +++ b/scripts/server/npc.js @@ -8,10 +8,12 @@ // =========================================================================== function initNPCScript() { - getServerData().npcs = loadNPCsFromDatabase(); - setAllNPCDataIndexes(); + if(!getServerConfig().devServer) { + getServerData().npcs = loadNPCsFromDatabase(); + } - spawnAllNPCs(); + setNPCDataIndexes(); + spawnNPCs(); } // =========================================================================== @@ -44,15 +46,8 @@ function createNPCCommand(client, command, params) { let position = getPosInFrontOfPos(getPlayerPosition(client), getPlayerHeading(client), 3); - let tempNPCData = new NPCData(false); - tempNPCData.position = position; - tempNPCData.heading = getPlayerHeading(client); - tempNPCData.skin = skinId; - - let npcIndex = getServerData().npcs.push(tempNPCData); - - spawnNPC(npcIndex-1); - setAllNPCDataIndexes(); + let npcId = createNPC(skinId, position, getPlayerHeading(client)); + messageAdmins(`${client.name}{MAINCOLOUR} created a ${getSkinNameFromIndex(getNPCData(npcId).skin)} NPC!`); } // =========================================================================== @@ -156,7 +151,11 @@ function loadNPCTriggerResponsesFromDatabase(npcTriggerDatabaseId) { // =========================================================================== -function saveAllNPCsToDatabase() { +function saveNPCsToDatabase() { + if(getServerConfig().devServer) { + return false; + } + for(let i in getServerData().npcs) { saveNPCToDatabase(i); } @@ -250,7 +249,7 @@ function saveNPCToDatabase(npcDataId) { // =========================================================================== -function setAllNPCDataIndexes() { +function setNPCDataIndexes() { for(let i in getServerData().npcs) { getServerData().npcs[i].index = i; @@ -277,14 +276,16 @@ function spawnNPC(npcIndex) { let civilian = createGameCivilian(getNPCData(npcIndex).model, getNPCData(npcIndex).spawnPosition, getNPCData(npcIndex).spawnRotation); if(civilian) { civilian.setData("vrr.dataIndex", npcIndex); - civilian.setData("vrr.animation", getNPCData(npcIndex).animationName); + if(getNPCData(npcIndex).animationName != "") { + civilian.setData("vrr.animation", getNPCData(npcIndex).animationName); + } getNPCData(npcIndex).ped = civilian; } } // =========================================================================== -function spawnAllNPCs() { +function spawnNPCs() { for(let i in getServerData().npcs) { spawnNPC(npcIndex); } @@ -308,7 +309,7 @@ function deleteNPCCommand(command, params, client) { let npcName = getNPCData(closestNPC).name; deleteNPC(closestNPC); - messageAdmins(`${client.name}{MAINCOLOUR} deleted NPC {npcPink}${npcName}`) + messageAdmins(`${client.name}{MAINCOLOUR} deleted NPC {npcPink}${npcName}`); } // =========================================================================== @@ -323,7 +324,7 @@ function deleteNPC(npcId) { getServerData().npcs.splice(npcId, 1); } - setAllNPCDataIndexes(); + setNPCDataIndexes(); } // =========================================================================== @@ -360,10 +361,9 @@ function setNPCAnimationCommand(command, params, client) { makePedPlayAnimation(getNPCData(closestNPC).ped, animationId, animationPositionOffset); } - // =========================================================================== -function getClosestHospital(position) { +function getClosestNPC(position) { let npcs = getServerData().npcs; let closest = 0; for(let i in npcs) { @@ -375,4 +375,21 @@ function getClosestHospital(position) { return closest; } +// =========================================================================== + +function createNPC(skinIndex, position, heading) { + let tempNPCData = new NPCData(false); + tempNPCData.position = position; + tempNPCData.heading = heading; + tempNPCData.skin = skinIndex; + tempNPCData.animationName = ""; + + let npcIndex = getServerData().npcs.push(tempNPCData); + + spawnNPC(npcIndex-1); + setNPCDataIndexes(); + + return npcIndex-1; +} + // =========================================================================== \ No newline at end of file diff --git a/scripts/server/radio.js b/scripts/server/radio.js index 5a31d128..fe0e78d6 100644 --- a/scripts/server/radio.js +++ b/scripts/server/radio.js @@ -9,7 +9,10 @@ function initRadioScript() { logToConsole(LOG_INFO, "[VRR.Radio]: Initializing radio script ..."); - getServerData().radioStations = loadRadioStationsFromDatabase(); + if(!getServerConfig().devServer) { + getServerData().radioStations = loadRadioStationsFromDatabase(); + } + setRadioStationIndexes(); logToConsole(LOG_INFO, "[VRR.Radio]: Radio script initialized successfully!"); return true; diff --git a/scripts/server/vehicle.js b/scripts/server/vehicle.js index a0c140c0..01d4777e 100644 --- a/scripts/server/vehicle.js +++ b/scripts/server/vehicle.js @@ -9,7 +9,10 @@ function initVehicleScript() { logToConsole(LOG_INFO, "[VRR.Vehicle]: Initializing vehicle script ..."); - getServerData().vehicles = loadVehiclesFromDatabase(); + if(!getServerConfig().devServer) { + getServerData().vehicles = loadVehiclesFromDatabase(); + } + spawnAllVehicles(); setAllVehicleIndexes(); logToConsole(LOG_INFO, "[VRR.Vehicle]: Vehicle script initialized successfully!"); @@ -42,7 +45,11 @@ function loadVehiclesFromDatabase() { // =========================================================================== -function saveAllVehiclesToDatabase() { +function saveVehiclesToDatabase() { + if(getServerConfig().devServer) { + return false; + } + logToConsole(LOG_INFO, "[VRR.Vehicle]: Saving all server vehicles to database ..."); let vehicles = getServerData().vehicles; for(let i in vehicles) { @@ -1263,7 +1270,7 @@ function spawnVehicle(vehicleData) { if(typeof vehicle.locked != "undefined") { setVehicleLocked(vehicle, intToBool(vehicleData.locked)); - logToConsole(LOG_VERBOSE, `[VRR.Vehicle]: Setting vehicle ${vehicle.id}'s lock state to ${toUpperCase(getOnOffFromBool(getVehicleLockState(vehicle)))}`); + logToConsole(LOG_VERBOSE, `[VRR.Vehicle]: Setting vehicle ${vehicle.id}'s lock state to ${toUpperCase(getOnOffFromBool(getVehicleLocked(vehicle)))}`); } setElementDimension(vehicle.dimension, vehicleData.dimension);