Merge branch 'develop' into 'master'
Fix autos See merge request log-gtav/reallife-gamemode!68
This commit is contained in:
@@ -208,7 +208,7 @@ export default function tuning(globalData: IGlobalData) {
|
|||||||
var currentActiveModItem = new Array<VehicleModMenuItem>();
|
var currentActiveModItem = new Array<VehicleModMenuItem>();
|
||||||
var currentSelectedItem: VehicleModMenuItem = null;
|
var currentSelectedItem: VehicleModMenuItem = null;
|
||||||
|
|
||||||
mp.events.add("showTuningMenu", (noMoney, basePrice) => {
|
mp.events.add("showTuningMenu", (noMoney, basePrice, onlyRepair: boolean) => {
|
||||||
mp.events.call("hideTuningInfo", false);
|
mp.events.call("hideTuningInfo", false);
|
||||||
mp.gui.chat.show(false);
|
mp.gui.chat.show(false);
|
||||||
|
|
||||||
@@ -230,127 +230,129 @@ export default function tuning(globalData: IGlobalData) {
|
|||||||
repairItem.BackColor = new Color(94, 94, 94);
|
repairItem.BackColor = new Color(94, 94, 94);
|
||||||
repairItem.HighlightedBackColor = new Color(105, 105, 105);
|
repairItem.HighlightedBackColor = new Color(105, 105, 105);
|
||||||
|
|
||||||
carModTypes.forEach((modType) => {
|
if (!onlyRepair) {
|
||||||
var mod: number = null;
|
carModTypes.forEach((modType) => {
|
||||||
|
var mod: number = null;
|
||||||
|
|
||||||
if (modType === 22) { // Lichter
|
if (modType === 22) { // Lichter
|
||||||
var hlColor = localVehicle.getVariable("headlightColor");
|
var hlColor = localVehicle.getVariable("headlightColor");
|
||||||
if (typeof hlColor !== "number" || isNaN(hlColor) || hlColor < 0 || hlColor === 255) {
|
if (typeof hlColor !== "number" || isNaN(hlColor) || hlColor < 0 || hlColor === 255) {
|
||||||
mod = -1;
|
mod = -1;
|
||||||
} else if (hlColor === 13) mod = 0;
|
} else if (hlColor === 13) mod = 0;
|
||||||
else mod = hlColor + 1;
|
else mod = hlColor + 1;
|
||||||
} else if (modType === 18) { // Turbo
|
} else if (modType === 18) { // Turbo
|
||||||
var toggle = localVehicle.isToggleModOn(modType);
|
var toggle = localVehicle.isToggleModOn(modType);
|
||||||
mod = toggle ? 0 : -1;
|
mod = toggle ? 0 : -1;
|
||||||
} else if (modType == -1) { // Lackierungen
|
} else if (modType == -1) { // Lackierungen
|
||||||
var colorItem = new UIMenuItem("Lackierungen");
|
var colorItem = new UIMenuItem("Lackierungen");
|
||||||
var colorMenu = getColorMenu();
|
var colorMenu = getColorMenu();
|
||||||
|
|
||||||
mainMenu.AddItem(colorItem);
|
mainMenu.AddItem(colorItem);
|
||||||
mainMenu.BindMenuToItem(colorMenu, colorItem);
|
mainMenu.BindMenuToItem(colorMenu, colorItem);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
} else if (modType == -2) {
|
} else if (modType == -2) {
|
||||||
var wheelsItem = new UIMenuItem("Reifen");
|
var wheelsItem = new UIMenuItem("Reifen");
|
||||||
var wheelsMenu = getWheelsMenu(localVehicle);
|
var wheelsMenu = getWheelsMenu(localVehicle);
|
||||||
|
|
||||||
mainMenu.AddItem(wheelsItem);
|
mainMenu.AddItem(wheelsItem);
|
||||||
mainMenu.BindMenuToItem(wheelsMenu, wheelsItem);
|
mainMenu.BindMenuToItem(wheelsMenu, wheelsItem);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var num = localVehicle.getNumMods(modType);
|
var num = localVehicle.getNumMods(modType);
|
||||||
|
|
||||||
if (num === 0 && modType !== 18 && modType !== 22 && modType !== -1) return;
|
if (num === 0 && modType !== 18 && modType !== 22 && modType !== -1) return;
|
||||||
|
|
||||||
var modName = localVehicle.getModSlotName(modType) || "nix gefunden";
|
var modName = localVehicle.getModSlotName(modType) || "nix gefunden";
|
||||||
modName = mp.game.ui.getLabelText(modName);
|
modName = mp.game.ui.getLabelText(modName);
|
||||||
|
|
||||||
if (modName === "NULL") {
|
if (modName === "NULL") {
|
||||||
for (var x = 0; x < carModSlotName.length; x++) {
|
for (var x = 0; x < carModSlotName.length; x++) {
|
||||||
var tmpSlot = carModSlotName[x];
|
var tmpSlot = carModSlotName[x];
|
||||||
if (tmpSlot.Slot == modType) {
|
if (tmpSlot.Slot == modType) {
|
||||||
modName = tmpSlot.Name;
|
modName = tmpSlot.Name;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (mod === null) {
|
if (mod === null) {
|
||||||
mod = localVehicle.getMod(modType);
|
mod = localVehicle.getMod(modType);
|
||||||
}
|
|
||||||
|
|
||||||
var modNum = localVehicle.getNumMods(modType);
|
|
||||||
if (modType === 18) modNum = 1;
|
|
||||||
if (modType === 22) modNum = 14;
|
|
||||||
|
|
||||||
var modMenu = new Menu(modName, carName, new Point(0, screenRes.y / 3), null, null);
|
|
||||||
|
|
||||||
modMenu.Visible = false;
|
|
||||||
|
|
||||||
var menuItem = new UIMenuItem(modName);
|
|
||||||
mainMenu.AddItem(menuItem);
|
|
||||||
mainMenu.BindMenuToItem(modMenu, menuItem);
|
|
||||||
|
|
||||||
currentMod[modType] = mod;
|
|
||||||
|
|
||||||
for (var x = -1; x < modNum; x++) {
|
|
||||||
var price = noMoney ? 0 : getModSlotPrice(modType, basePrice, x);
|
|
||||||
var modText = "";
|
|
||||||
if (x === -1) {
|
|
||||||
modText = "Serie";
|
|
||||||
} else {
|
|
||||||
modText = mp.game.ui.getLabelText(localVehicle.getModTextLabel(modType, x));
|
|
||||||
if (modText === "NULL") modText = getModName(localVehicle, modType, x);
|
|
||||||
}
|
}
|
||||||
var item = new VehicleModMenuItem(modText);
|
|
||||||
item.price = price;
|
|
||||||
modMenu.AddItem(item);
|
|
||||||
|
|
||||||
if (x === mod) {
|
var modNum = localVehicle.getNumMods(modType);
|
||||||
item.SetRightBadge(BadgeStyle.Car);
|
if (modType === 18) modNum = 1;
|
||||||
currentActiveModItem[modType] = item;
|
if (modType === 22) modNum = 14;
|
||||||
modMenu.CurrentSelection = x;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
item.SetRightLabel("$" + moneyformat(price));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
modMenu.IndexChange.on((index: number) => {
|
var modMenu = new Menu(modName, carName, new Point(0, screenRes.y / 3), null, null);
|
||||||
if (modType === 18) return;
|
|
||||||
if (modType === 22) {
|
modMenu.Visible = false;
|
||||||
setHeadlightsColor(localVehicle, index);
|
|
||||||
return;
|
var menuItem = new UIMenuItem(modName);
|
||||||
|
mainMenu.AddItem(menuItem);
|
||||||
|
mainMenu.BindMenuToItem(modMenu, menuItem);
|
||||||
|
|
||||||
|
currentMod[modType] = mod;
|
||||||
|
|
||||||
|
for (var x = -1; x < modNum; x++) {
|
||||||
|
var price = noMoney ? 0 : getModSlotPrice(modType, basePrice, x);
|
||||||
|
var modText = "";
|
||||||
|
if (x === -1) {
|
||||||
|
modText = "Serie";
|
||||||
|
} else {
|
||||||
|
modText = mp.game.ui.getLabelText(localVehicle.getModTextLabel(modType, x));
|
||||||
|
if (modText === "NULL") modText = getModName(localVehicle, modType, x);
|
||||||
|
}
|
||||||
|
var item = new VehicleModMenuItem(modText);
|
||||||
|
item.price = price;
|
||||||
|
modMenu.AddItem(item);
|
||||||
|
|
||||||
|
if (x === mod) {
|
||||||
|
item.SetRightBadge(BadgeStyle.Car);
|
||||||
|
currentActiveModItem[modType] = item;
|
||||||
|
modMenu.CurrentSelection = x;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
item.SetRightLabel("$" + moneyformat(price));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
localVehicle.setMod(modType, index - 1);
|
|
||||||
|
modMenu.IndexChange.on((index: number) => {
|
||||||
|
if (modType === 18) return;
|
||||||
|
if (modType === 22) {
|
||||||
|
setHeadlightsColor(localVehicle, index);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
localVehicle.setMod(modType, index - 1);
|
||||||
|
});
|
||||||
|
|
||||||
|
modMenu.MenuOpen.on(() => {
|
||||||
|
if (modType === 22) {
|
||||||
|
localVehicle.setLights(2);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
modMenu.ItemSelect.on((item: VehicleModMenuItem, index: number) => {
|
||||||
|
if (currentMod[modType] == index - 1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
currentSelectedItem = item;
|
||||||
|
mp.events.callRemote("setVehicleMod", modType, index, price);
|
||||||
|
});
|
||||||
|
|
||||||
|
modMenu.MenuClose.on(() => {
|
||||||
|
if (modType === 18) return;
|
||||||
|
if (modType === 22) {
|
||||||
|
localVehicle.setLights(1);
|
||||||
|
setHeadlightsColor(localVehicle, currentMod[22] + 1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
localVehicle.setMod(modType, currentMod[modType]);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
}
|
||||||
modMenu.MenuOpen.on(() => {
|
|
||||||
if (modType === 22) {
|
|
||||||
localVehicle.setLights(2);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
modMenu.ItemSelect.on((item: VehicleModMenuItem, index: number) => {
|
|
||||||
if (currentMod[modType] == index - 1) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
currentSelectedItem = item;
|
|
||||||
mp.events.callRemote("setVehicleMod", modType, index, price);
|
|
||||||
});
|
|
||||||
|
|
||||||
modMenu.MenuClose.on(() => {
|
|
||||||
if (modType === 18) return;
|
|
||||||
if (modType === 22) {
|
|
||||||
localVehicle.setLights(1);
|
|
||||||
setHeadlightsColor(localVehicle, currentMod[22] + 1);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
localVehicle.setMod(modType, currentMod[modType]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
mainMenu.ItemSelect.on((item: NativeUI.UIMenuItem, index: number) => {
|
mainMenu.ItemSelect.on((item: NativeUI.UIMenuItem, index: number) => {
|
||||||
if (item === repairItem) {
|
if (item === repairItem) {
|
||||||
|
|||||||
@@ -2272,7 +2272,7 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
player.TriggerEvent("showTuningMenu", true);
|
player.TriggerEvent("showTuningMenu", true, 0, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -116,7 +116,18 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
{
|
{
|
||||||
if (!player.IsInVehicle) return;
|
if (!player.IsInVehicle) return;
|
||||||
|
|
||||||
player.TriggerEvent("showTuningMenu", false, GetVehicleBasePrice(player.Vehicle));
|
Vehicle vehicle = player.Vehicle;
|
||||||
|
|
||||||
|
bool onlyRepair = false;
|
||||||
|
|
||||||
|
ServerVehicle serverVehicle = vehicle.GetServerVehicle();
|
||||||
|
if (serverVehicle is FactionVehicle factionVehicle && factionVehicle.BuyPrice == 0)
|
||||||
|
{
|
||||||
|
player.SendNotification("~r~Dieses Fahrzeug kann aktuell leider nicht getunt werden");
|
||||||
|
onlyRepair = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
player.TriggerEvent("showTuningMenu", false, GetVehicleBasePrice(player.Vehicle), onlyRepair);
|
||||||
}
|
}
|
||||||
|
|
||||||
private int GetVehicleBasePrice(Vehicle vehicle)
|
private int GetVehicleBasePrice(Vehicle vehicle)
|
||||||
@@ -170,6 +181,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
player.TriggerEvent("SERVER:Tuning_ModSucessfull", slot, index);
|
player.TriggerEvent("SERVER:Tuning_ModSucessfull", slot, index);
|
||||||
|
|
||||||
Vehicle pV = player.Vehicle;
|
Vehicle pV = player.Vehicle;
|
||||||
|
|
||||||
if (index == 0) index--;
|
if (index == 0) index--;
|
||||||
|
|
||||||
if (slot != 18)
|
if (slot != 18)
|
||||||
|
|||||||
Reference in New Issue
Block a user