Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using GTANetworkAPI;
- using System.Linq;
- using VMP_CNR.Module.Armory;
- using VMP_CNR.Module.GTAN;
- using VMP_CNR.Module.Menu;
- using VMP_CNR.Module.Players;
- using VMP_CNR.Module.Players.Db;
- using VMP_CNR.Module.Swat;
- using VMP_CNR.Module.Weapons;
- using VMP_CNR.Module.Weapons.Data;
- namespace VMP_CNR
- {
- public class ArmoryMenuBuilder : MenuBuilder
- {
- public ArmoryMenuBuilder() : base(PlayerMenu.Armory)
- {
- }
- public override Menu Build(DbPlayer iPlayer)
- {
- var menu = new Menu(Menu, $"Armory");
- menu.Add(MSG.General.Close(), "");
- if (!iPlayer.HasData("ArmoryId")) return menu;
- var ArmoryId = iPlayer.GetData("ArmoryId");
- Armory Armory = ArmoryModule.Instance.Get(ArmoryId);
- if (Armory == null) return menu;
- menu.Description = $"{Armory.Packets} Pakete";
- menu.Add("Dienst verlassen", "Waffen, Munition und Schutzweste wird entfernt");
- menu.Add("Dienst betreten", "Sie registrieren sich fuer den Dienst");
- menu.Add("UnderArmor Schutzweste", "Schutzweste unter der Kleidung");
- menu.Add("FullPlate Schutzweste", "Schutzweste mit Stahlplatten");
- menu.Add("Waffen", "Waffenarsenal öffnen");
- menu.Add("Items", "Items öffnen");
- if (iPlayer.HasSwatRights()) menu.Add("Swat-Dienst verlassen", "");
- return menu;
- }
- public override IMenuEventHandler GetEventHandler()
- {
- return new EventHandler();
- }
- private class EventHandler : IMenuEventHandler
- {
- public bool OnSelect(int index, DbPlayer iPlayer)
- {
- if (!iPlayer.HasData("ArmoryId")) return false;
- var ArmoryId = iPlayer.GetData("ArmoryId");
- Armory Armory = ArmoryModule.Instance.Get(ArmoryId);
- if (Armory == null) return false;
- switch (index)
- {
- case 1:
- // Out of Duty
- iPlayer.SendNewNotification("Sie haben sich vom Dienst abgemeldet!", title:"Dienstende", notificationType:PlayerNotification.NotificationType.ERROR);
- iPlayer.SetArmor(0);
- iPlayer.SetDuty(false);
- int back = 0;
- foreach(WeaponDetail wdetail in iPlayer.Weapons)
- {
- var WeaponData = WeaponDataModule.Instance.Get(wdetail.WeaponDataId);
- // Weapon is in Armory
- ArmoryWeapon armoryWeapon = Armory.ArmoryWeapons.Where(aw => aw.Weapon == (WeaponHash)WeaponData.Hash).FirstOrDefault();
- if(armoryWeapon != null)
- {
- // Gebe 50% an Geld zurück
- back += armoryWeapon.Price / 2;
- }
- }
- if(back > 0)
- {
- iPlayer.SendNewNotification($"Sie haben ${back} als Rückzahlung für Ihr Equipment erhalten!");
- iPlayer.GiveBankMoney(back);
- back = 0;
- }
- iPlayer.RemoveWeapons();
- iPlayer.Team.SendNotification(Lang.rang[0] + iPlayer.TeamRank + " | " + $"{iPlayer.GetName()} meldet sich vom Dienst ab.");
- break;
- case 2:
- // in Duty
- iPlayer.SendNewNotification("Sie haben sich zum Dienst gemeldet!", title: "Dienstbereit", notificationType:PlayerNotification.NotificationType.SUCCESS);
- iPlayer.SetDuty(true);
- iPlayer.SetHealth(100);
- iPlayer.Team.SendNotification(Lang.rang[0] + iPlayer.TeamRank + " | " + $"{iPlayer.GetName()} meldet sich zum Dienst an.");
- break;
- case 3:
- if (!Armory.HasArmor)
- {
- iPlayer.SendNewNotification("Diese Ware ist in Ihrer Waffenkammer nicht verfuegbar!");
- return false;
- }
- iPlayer.SetArmor(99);
- break;
- case 4:
- if (!Armory.HasHeavyArmor)
- {
- iPlayer.SendNewNotification("Diese Ware ist in Ihrer Waffenkammer nicht verfuegbar!");
- return false;
- }
- iPlayer.SetArmor(180, true);
- break;
- case 5:
- // Waffen
- MenuManager.Instance.Build(PlayerMenu.ArmoryWeapons, iPlayer).Show(iPlayer);
- break;
- case 6:
- // Waffen
- MenuManager.Instance.Build(PlayerMenu.ArmoryItems, iPlayer).Show(iPlayer);
- break;
- case 7:
- if (iPlayer.HasSwatRights() && iPlayer.IsSwatDuty())
- {
- iPlayer.SetSwatDuty(false);
- break;
- }
- MenuManager.DismissMenu(iPlayer.Player, (int)PlayerMenu.Armory);
- break;
- default:
- MenuManager.DismissMenu(iPlayer.Player, (int) PlayerMenu.Armory);
- break;
- }
- return false;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement