Fun menu done without guns, need to test

This commit is contained in:
Valentin Barat
2024-02-12 17:46:45 +01:00
parent 3317182b9a
commit 8750a66eef
5 changed files with 274 additions and 166 deletions

View File

@@ -146,27 +146,34 @@ namespace CS2_SimpleAdmin
{
if (caller!.CanTarget(player))
{
if (!player.IsBot && player.SteamID.ToString().Length != 17)
return;
player.RemoveWeapons();
if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot))
{
foreach (CCSPlayerController _player in Helper.GetValidPlayers())
{
using (new WithTemporaryCulture(_player.GetLanguage()))
{
StringBuilder sb = new(_localizer!["sa_prefix"]);
sb.Append(_localizer["sa_admin_strip_message", callerName, player.PlayerName]);
_player.PrintToChat(sb.ToString());
}
}
}
StripWeapons(caller, player, callerName);
}
});
}
public void StripWeapons(CCSPlayerController? caller, CCSPlayerController player, string callerName = null)
{
callerName ??= caller == null ? "Console" : caller.PlayerName;
if (!player.IsBot && player.SteamID.ToString().Length != 17)
return;
player.RemoveWeapons();
if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot))
{
foreach (CCSPlayerController _player in Helper.GetValidPlayers())
{
using (new WithTemporaryCulture(_player.GetLanguage()))
{
StringBuilder sb = new(_localizer!["sa_prefix"]);
sb.Append(_localizer["sa_admin_strip_message", callerName, player.PlayerName]);
_player.PrintToChat(sb.ToString());
}
}
}
}
[ConsoleCommand("css_hp")]
[RequiresPermissions("@css/slay")]
[CommandHelper(minArgs: 1, usage: "<#userid or name> <health>", whoCanExecute: CommandUsage.CLIENT_AND_SERVER)]
@@ -191,27 +198,32 @@ namespace CS2_SimpleAdmin
{
if (caller!.CanTarget(player))
{
if (!player.IsBot && player.SteamID.ToString().Length != 17)
return;
player.SetHp(health);
if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot))
{
foreach (CCSPlayerController _player in Helper.GetValidPlayers())
{
using (new WithTemporaryCulture(_player.GetLanguage()))
{
StringBuilder sb = new(_localizer!["sa_prefix"]);
sb.Append(_localizer["sa_admin_hp_message", callerName, player.PlayerName]);
_player.PrintToChat(sb.ToString());
}
}
}
SetHp(caller, player, health, callerName);
}
});
}
public void SetHp(CCSPlayerController? caller, CCSPlayerController player, int health, string callerName = null)
{
if (!player.IsBot && player.SteamID.ToString().Length != 17)
return;
player.SetHp(health);
if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot))
{
foreach (CCSPlayerController _player in Helper.GetValidPlayers())
{
using (new WithTemporaryCulture(_player.GetLanguage()))
{
StringBuilder sb = new(_localizer!["sa_prefix"]);
sb.Append(_localizer["sa_admin_hp_message", callerName, player.PlayerName]);
_player.PrintToChat(sb.ToString());
}
}
}
}
[ConsoleCommand("css_speed")]
[RequiresPermissions("@css/slay")]
[CommandHelper(minArgs: 1, usage: "<#userid or name> <speed>", whoCanExecute: CommandUsage.CLIENT_AND_SERVER)]
@@ -239,29 +251,31 @@ namespace CS2_SimpleAdmin
if (caller!.CanTarget(player))
{
/*
player.Speed = (float)speed;
player.PlayerPawn.Value!.Speed = (float)speed;
*/
player.SetSpeed((float)speed);
if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot))
{
foreach (CCSPlayerController _player in Helper.GetValidPlayers())
{
using (new WithTemporaryCulture(_player.GetLanguage()))
{
StringBuilder sb = new(_localizer!["sa_prefix"]);
sb.Append(_localizer["sa_admin_speed_message", callerName, player.PlayerName]);
_player.PrintToChat(sb.ToString());
}
}
}
SetSpeed(caller, player, speed, callerName);
}
});
}
public void SetSpeed(CCSPlayerController? caller, CCSPlayerController player, double speed, string callerName = null)
{
callerName ??= caller == null ? "Console" : caller.PlayerName;
player.SetSpeed((float)speed);
if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot))
{
foreach (CCSPlayerController _player in Helper.GetValidPlayers())
{
using (new WithTemporaryCulture(_player.GetLanguage()))
{
StringBuilder sb = new(_localizer!["sa_prefix"]);
sb.Append(_localizer["sa_admin_speed_message", callerName, player.PlayerName]);
_player.PrintToChat(sb.ToString());
}
}
}
}
[ConsoleCommand("css_god")]
[RequiresPermissions("@css/cheats")]
[CommandHelper(minArgs: 1, usage: "<#userid or name>", whoCanExecute: CommandUsage.CLIENT_AND_SERVER)]
@@ -286,33 +300,40 @@ namespace CS2_SimpleAdmin
if (caller!.CanTarget(player))
{
if (player != null)
God(caller, player, callerName);
}
});
}
public void God(CCSPlayerController? caller, CCSPlayerController player, string callerName = null)
{
callerName ??= caller == null ? "Console" : caller.PlayerName;
if (player != null)
{
if (!godPlayers.Contains(player.Slot))
{
godPlayers.Add(player.Slot);
}
else
{
godPlayers = new ConcurrentBag<int>(godPlayers.Where(item => item != player.Slot));
}
if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot))
{
foreach (CCSPlayerController _player in Helper.GetValidPlayers())
{
if (!godPlayers.Contains(player.Slot))
using (new WithTemporaryCulture(_player.GetLanguage()))
{
godPlayers.Add(player.Slot);
}
else
{
godPlayers = new ConcurrentBag<int>(godPlayers.Where(item => item != player.Slot));
}
if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot))
{
foreach (CCSPlayerController _player in Helper.GetValidPlayers())
{
using (new WithTemporaryCulture(_player.GetLanguage()))
{
StringBuilder sb = new(_localizer!["sa_prefix"]);
sb.Append(_localizer["sa_admin_god_message", callerName, player.PlayerName]);
_player.PrintToChat(sb.ToString());
}
}
StringBuilder sb = new(_localizer!["sa_prefix"]);
sb.Append(_localizer["sa_admin_god_message", callerName, player.PlayerName]);
_player.PrintToChat(sb.ToString());
}
}
}
});
}
}
[ConsoleCommand("css_slap")]
@@ -528,30 +549,37 @@ namespace CS2_SimpleAdmin
if (caller!.CanTarget(player))
{
if (CBasePlayerController_SetPawnFunc == null || player.PlayerPawn.Value == null || !player.PlayerPawn.IsValid) return;
var playerPawn = player.PlayerPawn.Value;
CBasePlayerController_SetPawnFunc.Invoke(player, playerPawn, true, false);
VirtualFunction.CreateVoid<CCSPlayerController>(player.Handle,
GameData.GetOffset("CCSPlayerController_Respawn"))(player);
if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot))
{
foreach (CCSPlayerController _player in Helper.GetValidPlayers())
{
using (new WithTemporaryCulture(_player.GetLanguage()))
{
StringBuilder sb = new(_localizer!["sa_prefix"]);
sb.Append(_localizer["sa_admin_respawn_message", callerName, player.PlayerName]);
_player.PrintToChat(sb.ToString());
}
}
}
Respawn(caller, player, callerName);
}
});
}
public void Respawn(CCSPlayerController? caller, CCSPlayerController player, string callerName = null)
{
callerName ??= caller == null ? "Console" : caller.PlayerName;
if (CBasePlayerController_SetPawnFunc == null || player.PlayerPawn.Value == null || !player.PlayerPawn.IsValid) return;
var playerPawn = player.PlayerPawn.Value;
CBasePlayerController_SetPawnFunc.Invoke(player, playerPawn, true, false);
VirtualFunction.CreateVoid<CCSPlayerController>(player.Handle,
GameData.GetOffset("CCSPlayerController_Respawn"))(player);
if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot))
{
foreach (CCSPlayerController _player in Helper.GetValidPlayers())
{
using (new WithTemporaryCulture(_player.GetLanguage()))
{
StringBuilder sb = new(_localizer!["sa_prefix"]);
sb.Append(_localizer["sa_admin_respawn_message", callerName, player.PlayerName]);
_player.PrintToChat(sb.ToString());
}
}
}
}
[ConsoleCommand("css_tp", "Teleport to a player.")]
[ConsoleCommand("css_tpto", "Teleport to a player.")]
[ConsoleCommand("css_goto", "Teleport to a player.")]