diff --git a/README.md b/README.md index d8b13174..0684af07 100644 --- a/README.md +++ b/README.md @@ -100,6 +100,7 @@ * Removed hint when player is first attacked in solo ### Leapers +* No longer give each player 2000 points when rewarded a free perk powerup * Initial leaper round always happens on round 5 or 6 ### Brutus diff --git a/scripts/zm/replaced/_zm_ai_leaper.gsc b/scripts/zm/replaced/_zm_ai_leaper.gsc index 8d860457..22754ad4 100644 --- a/scripts/zm/replaced/_zm_ai_leaper.gsc +++ b/scripts/zm/replaced/_zm_ai_leaper.gsc @@ -70,4 +70,39 @@ leaper_round_tracker() level.leaper_round_count += 1; } } +} + +leaper_round_accuracy_tracking() +{ + players = getplayers(); + level.leaper_round_accurate_players = 0; + + for ( i = 0; i < players.size; i++ ) + { + players[i].total_shots_start_leaper_round = players[i] maps\mp\gametypes_zm\_globallogic_score::getpersstat( "total_shots" ); + players[i].total_hits_start_leaper_round = players[i] maps\mp\gametypes_zm\_globallogic_score::getpersstat( "hits" ); + } + + level waittill( "last_leaper_down" ); + + players = getplayers(); + + for ( i = 0; i < players.size; i++ ) + { + total_shots_end_leaper_round = players[i] maps\mp\gametypes_zm\_globallogic_score::getpersstat( "total_shots" ) - players[i].total_shots_start_leaper_round; + total_hits_end_leaper_round = players[i] maps\mp\gametypes_zm\_globallogic_score::getpersstat( "hits" ) - players[i].total_hits_start_leaper_round; + + if ( total_shots_end_leaper_round == total_hits_end_leaper_round ) + level.leaper_round_accurate_players++; + } + + if ( level.leaper_round_accurate_players == players.size ) + { + if ( isdefined( level.last_leaper_origin ) ) + { + trace = groundtrace( level.last_leaper_origin + vectorscale( ( 0, 0, 1 ), 10.0 ), level.last_leaper_origin + vectorscale( ( 0, 0, -1 ), 150.0 ), 0, undefined, 1 ); + power_up_origin = trace["position"]; + level thread maps\mp\zombies\_zm_powerups::specific_powerup_drop( "free_perk", power_up_origin + vectorscale( ( 1, 1, 0 ), 30.0 ) ); + } + } } \ No newline at end of file diff --git a/scripts/zm/zm_highrise/zm_highrise_reimagined.gsc b/scripts/zm/zm_highrise/zm_highrise_reimagined.gsc index 8f0fead3..8938f4a4 100644 --- a/scripts/zm/zm_highrise/zm_highrise_reimagined.gsc +++ b/scripts/zm/zm_highrise/zm_highrise_reimagined.gsc @@ -39,6 +39,7 @@ main() replaceFunc(maps\mp\zm_highrise_distance_tracking::zombie_tracking_init, scripts\zm\replaced\zm_highrise_distance_tracking::zombie_tracking_init); replaceFunc(maps\mp\zm_highrise_distance_tracking::delete_zombie_noone_looking, scripts\zm\replaced\zm_highrise_distance_tracking::delete_zombie_noone_looking); replaceFunc(maps\mp\zombies\_zm_ai_leaper::leaper_round_tracker, scripts\zm\replaced\_zm_ai_leaper::leaper_round_tracker); + replaceFunc(maps\mp\zombies\_zm_ai_leaper::leaper_round_accuracy_tracking, scripts\zm\replaced\_zm_ai_leaper::leaper_round_accuracy_tracking); replaceFunc(maps\mp\zombies\_zm_equip_springpad::springpadthink, scripts\zm\replaced\_zm_equip_springpad::springpadthink); replaceFunc(maps\mp\zombies\_zm_weap_slipgun::init, scripts\zm\replaced\_zm_weap_slipgun::init); replaceFunc(maps\mp\zombies\_zm_weap_slipgun::slipgun_zombie_1st_hit_response, scripts\zm\replaced\_zm_weap_slipgun::slipgun_zombie_1st_hit_response);