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! -- modlauncher.exe
level thread powerup_hud_overlay();
init_powerups()
{
if( !IsDefined( level.zombie_powerup_array ) )
{
level.zombie_powerup_array = [];
}
if ( !IsDefined( level.zombie_special_drop_array ) )
{
level.zombie_special_drop_array = [];
}
// Random Drops
add_zombie_powerup( "nuke", "zombie_bomb", &"ZOMBIE_POWERUP_NUKE", "misc/fx_zombie_mini_nuke" );
add_zombie_powerup( "insta_kill", "zombie_skull", &"ZOMBIE_POWERUP_INSTA_KILL", undefined, "specialty_instakill_zombies", "zombie_powerup_insta_kill_time");
add_zombie_powerup( "double_points","zombie_x2_icon", &"ZOMBIE_POWERUP_DOUBLE_POINTS" , undefined, "specialty_doublepoints_zombies", "zombie_powerup_point_doubler_time" );
add_zombie_powerup( "full_ammo", "zombie_ammocan", &"ZOMBIE_POWERUP_MAX_AMMO");
add_zombie_powerup( "carpenter", "zombie_carpenter", &"ZOMBIE_POWERUP_MAX_AMMO");
// add_zombie_special_powerup( "monkey" );
// additional special "drops"
// add_zombie_special_drop( "nothing" );
add_zombie_special_drop( "dog" );
// Randomize the order
randomize_powerups();
level.zombie_powerup_index = 0;
randomize_powerups();
}
add_zombie_powerup( powerup_name, model_name, hint, fx, shader, timer_var )
add_zombie_powerup( powerup_name, model_name, hint, fx, shader, timer_var )
{
if( IsDefined( level.zombie_include_powerups ) && !IsDefined( level.zombie_include_powerups[powerup_name] ) )
{
return;
}
PrecacheModel( model_name );
PrecacheString( hint );
struct = SpawnStruct();
if( !IsDefined( level.zombie_powerups ) )
{
level.zombie_powerups = [];
}
struct.powerup_name = powerup_name;
struct.model_name = model_name;
struct.weapon_classname = "script_model";
struct.hint = hint;
if(IsDefined(shader))
struct.shader = shader;
if(IsDefined(timer_var))
struct.timer = timer_var;
if( IsDefined( fx ) )
{
struct.fx = LoadFx( fx );
}
level.zombie_powerups[powerup_name] = struct;
level.zombie_powerup_array[level.zombie_powerup_array.size] = powerup_name;
add_zombie_special_drop( powerup_name );
}
RemovePowerUpHud( powerup_name )
{
for(i = 0; i < self.powerup_hud.size ; i++)
{
if(IsDefined(self.powerup_hud[i].powerup_name) && self.powerup_hud[i].powerup_name == powerup_name)
{
self.hud_is_being_deleted = true;
self.powerup_hud[i] notify("hud_gone");
// IPrintLnBold(self.powerup_hud[i].powerup_name ); // Debug Purposes
self.powerup_hud[i].alpha = 1;
wait 0.1;
self.powerup_hud[i] FadeOverTime(0.5);
self.powerup_hud[i].alpha = 0;
wait 0.6;
self.powerup_hud[i] destroy_hud();
self.powerup_hud[i] Delete();
self.powerup_hud = array_remove(self.powerup_hud, self.powerup_hud[i]);
self.current_powerups = array_remove(self.current_powerups, self.current_powerups[powerup_name]);
self.hud_is_being_deleted = false;
}
}
for(i = 0; i < self.powerup_hud.size ; i++)
self.powerup_hud[i] thread MoveThyHUD(i, self.powerup_hud.size);
}
CreatePowerUpHud( powerup )
{
if(IsDefined(self.current_powerups))
self.current_powerups = [];
if(!IsDefined( self.powerup_hud))
self.powerup_hud = [];
while(IsDefined(self.current_powerups[powerup])) // Check because from testing if the player is fast enough (Though very rare for it to happen), 2 elements can spawn for same HUD.
wait 0.05;
self.current_powerups[powerup] = create_simple_hud( self ); // Made Client HUD so we modify per player for things like Minigun, etc.
self.current_powerups[powerup].powerup_name = powerup;
self.current_powerups[powerup].foreground = true;
self.current_powerups[powerup].sort = 2;
self.current_powerups[powerup].hidewheninmenu = false;
self.current_powerups[powerup].alignX = "center";
self.current_powerups[powerup].alignY = "bottom";
self.current_powerups[powerup].horzAlign = "center";
self.current_powerups[powerup].vertAlign = "bottom";
self.current_powerups[powerup].x = self.current_powerups[powerup].x;
self.current_powerups[powerup].y = self.current_powerups[powerup].y - 35;
self.current_powerups[powerup].alpha = 0;
self.current_powerups[powerup] setshader(level.zombie_powerups[powerup].shader, 48, 48);
self.current_powerups[powerup] scaleOverTime( .3, 32, 32 );
self.current_powerups[powerup] FadeOverTime(0.3);
self.current_powerups[powerup].alpha = 1;
self.current_powerups[powerup] thread LowTimeFade();
self.powerup_hud[self.powerup_hud.size] = self.current_powerups[powerup];
for(i = 0; i < self.powerup_hud.size ; i++)
self.powerup_hud[i] thread MoveThyHUD(i, self.powerup_hud.size);
}
LowTimeFade()
{
self endon("hud_gone");
while(IsDefined(self))
{
self.timer = level.zombie_vars[level.zombie_powerups[self.powerup_name].timer];
if(self.timer < 5)
{
fade_time = 0.2;
}
else if(self.timer < 10)
{
fade_time = 0.6;
}
else
{
wait 0.1;
continue;
}
self FadeOverTime(fade_time);
self.alpha = 0.1;
wait fade_time;
self FadeOverTime(fade_time);
self.alpha = 1;
wait fade_time;
}
}
MoveThyHUD(i, array_size) // Mjáá
{
self MoveOverTime(0.5);
self.x = (24 + (-24 * array_size + (i * 48))); // Jáám
self.y = self.y;
}
insta_kill_powerup( drop_item )
{
power_up_name = drop_item.powerup_name;
level notify( "powerup instakill" );
level endon( "powerup instakill" );
// array_thread (players, ::insta_kill_on_hud, drop_item);
level thread insta_kill_on_hud( drop_item, power_up_name );
level.zombie_vars["zombie_insta_kill"] = 1;
wait( 30 );
level.zombie_vars["zombie_insta_kill"] = 0;
players = get_players();
for(i = 0; i < players.size; i++)
{
players[i] notify("insta_kill_over");
}
}
insta_kill_on_hud( drop_item, power_up_name )
{
self endon ("disconnect");
// check to see if this is on or not
if ( level.zombie_vars["zombie_powerup_insta_kill_on"] )
{
// reset the time and keep going
level.zombie_vars["zombie_powerup_insta_kill_time"] = 30;
return;
}
for( i = 0; i < GetPlayers().size; i ++ )
GetPlayers()[i] thread CreatePowerUpHud( power_up_name );
level.zombie_vars["zombie_powerup_insta_kill_on"] = true;
// set up the hudelem
//hudelem = maps\_hud_util::createFontString( "objective", 2 );
//hudelem maps\_hud_util::setPoint( "TOP", undefined, 0, level.zombie_vars["zombie_timer_offset"] + level.zombie_vars["zombie_timer_offset_interval"]);
//hudelem.sort = 0.5;
//hudelem.alpha = 0;
//hudelem fadeovertime(0.5);
//hudelem.alpha = 1;
//hudelem.label = drop_item.hint;
// set time remaining for insta kill
level thread time_remaning_on_insta_kill_powerup( drop_item, power_up_name );
// offset in case we get another powerup
//level.zombie_timer_offset -= level.zombie_timer_offset_interval;
}
time_remaning_on_insta_kill_powerup( drop_item, power_up_name ) // Must pass on power_up_name from above for some reason or it won't work.
{
//self setvalue( level.zombie_vars["zombie_powerup_insta_kill_time"] );
level thread play_devil_dialog("insta_vox");
temp_enta = spawn("script_origin", (0,0,0));
temp_enta playloopsound("insta_kill_loop");
/*
players = get_players();
for (i = 0; i < players.size; i++)
{
players[i] playloopsound ("insta_kill_loop");
}
*/
// time it down!
while ( level.zombie_vars["zombie_powerup_insta_kill_time"] >= 0)
{
wait 0.1;
level.zombie_vars["zombie_powerup_insta_kill_time"] = level.zombie_vars["zombie_powerup_insta_kill_time"] - 0.1;
// self setvalue( level.zombie_vars["zombie_powerup_insta_kill_time"] );
}
players = get_players();
for (i = 0; i < players.size; i++)
{
//players[i] stoploopsound (2);
players[i] playsound("insta_kill");
}
temp_enta stoploopsound(2);
for( i = 0; i < GetPlayers().size; i ++ )
GetPlayers()[i] thread RemovePowerUpHud( power_up_name );
// turn off the timer
level.zombie_vars["zombie_powerup_insta_kill_on"] = false;
// remove the offset to make room for new powerups, reset timer for next time
level.zombie_vars["zombie_powerup_insta_kill_time"] = 30;
//level.zombie_timer_offset += level.zombie_timer_offset_interval;
//self destroy();
temp_enta delete();
}
point_doubler_on_hud( drop_item, power_up_name )
{
self endon ("disconnect");
// check to see if this is on or not
if ( level.zombie_vars["zombie_powerup_point_doubler_on"] )
{
// reset the time and keep going
level.zombie_vars["zombie_powerup_point_doubler_time"] = 30;
return;
}
for( i = 0; i < GetPlayers().size; i ++ )
GetPlayers()[i] thread CreatePowerUpHud( power_up_name );
level.zombie_vars["zombie_powerup_point_doubler_on"] = true;
//power_hud_array[0] = true;
// set up the hudelem
//hudelem = maps\_hud_util::createFontString( "objective", 2 );
//hudelem maps\_hud_util::setPoint( "TOP", undefined, 0, level.zombie_vars["zombie_timer_offset"] );
//hudelem.sort = 0.5;
//hudelem.alpha = 0;
//hudelem fadeovertime( 0.5 );
//hudelem.alpha = 1;
//hudelem.label = drop_item.hint;
// set time remaining for point doubler
level thread time_remaining_on_point_doubler_powerup( drop_item, power_up_name );
// offset in case we get another powerup
//level.zombie_timer_offset -= level.zombie_timer_offset_interval;
}
play_devil_dialog(sound_to_play)
{
if(!IsDefined(level.devil_is_speaking))
{
level.devil_is_speaking = 0;
}
if(level.devil_is_speaking == 0)
{
level.devil_is_speaking = 1;
play_sound_2D( sound_to_play );
wait 2.0;
level.devil_is_speaking =0;
}
}
time_remaining_on_point_doubler_powerup(drop_item, power_up_name)
{
//self setvalue( level.zombie_vars["zombie_powerup_point_doubler_time"] );
temp_ent = spawn("script_origin", (0,0,0));
temp_ent playloopsound ("double_point_loop");
level thread play_devil_dialog("dp_vox");
// time it down!
while ( level.zombie_vars["zombie_powerup_point_doubler_time"] >= 0)
{
wait 0.1;
level.zombie_vars["zombie_powerup_point_doubler_time"] = level.zombie_vars["zombie_powerup_point_doubler_time"] - 0.1;
//self setvalue( level.zombie_vars["zombie_powerup_point_doubler_time"] );
}
for( i = 0; i < GetPlayers().size; i ++ )
GetPlayers()[i] thread RemovePowerUpHud( power_up_name );
// turn off the timer
level.zombie_vars["zombie_powerup_point_doubler_on"] = false;
players = get_players();
for (i = 0; i < players.size; i++)
{
//players[i] stoploopsound("double_point_loop", 2);
players[i] playsound("points_loop_off");
}
temp_ent stoploopsound(2);
// remove the offset to make room for new powerups, reset timer for next time
level.zombie_vars["zombie_powerup_point_doubler_time"] = 30;
//level.zombie_timer_offset += level.zombie_timer_offset_interval;
//self destroy();
temp_ent delete();
}
double_points_powerup( drop_item )
{
power_up_name = drop_item.powerup_name;
level notify ("powerup points scaled");
level endon ("powerup points scaled");
// players = get_players();
// array_thread(level,::point_doubler_on_hud, drop_item);
level thread point_doubler_on_hud( drop_item, power_up_name );
level.zombie_vars["zombie_point_scalar"] = 2;
wait 30;
level.zombie_vars["zombie_point_scalar"] = 1;
}
for( i = 0; i < GetPlayers().size; i ++ )
GetPlayers()[i] thread RemovePowerUpHud( power_up_name );
player thread CreatePowerUpHud( power_up_name );
PrecacheShader( "specialty_firesale_zombies");
PrecacheShader( "specialty_doublepoints_zombies" );
PrecacheShader( "specialty_instakill_zombies" );
PrecacheShader( "specialty_doublepoints_zombies" );
PrecacheShader( "specialty_instakill_zombies" );
PrecacheShader( "specialty_firesale_zombies");
set_zombie_var( "zombie_powerup_fire_sale_on", 0 ); // Make sure its disabled at start of game, this won't turn it off, if you want it off, don't follow the tutorial!
set_zombie_var( "zombie_powerup_firesale_time", 30 ); // Firesale Length
set_zombie_var( "use_alt_firesale_sounds", "0" ); // Play alt sounds? (Listen to them in sounds folder) "1" = Yes, "0" = No.
set_zombie_var( "zombie_powerup_fire_sale_difficult", 1 ); // Enable extra difficulty, wait for the box to move first and only drop when there are more than x zombies (set this below)
set_zombie_var( "zombie_powerup_fire_sale_zombies_before_firesale", 15 ); // If the setting above is enabled, it will only drop when this amount of zombies are present, so it drops mid-round to make it harder on the player.
set_zombie_var( "zombie_powerup_drop_max_per_round", 4 ); // lower this to make drop happen more often
set_zombie_var( "zombie_insta_kill", 0 );
set_zombie_var( "zombie_point_scalar", 1 );
set_zombie_var( "zombie_drop_item", 0 );
set_zombie_var( "zombie_timer_offset", 350 ); // hud offsets
set_zombie_var( "zombie_timer_offset_interval", 30 );
set_zombie_var( "zombie_powerup_insta_kill_on", false );
set_zombie_var( "zombie_powerup_point_doubler_on", false );
set_zombie_var( "zombie_powerup_point_doubler_time", 30 ); // length of point doubler
set_zombie_var( "zombie_powerup_insta_kill_time", 30 ); // length of insta kill
set_zombie_var( "zombie_powerup_drop_increment", 2000 ); // lower this to make drop happen more often
set_zombie_var( "zombie_powerup_drop_max_per_round", 4 ); // lower this to make drop happen more often
set_zombie_var( "zombie_powerup_fire_sale_on", 0 ); // Make sure its disabled at start of game, this won't turn it off, if you want it off, don't follow the tutorial!
set_zombie_var( "zombie_powerup_firesale_time", 30 ); // Firesale Length
set_zombie_var( "use_alt_firesale_sounds", "0" ); // Play alt sounds? (Listen to them in sounds folder) "1" = Yes, "0" = No.
set_zombie_var( "zombie_powerup_fire_sale_difficult", 1 ); // Enable extra difficulty, wait for the box to move first and only drop when there are more than x zombies (set this below)
set_zombie_var( "zombie_powerup_fire_sale_zombies_before_firesale", 10 ); // If the setting above is enabled, it will only drop when this amount of zombies are present, so it drops mid-round to make it harder on the player.
add_zombie_powerup( "firesale", "zombie_firesale", "Firesale!");
add_zombie_powerup( "carpenter", "zombie_carpenter", &"ZOMBIE_POWERUP_MAX_AMMO");
add_zombie_powerup( "nuke", "zombie_bomb", &"ZOMBIE_POWERUP_NUKE", "misc/fx_zombie_mini_nuke" );
add_zombie_powerup( "insta_kill", "zombie_skull", &"ZOMBIE_POWERUP_INSTA_KILL" );
add_zombie_powerup( "double_points","zombie_x2_icon", &"ZOMBIE_POWERUP_DOUBLE_POINTS" );
add_zombie_powerup( "full_ammo", "zombie_ammocan", &"ZOMBIE_POWERUP_MAX_AMMO");
add_zombie_powerup( "carpenter", "zombie_carpenter", &"ZOMBIE_POWERUP_MAX_AMMO");
add_zombie_powerup( "firesale", "zombie_firesale", "Firesale!");
powerup_hud_overlay()
{
level.powerup_hud_array = [];
level.powerup_hud_array[0] = true;
level.powerup_hud_array[1] = true;
level.powerup_hud = [];
level.powerup_hud_cover = [];
level endon ("disconnect");
for(i = 0; i < 3; i++)
{
level.powerup_hud[i] = create_simple_hud();
level.powerup_hud[i].foreground = true;
level.powerup_hud[i].sort = 2;
level.powerup_hud[i].hidewheninmenu = false;
level.powerup_hud[i].alignX = "center";
level.powerup_hud[i].alignY = "bottom";
level.powerup_hud[i].horzAlign = "center";
level.powerup_hud[i].vertAlign = "bottom";
level.powerup_hud[i].x = -32 + (i * 15);
level.powerup_hud[i].y = level.powerup_hud[i].y - 35;
level.powerup_hud[i].alpha = 0.8;
}
shader_2x = "specialty_doublepoints_zombies";
shader_insta = "specialty_instakill_zombies";
while(true)
{
if(level.zombie_vars["zombie_powerup_insta_kill_time"] < 5)
{
wait(0.1);
level.powerup_hud[1].alpha = 0;
wait(0.1);
}
else if(level.zombie_vars["zombie_powerup_insta_kill_time"] < 10)
{
wait(0.2);
level.powerup_hud[1].alpha = 0;
wait(0.18);
}
if(level.zombie_vars["zombie_powerup_point_doubler_time"] < 5)
{
wait(0.1);
level.powerup_hud[0].alpha = 0;
wait(0.1);
}
else if(level.zombie_vars["zombie_powerup_point_doubler_time"] < 10)
{
wait(0.2);
level.powerup_hud[0].alpha = 0;
wait(0.18);
}
if(level.fire_sale_time < 5)
{
wait(0.1);
level.powerup_hud[2].alpha = 0;
wait(0.1);
}
else if(level.fire_sale_time < 10)
{
wait(0.2);
level.powerup_hud[2].alpha = 0;
wait(0.18);
}
if(level.zombie_vars["zombie_powerup_point_doubler_on"] == true && level.zombie_vars["zombie_powerup_insta_kill_on"] == true && level.zombie_vars["zombie_powerup_fire_sale_on"] == false) // X2 & INSTA
{
level.powerup_hud[0].x = -24;
level.powerup_hud[1].x = 24;
level.powerup_hud[0].alpha = 1;
level.powerup_hud[1].alpha = 1;
level.powerup_hud[0] setshader(shader_2x, 32, 32);
level.powerup_hud[1] setshader(shader_insta, 32, 32);
}
else if(level.zombie_vars["zombie_powerup_point_doubler_on"] == true && level.zombie_vars["zombie_powerup_insta_kill_on"] == false && level.zombie_vars["zombie_powerup_fire_sale_on"] == false) // X2
{
level.powerup_hud[0].x = 0;
level.powerup_hud[0] setshader(shader_2x, 32, 32);
level.powerup_hud[1].alpha = 0;
level.powerup_hud[0].alpha = 1;
level.powerup_hud[2].alpha = 0;
}
else if(level.zombie_vars["zombie_powerup_point_doubler_on"] == false && level.zombie_vars["zombie_powerup_insta_kill_on"] == false && level.zombie_vars["zombie_powerup_fire_sale_on"] == true) // FIRE SALE
{
level.powerup_hud[2].x = 0;
level.powerup_hud[2] setshader("specialty_firesale_zombies", 32, 32);
level.powerup_hud[1].alpha = 0;
level.powerup_hud[2].alpha = 1;
level.powerup_hud[0].alpha = 0;
}
else if(level.zombie_vars["zombie_powerup_insta_kill_on"] == true && level.zombie_vars["zombie_powerup_point_doubler_on"] == false && level.zombie_vars["zombie_powerup_fire_sale_on"] == false) // INSTA
{
level.powerup_hud[1].x = 0;
level.powerup_hud[1] setshader(shader_insta, 32, 32);
level.powerup_hud[0].alpha = 0;
level.powerup_hud[1].alpha = 1;
level.powerup_hud[2].alpha = 0;
}
else if(level.zombie_vars["zombie_powerup_insta_kill_on"] == true && level.zombie_vars["zombie_powerup_point_doubler_on"] == true && level.zombie_vars["zombie_powerup_fire_sale_on"] == true) // INSTA & X2 & FIRE SALE
{
level.powerup_hud[0].x = -48;
level.powerup_hud[1].x = 0;
level.powerup_hud[2].x = 48;
level.powerup_hud[0].alpha = 1;
level.powerup_hud[1].alpha = 1;
level.powerup_hud[2].alpha = 1;
level.powerup_hud[0] setshader(shader_2x, 32, 32);
level.powerup_hud[1] setshader(shader_insta, 32, 32);
level.powerup_hud[2] setshader("specialty_firesale_zombies", 32, 32);
}
else if(level.zombie_vars["zombie_powerup_insta_kill_on"] == false && level.zombie_vars["zombie_powerup_point_doubler_on"] == true && level.zombie_vars["zombie_powerup_fire_sale_on"] == true) // X2 & FIRESALE
{
level.powerup_hud[0].x = -24;
level.powerup_hud[2].x = 24;
level.powerup_hud[0].alpha = 1;
level.powerup_hud[1].alpha = 0;
level.powerup_hud[2].alpha = 1;
level.powerup_hud[0] setshader(shader_2x, 32, 32);
level.powerup_hud[2] setshader("specialty_firesale_zombies", 32, 32);
}
else if(level.zombie_vars["zombie_powerup_insta_kill_on"] == true && level.zombie_vars["zombie_powerup_point_doubler_on"] == false && level.zombie_vars["zombie_powerup_fire_sale_on"] == true) // INSTA & FIRE SALE
{
level.powerup_hud[1].x = -24;
level.powerup_hud[2].x = 24;
level.powerup_hud[0].alpha = 0;
level.powerup_hud[1].alpha = 1;
level.powerup_hud[2].alpha = 1;
level.powerup_hud[1] setshader(shader_insta, 32, 32);
level.powerup_hud[2] setshader("specialty_firesale_zombies", 32, 32);
}
else
{
level.powerup_hud[2].alpha = 0;
level.powerup_hud[1].alpha = 0;
level.powerup_hud[0].alpha = 0;
}
wait(0.01);
}
}
get_next_powerup()
{
/#
if( isdefined( level.zombie_devgui_power ) && level.zombie_devgui_power == 1 )
return level.zombie_powerup_array[ level.zombie_powerup_index ];
#/
powerup = getNextPowerUp();
while(1)
{
if( powerup == "firesale" && (IsDefined(level.zombie_vars["zombie_powerup_fire_sale_difficult"]) && level.zombie_vars["zombie_powerup_fire_sale_difficult"]))
{
if( powerup == "firesale" && ((IsDefined(level.box_moved) && !level.box_moved)) &&(IsDefined(getaiarray( "axis" ) && getaiarray( "axis" ).size < level.zombie_vars["zombie_powerup_fire_sale_zombies_before_firesale"]) && (IsDefined(level.power_on) && level.power_on))
powerup = getNextPowerUp();
else
return powerup;
}
else if( powerup == "carpenter" && get_num_window_destroyed() < 5 )
{
powerup = getNextPowerUp();
}
else
{
return powerup;
}
wait(0.05);
}
}
getNextPowerUp()
{
powerup = level.zombie_powerup_array[ level.zombie_powerup_index ];
level.zombie_powerup_index++;
if( level.zombie_powerup_index >= level.zombie_powerup_array.size )
{
level.zombie_powerup_index = 0;
randomize_powerups();
}
return powerup;
}
case "carpenter":
level thread start_carpenter( self.origin );
players[i] thread powerup_vo("carpenter");
break;
case "firesale":
level thread firesale_harrybo21box( self );
break;
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 "firesale":
level thread firesale_harrybo21box( self );
break;
default:
println ("Unrecognized poweup.");
break;
}
firesale_harrybo21box()
{
if(IsDefined(level.zombie_vars[ "zombie_powerup_fire_sale_on" ]) && level.zombie_vars[ "zombie_powerup_fire_sale_on" ])
{
level.fire_sale_time = level.zombie_vars[ "zombie_powerup_firesale_time" ];
return;
}
level.zombie_vars[ "zombie_powerup_fire_sale_on" ] = 1;
if(IsDefined(level.zombie_vars[ "zombie_powerup_firesale_time" ]))
level.fire_sale_time = level.zombie_vars[ "zombie_powerup_firesale_time" ];
else
level.fire_sale_time = 30;
thread firesale_sound_thread();
level thread maps\_zombiemode_mysterybox::harrybo21_mysterybox_start_fire_sale();
while(level.fire_sale_time > 0)
{
level.fire_sale_time -= 0.1;
wait 0.1;
}
level.zombie_vars[ "zombie_powerup_fire_sale_on" ] = 0;
if(IsDefined(level.zombie_vars[ "zombie_powerup_firesale_time" ]))
level.fire_sale_time = level.zombie_vars[ "zombie_powerup_firesale_time" ];
else
level.fire_sale_time = 30;
}
firesale_sound_thread()
{
if(!IsDefined(level.zombie_vars["use_alt_firesale_sounds"]))
level.zombie_vars["use_alt_firesale_sounds"] = "0";
sound_firesale = "fs_vox" + level.zombie_vars["use_alt_firesale_sounds"];
sound_firesale_loop = "fs_loop" + level.zombie_vars["use_alt_firesale_sounds"];
level thread play_devil_dialog(sound_firesale);
fs_ent = spawn("script_origin", (0,0,0));
fs_ent playloopsound (sound_firesale_loop);
while ( level.fire_sale_time >= 0)
{
wait 0.1;
}
players = get_players();
for (i = 0; i < players.size; i++)
{
players[i] playsound("points_loop_off");
}
fs_ent stoploopsound(2);
fs_ent delete();
}
maps\_zombiemode_dw_attach::init();
maps\_zombiemode_blockers_new::init();
maps\_zombiemode_spawner::init();
maps\_zombiemode_powerups::init();
maps\_zombiemode_radio::init();
maps\_zombiemode_perks::init();
maps\_zombiemode_dw_attach::init();
maps\_zombiemode_tesla::init();
maps\_zombiemode_dogs::init();
maps\_zombiemode_bowie::bowie_init();
maps\_zombiemode_cymbal_monkey::init();
maps\_zombiemode_betty::init();
maps\_zombiemode_timer::init();
maps\_zombiemode_auto_turret::init();
level._effect[ "pistol_flash" ] = loadfx ( "weapon/muzzleflashes/standardflashworld" );
DWAttatch()
{
while(1)
{
self.weap_model = GetWeaponModel(self GetCurrentWeapon());
self waittill_any( "weapon_change", "weapon_change_complete" );
self Detach(self.weap_model, "tag_weapon_left");
if((self GetCurrentWeapon() == "mr6_upgraded" || "m1911_upgraded") || IsSubStr(self.weap_model, "dw") || IsSubStr(self GetCurrentWeapon(), "dw"))
self Attach( self.weap_model, "tag_weapon_left" );
}
}
left_hand_muzzleflashes()
{
self endon( "disconnect" );
while( true )
{
self waittill( "weapon_fired" );
switch( self GetCurrentWeapon() ) // Dumped the worldmodel shell ejects for second weapons since it's not worth looking into tbh.
{
case "mr6_upgraded":
self thread play_third_person_fx( level._effect[ "pistol_flash" ], "tag_weapon_left");
break;
case "hs10_upgraded":
self thread play_third_person_fx( level._effect[ "shotgun_flash" ], "tag_weapon_left");
break;
}
}
}
case "weap_name":
self thread play_third_person_fx( level._effect[ "FX_ID" ], "tag_weapon_left");
break;
self.nodeathragdoll = true;