diff --git a/scripts/client/job.js b/scripts/client/job.js index 99535a91..17d665e9 100644 --- a/scripts/client/job.js +++ b/scripts/client/job.js @@ -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); } // ===========================================================================