58 lines
1.8 KiB
TypeScript
58 lines
1.8 KiB
TypeScript
import * as NativeUI from 'NativeUI';
|
|
import InputHelper from '../inputhelper';
|
|
|
|
export default function checkpointHandle(globalData: GlobalData) {
|
|
var count = 0;
|
|
var myVar;
|
|
var posCp;
|
|
var Player;
|
|
var activeCheckpoint;
|
|
var inCheckpoint = false;
|
|
var delay;
|
|
var delayCounter;
|
|
var markerID;
|
|
|
|
mp.events.add('setCheckPoint', (position, player, nDelay, nMarkerID) => {
|
|
inCheckpoint = false;
|
|
posCp = position;
|
|
Player = player;
|
|
delay = nDelay;
|
|
markerID = nMarkerID;
|
|
delayCounter = 0;
|
|
activeCheckpoint = mp.markers.new(markerID, posCp, 3.0, {
|
|
color: [255, 0, 0, 150],
|
|
visible: true,
|
|
dimension: 0
|
|
});
|
|
|
|
//mp.events.call("SERVER:Util_setWaypoint", posCp.X, posCp.Z);
|
|
mp.game.ui.setNewWaypoint(posCp.x, posCp.y);
|
|
myVar = setInterval(myTimer, 100);
|
|
});
|
|
|
|
function myTimer() {
|
|
let dist = mp.game.gameplay.getDistanceBetweenCoords(Player.position.x, Player.position.y, 0, posCp.x, posCp.y, 0, false);
|
|
//mp.gui.chat.push("delay: " + delay + " | delayCounter: " + delayCounter);
|
|
if (dist <= 2) {
|
|
|
|
if (!inCheckpoint) {
|
|
if (delay != 0) {
|
|
mp.gui.chat.push("Warte nun " + delay / 1000 + " Sekunden");
|
|
}
|
|
mp.game.audio.playSoundFrontend(1, "Beep_Red", "DLC_HEIST_HACKING_SNAKE_SOUNDS", true);
|
|
}
|
|
inCheckpoint = true;
|
|
|
|
if (delayCounter >= delay) {
|
|
activeCheckpoint.visible = false;
|
|
clearInterval(myVar);
|
|
mp.events.callRemote("playerInCheckpoint");
|
|
} else {
|
|
delayCounter += 100;
|
|
}
|
|
} else if (dist > 2) {
|
|
inCheckpoint = false;
|
|
delayCounter = 0;
|
|
}
|
|
}
|
|
} |