Merge develop into feature/inventory-system

This commit is contained in:
VegaZ
2018-11-26 17:53:25 +01:00
66 changed files with 4533 additions and 1302 deletions

View File

@@ -0,0 +1,5 @@
mp.events.add('changeDoorState', (doorHash, x, y, z, locked, p5, p6, p7) => {
locked === 1 ? locked = true : locked = false;
mp.game.object.doorControl(doorHash, x, y, z, locked, p5, p6, p7);
});

View File

@@ -11,24 +11,6 @@ mp.events.add('manageFactionRanks', (ranks) => {
if (manageFactionRanksBrowser !== null) return;
manageFactionRanksBrowser = mp.browsers.new('package://FactionManagement/Ranks/index.html');
//var testRanks = {
// FactionId: 3,
// Ranks: [
// {
// Id: 5,
// Name: "Officer"
// },
// {
// Id: 6,
// Name: "Sergeant"
// }
// ]
//};
//var json = JSON.stringify(testRanks);
//mp.events.callRemote('OnFactionRanksEdit', json);
mp.gui.chat.activate(false);
rankData = JSON.parse(ranks);
});

View File

@@ -49,7 +49,7 @@ mp.events.add("respawnDeathPlayer", () => {
});
mp.events.add("updateDutyMedics", (count) => {
if (count == true)
if (count === true)
{
dutyMedics++;
}
@@ -70,11 +70,11 @@ mp.events.add("render", () => {
if (dutyMedics > 0) {
medicString = "Derzeit sind ~g~" + dutyMedics + " Medics ~s~im Dienst ~c~und versuchen dich wiederzubeleben...";
} else {
medicString = "Derzeit sind ~r~keine Medics ~s~im Dienst."
medicString = "Derzeit sind ~r~keine Medics ~s~im Dienst.";
}
deathSeconds = respawnTime - Math.floor(currentDate.getTime() / 1000);
var alpha = fade + (Math.floor((currentDate.getTime() / 1000) - (deathDate.getTime() / 1000)));
var alpha = fade + Math.floor(currentDate.getTime() / 1000 - deathDate.getTime() / 1000);
if (deathSeconds >= 0) {
mp.game.graphics.drawSprite("Mptattoos", "clearout", 0.625, 0.52, 0.1, 0.1, 0, 255, 255, 255, 236);
mp.game.graphics.drawText("Respawn in: ~y~" + deathSeconds, [0.5, 0.5],
@@ -83,14 +83,14 @@ mp.events.add("render", () => {
color: [255, 255, 255, 255],
scale: [0.8, 0.8],
outline: true
})
});
mp.game.graphics.drawText(medicString, [0.5, 0.975],
{
font: 4,
color: [255, 255, 255, 255],
scale: [0.4, 0.4],
outline: true
})
});
mp.game.graphics.drawRect(0.5, 0.5, 1, 1, 0, 0, 0, alpha);
} else {

View File

@@ -9,6 +9,7 @@ var dateString;
var timeString;
var draw = false;
var editMode = false;
let posX = 0.92;
let posY = 0.45;
@@ -43,6 +44,26 @@ mp.events.add("draw", (pName, pId) => {
});
mp.events.add("toggleEditMode", (toggle) => {
editMode = toggle;
});
mp.events.add("toggleUi", (show) => {
if (show === false) {
draw = false;
mp.game.ui.displayRadar(false);
mp.game.ui.displayHud(false);
mp.gui.chat.show(false);
globalData.HideGui = true;
} else {
draw = true;
mp.game.ui.displayRadar(true);
mp.game.ui.displayHud(true);
mp.gui.chat.show(true);
globalData.HideGui = false;
}
});
//function currencyFormatDE(num) {
// return ('$' + num.toFixed(2).replace('.', ',').replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1.'));
//}
@@ -173,4 +194,13 @@ mp.events.add("render", () => {
outline: true
})
}
if (editMode === true) {
mp.game.graphics.drawText("~r~EDIT-MODE AKTIV", [0.5, 0],
{
font: 4,
color: [255, 255, 255, 255],
scale: [0.7, 0.7],
outline: true
})
}
});

57
Client/Gui/nametags.js Normal file
View File

