Business kaufen

This commit is contained in:
hydrant
2019-09-11 22:18:37 +02:00
parent fe90891801
commit 146261bc03
9 changed files with 1618 additions and 105 deletions

View File

@@ -18,133 +18,123 @@ export default function business(globalData: GlobalData) {
var closeMenu = false;
var businessName;
var businessMoney;
var mainMenu;
var bankMenu;
var mainMenu: NativeUI.Menu;
mp.events.add('business_showHelp', (bizName, bizMoney) => {
var businessData: any;
var businessState: number;
mp.events.add('SERVER:Business_ShowMenuHelp', (bizName, bizMoney) => {
mp.game.ui.setTextComponentFormat('STRING');
mp.game.ui.addTextComponentSubstringPlayerName('Drücke ~INPUT_CONTEXT~, um dein Business zu verwalten');
mp.game.ui.addTextComponentSubstringPlayerName('Drücke ~INPUT_CONTEXT~, um das Businessmenü zu öffnen');
mp.game.ui.displayHelpTextFromStringLabel(0, true, true, -1);
businessName = bizName;
businessMoney = bizMoney;
mp.keys.bind(0x45, false, keyPressHandler);
keyBound = true;
});
mp.events.add('business_removeHelp', (unbind) => {
mp.events.add('SERVER:Business_SetData', (data, state: number) => {
businessData = JSON.parse(data);
businessState = state;
});
mp.events.add('SERVER:Business_RemoveHelp', (unbind) => {
mp.game.ui.clearHelp(true);
mp.gui.chat.show(true);
if (keyBound && unbind) {
if (typeof mainMenu !== "undefined") mainMenu.Close();
if (typeof bankMenu !== "undefined") {
closeMenu = true;
bankMenu.Close();
}
if (mainMenu) mainMenu.Close();
mp.keys.unbind(0x45, false, keyPressHandler);
keyBound = false;
}
});
mp.events.add('business_updateMoney', (newMoney) => {
businessMoney = newMoney;
});
function keyPressHandler() {
mp.events.call('business_removeHelp', false);
mp.gui.chat.show(false);
mp.events.call('SERVER:Business_RemoveHelp', false);
if (globalData.InChat || globalData.InInput || globalData.InMenu) return;
if (typeof mainMenu !== "undefined" && mainMenu.Visible) {
return;
}
if (typeof bankMenu !== "undefined" && bankMenu.Visible) {
return;
}
globalData.InMenu = true;
mainMenu = new Menu("Businessverwaltung", businessName, new Point(50, 50), null, null);
mainMenu = new Menu("Businessverwaltung", businessData.Name, new Point(50, 50), null, null);
var bankAccountItem = new UIMenuItem("Businesskasse", "Verwalte die Businesskasse");
bankAccountItem.SetRightLabel("~h~" + businessMoney);
mainMenu.AddItem(bankAccountItem);
var bankAccountItem: NativeUI.UIMenuItem;
var buyItem: NativeUI.UIMenuItem;
//var partnerItem = new UIMenuItem("Inteilhaber", "Verwalte den Inteilhaber");
//partnerItem.SetRightLabel("Niemand");
//mainMenu.AddItem(partnerItem);
mainMenu.Open();
if (businessState == 1) { // Besitzer
bankAccountItem = new UIMenuItem("Businesskasse", "Verwalte die Businesskasse");
bankAccountItem.SetRightLabel("~h~" + businessData.Balance);
mainMenu.AddItem(bankAccountItem);
var bankMenu = new Menu("Bankkonto", businessData.Name, new Point(50, 50), null, null);
bankMenu.Visible = false;
var infoItem = new UIMenuItem("Aktueller Kontostand");
infoItem.SetRightLabel("~h~" + businessData.Balance);
bankMenu.AddItem(infoItem);
var depositItem = new UIMenuItem("Einzahlen", "Zahle Geld auf die Businesskasse ein");
bankMenu.AddItem(depositItem);
var withdrawItem = new UIMenuItem("Auszahlen", "Zahle Geld von der Businesskasse aus");
bankMenu.AddItem(withdrawItem);
bankMenu.ItemSelect.on((item, index) => {
if (item === depositItem) {
var depositInput = new InputHelper("Wie viel Geld möchtest du auf deine Businesskasse einzahlen?", globalData);
depositInput.show();
depositInput.getValue((data) => {
var amount = parseInt(data);
if (isNaN(amount)) {
mp.game.graphics.notify('~r~Du musst eine Nummer eingeben!');
return;
}
mp.events.callRemote('Business_DepositMoney', amount);
mainMenu.Close();
});
} else if (item === withdrawItem) {
var withdrawInput = new InputHelper("Wie viel Geld möchtest du von deiner Businesskasse abheben?", globalData);
withdrawInput.show();
withdrawInput.getValue((data) => {
var amount = parseInt(data);
if (isNaN(amount)) {
mp.game.graphics.notify('~r~Du musst eine Nummer eingeben!');
return;
}
mp.events.callRemote('Business_WithdrawMoney', amount);
mainMenu.Close();
});
}
});
mainMenu.BindMenuToItem(bankMenu, bankAccountItem);
} else if (businessState == 0) { // Kein Besitzer
buyItem = new UIMenuItem("Kaufen", businessData.Price);
mainMenu.AddItem(buyItem);
} else if (businessState == -1) {
mp.game.graphics.notify("Hier gibt es nichts zu sehen");
}
mainMenu.ItemSelect.on((item, index) => {
if (item === bankAccountItem) {
// manage bank account
bankMenu = new Menu("Bankkonto", businessName, new Point(50, 50), null, null);
var infoItem = new UIMenuItem("Aktueller Kontostand");
infoItem.SetRightLabel("~h~" + businessMoney);
bankMenu.AddItem(infoItem);
var depositItem = new UIMenuItem("Einzahlen", "Zahle Geld auf die Businesskasse ein");
bankMenu.AddItem(depositItem);
var withdrawItem = new UIMenuItem("Auszahlen", "Zahle Geld von der Businesskasse aus");
bankMenu.AddItem(withdrawItem);
bankMenu.ItemSelect.on((item, index) => {
if (item === depositItem) {
var depositInput = new InputHelper("Wie viel Geld möchtest du auf deine Businesskasse einzahlen?", globalData);
depositInput.show();
depositInput.getValue((data) => {
var amount = parseInt(data);
if (isNaN(amount)) {
mp.game.graphics.notify('~r~Du musst eine Nummer eingeben!');
return;
}
mp.events.callRemote('Business_DepositMoney', amount);
});
} else if (item === withdrawItem) {
var withdrawInput = new InputHelper("Wie viel Geld möchtest du von deiner Businesskasse abheben?", globalData);
withdrawInput.show();
withdrawInput.getValue((data) => {
var amount = parseInt(data);
if (isNaN(amount)) {
mp.game.graphics.notify('~r~Du musst eine Nummer eingeben!');
return;
}
mp.events.callRemote('Business_WithdrawMoney', amount);
});
}
});
bankMenu.MenuClose.on(() => {
if (closeMenu) {
closeMenu = false;
return;
}
mainMenu.Visible = true;
});
bankMenu.Visible = true;
mainMenu.Visible = false;
if (item === buyItem) {
mainMenu.Close();
mp.events.callRemote("CLIENT:Business_BuyBusiness");
}
//else if (item === partnerItem) {
// // manage partner
//}
});
mainMenu.Open();
mainMenu.MenuClose.on(() => {
mp.events.call('business_removeHelp', false);
mp.events.call('SERVER:Business_RemoveHelp', false);
globalData.InMenu = false;
});
}