Add LSPD Ticketsystem
This commit is contained in:
@@ -33,7 +33,7 @@ export default function (globalData: IGlobalData) {
|
||||
|
||||
var ticketItem = new UIMenuItem("Ticket annehmen", "Strafticket annehmen");
|
||||
|
||||
mp.events.add("SERVER:InteractionMenu_OpenMenu", (accountDataJson: string, faction: string, group: string, factionInvite: boolean, groupInvite: boolean) => {
|
||||
mp.events.add("SERVER:InteractionMenu_OpenMenu", (accountDataJson: string, faction: string, group: string, factionInvite: boolean, groupInvite: boolean, ticket_boolean: boolean, ticket_amount: number) => {
|
||||
var accountData: AccountData = JSON.parse(accountDataJson);
|
||||
|
||||
var menu = getInteractionMenu();
|
||||
@@ -103,6 +103,12 @@ export default function (globalData: IGlobalData) {
|
||||
menu.BindMenuToItem(paycheckMenu, paycheckItem);
|
||||
}
|
||||
|
||||
if (ticket_boolean == true)
|
||||
{
|
||||
menu.AddItem(ticketItem);
|
||||
menu.BindMenuToItem(getTicketMenu(ticket_amount, menu), ticketItem);
|
||||
}
|
||||
|
||||
var items: Array<string> = new Array<string>();
|
||||
if (factionInvite) items.push("Fraktion");
|
||||
if (groupInvite) items.push("Gruppe");
|
||||
@@ -327,5 +333,26 @@ export default function (globalData: IGlobalData) {
|
||||
|
||||
return menu;
|
||||
}
|
||||
function getTicketMenu(ticket_amount: number, parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||
var factionMenu = new NativeUI.Menu("Ticket", `Ticket in Höhe von ${ticket_amount}`, new Point(50, 50), null, null);
|
||||
factionMenu.AddItem(new UIMenuItem("Ticket annehmen"));
|
||||
factionMenu.AddItem(new UIMenuItem("Ticket ablehnen"));
|
||||
factionMenu.Visible = false;
|
||||
|
||||
factionMenu.ItemSelect.on((item, index) => {
|
||||
if (index === 0) // Ticket annehmen
|
||||
{
|
||||
parentMenu.Close();
|
||||
mp.events.callRemote("CLIENT:InteractionMenu_Ticket", "Angenommen", ticket_amount);
|
||||
}
|
||||
else if (index === 1) // Ticket ablehnen
|
||||
{
|
||||
parentMenu.Close();
|
||||
mp.events.callRemote("CLIENT:InteractionMenu_Ticket", "Abgelehnt", ticket_amount);
|
||||
}
|
||||
});
|
||||
|
||||
return factionMenu;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -146,8 +146,10 @@ namespace ReallifeGamemode.Server.Events
|
||||
string group = u.Group != null && u.GroupRank >= GroupRank.MANAGER ? u.Group.Name : null;
|
||||
bool factionInvite = player.HasData("accept_faction_invite");
|
||||
bool groupInvite = player.HasData("accept_group_invite");
|
||||
bool ticket_boolean = player.HasData("ticket_boolean");
|
||||
int ticket_amount = NAPI.Data.GetEntityData(player, "ticket_amount");
|
||||
|
||||
player.TriggerEvent("SERVER:InteractionMenu_OpenMenu", JsonConvert.SerializeObject(accountData), faction, group, factionInvite, groupInvite);
|
||||
player.TriggerEvent("SERVER:InteractionMenu_OpenMenu", JsonConvert.SerializeObject(accountData), faction, group, factionInvite, groupInvite, ticket_boolean, ticket_amount);
|
||||
}
|
||||
|
||||
[RemoteEvent("keyPress:E")]
|
||||
|
||||
@@ -384,7 +384,11 @@ namespace ReallifeGamemode.Server.Managers
|
||||
target.SendNotification($"~b~{player.GetUser().FactionRank.RankName} | {playername} ~w~hat dir ein Ticket in Höhe von ~y~{amount}$ ~w~gestellt.", true);
|
||||
target.SendNotification($"~w~Grund: ~g~{reason}~w~. ~x~Strafticket im Interaktionsmenü annehmen.", true);
|
||||
//target.SendChatMessage("Du kannst mit '/accept ticket' das Strafticket annehmen.");
|
||||
|
||||
target.SetData("ticket_boolean", true);
|
||||
//target.SetData("ticket_amount", amount);
|
||||
//target.SetSharedData("ticket_amount", amount);
|
||||
NAPI.Data.SetEntityData(target, "ticket_amount", amount);
|
||||
NAPI.Data.SetEntityData(target, "ticket_player", player);
|
||||
|
||||
}
|
||||
[RemoteEvent("CLIENT:InteractionMenu_LSPD_Points3")]
|
||||
@@ -396,10 +400,19 @@ namespace ReallifeGamemode.Server.Managers
|
||||
Player target = PlayerService.GetPlayerByNameOrId(nameOrId);
|
||||
string playername = NAPI.Player.GetPlayerName(player);
|
||||
string targetname = NAPI.Player.GetPlayerName(target);
|
||||
if (target.GetUser().DriverLicenseVehicle == false && target.GetUser().DriverLicenseBike == false)
|
||||
if (target == null || !target.IsLoggedIn())
|
||||
{
|
||||
ChatService.PlayerNotFound(player);
|
||||
return;
|
||||
}
|
||||
else if (target.GetUser().DriverLicenseVehicle == false && target.GetUser().DriverLicenseBike == false)
|
||||
{
|
||||
player.SendNotification("~r~Spieler hat weder Auto- noch Motorradführerschein!");
|
||||
}
|
||||
else if(target == player)
|
||||
{
|
||||
player.SendNotification("~r~Du kannst dir selbst keine Punkte setzen!");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (amount > -9 && amount < 9)
|
||||
@@ -424,7 +437,18 @@ namespace ReallifeGamemode.Server.Managers
|
||||
else if (target.GetUser().Points >= 8)
|
||||
{
|
||||
target.SendNotification($"~w~Grund: ~g~{reason}~w~. ~x~Du hast nun ~r~8/8 ~x~Strafpunkten.", true);
|
||||
target.SendNotification($"~w~Dir wird ~r~Auo- ~w~und ~r~Motorradführerschein ~w~entzogen.", true);
|
||||
target.SendNotification($"~w~Dir wird ~r~Auto- ~w~und ~r~Motorradführerschein ~w~entzogen.", true);
|
||||
foreach (var copPlayer in NAPI.Pools.GetAllPlayers())
|
||||
{
|
||||
User copUser = copPlayer.GetUser();
|
||||
if (copUser.FactionId == 1 || copUser.FactionId == 3)
|
||||
{
|
||||
if (copUser.GetData<bool>("duty") == true)
|
||||
{
|
||||
ChatService.SendMessage(copPlayer, "!{#8181E9}HQ: " + targetname + " besitzt nun keinen Führerschein mehr.");
|
||||
}
|
||||
}
|
||||
}
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User target2 = target.GetUser(dbContext);
|
||||
@@ -446,6 +470,41 @@ namespace ReallifeGamemode.Server.Managers
|
||||
}
|
||||
}
|
||||
}
|
||||
[RemoteEvent("CLIENT:InteractionMenu_Ticket")]
|
||||
public void InteractionMenuTicket(Player target, string type, int ticket_amount)
|
||||
{
|
||||
Player player = NAPI.Data.GetEntityData(target, "ticket_player");
|
||||
string playername = NAPI.Player.GetPlayerName(player);
|
||||
string targetname = NAPI.Player.GetPlayerName(target);
|
||||
/*if (type != "Fraktion" && type != "Gruppe") return;
|
||||
|
||||
Player target = PlayerService.GetPlayerByNameOrId(nameOrId);
|
||||
if (target == null || !target.IsLoggedIn())
|
||||
{
|
||||
ChatService.PlayerNotFound(player);
|
||||
return;
|
||||
}*/
|
||||
|
||||
//User targetUser = target.GetUser();
|
||||
//User playerUser = player.GetUser();
|
||||
|
||||
if (type == "Angenommen")
|
||||
{
|
||||
target.SendNotification($"~g~Du hast das Ticket über ~b~{ticket_amount}$ ~g~angenommen und bezahlt.", true);
|
||||
player.SendNotification($"~y~{targetname} ~g~hat das Ticket über ~b~{ticket_amount}$ ~g~angenommen und bezahlt.", true);
|
||||
target.ResetData("ticket_boolean");
|
||||
NAPI.Data.ResetEntityData(target, "ticket_amount");
|
||||
NAPI.Data.ResetEntityData(target, "ticket_player");
|
||||
}
|
||||
else if (type == "Abgelehnt")
|
||||
{
|
||||
target.SendNotification($"~r~Du hast das Ticket über ~b~{ticket_amount}$ ~r~abgelehnt.", true);
|
||||
player.SendNotification($"~y~{targetname} ~r~hat das Ticket über ~b~{ticket_amount}$ ~r~abgelehnt.", true);
|
||||
target.ResetData("ticket_boolean");
|
||||
NAPI.Data.ResetEntityData(target, "ticket_amount");
|
||||
NAPI.Data.ResetEntityData(target, "ticket_player");
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region Spielerinteraktionen PFEILTASTE-LINKS
|
||||
[RemoteEvent("openTradeInventory")]
|
||||
|
||||
Reference in New Issue
Block a user