mirror of
https://github.com/JezuzLizard/t6-fastfile-mods.git
synced 2025-04-21 05:55:43 +00:00
Fix panzer errors.
This commit is contained in:
parent
7c043cee57
commit
6a8fdc0e93
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,3 +3,4 @@
|
|||||||
*.iwd
|
*.iwd
|
||||||
*.sabl
|
*.sabl
|
||||||
*.sabs
|
*.sabs
|
||||||
|
*.zip
|
@ -73,6 +73,16 @@ main()
|
|||||||
level._effect["mech_footstep_steam"] = loadfx( "maps/zombie_tomb/fx_tomb_mech_foot_step_steam" );
|
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" );
|
level._effect["mech_exhaust_smoke"] = loadfx( "maps/zombie_tomb/fx_tomb_mech_exhaust_smoke" );
|
||||||
init_animtree();
|
init_animtree();
|
||||||
|
scripts\zm\zm_ai_pack_mod_main::add_visionset_callback( ::register_burn_overlay );
|
||||||
|
}
|
||||||
|
|
||||||
|
register_burn_overlay()
|
||||||
|
{
|
||||||
|
if ( getDvar( "mapname" ) == "zm_transit" || getDvar( "mapname" ) == "zm_tomb" )
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
clientscripts\mp\_visionset_mgr::vsmgr_register_overlay_info_style_burn( "zm_transit_burn", 14000, 15, 2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
init()
|
init()
|
||||||
|
@ -44,6 +44,7 @@ precache()
|
|||||||
|
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
|
precacherumble( "brutus_footsteps" );
|
||||||
level._effect["brutus_flashlight"] = loadfx( "maps/zombie_alcatraz/fx_alcatraz_brut_light" );
|
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_spawn"] = loadfx( "maps/zombie_alcatraz/fx_alcatraz_brut_spawn" );
|
||||||
level._effect["brutus_death"] = loadfx( "maps/zombie_alcatraz/fx_alcatraz_brut_spawn" );
|
level._effect["brutus_death"] = loadfx( "maps/zombie_alcatraz/fx_alcatraz_brut_spawn" );
|
||||||
@ -899,7 +900,6 @@ wait_on_box_alarm()
|
|||||||
while ( true )
|
while ( true )
|
||||||
{
|
{
|
||||||
self.zbarrier waittill( "randomization_done" );
|
self.zbarrier waittill( "randomization_done" );
|
||||||
level notify( "spawn_brutus", 1 );
|
|
||||||
level.num_pulls_since_brutus_spawn++;
|
level.num_pulls_since_brutus_spawn++;
|
||||||
|
|
||||||
if ( level.brutus_in_grief )
|
if ( level.brutus_in_grief )
|
||||||
|
@ -52,10 +52,31 @@ register_clientfields()
|
|||||||
registerclientfield( "actor", "anim_rate", 14000, 2, "float" );
|
registerclientfield( "actor", "anim_rate", 14000, 2, "float" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
register_burn_overlay()
|
||||||
|
{
|
||||||
|
if ( getDvar( "mapname" ) == "zm_tomb" || getDvar( "mapname" ) == "zm_transit" )
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
level.zm_transit_burn_max_duration = 2;
|
||||||
|
|
||||||
|
if ( !isdefined( level.vsmgr_prio_overlay_zm_transit_burn ) )
|
||||||
|
level.vsmgr_prio_overlay_zm_transit_burn = 20;
|
||||||
|
|
||||||
|
maps\mp\_visionset_mgr::vsmgr_register_info( "overlay", "zm_transit_burn", 14000, level.vsmgr_prio_overlay_zm_transit_burn, 15, 1, maps\mp\_visionset_mgr::vsmgr_duration_lerp_thread_per_player, 0 );
|
||||||
|
}
|
||||||
|
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
register_clientfields();
|
register_clientfields();
|
||||||
|
level._effect["mechz_death"] = loadfx( "maps/zombie_tomb/fx_tomb_mech_death" );
|
||||||
|
level._effect["mechz_sparks"] = loadfx( "maps/zombie_tomb/fx_tomb_mech_dmg_sparks" );
|
||||||
|
level._effect["mechz_steam"] = loadfx( "maps/zombie_tomb/fx_tomb_mech_dmg_steam" );
|
||||||
|
level._effect["mechz_claw"] = loadfx( "maps/zombie_tomb/fx_tomb_mech_wpn_claw" );
|
||||||
|
level._effect["mechz_claw_arm"] = loadfx( "maps/zombie_tomb/fx_tomb_mech_wpn_source" );
|
||||||
|
level._effect["mech_booster_landing"] = loadfx( "maps/zombie_tomb/fx_tomb_mech_jump_landing" );
|
||||||
precache();
|
precache();
|
||||||
|
scripts\zm\zm_ai_pack_mod_main::add_visionset_callback( ::register_burn_overlay );
|
||||||
}
|
}
|
||||||
|
|
||||||
#using_animtree("mechz_claw");
|
#using_animtree("mechz_claw");
|
||||||
@ -335,7 +356,7 @@ mechz_round_tracker()
|
|||||||
while ( !isdefined( level.zombie_mechz_locations ) )
|
while ( !isdefined( level.zombie_mechz_locations ) )
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
|
|
||||||
if ( getDvar( "mapname" == "zm_tomb" ) )
|
if ( getDvar( "mapname" ) == "zm_tomb" )
|
||||||
{
|
{
|
||||||
flag_wait( "activate_zone_nml" );
|
flag_wait( "activate_zone_nml" );
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@ mechz_flamethrower_initial_setup()
|
|||||||
|
|
||||||
self.flamethrower_trigger = get_flamethrower_trigger();
|
self.flamethrower_trigger = get_flamethrower_trigger();
|
||||||
|
|
||||||
if ( !isdefined( self.flamethrower_trigger ) )
|
if ( !isdefined( self.flamethrower_trigger ) && getDvar( "mapname" ) == "zm_tomb" )
|
||||||
{
|
{
|
||||||
/#
|
/#
|
||||||
println( "Error: No free flamethrower triggers! Make sure you haven't spawned more than 4 mech zombies" );
|
println( "Error: No free flamethrower triggers! Make sure you haven't spawned more than 4 mech zombies" );
|
||||||
@ -39,9 +39,13 @@ mechz_flamethrower_initial_setup()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( getDvar( "mapname" ) == "zm_tomb" )
|
||||||
|
{
|
||||||
self.flamethrower_trigger.origin = self gettagorigin( "tag_flamethrower_FX" );
|
self.flamethrower_trigger.origin = self gettagorigin( "tag_flamethrower_FX" );
|
||||||
self.flamethrower_trigger.angles = self gettagangles( "tag_flamethrower_FX" );
|
self.flamethrower_trigger.angles = self gettagangles( "tag_flamethrower_FX" );
|
||||||
self.flamethrower_trigger linkto( self, "tag_flamethrower_FX" );
|
self.flamethrower_trigger linkto( self, "tag_flamethrower_FX" );
|
||||||
|
}
|
||||||
|
|
||||||
self thread mechz_watch_for_flamethrower_damage();
|
self thread mechz_watch_for_flamethrower_damage();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -188,10 +192,56 @@ mechz_stop_firing_watcher()
|
|||||||
self.firing = 0;
|
self.firing = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// credit to shippuden1592 for the original code
|
||||||
|
hit_by_flamethrower( mechz )
|
||||||
|
{
|
||||||
|
dist = distance(self.origin, mechz.origin);
|
||||||
|
dirTo = self.origin - mechz.flamethrower_fx.origin;
|
||||||
|
dirTo = vectornormalize(dirTo);
|
||||||
|
mechDir = anglestoforward(mechz.flamethrower_fx.angles + (180,0,0));
|
||||||
|
dot = vectordot(dirTo, mechDir);
|
||||||
|
|
||||||
|
if ( isDefined( self.is_zombie ) && self.is_zombie )
|
||||||
|
{
|
||||||
|
if ( dot < -0.85 && dist < 300 )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ( dot < -0.85 && is_player_valid( self ) && BulletTracePassed( mechz GetEye(), self GetEye(), false, undefined) && dist < 300 )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
mech_flamethrower_fx()
|
||||||
|
{
|
||||||
|
self.flamethrower_fx = spawn("script_model", self GetTagOrigin("tag_flamethrower_FX"));
|
||||||
|
self.flamethrower_fx setmodel("tag_origin");
|
||||||
|
self.flamethrower_fx.angles = self GetTagAngles("tag_flamethrower_FX");
|
||||||
|
self.flamethrower_fx linkto(self, "tag_flamethrower_FX");
|
||||||
|
ft = self.flamethrower_fx;
|
||||||
|
|
||||||
|
self waittill( "death" );
|
||||||
|
|
||||||
|
if ( isDefined( ft ) )
|
||||||
|
{
|
||||||
|
ft unlink();
|
||||||
|
ft delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
mechz_watch_for_flamethrower_damage()
|
mechz_watch_for_flamethrower_damage()
|
||||||
{
|
{
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
|
|
||||||
|
if ( level.script != "zm_tomb" )
|
||||||
|
{
|
||||||
|
self thread mech_flamethrower_fx();
|
||||||
|
}
|
||||||
|
|
||||||
entity_on_tank_func = getFunction( "maps/mp/zm_tomb_tank", "entity_on_tank" );
|
entity_on_tank_func = getFunction( "maps/mp/zm_tomb_tank", "entity_on_tank" );
|
||||||
|
|
||||||
while ( true )
|
while ( true )
|
||||||
@ -209,10 +259,13 @@ mechz_watch_for_flamethrower_damage()
|
|||||||
{
|
{
|
||||||
if ( !( isdefined( players[i].is_burning ) && players[i].is_burning ) )
|
if ( !( isdefined( players[i].is_burning ) && players[i].is_burning ) )
|
||||||
{
|
{
|
||||||
if ( isDefined( entity_on_tank_func ) && do_tank_sweep_auto_damage && players[i] [[ entity_on_tank_func ]]() || players[i] istouching( self.flamethrower_trigger ) )
|
if ( isDefined( entity_on_tank_func ) && do_tank_sweep_auto_damage && players[i] [[ entity_on_tank_func ]]()
|
||||||
|
|| isDefined( self.flamethrower_trigger ) && players[i] istouching( self.flamethrower_trigger ) || level.script != "zm_tomb" && players[ i ] hit_by_flamethrower( self ) )
|
||||||
|
{
|
||||||
players[i] thread player_flame_damage();
|
players[i] thread player_flame_damage();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
zombies = getaispeciesarray( "axis", "all" );
|
zombies = getaispeciesarray( "axis", "all" );
|
||||||
|
|
||||||
@ -224,7 +277,8 @@ mechz_watch_for_flamethrower_damage()
|
|||||||
if ( isdefined( zombies[i].on_fire ) && zombies[i].on_fire )
|
if ( isdefined( zombies[i].on_fire ) && zombies[i].on_fire )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ( isDefined( entity_on_tank_func ) && do_tank_sweep_auto_damage && zombies[i] [[ entity_on_tank_func ]]() || zombies[i] istouching( self.flamethrower_trigger ) )
|
if ( isDefined( entity_on_tank_func ) && do_tank_sweep_auto_damage && zombies[i] [[ entity_on_tank_func ]]()
|
||||||
|
|| isDefined( self.flamethrower_trigger ) && zombies[i] istouching( self.flamethrower_trigger ) || level.script != "zm_tomb" && zombies[ i ] hit_by_flamethrower( self ) )
|
||||||
{
|
{
|
||||||
zombies[i].on_fire = 1;
|
zombies[i].on_fire = 1;
|
||||||
zombies[i] promote_to_explosive();
|
zombies[i] promote_to_explosive();
|
||||||
@ -492,7 +546,7 @@ mechz_do_flamethrower_attack( tank_sweep )
|
|||||||
self.last_flamethrower_time = gettime();
|
self.last_flamethrower_time = gettime();
|
||||||
self thread mechz_kill_flamethrower_watcher();
|
self thread mechz_kill_flamethrower_watcher();
|
||||||
|
|
||||||
if ( !isdefined( self.flamethrower_trigger ) )
|
if ( !isdefined( self.flamethrower_trigger ) && !isDefined( self.flamethrower_fx ) )
|
||||||
self mechz_flamethrower_initial_setup();
|
self mechz_flamethrower_initial_setup();
|
||||||
|
|
||||||
n_nearby_enemies = 0;
|
n_nearby_enemies = 0;
|
||||||
|
@ -1,19 +1,25 @@
|
|||||||
|
#include clientscripts\mp\zombies\_zm_ai_avogadro;
|
||||||
|
#include clientscripts\mp\zombies\_zm_ai_screecher;
|
||||||
|
#include clientscripts\mp\zombies\_zm_ai_ghost;
|
||||||
|
#include clientscripts\mp\zombies\_zm_ai_brutus;
|
||||||
|
#include clientscripts\mp\zombies\_zm_ai_mechz;
|
||||||
|
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
|
replaceFunc( clientscripts\mp\_visionset_mgr::init, ::visionset_mgr_init_override );
|
||||||
level.script = toLower( getDvar( "mapname" ) );
|
level.script = toLower( getDvar( "mapname" ) );
|
||||||
level.gametype = toLower( getDvar( "g_gametype" ) );
|
level.gametype = toLower( getDvar( "g_gametype" ) );
|
||||||
|
|
||||||
level.ai_data = [];
|
level.ai_data = [];
|
||||||
level.ai_data[ "avogadro" ] = spawnStruct();
|
// level.ai_data[ "avogadro" ] = spawnStruct();
|
||||||
level.ai_data[ "avogadro" ].main = clientscripts\mp\zombies\_zm_ai_avogadro::main;
|
// 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[ "avogadro" ].should_execute = !( level.script == "zm_transit" && level.gametype == "zclassic" );
|
||||||
level.ai_data[ "screecher" ] = spawnStruct();
|
// level.ai_data[ "screecher" ] = spawnStruct();
|
||||||
level.ai_data[ "screecher" ].main = clientscripts\mp\zombies\_zm_ai_screecher::main;
|
// 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[ "screecher" ].should_execute = !( level.script == "zm_transit" && level.gametype == "zclassic" );
|
||||||
level.ai_data[ "ghost" ] = spawnStruct();
|
// level.ai_data[ "ghost" ] = spawnStruct();
|
||||||
level.ai_data[ "ghost" ].main = clientscripts\mp\zombies\_zm_ai_ghost::main;
|
// 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[ "ghost" ].should_execute = !( level.script == "zm_buried" && level.gametype == "zclassic" );
|
||||||
level.ai_data[ "brutus" ] = spawnStruct();
|
level.ai_data[ "brutus" ] = spawnStruct();
|
||||||
level.ai_data[ "brutus" ].main = clientscripts\mp\zombies\_zm_ai_brutus::main;
|
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[ "brutus" ].should_execute = level.script != "zm_prison";
|
||||||
@ -22,12 +28,12 @@ main()
|
|||||||
level.ai_data[ "mechz" ].should_execute = level.script != "zm_tomb";
|
level.ai_data[ "mechz" ].should_execute = level.script != "zm_tomb";
|
||||||
|
|
||||||
keys = getArrayKeys( level.ai_data );
|
keys = getArrayKeys( level.ai_data );
|
||||||
for ( j = 0; j < keys2.size; j++ )
|
for ( i = 0; i < keys.size; i++ )
|
||||||
{
|
{
|
||||||
if ( isDefined( level.ai_data[ keys[ j ] ].main ) && isDefined( level.ai_data[ keys[ j ] ].should_execute )
|
if ( isDefined( level.ai_data[ keys[ i ] ].main ) && isDefined( level.ai_data[ keys[ i ] ].should_execute )
|
||||||
&& level.ai_data[ keys[ j ] ].should_execute )
|
&& level.ai_data[ keys[ i ] ].should_execute )
|
||||||
{
|
{
|
||||||
level [[ level.ai_data[ keys[ j ] ].main ]]();
|
level [[ level.ai_data[ keys[ i ] ].main ]]();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -36,3 +42,44 @@ init()
|
|||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
add_visionset_callback( func )
|
||||||
|
{
|
||||||
|
if ( !isDefined( level.visionset_mgr_callbacks ) )
|
||||||
|
{
|
||||||
|
level.visionset_mgr_callbacks = [];
|
||||||
|
}
|
||||||
|
level.visionset_mgr_callbacks[ level.visionset_mgr_callbacks.size ] = func;
|
||||||
|
}
|
||||||
|
|
||||||
|
run_visionset_callbacks()
|
||||||
|
{
|
||||||
|
if ( !isDefined( level.visionset_mgr_callbacks ) )
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for ( i = 0; i < level.visionset_mgr_callbacks.size; i++ )
|
||||||
|
{
|
||||||
|
[[ level.visionset_mgr_callbacks[ i ] ]]();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
visionset_mgr_init_override()
|
||||||
|
{
|
||||||
|
if ( isDefined( level.createfx_enabled ) && level.createfx_enabled )
|
||||||
|
return;
|
||||||
|
|
||||||
|
level.vsmgr_initializing = 1;
|
||||||
|
level.vsmgr_default_info_name = "none";
|
||||||
|
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();
|
||||||
|
run_visionset_callbacks();
|
||||||
|
}
|
@ -1,43 +1,55 @@
|
|||||||
|
#include maps\mp\zombies\_zm_utility;
|
||||||
|
#include common_scripts\utility;
|
||||||
|
#include maps\mp\_utility;
|
||||||
|
|
||||||
|
#include maps\mp\zombies\_zm_ai_avogadro;
|
||||||
|
#include maps\mp\zombies\_zm_ai_screecher;
|
||||||
|
#include maps\mp\zombies\_zm_ai_ghost;
|
||||||
|
#include maps\mp\zombies\_zm_ai_brutus;
|
||||||
|
#include maps\mp\zombies\_zm_ai_mechz;
|
||||||
|
#include maps\mp\zombies\_zm_ai_dogs;
|
||||||
|
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
|
replaceFunc( maps\mp\_visionset_mgr::init, ::visionset_mgr_init_override );
|
||||||
level.script = toLower( getDvar( "mapname" ) );
|
level.script = toLower( getDvar( "mapname" ) );
|
||||||
level.gametype = toLower( getDvar( "g_gametype" ) );
|
level.gametype = toLower( getDvar( "g_gametype" ) );
|
||||||
|
|
||||||
level.ai_home_maps = [];
|
level.ai_data = [];
|
||||||
level.ai_home_maps[ "avogadro" ] = spawnStruct();
|
// level.ai_data[ "avogadro" ] = spawnStruct();
|
||||||
level.ai_home_maps[ "avogadro" ].main = maps\mp\zombies\_zm_ai_avogadro::main;
|
// level.ai_data[ "avogadro" ].main = maps\mp\zombies\_zm_ai_avogadro::main;
|
||||||
level.ai_home_maps[ "avogadro" ].init = maps\mp\zombies\_zm_ai_avogadro::init;
|
// level.ai_data[ "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_data[ "avogadro" ].should_execute = !( level.script == "zm_transit" && level.gametype == "zclassic" );
|
||||||
level.ai_home_maps[ "screecher" ] = spawnStruct();
|
// level.ai_data[ "screecher" ] = spawnStruct();
|
||||||
level.ai_home_maps[ "screecher" ].main = maps\mp\zombies\_zm_ai_screecher::main;
|
// level.ai_data[ "screecher" ].main = maps\mp\zombies\_zm_ai_screecher::main;
|
||||||
level.ai_home_maps[ "screecher" ].init = maps\mp\zombies\_zm_ai_screecher::init;
|
// level.ai_data[ "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_data[ "screecher" ].should_execute = !( level.script == "zm_transit" && level.gametype == "zclassic" );
|
||||||
level.ai_home_maps[ "ghost" ] = spawnStruct();
|
// level.ai_data[ "ghost" ] = spawnStruct();
|
||||||
level.ai_home_maps[ "ghost" ].main = maps\mp\zombies\_zm_ai_ghost::main;
|
// level.ai_data[ "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_data[ "ghost" ].should_execute = !( level.script == "zm_buried" && level.gametype == "zclassic" );
|
||||||
level.ai_home_maps[ "brutus" ] = spawnStruct();
|
level.ai_data[ "brutus" ] = spawnStruct();
|
||||||
level.ai_home_maps[ "brutus" ].main = maps\mp\zombies\_zm_ai_brutus::main;
|
level.ai_data[ "brutus" ].main = maps\mp\zombies\_zm_ai_brutus::main;
|
||||||
level.ai_home_maps[ "brutus" ].should_execute = level.script != "zm_prison";
|
level.ai_data[ "brutus" ].should_execute = level.script != "zm_prison";
|
||||||
level.ai_home_maps[ "mechz" ] = spawnStruct();
|
level.ai_data[ "mechz" ] = spawnStruct();
|
||||||
level.ai_home_maps[ "mechz" ].main = maps\mp\zombies\_zm_ai_mechz::main;
|
level.ai_data[ "mechz" ].main = maps\mp\zombies\_zm_ai_mechz::main;
|
||||||
level.ai_home_maps[ "mechz" ].init = maps\mp\zombies\_zm_ai_mechz::init;
|
level.ai_data[ "mechz" ].init = maps\mp\zombies\_zm_ai_mechz::init;
|
||||||
level.ai_home_maps[ "mechz" ].should_execute = level.script != "zm_tomb";
|
level.ai_data[ "mechz" ].should_execute = level.script != "zm_tomb";
|
||||||
level.ai_home_maps[ "zombie_dog" ] = spawnStruct();
|
// level.ai_data[ "zombie_dog" ] = spawnStruct();
|
||||||
level.ai_home_maps[ "zombie_dog" ].main = maps\mp\zombies\_zm_ai_dogs::init;
|
// level.ai_data[ "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_data[ "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 );
|
// level.ai_data[ "zombie_dog" ].should_execute = !( level.gametype == "zstandard" && getGametypeSetting( "allowDogs" ) == 1 );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
keys = getArrayKeys( level.ai_data );
|
keys = getArrayKeys( level.ai_data );
|
||||||
for ( j = 0; j < keys2.size; j++ )
|
for ( i = 0; i < keys.size; i++ )
|
||||||
{
|
{
|
||||||
if ( isDefined( level.ai_data[ keys[ j ] ].main ) && isDefined( level.ai_data[ keys[ j ] ].should_execute )
|
if ( isDefined( level.ai_data[ keys[ i ] ].main ) && isDefined( level.ai_data[ keys[ i ] ].should_execute )
|
||||||
&& level.ai_data[ keys[ j ] ].should_execute )
|
&& level.ai_data[ keys[ i ] ].should_execute )
|
||||||
{
|
{
|
||||||
level [[ level.ai_data[ keys[ j ] ].main ]]();
|
level [[ level.ai_data[ keys[ i ] ].main ]]();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
level thread command_thread();
|
level thread command_thread();
|
||||||
level thread on_player_connect();
|
level thread on_player_connect();
|
||||||
}
|
}
|
||||||
@ -45,16 +57,53 @@ main()
|
|||||||
init()
|
init()
|
||||||
{
|
{
|
||||||
keys = getArrayKeys( level.ai_data );
|
keys = getArrayKeys( level.ai_data );
|
||||||
for ( j = 0; j < keys2.size; j++ )
|
for ( i = 0; i < keys.size; i++ )
|
||||||
{
|
{
|
||||||
if ( isDefined( level.ai_data[ keys[ j ] ].init ) && isDefined( level.ai_data[ keys[ j ] ].should_execute )
|
if ( isDefined( level.ai_data[ keys[ i ] ].init ) && isDefined( level.ai_data[ keys[ i ] ].should_execute )
|
||||||
&& level.ai_data[ keys[ j ] ].should_execute )
|
&& level.ai_data[ keys[ i ] ].should_execute )
|
||||||
{
|
{
|
||||||
level [[ level.ai_data[ keys[ j ] ].init ]]();
|
level [[ level.ai_data[ keys[ i ] ].init ]]();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
add_visionset_callback( func )
|
||||||
|
{
|
||||||
|
if ( !isDefined( level.visionset_mgr_callbacks ) )
|
||||||
|
{
|
||||||
|
level.visionset_mgr_callbacks = [];
|
||||||
|
}
|
||||||
|
level.visionset_mgr_callbacks[ level.visionset_mgr_callbacks.size ] = func;
|
||||||
|
}
|
||||||
|
|
||||||
|
run_visionset_callbacks()
|
||||||
|
{
|
||||||
|
if ( !isDefined( level.visionset_mgr_callbacks ) )
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for ( i = 0; i < level.visionset_mgr_callbacks.size; i++ )
|
||||||
|
{
|
||||||
|
[[ level.visionset_mgr_callbacks[ i ] ]]();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
visionset_mgr_init_override()
|
||||||
|
{
|
||||||
|
if ( isDefined( level.createfx_enabled ) && level.createfx_enabled )
|
||||||
|
return;
|
||||||
|
|
||||||
|
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();
|
||||||
|
run_visionset_callbacks();
|
||||||
|
}
|
||||||
|
|
||||||
command_thread()
|
command_thread()
|
||||||
{
|
{
|
||||||
for (;;)
|
for (;;)
|
||||||
@ -73,6 +122,15 @@ command_thread()
|
|||||||
{
|
{
|
||||||
level.next_dog_round = level.round_number + 1;
|
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 );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ include,transit/zm_transit_basic_no_anims
|
|||||||
include,transit/zm_transit_screecher
|
include,transit/zm_transit_screecher
|
||||||
include,transit/zombie_dog
|
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.gsc
|
||||||
script,maps/mp/zombies/_zm_ai_ghost_ffotd.gsc
|
script,maps/mp/zombies/_zm_ai_ghost_ffotd.gsc
|
||||||
|
@ -158,4 +158,3 @@ xmodel,c_zom_mech_armor_shoulder_right
|
|||||||
rawfile,rumble/mechz_footsteps
|
rawfile,rumble/mechz_footsteps
|
||||||
rawfile,animtrees/mechz_claw.atr
|
rawfile,animtrees/mechz_claw.atr
|
||||||
footsteptable,fly_step_mechz
|
footsteptable,fly_step_mechz
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user