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 jobRouteLocationSphere = null;
let jobBlipBlinkAmount = 0;
let jobBlipBlinkTimes = 10;
let jobBlipBlinkInterval = 500;
let jobBlipBlinkTimer = null;
// ===========================================================================
class JobData {
@@ -65,7 +70,7 @@ function showJobRouteLocation(position, colour) {
}
// 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);
}
}
@@ -74,30 +79,43 @@ function showJobRouteLocation(position, colour) {
function enteredJobRouteSphere() {
logToConsole(LOG_DEBUG, `[VRR.Job] Entered job route sphere`);
tellServerPlayerArrivedAtJobRouteLocation();
destroyTimer(jobBlipBlinkTimer);
jobBlipBlinkAmount = 0;
jobBlipBlinkTimes = 0;
destroyElement(jobRouteLocationSphere);
destroyElement(jobRouteLocationBlip);
jobRouteLocationSphere = null;
jobRouteLocationBlip = null;
tellServerPlayerArrivedAtJobRouteLocation();
}
// ===========================================================================
function blinkJobRouteLocationBlip(times, position, colour) {
for(let i = 1 ; i <= times ; i++) {
setTimeout(function() {
jobBlipBlinkTimes = times;
jobBlipBlinkTimer = setInterval(function() {
if(jobRouteLocationBlip != null) {
destroyElement(jobRouteLocationBlip);
jobRouteLocationBlip = null;
} else {
jobRouteLocationBlip = game.createBlip(position, 0, 2, colour);
}
if(jobBlipBlinkAmount >= jobBlipBlinkTimes) {
if(jobRouteLocationBlip != null) {
destroyElement(jobRouteLocationBlip);
jobRouteLocationBlip = null;
} else {
jobRouteLocationBlip = game.createBlip(position, 0, 2, colour);
}
}, 500*i);
}
setTimeout(function() {
jobRouteLocationBlip = game.createBlip(position, 0, 2, colour);
}, 500*times+1);
jobBlipBlinkAmount = 0;
jobBlipBlinkTimes = 0;
jobRouteLocationBlip = game.createBlip(position, 0, 2, colour);
destroyTimer(jobBlipBlinkTimer);
}
}, jobBlipBlinkInterval);
}
// ===========================================================================