

Login Issues
Forgot password?Activate Issues
Account activation email not received? Wrong account activation email used?Other Problems?
Contact Support - Help Center Get help on the UGX Discord. Join it now!![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() | Has shown effort and knowledge in the area of scripting while being a part of the UGX-Mods community. |
// ====================== THUNDERGUN ============================================
if( !isDefined( level._zombie_knockdowns ) )
{
level._zombie_knockdowns = [];
}
level._zombie_knockdowns["zombie"] = [];
level._zombie_knockdowns["zombie"]["front"] = [];
level._zombie_knockdowns["zombie"]["front"]["no_legs"] = [];
level._zombie_knockdowns["zombie"]["front"]["no_legs"][0] = %ai_zombie_thundergun_hit_armslegsforward;
level._zombie_knockdowns["zombie"]["front"]["no_legs"][1] = %ai_zombie_thundergun_hit_doublebounce;
level._zombie_knockdowns["zombie"]["front"]["no_legs"][2] = %ai_zombie_thundergun_hit_forwardtoface;
level._zombie_knockdowns["zombie"]["front"]["has_legs"] = [];
level._zombie_knockdowns["zombie"]["front"]["has_legs"][0] = %ai_zombie_thundergun_hit_armslegsforward;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][1] = %ai_zombie_thundergun_hit_doublebounce;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][2] = %ai_zombie_thundergun_hit_upontoback;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][3] = %ai_zombie_thundergun_hit_forwardtoface;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][4] = %ai_zombie_thundergun_hit_armslegsforward;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][5] = %ai_zombie_thundergun_hit_forwardtoface;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][6] = %ai_zombie_thundergun_hit_stumblefall;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][7] = %ai_zombie_thundergun_hit_armslegsforward;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][8] = %ai_zombie_thundergun_hit_doublebounce;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][9] = %ai_zombie_thundergun_hit_upontoback;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][10] = %ai_zombie_thundergun_hit_forwardtoface;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][11] = %ai_zombie_thundergun_hit_armslegsforward;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][12] = %ai_zombie_thundergun_hit_forwardtoface;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][13] = %ai_zombie_thundergun_hit_deadfallknee;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][14] = %ai_zombie_thundergun_hit_armslegsforward;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][15] = %ai_zombie_thundergun_hit_doublebounce;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][16] = %ai_zombie_thundergun_hit_upontoback;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][17] = %ai_zombie_thundergun_hit_forwardtoface;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][18] = %ai_zombie_thundergun_hit_armslegsforward;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][19] = %ai_zombie_thundergun_hit_forwardtoface;
level._zombie_knockdowns["zombie"]["front"]["has_legs"][20] = %ai_zombie_thundergun_hit_flatonback;
level._zombie_knockdowns["zombie"]["left"] = [];
level._zombie_knockdowns["zombie"]["left"][0] = %ai_zombie_thundergun_hit_legsout_right;
level._zombie_knockdowns["zombie"]["right"] = [];
level._zombie_knockdowns["zombie"]["right"][0] = %ai_zombie_thundergun_hit_legsout_left;
level._zombie_knockdowns["zombie"]["back"] = [];
level._zombie_knockdowns["zombie"]["back"][0] = %ai_zombie_thundergun_hit_faceplant;
if( !isDefined( level._zombie_getups ) )
{
level._zombie_getups = [];
}
level._zombie_getups["zombie"] = [];
level._zombie_getups["zombie"]["back"] = [];
level._zombie_getups["zombie"]["back"]["early"] = [];
level._zombie_getups["zombie"]["back"]["early"][0] = %ai_zombie_thundergun_getup_b;
level._zombie_getups["zombie"]["back"]["early"][1] = %ai_zombie_thundergun_getup_c;
level._zombie_getups["zombie"]["back"]["late"] = [];
level._zombie_getups["zombie"]["back"]["late"][0] = %ai_zombie_thundergun_getup_b;
level._zombie_getups["zombie"]["back"]["late"][1] = %ai_zombie_thundergun_getup_c;
level._zombie_getups["zombie"]["back"]["late"][2] = %ai_zombie_thundergun_getup_quick_b;
level._zombie_getups["zombie"]["back"]["late"][3] = %ai_zombie_thundergun_getup_quick_c;
level._zombie_getups["zombie"]["belly"] = [];
level._zombie_getups["zombie"]["belly"]["early"] = [];
level._zombie_getups["zombie"]["belly"]["early"][0] = %ai_zombie_thundergun_getup_a;
level._zombie_getups["zombie"]["belly"]["late"] = [];
level._zombie_getups["zombie"]["belly"]["late"][0] = %ai_zombie_thundergun_getup_a;
level._zombie_getups["zombie"]["belly"]["late"][1] = %ai_zombie_thundergun_getup_quick_a;
// ====================== THUNDERGUN ============================================self.thundergun_knockdown_func = ::zombie_knockdown;// ======================= THUNDERGUN ===========================================
zombie_knockdown( player, gib )
{
if ( gib && !self.gibbed )
{
self.a.gib_ref = random( level.thundergun_gib_refs );
self thread animscripts\death::do_gib();
}
self.thundergun_handle_pain_notetracks = maps\_zombiemode_weap_thundergun::handle_thundergun_pain_notetracks;
self DoDamage( level.zombie_vars["thundergun_knockdown_damage"], player.origin, player );
}
// ======================= THUNDERGUN ===========================================thundergun_knockdown_zombie( player, gib )
{
self endon( "death" );
playsoundatposition ("vox_thundergun_forcehit", self.origin);
playsoundatposition ("wpn_thundergun_proj_impact", self.origin);
if( !IsDefined( self ) || !IsAlive( self ) )
{
// guy died on us
return;
}
if ( IsDefined( self.thundergun_knockdown_func ) )
{
self [[ self.thundergun_knockdown_func ]]( player, gib );
}
else
{
self DoDamage( level.zombie_vars["thundergun_knockdown_damage"], player.origin, player );
}
if ( gib )
{
self.a.gib_ref = random( level.thundergun_gib_refs );
self thread animscripts\zombie_death::do_gib();
}
// self playsound( "thundergun_impact" );
self.thundergun_handle_pain_notetracks = ::handle_thundergun_pain_notetracks;
self DoDamage( level.zombie_vars["thundergun_knockdown_damage"], player.origin, player );
self playsound( "fly_thundergun_forcehit" );
}
handle_thundergun_pain_notetracks( note )
{
if ( note == "zombie_knockdown_ground_impact" )
{
playfx( level._effect["thundergun_knockdown_ground"], self.origin, AnglesToForward( self.angles ), AnglesToUp( self.angles ) );
self playsound( "fly_thundergun_forcehit" );
}
}



