Ok, so I was lucky enough to get hold of the Thunderguns knockdown anims
i set them up in zombiemode with this ( found this in the BO1 scripts ) :
// ====================== 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 ============================================
whcih i placed just under the tesla stuff
then in zombie spawner, in the zombie_spawn_init( animname_set ) i added :
self.thundergun_knockdown_func = ::zombie_knockdown;
and at the bottom i added :
// ======================= 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 ===========================================
now, ive set the thundergun to literally only knock them down, im seeing the prints, but its making no difference to what anim they are playing
but i did noticed it "can" knock them over, just only when they are attacking a window and then they freeze?
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" ); } }
This is my first time adding animations for AI, could some one help a dude out