diff --git a/README.md b/README.md index 0c61ba38..b0737809 100644 --- a/README.md +++ b/README.md @@ -152,7 +152,7 @@ ### SMR * Increased damage by 100% -* Removed ADS spread +* Removed aim spread ### STG-44 * Upgraded: decreased stock ammo from 330 to 300 @@ -242,6 +242,9 @@ ### Acid Gat * Kills on any round +* Vastly improved accuracy +* Aiming and Deadshot improve accuracy +* Projectile no longer seeks toward zombies * Stuck zombie counts as a kill ### Staffs diff --git a/scripts/zm/replaced/_zm_weap_blundersplat.gsc b/scripts/zm/replaced/_zm_weap_blundersplat.gsc index 7cd18d4d..37cd6a52 100644 --- a/scripts/zm/replaced/_zm_weap_blundersplat.gsc +++ b/scripts/zm/replaced/_zm_weap_blundersplat.gsc @@ -7,6 +7,87 @@ #include maps\mp\animscripts\zm_shared; #include maps\mp\zombies\_zm_weap_blundersplat; +wait_for_blundersplat_fired() +{ + self endon( "disconnect" ); + + self waittill( "spawned_player" ); + + for (;;) + { + self waittill( "weapon_fired", str_weapon ); + + if ( str_weapon == "blundersplat_zm" ) + { + _titus_locate_target( 1, 0 ); + wait_network_frame(); + _titus_locate_target( 1, 1 ); + wait_network_frame(); + _titus_locate_target( 1, 2 ); + wait_network_frame(); + } + } +} + +wait_for_blundersplat_upgraded_fired() +{ + self endon( "disconnect" ); + + self waittill( "spawned_player" ); + + for (;;) + { + self waittill( "weapon_fired", str_weapon ); + + if ( str_weapon == "blundersplat_upgraded_zm" ) + { + _titus_locate_target( 0, 0 ); + wait_network_frame(); + _titus_locate_target( 0, 1 ); + wait_network_frame(); + _titus_locate_target( 0, 2 ); + wait_network_frame(); + } + } +} + +_titus_locate_target( is_not_upgraded = 1, count ) +{ + fire_angles = self getplayerangles(); + fire_origin = self getplayercamerapos(); + + if ( is_not_upgraded ) + n_fuse_timer = randomfloatrange( 1.0, 2.5 ); + else + n_fuse_timer = randomfloatrange( 3.0, 4.0 ); + + n_spread = 5; + if (isads(self)) + { + n_spread *= 0.5; + } + else if (self hasPerk("specialty_deadshot")) + { + n_spread *= getdvarfloat("perk_weapSpreadMultiplier"); + } + + if (count == 1) + { + fire_angles += (0, n_spread, 0); + } + else if (count == 2) + { + fire_angles -= (0, n_spread, 0); + } + + vec = anglestoforward( fire_angles ); + trace_end = fire_origin + vec * 20000; + trace = bullettrace( fire_origin, trace_end, 1, self ); + offsetpos = trace["position"]; + e_dart = magicbullet( "blundersplat_bullet_zm", fire_origin, offsetpos, self ); + e_dart thread _titus_reset_grenade_fuse( n_fuse_timer ); +} + _titus_target_animate_and_die( n_fuse_timer, inflictor ) { self endon( "death" ); diff --git a/scripts/zm/zm_prison/zm_prison_reimagined.gsc b/scripts/zm/zm_prison/zm_prison_reimagined.gsc index c1d46695..961176ea 100644 --- a/scripts/zm/zm_prison/zm_prison_reimagined.gsc +++ b/scripts/zm/zm_prison/zm_prison_reimagined.gsc @@ -56,6 +56,8 @@ main() replaceFunc(maps\mp\zombies\_zm_riotshield_prison::trackriotshield, scripts\zm\replaced\_zm_riotshield_prison::trackriotshield); replaceFunc(maps\mp\zombies\_zm_weap_riotshield_prison::init, scripts\zm\replaced\_zm_weap_riotshield_prison::init); replaceFunc(maps\mp\zombies\_zm_weap_riotshield_prison::player_damage_shield, scripts\zm\replaced\_zm_weap_riotshield_prison::player_damage_shield); + replaceFunc(maps\mp\zombies\_zm_weap_blundersplat::wait_for_blundersplat_fired, scripts\zm\replaced\_zm_weap_blundersplat::wait_for_blundersplat_fired); + replaceFunc(maps\mp\zombies\_zm_weap_blundersplat::wait_for_blundersplat_upgraded_fired, scripts\zm\replaced\_zm_weap_blundersplat::wait_for_blundersplat_upgraded_fired); replaceFunc(maps\mp\zombies\_zm_weap_blundersplat::_titus_target_animate_and_die, scripts\zm\replaced\_zm_weap_blundersplat::_titus_target_animate_and_die); replaceFunc(maps\mp\zombies\_zm_weap_tomahawk::calculate_tomahawk_damage, scripts\zm\replaced\_zm_weap_tomahawk::calculate_tomahawk_damage); replaceFunc(maps\mp\zombies\_zm_weap_tomahawk::get_grenade_charge_power, scripts\zm\replaced\_zm_weap_tomahawk::get_grenade_charge_power);