mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-08 06:12:17 -05:00
Storm PSR: add scripted bullet penetration
Storm PSR: decrease minimum damage Storm PSR: scale damage Storm PSR: decrease charge time
This commit is contained in:
parent
674ca8713e
commit
9eecebf2fb
@ -488,6 +488,8 @@
|
|||||||
|
|
||||||
#### Storm PSR
|
#### Storm PSR
|
||||||
* Added on Tranzit
|
* Added on Tranzit
|
||||||
|
* Kills on any round fully charged
|
||||||
|
* Infinite penetration
|
||||||
|
|
||||||
### Wonder Weapons
|
### Wonder Weapons
|
||||||
|
|
||||||
|
@ -379,6 +379,7 @@ on_player_connect()
|
|||||||
player thread on_player_revived();
|
player thread on_player_revived();
|
||||||
player thread on_player_fake_revive();
|
player thread on_player_fake_revive();
|
||||||
|
|
||||||
|
player thread weapon_fire_watcher();
|
||||||
player thread grenade_fire_watcher();
|
player thread grenade_fire_watcher();
|
||||||
player thread player_hide_turrets_from_other_players();
|
player thread player_hide_turrets_from_other_players();
|
||||||
player thread sndmeleewpnsound();
|
player thread sndmeleewpnsound();
|
||||||
@ -608,10 +609,12 @@ set_dvars()
|
|||||||
if (level.script == "zm_transit")
|
if (level.script == "zm_transit")
|
||||||
{
|
{
|
||||||
setDvar("bg_chargeShotMaxBulletsInQueue", 5);
|
setDvar("bg_chargeShotMaxBulletsInQueue", 5);
|
||||||
|
setDvar("bg_chargeShotQueueTime", 250);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setDvar("bg_chargeShotMaxBulletsInQueue", 3);
|
setDvar("bg_chargeShotMaxBulletsInQueue", 3);
|
||||||
|
setDvar("bg_chargeShotQueueTime", 500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -647,10 +650,12 @@ set_client_dvars()
|
|||||||
if (level.script == "zm_transit")
|
if (level.script == "zm_transit")
|
||||||
{
|
{
|
||||||
self setClientDvar("bg_chargeShotMaxBulletsInQueue", 5);
|
self setClientDvar("bg_chargeShotMaxBulletsInQueue", 5);
|
||||||
|
self setClientDvar("bg_chargeShotQueueTime", 250);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
self setClientDvar("bg_chargeShotMaxBulletsInQueue", 3);
|
self setClientDvar("bg_chargeShotMaxBulletsInQueue", 3);
|
||||||
|
self setClientDvar("bg_chargeShotQueueTime", 500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1896,6 +1901,22 @@ wallbuy_cost_changes()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
weapon_fire_watcher()
|
||||||
|
{
|
||||||
|
level endon("end_game");
|
||||||
|
self endon("disconnect");
|
||||||
|
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
self waittill("weapon_fired", weapname);
|
||||||
|
|
||||||
|
if (issubstr(weapname, "metalstorm"))
|
||||||
|
{
|
||||||
|
self thread metalstorm_fired(weapname);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
grenade_fire_watcher()
|
grenade_fire_watcher()
|
||||||
{
|
{
|
||||||
level endon("end_game");
|
level endon("end_game");
|
||||||
@ -1917,6 +1938,67 @@ grenade_fire_watcher()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
metalstorm_fired(weapname)
|
||||||
|
{
|
||||||
|
forward_angles = self getweaponforwarddir();
|
||||||
|
fire_origin = self getweaponmuzzlepoint();
|
||||||
|
end_origin = fire_origin + (forward_angles * 10000);
|
||||||
|
cylinder_dist_squared = 12 * 12;
|
||||||
|
height_dist = 36;
|
||||||
|
targets = getaispeciesarray(level.zombie_team, "all");
|
||||||
|
targets = arraycombine(targets, get_players(), 1, 0);
|
||||||
|
|
||||||
|
foreach (target in targets)
|
||||||
|
{
|
||||||
|
if (isdefined(self.team) && isdefined(target.team) && self.team == target.team)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (target damageconetrace(fire_origin, self) == 0)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
test_origin = target getcentroid();
|
||||||
|
normal = vectornormalize(test_origin - fire_origin);
|
||||||
|
dot = vectordot(forward_angles, normal);
|
||||||
|
|
||||||
|
if (dot < 0)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
radial_origin = pointonsegmentnearesttopoint(fire_origin, end_origin, test_origin);
|
||||||
|
|
||||||
|
if (distance2dsquared(test_origin, radial_origin) > cylinder_dist_squared)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (abs(test_origin[2] - radial_origin[2]) > height_dist)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
damage = self metalstorm_get_damage(weapname);
|
||||||
|
|
||||||
|
target dodamage(damage, target.origin, self, self, "none", "MOD_RIFLE_BULLET", 0, weapname);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
metalstorm_get_damage(weapname)
|
||||||
|
{
|
||||||
|
base_damage = 1000;
|
||||||
|
|
||||||
|
if (issubstr(weapname, "upgraded"))
|
||||||
|
{
|
||||||
|
base_damage = 2000;
|
||||||
|
}
|
||||||
|
|
||||||
|
return base_damage * self.chargeshotlevel;
|
||||||
|
}
|
||||||
|
|
||||||
temp_disable_offhand_weapons()
|
temp_disable_offhand_weapons()
|
||||||
{
|
{
|
||||||
self endon("disconnect");
|
self endon("disconnect");
|
||||||
|
@ -1572,6 +1572,18 @@ actor_damage_override(inflictor, attacker, damage, flags, meansofdeath, weapon,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (issubstr(weapon, "metalstorm"))
|
||||||
|
{
|
||||||
|
if (issubstr(weapon, "upgraded"))
|
||||||
|
{
|
||||||
|
final_damage = scale_damage(final_damage, 10000);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
final_damage = scale_damage(final_damage, 5000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (weapon == "staff_revive_zm")
|
if (weapon == "staff_revive_zm")
|
||||||
{
|
{
|
||||||
if (!is_true(self.is_mechz))
|
if (!is_true(self.is_mechz))
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user