Plutonium-IW5-Scripts/chat_commands/chat_command_freeze.gsc
Resxt 998d2ca5b0 chat_command_freeze 1.0.2
Added permission level to CreateCommand following chat_commands 1.3.0 update

[Refactor] changed level scoped ports variable following chat_commands 1.3.0 update
2023-03-18 01:38:45 +01:00

79 lines
1.2 KiB
Plaintext

#include scripts\chat_commands;
Init()
{
CreateCommand(level.chat_commands["ports"], "freeze", "function", ::FreezeCommand, 3, ["default_help_one_player"]);
}
/* Command section */
FreezeCommand(args)
{
if (args.size < 1)
{
return NotEnoughArgsError(1);
}
error = ToggleFreeze(args[0]);
if (IsDefined(error))
{
return error;
}
}
/* Logic section */
ToggleFreeze(playerName)
{
player = FindPlayerByName(playerName);
if (!IsDefined(player))
{
return PlayerDoesNotExistError(playerName);
}
commandName = "freeze";
ToggleStatus(commandName, "Freeze", player);
if (GetStatus(commandName, player))
{
player DoFreeze(true);
player thread ThreadFreeze();
}
else
{
player DoFreeze(false);
player notify("chat_commands_freeze_off");
}
}
ThreadFreeze()
{
self endon("disconnect");
self endon("chat_commands_freeze_off");
for(;;)
{
self waittill("spawned_player");
self DoFreeze(true);
}
}
DoFreeze(enabled)
{
if (enabled)
{
self freezecontrols(1);
}
else
{
self freezecontrols(0);
}
}