add interactionmenu find cars as member & add funcation give money
This commit is contained in:
@@ -21,7 +21,9 @@ export default function (globalData: IGlobalData) {
|
|||||||
|
|
||||||
var serviceItem = new UIMenuItem("Service rufen", "Rufe einen Dienstleister an");
|
var serviceItem = new UIMenuItem("Service rufen", "Rufe einen Dienstleister an");
|
||||||
|
|
||||||
var factionItem = new UIMenuItem("Fraktion", "Verwalte deine Fraktion");
|
var factionItem = new UIMenuItem("Fraktion", "Fraktionsfahrzeug finden");
|
||||||
|
|
||||||
|
var factionleaderItem = new UIMenuItem("Fraktion", "Verwalte deine Fraktion");
|
||||||
|
|
||||||
var groupItem = new UIMenuItem("Gruppe", "Verwalte deine Gruppe");
|
var groupItem = new UIMenuItem("Gruppe", "Verwalte deine Gruppe");
|
||||||
|
|
||||||
@@ -33,7 +35,9 @@ export default function (globalData: IGlobalData) {
|
|||||||
|
|
||||||
var ticketItem = new UIMenuItem("Strafticket", "Strafticket annehmen/ablehnen");
|
var ticketItem = new UIMenuItem("Strafticket", "Strafticket annehmen/ablehnen");
|
||||||
|
|
||||||
mp.events.add("SERVER:InteractionMenu_OpenMenu", (accountDataJson: string, faction: string, group: string, factionInvite: boolean, groupInvite: boolean, ticket_boolean: boolean, ticket_amount) => {
|
var payName: string;
|
||||||
|
|
||||||
|
mp.events.add("SERVER:InteractionMenu_OpenMenu", (accountDataJson: string, factionleader: string, faction: string, group: string, factionInvite: boolean, groupInvite: boolean, ticket_boolean: boolean, ticket_amount, pay_amount) => {
|
||||||
|
|
||||||
|
|
||||||
var accountData: AccountData = JSON.parse(accountDataJson);
|
var accountData: AccountData = JSON.parse(accountDataJson);
|
||||||
@@ -57,11 +61,16 @@ export default function (globalData: IGlobalData) {
|
|||||||
menu.BindMenuToItem(getVehiclesMenu(vehicles, "CLIENT:InteractionMenu_PlayerVehicleInteraction", true, menu), vehiclesItem);
|
menu.BindMenuToItem(getVehiclesMenu(vehicles, "CLIENT:InteractionMenu_PlayerVehicleInteraction", true, menu), vehiclesItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (faction) {
|
if (faction && !factionleader) {
|
||||||
factionItem.SetRightLabel(faction);
|
factionItem.SetRightLabel(faction);
|
||||||
menu.AddItem(factionItem);
|
menu.AddItem(factionItem);
|
||||||
menu.BindMenuToItem(getFactionMenu(faction, accountData.factionVehicles, accountData.stateFaction, menu), factionItem);
|
menu.BindMenuToItem(getFactionMenu(faction, accountData.factionVehicles, accountData.stateFaction, menu), factionItem);
|
||||||
}
|
}
|
||||||
|
if (faction && factionleader) {
|
||||||
|
factionleaderItem.SetRightLabel(factionleader);
|
||||||
|
menu.AddItem(factionleaderItem);
|
||||||
|
menu.BindMenuToItem(getFactionLeaderMenu(faction, accountData.factionVehicles, accountData.stateFaction, menu), factionleaderItem);
|
||||||
|
}
|
||||||
|
|
||||||
if (group) {
|
if (group) {
|
||||||
groupItem.SetRightLabel(group);
|
groupItem.SetRightLabel(group);
|
||||||
@@ -69,6 +78,9 @@ export default function (globalData: IGlobalData) {
|
|||||||
menu.BindMenuToItem(getGroupMenu(group, menu), groupItem);
|
menu.BindMenuToItem(getGroupMenu(group, menu), groupItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (accountData.paycheck) {
|
if (accountData.paycheck) {
|
||||||
var p = accountData.paycheck;
|
var p = accountData.paycheck;
|
||||||
var paycheckMenu = new Menu("Gehaltsscheck", "Dein Verdienst der letzten Stunde", new Point(50, 50), null, null);
|
var paycheckMenu = new Menu("Gehaltsscheck", "Dein Verdienst der letzten Stunde", new Point(50, 50), null, null);
|
||||||
@@ -112,6 +124,9 @@ export default function (globalData: IGlobalData) {
|
|||||||
menu.BindMenuToItem(paycheckMenu, paycheckItem);
|
menu.BindMenuToItem(paycheckMenu, paycheckItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var payItem = new UIMenuItem("Geld geben");
|
||||||
|
menu.AddItem(payItem);
|
||||||
|
|
||||||
var nextPaydayItem = new UIMenuItem("Nächster PayDay");
|
var nextPaydayItem = new UIMenuItem("Nächster PayDay");
|
||||||
nextPaydayItem.SetRightLabel(`${accountData.nextPayday} Minuten`);
|
nextPaydayItem.SetRightLabel(`${accountData.nextPayday} Minuten`);
|
||||||
menu.AddItem(nextPaydayItem);
|
menu.AddItem(nextPaydayItem);
|
||||||
@@ -138,6 +153,17 @@ export default function (globalData: IGlobalData) {
|
|||||||
if (item === acceptItem) {
|
if (item === acceptItem) {
|
||||||
mp.events.callRemote("CLIENT:InteractionMenu_AcceptInvite", acceptItem.SelectedValue);
|
mp.events.callRemote("CLIENT:InteractionMenu_AcceptInvite", acceptItem.SelectedValue);
|
||||||
menu.Close(true);
|
menu.Close(true);
|
||||||
|
} else if (item === payItem) {
|
||||||
|
mp.gui.chat.activate(true);
|
||||||
|
mp.gui.cursor.show(true, true);
|
||||||
|
globalData.InMenu = false;
|
||||||
|
var input = new InputHelper("Welchem Spieler möchtest du Geld geben (Name / ID)?", globalData);
|
||||||
|
input.show();
|
||||||
|
input.getValue(name => {
|
||||||
|
mp.events.call("CLIENT:InteractionMenu_Pay_Name", name);
|
||||||
|
menu.Close(true);
|
||||||
|
mp.gui.cursor.show(false, false);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -253,17 +279,41 @@ export default function (globalData: IGlobalData) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getFactionMenu(faction: string, vehData: VehicleData[], stateFaction: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu {
|
function getFactionMenu(faction: string, vehData: VehicleData[], stateFaction: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||||
|
|
||||||
var factionMenu = new NativeUI.Menu("Fraktion", faction, new Point(50, 50), null, null);
|
var factionMenu = new NativeUI.Menu("Fraktion", faction, new Point(50, 50), null, null);
|
||||||
|
|
||||||
|
|
||||||
|
factionMenu.Visible = false;
|
||||||
|
|
||||||
|
if (vehData.length > 0) {
|
||||||
|
var factionVehicleItem = new UIMenuItem("Fahrzeuge Finden", "Finden");
|
||||||
|
factionMenu.AddItem(factionVehicleItem);
|
||||||
|
factionMenu.BindMenuToItem(getVehiclesMenu(vehData, "CLIENT:InteractionMenu_FactionVehicleInteraction", !stateFaction, parentMenu), factionVehicleItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
return factionMenu;
|
||||||
|
}
|
||||||
|
function getFactionLeaderMenu(faction: string, vehData: VehicleData[], stateFaction: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||||
|
|
||||||
|
var factionMenu = new NativeUI.Menu("Fraktion", faction, new Point(50, 50), null, null);
|
||||||
|
|
||||||
factionMenu.AddItem(new UIMenuItem("Spieler einladen"));
|
factionMenu.AddItem(new UIMenuItem("Spieler einladen"));
|
||||||
factionMenu.AddItem(new UIMenuItem("Spieler rauswerfen"));
|
factionMenu.AddItem(new UIMenuItem("Spieler rauswerfen"));
|
||||||
factionMenu.Visible = false;
|
factionMenu.Visible = false;
|
||||||
|
|
||||||
if (vehData.length > 0) {
|
if (vehData.length > 0) {
|
||||||
var factionVehicleItem = new UIMenuItem("Fraktionsfahrzeuge", "Finden oder verkaufen");
|
var factionVehicleItem = new UIMenuItem("Fahrzeuge Finden", "Finden");
|
||||||
factionMenu.AddItem(factionVehicleItem);
|
factionMenu.AddItem(factionVehicleItem);
|
||||||
factionMenu.BindMenuToItem(getVehiclesMenu(vehData, "CLIENT:InteractionMenu_FactionVehicleInteraction", !stateFaction, parentMenu), factionVehicleItem);
|
factionMenu.BindMenuToItem(getVehiclesMenu(vehData, "CLIENT:InteractionMenu_FactionVehicleInteraction", !stateFaction, parentMenu), factionVehicleItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (vehData.length > 0) {
|
||||||
|
var factionVehicleItem2 = new UIMenuItem("Fahrzeuge Verkaufen", "Verkaufen");
|
||||||
|
factionMenu.AddItem(factionVehicleItem2);
|
||||||
|
factionMenu.BindMenuToItem(getVehiclesMenu2(vehData, "CLIENT:InteractionMenu_FactionVehicleInteractionSell", !stateFaction, parentMenu), factionVehicleItem2);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
factionMenu.ItemSelect.on((item, index) => {
|
factionMenu.ItemSelect.on((item, index) => {
|
||||||
if (index === 0) { // Inviten
|
if (index === 0) { // Inviten
|
||||||
var input = new InputHelper("Welchen Spieler möchtest du inviten (Name / ID)?", globalData);
|
var input = new InputHelper("Welchen Spieler möchtest du inviten (Name / ID)?", globalData);
|
||||||
@@ -330,18 +380,43 @@ export default function (globalData: IGlobalData) {
|
|||||||
|
|
||||||
function getVehiclesMenu(vehicles: VehicleData[], eventName: string, allowSell: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu {
|
function getVehiclesMenu(vehicles: VehicleData[], eventName: string, allowSell: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||||
var desc = "Finden";
|
var desc = "Finden";
|
||||||
if (allowSell) {
|
|
||||||
desc += " oder Verkaufen";
|
|
||||||
}
|
|
||||||
|
|
||||||
var menu = new Menu("Fahrzeuge", desc, new Point(50, 50), null, null);
|
var menu = new Menu("Fahrzeuge", desc, new Point(50, 50), null, null);
|
||||||
|
|
||||||
var items: string[] = ["Finden"];
|
var items: string[] = ["Finden"];
|
||||||
|
|
||||||
if (allowSell) {
|
|
||||||
items.push("Verkaufen");
|
var collection = new ItemsCollection(items);
|
||||||
|
|
||||||
|
vehicles.forEach(veh => {
|
||||||
|
var name: string = mp.game.ui.getLabelText(mp.game.vehicle.getDisplayNameFromVehicleModel(veh.Model));
|
||||||
|
|
||||||
|
var item = new UIMenuListItem(`${veh.Id.toString().padEnd(5)} | ${name}`, "", collection, null, { id: veh.Id });
|
||||||
|
|
||||||
|
menu.AddItem(item);
|
||||||
|
});
|
||||||
|
|
||||||
|
menu.ItemSelect.on((item: NativeUI.UIMenuListItem, index: number) => {
|
||||||
|
var id = item.Data.id;
|
||||||
|
var selection = item.SelectedValue;
|
||||||
|
|
||||||
|
mp.events.callRemote(eventName, id, selection);
|
||||||
|
|
||||||
|
parentMenu.Close(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
return menu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getVehiclesMenu2(vehicles: VehicleData[], eventName: string, allowSell: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||||
|
var desc = "";
|
||||||
|
if (allowSell) {
|
||||||
|
desc += " Verkaufen";
|
||||||
|
}
|
||||||
|
var menu = new Menu("Fahrzeuge", desc, new Point(50, 50), null, null);
|
||||||
|
|
||||||
|
var items: string[] = ["Verkaufen"];
|
||||||
|
|
||||||
var collection = new ItemsCollection(items);
|
var collection = new ItemsCollection(items);
|
||||||
|
|
||||||
vehicles.forEach(veh => {
|
vehicles.forEach(veh => {
|
||||||
@@ -418,6 +493,7 @@ export default function (globalData: IGlobalData) {
|
|||||||
return menu;
|
return menu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function getTicketMenu(ticket_amount: number, parentMenu: NativeUI.Menu): NativeUI.Menu {
|
function getTicketMenu(ticket_amount: number, parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||||
var ticketMenu = new NativeUI.Menu("Ticket", `Ticket in Höhe von ${ticket_amount}$`, new Point(50, 50), null, null);
|
var ticketMenu = new NativeUI.Menu("Ticket", `Ticket in Höhe von ${ticket_amount}$`, new Point(50, 50), null, null);
|
||||||
ticketMenu.AddItem(new UIMenuItem("Ticket annehmen"));
|
ticketMenu.AddItem(new UIMenuItem("Ticket annehmen"));
|
||||||
@@ -440,4 +516,14 @@ export default function (globalData: IGlobalData) {
|
|||||||
return ticketMenu;
|
return ticketMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mp.events.add("CLIENT:InteractionMenu_Pay_Name", (name) => {
|
||||||
|
payName = name;
|
||||||
|
var input = new InputHelper("Wie viel?", globalData);
|
||||||
|
mp.gui.cursor.show(true, true);
|
||||||
|
input.show();
|
||||||
|
input.getValue(amount => {
|
||||||
|
mp.events.callRemote("CLIENT:InteractionMenu_Pay", JSON.stringify(payName), amount);
|
||||||
|
mp.gui.cursor.show(false, false);
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -151,6 +151,8 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
adminLevel = u.AdminLevel.GetName(),
|
adminLevel = u.AdminLevel.GetName(),
|
||||||
points = u.Points,
|
points = u.Points,
|
||||||
faction = u.Faction?.Name ?? "Zivilist",
|
faction = u.Faction?.Name ?? "Zivilist",
|
||||||
|
factionleader = u.Faction?.Name ?? "Zivilist",
|
||||||
|
//factionleader = u.FactionLeader,
|
||||||
stateFaction = u.Faction?.StateOwned,
|
stateFaction = u.Faction?.StateOwned,
|
||||||
factionRank = u.GetFactionRank().RankName,
|
factionRank = u.GetFactionRank().RankName,
|
||||||
group = u.Group?.Name ?? "Keine",
|
group = u.Group?.Name ?? "Keine",
|
||||||
@@ -163,18 +165,26 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
nextPayday = u.PaydayTimer
|
nextPayday = u.PaydayTimer
|
||||||
};
|
};
|
||||||
|
|
||||||
string faction = u.FactionLeader ? u.Faction.Name : null;
|
string faction = u.Faction.Name;
|
||||||
|
string factionleader = u.FactionLeader ? u.Faction.Name : null;
|
||||||
string group = u.Group != null && u.GroupRank >= GroupRank.MANAGER ? u.Group.Name : null;
|
string group = u.Group != null && u.GroupRank >= GroupRank.MANAGER ? u.Group.Name : null;
|
||||||
bool factionInvite = player.HasData("accept_faction_invite");
|
bool factionInvite = player.HasData("accept_faction_invite");
|
||||||
bool groupInvite = player.HasData("accept_group_invite");
|
bool groupInvite = player.HasData("accept_group_invite");
|
||||||
bool ticket_boolean = player.HasData("ticket_boolean");
|
bool ticket_boolean = player.HasData("ticket_boolean");
|
||||||
int ticket_amount = 0;
|
int ticket_amount = 0;
|
||||||
|
int pay_amount = 0;
|
||||||
|
|
||||||
if (player.HasData("ticket_amount"))
|
if (player.HasData("ticket_amount"))
|
||||||
{
|
{
|
||||||
ticket_amount = player.GetData<int>("ticket_amount");
|
ticket_amount = player.GetData<int>("ticket_amount");
|
||||||
}
|
}
|
||||||
|
|
||||||
player.TriggerEvent("SERVER:InteractionMenu_OpenMenu", JsonConvert.SerializeObject(accountData), faction, group, factionInvite, groupInvite, ticket_boolean, ticket_amount);
|
if(player.HasData("pay_amount"))
|
||||||
|
{
|
||||||
|
pay_amount = player.GetData<int>("pay_amount");
|
||||||
|
}
|
||||||
|
|
||||||
|
player.TriggerEvent("SERVER:InteractionMenu_OpenMenu", JsonConvert.SerializeObject(accountData), factionleader, faction, group, factionInvite, groupInvite, ticket_boolean, ticket_amount, pay_amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
[RemoteEvent("keyPress:E")]
|
[RemoteEvent("keyPress:E")]
|
||||||
|
|||||||
@@ -395,7 +395,23 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
{
|
{
|
||||||
player.TriggerEvent("SERVER:Util_setWaypoint", veh.Position.X, veh.Position.Y);
|
player.TriggerEvent("SERVER:Util_setWaypoint", veh.Position.X, veh.Position.Y);
|
||||||
}
|
}
|
||||||
else if (selection == "Verkaufen")
|
}
|
||||||
|
|
||||||
|
[RemoteEvent("CLIENT:InteractionMenu_FactionVehicleInteractionSell")]
|
||||||
|
public void FactionVehicleInteractionSell(Player player, int id, string selection)
|
||||||
|
{
|
||||||
|
using var dbContext = new DatabaseContext(true);
|
||||||
|
var user = player.GetUser(dbContext);
|
||||||
|
|
||||||
|
var factionVehicle = dbContext.FactionVehicles.ToList().Where(v => v.Id == id && v.GetOwners().Contains(user.FactionId.Value)).FirstOrDefault();
|
||||||
|
if (factionVehicle == null)
|
||||||
|
{
|
||||||
|
ChatService.ErrorMessage(player, "Das Fahrzeug wurde nicht gefunden");
|
||||||
|
}
|
||||||
|
|
||||||
|
GTANetworkAPI.Vehicle veh = VehicleManager.GetVehicleFromServerVehicle(factionVehicle);
|
||||||
|
|
||||||
|
if (selection == "Verkaufen")
|
||||||
{
|
{
|
||||||
if (dbContext.FactionVehicles.ToList().Where(f => f.GetOwners().Contains(user.FactionId.Value)).Count() <= 6)
|
if (dbContext.FactionVehicles.ToList().Where(f => f.GetOwners().Contains(user.FactionId.Value)).Count() <= 6)
|
||||||
{
|
{
|
||||||
@@ -588,6 +604,50 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[RemoteEvent("CLIENT:InteractionMenu_Pay")]
|
||||||
|
public void InteractionMenu_Pay(Player player, string jsonNameOrId, string stringAmount)
|
||||||
|
{
|
||||||
|
string nameOrId = (string)JsonConvert.DeserializeObject(jsonNameOrId);
|
||||||
|
int amount = Int32.Parse(stringAmount);
|
||||||
|
Player target = PlayerService.GetPlayerByNameOrId(nameOrId);
|
||||||
|
string playername = NAPI.Player.GetPlayerName(player);
|
||||||
|
string targetname = NAPI.Player.GetPlayerName(target);
|
||||||
|
if (target == null || !target.IsLoggedIn())
|
||||||
|
{
|
||||||
|
ChatService.PlayerNotFound(player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (target == player)
|
||||||
|
{
|
||||||
|
player.SendNotification("~r~Du kannst dir selber kein Geld geben!");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (amount > 0 && amount < 5000)
|
||||||
|
{
|
||||||
|
player.SendNotification($"~w~Du hast ~y~{targetname} ~w~ ${amount} gegeben.");
|
||||||
|
target.SendNotification($"~w~ Du hast von ~y~{playername} ~w~ ${amount}$ erhalten.", true);
|
||||||
|
target.SetData<int>("pay_amount", amount);
|
||||||
|
|
||||||
|
player.SendChatMessage("hallo debug player");
|
||||||
|
target.SendChatMessage("hallo debug target");
|
||||||
|
using (var dbContext = new DatabaseContext())
|
||||||
|
{
|
||||||
|
target.GetUser(dbContext).Handmoney += amount;
|
||||||
|
player.GetUser(dbContext).Handmoney -= amount;
|
||||||
|
dbContext.SaveChanges();
|
||||||
|
}
|
||||||
|
target.ResetData("pay_amount");
|
||||||
|
target.ResetData("pay_player");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player.SendNotification("~r~ Du kannst nur zwischen $1 und $5.000 geben!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion Eigeninteraktionen PFEILTASTE-RUNTER
|
#endregion Eigeninteraktionen PFEILTASTE-RUNTER
|
||||||
|
|
||||||
#region Spielerinteraktionen PFEILTASTE-LINKS
|
#region Spielerinteraktionen PFEILTASTE-LINKS
|
||||||
|
|||||||
Reference in New Issue
Block a user