mirror of
https://github.com/JezuzLizard/t6-fastfile-mods.git
synced 2025-06-10 11:17:59 -05:00
Fix clientfield alt system. Add mechz to Buried.
Add _zm_ai_dogs.gsc. Make multiple ai immune to paralyzer. Fix zm_all_basic.asd.
This commit is contained in:
@ -1,20 +1,8 @@
|
||||
execute_clientfield_alt_callback_internal( data, last_data, field_type, field_name )
|
||||
{
|
||||
entnum = data.entnum;
|
||||
last_entnum = last_data.entnum;
|
||||
ent = undefined;
|
||||
field_data = level.clientfield_alts[ field_type ][ field_name ];
|
||||
switch ( field_type )
|
||||
{
|
||||
case "actor":
|
||||
assert( entnum >= 22 && entnum < 54, "Entnum " + entnum + " out of range for actor" );
|
||||
ent = getEntByNum( 0, entnum );
|
||||
break;
|
||||
// case "toplayer":
|
||||
// default:
|
||||
// assertMsg( "Unhandled field type " + field_type );
|
||||
// break;
|
||||
}
|
||||
ent = getEntByNum( 0, entnum );
|
||||
|
||||
assert( isDefined( ent ) );
|
||||
|
||||
@ -74,7 +62,7 @@ register_clientfield_alt( field_type, field_name, field_value_type, field_callba
|
||||
struct.callback = field_callback;
|
||||
level.clientfield_alts[ field_type ][ field_name ] = struct;
|
||||
|
||||
dvar_name = field_type + "." + field_name;
|
||||
dvar_name = field_name;
|
||||
setDvar( dvar_name, "" );
|
||||
|
||||
level thread handle_clientfield_alt_callbacks( dvar_name, field_type, field_name );
|
||||
|
@ -1,15 +1,15 @@
|
||||
|
||||
set_clientfield_alt_toplayer( field_type, field_name, ent, value )
|
||||
set_clientfield_alt_toplayer( field_name, ent, value )
|
||||
{
|
||||
entnum = ent getEntityNumber();
|
||||
self setClientDvar( field_type + "." + field_name, entnum + " " + value );
|
||||
self setClientDvar( field_name, entnum + " " + value );
|
||||
}
|
||||
|
||||
set_clientfield_alt_allplayers( field_type, field_name, ent, value )
|
||||
set_clientfield_alt_allplayers(field_name, ent, value )
|
||||
{
|
||||
foreach ( player in level.players )
|
||||
{
|
||||
entnum = ent getEntityNumber();
|
||||
player setClientDvar( field_type + "." + field_name, entnum + " " + value );
|
||||
player setClientDvar( field_name, entnum + " " + value );
|
||||
}
|
||||
}
|
@ -164,7 +164,7 @@ location_hud()
|
||||
for ( i = 0; i < 3; i++ )
|
||||
{
|
||||
loc_hud[ i ] = self new_debug_hud( x, y );
|
||||
x += 45;
|
||||
x += 55;
|
||||
}
|
||||
|
||||
loc_hud[ 0 ].label = &"x:";
|
||||
@ -240,6 +240,10 @@ draw_zombie_spawn_locations()
|
||||
{
|
||||
zone = level.zones[ zkeys[ z ] ];
|
||||
|
||||
if ( getDvarInt( "zm_ai_pack_debug_show_only_active_spawns" ) && ( !zone.is_enabled || !zone.is_active || !zone.is_spawning_allowed ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
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" );
|
||||
|
@ -13,12 +13,10 @@ main()
|
||||
{
|
||||
replaceFunc( maps\mp\_visionset_mgr::init, ::visionset_mgr_init_override );
|
||||
replaceFunc( maps\mp\animscripts\traverse\zm_shared::dotraverse, ::dotraverse_override );
|
||||
perk_machine_knockdown_zombie_func = getFunction( "maps/mp/zm_nuked_perks", "perk_machine_knockdown_zombie" );
|
||||
|
||||
if ( isDefined( perk_machine_knockdown_zombie_func ) )
|
||||
{
|
||||
replaceFunc( perk_machine_knockdown_zombie_func, ::perk_machine_knockdown_zombie_override );
|
||||
}
|
||||
replace_single_function( "maps/mp/zm_nuked_perks", "perk_machine_knockdown_zombie", ::perk_machine_knockdown_zombie_override );
|
||||
replace_single_function( "maps/mp/zombies/_zm_weap_slowgun", "can_be_paralyzed", ::can_be_paralyzed_override );
|
||||
replace_single_function( "maps/mp/zombies/_zm_ai_sloth", "watch_crash_trigger", ::watch_crash_trigger_override );
|
||||
|
||||
level.script = toLower( getDvar( "mapname" ) );
|
||||
level.gametype = toLower( getDvar( "g_gametype" ) );
|
||||
@ -263,4 +261,53 @@ get_idle_anim()
|
||||
}
|
||||
|
||||
return idle_anim;
|
||||
}
|
||||
|
||||
replace_single_function( path, func_name, func_override )
|
||||
{
|
||||
func = getFunction( path, func_name );
|
||||
|
||||
if ( isDefined( func ) )
|
||||
{
|
||||
replaceFunc( func, func_override );
|
||||
}
|
||||
}
|
||||
|
||||
can_be_paralyzed_override( zombie )
|
||||
{
|
||||
if ( is_true( zombie.immune_to_slowgun ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( is_true( zombie.is_ghost ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( is_true( zombie.guts_explosion ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( isdefined( zombie ) && zombie.health > 0 )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
watch_crash_trigger_override()
|
||||
{
|
||||
while ( true )
|
||||
{
|
||||
self waittill( "trigger", who );
|
||||
|
||||
if ( isDefined( who ) && isDefined( level.sloth ) && who == level.sloth && who.state == "berserk" )
|
||||
{
|
||||
who setclientfield( "sloth_berserk", 0 );
|
||||
who sloth_set_state( "crash", 0 );
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user