Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.40 KB | None | 0 0
  1.         private class GunGame : GameMode
  2.         {
  3.             public override float RoundTime { get; } = 10;
  4.             public override float RespawnTime { get; } = 0;
  5.             public override string Name { get; } = "Gun Game";
  6.  
  7.             public Dictionary<string, string> Guns { get; } = new Dictionary<string, string>
  8.             {
  9.                 ["salvaged.sword"] = "",
  10.                 ["bow.hunting"] = "arrow.wooden",
  11.                 ["crossbow"] = "arrow.wooden",
  12.                 ["pistol.revolver"] = "ammo.pistol",
  13.                 ["pistol.python"] = "ammo.pistol",
  14.                 ["pistol.semiauto"] = "ammo.pistol",
  15.                 ["pistol.m92"] = "ammo.pistol",
  16.                 ["shotgun.waterpipe"] = "ammo.shotgun",
  17.                 ["shotgun.double"] = "ammo.shotgun",
  18.                 ["shotgun.pump"] = "ammo.shotgun",
  19.                 ["rifle.semiauto"] = "ammo.rifle",
  20.                 ["smg.2"] = "ammo.pistol",
  21.                 ["smg.mp5"] = "ammo.pistol",
  22.                 ["rifle.lr300"] = "ammo.rifle",
  23.                 ["rifle.ak"] = "ammo.rifle",
  24.                 ["lmg.m249"] = "ammo.rifle",
  25.                 ["rifle.bolt"] = "ammo.rifle",
  26.                 ["pistol.eoka"] = "ammo.shotgun"
  27.  
  28.             };
  29.  
  30.             public Dictionary<ulong, int> GunLevels { get; } = new Dictionary<ulong, int>();
  31.  
  32.             public override void OnPlayerKilled(BasePlayer victim, BasePlayer killer, HitInfo info)
  33.             {
  34.                 if (killer != null && killer != victim)
  35.                 {
  36.                     if (++GunLevels[killer.userID] == Guns.Count)
  37.                     {
  38.                         Plugin.PrintToChat($"{killer.displayName} won the game!");
  39.                         Stop();
  40.                         Start();
  41.                         return;
  42.                     }
  43.  
  44.                     GiveItems(killer);
  45.                 }
  46.  
  47.                 base.OnPlayerKilled(victim, killer, info);
  48.             }
  49.  
  50.             public void GiveItems(BasePlayer player)
  51.             {
  52.                 player.inventory.Strip();
  53.                 if (!GunLevels.ContainsKey(player.userID))
  54.                     GunLevels.Add(player.userID, 0);
  55.  
  56.                 var level = GunLevels[player.userID];
  57.                 var wooden = new[] {"wood.armor.helmet", "wood.armor.jacket", "wood.armor.pants"};
  58.                 var roadsign = new[] {"coffeecan.helmet", "roadsign.jacket", "roadsign.kilt"};
  59.                 var metal = new[] {"metal.facemask", "metal.plate.torso", "roadsign.kilt"};
  60.                 foreach (var shortname in level <= 6 ? wooden : (level <= 9 ? roadsign : metal))
  61.                     ItemManager.CreateByName(shortname).MoveToContainer(player.inventory.containerWear);
  62.  
  63.                 var kvp = Guns.ElementAt(level);
  64.                 var gun = ItemManager.CreateByName(kvp.Key);
  65.                 var weapon = gun.GetHeldEntity() as BaseProjectile;
  66.                 if (weapon != null)
  67.                     weapon.primaryMagazine.contents = weapon.primaryMagazine.capacity;
  68.  
  69.                 gun.MoveToContainer(player.inventory.containerBelt);
  70.                 if (kvp.Value != "")
  71.                     ItemManager.CreateByName(kvp.Value, 1000).MoveToContainer(player.inventory.containerMain);
  72.  
  73.                 ItemManager.CreateByName("syringe.medical", 2).MoveToContainer(player.inventory.containerBelt);
  74.                 player.inventory.SendSnapshot();
  75.             }
  76.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement