Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private class GunGame : GameMode
- {
- public override float RoundTime { get; } = 10;
- public override float RespawnTime { get; } = 0;
- public override string Name { get; } = "Gun Game";
- public Dictionary<string, string> Guns { get; } = new Dictionary<string, string>
- {
- ["salvaged.sword"] = "",
- ["bow.hunting"] = "arrow.wooden",
- ["crossbow"] = "arrow.wooden",
- ["pistol.revolver"] = "ammo.pistol",
- ["pistol.python"] = "ammo.pistol",
- ["pistol.semiauto"] = "ammo.pistol",
- ["pistol.m92"] = "ammo.pistol",
- ["shotgun.waterpipe"] = "ammo.shotgun",
- ["shotgun.double"] = "ammo.shotgun",
- ["shotgun.pump"] = "ammo.shotgun",
- ["rifle.semiauto"] = "ammo.rifle",
- ["smg.2"] = "ammo.pistol",
- ["smg.mp5"] = "ammo.pistol",
- ["rifle.lr300"] = "ammo.rifle",
- ["rifle.ak"] = "ammo.rifle",
- ["lmg.m249"] = "ammo.rifle",
- ["rifle.bolt"] = "ammo.rifle",
- ["pistol.eoka"] = "ammo.shotgun"
- };
- public Dictionary<ulong, int> GunLevels { get; } = new Dictionary<ulong, int>();
- public override void OnPlayerKilled(BasePlayer victim, BasePlayer killer, HitInfo info)
- {
- if (killer != null && killer != victim)
- {
- if (++GunLevels[killer.userID] == Guns.Count)
- {
- Plugin.PrintToChat($"{killer.displayName} won the game!");
- Stop();
- Start();
- return;
- }
- GiveItems(killer);
- }
- base.OnPlayerKilled(victim, killer, info);
- }
- public void GiveItems(BasePlayer player)
- {
- player.inventory.Strip();
- if (!GunLevels.ContainsKey(player.userID))
- GunLevels.Add(player.userID, 0);
- var level = GunLevels[player.userID];
- var wooden = new[] {"wood.armor.helmet", "wood.armor.jacket", "wood.armor.pants"};
- var roadsign = new[] {"coffeecan.helmet", "roadsign.jacket", "roadsign.kilt"};
- var metal = new[] {"metal.facemask", "metal.plate.torso", "roadsign.kilt"};
- foreach (var shortname in level <= 6 ? wooden : (level <= 9 ? roadsign : metal))
- ItemManager.CreateByName(shortname).MoveToContainer(player.inventory.containerWear);
- var kvp = Guns.ElementAt(level);
- var gun = ItemManager.CreateByName(kvp.Key);
- var weapon = gun.GetHeldEntity() as BaseProjectile;
- if (weapon != null)
- weapon.primaryMagazine.contents = weapon.primaryMagazine.capacity;
- gun.MoveToContainer(player.inventory.containerBelt);
- if (kvp.Value != "")
- ItemManager.CreateByName(kvp.Value, 1000).MoveToContainer(player.inventory.containerMain);
- ItemManager.CreateByName("syringe.medical", 2).MoveToContainer(player.inventory.containerBelt);
- player.inventory.SendSnapshot();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement