Fix bugs. Reduce code. Add brutus spawning.

This commit is contained in:
JezuzLizard
2024-03-01 23:15:41 -08:00
parent 619282e252
commit abec123219
18 changed files with 518 additions and 151 deletions

View File

@ -11402,25 +11402,6 @@
"angles" "0 0 0"
}
{
"origin" "0 100 -500"
"script_disable_bleeder" "1"
"script_noteworthy" "screecher_zombie_spawner"
"spawnflags" "3"
"export" "135"
"model" "c_zom_screecher_fb"
"classname" "actor_zm_transit_screecher"
"script_forcespawn" "1"
"count" "9999"
}
{
"script_string" "find_flesh"
"angles" "0 270 0"
"targetname" "culdesac_green_zone_spawners"
"origin" "-239 838 -84"
"script_noteworthy" "riser_location screecher_location"
"classname" "script_struct"
}
{
"classname" "actor_zm_alcatraz_brutus"
"model" "c_zom_cellbreaker_fb"
"export" "2"

View File

@ -100,8 +100,6 @@ main()
level.sndbrutusistalking = 0;
level.brutus_health = 500;
level.brutus_health_increase = 1000;
level.brutus_round_count = 0;
level.brutus_last_spawn_round = 0;
level.brutus_count = 0;
level.brutus_max_count = 1;
level.brutus_damage_percent = 0.1;
@ -174,8 +172,6 @@ init()
level.sndbrutusistalking = 0;
level.brutus_health = 500;
level.brutus_health_increase = 1000;
level.brutus_round_count = 0;
level.brutus_last_spawn_round = 0;
level.brutus_count = 0;
level.brutus_max_count = 1;
level.brutus_damage_percent = 0.1;
@ -584,26 +580,20 @@ sndbrutusloopwatcher( ent )
brutus_health_increases()
{
if ( level.round_number > level.brutus_last_spawn_round )
{
a_players = sys::getplayers();
n_player_modifier = 1;
a_players = sys::getplayers();
n_player_modifier = 1;
if ( a_players.size > 1 )
n_player_modifier = a_players.size * 0.75;
if ( a_players.size > 1 )
n_player_modifier = a_players.size * 0.75;
level.brutus_round_count++;
level.brutus_health = int( level.brutus_health_increase * n_player_modifier * level.brutus_round_count );
level.brutus_expl_dmg_req = int( level.brutus_explosive_damage_increase * n_player_modifier * level.brutus_round_count );
level.brutus_health = int( level.brutus_health_increase * n_player_modifier * level.special_round_count );
level.brutus_expl_dmg_req = int( level.brutus_explosive_damage_increase * n_player_modifier * level.special_round_count );
if ( level.brutus_health >= 5000 * n_player_modifier )
level.brutus_health = int( 5000 * n_player_modifier );
if ( level.brutus_health >= 5000 * n_player_modifier )
level.brutus_health = int( 5000 * n_player_modifier );
if ( level.brutus_expl_dmg_req >= 4500 * n_player_modifier )
level.brutus_expl_dmg_req = int( 4500 * n_player_modifier );
level.brutus_last_spawn_round = level.round_number;
}
if ( level.brutus_expl_dmg_req >= 4500 * n_player_modifier )
level.brutus_expl_dmg_req = int( 4500 * n_player_modifier );
}
get_brutus_spawn_pos_val( brutus_pos )
@ -808,9 +798,8 @@ brutus_death()
}
else
{
multiplier = maps\mp\zombies\_zm_score::get_points_multiplier( self );
team_points = multiplier * round_up_score( level.brutus_team_points_for_death, 5 );
player_points = multiplier * round_up_score( level.brutus_player_points_for_death, 5 );
team_points = round_up_score( level.brutus_team_points_for_death, 5 );
player_points = round_up_score( level.brutus_player_points_for_death, 5 );
a_players = sys::getplayers();
}
@ -2124,8 +2113,7 @@ scale_helmet_damage( attacker, damage, headshot_mod, damage_mod, vdir )
player_points = level.brutus_points_for_helmet;
else
{
multiplier = maps\mp\zombies\_zm_score::get_points_multiplier( self );
player_points = multiplier * round_up_score( level.brutus_points_for_helmet, 5 );
player_points = round_up_score( level.brutus_points_for_helmet, 5 );
}
if ( isdefined( attacker ) && isplayer( attacker ) )
@ -2201,8 +2189,7 @@ brutus_damage_override( inflictor, attacker, damage, flags, meansofdeath, weapon
player_points = level.brutus_points_for_helmet;
else
{
multiplier = maps\mp\zombies\_zm_score::get_points_multiplier( self );
player_points = multiplier * round_up_score( level.brutus_points_for_helmet, 5 );
player_points = round_up_score( level.brutus_points_for_helmet, 5 );
}
if ( isdefined( attacker ) && isplayer( attacker ) )
@ -2256,8 +2243,7 @@ brutus_damage_override( inflictor, attacker, damage, flags, meansofdeath, weapon
player_points = level.brutus_points_for_helmet;
else
{
multiplier = maps\mp\zombies\_zm_score::get_points_multiplier( self );
player_points = multiplier * round_up_score( level.brutus_points_for_helmet, 5 );
player_points = round_up_score( level.brutus_points_for_helmet, 5 );
}
attacker add_to_player_score( player_points );

View File

@ -23,7 +23,6 @@ init()
}
level.dogs_enabled = 1;
level.dog_rounds_enabled = 0;
level.dog_round_count = 1;
level.dog_spawners = [];
level.enemy_dog_spawns = [];
level.enemy_dog_locations = [];
@ -156,13 +155,13 @@ dog_health_increase()
{
players = sys::getplayers();
if ( level.dog_round_count == 1 )
if ( level.special_round_count == 1 )
level.dog_health = 400;
else if ( level.dog_round_count == 2 )
else if ( level.special_round_count == 2 )
level.dog_health = 900;
else if ( level.dog_round_count == 3 )
else if ( level.special_round_count == 3 )
level.dog_health = 1300;
else if ( level.dog_round_count == 4 )
else if ( level.special_round_count == 4 )
level.dog_health = 1600;
if ( level.dog_health > 1600 )

View File

@ -110,7 +110,6 @@ init()
level.mechz_base_health = 5000;
level.mechz_health = level.mechz_base_health;
level.mechz_health_increase = 1000;
level.mechz_round_count = 0;
level.mechz_damage_percent = 0.1;
level.mechz_remove_helmet_head_dmg_base = 500;
level.mechz_remove_helmet_head_dmg = level.mechz_remove_helmet_head_dmg_base;
@ -659,21 +658,18 @@ jump_pos_used_cooldown()
mechz_health_increases()
{
if ( !isdefined( level.mechz_last_spawn_round ) || level.round_number > level.mechz_last_spawn_round )
{
a_players = sys::getplayers();
n_player_modifier = 1;
a_players = sys::getplayers();
n_player_modifier = 1;
if ( a_players.size > 1 )
n_player_modifier = a_players.size * 0.75;
if ( a_players.size > 1 )
n_player_modifier = a_players.size * 0.75;
level.mechz_health = int( n_player_modifier * ( level.mechz_base_health + level.mechz_health_increase * level.mechz_round_count ) );
level.mechz_health = int( n_player_modifier * ( level.mechz_base_health + level.mechz_health_increase * level.special_round_count ) );
if ( level.mechz_health >= 22500 * n_player_modifier )
level.mechz_health = int( 22500 * n_player_modifier );
if ( level.mechz_health >= 22500 * n_player_modifier )
level.mechz_health = int( 22500 * n_player_modifier );
level.mechz_last_spawn_round = level.round_number;
}
level.mechz_last_spawn_round = level.round_number;
}
mechz_death()
@ -722,7 +718,24 @@ mechz_death()
event = "ballistic_knife_death";
self.attacker delay_thread( 4.0, maps\mp\zombies\_zm_audio::create_and_play_dialog, "general", "mech_defeated" );
self.attacker maps\mp\zombies\_zm_score::player_add_points( event, self.damagemod, self.damagelocation, 1 );
team_points = round_up_score( level.mechz_points_for_team, 5 );
player_points = round_up_score( level.mechz_points_for_killer, 5 );
a_players = sys::getplayers();
foreach ( player in a_players )
{
if ( !is_player_valid( player ) )
continue;
player add_to_player_score( team_points );
if ( player == self.attacker )
{
player add_to_player_score( player_points );
}
player.pers["score"] = player.score;
}
self.attacker maps\mp\zombies\_zm_stats::increment_client_stat( "tomb_mechz_killed", 0 );
self.attacker maps\mp\zombies\_zm_stats::increment_player_stat( "tomb_mechz_killed" );
@ -1600,6 +1613,10 @@ mechz_damage_override( inflictor, attacker, damage, flags, meansofdeath, weapon,
}
self thread shoot_mechz_head_vo();
if ( isdefined( attacker ) && isalive( attacker ) && isplayer( attacker ) )
{
attacker add_to_player_score( level.mechz_points_for_helmet );
}
}
if ( isdefined( self.powerplant_covered ) && self.powerplant_covered && self.powerplant_cover_dmg >= self.powerplant_cover_dmg_for_removal )
@ -1621,6 +1638,11 @@ mechz_damage_override( inflictor, attacker, damage, flags, meansofdeath, weapon,
self sys::animscripted( self.origin, self.angles, "zm_pain_powercore" );
self maps\mp\animscripts\zm_shared::donotetracks( "pain_anim_powercore" );
}
if ( isdefined( attacker ) && isalive( attacker ) && isplayer( attacker ) )
{
attacker add_to_player_score( level.mechz_points_for_powerplant );
}
}
else if ( !( isdefined( self.powerplant_covered ) && self.powerplant_covered ) && ( isdefined( self.has_powerplant ) && self.has_powerplant ) && self.powerplant_dmg >= self.powerplant_dmg_for_destroy )
{