n = 0;
FOR_EACH_PLAYER(other) if(self != other)
{
- if(!other.frozen)
+ if(other.frozen == 0)
{
- if(other.team == self.team)
+ if(SAME_TEAM(other, self))
{
if(boxesoverlap(self.absmin - revive_extra_size, self.absmax + revive_extra_size, other.absmin, other.absmax))
{
{
if(frag_target.frozen == 1 && frag_deathtype != DEATH_HURTTRIGGER)
{
+ if(autocvar_g_freezetag_revive_falldamage > 0)
+ if(frag_deathtype == DEATH_FALL)
+ if(frag_damage >= autocvar_g_freezetag_revive_falldamage)
+ {
+ freezetag_Unfreeze(frag_target);
+ frag_target.health = autocvar_g_freezetag_revive_falldamage_health;
+ pointparticles(particleeffectnum("iceorglass"), frag_target.origin, '0 0 0', 3);
+ Send_Notification(NOTIF_ALL, world, MSG_INFO, INFO_FREEZETAG_REVIVED_FALL, frag_target.netname);
+ Send_Notification(NOTIF_ONE, frag_target, MSG_CENTER, CENTER_FREEZETAG_REVIVE_FALL);
+ }
+
frag_damage = 0;
frag_force = frag_force * autocvar_g_freezetag_frozen_force;
}
return TRUE;
}
-MUTATOR_HOOKFUNCTION(freezetag_SpectateCopy)
-{
- self.frozen = other.frozen;
- self.revive_progress = other.revive_progress;
- return 0;
-}
-
MUTATOR_HOOKFUNCTION(freezetag_GetTeamCount)
{
freezetag_teams = autocvar_g_freezetag_teams_override;
MUTATOR_HOOK(PlayerPreThink, freezetag_PlayerPreThink, CBC_ORDER_FIRST);
MUTATOR_HOOK(PlayerDamage_Calculate, freezetag_PlayerDamage_Calculate, CBC_ORDER_ANY);
MUTATOR_HOOK(HavocBot_ChooseRule, freezetag_BotRoles, CBC_ORDER_ANY);
- MUTATOR_HOOK(SpectateCopy, freezetag_SpectateCopy, CBC_ORDER_ANY);
MUTATOR_HOOK(GetTeamCount, freezetag_GetTeamCount, CBC_ORDER_EXCLUSIVE);
MUTATOR_ONADD