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; var event; var checkPointsDone = 0; mp.events.add('setCheckPoint', (position, player, checkPointID, nDelay, nMarkerID, nEvent) => { inCheckpoint = false; posCp = position; Player = player; delay = nDelay; markerID = nMarkerID; delayCounter = 0; checkPointsDone = checkPointID; event = nEvent; activeCheckpoint = mp.markers.new(markerID, posCp, 3.0, { color: [255, 0, 0, 150], visible: true, dimension: 0 }); clearInterval(myVar); //mp.events.call("SERVER:Util_setWaypoint", posCp.X, posCp.Z); mp.game.ui.setNewWaypoint(posCp.x, posCp.y); myVar = setInterval(myTimer, 100); }); mp.events.add('destroyCP', () => { activeCheckpoint.destroy(); clearInterval(myVar); }); 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 <= 3) { 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.destroy(); clearInterval(myVar); mp.events.callRemote("playerInCheckpoint"); if (event != "") { while (checkPointsDone > 10000) { } mp.events.callRemote(event, checkPointsDone); } } else { delayCounter += 100; } } else if (dist > 2) { inCheckpoint = false; delayCounter = 0; } } }