Files
2021-04-03 20:32:11 +02:00

144 lines
4.1 KiB
TypeScript

import * as NativeUI from '../libs/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: IGlobalData) {
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;
var kmh;
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.events.call("renderHelpTextOnScreen", "~s~Drücke ~g~E, ~s~um das ~b~Fahrschulmenü ~s~zu öffnen")
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('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.InMenu || globalData.InMenu) return;
mp.events.call('removeDrivingSchoolMenu', false);
mp.events.call('showDrivingSchoolSelector');
}
mp.events.add('kmh100', () => {
let vehicle = mp.players.local.vehicle;
let speed = vehicle.getSpeed();
speed = speed * 3.6; // convert to kmh
if (speed > 100) {
mp.events.callRemote("CLIENT:drivingschool_failpoints");
}
});
mp.events.add('kmh150', () => {
let vehicle = mp.players.local.vehicle;
let speed = vehicle.getSpeed();
speed = speed * 3.6; //convert to kmh
if (speed > 150) {
mp.events.callRemote("CLIENT:drivingschool_failpoints");
}
});
}