Cleanup scripts.

This commit is contained in:
JezuzLizard 2024-02-07 05:19:21 -08:00
parent 4bbd8bf1fb
commit 7c043cee57
25 changed files with 495 additions and 384 deletions

View File

@ -9,11 +9,12 @@ precache()
}
main()
init()
{
clientscripts\mp\_visionset_mgr::vsmgr_register_overlay_info_style_electrified( "zm_ai_avogadro_electrified", 1, 15, 1 );
}
main()
{
if ( getDvar( "mapname" ) == "zm_transit" && getDvar( "g_gametype" ) == "zclassic" )
{
return;
}
clientscripts\mp\_visionset_mgr::vsmgr_register_overlay_info_style_electrified( "zm_ai_avogadro_electrified", 1, 15, 1 );
}

View File

@ -8,12 +8,15 @@ precache()
}
init()
{
registerclientfield( "actor", "helmet_off", 9000, 1, "int", ::brutus_helmet_launch_cb );
registerclientfield( "actor", "brutus_lock_down", 9000, 1, "int", ::brutus_lock_down_effects_cb );
registerbrutusfootstepcb( "zm_alcatraz_brutus", ::brutusfootstepcbfunc );
}
main()
{
if ( getDvar( "mapname" ) == "zm_prison" )
{
return;
}
registerclientfield( "actor", "helmet_off", 9000, 1, "int", ::brutus_helmet_launch_cb );
registerclientfield( "actor", "brutus_lock_down", 9000, 1, "int", ::brutus_lock_down_effects_cb );
registerbrutusfootstepcb( "zm_alcatraz_brutus", ::brutusfootstepcbfunc );

View File

@ -29,12 +29,13 @@ precache_fx()
}
}
init()
{
register_client_fields();
}
main()
{
if ( getDvar( "mapname" ) == "zm_buried" && getDvar( "g_gametype" ) == "zclassic" )
{
return;
}
precache_fx();
register_client_fields();
}

View File

