Files
reallife-gamemode/ReallifeGamemode.Client/util/checkpoint.ts
2019-10-18 23:01:35 +02:00

74 lines
2.3 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;
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, 10.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;
}
}
}