![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() | Has shown excellence and experience in the area of custom scripting in the UGX-Mods community. |
![]() Oil Rig Beta Access |
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() | Has shown effort and knowledge in the area of scripting while being a part of the UGX-Mods community. |
playThundergunPainAnim()
{
iPrintLnBold( "Called Anim" );
self notify( "end_play_thundergun_pain_anim" );
self endon( "killanimscript" );
self endon( "death" );
self endon( "end_play_thundergun_pain_anim" );
if( isDefined( self.marked_for_death ) && self.marked_for_death )
{
return;
}
if ( self.damageYaw <= -135 || self.damageYaw >= 135 )
{
if ( !self.has_legs )
{
fallAnim = random( level._zombie_knockdowns[self.animname]["front"]["no_legs"] );
if ( isdefined( level.thundergun_last_knockdown_anim ) && level.thundergun_last_knockdown_anim == fallAnim )
{
fallAnim = random( level._zombie_knockdowns[self.animname]["front"]["no_legs"] );
}
}
else
{
fallAnim = random( level._zombie_knockdowns[self.animname]["front"]["has_legs"] );
if ( isdefined( level.thundergun_last_knockdown_anim ) && level.thundergun_last_knockdown_anim == fallAnim )
{
fallAnim = random( level._zombie_knockdowns[self.animname]["front"]["has_legs"] );
}
}
level.thundergun_last_knockdown_anim = fallAnim;
if ( fallAnim == %ai_zombie_thundergun_hit_deadfallknee || fallAnim == %ai_zombie_thundergun_hit_forwardtoface )
{
getupAnim = random( level._zombie_getups[self.animname]["belly"]["early"] );
}
else
{
getupAnim = random( level._zombie_getups[self.animname]["back"]["early"] );
}
}
else if ( self.damageYaw > -135 && self.damageYaw < -45 )
{
fallAnim = random( level._zombie_knockdowns[self.animname]["left"] );
getupAnim = random( level._zombie_getups[self.animname]["belly"]["early"] );
}
else if ( self.damageYaw > 45 && self.damageYaw < 135 )
{
fallAnim = random( level._zombie_knockdowns[self.animname]["right"] );
getupAnim = random( level._zombie_getups[self.animname]["belly"]["early"] );
}
else
{
fallAnim = random( level._zombie_knockdowns[self.animname]["back"] );
getupAnim = random( level._zombie_getups[self.animname]["belly"]["early"] );
}
self SetFlaggedAnimKnobAllRestart( "painanim", fallAnim, %body, 1, .2, 1 );
self animscripts\shared::DoNoteTracks( "painanim", self.thundergun_handle_pain_notetracks );
if( !IsDefined( self ) || !IsAlive( self ) || !self.has_legs || (isDefined( self.marked_for_death ) && self.marked_for_death) )
{
// guy died on us
return;
}
if ( getupAnim == %ai_zombie_thundergun_getup_quick_a && (self.a.gib_ref == "left_arm" || self.a.gib_ref == "right_arm") )
{
return;
}
self SetFlaggedAnimKnobAllRestart( "painanim", getupAnim, %body, 1, .2, 1 );
self animscripts\shared::DoNoteTracks( "painanim" );
}![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() | Has shown excellence and experience in the area of custom scripting in the UGX-Mods community. |
![]() Oil Rig Beta Access |
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() | Has shown effort and knowledge in the area of scripting while being a part of the UGX-Mods community. |
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() | Has shown excellence and experience in the area of custom scripting in the UGX-Mods community. |
![]() Oil Rig Beta Access |
The animscripts\pain.gsc for WaW wasn't in my raw by default, i had to extract it from zone\english\common.ff

![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() UGX V.I.P. | |
![]() | Has released one or more maps to the UGX-Mods community. |
![]() BO3 Modtools Alpha | This user has access to the Black Ops 3 Modtools Alpha |
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() | Has shown effort and knowledge in the area of scripting while being a part of the UGX-Mods community. |