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) { 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; } } }