Files
reallife-gamemode/ReallifeGamemode.Client/util/drivingschool.ts
Lukas Moungos 93e672549b [+] Add Bikes to Driving School
//Driving School finished
2019-11-01 21:47:08 +01:00

130 lines
3.9 KiB
TypeScript

import * as NativeUI from 'NativeUI';
const Menu = NativeUI.Menu;
const UIMenuItem = NativeUI.UIMenuItem;
const UIMenuListItem = NativeUI.UIMenuListItem;
const UIMenuCheckboxItem = NativeUI.UIMenuCheckboxItem;
const UIMenuSliderItem = NativeUI.UIMenuSliderItem;
const BadgeStyle = NativeUI.BadgeStyle;
const Point = NativeUI.Point;
const ItemsCollection = NativeUI.ItemsCollection;
const Color = NativeUI.Color;
const ListItem = NativeUI.ListItem;
export default function drivingSchoolHandle(globalData: GlobalData) {
var keyBound = false;
var mainMenu: NativeUI.Menu;
let send = new UIMenuItem("Pruefung starten", "");
var timer;
var timerCheckpoint;
var timerSet = false;
var Player;
var timeToWait = 0;
var checkPoint;
var counter = 0;
var waitFinished = false;
mp.events.add('drivingSchoolMenu', () => {
mp.game.ui.setTextComponentFormat('STRING');
mp.game.ui.addTextComponentSubstringPlayerName('Drücke ~INPUT_CONTEXT~, um das Fahrschulmenü zu öffnen');
mp.game.ui.displayHelpTextFromStringLabel(0, true, true, -1);
mp.keys.bind(0x45, false, keyPressHandler);
keyBound = true;
});
mp.events.add('removeDrivingSchoolMenu', () => {
mp.game.ui.clearHelp(true);
if (mainMenu != null) {
mainMenu.Close();
}
if (keyBound) {
keyBound = false;
mp.keys.unbind(0x45, false, keyPressHandler);
}
});
mp.events.add('waitPlayerEntersVehicle', () => {
mp.game.ui.setNewWaypoint(-761.9943, -1321.84);
timerSet = true;
timer = setInterval(timerPlayerInVehicle, 3000);
});
mp.events.add('stopTimer', () => {
timerSet = false;
clearInterval(timer);
});
mp.events.add('waitHere', (player, CP, time) => {
let dist;
waitFinished = false;
timeToWait = time;
Player = player;
checkPoint = CP;
let counter = 0;
clearInterval(timerCheckpoint);
counter = 0;
timerCheckpoint = setInterval(timerWaitHere, 100);
});
mp.events.add('checkWait', () => {
if (waitFinished == false) {
mp.gui.chat.push("Du hast an der letzten Kreuzung nicht gewartet");
}
});
mp.events.add('lookDirection', (direction, angle1, angle2) => {
let player = mp.players.local;
let camera = mp.cameras.new("gameplay");
var dir = camera.getDirection();
//0.74850505590443884 0.093938655593395233
if (!(dir.x <= angle1 && dir.x >= angle2)) {
mp.gui.chat.push("Du hast nicht nach " + direction + " geschaut!");
}
//0.38181596994400024 0.9669561386108398
});
mp.events.add('lookDirectionTesting', (veh) => {
let player = mp.players.local;
let camera = mp.cameras.new("gameplay");
var dir = camera.getDirection();
mp.gui.chat.push("x: " + veh.rotation.x + " | y: " + veh.rotation.y + " |z: " + veh.rotation.z);
});
function timerWaitHere() {
let dist = mp.game.gameplay.getDistanceBetweenCoords(Player.position.x, Player.position.y, 0, checkPoint.x, checkPoint.y, 0, false);
if (dist <= 2) {
counter += 100;
} else {
counter = 0;
}
if (counter >= timeToWait) {
mp.gui.chat.push("Gut, fahre nun weiter.");
waitFinished = true;
clearInterval(timerCheckpoint);
counter = 0;
}
};
function timerPlayerInVehicle() {
if (timerSet) {
mp.events.callRemote('timerCheckVehicle');
}
};
function keyPressHandler() {
if (globalData.InChat || globalData.InInput || globalData.InMenu) return;
mp.events.call('removeDrivingSchoolMenu', false);
mp.events.call('showDrivingSchoolSelector');
}
}