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