Add server job sphere, fix some route/loc cmds

This commit is contained in:
Vortrex
2022-07-30 08:17:07 -05:00
parent ab4339c46b
commit 0b54145764

View File

@@ -127,11 +127,13 @@ class JobRouteData {
this.detail = 0;
this.startMessage = "";
this.finishMessage = "";
//this.failedMessage = "";
this.locationArriveMessage = "";
this.locationGotoMessage = "";
this.locations = [];
this.whoCreated = 0;
this.whenCreated = 0;
this.sphere = null;
if (dbAssoc) {
this.databaseId = toInteger(dbAssoc["job_route_id"]);
@@ -142,6 +144,7 @@ class JobRouteData {
this.pay = toInteger(dbAssoc["job_route_pay"]);
this.startMessage = toString(dbAssoc["job_route_start_msg"]);
this.finishMessage = toString(dbAssoc["job_route_finish_msg"]);
//this.finishMessage = toString(dbAssoc["job_route_failed_msg"]);
this.locationArriveMessage = toString(dbAssoc["job_route_loc_arrive_msg"]);
this.locationGotoMessage = toString(dbAssoc["job_route_loc_goto_msg"]);
this.vehicleColour1 = toInteger(dbAssoc["job_route_veh_colour1"]);
@@ -149,6 +152,7 @@ class JobRouteData {
this.detail = toInteger(dbAssoc["job_route_detail"]);
this.whoCreated = dbAssoc["job_route_who_added"];
this.whenCreated = dbAssoc["job_route_when_added"];
this.sphere = null;
}
}
};
@@ -884,7 +888,7 @@ function jobListCommand(command, params, client) {
return false;
}
let jobList = getServerData().jobs.map(function (x) { return `${x.name}` });
let jobList = getServerData().jobs.map(function (x) { return `[${hexFromToColour(x.colour)}]${x.name}{MAINCOLOUR}` });
let chunkedList = splitArrayIntoChunks(jobList, 4);
messagePlayerNormal(client, makeChatBoxSectionHeader(getLocaleString(client, "HeaderJobList")));
@@ -1637,7 +1641,7 @@ function setJobBlipCommand(command, params, client) {
return false;
}
if (!areThereEnoughParams(params, 4, " ")) {
if (!areThereEnoughParams(params, 2, " ")) {
messagePlayerSyntax(client, getCommandSyntaxText(command));
return false;
}
@@ -1652,16 +1656,18 @@ function setJobBlipCommand(command, params, client) {
if (toLowerCase(blipParam) == "none") {
blipId = -1;
} else {
let blipTypes = Object.keys(getGameConfig().blipSprites[getGame()]).join(", ");
let chunkedList = splitArrayIntoChunks(blipTypes, 10);
if (isNull(getGameConfig().blipSprites[getGame()][typeParam])) {
let blipTypes = Object.keys(getGameConfig().blipSprites[getGame()]);
let chunkedList = splitArrayIntoChunks(blipTypes, 10);
messagePlayerNormal(client, makeChatBoxSectionHeader(getLocaleString(client, "HeaderBlipTypes")));
for (let i in chunkedList) {
messagePlayerInfo(client, chunkedList[i].join(", "));
messagePlayerNormal(client, makeChatBoxSectionHeader(getLocaleString(client, "HeaderBlipTypes")));
for (let i in chunkedList) {
messagePlayerInfo(client, chunkedList[i].join(", "));
}
} else {
blipId = getGameConfig().blipSprites[getGame()][blipParam];
blipString = toString(blipParam);
}
blipId = getGameConfig().blipSprites[getGame()][blipParam];
blipString = toString(blipParam);
}
} else {
blipId = toInteger(blipParam);
@@ -1682,7 +1688,7 @@ function setJobPickupCommand(command, params, client) {
return false;
}
if (!areThereEnoughParams(params, 4, " ")) {
if (!areThereEnoughParams(params, 2, " ")) {
messagePlayerSyntax(client, getCommandSyntaxText(command));
return false;
}
@@ -1691,22 +1697,26 @@ function setJobPickupCommand(command, params, client) {
let pickupParam = getParam(params, " ", 2);
let pickupId = getJobData(jobId).pickupModel;
let pickupString = "unchanged";
let pickupString = "none";
if (isNaN(pickupParam)) {
if (toLowerCase(pickupParam) == "none") {
pickupId = -1;
} else {
let pickupTypes = Object.keys(getGameConfig().pickupModels[getGame()]).join(", ");
let chunkedList = splitArrayIntoChunks(pickupTypes, 10);
if (isNull(getGameConfig().pickupModels[getGame()][pickupParam])) {
messagePlayerError(client, "Invalid pickup type! Use a pickup type name or a model ID");
let pickupTypes = Object.keys(getGameConfig().pickupModels[getGame()]);
let chunkedList = splitArrayIntoChunks(pickupTypes, 10);
messagePlayerNormal(client, makeChatBoxSectionHeader(getLocaleString(client, "HeaderPickupTypes")));
for (let i in chunkedList) {
messagePlayerInfo(client, chunkedList[i].join(", "));
messagePlayerNormal(client, makeChatBoxSectionHeader(getLocaleString(client, "HeaderPickupTypes")));
for (let i in chunkedList) {
messagePlayerInfo(client, chunkedList[i].join(", "));
}
return false;
} else {
pickupId = getGameConfig().pickupModels[getGame()][pickupParam];
pickupString = toString(pickupParam);
}
pickupId = getGameConfig().pickupModels[getGame()][pickupParam];
pickupString = toString(pickupParam);
}
} else {
pickupId = toInteger(pickupParam);
@@ -1795,7 +1805,7 @@ function setJobRouteAllLocationDelaysCommand(command, params, client) {
}
for (let i in getJobData(jobId).routes[jobRoute].locations) {
getJobData(jobId).routes[jobRoute].locations[i].stopDelay = delay;
getJobData(jobId).routes[jobRoute].locations[i].stopDelay = toInteger(delay);
getJobData(jobId).routes[jobRoute].locations[i].needsSaved = true;
}
@@ -1854,14 +1864,9 @@ function setJobRouteNextLocationArriveMessageCommand(command, params, client) {
let jobId = getPlayerJob(client);
let jobRoute = getPlayerJobRoute(client);
let delay = getParam(params, " ", 1);
let message = params;
if (isNaN(delay)) {
messagePlayerError(client, getLocaleString(client, "TimeNotNumber"))
return false;
}
getPlayerData(client).jobRouteEditNextLocationArriveMessage = delay;
getPlayerData(client).jobRouteEditNextLocationArriveMessage = message;
messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} set the arrival message for the next message on route {ALTCOLOUR}${getJobData(jobId).routes[jobRoute].name}{MAINCOLOUR} for the {jobYellow}${getJobData(jobId).name}{MAINCOLOUR} job to {ALTCOLOUR}${message}{MAINCOLOUR}`);
}
@@ -1888,11 +1893,6 @@ function setJobRouteNextLocationGotoMessageCommand(command, params, client) {
let jobRoute = getPlayerJobRoute(client);
let message = params;
if (isNaN(delay)) {
messagePlayerError(client, getLocaleString(client, "TimeNotNumber"))
return false;
}
getPlayerData(client).jobRouteEditNextLocationGotoMessage = message;
messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} set the goto message for the next location on route {ALTCOLOUR}${getJobData(jobId).routes[jobRoute].name}{MAINCOLOUR} for the {jobYellow}${getJobData(jobId).name}{MAINCOLOUR} job to {ALTCOLOUR}"${message}"{MAINCOLOUR}`);
@@ -1972,7 +1972,7 @@ function setJobRouteVehicleColoursCommand(command, params, client) {
}
}
messageAdmins(`{ adminOrange }${getPlayerName(client)}{ MAINCOLOUR } set the vehicle colours to { ALTCOLOUR }${colour1}, ${colour2}{ MAINCOLOUR } for route { ALTCOLOUR }${getJobRouteData(jobId, jobRoute).name} { MAINCOLOUR } of the { jobYellow }${getJobData(jobId).name} { MAINCOLOUR } job`);
messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} set the vehicle colours to {ALTCOLOUR}${colour1}, ${colour2}{MAINCOLOUR} for route {ALTCOLOUR}${getJobRouteData(jobId, jobRoute).name} {MAINCOLOUR} of the {jobYellow}${getJobData(jobId).name}{MAINCOLOUR} job`);
}
// ===========================================================================
@@ -1998,7 +1998,7 @@ function setJobRouteFinishMessageCommand(command, params, client) {
getJobData(jobId).routes[jobRoute].finishMessage = params;
getJobData(jobId).routes[jobRoute].needsSaved = true;
messageAdmins(`{ adminOrange }${getPlayerName(client)} { MAINCOLOUR } set the finish message to { ALTCOLOUR } "${params}"{ MAINCOLOUR } for route { ALTCOLOUR }${getJobRouteData(jobId, jobRoute).name} { MAINCOLOUR } of the { jobYellow }${getJobData(jobId).name} { MAINCOLOUR } job`);
messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} set the finish message to {ALTCOLOUR}"${params}"{MAINCOLOUR} for route {ALTCOLOUR}${getJobRouteData(jobId, jobRoute).name}{MAINCOLOUR} of the {jobYellow}${getJobData(jobId).name}{MAINCOLOUR} job`);
}
// ===========================================================================
@@ -2024,7 +2024,7 @@ function setJobRouteStartMessageCommand(command, params, client) {
getJobData(jobId).routes[jobRoute].startMessage = params;
getJobData(jobId).routes[jobRoute].needsSaved = true;
messageAdmins(`{ adminOrange }${getPlayerName(client)} { MAINCOLOUR } set the start message to { ALTCOLOUR } "${params}"{ MAINCOLOUR } for route { ALTCOLOUR }${getJobRouteData(jobId, jobRoute).name} { MAINCOLOUR } of the { jobYellow }${getJobData(jobId).name} { MAINCOLOUR } job`);
messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} set the start message to {ALTCOLOUR}"${params}"{MAINCOLOUR} for route {ALTCOLOUR}${getJobRouteData(jobId, jobRoute).name}{MAINCOLOUR} of the {jobYellow}${getJobData(jobId).name}{MAINCOLOUR} job`);
}
// ===========================================================================
@@ -2052,7 +2052,7 @@ function setJobRouteLocationPositionCommand(command, params, client) {
getJobData(jobId).routes[jobRoute].locations[jobRouteLocation].position = position;
getJobData(jobId).routes[jobRoute].locations[jobRouteLocation].needsSaved = true;
showCurrentJobLocation(client);
messageAdmins(`{ adminOrange }${getPlayerName(client)} { MAINCOLOUR } ${getEnabledDisabledFromBool(getJobData(jobId).enabled)} set the position for location ${getJobRouteLocationData(jobId, jobRoute, jobRouteLocation).name} on route { ALTCOLOUR }${getJobRouteData(jobId, jobRoute).name} { MAINCOLOUR } of the { jobYellow }${getJobData(jobId).name} { MAINCOLOUR } job`);
messageAdmins(`{adminOrange}${getPlayerName(client)} {MAINCOLOUR} ${getEnabledDisabledFromBool(getJobData(jobId).enabled)} set the position for location ${getJobRouteLocationData(jobId, jobRoute, jobRouteLocation).name} on route {ALTCOLOUR}${getJobRouteData(jobId, jobRoute).name} {MAINCOLOUR} of the {jobYellow}${getJobData(jobId).name} {MAINCOLOUR} job`);
}
// ===========================================================================
@@ -2078,7 +2078,7 @@ function setJobRouteDefaultLocationArriveMessageCommand(command, params, client)
getJobData(jobId).routes[jobRoute].locationArriveMessage = params;
getJobData(jobId).routes[jobRoute].needsSaved = true;
messageAdmins(`{ adminOrange }${getPlayerName(client)} { MAINCOLOUR } ${getEnabledDisabledFromBool(getJobData(jobId).enabled)} set the location arrival message to { ALTCOLOUR } "${params}"{ MAINCOLOUR } for route { ALTCOLOUR }${getJobRouteData(jobId, jobRoute).name} { MAINCOLOUR } of the { jobYellow }${getJobData(jobId).name} { MAINCOLOUR } job`);
messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} ${getEnabledDisabledFromBool(getJobData(jobId).enabled)} set the location arrival message to {ALTCOLOUR}"${params}"{MAINCOLOUR} for route {ALTCOLOUR}${getJobRouteData(jobId, jobRoute).name} {MAINCOLOUR} of the {jobYellow}${getJobData(jobId).name} {MAINCOLOUR} job`);
}
// ===========================================================================
@@ -2104,7 +2104,7 @@ function setJobRouteDefaultLocationNextMessageCommand(command, params, client) {
getJobData(jobId).routes[jobRoute].locationNextMessage = params;
getJobData(jobId).routes[jobRoute].needsSaved = true;
messageAdmins(`{ adminOrange }${getPlayerName(client)} { MAINCOLOUR } ${getEnabledDisabledFromBool(getJobData(jobId).enabled)} { MAINCOLOUR } set the location next message to { ALTCOLOUR } "${params}"{ MAINCOLOUR } for route { ALTCOLOUR }${getJobRouteData(jobId, jobRoute).name} { MAINCOLOUR } of the { jobYellow }${getJobData(jobId).name} { MAINCOLOUR } job`);
messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} ${getEnabledDisabledFromBool(getJobData(jobId).enabled)}{MAINCOLOUR} set the location next message to {ALTCOLOUR}"${params}"{MAINCOLOUR} for route {ALTCOLOUR}${getJobRouteData(jobId, jobRoute).name}{MAINCOLOUR} of the {jobYellow}${getJobData(jobId).name}{MAINCOLOUR} job`);
}
// ===========================================================================
@@ -2135,9 +2135,9 @@ function setJobRoutePayCommand(command, params, client) {
return false;
}
getJobData(jobId).routes[jobRoute].pay = amount;
getJobData(jobId).routes[jobRoute].pay = toInteger(amount);
getJobData(jobId).routes[jobRoute].needsSaved = true;
messageAdmins(`{ adminOrange }${getPlayerName(client)} { MAINCOLOUR } set the pay for route { ALTCOLOUR }${getJobRouteData(jobId, jobRoute).name} { MAINCOLOUR } of the { jobYellow }${getJobData(jobId).name} { MAINCOLOUR } job to { ALTCOLOUR }${makeLargeNumberReadable(amount)} { MAINCOLOUR } `);
messageAdmins(`{adminOrange}${getPlayerName(client)} {MAINCOLOUR} set the pay for route {ALTCOLOUR}${getJobRouteData(jobId, jobRoute).name} {MAINCOLOUR} of the {jobYellow}${getJobData(jobId).name} {MAINCOLOUR} job to {ALTCOLOUR}${makeLargeNumberReadable(amount)} {MAINCOLOUR} `);
}
// ===========================================================================
@@ -2151,7 +2151,7 @@ function toggleJobWhiteListCommand(command, params, client) {
let jobId = getJobFromParams(params) || getClosestJobLocation(getPlayerPosition(client), getPlayerDimension(client)).jobIndex;
getJobData(jobId).whiteListEnabled = !getJobData(jobId).whiteListEnabled;
messageAdmins(`{ adminOrange }${getPlayerName(client)} { MAINCOLOUR }${getEnabledDisabledFromBool(getJobData(jobId).whiteListEnabled)} { MAINCOLOUR }the whitelist for the { ALTCOLOUR }${getJobData(jobId).name} { MAINCOLOUR } job`);
messageAdmins(`{adminOrange}${getPlayerName(client)} {MAINCOLOUR}${getEnabledDisabledFromBool(getJobData(jobId).whiteListEnabled)} {MAINCOLOUR}the whitelist for the {ALTCOLOUR}${getJobData(jobId).name} {MAINCOLOUR} job`);
}
// ===========================================================================
@@ -2165,7 +2165,7 @@ function toggleJobBlackListCommand(command, params, client) {
let jobId = getJobFromParams(params) || getClosestJobLocation(getPlayerPosition(client), getPlayerDimension(client)).jobIndex;
getJobData(jobId).blackListEnabled = !getJobData(jobId).blackListEnabled;
messageAdmins(`{ adminOrange }${getPlayerName(client)} { MAINCOLOUR } ${getEnabledDisabledFromBool(getJobData(jobId).blackListEnabled)} the blacklist for the { jobYellow }${getJobData(jobId).name} { MAINCOLOUR } job`);
messageAdmins(`{adminOrange}${getPlayerName(client)} {MAINCOLOUR} ${getEnabledDisabledFromBool(getJobData(jobId).blackListEnabled)} the blacklist for the {jobYellow}${getJobData(jobId).name} {MAINCOLOUR} job`);
}
// ===========================================================================
@@ -2195,7 +2195,7 @@ function addPlayerToJobBlackListCommand(command, params, client) {
}
addPlayerToJobBlackList(targetClient, jobId);
messageAdmins(`{ adminOrange }${getPlayerName(client)} { MAINCOLOUR } added { ALTCOLOUR }${getCharacterFullName(targetClient)} { MAINCOLOUR } to the blacklist for the { jobYellow }${jobData.name} { MAINCOLOUR } job`);
messageAdmins(`{adminOrange}${getPlayerName(client)} {MAINCOLOUR} added {ALTCOLOUR}${getCharacterFullName(targetClient)} {MAINCOLOUR} to the blacklist for the {jobYellow}${jobData.name} {MAINCOLOUR} job`);
}
// ===========================================================================
@@ -2225,7 +2225,7 @@ function removePlayerFromJobBlackListCommand(command, params, client) {
}
removePlayerFromJobBlackList(targetClient, jobId);
messageAdmins(`{ adminOrange }${getPlayerName(client)} { MAINCOLOUR } removed { ALTCOLOUR }${getCharacterFullName(targetClient)} { MAINCOLOUR } from the blacklist for the { jobYellow }${jobData.name} { MAINCOLOUR } job`);
messageAdmins(`{adminOrange}${getPlayerName(client)} {MAINCOLOUR} removed {ALTCOLOUR}${getCharacterFullName(targetClient)} {MAINCOLOUR} from the blacklist for the {jobYellow}${jobData.name} {MAINCOLOUR} job`);
}
// ===========================================================================
@@ -2255,7 +2255,7 @@ function addPlayerToJobWhiteListCommand(command, params, client) {
}
addPlayerToJobWhiteList(targetClient, jobId);
messageAdmins(`{ adminOrange }${getPlayerName(client)} { MAINCOLOUR }added { ALTCOLOUR }${getCharacterFullName(targetClient)} { MAINCOLOUR } to the whitelist for the { jobYellow }${jobData.name} { MAINCOLOUR } job`);
messageAdmins(`{adminOrange}${getPlayerName(client)} {MAINCOLOUR}added {ALTCOLOUR}${getCharacterFullName(targetClient)} {MAINCOLOUR} to the whitelist for the {jobYellow}${jobData.name} {MAINCOLOUR} job`);
}
// ===========================================================================
@@ -2285,7 +2285,7 @@ function removePlayerFromJobWhiteListCommand(command, params, client) {
}
removePlayerFromJobWhiteList(targetClient, jobId);
messageAdmins(`{ adminOrange }${getPlayerName(client)} { MAINCOLOUR } removed { ALTCOLOUR }${getCharacterFullName(targetClient)} { MAINCOLOUR } from the whitelist for the { jobYellow }${jobData.name} { MAINCOLOUR } job`);
messageAdmins(`{adminOrange}${getPlayerName(client)} {MAINCOLOUR} removed {ALTCOLOUR}${getCharacterFullName(targetClient)} {MAINCOLOUR} from the whitelist for the {jobYellow}${jobData.name} {MAINCOLOUR} job`);
}
// ===========================================================================
@@ -2422,6 +2422,8 @@ function startJobRoute(client, forceRoute = -1) {
messagePlayerNormal(client, replaceJobRouteStringsInMessage(getJobRouteData(jobId, jobRoute).startMessage, jobId, jobRoute));
showSmallGameMessage(client, replaceJobRouteStringsInMessage(removeColoursInMessage(getJobRouteData(jobId, getPlayerJobRoute(client)).locationGotoMessage), jobId, getPlayerJobRoute(client)), getJobData(jobId).colour, 3500);
// Don't announce routes that an admin just created
if (forceRoute == -1) {
messageDiscordEventChannel(`💼 ${getCharacterFullName(client)} started the ${getJobRouteData(jobId, jobRoute).name} route for the ${getJobData(jobId).name} job`);
@@ -2440,15 +2442,19 @@ function stopJobRoute(client, successful = false, alertPlayer = true) {
let jobId = getPlayerJob(client);
let routeId = getPlayerJobRoute(client);
if (alertPlayer) {
messagePlayerAlert(client, replaceJobRouteStringsInMessage(getJobRouteData(jobId, routeId).finishMessage, jobId, routeId));
}
if (successful == true) {
if (alertPlayer) {
messagePlayerAlert(client, replaceJobRouteStringsInMessage(getJobRouteData(jobId, routeId).finishMessage, jobId, routeId));
}
finishSuccessfulJobRoute(client);
return false;
}
//if (alertPlayer) {
// messagePlayerAlert(client, replaceJobRouteStringsInMessage(getJobRouteData(jobId, routeId).failedMessage, jobId, routeId));
//}
messageDiscordEventChannel(`💼 ${getCharacterFullName(client)} failed to finish the ${getJobRouteData(jobId, getPlayerJobRoute(client)).name} route for the ${getJobData(jobId).name} job and didn't earn anything.`);
stopReturnToJobVehicleCountdown(client);
@@ -2494,7 +2500,7 @@ function startReturnToJobVehicleCountdown(client) {
clearInterval(getPlayerData(client).returnToJobVehicleTimer);
getPlayerData(client).returnToJobVehicleTimer = null;
getPlayerData(client).returnToJobVehicleTick = 0;
stopJobRoute(client, false);
stopJobRoute(client, false, true);
}
}, 1000);
}
@@ -2722,7 +2728,7 @@ function saveJobRankToDatabase(jobRankData) {
["job_rank_name", safeName],
["job_rank_flags", jobRankData.flags],
["job_rank_pay", jobRankData.pay],
["job_rank_level", jobRankData.pay],
["job_rank_level", jobRankData.level],
["job_rank_who_added", jobRankData.whoCreated],
["job_rank_when_added", jobRankData.whenCreated],
];
@@ -3289,29 +3295,36 @@ function isPlayerOnJobBlackList(client, jobId) {
function playerArrivedAtJobRouteLocation(client) {
let jobId = getPlayerJob(client);
let jobRouteId = getPlayerJobRoute(client);
let jobRouteLocationId = getPlayerJobRouteLocation(client);
let jobData = getJobData(jobId);
let jobRouteData = getJobRouteData(jobId, jobRouteId);
if (!isPlayerOnJobRoute(client)) {
return false;
}
if (isLastLocationOnJobRoute(jobId, getPlayerJobRoute(client), getPlayerJobRouteLocation(client))) {
if (isLastLocationOnJobRoute(jobId, jobRouteId, jobRouteLocationId)) {
finishSuccessfulJobRoute(client);
return false;
}
showSmallGameMessage(client, replaceJobRouteStringsInMessage(removeColoursInMessage(getJobRouteData(jobId, getPlayerJobRoute(client)).locationArriveMessage), jobId, getPlayerJobRoute(client)), getJobData(jobId).colour, 3500);
if (getJobRouteLocationData(jobId, getPlayerJobRoute(client), getPlayerJobRouteLocation(client)).stopDelay > 0) {
hideElementForPlayer(getJobRouteLocationData(jobId, jobRouteId, jobRouteLocationId).marker, client);
showSmallGameMessage(client, replaceJobRouteStringsInMessage(removeColoursInMessage(jobRouteData.locationArriveMessage), jobId, jobRouteId), jobData.colour, 3500);
if (getJobRouteLocationData(jobId, jobRouteId, jobRouteLocationId).stopDelay > 0) {
freezePlayerJobVehicleForRouteLocation(client);
getPlayerData(client).jobRouteLocation = getNextLocationOnJobRoute(jobId, getPlayerJobRoute(client), getPlayerJobRouteLocation(client));
getPlayerData(client).jobRouteLocation = getNextLocationOnJobRoute(jobId, jobRouteId, jobRouteLocationId);
setTimeout(function () {
showCurrentJobLocation(client);
showSmallGameMessage(client, replaceJobRouteStringsInMessage(removeColoursInMessage(getJobRouteData(jobId, getPlayerJobRoute(client)).locationNextMessage), jobId, getPlayerJobRoute(client)), getJobData(jobId).colour, 3500);
showSmallGameMessage(client, replaceJobRouteStringsInMessage(removeColoursInMessage(jobRouteData.locationNextMessage), jobId, jobRouteId), jobData.colour, 3500);
unFreezePlayerJobVehicleForRouteLocation(client);
}, getJobRouteLocationData(jobId, getPlayerJobRoute(client), getPlayerJobRouteLocation(client)).stopDelay);
}, getJobRouteLocationData(jobId, jobRouteId, jobRouteLocationId).stopDelay);
} else {
getPlayerData(client).jobRouteLocation = getNextLocationOnJobRoute(jobId, getPlayerJobRoute(client), getPlayerJobRouteLocation(client));
getPlayerData(client).jobRouteLocation = getNextLocationOnJobRoute(jobId, jobRouteId, jobRouteLocationId);
showCurrentJobLocation(client);
showSmallGameMessage(client, replaceJobRouteStringsInMessage(removeColoursInMessage(getJobRouteData(jobId, getPlayerJobRoute(client)).locationNextMessage), jobId, getPlayerJobRoute(client)), getJobData(jobId).colour, 3500);
showSmallGameMessage(client, replaceJobRouteStringsInMessage(removeColoursInMessage(jobRouteData.locationNextMessage), jobId, jobRouteId), jobData.colour, 3500);
}
}
@@ -3836,8 +3849,8 @@ function getPlayerJobRouteLocation(client) {
// ===========================================================================
function showCurrentJobLocation(client) {
let jobId = getPlayerJob(client);
sendJobRouteLocationToPlayer(client, getJobRouteLocationData(jobId, getPlayerJobRoute(client), getPlayerJobRouteLocation(client)).position, getJobData(jobId).colour);
sendJobRouteLocationToPlayer(client, getJobRouteLocationData(getPlayerJob(client), getPlayerJobRoute(client), getPlayerJobRouteLocation(client)).position, getJobData(getPlayerJob(client)).colour);
showElementForPlayer(getJobRouteLocationData(getPlayerJob(client), getPlayerJobRoute(client), getPlayerJobRouteLocation(client)).marker, client);
}
// ===========================================================================
@@ -3960,4 +3973,45 @@ function getLowestJobRank(jobIndex) {
return lowestRank;
}
// ===========================================================================
function createJobRouteLocationMarker(jobIndex, jobRouteIndex, jobRouteLocationIndex) {
let marker = null;
if (isGameFeatureSupported("spheres")) {
marker = createGameSphere(getJobRouteLocationData(jobIndex, jobRouteIndex, jobRouteLocationIndex).position, getGlobalConfig().jobRouteLocationSphereRadius, getJobData(jobIndex).colour);
setElementOnAllDimensions(marker, false);
setElementShownByDefault(marker, false);
setElementDimension(marker, getGameConfig().mainWorldDimension[getGame()]);
if (isGameFeatureSupported("interior")) {
setElementInterior(marker, getGameConfig().mainWorldDimension[getGame()]);
}
} else {
marker = getJobRouteLocationData(jobIndex, jobRouteIndex, jobRouteLocationIndex).marker = createGamePickup(getGameConfig().pickupModels[getGame()].Misc, getJobRouteLocationData(jobIndex, jobRouteIndex, jobRouteLocationIndex).position, getGameConfig().pickupTypes[getGame()].job);
setElementOnAllDimensions(marker, false);
setElementShownByDefault(marker, false);
setElementDimension(marker, getGameConfig().mainWorldDimension[getGame()]);
if (isGameFeatureSupported("interior")) {
setElementInterior(marker, getGameConfig().mainWorldDimension[getGame()]);
}
}
if (marker != null) {
getJobRouteLocationData(jobIndex, jobRouteIndex, jobRouteLocationIndex).marker = marker;
}
}
// ===========================================================================
function createAllJobRouteLocationMarkers() {
for (let i in getServerData().jobs) {
for (let j in getServerData().jobs[i].routes) {
for (let k in getServerData().jobs[i].routes[j].locations) {
createJobRouteLocationMarker(i, j, k);
}
}
}
}
// ===========================================================================