134 lines
4.7 KiB
TypeScript
134 lines
4.7 KiB
TypeScript
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();
|
|
}
|
|
}
|
|
} |