Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2019
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.82 KB | None | 0 0
  1. using GTANetworkAPI;
  2. using System.Linq;
  3. using VMP_CNR.Module.Armory;
  4. using VMP_CNR.Module.GTAN;
  5. using VMP_CNR.Module.Menu;
  6. using VMP_CNR.Module.Players;
  7. using VMP_CNR.Module.Players.Db;
  8. using VMP_CNR.Module.Swat;
  9. using VMP_CNR.Module.Weapons;
  10. using VMP_CNR.Module.Weapons.Data;
  11.  
  12. namespace VMP_CNR
  13. {
  14.     public class ArmoryMenuBuilder : MenuBuilder
  15.     {
  16.         public ArmoryMenuBuilder() : base(PlayerMenu.Armory)
  17.         {
  18.         }
  19.  
  20.         public override Menu Build(DbPlayer iPlayer)
  21.         {
  22.             var menu = new Menu(Menu, $"Armory");
  23.  
  24.             menu.Add(MSG.General.Close(), "");
  25.            
  26.             if (!iPlayer.HasData("ArmoryId")) return menu;
  27.             var ArmoryId = iPlayer.GetData("ArmoryId");
  28.             Armory Armory = ArmoryModule.Instance.Get(ArmoryId);
  29.             if (Armory == null) return menu;
  30.            
  31.             menu.Description = $"{Armory.Packets} Pakete";
  32.  
  33.             menu.Add("Dienst verlassen", "Waffen, Munition und Schutzweste wird entfernt");
  34.             menu.Add("Dienst betreten", "Sie registrieren sich fuer den Dienst");
  35.             menu.Add("UnderArmor Schutzweste", "Schutzweste unter der Kleidung");
  36.             menu.Add("FullPlate Schutzweste", "Schutzweste mit Stahlplatten");
  37.             menu.Add("Waffen", "Waffenarsenal öffnen");
  38.             menu.Add("Items", "Items öffnen");
  39.             if (iPlayer.HasSwatRights()) menu.Add("Swat-Dienst verlassen", "");
  40.             return menu;
  41.         }
  42.  
  43.         public override IMenuEventHandler GetEventHandler()
  44.         {
  45.             return new EventHandler();
  46.         }
  47.  
  48.         private class EventHandler : IMenuEventHandler
  49.         {
  50.             public bool OnSelect(int index, DbPlayer iPlayer)
  51.             {
  52.                 if (!iPlayer.HasData("ArmoryId")) return false;
  53.                 var ArmoryId = iPlayer.GetData("ArmoryId");
  54.                 Armory Armory = ArmoryModule.Instance.Get(ArmoryId);
  55.                 if (Armory == null) return false;
  56.  
  57.                 switch (index)
  58.                 {
  59.                     case 1:
  60.                         // Out of Duty
  61.                         iPlayer.SendNewNotification("Sie haben sich vom Dienst abgemeldet!", title:"Dienstende", notificationType:PlayerNotification.NotificationType.ERROR);
  62.                         iPlayer.SetArmor(0);
  63.                         iPlayer.SetDuty(false);
  64.  
  65.                         int back = 0;
  66.                         foreach(WeaponDetail wdetail in iPlayer.Weapons)
  67.                         {
  68.                             var WeaponData = WeaponDataModule.Instance.Get(wdetail.WeaponDataId);
  69.  
  70.                             // Weapon is in Armory
  71.                             ArmoryWeapon armoryWeapon = Armory.ArmoryWeapons.Where(aw => aw.Weapon == (WeaponHash)WeaponData.Hash).FirstOrDefault();
  72.                             if(armoryWeapon != null)
  73.                             {
  74.                                 // Gebe 50% an Geld zurück
  75.                                 back += armoryWeapon.Price / 2;
  76.                             }
  77.                         }
  78.                         if(back > 0)
  79.                         {
  80.                             iPlayer.SendNewNotification($"Sie haben ${back} als Rückzahlung für Ihr Equipment erhalten!");
  81.                             iPlayer.GiveBankMoney(back);
  82.                             back = 0;
  83.                         }
  84.  
  85.                         iPlayer.RemoveWeapons();
  86.                         iPlayer.Team.SendNotification(Lang.rang[0] + iPlayer.TeamRank + " | " + $"{iPlayer.GetName()} meldet sich vom Dienst ab.");
  87.                         break;
  88.                     case 2:
  89.                         // in Duty
  90.                         iPlayer.SendNewNotification("Sie haben sich zum Dienst gemeldet!", title: "Dienstbereit", notificationType:PlayerNotification.NotificationType.SUCCESS);
  91.                         iPlayer.SetDuty(true);
  92.                         iPlayer.SetHealth(100);
  93.                         iPlayer.Team.SendNotification(Lang.rang[0] + iPlayer.TeamRank + " | " + $"{iPlayer.GetName()} meldet sich zum Dienst an.");
  94.                         break;
  95.                     case 3:
  96.                         if (!Armory.HasArmor)
  97.                         {
  98.                             iPlayer.SendNewNotification("Diese Ware ist in Ihrer Waffenkammer nicht verfuegbar!");
  99.                             return false;
  100.                         }
  101.                         iPlayer.SetArmor(99);
  102.                         break;
  103.                     case 4:
  104.                         if (!Armory.HasHeavyArmor)
  105.                         {
  106.                             iPlayer.SendNewNotification("Diese Ware ist in Ihrer Waffenkammer nicht verfuegbar!");
  107.                             return false;
  108.                         }
  109.                         iPlayer.SetArmor(180, true);
  110.                         break;
  111.                     case 5:
  112.                         // Waffen
  113.                         MenuManager.Instance.Build(PlayerMenu.ArmoryWeapons, iPlayer).Show(iPlayer);
  114.                         break;
  115.                     case 6:
  116.                         // Waffen
  117.                         MenuManager.Instance.Build(PlayerMenu.ArmoryItems, iPlayer).Show(iPlayer);
  118.                         break;
  119.                     case 7:
  120.                         if (iPlayer.HasSwatRights() && iPlayer.IsSwatDuty())
  121.                         {
  122.                             iPlayer.SetSwatDuty(false);
  123.                             break;
  124.                         }
  125.                         MenuManager.DismissMenu(iPlayer.Player, (int)PlayerMenu.Armory);
  126.                         break;
  127.                      default:
  128.                         MenuManager.DismissMenu(iPlayer.Player, (int) PlayerMenu.Armory);
  129.                         break;
  130.                 }
  131.  
  132.                 return false;
  133.             }
  134.         }
  135.     }
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement