import * as NativeUI from '../libs/NativeUI'; var fieldSelectColShape = mp.colshapes.newCircle(2415.229, 4993.037, 46.230038); const Menu = NativeUI.Menu; var fieldMenu: NativeUI.Menu; const Point = NativeUI.Point; const UIMenuListItem = NativeUI.UIMenuListItem; const ItemsCollection = NativeUI.ItemsCollection; const UIMenuItem = NativeUI.UIMenuItem; const Color = NativeUI.Color; let sendItem = new UIMenuItem("Starten", "Route starten"); sendItem.BackColor = new Color(13, 71, 161); sendItem.HighlightedBackColor = new Color(25, 118, 210); let cancelItem = new UIMenuItem("Abbrechen", ""); cancelItem.BackColor = new Color(213, 0, 0); cancelItem.HighlightedBackColor = new Color(229, 57, 53); let screenRes = mp.game.graphics.getScreenResolution(0, 0); var checkpoint = new mp.Vector3(2416.3723, 4993.94, 45); export default function farmerFieldList(globalData: IGlobalData) { var skillSelect; var skill = 60; var fieldSelected = false; var fieldSelect; mp.events.add(RageEnums.EventKey.PLAYER_EXIT_COLSHAPE, (colshape) => { if (colshape == fieldSelectColShape) { if (fieldMenu && fieldMenu.Visible) { fieldMenu.Close(); } } }); mp.events.add('SERVER:selectField', () => { skill = 100; if (!globalData.InMenu) { globalData.InMenu = true; skillSelect = ["Knecht (1)", "Hilfsarbeiter (2)", "Ackersmann (3)", "Landwirt (4)", "Ökonom (5)"]; fieldMenu = new Menu("Bus Job", "", new Point(0, screenRes.y / 3), null, null); fieldMenu.AddItem(new UIMenuListItem("Stufe wählen", "", new ItemsCollection(skillSelect))); fieldSelect = "Anfänger"; fieldMenu.AddItem(sendItem); fieldMenu.AddItem(cancelItem); fieldMenu.Visible = true; fieldMenu.ListChange.on((item, index) => { switch (item.Text) { case "Stufe wählen": fieldSelect = String(item.SelectedItem.DisplayText); break; } }); fieldMenu.ItemSelect.on((item) => { if (item.Text === "Starten") { if (fieldSelect == skillSelect[1] && skill < 5) { mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true); } else if (fieldSelect == skillSelect[2] && skill < 10) { mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true); } else if (fieldSelect == skillSelect[3] && skill < 25) { mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true); } else if (fieldSelect == skillSelect[4] && skill < 50) { mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true); } else { mp.events.callRemote("CLIENT:StartFieldSelected", fieldSelect); fieldSelected = true; fieldMenu.Close(); globalData.InMenu = false; } } else if (item.Text === "Abbrechen") { fieldMenu.Close(); } }); fieldMenu.MenuClose.on(() => { if (!fieldSelected) { //mp.events.callRemote("CLIENT:Job_StopJob"); } fieldSelected = false; globalData.InMenu = false; }); } }); var activeCheckpoint; var activeBlip = null; var myVar; var activeCheckpointId; mp.events.add('farmerSetCheckpoint', (position, markerId, markerSize, cpId) => { activeCheckpointId = cpId; activeCheckpoint = mp.markers.new(markerId, position, markerSize, { color: [255, 0, 0, 150], visible: true, dimension: 0 }); activeBlip = mp.blips.new(1, position, { color: 33, alpha: 255, shortRange: false, }); activeBlip.setRoute(true); activeBlip.setRouteColour(33); clearInterval(myVar); myVar = setInterval(checkpointTimer, 50); }); function checkpointTimer() { let dist = mp.game.gameplay.getDistanceBetweenCoords(mp.players.local.position.x, mp.players.local.position.y, 0, checkpoint.x, checkpoint.y, 0, false); if (dist <= 2) { clearInterval(myVar); activeCheckpoint.destroy(); } } }