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: 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('timerCheckVehiclex'); } }; function keyPressHandler() { if (globalData.InChat || globalData.InInput || globalData.InMenu) return; mp.events.call('removeDrivingSchoolMenu', false); mp.events.call('showDrivingSchoolSelector'); } }