@ -39,24 +39,11 @@ add_fx_element( index, fx_element, tag_name, min_freq, max_freq )
}
main()
{
if ( getDvar( "mapname" ) == "zm_tomb" )
{
return;
}
clientscripts\mp\zombies\_callbacks::onfinalizeinitialization_callback( ::mechz_clientfields );
}
mechz_clientfields()
{
registerclientfield( "actor", "mechz_fx", 14000, 12, "int", ::mechz_handle_fx );
registerclientfield( "toplayer", "mechz_grab", 14000, 1, "int", ::mechz_claw_callback );
registerclientfield( "actor", "anim_rate", 14000, 2, "float", undefined, 0 );
setupclientfieldanimspeedcallbacks( "actor", 1, "anim_rate" );
}
init()
{
add_fx_element( 0, "maps/zombie_tomb/fx_tomb_mech_dmg_armor", "J_Knee_Attach_LE" );
add_fx_element( 0, "maps/zombie_tomb/fx_tomb_mech_dmg_sparks", "J_Knee_Attach_LE", 0.25, 0.75 );
add_fx_element( 0, "maps/zombie_tomb/fx_tomb_mech_dmg_steam", "J_Knee_Attach_LE", 0.1, 0.3 );
@ -88,6 +75,41 @@ init()
init_animtree();
}
init()
{
registerclientfield( "actor", "mechz_fx", 14000, 12, "int", ::mechz_handle_fx );
add_fx_element( 0, "maps/zombie_tomb/fx_tomb_mech_dmg_armor", "J_Knee_Attach_LE" );
add_fx_element( 0, "maps/zombie_tomb/fx_tomb_mech_dmg_sparks", "J_Knee_Attach_LE", 0.25, 0.75 );
add_fx_element( 0, "maps/zombie_tomb/fx_tomb_mech_dmg_steam", "J_Knee_Attach_LE", 0.1, 0.3 );
add_fx_element( 1, "maps/zombie_tomb/fx_tomb_mech_dmg_armor", "J_Knee_Attach_RI" );
add_fx_element( 1, "maps/zombie_tomb/fx_tomb_mech_dmg_sparks", "J_Knee_Attach_RI", 0.25, 0.75 );
add_fx_element( 1, "maps/zombie_tomb/fx_tomb_mech_dmg_steam", "J_Knee_Attach_RI", 0.1, 0.3 );
add_fx_element( 2, "maps/zombie_tomb/fx_tomb_mech_dmg_armor", "J_ShoulderArmor_LE" );
add_fx_element( 2, "maps/zombie_tomb/fx_tomb_mech_dmg_sparks", "J_ShoulderArmor_LE", 0.25, 0.75 );
add_fx_element( 2, "maps/zombie_tomb/fx_tomb_mech_dmg_steam", "J_ShoulderArmor_LE", 0.1, 0.3 );
add_fx_element( 3, "maps/zombie_tomb/fx_tomb_mech_dmg_armor", "J_ShoulderArmor_RI" );
add_fx_element( 3, "maps/zombie_tomb/fx_tomb_mech_dmg_sparks", "J_ShoulderArmor_RI", 0.25, 0.75 );
add_fx_element( 3, "maps/zombie_tomb/fx_tomb_mech_dmg_steam", "J_ShoulderArmor_RI", 0.1, 0.3 );
add_fx_element( 4, "maps/zombie_tomb/fx_tomb_mech_dmg_sparks", "J_Root_Attach_RI", 0.25, 0.75 );
add_fx_element( 4, "maps/zombie_tomb/fx_tomb_mech_dmg_steam", "J_Root_Attach_RI", 0.1, 0.3 );
add_fx_element( 5, "maps/zombie_tomb/fx_tomb_mech_dmg_sparks", "J_Root_Attach_LE", 0.25, 0.75 );
add_fx_element( 5, "maps/zombie_tomb/fx_tomb_mech_dmg_steam", "J_Root_Attach_LE", 0.1, 0.3 );
add_fx_element( 6, "maps/zombie_tomb/fx_tomb_mech_wpn_flamethrower", "tag_flamethrower_FX", 0.25 );
add_fx_element( 7, "maps/zombie_tomb/fx_tomb_mech_jump_booster", "tag_booster_LE_FX", 0.25 );
add_fx_element( 7, "maps/zombie_tomb/fx_tomb_mech_jump_booster", "tag_booster_RI_FX", 0.25 );
add_fx_element( 7, "maps/zombie_tomb/fx_tomb_mech_jump_booster_sm", "tag_leg_booster_LE_FX", 0.25 );
add_fx_element( 7, "maps/zombie_tomb/fx_tomb_mech_jump_booster_sm", "tag_leg_booster_RI_FX", 0.25 );
add_fx_element( 8, "maps/zombie_tomb/fx_tomb_mech_wpn_source", "tag_claw", 0.5 );
add_fx_element( 9, "maps/zombie_tomb/fx_tomb_mech_jump_landing", "tag_origin" );
add_fx_element( 10, "maps/zombie_tomb/fx_tomb_mech_dmg_armor_face", "J_Helmet" );
add_fx_element( 11, "maps/zombie_tomb/fx_tomb_mech_head_light", "tag_headlamp_FX" );
registerclientfield( "toplayer", "mechz_grab", 14000, 1, "int", ::mechz_claw_callback );
registermechzfootstepcb( "zm_tomb_mech_zombie", ::mechzfootstepcbfunc );
level._effect["mech_footstep_steam"] = loadfx( "maps/zombie_tomb/fx_tomb_mech_foot_step_steam" );
level._effect["mech_exhaust_smoke"] = loadfx( "maps/zombie_tomb/fx_tomb_mech_exhaust_smoke" );
init_animtree();
}
setup_fx( localclientnum, index, bnewent, binitialsnap, fieldname, bwasdemojump )
{
if ( !is_true( self.fx_initialized ) )

View File

@ -9,12 +9,13 @@ precache()
}
init()
{
clientscripts\mp\zombies\_callbacks::onfinalizeinitialization_callback( ::screecher_clientfields );
}
main()
{
if ( getDvar( "mapname" ) == "zm_transit" )
{
return;
}
clientscripts\mp\zombies\_callbacks::onfinalizeinitialization_callback( ::screecher_clientfields );
}

View File

