nur bestimmte waffen für unter 1337

This commit is contained in:
hydrant
2021-05-09 22:51:35 +02:00
parent d55ceb53c4
commit 4708d346f8
2 changed files with 40 additions and 4 deletions

View File

@@ -2021,7 +2021,8 @@ namespace ReallifeGamemode.Server.Commands
[Command("rgiveweapon", "~m~Benutzung: ~s~/rgiveweapon [Radius] [Waffe] [Munition]")] [Command("rgiveweapon", "~m~Benutzung: ~s~/rgiveweapon [Radius] [Waffe] [Munition]")]
public void CmdAdminRangeGiveWeapon(Player player, float radius, string weapon, int munition) public void CmdAdminRangeGiveWeapon(Player player, float radius, string weapon, int munition)
{ {
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) User user = player.GetUser();
if (!user.IsAdmin(AdminLevel.ADMIN))
{ {
ChatService.NotAuthorized(player); ChatService.NotAuthorized(player);
return; return;
@@ -2041,6 +2042,12 @@ namespace ReallifeGamemode.Server.Commands
return; return;
} }
if (!WeaponManager.IsAllowedWeapon(weapon) && !user.IsAdmin(AdminLevel.HEADADMIN))
{
ChatService.ErrorMessage(player, "Du darfst diese Waffe nicht vergeben");
return;
}
WeaponHash weaponHash = (WeaponHash)uHash; WeaponHash weaponHash = (WeaponHash)uHash;
var peopleInRange = NAPI.Player.GetPlayersInRadiusOfPlayer(radius, player); var peopleInRange = NAPI.Player.GetPlayersInRadiusOfPlayer(radius, player);
@@ -2057,7 +2064,7 @@ namespace ReallifeGamemode.Server.Commands
[Command("rsetap", "~m~Benutzung: ~s~/rsetap [Radius] (Armor)")] [Command("rsetap", "~m~Benutzung: ~s~/rsetap [Radius] (Armor)")]
public void CmdAdminRangeSetAP(Player player, float radius, int Armor = 100) public void CmdAdminRangeSetAP(Player player, float radius, int Armor = 100)
{ {
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{ {
ChatService.NotAuthorized(player); ChatService.NotAuthorized(player);
return; return;
@@ -2076,7 +2083,7 @@ namespace ReallifeGamemode.Server.Commands
[Command("rsethp", "~m~Benutzung: ~s~/rsethp [Radius] (Leben)")] [Command("rsethp", "~m~Benutzung: ~s~/rsethp [Radius] (Leben)")]
public void CmdAdminRangeSetHP(Player player, float radius, int hp = 100) public void CmdAdminRangeSetHP(Player player, float radius, int hp = 100)
{ {
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{ {
ChatService.NotAuthorized(player); ChatService.NotAuthorized(player);
return; return;
@@ -3896,7 +3903,8 @@ namespace ReallifeGamemode.Server.Commands
[Command("giveweapon", "~m~Benutzung: ~s~/giveweapon [Spieler] [Waffe] [Munition]")] [Command("giveweapon", "~m~Benutzung: ~s~/giveweapon [Spieler] [Waffe] [Munition]")]
public void CmdAdminGiveweapon(Player player, string name, string hash, int ammo) public void CmdAdminGiveweapon(Player player, string name, string hash, int ammo)
{ {
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) User user = player.GetUser();
if (!user.IsAdmin(AdminLevel.ADMIN))
{ {
ChatService.NotAuthorized(player); ChatService.NotAuthorized(player);
return; return;
@@ -3929,6 +3937,12 @@ namespace ReallifeGamemode.Server.Commands
return; return;
} }
if (!WeaponManager.IsAllowedWeapon(hash) && !user.IsAdmin(AdminLevel.HEADADMIN))
{
ChatService.ErrorMessage(player, "Du darfst diese Waffe nicht vergeben");
return;
}
target.GiveWeapon((WeaponHash)uHash, ammo); target.GiveWeapon((WeaponHash)uHash, ammo);
ChatService.SendMessage(target, "~b~Du hast von " + player.Name + " eine/n " + hash + " mit einer Munition von " + ammo + " erhalten."); ChatService.SendMessage(target, "~b~Du hast von " + player.Name + " eine/n " + hash + " mit einer Munition von " + ammo + " erhalten.");
ChatService.SendMessage(player, "~b~Du hast " + target.Name + " eine/n " + hash + " mit einer Munition von " + ammo + " gegeben."); ChatService.SendMessage(player, "~b~Du hast " + target.Name + " eine/n " + hash + " mit einer Munition von " + ammo + " gegeben.");

View File

@@ -105,6 +105,26 @@ namespace ReallifeGamemode.Server.Managers
"militaryrifle" "militaryrifle"
}; };
private static readonly List<string> _restrictedWeapons = new List<string>()
{
"bat",
"flashlight",
"knuckle",
"nightstick",
"pistol",
"pistol_mk2",
"combatpistol",
"stungun",
"pistol50",
"smg",
"assaultsmg",
"combatpdw",
"pumpshotgun",
"assaultrifle",
"carbinerifle",
"sniperrifle"
};
private static readonly Dictionary<uint, string> causeOfDeath = new Dictionary<uint, string>() private static readonly Dictionary<uint, string> causeOfDeath = new Dictionary<uint, string>()
{ {
{ 2460120199, "Antique Cavalry Dagger"}, { 2460120199, "Antique Cavalry Dagger"},
@@ -341,6 +361,8 @@ namespace ReallifeGamemode.Server.Managers
{ 1470379660 ,"Perico Pistol" }, { 1470379660 ,"Perico Pistol" },
}; };
public static bool IsAllowedWeapon(string name) => _restrictedWeapons.Contains(name.ToLower());
public static bool IsValidHash(uint hash) public static bool IsValidHash(uint hash)
{ {
foreach (WeaponHash vh in Enum.GetValues(typeof(WeaponHash))) foreach (WeaponHash vh in Enum.GetValues(typeof(WeaponHash)))