diff --git a/scripts/server/business.js b/scripts/server/business.js index 3e9faaa2..cfaccd8e 100644 --- a/scripts/server/business.js +++ b/scripts/server/business.js @@ -11,8 +11,6 @@ function initBusinessScript() { logToConsole(LOG_INFO, "[VRR.Business]: Initializing business script ..."); getServerData().businesses = loadBusinessesFromDatabase(); - - createAllBusinessPickups(); createAllBusinessBlips(); @@ -139,7 +137,7 @@ function loadBusinessGameScriptsFromDatabase(businessId) { // =========================================================================== function createBusinessCommand(command, params, client) { - let tempBusinessData = createBusiness(params, getPlayerPosition(client), toVector3(0.0, 0.0, 0.0), getGameConfig().pickupModels[getServerGame()].Business, getGameConfig().blipSprites[getServerGame()].Business, getPlayerInterior(client), getPlayerDimension(client)); + let tempBusinessData = createBusiness(params, getPlayerPosition(client), toVector3(0.0, 0.0, 0.0), getGameConfig().pickupModels[getServerGame()].Business, getGameConfig().blipSprites[getServerGame()].Business, getPlayerInterior(client), getPlayerDimension(client), getPlayerData(client).interiorCutscene); tempBusinessData.needsSaved = true; let businessId = getServerData().businesses.push(tempBusinessData); setAllBusinessIndexes(); @@ -182,7 +180,7 @@ function createBusinessLocationCommand(command, params, client) { // =========================================================================== -function createBusiness(name, entrancePosition, exitPosition, entrancePickupModel = -1, entranceBlipModel = -1, entranceInteriorId = 0, entranceVirtualWorld = 0, exitInteriorId = -1, exitVirtualWorld = -1, exitPickupModel = -1, exitBlipModel = -1) { +function createBusiness(name, entrancePosition, exitPosition, entrancePickupModel = -1, entranceBlipModel = -1, entranceInteriorId = 0, entranceVirtualWorld = 0, exitInteriorId = -1, exitVirtualWorld = -1, exitPickupModel = -1, exitBlipModel = -1, entranceCutscene = "") { let tempBusinessData = new BusinessData(false); tempBusinessData.name = name; @@ -192,6 +190,7 @@ function createBusiness(name, entrancePosition, exitPosition, entrancePickupMode tempBusinessData.entranceBlipModel = entranceBlipModel; tempBusinessData.entranceInterior = entranceInteriorId; tempBusinessData.entranceDimension = entranceVirtualWorld; + tempBusinessData.entranceCutscene = entranceCutscene; tempBusinessData.exitPosition = exitPosition; tempBusinessData.exitRotation = 0.0; @@ -717,6 +716,7 @@ function setBusinessInteriorTypeCommand(command, params, client) { getBusinessData(businessId).exitDimension = 0; getBusinessData(businessId).exitInterior = -1; getBusinessData(businessId).hasInterior = false; + getBusinessData(businessId).interiorCutscene = ""; getBusinessData(businessId).exitPickupModel = -1; messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} {MAINCOLOUR}removed business {businessBlue}${getBusinessData(businessId).name}{MAINCOLOUR} interior`); return false; @@ -738,6 +738,9 @@ function setBusinessInteriorTypeCommand(command, params, client) { getBusinessData(businessId).exitInterior = getGameConfig().interiors[getServerGame()][typeParam][1]; getBusinessData(businessId).exitDimension = getBusinessData(businessId).databaseId+getGlobalConfig().businessDimensionStart; getBusinessData(businessId).exitPickupModel = getGameConfig().pickupModels[getServerGame()].Exit; + if(getGameConfig().interiors[getServerGame()][typeParam].length == 3) { + getBusinessData(businessId).interiorCutscene = getGameConfig().interiors[getServerGame()][typeParam][2]; + } getBusinessData(businessId).hasInterior = true; } @@ -1256,6 +1259,8 @@ function saveBusinessToDatabase(businessId) { let dbConnection = connectToDatabase(); if(dbConnection) { let safeBusinessName = escapeDatabaseString(dbConnection, tempBusinessData.name); + let safeExitCutscene = escapeDatabaseString(dbConnection, tempBusinessData.exitCustscene); + let safeEntranceCutscene = escapeDatabaseString(dbConnection, tempBusinessData.entranceCutscene); let data = [ ["biz_server", getServerId()], @@ -1273,6 +1278,7 @@ function saveBusinessToDatabase(businessId) { ["biz_entrance_vw", tempBusinessData.entranceDimension], ["biz_entrance_pickup", tempBusinessData.entrancePickupModel], ["biz_entrance_blip", tempBusinessData.entranceBlipModel], + ["biz_entrance_cutscene", safeEntranceCutscene], ["biz_exit_pos_x", tempBusinessData.exitPosition.x], ["biz_exit_pos_y", tempBusinessData.exitPosition.y], ["biz_exit_pos_z", tempBusinessData.exitPosition.z], @@ -1281,6 +1287,7 @@ function saveBusinessToDatabase(businessId) { ["biz_exit_vw", tempBusinessData.exitDimension], ["biz_exit_pickup", tempBusinessData.exitPickupModel], ["biz_exit_blip", tempBusinessData.exitBlipModel], + ["biz_exit_cutscene", safeExitCutscene], ["biz_has_interior", boolToInt(tempBusinessData.hasInterior)], ["biz_interior_lights", boolToInt(tempBusinessData.interiorLights)], ["biz_label_help_type", tempBusinessData.labelHelpType], diff --git a/scripts/server/class.js b/scripts/server/class.js index 5ece105d..011ceef4 100644 --- a/scripts/server/class.js +++ b/scripts/server/class.js @@ -239,6 +239,10 @@ class ClientData { this.locale = 0; this.enteringVehicle = null; + + this.customDisconnectReason = ""; + + this.interiorCutscene = ""; } }; @@ -524,6 +528,7 @@ class BusinessData { this.entranceBlipModel = -1; this.entrancePickup = null; this.entranceBlip = null; + this.entranceCutscene = ""; this.exitPosition = false; this.exitRotation = 0.0; @@ -533,6 +538,7 @@ class BusinessData { this.exitBlipModel = -1; this.exitPickup = null; this.exitBlip = null; + this.exitCutscene = ""; this.entranceFee = 0; this.till = 0; @@ -557,6 +563,7 @@ class BusinessData { this.entranceDimension = toInteger(dbAssoc["biz_entrance_vw"]); this.entrancePickupModel = toInteger(dbAssoc["biz_entrance_pickup"]); this.entranceBlipModel = toInteger(dbAssoc["biz_entrance_blip"]); + this.entranceCutscene = toString(dbAssoc["biz_entrance_cutscene"]); this.exitPosition = toVector3(dbAssoc["biz_exit_pos_x"], dbAssoc["biz_exit_pos_y"], dbAssoc["biz_exit_pos_z"]); this.exitRotation = toInteger(dbAssoc["biz_exit_rot_z"]); @@ -564,12 +571,14 @@ class BusinessData { this.exitDimension = toInteger(dbAssoc["biz_exit_vw"]); this.exitPickupModel = toInteger(dbAssoc["biz_exit_pickup"]); this.exitBlipModel = toInteger(dbAssoc["biz_exit_blip"]); + this.exitCutscene = toString(dbAssoc["biz_exit_cutscene"]); this.entranceFee = toInteger(dbAssoc["biz_entrance_fee"]); this.till = toInteger(dbAssoc["biz_till"]); this.labelHelpType = toInteger(dbAssoc["biz_label_help_type"]); this.streamingRadioStation = toInteger(dbAssoc["biz_radiostation"]); + } }; }; @@ -658,6 +667,7 @@ class HouseData { this.entranceBlipModel = -1; this.entrancePickup = null; this.entranceBlip = null; + this.entranceCutscene = ""; this.exitPosition = false; this.exitRotation = 0.0; @@ -667,6 +677,7 @@ class HouseData { this.exitBlipModel = -1; this.exitPickup = null; this.exitBlip = null; + this.exitCutscene = ""; this.streamingRadioStation = -1; @@ -688,6 +699,7 @@ class HouseData { this.entranceDimension = toInteger(dbAssoc["house_entrance_vw"]); this.entrancePickupModel = toInteger(dbAssoc["house_entrance_pickup"]); this.entranceBlipModel = toInteger(dbAssoc["house_entrance_blip"]); + this.entranceCutscene = toString(dbAssoc["house_entrance_cutscene"]); this.exitPosition = toVector3(toFloat(dbAssoc["house_exit_pos_x"]), toFloat(dbAssoc["house_exit_pos_y"]), toFloat(dbAssoc["house_exit_pos_z"])); this.exitRotation = toFloat(dbAssoc["house_exit_rot_z"]); @@ -695,6 +707,7 @@ class HouseData { this.exitDimension = toInteger(dbAssoc["house_exit_vw"]); this.exitPickupModel = toInteger(dbAssoc["house_exit_pickup"]); this.exitBlipModel = toInteger(dbAssoc["house_exit_blip"]); + this.exitCutscene = toString(dbAssoc["house_exit_cutscene"]); } } }; diff --git a/scripts/server/client.js b/scripts/server/client.js index 5bd79c7c..3ec3f077 100644 --- a/scripts/server/client.js +++ b/scripts/server/client.js @@ -1143,6 +1143,17 @@ function sendAllHousesToPlayer(client) { // ========================================================================== +function sendAllJobsToPlayer(client) { + //let jobs = getServerData().jobs; + //for(let i in jobs) { + // for(let j in jobs[i].locations) { + // sendJobToPlayer(client, jobs[i].index, jobs[i].name, jobs[i].locations[j].position, jobs[i].blipModel); + // } + //} +} + +// ========================================================================== + function makePlayerHoldObjectModel(client, modelIndex) { sendNetworkEventToPlayer("vrr.holdObject", client, getPlayerData(client).ped, modelIndex); } @@ -1159,4 +1170,11 @@ function requestPlayerPedNetworkId(client) { sendNetworkEventToPlayer("vrr.playerPedId", client); } +// ========================================================================== + +function setPlayerInCutsceneInterior(client, cutsceneName) { + getPlayerData(client).interiorCutscene = cutsceneName; + sendNetworkEventToPlayer("vrr.cutsceneInterior", client, cutsceneName); +} + // ========================================================================== \ No newline at end of file diff --git a/scripts/server/house.js b/scripts/server/house.js index b9dee72c..6fb30280 100644 --- a/scripts/server/house.js +++ b/scripts/server/house.js @@ -737,6 +737,8 @@ function saveHouseToDatabase(houseId) { let dbConnection = connectToDatabase(); if(dbConnection) { let safeHouseDescription = escapeDatabaseString(dbConnection, tempHouseData.description); + let safeExitCutscene = escapeDatabaseString(dbConnection, tempHouseData.exitCutscene); + let safeEntranceCutscene = escapeDatabaseString(dbConnection, tempHouseData.entranceCutscene); let data = [ ["house_server", getServerId()], @@ -753,6 +755,7 @@ function saveHouseToDatabase(houseId) { ["house_entrance_vw", tempHouseData.entranceDimension], ["house_entrance_pickup", tempHouseData.entrancePickupModel], ["house_entrance_blip", tempHouseData.entranceBlipModel], + ["house_entrance_cutscene", safeEntranceCutscene], ["house_exit_pos_x", tempHouseData.exitPosition.x], ["house_exit_pos_y", tempHouseData.exitPosition.y], ["house_exit_pos_z", tempHouseData.exitPosition.z], @@ -761,10 +764,12 @@ function saveHouseToDatabase(houseId) { ["house_exit_vw", tempHouseData.exitDimension], ["house_exit_pickup", tempHouseData.exitPickupModel], ["house_exit_blip", tempHouseData.exitBlipModel], + ["house_exit_cutscene", safeExitCutscene], ["house_buy_price", tempHouseData.buyPrice], ["house_rent_price", tempHouseData.rentPrice], ["house_has_interior", boolToInt(tempHouseData.hasInterior)], ["house_interior_lights", boolToInt(tempHouseData.interiorLights)], + ]; let dbQuery = null;