@@ -0,0 +1,57 @@
const maxDistance = 25 * 25;
const width = 0.03;
const height = 0.0065;
const border = 0.001;
const color = [255, 255, 255, 255];
mp.nametags.enabled = false;
mp.events.add('render', (nametags) => {
const graphics = mp.game.graphics;
const screenRes = graphics.getScreenResolution(0, 0);
nametags.forEach(nametag => {
let [player, x, y, distance] = nametag;
if (distance <= maxDistance) {
let scale = distance / maxDistance;
if (scale < 0.6) scale = 0.6;
var health = player.getHealth();
health = health < 100 ? 0 : (health - 100) / 100;
var armour = player.getArmour() / 100;
y -= scale * (0.005 * (screenRes.y / 1080));
mp.game.graphics.drawText(player.name + " (" + player.remoteId + ")", [x, y],
{
font: 4,
color: [255, 255, 255, 255],
scale: [0.4, 0.4],
outline: true
});
if (mp.game.player.isFreeAimingAtEntity(player.handle)) {
let y2 = y + 0.042;
if (armour > 0) {
graphics.drawRect(x, y2, width + border * 2, 0.0085, 0, 0, 0, 200);
graphics.drawRect(x, y2, width, height, 150, 150, 150, 255);
graphics.drawRect(x - width / 2 * (1 - health), y2, width * health, height, 255, 255, 255, 200);
x2 = x + width / 2 + border / 2;
graphics.drawRect(x, y2 + height, width + border * 2, height + border * 2, 0, 0, 0, 200);
graphics.drawRect(x, y2 + height, width, height, 41, 66, 78, 255);
graphics.drawRect(x - width / 2 * (1 - armour), y2 + height, width * armour, height, 48, 108, 135, 200);
}
else {
graphics.drawRect(x, y2, width + border * 2, height + border * 2, 0, 0, 0, 200);
graphics.drawRect(x, y2, width, height, 150, 150, 150, 255);
graphics.drawRect(x - width / 2 * (1 - health), y2, width * health, height, 255, 255, 255, 200);
}
}
}
});
});

108
Client/Player/dutycloth.js Normal file
View File

@@ -0,0 +1,108 @@
/**
* @overview Life of German Reallife - Player DutyClothes dutyclothes.js
* @author VegaZ
* @copyright (c) 2008 - 2018 Life of German
*/
const NativeUI = require("nativeui");
const Menu = NativeUI.Menu;
const UIMenuItem = NativeUI.UIMenuItem;
const UIMenuListItem = NativeUI.UIMenuListItem;
const UIMenuCheckboxItem = NativeUI.UIMenuCheckboxItem;
const BadgeStyle = NativeUI.BadgeStyle;
const Point = NativeUI.Point;
const ItemsCollection = NativeUI.ItemsCollection;
const Color = NativeUI.Color;
var hats;
var tops;
var legs;
var shoes;
var hat = -1;
var top;
var leg;
var shoe;
let screenRes = mp.game.graphics.getScreenResolution(0, 0);
var dutyMenu;
let saveItem = new UIMenuItem("Speichern", "Speichert deine Dienstkleidung");
saveItem.BackColor = new Color(13, 71, 161);
saveItem.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);
//Cloth Menu
mp.events.add('showDutyClothMenu', (hatsArr, topsArr, legsArr, shoesArr) => {
mp.gui.chat.activate(false);
hats = hatsArr;
tops = topsArr;
legs = legsArr;
shoes = shoesArr;
dutyMenu = new Menu("Dienstkleidung", "Stelle deine Dienstkleidung zusammen", new Point(0, screenRes.y/2));
dutyMenu.AddItem(new UIMenuListItem("Hut", "", new ItemsCollection(hats)));
dutyMenu.AddItem(new UIMenuListItem("Top", "", new ItemsCollection(tops)));
dutyMenu.AddItem(new UIMenuListItem("Hose", "", new ItemsCollection(legs)));
dutyMenu.AddItem(new UIMenuListItem("Schuhe", "", new ItemsCollection(shoes)));
dutyMenu.AddItem(saveItem);
dutyMenu.AddItem(cancelItem);
dutyMenu.Visible = true;
dutyMenu.ListChange.on((item, index) => {
switch (item.Text) {
case "Hut":
if (item.SelectedItem.DisplayText === "Keinen") {
hat = -1;
mp.events.callRemote("updateDutyProp", 0, -1);
} else {
hat = parseInt(item.SelectedItem.DisplayText);
mp.events.callRemote("updateDutyProp", 0, hat);
}
break;
case "Top":
top = parseInt(item.SelectedItem.DisplayText);
mp.events.callRemote("updateDutyCloth", 11, top);
break;
case "Hose":
leg = parseInt(item.SelectedItem.DisplayText);
mp.events.callRemote("updateDutyCloth", 4, leg);
break;
case "Schuhe":
shoe = parseInt(item.SelectedItem.DisplayText);
mp.events.callRemote("updateDutyCloth", 6, shoe);
break;
}
});
dutyMenu.ItemSelect.on((item) => {
if (item.Text === "Speichern") {
var slotType = [1, 0, 0, 0];
var slotId = [0, 11, 4, 6];
var clothId = [hat, top, leg, shoe];
mp.events.callRemote("saveCharacterCloth", JSON.stringify(slotType), JSON.stringify(slotId), JSON.stringify(clothId));
dutyMenu.Visible = false;
mp.gui.chat.activate(true);
} else if (item.Text === "Abbrechen") {
dutyMenu.Visible = false;
mp.gui.chat.activate(true);
mp.events.callRemote("defaultCharacterCloth");
}
});
dutyMenu.MenuClose.on(() => {
dutyMenu.Visible = false;
mp.gui.chat.activate(true);
mp.events.callRemote("defaultCharacterCloth");
});
});

