Properly checked against the cerberus output

The next update will feature verbose logging as a feature. This will make debugging the script much much easier.
This commit is contained in:
JezuzLizard 2020-04-13 15:02:33 -07:00
parent 3c3a03f1c6
commit 99f0682ae6

View File

@ -19,7 +19,7 @@
#include maps/mp/_utility;
#include common_scripts/utility;
init()
init() //checked matches cerberus output
{
level.dogs_enabled = 1;
level.dog_rounds_enabled = 0;
@ -56,7 +56,7 @@ init()
level thread dog_clip_monitor();
}
enable_dog_rounds()
enable_dog_rounds() //checked matches cerberus output
{
level.dog_rounds_enabled = 1;
if ( !isDefined( level.dog_round_track_override ) )
@ -66,7 +66,7 @@ enable_dog_rounds()
level thread [[ level.dog_round_track_override ]]();
}
dog_spawner_init()
dog_spawner_init() //checked does not match cerberus output did not change
{
level.dog_spawners = getentarray( "zombie_dog_spawner", "script_noteworthy" );
later_dogs = getentarray( "later_round_dog_spawners", "script_noteworthy" );
@ -82,29 +82,26 @@ dog_spawner_init()
{
level.dog_spawners[ i ].is_enabled = 0;
i++;
continue;
}
else
{
level.dog_spawners[ i ].is_enabled = 1;
level.dog_spawners[ i ].script_forcespawn = 1;
i++;
}
i++;
}
level.dog_health = 100;
array_thread( level.dog_spawners, ::add_spawn_function, ::dog_init );
level.enemy_dog_spawns = getentarray( "zombie_spawner_dog_init", "targetname" );
}
dog_round_spawning()
dog_round_spawning() //checked partially matches cerberus output
{
level endon( "intermission" );
level.dog_targets = getplayers();
i = 0;
while ( i < level.dog_targets.size )
for ( i = 0; i < level.dog_targets.size; i++ )
{
level.dog_targets[ i ].hunted_by = 0;
i++;
}
if ( level.intermission )
{
@ -131,7 +128,7 @@ dog_round_spawning()
while ( count < max )
{
num_player_valid = get_number_of_valid_players();
while ( get_current_zombie_count() >= ( num_player_valid * 2 ) )
while ( get_current_zombie_count() >= num_player_valid * 2 )
{
wait 2;
num_player_valid = get_number_of_valid_players();
@ -147,7 +144,6 @@ dog_round_spawning()
ai.favoriteenemy = favorite_enemy;
spawn_loc thread dog_spawn_fx( ai, spawn_loc );
level.zombie_total--;
count++;
}
}
@ -160,7 +156,6 @@ dog_round_spawning()
ai.favoriteenemy = favorite_enemy;
spawn_point thread dog_spawn_fx( ai, spawn_point );
level.zombie_total--;
count++;
flag_set( "dog_clips" );
}
@ -169,7 +164,7 @@ dog_round_spawning()
}
}
waiting_for_next_dog_spawn( count, max )
waiting_for_next_dog_spawn( count, max ) //checked matches cerberus output
{
default_wait = 1.5;
if ( level.dog_round_count == 1 )
@ -192,7 +187,7 @@ waiting_for_next_dog_spawn( count, max )
wait default_wait;
}
dog_round_aftermath()
dog_round_aftermath() //checked matches cerberus output
{
level waittill( "last_dog_down" );
level thread maps/mp/zombies/_zm_audio::change_zombie_music( "dog_end" );
@ -207,7 +202,7 @@ dog_round_aftermath()
level.dog_intermission = 0;
}
dog_spawn_fx( ai, ent )
dog_spawn_fx( ai, ent ) //checked matches cerberus output
{
ai endon( "death" );
ai setfreecameralockonallowed( 0 );
@ -230,7 +225,7 @@ dog_spawn_fx( ai, ent )
ai notify( "visible" );
}
dog_spawn_sumpf_logic( dog_array, favorite_enemy )
dog_spawn_sumpf_logic( dog_array, favorite_enemy ) //checked does not match cerberus output did not change
{
dog_array = array_randomize( dog_array );
i = 0;
@ -250,7 +245,7 @@ dog_spawn_sumpf_logic( dog_array, favorite_enemy )
i++;
continue;
}
else level.old_dog_spawn = dog_array[ i ];
level.old_dog_spawn = dog_array[ i ];
return dog_array[ i ];
}
}
@ -259,65 +254,53 @@ dog_spawn_sumpf_logic( dog_array, favorite_enemy )
return dog_array[ 0 ];
}
dog_spawn_factory_logic( dog_array, favorite_enemy )
dog_spawn_factory_logic( dog_array, favorite_enemy ) //checked matches cerberus output
{
dog_locs = array_randomize( level.enemy_dog_locations );
i = 0;
while ( i < dog_locs.size )
for ( i = 0; i < dog_locs.size; i++ )
{
if ( isDefined( level.old_dog_spawn ) && level.old_dog_spawn == dog_locs[ i ] )
{
i++;
continue;
}
else
dist_squared = distancesquared( dog_locs[ i ].origin, favorite_enemy.origin );
if ( dist_squared > 160000 && dist_squared < 1000000 )
{
dist_squared = distancesquared( dog_locs[ i ].origin, favorite_enemy.origin );
if ( dist_squared > 160000 && dist_squared < 1000000 )
{
level.old_dog_spawn = dog_locs[ i ];
return dog_locs[ i ];
}
level.old_dog_spawn = dog_locs[ i ];
return dog_locs[ i ];
}
i++;
}
return dog_locs[ 0 ];
}
get_favorite_enemy()
get_favorite_enemy() //checked changed to match cerberus output
{
dog_targets = getplayers();
least_hunted = dog_targets[ 0 ];
i = 0;
while ( i < dog_targets.size )
for ( i = 0; i < dog_targets.size; i++ )
{
if ( !isDefined( dog_targets[ i ].hunted_by ) )
if ( !isdefined( dog_targets[ i ].hunted_by ) )
{
dog_targets[ i ].hunted_by = 0;
}
if ( !is_player_valid( dog_targets[ i ] ) )
{
i++;
continue;
}
else
if ( !is_player_valid( least_hunted ) )
{
if ( !is_player_valid( least_hunted ) )
{
least_hunted = dog_targets[ i ];
}
if ( dog_targets[ i ].hunted_by < least_hunted.hunted_by )
{
least_hunted = dog_targets[ i ];
}
least_hunted = dog_targets[ i ];
}
if ( dog_targets[ i ].hunted_by < least_hunted.hunted_by )
{
least_hunted = dog_targets[ i ];
}
i++;
}
least_hunted.hunted_by += 1;
return least_hunted;
}
dog_health_increase()
dog_health_increase() //checked changed to match cerberus output
{
players = getplayers();
if ( level.dog_round_count == 1 )
@ -332,12 +315,9 @@ dog_health_increase()
{
level.dog_health = 1300;
}
else
else if ( level.dog_round_count == 4 )
{
if ( level.dog_round_count == 4 )
{
level.dog_health = 1600;
}
level.dog_health = 1600;
}
if ( level.dog_health > 1600 )
{
@ -345,7 +325,7 @@ dog_health_increase()
}
}
dog_round_tracker()
dog_round_tracker() //checked changed to match cerberus output
{
level.dog_round_count = 1;
level.next_dog_round = level.round_number + randomintrange( 4, 7 );
@ -362,23 +342,19 @@ dog_round_tracker()
dog_round_start();
level.round_spawn_func = ::dog_round_spawning;
level.next_dog_round = level.round_number + randomintrange( 4, 6 );
continue;
}
else
else if ( flag( "dog_round" ) )
{
if ( flag( "dog_round" ) )
{
dog_round_stop();
level.round_spawn_func = old_spawn_func;
level.round_wait_func = old_wait_func;
level.music_round_override = 0;
level.dog_round_count += 1;
}
dog_round_stop();
level.round_spawn_func = old_spawn_func;
level.round_wait_func = old_wait_func;
level.music_round_override = 0;
level.dog_round_count += 1;
}
}
}
dog_round_start()
dog_round_start() //checked matches cerberus output
{
flag_set( "dog_round" );
flag_set( "dog_clips" );
@ -400,7 +376,7 @@ dog_round_start()
}
}
dog_round_stop()
dog_round_stop() //checked matches cerberus output
{
flag_clear( "dog_round" );
flag_clear( "dog_clips" );
@ -416,7 +392,7 @@ dog_round_stop()
setdvar( "ai_meleeHeight", level.melee_height_sav );
}
play_dog_round()
play_dog_round() //checked matches cerberus output
{
self playlocalsound( "zmb_dog_round_start" );
variation_count = 5;
@ -426,7 +402,7 @@ play_dog_round()
players[ num ] maps/mp/zombies/_zm_audio::create_and_play_dialog( "general", "dog_spawn" );
}
dog_init()
dog_init() //checked matches cerberus output
{
self.targetname = "zombie_dog";
self.script_noteworthy = undefined;
@ -485,7 +461,7 @@ dog_init()
}
}
dog_fx_eye_glow()
dog_fx_eye_glow() //checked matches cerberus output
{
self.fx_dog_eye = spawn( "script_model", self gettagorigin( "J_EyeBall_LE" ) );
self.fx_dog_eye.angles = self gettagangles( "J_EyeBall_LE" );
@ -493,7 +469,7 @@ dog_fx_eye_glow()
self.fx_dog_eye linkto( self, "J_EyeBall_LE" );
}
dog_fx_trail()
dog_fx_trail() //checked matches cerberus output
{
if ( !is_mature() || randomint( 100 ) > level.zombie_vars[ "dog_fire_trail_percent" ] )
{
@ -512,7 +488,7 @@ dog_fx_trail()
self.fx_dog_trail linkto( self, "tag_origin" );
}
dog_death()
dog_death() //checked changed to match cerberus output
{
self waittill( "death" );
if ( get_current_zombie_count() == 0 && level.zombie_total == 0 )
@ -540,6 +516,7 @@ dog_death()
self.attacker notify( "killed" );
}
self stoploopsound();
self.fx_dog_eye delete();
self.fx_dog_trail delete();
if ( isDefined( self.a.nodeath ) )
{
@ -552,13 +529,13 @@ dog_death()
}
}
dog_explode_fx( origin )
dog_explode_fx( origin ) //checked matches cerberus output
{
playfx( level._effect[ "dog_gib" ], origin );
playsoundatposition( "zmb_hellhound_explode", origin );
}
zombie_setup_attack_properties_dog()
zombie_setup_attack_properties_dog() //checked matches cerberus output
{
self maps/mp/zombies/_zm_spawner::zombie_history( "zombie_setup_attack_properties()" );
self thread dog_behind_audio();
@ -569,13 +546,13 @@ zombie_setup_attack_properties_dog()
self.disableexits = 1;
}
stop_dog_sound_on_death()
stop_dog_sound_on_death() //checked matches cerberus output
{
self waittill( "death" );
self stopsounds();
}
dog_behind_audio()
dog_behind_audio() //checked does not match cerberus output changed at own discretion
{
self thread stop_dog_sound_on_death();
self endon( "death" );
@ -604,45 +581,39 @@ dog_behind_audio()
}
}
dog_clip_monitor()
dog_clip_monitor() //checked changed to match cerberus output
{
clips_on = 0;
level.dog_clips = getentarray( "dog_clips", "targetname" );
while ( 1 )
{
i = 0;
while ( i < level.dog_clips.size )
for ( i = 0; i < level.dog_clips.size; i++ )
{
level.dog_clips[ i ] trigger_off();
level.dog_clips[ i ] connectpaths();
i++;
}
flag_wait( "dog_clips" );
if ( isDefined( level.no_dog_clip ) && level.no_dog_clip == 1 )
{
return;
}
i = 0;
while ( i < level.dog_clips.size )
for ( i = 0; i < level.dog_clips.size; i++ )
{
level.dog_clips[ i ] trigger_on();
level.dog_clips[ i ] disconnectpaths();
wait_network_frame();
i++;
}
dog_is_alive = 1;
while ( dog_is_alive || flag( "dog_round" ) )
{
dog_is_alive = 0;
dogs = getentarray( "zombie_dog", "targetname" );
i = 0;
while ( i < dogs.size )
for ( i = 0; i < dogs.size; i++ )
{
if ( isalive( dogs[ i ] ) )
{
dog_is_alive = 1;
}
i++;
}
wait 1;
}
@ -651,7 +622,7 @@ dog_clip_monitor()
}
}
special_dog_spawn( spawners, num_to_spawn )
special_dog_spawn( spawners, num_to_spawn ) //checked matches cerberus output
{
dogs = getaispeciesarray( "all", "zombie_dog" );
if ( isDefined( dogs ) && dogs.size >= 9 )
@ -709,7 +680,7 @@ special_dog_spawn( spawners, num_to_spawn )
return 1;
}
dog_run_think()
dog_run_think() //checked matches cerberus output
{
self endon( "death" );
self waittill( "visible" );
@ -731,7 +702,7 @@ dog_run_think()
}
}
dog_stalk_audio()
dog_stalk_audio() //checked matches cerberus output
{
self endon( "death" );
self endon( "dog_running" );
@ -743,7 +714,7 @@ dog_stalk_audio()
}
}
dog_thundergun_knockdown( player, gib )
dog_thundergun_knockdown( player, gib ) //checked matches cerberus output
{
self endon( "death" );
damage = int( self.maxhealth * 0.5 );
@ -752,3 +723,4 @@ dog_thundergun_knockdown( player, gib )