Fix job route blip blink bug

This commit is contained in:
Vortrex
2022-05-15 04:16:14 -05:00
parent c0a629e708
commit 02e1a2d8fd

View File

@@ -12,6 +12,11 @@ let localPlayerWorking = false;
let jobRouteLocationBlip = null; let jobRouteLocationBlip = null;
let jobRouteLocationSphere = null; let jobRouteLocationSphere = null;
let jobBlipBlinkAmount = 0;
let jobBlipBlinkTimes = 10;
let jobBlipBlinkInterval = 500;
let jobBlipBlinkTimer = null;
// =========================================================================== // ===========================================================================
class JobData { class JobData {
@@ -65,7 +70,7 @@ function showJobRouteLocation(position, colour) {
} }
// Blinking is bugged if player hit the spot before it stops blinking. // Blinking is bugged if player hit the spot before it stops blinking.
//blinkJobRouteLocationBlip(10, position, colour); blinkJobRouteLocationBlip(10, position, colour);
jobRouteLocationBlip = game.createBlip(position, 0, 2, colour); jobRouteLocationBlip = game.createBlip(position, 0, 2, colour);
} }
} }
@@ -74,30 +79,43 @@ function showJobRouteLocation(position, colour) {
function enteredJobRouteSphere() { function enteredJobRouteSphere() {
logToConsole(LOG_DEBUG, `[VRR.Job] Entered job route sphere`); logToConsole(LOG_DEBUG, `[VRR.Job] Entered job route sphere`);
tellServerPlayerArrivedAtJobRouteLocation();
destroyTimer(jobBlipBlinkTimer);
jobBlipBlinkAmount = 0;
jobBlipBlinkTimes = 0;
destroyElement(jobRouteLocationSphere); destroyElement(jobRouteLocationSphere);
destroyElement(jobRouteLocationBlip); destroyElement(jobRouteLocationBlip);
jobRouteLocationSphere = null; jobRouteLocationSphere = null;
jobRouteLocationBlip = null; jobRouteLocationBlip = null;
tellServerPlayerArrivedAtJobRouteLocation();
} }
// =========================================================================== // ===========================================================================
function blinkJobRouteLocationBlip(times, position, colour) { function blinkJobRouteLocationBlip(times, position, colour) {
for(let i = 1 ; i <= times ; i++) { jobBlipBlinkTimes = times;
setTimeout(function() { jobBlipBlinkTimer = setInterval(function() {
if(jobRouteLocationBlip != null) {
destroyElement(jobRouteLocationBlip);
jobRouteLocationBlip = null;
} else {
jobRouteLocationBlip = game.createBlip(position, 0, 2, colour);
}
if(jobBlipBlinkAmount >= jobBlipBlinkTimes) {
if(jobRouteLocationBlip != null) { if(jobRouteLocationBlip != null) {
destroyElement(jobRouteLocationBlip); destroyElement(jobRouteLocationBlip);
jobRouteLocationBlip = null; jobRouteLocationBlip = null;
} else {
jobRouteLocationBlip = game.createBlip(position, 0, 2, colour);
} }
}, 500*i);
}
setTimeout(function() { jobBlipBlinkAmount = 0;
jobRouteLocationBlip = game.createBlip(position, 0, 2, colour); jobBlipBlinkTimes = 0;
}, 500*times+1); jobRouteLocationBlip = game.createBlip(position, 0, 2, colour);
destroyTimer(jobBlipBlinkTimer);
}
}, jobBlipBlinkInterval);
} }
// =========================================================================== // ===========================================================================