1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-06-07 21:59:49 -05:00

EMP Grenade: decrease player EMP time

EMP Grenade: change projectile speed, explosion radius, and shellshock to match MP
Optimize EMP Grenade code
This commit is contained in:
Jbleezy 2023-12-20 20:24:22 -08:00
parent 679a24aa5c
commit 2307b42033
5 changed files with 33 additions and 17 deletions

View File

@ -217,11 +217,14 @@
### EMP Grenade
* No longer disables HUD
* Disables player's perks for 30 seconds
* Disables player's perks for 12 seconds
* Increased ammo from 2 to 3
* Added fx to EMP'd players
* Decreased zombie EMP radius by 30% (same radius as perk machine EMP)
* Decreased projectile speed by 30% (same as Black Ops 2 Multiplayer EMP Grenade)
* Decreased zombie EMP radius by 17% (same as Black Ops 2 Multiplayer EMP Grenade)
* Increased perk machine EMP radius by 22% (same as Black Ops 2 Multiplayer EMP Grenade)
* Decreased perk machine EMP time from 90 seconds to 60 seconds
* Changed shellshock (same as Black Ops 2 Multiplayer EMP Grenade)
* Added fx to EMP'd players
* Can destroy deployed Zombie Shields
* Sprinting no longer wakes up EMP'd zombies
* Zombies that are in the ground can no longer get EMP'd

View File

@ -332,8 +332,6 @@ post_all_players_spawned()
}
level.zombie_vars["riotshield_hit_points"] = 1500;
level.zombie_vars["emp_stun_range"] = 420;
level.zombie_vars["emp_perk_off_time"] = 60;
level.zombie_vars["slipgun_reslip_rate"] = 0;
level.zombie_vars["zombie_perk_divetonuke_min_damage"] = 1000;
level.zombie_vars["zombie_perk_divetonuke_max_damage"] = 5000;

View File

@ -3,6 +3,21 @@
#include common_scripts\utility;
#include maps\mp\zombies\_zm_utility;
init()
{
if (!emp_bomb_exists())
return;
set_zombie_var("emp_stun_range", 512);
set_zombie_var("emp_stun_time", 12);
set_zombie_var("emp_perk_off_range", 512);
set_zombie_var("emp_perk_off_time", 60);
precacheshellshock("flashbang");
level thread onplayerconnect();
level._equipment_emp_destroy_fx = loadfx("weapon/emp/fx_emp_explosion_equip");
}
emp_detonate(grenade)
{
grenade_owner = undefined;
@ -12,11 +27,10 @@ emp_detonate(grenade)
grenade_owner = grenade.owner;
}
grenade waittill("explode", grenade_origin);
grenade waittill("explode", origin);
emp_radius = level.zombie_vars["emp_perk_off_range"];
emp_radius = level.zombie_vars["emp_stun_range"];
emp_time = level.zombie_vars["emp_perk_off_time"];
origin = grenade_origin;
if (!isDefined(origin))
{
@ -24,11 +38,11 @@ emp_detonate(grenade)
}
level notify("emp_detonate", origin, emp_radius);
self thread emp_detonate_zombies(grenade_origin, grenade_owner);
self thread emp_detonate_zombies(origin, emp_radius, grenade_owner);
if (isDefined(level.custom_emp_detonate))
{
thread [[level.custom_emp_detonate]](grenade_origin);
thread [[level.custom_emp_detonate]](origin);
}
if (isDefined(grenade_owner))
@ -44,9 +58,9 @@ emp_detonate(grenade)
maps\mp\zombies\_zm_power::revert_power_to_list(1, origin, emp_radius, disabled_list);
}
emp_detonate_zombies(grenade_origin, grenade_owner)
emp_detonate_zombies(origin, radius, owner)
{
zombies = get_array_of_closest(grenade_origin, getaispeciesarray(level.zombie_team, "all"), undefined, undefined, level.zombie_vars["emp_stun_range"]);
zombies = get_array_of_closest(origin, getaispeciesarray(level.zombie_team, "all"), undefined, undefined, radius);
if (!isdefined(zombies))
return;
@ -77,8 +91,8 @@ emp_detonate_zombies(grenade_origin, grenade_owner)
wait 0.05;
}
if (stunned >= 10 && isdefined(grenade_owner))
grenade_owner notify("the_lights_of_their_eyes");
if (stunned >= 10 && isdefined(owner))
owner notify("the_lights_of_their_eyes");
}
destroyequipment(origin, radius)
@ -151,8 +165,8 @@ emp_players(origin, radius, owner)
{
if (is_player_valid(player) || player maps\mp\zombies\_zm_laststand::player_is_in_laststand())
{
time = 30;
player shellshock("frag_grenade_mp", 2);
time = level.zombie_vars["emp_stun_time"];
player shellshock("flashbang", 1);
player thread player_perk_pause_and_unpause_all_perks(time);
player thread player_emp_fx(time);
}

View File

@ -41,6 +41,7 @@ main()
replaceFunc(maps\mp\zombies\_zm_weap_jetgun::jetgun_grind_zombie, scripts\zm\replaced\_zm_weap_jetgun::jetgun_grind_zombie);
replaceFunc(maps\mp\zombies\_zm_weap_jetgun::handle_overheated_jetgun, scripts\zm\replaced\_zm_weap_jetgun::handle_overheated_jetgun);
replaceFunc(maps\mp\zombies\_zm_weap_jetgun::jetgun_network_choke, scripts\zm\replaced\_zm_weap_jetgun::jetgun_network_choke);
replaceFunc(maps\mp\zombies\_zm_weap_emp_bomb::init, scripts\zm\replaced\_zm_weap_emp_bomb::init);
replaceFunc(maps\mp\zombies\_zm_weap_emp_bomb::emp_detonate, scripts\zm\replaced\_zm_weap_emp_bomb::emp_detonate);
replaceFunc(maps\mp\zombies\_zm_equip_electrictrap::startelectrictrapdeploy, scripts\zm\replaced\_zm_equip_electrictrap::startelectrictrapdeploy);
replaceFunc(maps\mp\zombies\_zm_equip_electrictrap::cleanupoldtrap, scripts\zm\replaced\_zm_equip_electrictrap::cleanupoldtrap);

File diff suppressed because one or more lines are too long