mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-10 15:17:57 -05:00
Paralyzer: kills on any round
This commit is contained in:
@ -185,6 +185,9 @@
|
||||
* Kills on any round (normally stops killing after round 100)
|
||||
* Removed additional goo created by chain kills
|
||||
|
||||
### Paralyzer
|
||||
* Kills on any round
|
||||
|
||||
### Blundergat
|
||||
* Kills on any round
|
||||
|
||||
|
@ -2,6 +2,94 @@
|
||||
#include common_scripts\utility;
|
||||
#include maps\mp\zombies\_zm_utility;
|
||||
#include maps\mp\zombies\_zm_weap_slowgun;
|
||||
#include maps\mp\zombies\_zm_weapons;
|
||||
#include maps\mp\zombies\_zm_spawner;
|
||||
#include maps\mp\zombies\_zm_powerups;
|
||||
#include maps\mp\zombies\_zm_score;
|
||||
#include maps\mp\zombies\_zm_audio;
|
||||
|
||||
init()
|
||||
{
|
||||
if ( !maps\mp\zombies\_zm_weapons::is_weapon_included( "slowgun_zm" ) )
|
||||
return;
|
||||
|
||||
registerclientfield( "actor", "slowgun_fx", 12000, 3, "int" );
|
||||
registerclientfield( "actor", "anim_rate", 7000, 5, "float" );
|
||||
registerclientfield( "allplayers", "anim_rate", 7000, 5, "float" );
|
||||
registerclientfield( "toplayer", "sndParalyzerLoop", 12000, 1, "int" );
|
||||
registerclientfield( "toplayer", "slowgun_fx", 12000, 1, "int" );
|
||||
level.sliquifier_distance_checks = 0;
|
||||
maps\mp\zombies\_zm_spawner::add_cusom_zombie_spawn_logic( ::slowgun_on_zombie_spawned );
|
||||
maps\mp\zombies\_zm_spawner::register_zombie_damage_callback( ::slowgun_zombie_damage_response );
|
||||
maps\mp\zombies\_zm_spawner::register_zombie_death_animscript_callback( ::slowgun_zombie_death_response );
|
||||
level._effect["zombie_slowgun_explosion"] = loadfx( "weapon/paralyzer/fx_paralyzer_body_disintegrate" );
|
||||
level._effect["zombie_slowgun_explosion_ug"] = loadfx( "weapon/paralyzer/fx_paralyzer_body_disintegrate_ug" );
|
||||
level._effect["zombie_slowgun_sizzle"] = loadfx( "weapon/paralyzer/fx_paralyzer_hit_dmg" );
|
||||
level._effect["zombie_slowgun_sizzle_ug"] = loadfx( "weapon/paralyzer/fx_paralyzer_hit_dmg_ug" );
|
||||
level._effect["player_slowgun_sizzle"] = loadfx( "weapon/paralyzer/fx_paralyzer_hit_noharm" );
|
||||
level._effect["player_slowgun_sizzle_ug"] = loadfx( "weapon/paralyzer/fx_paralyzer_hit_noharm" );
|
||||
level._effect["player_slowgun_sizzle_1st"] = loadfx( "weapon/paralyzer/fx_paralyzer_hit_noharm_view" );
|
||||
onplayerconnect_callback( ::slowgun_player_connect );
|
||||
level.slowgun_damage = 40;
|
||||
level.slowgun_damage_ug = 60;
|
||||
level.slowgun_damage_mod = "MOD_PROJECTILE_SPLASH";
|
||||
precacherumble( "damage_heavy" );
|
||||
}
|
||||
|
||||
slowgun_on_zombie_spawned()
|
||||
{
|
||||
self set_anim_rate( 1.0 );
|
||||
self.paralyzer_hit_callback = ::zombie_paralyzed;
|
||||
self.paralyzer_damaged_multiplier = 1;
|
||||
self.paralyzer_score_time_ms = gettime();
|
||||
self.paralyzer_slowtime = 0;
|
||||
self setclientfield( "slowgun_fx", 0 );
|
||||
}
|
||||
|
||||
zombie_paralyzed( player, upgraded )
|
||||
{
|
||||
if ( !can_be_paralyzed( self ) )
|
||||
return;
|
||||
|
||||
insta = player maps\mp\zombies\_zm_powerups::is_insta_kill_active();
|
||||
|
||||
if ( upgraded )
|
||||
self setclientfield( "slowgun_fx", 5 );
|
||||
else
|
||||
self setclientfield( "slowgun_fx", 1 );
|
||||
|
||||
if ( self.slowgun_anim_rate <= 0.1 || insta && self.slowgun_anim_rate <= 0.5 )
|
||||
{
|
||||
if ( upgraded )
|
||||
damage = level.slowgun_damage_ug;
|
||||
else
|
||||
damage = level.slowgun_damage;
|
||||
|
||||
damage *= randomfloatrange( 0.667, 1.5 );
|
||||
damage *= self.paralyzer_damaged_multiplier;
|
||||
|
||||
if ( !isdefined( self.paralyzer_damage ) )
|
||||
self.paralyzer_damage = 0;
|
||||
|
||||
// if ( self.paralyzer_damage > 47073 )
|
||||
// damage *= 47073 / self.paralyzer_damage;
|
||||
|
||||
self.paralyzer_damage += damage;
|
||||
|
||||
if ( insta )
|
||||
damage = self.health + 666;
|
||||
|
||||
if ( isalive( self ) )
|
||||
self dodamage( damage, player.origin, player, player, "none", level.slowgun_damage_mod, 0, "slowgun_zm" );
|
||||
|
||||
self.paralyzer_damaged_multiplier *= 1.15;
|
||||
self.paralyzer_damaged_multiplier = min( self.paralyzer_damaged_multiplier, 50 );
|
||||
}
|
||||
else
|
||||
self.paralyzer_damaged_multiplier = 1;
|
||||
|
||||
self zombie_slow_for_time( 0.2 );
|
||||
}
|
||||
|
||||
watch_reset_anim_rate()
|
||||
{
|
||||
|
@ -16,6 +16,8 @@ main()
|
||||
replaceFunc(maps\mp\zombies\_zm_buildables_pooled::add_buildable_to_pool, scripts\zm\replaced\_zm_buildables_pooled::add_buildable_to_pool);
|
||||
replaceFunc(maps\mp\zombies\_zm_equip_subwoofer::startsubwooferdecay, scripts\zm\replaced\_zm_equip_subwoofer::startsubwooferdecay);
|
||||
replaceFunc(maps\mp\zombies\_zm_equip_subwoofer::subwoofer_network_choke, scripts\zm\replaced\_zm_equip_subwoofer::subwoofer_network_choke);
|
||||
replaceFunc(maps\mp\zombies\_zm_weap_slowgun::init, scripts\zm\replaced\_zm_weap_slowgun::init);
|
||||
replaceFunc(maps\mp\zombies\_zm_weap_slowgun::zombie_paralyzed, scripts\zm\replaced\_zm_weap_slowgun::zombie_paralyzed);
|
||||
replaceFunc(maps\mp\zombies\_zm_weap_slowgun::watch_reset_anim_rate, scripts\zm\replaced\_zm_weap_slowgun::watch_reset_anim_rate);
|
||||
replaceFunc(maps\mp\zombies\_zm_banking::init, scripts\zm\replaced\_zm_banking::init);
|
||||
replaceFunc(maps\mp\zombies\_zm_banking::bank_deposit_box, scripts\zm\replaced\_zm_banking::bank_deposit_box);
|
||||
|
Reference in New Issue
Block a user