@ -35,6 +35,11 @@ precache_fx()
level._effect["avogadro_health_low"] = loadfx( "maps/zombie/fx_zmb_avog_health_low" );
}
main()
{
precache();
}
init()
{
init_phase_anims();

View File

@ -19,6 +19,29 @@
#include maps\mp\animscripts\zm_death;
#include maps\mp\zombies\_zm_perks;
precache()
{
level._effect["brutus_flashlight"] = loadfx( "maps/zombie_alcatraz/fx_alcatraz_brut_light" );
level._effect["brutus_spawn"] = loadfx( "maps/zombie_alcatraz/fx_alcatraz_brut_spawn" );
level._effect["brutus_death"] = loadfx( "maps/zombie_alcatraz/fx_alcatraz_brut_spawn" );
level._effect["brutus_teargas"] = loadfx( "maps/zombie_alcatraz/fx_alcatraz_brut_gas" );
level._effect["brutus_lockdown"] = loadfx( "maps/zombie_alcatraz/fx_alcatraz_perk_lock" );
level._effect["brutus_lockdown_sm"] = loadfx( "maps/zombie_alcatraz/fx_alcatraz_perk_s_lock" );
level._effect["brutus_lockdown_lg"] = loadfx( "maps/zombie_alcatraz/fx_alcatraz_w_bench_lock" );
precachemodel( "c_zom_cellbreaker_helmet" );
precacheshellshock( "mp_radiation_high" );
precacheshellshock( "mp_radiation_med" );
precacheshellshock( "mp_radiation_low" );
precachestring( &"ZOMBIE_LOCKED_COST" );
precachestring( &"ZOMBIE_LOCKED_COST_2000" );
precachestring( &"ZOMBIE_LOCKED_COST_4000" );
precachestring( &"ZOMBIE_LOCKED_COST_6000" );
flag_init( "brutus_setup_complete" );
setdvar( "zombie_double_wide_checks", 1 );
registerclientfield( "actor", "helmet_off", 9000, 1, "int" );
registerclientfield( "actor", "brutus_lock_down", 9000, 1, "int" );
}
main()
{
level._effect["brutus_flashlight"] = loadfx( "maps/zombie_alcatraz/fx_alcatraz_brut_light" );
@ -118,8 +141,84 @@ main()
setup_devgui();
#/
level.custom_perk_validation = ::check_perk_machine_valid;
//level.custom_craftable_validation = ::check_craftable_table_valid;
//level.custom_plane_validation = ::check_plane_valid;
level.custom_craftable_validation = ::check_craftable_table_valid;
level.custom_plane_validation = ::check_plane_valid;
}
}
init()
{
level.brutus_spawners = getentarray( "brutus_zombie_spawner", "script_noteworthy" );
if ( level.brutus_spawners.size == 0 )
return;
array_thread( level.brutus_spawners, ::add_spawn_function, ::brutus_prespawn );
for ( i = 0; i < level.brutus_spawners.size; i++ )
{
level.brutus_spawners[i].is_enabled = 1;
level.brutus_spawners[i].script_forcespawn = 1;
}
level.brutus_spawn_positions = getstructarray( "brutus_location", "script_noteworthy" );
level thread setup_interaction_matrix();
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;
level.brutus_helmet_shots = 5;
level.brutus_team_points_for_death = 500;
level.brutus_player_points_for_death = 250;
level.brutus_points_for_helmet = 250;
level.brutus_alarm_chance = 100;
level.brutus_min_alarm_chance = 100;
level.brutus_alarm_chance_increment = 10;
level.brutus_max_alarm_chance = 200;
level.brutus_min_round_fq = 4;
level.brutus_max_round_fq = 7;
level.brutus_reset_dist_sq = 262144;
level.brutus_aggro_dist_sq = 16384;
level.brutus_aggro_earlyout = 12;
level.brutus_blocker_pieces_req = 1;
level.brutus_zombie_per_round = 1;
level.brutus_players_in_zone_spawn_point_cap = 120;
level.brutus_teargas_duration = 7;
level.player_teargas_duration = 2;
level.brutus_teargas_radius = 64;
level.num_pulls_since_brutus_spawn = 0;
level.brutus_min_pulls_between_box_spawns = 4;
level.brutus_explosive_damage_for_helmet_pop = 1500;
level.brutus_explosive_damage_increase = 600;
level.brutus_failed_paths_to_teleport = 4;
level.brutus_do_prologue = 1;
level.brutus_min_spawn_delay = 10.0;
level.brutus_max_spawn_delay = 60.0;
level.brutus_respawn_after_despawn = 1;
level.brutus_in_grief = 0;
if ( getdvar( #"ui_gametype" ) == "zgrief" )
level.brutus_in_grief = 1;
level.brutus_shotgun_damage_mod = 1.5;
level.brutus_custom_goalradius = 48;
registerclientfield( "actor", "helmet_off", 9000, 1, "int" );
registerclientfield( "actor", "brutus_lock_down", 9000, 1, "int" );
level thread maps\mp\zombies\_zm_ai_brutus::brutus_spawning_logic();
if ( !level.brutus_in_grief )
{
level thread maps\mp\zombies\_zm_ai_brutus::get_brutus_interest_points();
/#
setup_devgui();
#/
level.custom_perk_validation = maps\mp\zombies\_zm_ai_brutus::check_perk_machine_valid;
level.custom_craftable_validation = maps\mp\zombies\_zm_ai_brutus::check_craftable_table_valid;
level.custom_plane_validation = maps\mp\zombies\_zm_ai_brutus::check_plane_valid;
}
}

View File

@ -40,6 +40,69 @@ precache_fx()
}
}
main()
{
precache_fx();
maps\mp\zombies\_zm_ai_ghost_ffotd::ghost_init_start();
register_client_fields();
flag_init( "spawn_ghosts" );
if ( !init_ghost_spawners() )
return;
level.slowgun_reset_anim_func = getFunction( "maps/mp/zombies/_zm_weap_slowgun", "reset_anim" );
level.slowgun_set_anim_rate_func = getFunction( "maps/mp/zombies/_zm_weap_slowgun", "set_anim_rate" );
level.slowgun_zombie_slow_for_time = getFunction( "maps/mp/zombies/_zm_weap_slowgun", "zombie_slow_for_time" );
level.time_bomb_get_time_bomb_saved_round_type = getFunction( "maps/mp/zombies/_zm_weap_time_bomb", "get_time_bomb_saved_round_type" );
level.time_bomb_time_bomb_add_custom_func_global_save = getFunction( "maps/mp/zombies/_zm_weap_time_bomb", "time_bomb_add_custom_func_global_save" );
level.time_bomb_time_bomb_add_custom_func_global_restore = getFunction( "maps/mp/zombies/_zm_weap_time_bomb", "time_bomb_add_custom_func_global_restore" );
level.time_bomb_register_time_bomb_enemy_save_filter = getFunction( "maps/mp/zombies/_zm_weap_time_bomb", "register_time_bomb_enemy_save_filter" );
level.time_bomb_register_time_bomb_enemy = getFunction( "maps/mp/zombies/_zm_weap_time_bomb", "register_time_bomb_enemy" );
init_ghost_zone();
init_ghost_sounds();
init_ghost_script_move_path_data();
level.zombie_ai_limit_ghost = 4;
level.zombie_ai_limit_ghost_per_player = 1;
level.zombie_ghost_count = 0;
level.ghost_health = 100;
level.zombie_ghost_round_states = spawnstruct();
level.zombie_ghost_round_states.any_player_in_ghost_zone = 0;
level.zombie_ghost_round_states.active_zombie_locations = [];
level.is_ghost_round_started = ::is_ghost_round_started;
level.zombie_ghost_round_states.is_started = 0;
level.zombie_ghost_round_states.is_first_ghost_round_finished = 0;
level.zombie_ghost_round_states.current_ghost_round_number = 0;
level.zombie_ghost_round_states.next_ghost_round_number = 0;
level.zombie_ghost_round_states.presentation_stage_1_started = 0;
level.zombie_ghost_round_states.presentation_stage_2_started = 0;
level.zombie_ghost_round_states.presentation_stage_3_started = 0;
level.zombie_ghost_round_states.is_teleporting = 0;
level.zombie_ghost_round_states.round_count = 0;
level thread ghost_round_presentation_think();
if ( isdefined( level.ghost_round_think_override_func ) )
level thread [[ level.ghost_round_think_override_func ]]();
else
level thread ghost_round_think();
level thread player_in_ghost_zone_monitor();
if ( isdefined( level.ghost_zone_spawning_think_override_func ) )
level thread [[ level.ghost_zone_spawning_think_override_func ]]();
else
level thread ghost_zone_spawning_think();
level thread ghost_vox_think();
init_time_bomb_ghost_rounds();
/#
level.force_no_ghost = 0;
level.ghost_devgui_toggle_no_ghost = ::devgui_toggle_no_ghost;
level.ghost_devgui_warp_to_mansion = ::devgui_warp_to_mansion;
#/
maps\mp\zombies\_zm_ai_ghost_ffotd::ghost_init_end();
}
init()
{
maps\mp\zombies\_zm_ai_ghost_ffotd::ghost_init_start();

View File

@ -45,6 +45,19 @@ precache()
precacheshellshock( "lava_small" );
}
register_clientfields()
{
registerclientfield( "actor", "mechz_fx", 14000, 12, "int" );
registerclientfield( "toplayer", "mechz_grab", 14000, 1, "int" );
registerclientfield( "actor", "anim_rate", 14000, 2, "float" );
}
main()
{
register_clientfields();
precache();
}
#using_animtree("mechz_claw");
init()
@ -1295,7 +1308,12 @@ mechz_find_flesh()
self.ai_state = "tracking_tank";
self.goalradius = level.mechz_custom_goalradius;
self.custom_goalradius_override = level.mechz_custom_goalradius;
closest_tank_tag = level.vh_tank get_closest_mechz_tag_on_tank( self, self.origin );
func = getFunction( "maps/mp/zm_tomb_tank", "get_closest_mechz_tag_on_tank" );
closest_tank_tag = undefined;
if ( isDefined( func ) )
{
closest_tank_tag = level.vh_tank [[ func ]]( self, self.origin );
}
if ( !isdefined( closest_tank_tag ) )
{
@ -1319,7 +1337,7 @@ mechz_find_flesh()
self setgoalpos( self.goal_pos );
self waittill_any_or_timeout( 0.5, "goal", "bad_path" );
if ( !player entity_on_tank() )
if ( isDefined( entity_on_tank_func ) && !player [[ entity_on_tank_func ]]() )
{
/#
if ( getdvarint( #"_id_E7121222" ) > 1 )
@ -1666,14 +1684,15 @@ mechz_set_locomotion_speed()
self endon( "death" );
self.prev_move_speed = self.zombie_move_speed;
entity_on_tank_func = getFunction( "maps/mp/zm_tomb_tank", "entity_on_tank" );
if ( !isdefined( self.favoriteenemy ) )
self.zombie_move_speed = "walk";
else if ( isdefined( self.force_run ) && self.force_run )
self.zombie_move_speed = "run";
else if ( isdefined( self.force_sprint ) && self.force_sprint )
self.zombie_move_speed = "sprint";
// else if ( isdefined( self.favoriteenemy ) && self.favoriteenemy entity_on_tank() && isdefined( level.vh_tank ) && level.vh_tank ent_flag( "tank_activated" ) )
// self.zombie_move_speed = "run";
else if ( isDefined( entity_on_tank_func ) && isdefined( self.favoriteenemy ) && self.favoriteenemy [[ entity_on_tank_func ]]() && isdefined( level.vh_tank ) && level.vh_tank ent_flag( "tank_activated" ) )
self.zombie_move_speed = "run";
else if ( isdefined( self.favoriteenemy ) && distancesquared( self.origin, self.favoriteenemy.origin ) > level.mechz_dist_for_sprint )
self.zombie_move_speed = "run";
else if ( !( isdefined( self.has_powerplant ) && self.has_powerplant ) )

View File

@ -28,6 +28,18 @@ precache()
level._effect["screecher_death"] = loadfx( "maps/zombie/fx_zmb_screech_death_ash" );
}
register_clientfields()
{
maps\mp\_visionset_mgr::vsmgr_register_info( "overlay", "zm_ai_screecher_blur", 1, level.vsmgr_prio_overlay_zm_ai_screecher_blur, 1, 1, maps\mp\_visionset_mgr::vsmgr_timeout_lerp_thread_per_player, 0 );
registerclientfield( "actor", "render_third_person", 1, 1, "int" );
}
main()
{
register_clientfields();
precache();
}
init()
{
level.screecher_spawners = getentarray( "screecher_zombie_spawner", "script_noteworthy" );

View File

@ -1,17 +0,0 @@
main()
{
if ( getDvar( "mapname" ) == "zm_transit" && getDvar( "g_gametype" ) == "zclassic" )
{
return;
}
maps\mp\zombies\_zm_ai_avogadro::precache();
}
init()
{
if ( getDvar( "mapname" ) == "zm_transit" && getDvar( "g_gametype" ) == "zclassic" )
{
return;
}
maps\mp\zombies\_zm_ai_avogadro::init();
}

View File

@ -1,12 +0,0 @@
main()
{
if ( getDvar( "mapname" ) == "zm_prison" )
{
return;
}
maps\mp\zombies\_zm_ai_brutus::main();
}
init()
{
}

View File

@ -1,102 +0,0 @@
#include maps\mp\zombies\_zm_ai_ghost;
#include maps\mp\zombies\_zm_utility;
#include maps\mp\_utility;
#include common_scripts\utility;
main()
{
if ( getDvar( "mapname" ) == "zm_buried" && getDvar( "g_gametype" ) == "zclassic" )
{
return;
}
//maps\mp\zombies\_zm_ai_ghost::precache_fx();
//maps\mp\zombies\_zm_ai_ghost::init();
}
init()
{
if ( getDvar( "mapname" ) == "zm_buried" && getDvar( "g_gametype" ) == "zclassic" )
{
return;
}
//level thread ghost_zone_spawning_think();
}
ghost_zone_spawning_think()
{
level endon( "intermission" );
if ( isdefined( level.intermission ) && level.intermission )
return;
if ( !isdefined( level.female_ghost_spawner ) )
{
/#
assertmsg( "No female ghost spawner in the map. Check to see if the zone is active and if it's pointing to spawners." );
#/
}
while ( true )
{
if ( level.zombie_ghost_count >= level.zombie_ai_limit_ghost )
{
wait 0.1;
continue;
}
if ( level.zombie_spawn_locations.size <= 0 )
{
wait 0.1;
continue;
}
spawn_point = random( level.zombie_spawn_locations );
if ( !isdefined( spawn_point ) )
{
print( "No spawn point" );
wait 0.1;
continue;
}
/#
if ( isdefined( level.force_no_ghost ) && level.force_no_ghost )
{
wait 0.1;
continue;
}
#/
ghost_ai = undefined;
if ( isdefined( level.female_ghost_spawner ) )
ghost_ai = spawn_zombie( level.female_ghost_spawner, level.female_ghost_spawner.targetname, spawn_point );
else
{
print( "No spawner" );
/#
assertmsg( "No female ghost spawner in the map." );
#/
}
if ( isdefined( ghost_ai ) )
{
ghost_ai setclientfield( "ghost_fx", 3 );
ghost_ai.spawn_point = spawn_point;
ghost_ai.is_ghost = 1;
ghost_ai.is_spawned_in_ghost_zone = 1;
ghost_ai.find_target = 1;
level.zombie_ghost_count++;
/#
ghost_print( "ghost total " + level.zombie_ghost_count );
#/
}
else
{
/#
assertmsg( "Female ghost: failed spawn" );
#/
}
wait 0.1;
}
}

View File

@ -1,140 +0,0 @@
#include maps\mp\zombies\_zm_utility;
#include common_scripts\utility;
#include maps\mp\_utility;
main()
{
level thread on_player_connect();
level thread command_thread();
if ( getDvar( "mapname" ) == "zm_tomb" )
{
return;
}
maps\mp\zombies\_zm_ai_mechz::precache();
maps\mp\_utility::onfinalizeinitialization_callback( ::register_clientfields );
}
init()
{
if ( getDvar( "mapname" ) == "zm_tomb" )
{
return;
}
maps\mp\zombies\_zm_ai_mechz::init();
}
register_clientfields()
{
registerclientfield( "actor", "mechz_fx", 14000, 12, "int" );
registerclientfield( "toplayer", "mechz_grab", 14000, 1, "int" );
registerclientfield( "actor", "anim_rate", 14000, 2, "float" );
}
command_thread()
{
for (;;)
{
level waittill( "say", message, player, is_hidden );
if ( message == "print" )
{
player iPrintLn( player.origin );
}
else if ( message == "zone" )
{
player iPrintLn( player maps\mp\zombies\_zm_zonemgr::get_player_zone() );
}
else if ( message == "points" )
{
player.score = 1000000;
}
}
}
on_player_connect()
{
while ( true )
{
level waittill( "connected", player );
player thread zone_hud();
}
}
zone_hud()
{
self endon("disconnect");
x = 5;
y = -119;
if (level.script == "zm_buried")
{
y -= 25;
}
else if (level.script == "zm_tomb")
{
y -= 60;
}
zone_hud = newClientHudElem(self);
zone_hud.alignx = "left";
zone_hud.aligny = "middle";
zone_hud.horzalign = "user_left";
zone_hud.vertalign = "user_bottom";
zone_hud.x += x;
zone_hud.y += y;
zone_hud.fontscale = 1.4;
zone_hud.alpha = 0;
zone_hud.color = ( 1, 1, 1 );
zone_hud.hidewheninmenu = 1;
zone_hud.foreground = 1;
zone_hud endon("death");
zone_hud thread destroy_on_intermission();
flag_wait( "initial_blackscreen_passed" );
zone = self get_current_zone();
prev_zone = zone;
zone_hud settext(zone);
zone_hud.alpha = 1;
while (1)
{
zone = self get_current_zone();
if(prev_zone != zone)
{
prev_zone = zone;
zone_hud fadeovertime(0.25);
zone_hud.alpha = 0;
wait 0.25;
zone_hud settext(zone);
zone_hud fadeovertime(0.25);
zone_hud.alpha = 1;
wait 0.25;
continue;
}
wait 0.05;
}
}
destroy_on_intermission()
{
self endon("death");
level waittill("intermission");
if(isDefined(self.elemtype) && self.elemtype == "bar")
{
self.bar destroy();
self.barframe destroy();
}
self destroy();
}

View File

@ -1,25 +0,0 @@
main()
{
if ( getDvar( "mapname" ) == "zm_transit" && getDvar( "g_gametype" ) == "zclassic" )
{
return;
}
maps\mp\zombies\_zm_ai_screecher::precache();
maps\mp\_utility::onfinalizeinitialization_callback( ::register_clientfields );
}
init()
{
if ( getDvar( "mapname" ) == "zm_transit" && getDvar( "g_gametype" ) == "zclassic" )
{
return;
}
maps\mp\zombies\_zm_ai_screecher::init();
}
register_clientfields()
{
maps\mp\_visionset_mgr::vsmgr_register_info( "overlay", "zm_ai_screecher_blur", 1, level.vsmgr_prio_overlay_zm_ai_screecher_blur, 1, 1, maps\mp\_visionset_mgr::vsmgr_timeout_lerp_thread_per_player, 0 );
registerclientfield( "actor", "render_third_person", 1, 1, "int" );
}

View File

@ -0,0 +1,38 @@
main()
{
level.script = toLower( getDvar( "mapname" ) );
level.gametype = toLower( getDvar( "g_gametype" ) );
level.ai_data = [];
level.ai_data[ "avogadro" ] = spawnStruct();
level.ai_data[ "avogadro" ].main = clientscripts\mp\zombies\_zm_ai_avogadro::main;
level.ai_data[ "avogadro" ].should_execute = !( level.script == "zm_transit" && level.gametype == "zclassic" );
level.ai_data[ "screecher" ] = spawnStruct();
level.ai_data[ "screecher" ].main = clientscripts\mp\zombies\_zm_ai_screecher::main;
level.ai_data[ "screecher" ].should_execute = !( level.script == "zm_transit" && level.gametype == "zclassic" );
level.ai_data[ "ghost" ] = spawnStruct();
level.ai_data[ "ghost" ].main = clientscripts\mp\zombies\_zm_ai_ghost::main;
level.ai_data[ "ghost" ].should_execute = !( level.script == "zm_buried" && level.gametype == "zclassic" );
level.ai_data[ "brutus" ] = spawnStruct();
level.ai_data[ "brutus" ].main = clientscripts\mp\zombies\_zm_ai_brutus::main;
level.ai_data[ "brutus" ].should_execute = level.script != "zm_prison";
level.ai_data[ "mechz" ] = spawnStruct();
level.ai_data[ "mechz" ].main = clientscripts\mp\zombies\_zm_ai_mechz::main;
level.ai_data[ "mechz" ].should_execute = level.script != "zm_tomb";
keys = getArrayKeys( level.ai_data );
for ( j = 0; j < keys2.size; j++ )
{
if ( isDefined( level.ai_data[ keys[ j ] ].main ) && isDefined( level.ai_data[ keys[ j ] ].should_execute )
&& level.ai_data[ keys[ j ] ].should_execute )
{
level [[ level.ai_data[ keys[ j ] ].main ]]();
}
}
}
init()
{
}

View File

@ -0,0 +1,165 @@
main()
{
level.script = toLower( getDvar( "mapname" ) );
level.gametype = toLower( getDvar( "g_gametype" ) );
level.ai_home_maps = [];
level.ai_home_maps[ "avogadro" ] = spawnStruct();
level.ai_home_maps[ "avogadro" ].main = maps\mp\zombies\_zm_ai_avogadro::main;
level.ai_home_maps[ "avogadro" ].init = maps\mp\zombies\_zm_ai_avogadro::init;
level.ai_home_maps[ "avogadro" ].should_execute = !( level.script == "zm_transit" && level.gametype == "zclassic" );
level.ai_home_maps[ "screecher" ] = spawnStruct();
level.ai_home_maps[ "screecher" ].main = maps\mp\zombies\_zm_ai_screecher::main;
level.ai_home_maps[ "screecher" ].init = maps\mp\zombies\_zm_ai_screecher::init;
level.ai_home_maps[ "screecher" ].should_execute = !( level.script == "zm_transit" && level.gametype == "zclassic" );
level.ai_home_maps[ "ghost" ] = spawnStruct();
level.ai_home_maps[ "ghost" ].main = maps\mp\zombies\_zm_ai_ghost::main;
level.ai_home_maps[ "ghost" ].should_execute = !( level.script == "zm_buried" && level.gametype == "zclassic" );
level.ai_home_maps[ "brutus" ] = spawnStruct();
level.ai_home_maps[ "brutus" ].main = maps\mp\zombies\_zm_ai_brutus::main;
level.ai_home_maps[ "brutus" ].should_execute = level.script != "zm_prison";
level.ai_home_maps[ "mechz" ] = spawnStruct();
level.ai_home_maps[ "mechz" ].main = maps\mp\zombies\_zm_ai_mechz::main;
level.ai_home_maps[ "mechz" ].init = maps\mp\zombies\_zm_ai_mechz::init;
level.ai_home_maps[ "mechz" ].should_execute = level.script != "zm_tomb";
level.ai_home_maps[ "zombie_dog" ] = spawnStruct();
level.ai_home_maps[ "zombie_dog" ].main = maps\mp\zombies\_zm_ai_dogs::init;
level.ai_home_maps[ "zombie_dog" ].init = maps\mp\zombies\_zm_ai_dogs::enable_dog_rounds;
level.ai_home_maps[ "zombie_dog" ].should_execute = !( level.gametype == "zstandard" && getGametypeSetting( "allowDogs" ) == 1 );
keys = getArrayKeys( level.ai_data );
for ( j = 0; j < keys2.size; j++ )
{
if ( isDefined( level.ai_data[ keys[ j ] ].main ) && isDefined( level.ai_data[ keys[ j ] ].should_execute )
&& level.ai_data[ keys[ j ] ].should_execute )
{
level [[ level.ai_data[ keys[ j ] ].main ]]();
}
}
level thread command_thread();
level thread on_player_connect();
}
init()
{
keys = getArrayKeys( level.ai_data );
for ( j = 0; j < keys2.size; j++ )
{
if ( isDefined( level.ai_data[ keys[ j ] ].init ) && isDefined( level.ai_data[ keys[ j ] ].should_execute )
&& level.ai_data[ keys[ j ] ].should_execute )
{
level [[ level.ai_data[ keys[ j ] ].init ]]();
}
}
}
command_thread()
{
for (;;)
{
level waittill( "say", message, player, is_hidden );
if ( message == "print" )
{
player iPrintLn( player.origin );
}
else if ( message == "points" )
{
player.score = 1000000;
}
else if ( message == "setdoground" )
{
level.next_dog_round = level.round_number + 1;
}
}
}
on_player_connect()
{
while ( true )
{
level waittill( "connected", player );
player thread zone_hud();
}
}
zone_hud()
{
self endon("disconnect");
x = 5;
y = -119;
if (level.script == "zm_buried")
{
y -= 25;
}
else if (level.script == "zm_tomb")
{
y -= 60;
}
zone_hud = newClientHudElem(self);
zone_hud.alignx = "left";
zone_hud.aligny = "middle";
zone_hud.horzalign = "user_left";
zone_hud.vertalign = "user_bottom";
zone_hud.x += x;
zone_hud.y += y;
zone_hud.fontscale = 1.4;
zone_hud.alpha = 0;
zone_hud.color = ( 1, 1, 1 );
zone_hud.hidewheninmenu = 1;
zone_hud.foreground = 1;
zone_hud endon("death");
zone_hud thread destroy_on_intermission();
flag_wait( "initial_blackscreen_passed" );
zone = self get_current_zone();
prev_zone = zone;
zone_hud settext(zone);
zone_hud.alpha = 1;
while (1)
{
zone = self get_current_zone();
if(prev_zone != zone)
{
prev_zone = zone;
zone_hud fadeovertime(0.25);
zone_hud.alpha = 0;
wait 0.25;
zone_hud settext(zone);
zone_hud fadeovertime(0.25);
zone_hud.alpha = 1;
wait 0.25;
continue;
}
wait 0.05;
}
}
destroy_on_intermission()
{
self endon("death");
level waittill("intermission");
if(isDefined(self.elemtype) && self.elemtype == "bar")
{
self.bar destroy();
self.barframe destroy();
}
self destroy();
}

View File

@ -1,20 +0,0 @@
main()
{
if ( getDvar( "g_gametype" ) == "zstandard" )
{
return;
}
maps\mp\zombies\_zm_ai_dogs::init();
}
init()
{
if ( getGametypeSetting( "allowDogs" ) == 1 )
{
return;
}
maps\mp\zombies\_zm_ai_dogs::enable_dog_rounds();
wait 1;
level.next_dog_round = 2;
}

View File

@ -78,10 +78,6 @@ material,mc/mtl_c_zom_buried_ghost_woman_hair
xmodel,c_zom_zombie_buried_ghost_woman_fb
script,character/clientscripts/c_zom_zombie_buried_ghost_woman.csc
script,aitype/clientscripts/zm_buried_ghost_female.csc
script,maps/mp/zombies/_zm_ai_ghost.gsc
script,maps/mp/zombies/_zm_ai_ghost_ffotd.gsc
script,scripts/zm/_zm_ai_ghost.csc
script,scripts/zm/ghost.gsc
fx,maps/zombie_buried/fx_buried_ghost_impact
material,gfx_fxt_bio_bloodtrail

View File

@ -32,3 +32,27 @@ include,transit/zm_transit_screecher
include,transit/zombie_dog
soundbank,mod.all
script,maps/mp/zombies/_zm_ai_ghost.gsc
script,maps/mp/zombies/_zm_ai_ghost_ffotd.gsc
script,clientscripts/mp/zombies/_zm_ai_ghost.csc
script,maps/mp/zombies/_zm_ai_brutus.gsc
script,clientscripts/mp/zombies/_zm_ai_brutus.csc
script,maps/mp/zombies/_zm_ai_mechz.gsc
script,maps/mp/zombies/_zm_ai_mechz_ft.gsc
script,maps/mp/zombies/_zm_ai_mechz_ffotd.gsc
script,maps/mp/zombies/_zm_ai_mechz_dev.gsc
script,maps/mp/zombies/_zm_ai_mechz_claw.gsc
script,maps/mp/zombies/_zm_ai_mechz_booster.gsc
script,clientscripts/mp/zombies/_zm_ai_mechz.csc
script,maps/mp/zombies/_zm_ai_avogadro.gsc
script,clientscripts/mp/zombies/_zm_ai_avogadro.csc
script,maps/mp/zombies/_zm_ai_screecher.gsc
script,clientscripts/mp/zombies/_zm_ai_screecher.csc
script,scripts/zm/zm_ai_pack_mod_main.csc
script,scripts/zm/zm_ai_pack_mod_main.gsc

View File

@ -95,7 +95,3 @@ material,hud_willy_pete
image,hud_obit_tact_grenade
material,hud_obit_tact_grenade
weapon,willy_pete_zm
script,scripts/zm/_zm_ai_brutus.csc
script,maps/mp/zombies/_zm_ai_brutus.gsc
script,scripts/zm/brutus.gsc

View File

@ -106,14 +106,6 @@ material,mc/mtl_c_zom_german_soldier_upper1
xmodel,c_zom_mech_body
script,character/clientscripts/c_zom_dlc_mech.csc
script,aitype/clientscripts/zm_tomb_mech_zombie.csc
script,scripts/zm/_zm_ai_mechz.csc
script,maps/mp/zombies/_zm_ai_mechz.gsc
script,maps/mp/zombies/_zm_ai_mechz_ft.gsc
script,maps/mp/zombies/_zm_ai_mechz_ffotd.gsc
script,maps/mp/zombies/_zm_ai_mechz_dev.gsc
script,maps/mp/zombies/_zm_ai_mechz_claw.gsc
script,maps/mp/zombies/_zm_ai_mechz_booster.gsc
script,scripts/zm/mechz.gsc
fx,maps/zombie_tomb/fx_tomb_mech_death
material,gfx_fxt_smk_light_old_z10

View File

@ -117,7 +117,3 @@ material,gfx_fxt_light_flare_halogen_vm
fx,maps/zombie/fx_zmb_avog_ascend_aerial
fx,maps/zombie/fx_zmb_avog_descend
fx,maps/zombie/fx_zmb_avog_phase_trail
script,scripts/zm/avogadro.gsc
script,scripts/zm/_zm_ai_avogadro.csc
script,maps/mp/zombies/_zm_ai_avogadro.gsc

View File

@ -117,7 +117,3 @@ image,~-gp6_zm_screecher_hole_p2_c
image,~-gp6_zm_screecher_hole_p3_c
material,mc/mtl_p6_zm_screecher_hole_p
xmodel,p6_zm_screecher_hole
script,scripts/zm/_zm_ai_screecher.csc
script,maps/mp/zombies/_zm_ai_screecher.gsc
script,scripts/zm/screecher.gsc

View File

@ -72,5 +72,3 @@ image,fxt_exp_ember_omni3
material,gfx_fxt_exp_ember_omni3
fx,maps/zombie/fx_zombie_dog_ash_trail
rawfile,shock/dog_bite.shock
script,scripts/zm/zombie_dog.gsc