Improve House system
This commit is contained in:
@@ -10,12 +10,7 @@ export default function house(globalData: GlobalData) {
|
||||
|
||||
var keyBound = false;
|
||||
|
||||
mp.events.add("SERVER:ShowHouseMenu", (dataStr, state: number) => {
|
||||
houseData = JSON.parse(dataStr);
|
||||
houseState = state;
|
||||
mp.gui.chat.push(state.toString());
|
||||
mp.gui.chat.push(dataStr);
|
||||
|
||||
mp.events.add("SERVER:ShowHouseMenu", () => {
|
||||
mp.game.ui.setTextComponentFormat('STRING');
|
||||
mp.game.ui.addTextComponentSubstringPlayerName('Drücke ~INPUT_CONTEXT~, um das Hausmenü öffnen');
|
||||
mp.game.ui.displayHelpTextFromStringLabel(0, true, true, -1);
|
||||
@@ -24,13 +19,18 @@ export default function house(globalData: GlobalData) {
|
||||
keyBound = true;
|
||||
});
|
||||
|
||||
mp.events.add("SERVER:SetHouseData", (dataStr, state) => {
|
||||
houseData = JSON.parse(dataStr);
|
||||
houseState = state;
|
||||
});
|
||||
|
||||
function keyPressHandler() {
|
||||
mp.gui.chat.push("open menu");
|
||||
mp.game.ui.clearHelp(true);
|
||||
|
||||
var subTitle = houseData.Type;
|
||||
if (houseData.OwnerName) {
|
||||
subTitle += " von " + houseData.OwnerData;
|
||||
subTitle += " von " + houseData.OwnerName;
|
||||
}
|
||||
|
||||
houseMenu = new Menu("Hausverwaltung", subTitle, new Point(50, 50), null, null);
|
||||
@@ -39,15 +39,14 @@ export default function house(globalData: GlobalData) {
|
||||
mp.gui.chat.push(houseState.toString());
|
||||
|
||||
var rentInItem: UIMenuItem;
|
||||
var cancelOwnRentalItem: UIMenuItem;
|
||||
|
||||
var buyHouseItem: UIMenuItem;
|
||||
|
||||
var setRentalFeeItem: UIMenuItem;
|
||||
var cancelRentalsItem: UIMenuItem;
|
||||
|
||||
var houseRentals = 0;
|
||||
|
||||
if (houseData.Rentals) houseRentals = houseData.Rentals.length;
|
||||
var houseRentals = houseData.Rentals.length;
|
||||
|
||||
if (houseState === -1) { // Keine Beziehung zum Haus
|
||||
mp.gui.chat.push("einmieten");
|
||||
@@ -65,21 +64,38 @@ export default function house(globalData: GlobalData) {
|
||||
setRentalFeeItem.SetRightLabel(moneyFormat(houseData.RentalFee, 0) + "$");
|
||||
houseMenu.AddItem(setRentalFeeItem);
|
||||
|
||||
cancelRentalsItem = new UIMenuItem("Mieter", "Liste deine Mieter auf");
|
||||
cancelRentalsItem.SetRightLabel(houseRentals.toString());
|
||||
|
||||
if (houseRentals > 0) {
|
||||
cancelRentalsItem = new UIMenuItem("Mieter", "Liste deine Mieter auf");
|
||||
cancelRentalsItem.SetRightLabel(houseRentals.toString());
|
||||
houseMenu.AddItem(cancelRentalsItem);
|
||||
|
||||
var cancelRentalsMenu = new Menu("Mieter", "Kündige einen Mieter", new Point(50, 50), null, null);
|
||||
cancelRentalsMenu.Visible = false;
|
||||
|
||||
houseData.Rentals.forEach(rental => {
|
||||
var item = new UIMenuItem(rental.Name, "");
|
||||
var item = new UIMenuItem(rental, "");
|
||||
item.SetRightLabel("Kündigen");
|
||||
cancelRentalsMenu.AddItem(item);
|
||||
});
|
||||
|
||||
cancelRentalsMenu.ItemSelect.on((item: UIMenuItem, index: number) => {
|
||||
mp.events.callRemote("CLIENT:House_CancelUserRental", item.Text);
|
||||
houseRentals--;
|
||||
cancelRentalsItem.SetRightLabel(houseRentals.toString());
|
||||
if (houseRentals === 0) {
|
||||
cancelRentalsMenu.Visible = false;
|
||||
houseMenu.Visible = true;
|
||||
houseMenu.RemoveItem(cancelRentalsItem);
|
||||
}
|
||||
|
||||
cancelRentalsMenu.RemoveItem(item);
|
||||
});
|
||||
|
||||
houseMenu.BindMenuToItem(cancelRentalsMenu, cancelRentalsItem);
|
||||
}
|
||||
} else if (houseState === 2) {
|
||||
cancelOwnRentalItem = new UIMenuItem("Mietvertrag kündigen", "Ziehe aus der Wohnung aus");
|
||||
houseMenu.AddItem(cancelOwnRentalItem);
|
||||
}
|
||||
|
||||
var cancelItem = new UIMenuItem("Abbrechen");
|
||||
@@ -97,6 +113,7 @@ export default function house(globalData: GlobalData) {
|
||||
mp.events.call("SERVER:CloseHouseMenu");
|
||||
} else if (item === setRentalFeeItem) {
|
||||
var rentalFeeInput = new InputHelper("Wie viel soll die Miete betragen?", globalData);
|
||||
rentalFeeInput.show();
|
||||
rentalFeeInput.getValue(data => {
|
||||
if (isNaN(data)) {
|
||||
return;
|
||||
@@ -107,13 +124,20 @@ export default function house(globalData: GlobalData) {
|
||||
mp.events.callRemote("CLIENT:House_SetRentalFee", rentalFee);
|
||||
mp.events.call("SERVER:CloseHouseMenu");
|
||||
});
|
||||
} else if (item === rentInItem) {
|
||||
mp.events.callRemote("CLIENT:House_RentInHouse");
|
||||
} else if (item === cancelOwnRentalItem) {
|
||||
mp.events.callRemote("CLIENT:House_CancelOwnRental");
|
||||
}
|
||||
});
|
||||
|
||||
houseMenu.MenuClose.on(() => {
|
||||
globalData.InMenu = false;
|
||||
});
|
||||
}
|
||||
|
||||
mp.events.add("SERVER:CloseHouseMenu", () => {
|
||||
mp.game.ui.clearHelp(true);
|
||||
globalData.InMenu = false;
|
||||
if (houseMenu != null) {
|
||||
houseMenu.Close();
|
||||
}
|
||||
|
||||
1045
ReallifeGamemode.Client/package-lock.json
generated
1045
ReallifeGamemode.Client/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -1,18 +1,18 @@
|
||||
{
|
||||
"name": "reallifegamemode.client",
|
||||
"name": "client",
|
||||
"version": "1.0.0",
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.3.4",
|
||||
"@types/node": "^11.9.5",
|
||||
"@babel/core": "^7.5.5",
|
||||
"@types/node": "^11.13.18",
|
||||
"@types/ragemp-c": "github:CocaColaBear/types-ragemp-c#master",
|
||||
"NativeUI": "https://github.com/sprayzcs/RageMP-NativeUI/tarball/master",
|
||||
"babel-loader": "^8.0.5",
|
||||
"copy-webpack-plugin": "^5.0.1",
|
||||
"ts-loader": "^5.3.3",
|
||||
"typescript": "^3.3.3333",
|
||||
"uglifyjs-webpack-plugin": "^2.1.2",
|
||||
"webpack": "^4.29.6",
|
||||
"webpack-cli": "^3.2.3"
|
||||
"NativeUI": "git+ssh://git@github.com/sprayzcs/RageMP-NativeUI.git",
|
||||
"babel-loader": "^8.0.6",
|
||||
"copy-webpack-plugin": "^5.0.4",
|
||||
"ts-loader": "^5.4.5",
|
||||
"typescript": "^3.5.3",
|
||||
"uglifyjs-webpack-plugin": "^2.1.3",
|
||||
"webpack": "^4.38.0",
|
||||
"webpack-cli": "^3.3.6"
|
||||
},
|
||||
"scripts": {
|
||||
"watch": "webpack --watch --config webpack.config.development.js",
|
||||
|
||||
@@ -13,13 +13,12 @@
|
||||
},
|
||||
"include": [
|
||||
"**/*",
|
||||
"node_modules/NativeUI/index.ts", "../ReallifeGamemode.Server/Entities/FactionWeapon.cs"
|
||||
"node_modules/NativeUI/index.ts"
|
||||
],
|
||||
"files": [
|
||||
"node_modules/NativeUI/index.ts"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"wwwroot"
|
||||
"node_modules"
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user