Add GPS blip stuff
This commit is contained in:
65
scripts/client/gps.js
Normal file
65
scripts/client/gps.js
Normal file
@@ -0,0 +1,65 @@
|
||||
// ===========================================================================
|
||||
// Vortrex's Roleplay Resource
|
||||
// https://github.com/VortrexFTW/gtac_roleplay
|
||||
// ===========================================================================
|
||||
// FILE: gps.js
|
||||
// DESC: Provides GPS functions and usage
|
||||
// TYPE: Client (JavaScript)
|
||||
// ===========================================================================
|
||||
|
||||
let gpsBlip = null;
|
||||
let gpsBlipBlinkTimes = 0;
|
||||
let gpsBlipBlinkAmount = 0;
|
||||
let gpsBlipBlinkInterval = 500;
|
||||
let gpsBlipBlinkTimer = null;
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function showGPSLocation(position, colour) {
|
||||
logToConsole(LOG_DEBUG, `[VRR.GPS] Showing gps location`);
|
||||
if(getMultiplayerMod() == VRR_MPMOD_GTAC) {
|
||||
if(getGame() == VRR_GAME_GTA_SA) {
|
||||
// Server-side spheres don't show in GTA SA for some reason.
|
||||
gpsSphere = game.createPickup(1318, position, 1);
|
||||
} else {
|
||||
gpsSphere = game.createSphere(position, 3);
|
||||
gpsSphere.colour = colour;
|
||||
}
|
||||
|
||||
if(gpsBlip != null) {
|
||||
destroyElement(gpsBlip);
|
||||
}
|
||||
|
||||
// Blinking is bugged if player hit the spot before it stops blinking.
|
||||
blinkGPSBlip(10, position, colour);
|
||||
gpsBlip = game.createBlip(position, 0, 2, colour);
|
||||
}
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function blinkGPSBlip(times, position, colour) {
|
||||
gpsBlipBlinkTimes = times;
|
||||
gpsBlipBlinkTimer = setInterval(function() {
|
||||
if(gpsBlip != null) {
|
||||
destroyElement(gpsBlip);
|
||||
gpsBlip = null;
|
||||
} else {
|
||||
gpsBlip = game.createBlip(position, 0, 2, colour);
|
||||
}
|
||||
|
||||
if(gpsBlipBlinkAmount >= gpsBlipBlinkTimes) {
|
||||
if(gpsBlip != null) {
|
||||
destroyElement(gpsBlip);
|
||||
gpsBlip = null;
|
||||
}
|
||||
|
||||
gpsBlipBlinkAmount = 0;
|
||||
gpsBlipBlinkTimes = 0;
|
||||
gpsBlip = game.createBlip(position, 0, 2, colour);
|
||||
destroyTimer(gpsBlipBlinkTimer);
|
||||
}
|
||||
}, gpsBlipBlinkInterval);
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
Reference in New Issue
Block a user