mirror of
https://github.com/JezuzLizard/t6-fastfile-mods.git
synced 2025-06-10 11:17:59 -05:00
Add mechz to MoTD.
Fix traps on MoTD affecting boss type zombies, and gibbing zombies that don't support gibbing.
This commit is contained in:
@ -18,6 +18,8 @@ main()
|
||||
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" ) );
|
||||
|
||||
@ -319,7 +321,7 @@ watch_crash_trigger_override()
|
||||
|
||||
check_solo_status()
|
||||
{
|
||||
if ( getnumexpectedplayers() == 1 && ( !sessionmodeisonlinegame() || !sessionmodeisprivate() ) )
|
||||
if ( getnumexpectedplayers() == 1 && ( !sessionmodeisonlinegame() || !sessionmodeisprivate() ) && !isDedicated() )
|
||||
{
|
||||
level.is_forever_solo_game = 1;
|
||||
}
|
||||
|
@ -0,0 +1,95 @@
|
||||
#include maps\mp\zombies\_zm_utility;
|
||||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
|
||||
#include maps\mp\zm_alcatraz_traps;
|
||||
|
||||
main()
|
||||
{
|
||||
level.custom_fan_trap_damage_func = ::fan_trap_damage_override;
|
||||
level.custom_acid_trap_damage_func = ::acid_trap_damage_override;
|
||||
}
|
||||
|
||||
zombie_fan_trap_death()
|
||||
{
|
||||
self endon( "death" );
|
||||
|
||||
if ( !is_true( self.no_gib ) )
|
||||
{
|
||||
self.a.gib_ref = random( array( "guts", "right_arm", "left_arm", "head" ) );
|
||||
self thread maps\mp\animscripts\zm_death::do_gib();
|
||||
}
|
||||
|
||||
self setclientfield( "fan_trap_blood_fx", 1 );
|
||||
self thread stop_fan_trap_blood_fx();
|
||||
self dodamage( self.health + 1000, self.origin );
|
||||
}
|
||||
|
||||
fan_trap_damage_override( parent )
|
||||
{
|
||||
self endon( "fan_trap_finished" );
|
||||
|
||||
for (;;)
|
||||
{
|
||||
self waittill( "trigger", ent );
|
||||
|
||||
if ( isplayer( ent ) )
|
||||
ent thread player_fan_trap_damage();
|
||||
else
|
||||
{
|
||||
if ( is_true( ent.is_boss ) )
|
||||
{
|
||||
ent maps\mp\zombies\_zm_ai_brutus::trap_damage_callback( self );
|
||||
return;
|
||||
}
|
||||
|
||||
if ( !isdefined( ent.marked_for_death ) )
|
||||
{
|
||||
ent.marked_for_death = 1;
|
||||
ent thread zombie_fan_trap_death();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
zombie_acid_damage()
|
||||
{
|
||||
self endon( "death" );
|
||||
self setclientfield( "acid_trap_death_fx", 1 );
|
||||
wait( randomfloatrange( 0.25, 2.0 ) );
|
||||
|
||||
if ( !is_true( self.no_gib ) )
|
||||
{
|
||||
self.a.gib_ref = random( array( "right_arm", "left_arm", "head", "right_leg", "left_leg", "no_legs" ) );
|
||||
self thread maps\mp\animscripts\zm_death::do_gib();
|
||||
}
|
||||
|
||||
self dodamage( self.health + 1000, self.origin );
|
||||
}
|
||||
|
||||
acid_trap_damage_override()
|
||||
{
|
||||
self endon( "acid_trap_finished" );
|
||||
|
||||
for (;;)
|
||||
{
|
||||
self waittill( "trigger", ent );
|
||||
|
||||
if ( isplayer( ent ) )
|
||||
ent thread player_acid_damage( self );
|
||||
else
|
||||
{
|
||||
if ( is_true( ent.is_boss ) )
|
||||
{
|
||||
ent maps\mp\zombies\_zm_ai_brutus::trap_damage_callback( self );
|
||||
return;
|
||||
}
|
||||
|
||||
if ( !isdefined( ent.marked_for_death ) )
|
||||
{
|
||||
ent.marked_for_death = 1;
|
||||
ent thread zombie_acid_damage();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user