This Script Was Made By AI That I've Paid For Enjoy
level thread nuke_buy_init();
//*****************************************************************************
// NUKE BUY (once per round)
// Place a trigger_use in Radiant with targetname "nuke_buy_trigger"
// Costs level.nuke_buy_cost points (default 5000) to kill all zombies and flash every player's screen
//*****************************************************************************
nuke_buy_init()
{
if ( !IsDefined( level.nuke_buy_cost ) || level.nuke_buy_cost < 1 )
{
return;
}
level.nuke_buy_used_this_round = false;
level thread nuke_buy_round_reset();
triggers = GetEntArray( "nuke_buy_trigger", "targetname" );
if ( !IsDefined( triggers ) || triggers.size <= 0 )
{
return;
}
nuke_buy_refresh_all_hints();
for ( i = 0; i < triggers.size; i++ )
{
level thread nuke_buy_think( triggers
);
}
}
nuke_buy_round_reset()
{
while ( 1 )
{
level waittill( "start_of_round" );
level.nuke_buy_used_this_round = false;
nuke_buy_refresh_all_hints();
}
}
nuke_buy_get_hint( cost )
{
if ( level.nuke_buy_used_this_round )
{
return "Nuke ^1Used This Round";
}
return "Press ^3&&1 ^7Buy Nuke [^3" + cost + "^7]";
}
nuke_buy_refresh_all_hints()
{
triggers = GetEntArray( "nuke_buy_trigger", "targetname" );
if ( !IsDefined( triggers ) || triggers.size <= 0 )
{
return;
}
cost = level.nuke_buy_cost;
for ( i = 0; i < triggers.size; i++ )
{
triggers sethintstring( nuke_buy_get_hint( cost ) );
}
}
nuke_buy_think( trig )
{
cost = level.nuke_buy_cost;
trig UseTriggerRequireLookAt();
trig setcursorhint( "HINT_NOICON" );
while ( 1 )
{
trig sethintstring( nuke_buy_get_hint( cost ) );
trig waittill( "trigger", user );
if ( level.nuke_buy_used_this_round )
{
maps\_zombiemode_utility::play_sound_at_pos( "no_cha_ching", trig.origin );
continue;
}
if ( !is_player_valid( user ) )
{
continue;
}
if ( user.score < cost )
{
maps\_zombiemode_utility::play_sound_at_pos( "no_cha_ching", trig.origin );
continue;
}
if ( IsDefined( level.nuke_buy_in_progress ) && level.nuke_buy_in_progress )
{
continue;
}
maps\_zombiemode_utility::play_sound_at_pos( "cha_ching", trig.origin );
user thread maps\_zombiemode_score::minus_to_player_score( cost );
level.nuke_buy_used_this_round = true;
nuke_buy_refresh_all_hints();
level thread nuke_buy_execute( trig.origin, user );
}
}
nuke_buy_execute( location, buyer )
{
level endon( "game_ended" );
level.nuke_buy_in_progress = true;
PlayFx( "misc/fx_zombie_mini_nuke", location );
level thread nuke_buy_flash();
wait( 0.5 );
zombies = getaispeciesarray( "axis" );
zombies_nuked = ;
if ( IsDefined( zombies ) && zombies.size > 0 )
{
zombies = get_array_of_closest( location, zombies );
for ( i = 0; i < zombies.size; i++ )
{
if ( IsDefined( zombies.marked_for_death ) && zombies
.marked_for_death )
{
continue;
}
if ( IsDefined( zombies
.nuke_damage_func ) )
{
zombies
thread [[ zombies.nuke_damage_func ]]();
continue;
}
if ( is_magic_bullet_shield_enabled( zombies
) )
{
continue;
}
zombies
.marked_for_death = true;
zombies
.nuked = true;
zombies_nuked = zombies
;
}
for ( i = 0; i < zombies_nuked.size; i++ )
{
wait( randomfloatrange( 0.1, 0.7 ) );
if ( !IsDefined( zombies_nuked
) )
{
continue;
}
if ( is_magic_bullet_shield_enabled( zombies_nuked
) )
{
continue;
}
if ( i < 5 && !( zombies_nuked
.isdog ) )
{
zombies_nuked
thread animscripts\zombie_death::flame_death_fx();
zombies_nuked
playsound( "evt_nuked" );
}
if ( !( zombies_nuked
.isdog ) )
{
zombies_nuked
maps\_zombiemode_spawner::zombie_head_gib();
zombies_nuked
playsound( "evt_nuked" );
}
zombies_nuked dodamage( zombies_nuked.health + 666, zombies_nuked
.origin );
}
}
if ( IsDefined( buyer ) )
{
buyer iPrintLnBold( "^3Nuke ^7deployed!" );
iPrintLnBold( buyer.name + " ^7bought the ^3Nuke^7!" );
}
wait( 1.7 );
level.nuke_buy_in_progress = undefined;
}
nuke_buy_flash()
{
level thread maps\_zombiemode_powerups::nuke_flash();
earthquake( 0.5, 1.5, ( 0, 0, 0 ), 20000 );
}