diff --git a/ReallifeGamemode.Client/admin/spectate.ts b/ReallifeGamemode.Client/admin/spectate.ts new file mode 100644 index 00000000..cf66bb43 --- /dev/null +++ b/ReallifeGamemode.Client/admin/spectate.ts @@ -0,0 +1,12 @@ +let cam: CameraMp = mp.cameras.new('spectateCam');; +mp.events.add("SERVER:ADMIN_SPECTATE", (targetPlayer) => { + cam.attachTo(targetPlayer.handle, 10.0, 0.0, 10.0, true); + cam.setActive(true); +}); + +mp.events.add("SERVER:ADMIN_STOP_SPECTATE", () => { + if (cam.isActive() == true) { + cam.setActive(false); + } +}); + \ No newline at end of file diff --git a/ReallifeGamemode.Client/index.ts b/ReallifeGamemode.Client/index.ts index 5a2a287f..89257c40 100644 --- a/ReallifeGamemode.Client/index.ts +++ b/ReallifeGamemode.Client/index.ts @@ -267,6 +267,7 @@ ammunation(globalData); require('./Gui/policedepartment'); require('./Gui/helptext'); +require('./admin/spectate'); interface VehicleData { EngineState: boolean; diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index 90862772..60ba7593 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -1693,6 +1693,32 @@ namespace ReallifeGamemode.Server.Commands NAPI.Vehicle.SetVehicleTyreSmokeColor(veh, new Color(r, g, b)); } + [Command("spectate", "~m~Benutzung: ~s~/spectate [NAME/ID]", Alias = "spec")] + public void CmdAdminSpectate(Player player, string targetname = null) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + Player target; + if (targetname != null) + { + target = PlayerService.GetPlayerByNameOrId(targetname); + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + player.TriggerEvent("SERVER:ADMIN_SPECTATE", target); + } + else + { + player.TriggerEvent("SERVER:ADMIN_STOP_SPECTATE"); + } + } + + #endregion Admin #region ALevel1337 @@ -2066,6 +2092,7 @@ namespace ReallifeGamemode.Server.Commands return; } + [Command("showtuningmenu", "~m~Benutzung: ~s~/showtuningmenu", Alias = "stm")] public void CmdAdminShowtuningmenu(Player player) {