diff --git a/zm_ai_pack/maps/mp/zm_nuked.d3dbsp b/zm_ai_pack/maps/mp/zm_nuked.d3dbsp index bf121e0..a849461 100644 --- a/zm_ai_pack/maps/mp/zm_nuked.d3dbsp +++ b/zm_ai_pack/maps/mp/zm_nuked.d3dbsp @@ -77,7 +77,7 @@ "script_disable_bleeder" "1" "script_forcespawn" "1" "count" "9999" -"origin" "0 0 0" +"origin" "75 100 -500" "guid" "16872E72" } { @@ -3592,7 +3592,7 @@ "model" "zombie_wolf" "export" "4" "spawnflags" "17" -"origin" "0 0 0" +"origin" "50 100 -500" "script_noteworthy" "zombie_dog_spawner2" "guid" "B357A2C8" } @@ -3681,7 +3681,7 @@ "guid" "E4BDEA76" } { -"origin" "32 0 0" +"origin" "50 200 -500" "script_disable_bleeder" "1" "script_noteworthy" "zombie_spawner" "spawnflags" "3" @@ -10936,7 +10936,7 @@ "spawnflags" "3" "script_noteworthy" "zombie_spawner_beyes" "script_disable_bleeder" "1" -"origin" "80 0 0" +"origin" "0 200 -500" "guid" "AFF50659" } { @@ -10948,7 +10948,7 @@ "spawnflags" "3" "script_noteworthy" "zombie_spawner_beyes" "script_disable_bleeder" "1" -"origin" "56 0 0" +"origin" "25 200 -500" "guid" "0968B92C" } { @@ -11317,7 +11317,7 @@ "guid" "9BCBE462" } { -"origin" "-6 194 4088" +"origin" "25 100 -500" "export" "1" "model" "veh_t6_dlc_zm_mech" "classname" "actor_zm_tomb_mech_zombie" @@ -11326,16 +11326,84 @@ "guid" "8115A178" } { -"_color" "0.752941 0.752941 0.752941" "targetname" "culdesac_yellow_zone_spawners" "script_noteworthy" "mechz_location" -"origin" "--529 34 -46.875" +"origin" "-442 873 -63" "classname" "script_struct" -"angles" "0 6.83245e-007 0" -"guid" "2AD5B9FE" +"angles" "0 0 0" } { -"origin" "-64 0 0" +"targetname" "culdesac_yellow_zone_spawners" +"script_noteworthy" "mechz_location" +"origin" "359 733 -61" +"classname" "script_struct" +"angles" "0 0 0" +} +{ +"targetname" "culdesac_yellow_zone_spawners" +"script_noteworthy" "mechz_location" +"origin" "386 18 -44" +"classname" "script_struct" +"angles" "0 0 0" +} +{ +"targetname" "culdesac_yellow_zone_spawners" +"script_noteworthy" "mechz_location" +"origin" "177 -220 -49" +"classname" "script_struct" +"angles" "0 0 0" +} +{ +"targetname" "culdesac_green_zone_spawners" +"script_noteworthy" "mechz_location" +"origin" "-510 29 -46" +"classname" "script_struct" +"angles" "0 0 0" +} +{ +"targetname" "openhouse1_f2_zone_spawners" +"script_noteworthy" "mechz_location" +"origin" "-869 371 88" +"classname" "script_struct" +"angles" "0 0 0" +} +{ +"targetname" "openhouse1_backyard_zone_spawners" +"script_noteworthy" "mechz_location" +"origin" "-1227 71 -64" +"classname" "script_struct" +"angles" "0 0 0" +} +{ +"targetname" "openhouse1_backyard_zone_spawners" +"script_noteworthy" "mechz_location" +"origin" "-1536 934 -63" +"classname" "script_struct" +"angles" "0 0 0" +} +{ +"targetname" "openhouse1_f1_zone_spawners" +"script_noteworthy" "mechz_location" +"origin" "882 381 97" +"classname" "script_struct" +"angles" "0 0 0" +} +{ +"targetname" "openhouse2_backyard_zone_spawners" +"script_noteworthy" "mechz_location" +"origin" "1149 732 -57" +"classname" "script_struct" +"angles" "0 0 0" +} +{ +"targetname" "openhouse2_backyard_zone_spawners" +"script_noteworthy" "mechz_location" +"origin" "1606 235 -52" +"classname" "script_struct" +"angles" "0 0 0" +} +{ +"origin" "0 100 -500" "script_disable_bleeder" "1" "script_noteworthy" "screecher_zombie_spawner" "spawnflags" "3" @@ -11344,7 +11412,6 @@ "classname" "actor_zm_transit_screecher" "script_forcespawn" "1" "count" "9999" -"guid" "FC2F54CC" } { "script_string" "find_flesh" @@ -11353,7 +11420,6 @@ "origin" "-239 838 -84" "script_noteworthy" "riser_location screecher_location" "classname" "script_struct" -"guid" "6667966D" } { "classname" "actor_zm_alcatraz_brutus" @@ -11362,15 +11428,13 @@ "angles" "0 180 0" "spawnflags" "3" "script_noteworthy" "brutus_zombie_spawner" -"origin" "1824 10968 1352" -"guid" "6B553A99" +"origin" "100 100 -500" } { "classname" "script_struct" "script_noteworthy" "brutus_location" "targetname" "culdesac_yellow_zone_spawner" "origin" "367 454 -60" -"guid" "76357ECA" } { "script_forcespawn" "1" @@ -11381,27 +11445,24 @@ "targetname" "female_ghost" "script_noteworthy" "ghost_zombie_spawner" "count" "9999" -"origin" "-168 473 16" -"guid" "B6A85D0D" +"origin" "100 50 -500" } { "classname" "actor_zombie_dog" "model" "zombie_wolf" "export" "1" "spawnflags" "17" -"origin" "0 0 0" +"origin" "100 0 -500" "script_noteworthy" "zombie_dog_spawner" -"guid" "10894F27" } { "classname" "actor_zm_transit_avogadro" "model" "c_zom_electrician_fb" "export" "138" -"origin" "120 1 39" +"origin" "100 25 -500" "count" "9999" "spawnflags" "3" "script_disable_bleeder" "1" "script_forcespawn" "1" "script_noteworthy" "avogadro_zombie_spawner" -"guid" "EB278249" } \ No newline at end of file diff --git a/zm_ai_pack/maps/mp/zombies/_zm_ai_mechz.gsc b/zm_ai_pack/maps/mp/zombies/_zm_ai_mechz.gsc index 639303a..11ed9e3 100644 --- a/zm_ai_pack/maps/mp/zombies/_zm_ai_mechz.gsc +++ b/zm_ai_pack/maps/mp/zombies/_zm_ai_mechz.gsc @@ -669,10 +669,10 @@ get_best_mechz_spawn_pos( ignore_used_positions ) for ( i = 0; i < level.zombie_mechz_locations.size; i++ ) { - if ( !ignore_used_positions && ( isdefined( level.zombie_mechz_locations[i].has_been_used ) && level.zombie_mechz_locations[i].has_been_used ) ) + if ( level.script == "zm_tomb" && !ignore_used_positions && ( isdefined( level.zombie_mechz_locations[i].has_been_used ) && level.zombie_mechz_locations[i].has_been_used ) ) continue; - if ( ignore_used_positions == 1 && ( isdefined( level.zombie_mechz_locations[i].used_cooldown ) && level.zombie_mechz_locations[i].used_cooldown ) ) + if ( level.script == "zm_tomb" && ignore_used_positions == 1 && ( isdefined( level.zombie_mechz_locations[i].used_cooldown ) && level.zombie_mechz_locations[i].used_cooldown ) ) continue; for ( j = 0; j < players.size; j++ ) diff --git a/zm_ai_pack/maps/mp/zombies/_zm_ai_mechz_dev.gsc b/zm_ai_pack/maps/mp/zombies/_zm_ai_mechz_dev.gsc index a6f3c7a..ce66d78 100644 --- a/zm_ai_pack/maps/mp/zombies/_zm_ai_mechz_dev.gsc +++ b/zm_ai_pack/maps/mp/zombies/_zm_ai_mechz_dev.gsc @@ -224,10 +224,8 @@ mechz_force_behavior( behavior ) get_behavior_orient() { -/# behavior_orient = getdvarint( #"_id_2F660A7B" ); return level.players[0].angles + vectorscale( ( 0, 1, 0 ), 180.0 ) + ( 0, behavior_orient, 0 ); -#/ } setup_force_behavior() diff --git a/zm_ai_pack/maps/mp/zombies/_zm_ai_mechz_ft.gsc b/zm_ai_pack/maps/mp/zombies/_zm_ai_mechz_ft.gsc index f275aca..73eff69 100644 --- a/zm_ai_pack/maps/mp/zombies/_zm_ai_mechz_ft.gsc +++ b/zm_ai_pack/maps/mp/zombies/_zm_ai_mechz_ft.gsc @@ -14,6 +14,10 @@ init_flamethrower_triggers() { + if ( level.script != "zm_tomb" ) + { + return; + } flag_wait( "initial_players_connected" ); level.flamethrower_trigger_array = getentarray( "flamethrower_trigger", "script_noteworthy" ); assert( isdefined( level.flamethrower_trigger_array ) && level.flamethrower_trigger_array.size >= 4 ); diff --git a/zm_ai_pack/scripts/zm/zm_ai_pack_mod_debug_main.gsc b/zm_ai_pack/scripts/zm/zm_ai_pack_mod_debug_main.gsc new file mode 100644 index 0000000..99f7647 --- /dev/null +++ b/zm_ai_pack/scripts/zm/zm_ai_pack_mod_debug_main.gsc @@ -0,0 +1,399 @@ +#include maps\mp\zombies\_zm_utility; +#include common_scripts\utility; +#include maps\mp\_utility; + +main() +{ + +} + +init() +{ + y = -119; + if ( level.script == "zm_buried" ) + { + y -= 25; + } + else if ( level.script == "zm_tomb" ) + { + y -= 60; + } + level.zone_hud_y_offset = y; + + level thread command_thread(); + level thread on_player_connect(); + level thread draw_zombie_spawn_locations(); + level thread draw_nodes(); +} + +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; + } + else if ( message == "spawnmechz" ) + { + level.mechz_left_to_spawn = 1; + level notify( "spawn_mechz" ); + } + else if ( message == "spawnbrutus" ) + { + level notify( "spawn_brutus", 1 ); + } + } +} + +on_player_connect() +{ + while ( true ) + { + level waittill( "connected", player ); + player thread zone_hud(); + player thread location_hud(); + } +} + +new_debug_hud( x, y ) +{ + hud = newClientHudElem( self ); + hud.alignx = "left"; + hud.aligny = "middle"; + hud.horzalign = "user_left"; + hud.vertalign = "user_bottom"; + hud.x += x; + hud.y += y; + hud.fontscale = 1.4; + hud.alpha = 0; + hud.color = ( 1, 1, 1 ); + hud.hidewheninmenu = 1; + hud.foreground = 1; + + return hud; +} + +zone_hud() +{ + self endon( "disconnect" ); + + x = 5; + y = level.zone_hud_y_offset; + zone_hud = self new_debug_hud( x, y ); + + 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; + + for (;;) + { + while ( getDvarInt( "zm_ai_pack_debug" ) <= 0 ) + { + zone_hud.alpha = 0; + wait 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(); +} + +location_hud() +{ + self endon( "disconnect" ); + + x = 5; + y = level.zone_hud_y_offset - 20; + + loc_hud = []; + for ( i = 0; i < 3; i++ ) + { + loc_hud[ i ] = self new_debug_hud( x, y ); + x += 45; + } + + loc_hud[ 0 ].label = &"x:"; + loc_hud[ 1 ].label = &"y:"; + loc_hud[ 2 ].label = &"z:"; + + flag_wait( "initial_blackscreen_passed" ); + + for (;;) + { + while ( getDvarInt( "zm_ai_pack_debug" ) <= 0 ) + { + for ( i = 0; i < 3; i++ ) + { + loc_hud[ i ].alpha = 0; + } + wait 1; + } + for ( i = 0; i < 3; i++ ) + { + loc_hud[ i ].alpha = 1; + loc_hud[ i ] setValue( self.origin[ i ] ); + } + wait 0.05; + } +} + +draw_zombie_spawn_location_box( origin, color, vec = ( 20, 20, 40 ) ) +{ + box( origin + ( 0, 0, 20 ), vec * -1, vec, 0, color, 1.0 ); +} + +draw_zome_spawn_location_info_text( origin, color, zone_name, location_type_name ) +{ + print3d( origin + ( 0, 0, 49 ), "ZONE:" + zone_name ); + print3d( origin + ( 0, 0, 37 ), "TYPE:" + location_type_name ); + print3d( origin + ( 0, 0, 25 ), "ORIGIN:" + origin ); +} + +draw_specific_zombie_spawn_locations( loc_array, zone_name, color, type ) +{ + draw_type = getDvar( "zm_ai_pack_debug_spawn_loc_draw_type" ); + if ( draw_type == "" || draw_type != type ) + { + return; + } + + for ( i = 0; i < loc_array.size; i++ ) + { + draw_zome_spawn_location_info_text( loc_array[ i ].origin, color, zone_name, type ); + draw_zombie_spawn_location_box( loc_array[ i ].origin, color ); + } +} + +draw_zombie_spawn_locations() +{ + while ( !isDefined( level.zones ) ) + { + wait 1; + } + + for (;;) + { + while ( getDvarInt( "zm_ai_pack_debug" ) <= 0 ) + { + wait 1; + } + + zkeys = getArrayKeys( level.zones ); + for ( z = 0; z < zkeys.size; z++ ) + { + zone = level.zones[ zkeys[ z ] ]; + + draw_specific_zombie_spawn_locations( zone.spawn_locations, zkeys[ z ], ( 0.8, 0.8, 0.8 ), "zombie" ); + + draw_specific_zombie_spawn_locations( zone.inert_locations, zkeys[ z ], ( 0.8, 0, 0.8 ), "inert" ); + + draw_specific_zombie_spawn_locations( zone.dog_locations, zkeys[ z ], ( 0.8, 0.8, 0 ), "dog" ); + + draw_specific_zombie_spawn_locations( zone.screecher_locations, zkeys[ z ], ( 0, 0.8, 0.8 ), "screecher" ); + + draw_specific_zombie_spawn_locations( zone.avogadro_locations, zkeys[ z ], ( 0.3, 0.8, 0.8 ), "avogadro" ); + + draw_specific_zombie_spawn_locations( zone.quad_locations, zkeys[ z ], ( 0.8, 0.3, 0.8 ), "quad" ); + + draw_specific_zombie_spawn_locations( zone.leaper_locations, zkeys[ z ], ( 0.8, 0.8, 0.3 ), "leaper" ); + + draw_specific_zombie_spawn_locations( zone.astro_locations, zkeys[ z ], ( 0, 0, 0.8 ), "astro" ); + + draw_specific_zombie_spawn_locations( zone.napalm_locations, zkeys[ z ], ( 0.8, 0, 0 ), "napalm" ); + + draw_specific_zombie_spawn_locations( zone.brutus_locations, zkeys[ z ], ( 0, 0.8, 0 ), "brutus" ); + + draw_specific_zombie_spawn_locations( zone.mechz_locations, zkeys[ z ], ( 0.3, 0.3, 0.8 ), "mechz" ); + } + wait 0.05; + } +} + +draw_node_box( origin, color, vec = ( 20, 20, 40 ) ) +{ + box( origin + ( 0, 0, 20 ), vec * -1, vec, 0, color, 1.0 ); +} + +draw_node( origin, color, type ) +{ + draw_node_box( origin, color ); +} + +draw_node_info( node, type ) +{ + offset = ( 0, 0, 0 ); + origin = node.origin; + print3d( origin + ( 0, 0, 49 ), "ORIGIN:" + origin ); + if ( type == "begin" ) + { + print3d( origin + ( 0, 0, 37 ), "ANGLES:" + node.angles ); + print3d( origin + ( 0, 0, 25 ), "ANIMSCRIPT:" + node.animscript ); + if ( isDefined( node.animation ) ) + { + print3d( origin + ( 0, 0, 13 ), "ANIMATION:" + node.animation ); + } + if ( isDefined( node.script_noteworthy ) ) + { + if ( isDefined( node.animation ) ) + { + offset = ( 0, 0, 1 ); + } + else + { + offset = ( 0, 0, 13 ); + } + print3d( origin + offset, "SCIRPT_NOTEWORTHY:" + node.script_noteworthy ); + } + } +} + +draw_node_data( node, color, type ) +{ + draw_types_string = getDvar( "zm_ai_pack_debug_node_draw_type" ); + if ( draw_types_string == "" ) + { + return; + } + + draw_types = strTok( draw_types_string, " " ); + found_type = false; + for ( i = 0; i < draw_types.size; i++ ) + { + if ( draw_types[ i ] == "all" || draw_types[ i ] == type ) + { + found_type = true; + break; + } + } + + if ( !found_type ) + { + return; + } + + draw_node( node.origin, color, type ); + draw_node_info( node, type ); +} + +draw_nodes() +{ + for (;;) + { + while ( getDvarInt( "zm_ai_pack_debug" ) <= 0 ) + { + wait 1; + } + + /* + draw_types_string = getDvar( "zm_ai_pack_debug_node_draw_type" ); + if ( draw_types_string == "" ) + { + wait 1; + continue; + } + + nodes = undefined; + draw_types = strTok( draw_types_string, " " ); + for ( i = 0; i < draw_types.size; i++ ) + { + if ( draw_types[ i ] == "all" ) + { + nodes = getAllNodes(); + break; + } + } + if ( !isDefined( nodes ) ) + { + wait 1; + continue; + } + */ + + throttle_at = 400; + throttle_count = 0; + nodes = getAllNodes(); + for ( i = 0; i < nodes.size; i++ ) + { + node = nodes[ i ]; + color = ( 0, 0, 0 ); + type = node.type; + + switch ( node.type ) + { + case "Begin": + color = ( 0, 0, 0.8 ); + type = "begin"; + break; + case "End": + color = ( 0, 0.8, 0 ); + type = "end"; + break; + case "Path": + color = ( 0.8, 0, 0 ); + type = "path"; + break; + } + + if ( throttle_count == throttle_at ) + { + //wait 0.05; + throttle_count = 0; + } + + draw_node_data( node, color, type ); + throttle_count++; + } + wait 0.05; + } +} \ No newline at end of file diff --git a/zm_ai_pack/scripts/zm/zm_ai_pack_mod_main.csc b/zm_ai_pack/scripts/zm/zm_ai_pack_mod_main.csc index 3fd3eee..10584bc 100644 --- a/zm_ai_pack/scripts/zm/zm_ai_pack_mod_main.csc +++ b/zm_ai_pack/scripts/zm/zm_ai_pack_mod_main.csc @@ -74,12 +74,12 @@ visionset_mgr_init_override() level.vsmgr = []; level.vsmgr_states_inited = []; level.vsmgr_filter_custom_enable = []; - level thread register_type( "visionset", ::visionset_slot_cb, ::visionset_lerp_cb, ::visionset_update_cb ); - vsmgr_register_visionset_info( level.vsmgr_default_info_name, 1, 1, "undefined", "undefined" ); - level thread register_type( "overlay", ::overlay_slot_cb, ::overlay_lerp_cb, ::overlay_update_cb ); - vsmgr_register_overlay_info_style_none( level.vsmgr_default_info_name, 1, 1 ); - level.vsmgr_is_type_currently_default_func = ::vsmgr_is_type_currently_default; - [[ level.on_finalize_initialization_callback ]]( ::finalize_clientfields ); - level thread monitor(); + level thread clientscripts\mp\_visionset_mgr::register_type( "visionset", clientscripts\mp\_visionset_mgr::visionset_slot_cb, clientscripts\mp\_visionset_mgr::visionset_lerp_cb, clientscripts\mp\_visionset_mgr::visionset_update_cb ); + clientscripts\mp\_visionset_mgr::vsmgr_register_visionset_info( level.vsmgr_default_info_name, 1, 1, "undefined", "undefined" ); + level thread clientscripts\mp\_visionset_mgr::register_type( "overlay", clientscripts\mp\_visionset_mgr::overlay_slot_cb, clientscripts\mp\_visionset_mgr::overlay_lerp_cb, clientscripts\mp\_visionset_mgr::overlay_update_cb ); + clientscripts\mp\_visionset_mgr::vsmgr_register_overlay_info_style_none( level.vsmgr_default_info_name, 1, 1 ); + level.vsmgr_is_type_currently_default_func = clientscripts\mp\_visionset_mgr::vsmgr_is_type_currently_default; + [[ level.on_finalize_initialization_callback ]]( clientscripts\mp\_visionset_mgr::finalize_clientfields ); + level thread clientscripts\mp\_visionset_mgr::monitor(); run_visionset_callbacks(); } \ No newline at end of file diff --git a/zm_ai_pack/scripts/zm/zm_ai_pack_mod_main.gsc b/zm_ai_pack/scripts/zm/zm_ai_pack_mod_main.gsc index e8dc673..ec7b20c 100644 --- a/zm_ai_pack/scripts/zm/zm_ai_pack_mod_main.gsc +++ b/zm_ai_pack/scripts/zm/zm_ai_pack_mod_main.gsc @@ -50,8 +50,6 @@ main() level [[ level.ai_data[ keys[ i ] ].main ]](); } } - level thread command_thread(); - level thread on_player_connect(); } init() @@ -96,128 +94,10 @@ visionset_mgr_init_override() level.vsmgr_initializing = 1; level.vsmgr_default_info_name = "none"; level.vsmgr = []; - level thread register_type( "visionset" ); - level thread register_type( "overlay" ); - onfinalizeinitialization_callback( ::finalize_clientfields ); - level thread monitor(); - level thread onplayerconnect(); + level thread maps\mp\_visionset_mgr::register_type( "visionset" ); + level thread maps\mp\_visionset_mgr::register_type( "overlay" ); + onfinalizeinitialization_callback( maps\mp\_visionset_mgr::finalize_clientfields ); + level thread maps\mp\_visionset_mgr::monitor(); + level thread maps\mp\_visionset_mgr::onplayerconnect(); run_visionset_callbacks(); -} - -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; - } - else if ( message == "spawnmechz" ) - { - level.mechz_left_to_spawn = 1; - level notify( "spawn_mechz" ); - } - else if ( message == "spawnbrutus" ) - { - level notify( "spawn_brutus", 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(); } \ No newline at end of file diff --git a/zm_ai_pack/zone_source/mod.zone b/zm_ai_pack/zone_source/mod.zone index 8494868..d1f47dc 100644 --- a/zm_ai_pack/zone_source/mod.zone +++ b/zm_ai_pack/zone_source/mod.zone @@ -31,7 +31,7 @@ include,transit/zm_transit_basic_no_anims include,transit/zm_transit_screecher include,transit/zombie_dog -//soundbank,mod.all +soundbank,mod.all script,maps/mp/zombies/_zm_ai_ghost.gsc script,maps/mp/zombies/_zm_ai_ghost_ffotd.gsc @@ -54,5 +54,6 @@ 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_debug_main.gsc script,scripts/zm/zm_ai_pack_mod_main.csc script,scripts/zm/zm_ai_pack_mod_main.gsc \ No newline at end of file