From 02e1a2d8fd892abcc288dec594aaf4585f8b88e3 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Sun, 15 May 2022 04:16:14 -0500 Subject: [PATCH] Fix job route blip blink bug --- scripts/client/job.js | 40 +++++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 11 deletions(-) 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); } // ===========================================================================