Nice you stole someone his powerup (Atleast credit the guy you stole it from) but I will help with the sound:
Tutorial adding sounds: https://youtu.be/wVmWFarXQpk I guess at the beginning you add this?: add_zombie_powerup( "CUSTOM PERK NAME", "MODEL", "TEXT"); Then you need to find this: powerup_grab() In the method you see this:
powerup_grab() { self endon ("powerup_timedout"); self endon ("powerup_grabbed"); while (isdefined(self)) { players = get_players(); for (i = 0; i < players.size; i++) { if (distance (players[i].origin, self.origin) < 64) { playfx (level._effect["powerup_grabbed"], self.origin); playfx (level._effect["powerup_grabbed_wave"], self.origin); if( IsDefined( level.zombie_powerup_grab_func ) ) { level thread [[level.zombie_powerup_grab_func]](); } else { switch (self.powerup_name) { case "nuke": level thread nuke_powerup( self ); //chrisp - adding powerup VO sounds players[i] thread powerup_vo("nuke"); zombies = getaiarray("axis"); players[i].zombie_nuked = get_array_of_closest( self.origin, zombies ); players[i] notify("nuke_triggered"); break; case "full_ammo": level thread full_ammo_powerup( self ); players[i] thread powerup_vo("full_ammo"); break; case "double_points": level thread double_points_powerup( self ); players[i] thread powerup_vo("double_points"); break; case "insta_kill": level thread insta_kill_powerup( self ); players[i] thread powerup_vo("insta_kill"); break; case "carpenter": level thread start_carpenter( self.origin ); players[i] thread powerup_vo("carpenter"); break; default: println ("Unrecognized poweup."); break; } } wait( 0.1 ); playsoundatposition("powerup_grabbed", self.origin); self stoploopsound(); self delete(); self notify ("powerup_grabbed"); } } wait 0.1; } }
change it to this:
powerup_grab() { self endon ("powerup_timedout"); self endon ("powerup_grabbed"); while (isdefined(self)) { players = get_players(); for (i = 0; i < players.size; i++) { if (distance (players[i].origin, self.origin) < 64) { playfx (level._effect["powerup_grabbed"], self.origin); playfx (level._effect["powerup_grabbed_wave"], self.origin); if( IsDefined( level.zombie_powerup_grab_func ) ) { level thread [[level.zombie_powerup_grab_func]](); } else { switch (self.powerup_name) { case "nuke": level thread nuke_powerup( self ); //chrisp - adding powerup VO sounds players[i] thread powerup_vo("nuke"); zombies = getaiarray("axis"); players[i].zombie_nuked = get_array_of_closest( self.origin, zombies ); players[i] notify("nuke_triggered"); break; case "full_ammo": level thread full_ammo_powerup( self ); players[i] thread powerup_vo("full_ammo"); break; case "double_points": level thread double_points_powerup( self ); players[i] thread powerup_vo("double_points"); break; case "insta_kill": level thread insta_kill_powerup( self ); players[i] thread powerup_vo("insta_kill"); break; case "carpenter": level thread start_carpenter( self.origin ); players[i] thread powerup_vo("carpenter"); break; case "CUSTOM PERK NAME": // FUNCTION METHOD players[i] thread powerup_vo("full_ammo"); break; default: println ("Unrecognized poweup."); break; } } wait( 0.1 ); playsoundatposition("powerup_grabbed", self.origin); self stoploopsound(); self delete(); self notify ("powerup_grabbed"); } } wait 0.1; } }
And you are done.