From 4f43cad8ff9ec1723f14303038ba8f5c75c34ff9 Mon Sep 17 00:00:00 2001 From: hydrant Date: Sun, 9 May 2021 22:03:18 +0200 Subject: [PATCH] =?UTF-8?q?bestimmte=20fahrzeuge=20nur=20f=C3=BCr=201337?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Commands/AdminCommands.cs | 10 +- .../Managers/VehicleManager.cs | 124 +++++++++++++++++- 2 files changed, 131 insertions(+), 3 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index 11e6a587..27c6a4cf 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -1554,8 +1554,8 @@ namespace ReallifeGamemode.Server.Commands [Command("veh", "~m~Benutzung: ~s~/veh [Fahrzeug] (Farbe 1) (Farbe 2)")] public void CmdAdminVeh(Player player, string hash, int color1 = 111, int color2 = 111) { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - //TODO: Bestimmte Autos nur ab Adminlevel 1337, "normale Fahrzeuge" schon ab Adminlevel 3. + User user = player.GetUser(); + if (!user.IsAdmin(AdminLevel.ADMIN)) { ChatService.NotAuthorized(player); return; @@ -1576,6 +1576,12 @@ namespace ReallifeGamemode.Server.Commands return; } + if (VehicleManager.IsVehicleRestricted(hash) && !user.IsAdmin(AdminLevel.HEADADMIN)) + { + ChatService.SendMessage(player, "haha kein 1337 rofl"); + return; + } + Vehicle v = NAPI.Vehicle.CreateVehicle(uHash, player.Position, player.Heading, color1, color2, engine: true); VehicleStreaming.SetEngineState(v, true); VehicleStreaming.SetLockStatus(v, false); diff --git a/ReallifeGamemode.Server/Managers/VehicleManager.cs b/ReallifeGamemode.Server/Managers/VehicleManager.cs index 80aa1580..341437a4 100644 --- a/ReallifeGamemode.Server/Managers/VehicleManager.cs +++ b/ReallifeGamemode.Server/Managers/VehicleManager.cs @@ -767,6 +767,126 @@ namespace ReallifeGamemode.Server.Managers "fibr",//mod }; + private static readonly List _restrictedVehicles = new List() + { + "dinghy5", + "kosatka", + "cerberus", + "cerberus2", + "cerberus3", + "firetruk", + "issi4", + "issi5", + "issi6", + "jb700", + "jb7002", + "riot2", + "akula", + "annihilator", + "buzzard", + "havok", + "hunter", + "savage", + "seasparrow", + "valkyrie", + "valkyrie2", + "annihilator2", + "seasparrow2", + "seasparrow3", + "apc", + "barrage", + "chernobog", + "halftrack", + "khanjali", + "minitank", + "rhino", + "scarab", + "scarab2", + "scarab3", + "thruster", + "trailersmall2", + "oppressor", + "oppressor2", + "deathbike", + "deathbike2", + "deathbike3", + "dominator4", + "dominator5", + "dominator6", + "slamvan4", + "slamvan5", + "slamvan6", + "imperator3", + "imperator", + "imperator2", + "impaler2", + "impaler3", + "impaler4", + "tampa3", + "bruiser", + "bruiser2", + "bruiser3", + "brutus", + "brutus2", + "brutus3", + "caracara", + "dune3", + "insurgent", + "insurgent3", + "monster3", + "monster4", + "monster5", + "menacer", + "nightshark", + "fibn2", + "rcbandito", + "minitank", + "technical", + "technical2", + "technical3", + "avenger", + "avenger2", + "bombushka", + "hydra", + "lazer", + "microlight", + "mogul", + "molotok", + "nokota", + "pyro", + "rogue", + "strikeforce", + "seabreeze", + "starling", + "tula", + "volatol", + "alkonost", + "limo2", + "zr380", + "zr3802", + "zr3803", + "ardent", + "deluxo", + "stromberg", + "toreador", + "comet4", + "scramjet", + "vigilante", + "voltic2", + "freight", + "freightcar", + "freightcont1", + "freightcont2", + "freightgrain", + "metrotrain", + "tankercar", + "trailerlarge", + "boxville5", + "mule4", + "speedo4", + "pounder2" + }; + private static readonly Dictionary _serverVehicles = new Dictionary(); private static readonly Dictionary lastPositions = new Dictionary(); @@ -785,6 +905,8 @@ namespace ReallifeGamemode.Server.Managers } } + public static bool IsVehicleRestricted(string name) => _restrictedVehicles.Contains(name.ToLower()); + public static void VehicleTimerTick() { NAPI.Task.Run(() => @@ -967,7 +1089,7 @@ namespace ReallifeGamemode.Server.Managers return; } InventoryManager.RemoveAllItemsfromVehicleInventory(vehicle); - + serverVehicle.Spawn(vehicle); }