View File

@@ -7,7 +7,11 @@
//https://docs.microsoft.com/de-de/windows/desktop/inputdev/virtual-key-codes
var chat = false;
<<<<<<< HEAD
var showInventory = false;
=======
var showGui = true;
>>>>>>> develop
//ENTER
mp.keys.bind(0x0D, false, function () {
@@ -16,7 +20,32 @@ mp.keys.bind(0x0D, false, function () {
}
});
//I
//F7 //Unshowalles
mp.keys.bind(0x76, false, function () {
if (showGui === true) {
showGui = false;
mp.events.call("toggleUi", false);
} else {
showGui = true;
mp.events.call("toggleUi", true);
}
});
//NUM2 //Save Blips in Edit Mode
mp.keys.bind(0x62, false, function () {
mp.events.callRemote("keyPress:NUM2");
});
//E
mp.keys.bind(0x45, false, function () {
if (!chat) {
mp.events.callRemote("keyPress:E");
}
});
//I //Spielerliste
mp.keys.bind(0x49, false, function () {
if (!chat) {
mp.events.callRemote("keyPress:I");
@@ -24,6 +53,7 @@ mp.keys.bind(0x49, false, function () {
}
});
<<<<<<< HEAD
//J
mp.keys.bind(0x4A, false, function () {
if (showInventory === false) {
@@ -36,6 +66,23 @@ mp.keys.bind(0x4A, false, function () {
});
//N
=======
//K //Dienstkleidung
mp.keys.bind(0x4B, false, function () {
if (!chat) {
mp.events.callRemote("keyPress:K");
}
});
//L //Türen auf / zuschließen
mp.keys.bind(0x4C, false, function () {
if (!chat) {
mp.events.callRemote("keyPress:L");
}
});
//N //Motor Starten
>>>>>>> develop
mp.keys.bind(0x4E, false, function () {
if (!chat) {
mp.events.callRemote("keyPress:N");
@@ -49,9 +96,10 @@ mp.keys.bind(0x54, false, function () {
}
});
//X
//X //Anschnallen
mp.keys.bind(0x58, false, function () {
if (!chat) {
mp.events.callRemote("keyPress:X");
}
});

View File

@@ -15,7 +15,7 @@ function saveData() {
let blipRotation = document.getElementById("blipRotation").value;
let blipDimension = document.getElementById("blipDimension").value;
mp.trigger("saveData", blipSprite, blipName, blipScale, blipColor, blipAlpha, blipDrawDistance, blipShortRange, blipRotation, blipDimension);
mp.trigger("saveBlipData", blipSprite, blipName, blipScale, blipColor, blipAlpha, blipDrawDistance, blipShortRange, blipRotation, blipDimension);
}
function cancelData() {

View File

@@ -7,12 +7,12 @@ var saveBrowser;
mp.events.add('saveBlip', () => {
saveBrowser = mp.browsers.new('package://Save/save.html');
saveBrowser = mp.browsers.new('package://Save/blip/save.html');
mp.gui.chat.activate(false);
mp.gui.cursor.show(true, true);
});
mp.events.add('saveData', (blipSprite, blipName, blipScale, blipColor, blipAlpha, blipDrawDistance, blipShortRange, blipRotation, blipDimension) => {
mp.events.add('saveBlipData', (blipSprite, blipName, blipScale, blipColor, blipAlpha, blipDrawDistance, blipShortRange, blipRotation, blipDimension) => {
if (saveBrowser) {
saveBrowser.destroy();
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,167 @@
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css\style.css">
<script src="js\gauge.js"></script>
<script>
function update(speed, rpm, gas)
{
updateSpeed(speed);
updateKM(speed);
updateRpm(rpm);
updateGas(gas);
}
function updateSpeed(speed)
{
document.getElementById("tacho").dataset.value = speed;
}
function updateKM(km)
{
var kilometerstandt = ( km )
document.getElementById("tacho").dataset.valueText = kilometerstandt.toFixed(1) + " km/h";
}
function updateRpm(rpm)
{
document.getElementById("rpm").dataset.value = rpm;
}
function updateGas(gas)
{
document.getElementById("gas").dataset.value = gas;
//if(gas >= 15){
// document.getElementById("gasState").innerHTML = ""
//}
//if(gas < 15){
// document.getElementById("gasState").innerHTML = "<img src=\"..\\Images\\gas_critical.png\" width=\"22px\">";
//}
//if( gas > 15 && gas < 50 ){
// document.getElementById("gasState").innerHTML = "<img src=\"..\\Images\\gas_low.png\" width=\"22px\">";
//}
}
function updateHealth(rotation)
{
if(rotation >= 50){
document.getElementById("repairState").innerHTML = ""
}
if(rotation < 25){
document.getElementById("repairState").innerHTML = "<img src=\"..\\Images\\engine_critical.png\" width=\"18px\">";
}
if( rotation > 25 && rotation < 50 ){
document.getElementById("repairState").innerHTML = "<img src=\"..\\Images\\engine_soft.png\" width=\"18px\">";
}
}
function showSpeedo()
{
document.body.className = "fade";
}
function hideSpeedo()
{
document.body.className = "";
}
</script>
<style>
.blinker_arrow{
color: #FFF;
}
</style>
</head>
<body onload="hideSpeedo()">
<div class="w3-container" style="width:350px; position:fixed; bottom: 60px; right:20px;">
<div class="w3-display-container" style="height:200px">
<div class="w3-display-middle">
<canvas id="tacho" data-type="radial-gauge"
data-width="200"
data-height="200"
data-units="Km/h"
data-title="false"
data-value="0"
data-min-value="0"
data-max-value="320"
data-major-ticks="0,20,40,60,80,100,120,140,160,180,200,220,240,260,280,300,320"
data-minor-ticks="2"
data-stroke-ticks="false"
data-highlights='[
{ "from": 200, "to": 320, "color": "rgba(255, 0, 0, .25)" }
]'
data-border-outer-width=1
data-border-middle-width=1
data-animation="false"
data-color-plate="#222"
data-color-major-ticks="#f5f5f5"
data-color-minor-ticks="#ddd"
data-color-title="#fff"
data-color-units="#ccc"
data-color-numbers="#eee"
data-color-needle-start="rgba(240, 128, 128, 1)"
data-color-needle-end="rgba(255, 160, 122, .9)"
data-value-box="true"
data-value-text="0 Km/h"
data-font-value="Arial"
></canvas>
</div>
<div class="w3-display-bottomleft" style="z-index:-5;">
<canvas id="gas" data-type="radial-gauge"
data-width="100"
data-height="100"
data-start-angle="20"
data-ticks-angle="140"
data-title="false"
data-value="0"
data-min-value="0"
data-max-value="100"
data-major-ticks="E,F"
data-minor-ticks="2"
data-stroke-ticks="false"
data-value-box="false"
data-animation="false"
data-highlights='[
{ "from": 0, "to": 15, "color": "rgba(255,0,0,.25)" }
]'
data-border-outer-width=1
data-border-middle-width=1
data-color-plate="#222"
data-color-major-ticks="#f5f5f5"
data-color-minor-ticks="#ddd"
data-font-numbers-size="32"
data-color-title="#fff"
data-color-units="#ccc"
data-color-numbers="#eee"
data-color-needle-start="rgba(240, 128, 128, 1)"
data-color-needle-end="rgba(255, 160, 122, .9)"
></canvas>
</div>
<div class="w3-display-bottomright" style="z-index:-5;">
<canvas id="rpm" data-type="radial-gauge"
data-width="100"
data-height="120"
data-units="RPM"
data-title="false"
data-value="0"
data-min-value="0"
data-max-value="1000"
data-major-ticks="0,1,2,3,4,5,6,7,8,9,10"
data-minor-ticks="2"
data-stroke-ticks="false"
data-value-box="false"
data-animation="false"
data-highlights='[
{ "from": 800, "to": 1000, "color": "rgba(255,0,0,.25)" }
]'
data-border-outer-width=1
data-border-middle-width=1
data-font-numbers-size="32"
data-color-plate="#222"
data-color-major-ticks="#f5f5f5"
data-color-minor-ticks="#ddd"
data-color-title="#fff"
data-color-units="#ccc"
data-color-numbers="#eee"
data-color-needle-start="rgba(240, 128, 128, 1)"
data-color-needle-end="rgba(255, 160, 122, .9)"
data-font-value="Led"
></canvas>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,30 @@
let speedo = mp.browsers.new("package://speedometer/CEF/speedometer.html");
let showed = false;
let player = mp.players.local;
mp.events.add('render', () =>
{
if (player.vehicle && player.vehicle.getPedInSeat(-1) === player.handle && !globalData.InTuning && !globalData.HideGui) // Check if player is in vehicle and is driver
{
if(showed === false) // Check if speedo is already showed
{
speedo.execute("showSpeedo();");
showed = true;
}
/*Get vehicle infos*/
let vel = player.vehicle.getSpeed() * 3.6; //Doc: https://wiki.rage.mp/index.php?title=Entity::getSpeed
let rpm = player.vehicle.rpm * 1000; //Doc: https://wiki.rage.mp/index.php?title=Vehicle::rpm
let gas = player.vehicle.getPetrolTankHealth(); //Doc: https://wiki.rage.mp/index.php?title=Vehicle::getPetrolTankHealth
gas = gas < 0 ? 0: gas / 10;
speedo.execute(`update(${vel}, ${rpm}, ${gas});`); // Send data do CEF
}
else
{
if(showed)
{
speedo.execute("hideSpeedo();");
showed = false;
}
}
});

View File

@@ -6,7 +6,7 @@
var keyBound = false;
var carModTypes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 22, 23];
var carModTypes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 22, 25, 27, 28, 30, 33, 34, 35, 38, 46, 48];
var carModSlotName = [
{ Slot: 0, Name: "Spoiler" }, // 0
@@ -39,6 +39,33 @@ var customPartNames = [
Name: "Lüftungsschlitze"
}
]
},
{
Model: 159274291,
Names: [
{
Slot: 8,
Name: "Kotflügel"
}
]
},
{
Model: 223240013,
Names: [
{
Slot: 9,
Name: "Heckkotflügel"
}
]
},
{
Model: 1031562256,
Names: [
{
Slot: 5,
Name: "Stoßdämpfer"
}
]
}
];
@@ -56,13 +83,13 @@ const ItemsCollection = NativeUI.ItemsCollection;
const Color = NativeUI.Color;
const ListItem = NativeUI.ListItem;
var mainMenu;
mp.events.add('showTuningInfo', () => {
mp.game.ui.setTextComponentFormat('STRING');
mp.game.ui.addTextComponentSubstringPlayerName('Drücke ~INPUT_CONTEXT~, um dein Fahrzeug zu modifizieren');
mp.game.ui.displayHelpTextFromStringLabel(0, true, true, -1);
mp.gui.chat.push("Model: " + mp.players.local.vehicle.model);
mp.keys.bind(0x45, false, keyPressHandler);
keyBound = true;
});
@@ -71,6 +98,11 @@ mp.events.add('hideTuningInfo', (unbind) => {
mp.game.ui.clearHelp(true);
mp.gui.chat.show(true);
if (typeof mainMenu !== "undefined" && unbind) {
mainMenu.Visible = false;
globalData.InTuning = false;
}
if (keyBound && unbind) {
mp.keys.unbind(0x45, false, keyPressHandler);
keyBound = false;
@@ -88,7 +120,13 @@ mp.events.add("showTuningMenu", () => {
var localPlayer = mp.players.local;
var localVehicle = localPlayer.vehicle;
var mainMenu = new Menu("Fahrzeugwerkstatt", "Modifiziere dein Fahrzeug", new Point(50, 50));
if (typeof mainMenu !== "undefined" && mainMenu.Visible) {
return;
}
globalData.InTuning = true;
mainMenu = new Menu("Fahrzeugwerkstatt", "Modifiziere dein Fahrzeug", new Point(50, 50));
carModTypes.forEach((modType) => {
if (localVehicle.getModSlotName(modType) !== "undefined") {
@@ -99,6 +137,8 @@ mp.events.add("showTuningMenu", () => {
if (slotName === undefined) slotName = getSlotName(modType);
}
if (slotName === "undefined") slotName = "Slot " + modType;
var menuItem = new UIMenuItem(slotName);
if(localVehicle.getNumMods(modType) !== 0) mainMenu.AddItem(menuItem);
@@ -107,25 +147,60 @@ mp.events.add("showTuningMenu", () => {
mainMenu.Visible = true;
mainMenu.ItemSelect.on(item => {
mainMenu.ItemSelect.on((item) => {
var modSlot = getSlotId(item.Text);
var currentMod = localVehicle.getMod(modSlot);
var currentModItem;
if (item.Text.startsWith("Slot")) {
restStr = item.Text.substring(5);
modSlot = parseInt(restStr);
}
var modNum = localVehicle.getNumMods(modSlot);
var modMenu = new Menu(item.Text, "Änderung: " + item.Text, new Point(50, 50));
modMenu.AddItem(new UIMenuItem("Serie", ""));
for (var i = -1; i < modNum; i++) {
var modItem;
for (var i = 0; i < modNum; i++) {
var modName = localVehicle.getModTextLabel(modSlot, i);
var realModName = mp.game.ui.getLabelText(modName);
var modItem = new UIMenuItem(realModName, "");
if (i === -1) {
modItem = new UIMenuItem("Serie", "");
} else {
var modName = localVehicle.getModTextLabel(modSlot, i);
var realModName = mp.game.ui.getLabelText(modName);
modItem = new UIMenuItem(realModName, "");
}
if (i === currentMod) {
modItem.SetRightBadge(BadgeStyle.Car);
currentModItem = modItem;
modFound = true;
}
modMenu.AddItem(modItem);
}
modMenu.IndexChange.on(index => {
modMenu.ItemSelect.on((selectedItem, index) => {
if (currentModItem !== undefined) {
currentModItem.SetRightBadge(BadgeStyle.None);
}
if (selectedItem !== undefined) {
selectedItem.SetRightBadge(BadgeStyle.Car);
currentModItem = selectedItem;
}
mp.events.callRemote("setVehicleMod", modSlot, index);
if (index === 0) index = -1;
currentMod = index - 1;
});
modMenu.IndexChange.on((index) => {
if (index === 0) index = -1;
localVehicle.setMod(modSlot, index - 1);
});
modMenu.MenuClose.on(() => {
localVehicle.setMod(modSlot, currentMod);
});
modMenu.MenuClose.on(() => {
@@ -138,11 +213,16 @@ mp.events.add("showTuningMenu", () => {
});
mainMenu.MenuClose.on(() => {
globalData.InTuning = false;
mp.events.call("hideTuningInfo", false);
});
});
mp.events.add("playerLeaveVehicle", () => {
mp.events.call("hideTuningInfo", true);
});
function getSlotName(slot) {
var toReturn = "undefined";

View File

@@ -4,20 +4,30 @@
* @copyright (c) 2008 - 2018 Life of German
*/
let globalData = {
InTuning: false,
HideGui: false
};
require('./CharCreator/index.js');
require('./Login/main.js');
require('./FactionManagement/main.js');
require('./Save/main.js');
require('./DoorManager/doormanager.js');
require('./Gui/deathscreen.js');
require('./Gui/infobox.js');
require('./Gui/nametags.js');
require('./Gui/playerlist.js');
require('./Gui/Inventory/inventory.js');
require('./Login/main.js');
require('./Player/dutycloth.js');
require('./Player/keys.js');
require('./FactionManagement/main.js');
require('./Save/main.js');
require('./Tuning/main.js');
require('./Speedometer/index.js');
require('./Tuning/main.js');