Plutonium-IW5-Scripts/chat_commands/chat_command_god_mode.gsc
Resxt 9fc19a57a0 chat_command_god_mode 1.0.3
Renamed the command from god to godmode
Added aliases
2023-06-17 11:07:41 +02:00

93 lines
1.9 KiB
Plaintext

#include scripts\chat_commands;
Init()
{
CreateCommand(level.chat_commands["ports"], "godmode", "function", ::GodModeCommand, 3, ["default_help_one_player"], ["god"]);
}
/* Command section */
GodModeCommand(args)
{
if (args.size < 1)
{
return NotEnoughArgsError(1);
}
error = ToggleGodMode(args[0]);
if (IsDefined(error))
{
return error;
}
}
/* Logic section */
ToggleGodMode(playerName)
{
player = FindPlayerByName(playerName);
if (!IsDefined(player))
{
return PlayerDoesNotExistError(playerName);
}
commandName = "god";
ToggleStatus(commandName, "God Mode", player);
if (GetStatus(commandName, player))
{
player DoGodMode(true);
player thread ThreadGodMode();
}
else
{
player DoGodMode(false);
player notify("chat_commands_god_mode_off");
}
}
ThreadGodMode()
{
self endon("disconnect");
self endon("chat_commands_god_mode_off");
for(;;)
{
self waittill("spawned_player");
self DoGodMode(true);
}
}
DoGodMode(enabled)
{
health = 99999;
if (!enabled)
{
health = GetDvarInt("scr_player_maxhealth");
}
deadSilencePro = "specialty_falldamage";
if (enabled && !self maps\mp\_utility::_hasPerk(deadSilencePro)) // if god mode is on and player doesn't have dead silence pro
{
self maps\mp\_utility::givePerk(deadSilencePro, false); // give dead silence pro
self.pers["god_mode_gave_perk"] = true;
}
else if (!enabled && self maps\mp\_utility::_hasPerk(deadSilencePro) && self.pers["god_mode_gave_perk"]) // if god mode is off and player has dead silence pro and it was given by god mode on
{
self maps\mp\_utility::_unsetperk(deadSilencePro); // remove dead silence pro
self.pers["god_mode_gave_perk"] = false;
}
self.maxhealth = health;
self.health = health;
}