mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-10 15:17:57 -05:00
Wallbuys: decrease upgraded ammo cost
This commit is contained in:
@ -101,6 +101,7 @@
|
||||
|
||||
## Wallbuys
|
||||
* Increased trigger radius
|
||||
* Decreased upgraded ammo cost from 4500 to 2500
|
||||
|
||||
## Perks
|
||||
* No longer deactivated if the perk machine is powered off
|
||||
|
@ -19,6 +19,7 @@ main()
|
||||
replaceFunc(maps/mp/zombies/_zm_playerhealth::playerhealthregen, scripts/zm/replaced/_zm_playerhealth::playerhealthregen);
|
||||
replaceFunc(maps/mp/zombies/_zm_utility::track_players_intersection_tracker, scripts/zm/replaced/_zm_utility::track_players_intersection_tracker);
|
||||
replaceFunc(maps/mp/zombies/_zm_utility::is_headshot, scripts/zm/replaced/_zm_utility::is_headshot);
|
||||
replaceFunc(maps/mp/zombies/_zm_weapons::get_upgraded_ammo_cost, scripts/zm/replaced/_zm_weapons::get_upgraded_ammo_cost);
|
||||
replaceFunc(maps/mp/zombies/_zm_weapons::makegrenadedudanddestroy, scripts/zm/replaced/_zm_weapons::makegrenadedudanddestroy);
|
||||
replaceFunc(maps/mp/zombies/_zm_powerups::nuke_powerup, scripts/zm/replaced/_zm_powerups::nuke_powerup);
|
||||
replaceFunc(maps/mp/zombies/_zm_equipment::placed_equipment_think, scripts/zm/replaced/_zm_equipment::placed_equipment_think);
|
||||
@ -172,6 +173,7 @@ post_all_players_spawned()
|
||||
disable_bank();
|
||||
|
||||
wallbuy_increase_trigger_radius();
|
||||
wallbuy_decrease_upgraded_ammo_cost();
|
||||
wallbuy_location_changes();
|
||||
|
||||
zone_changes();
|
||||
@ -215,7 +217,7 @@ post_all_players_spawned()
|
||||
level thread buried_enable_fountain_transport();
|
||||
level thread buried_disable_ghost_free_perk_on_damage();
|
||||
|
||||
level thread wallbuy_dynamic_increase_trigger_radius();
|
||||
level thread wallbuy_dynamic_update();
|
||||
|
||||
level thread tomb_increase_solo_door_prices();
|
||||
level thread tomb_remove_shovels_from_map();
|
||||
@ -2095,7 +2097,284 @@ wallbuy_increase_trigger_radius()
|
||||
}
|
||||
}
|
||||
|
||||
wallbuy_dynamic_increase_trigger_radius()
|
||||
wallbuy_decrease_upgraded_ammo_cost()
|
||||
{
|
||||
for(i = 0; i < level._unitriggers.trigger_stubs.size; i++)
|
||||
{
|
||||
if(isDefined(level._unitriggers.trigger_stubs[i].trigger_func) && level._unitriggers.trigger_stubs[i].trigger_func == maps/mp/zombies/_zm_weapons::weapon_spawn_think)
|
||||
{
|
||||
level._unitriggers.trigger_stubs[i].trigger_func = ::weapon_spawn_think;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
weapon_spawn_think()
|
||||
{
|
||||
cost = maps/mp/zombies/_zm_weapons::get_weapon_cost( self.zombie_weapon_upgrade );
|
||||
ammo_cost = maps/mp/zombies/_zm_weapons::get_ammo_cost( self.zombie_weapon_upgrade );
|
||||
shared_ammo_weapon = undefined;
|
||||
second_endon = undefined;
|
||||
|
||||
is_grenade = 0;
|
||||
if(weapontype( self.zombie_weapon_upgrade ) == "grenade")
|
||||
{
|
||||
is_grenade = 1;
|
||||
}
|
||||
|
||||
if ( isDefined( self.stub ) )
|
||||
{
|
||||
second_endon = "kill_trigger";
|
||||
self.first_time_triggered = self.stub.first_time_triggered;
|
||||
}
|
||||
|
||||
if ( isDefined( self.stub ) && is_true( self.stub.trigger_per_player ) )
|
||||
{
|
||||
self thread maps/mp/zombies/_zm_magicbox::decide_hide_show_hint( "stop_hint_logic", second_endon, self.parent_player );
|
||||
}
|
||||
else
|
||||
{
|
||||
self thread maps/mp/zombies/_zm_magicbox::decide_hide_show_hint( "stop_hint_logic", second_endon );
|
||||
}
|
||||
|
||||
if ( is_grenade )
|
||||
{
|
||||
self.first_time_triggered = 0;
|
||||
hint = maps/mp/zombies/_zm_weapons::get_weapon_hint( self.zombie_weapon_upgrade );
|
||||
self sethintstring( hint, cost );
|
||||
}
|
||||
else if ( !isDefined( self.first_time_triggered ) )
|
||||
{
|
||||
self.first_time_triggered = 0;
|
||||
if ( isDefined( self.stub ) )
|
||||
{
|
||||
self.stub.first_time_triggered = 0;
|
||||
}
|
||||
}
|
||||
else if ( self.first_time_triggered )
|
||||
{
|
||||
if ( is_true( level.use_legacy_weapon_prompt_format ) )
|
||||
{
|
||||
self maps/mp/zombies/_zm_weapons::weapon_set_first_time_hint( cost, maps/mp/zombies/_zm_weapons::get_ammo_cost( self.zombie_weapon_upgrade ) );
|
||||
}
|
||||
}
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "trigger", player );
|
||||
|
||||
if ( !is_player_valid( player ) )
|
||||
{
|
||||
player thread ignore_triggers( 0.5 );
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( !player maps/mp/zombies/_zm_magicbox::can_buy_weapon() )
|
||||
{
|
||||
wait 0.1;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( isDefined( self.stub ) && is_true( self.stub.require_look_from ) )
|
||||
{
|
||||
toplayer = player get_eye() - self.origin;
|
||||
forward = -1 * anglesToRight( self.angles );
|
||||
dot = vectordot( toplayer, forward );
|
||||
if ( dot < 0 )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if ( player has_powerup_weapon() )
|
||||
{
|
||||
wait 0.1;
|
||||
continue;
|
||||
}
|
||||
|
||||
player_has_weapon = player maps/mp/zombies/_zm_weapons::has_weapon_or_upgrade( self.zombie_weapon_upgrade );
|
||||
if ( !player_has_weapon && is_true( level.weapons_using_ammo_sharing ) )
|
||||
{
|
||||
shared_ammo_weapon = player maps/mp/zombies/_zm_weapons::get_shared_ammo_weapon( self.zombie_weapon_upgrade );
|
||||
if ( isDefined( shared_ammo_weapon ) )
|
||||
{
|
||||
player_has_weapon = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if ( is_true( level.pers_upgrade_nube ) )
|
||||
{
|
||||
player_has_weapon = maps/mp/zombies/_zm_pers_upgrades_functions::pers_nube_should_we_give_raygun( player_has_weapon, player, self.zombie_weapon_upgrade );
|
||||
}
|
||||
|
||||
cost = maps/mp/zombies/_zm_weapons::get_weapon_cost( self.zombie_weapon_upgrade );
|
||||
if ( player maps/mp/zombies/_zm_pers_upgrades_functions::is_pers_double_points_active() )
|
||||
{
|
||||
cost = int( cost / 2 );
|
||||
}
|
||||
|
||||
if ( !player_has_weapon )
|
||||
{
|
||||
if ( player.score >= cost )
|
||||
{
|
||||
if ( self.first_time_triggered == 0 )
|
||||
{
|
||||
self maps/mp/zombies/_zm_weapons::show_all_weapon_buys( player, cost, ammo_cost, is_grenade );
|
||||
}
|
||||
|
||||
player maps/mp/zombies/_zm_score::minus_to_player_score( cost, 1 );
|
||||
bbprint( "zombie_uses", "playername %s playerscore %d round %d cost %d name %s x %f y %f z %f type %s", player.name, player.score, level.round_number, cost, self.zombie_weapon_upgrade, self.origin, "weapon" );
|
||||
level notify( "weapon_bought", player, self.zombie_weapon_upgrade );
|
||||
|
||||
if ( self.zombie_weapon_upgrade == "riotshield_zm" )
|
||||
{
|
||||
player maps/mp/zombies/_zm_equipment::equipment_give( "riotshield_zm" );
|
||||
if ( isDefined( player.player_shield_reset_health ) )
|
||||
{
|
||||
player [[ player.player_shield_reset_health ]]();
|
||||
}
|
||||
}
|
||||
else if ( self.zombie_weapon_upgrade == "jetgun_zm" )
|
||||
{
|
||||
player maps/mp/zombies/_zm_equipment::equipment_give( "jetgun_zm" );
|
||||
}
|
||||
else if ( is_lethal_grenade( self.zombie_weapon_upgrade ) )
|
||||
{
|
||||
player takeweapon( player get_player_lethal_grenade() );
|
||||
player set_player_lethal_grenade( self.zombie_weapon_upgrade );
|
||||
}
|
||||
|
||||
str_weapon = self.zombie_weapon_upgrade;
|
||||
|
||||
if ( is_true( level.pers_upgrade_nube ) )
|
||||
{
|
||||
str_weapon = maps/mp/zombies/_zm_pers_upgrades_functions::pers_nube_weapon_upgrade_check( player, str_weapon );
|
||||
}
|
||||
|
||||
player maps/mp/zombies/_zm_weapons::weapon_give( str_weapon );
|
||||
player maps/mp/zombies/_zm_stats::increment_client_stat( "wallbuy_weapons_purchased" );
|
||||
player maps/mp/zombies/_zm_stats::increment_player_stat( "wallbuy_weapons_purchased" );
|
||||
}
|
||||
else
|
||||
{
|
||||
play_sound_on_ent( "no_purchase" );
|
||||
player maps/mp/zombies/_zm_audio::create_and_play_dialog( "general", "no_money_weapon" );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
str_weapon = self.zombie_weapon_upgrade;
|
||||
|
||||
if ( isDefined( shared_ammo_weapon ) )
|
||||
{
|
||||
str_weapon = shared_ammo_weapon;
|
||||
}
|
||||
|
||||
if ( is_true( level.pers_upgrade_nube ) )
|
||||
{
|
||||
str_weapon = maps/mp/zombies/_zm_pers_upgrades_functions::pers_nube_weapon_ammo_check( player, str_weapon );
|
||||
}
|
||||
|
||||
if ( is_true( self.hacked ) )
|
||||
{
|
||||
if ( !player maps/mp/zombies/_zm_weapons::has_upgrade( str_weapon ) )
|
||||
{
|
||||
ammo_cost = maps/mp/zombies/_zm_weapons::get_upgraded_ammo_cost( str_weapon );
|
||||
}
|
||||
else
|
||||
{
|
||||
ammo_cost = maps/mp/zombies/_zm_weapons::get_ammo_cost( str_weapon );
|
||||
}
|
||||
}
|
||||
else if ( player maps/mp/zombies/_zm_weapons::has_upgrade( str_weapon ) )
|
||||
{
|
||||
ammo_cost = maps/mp/zombies/_zm_weapons::get_upgraded_ammo_cost( str_weapon );
|
||||
}
|
||||
else
|
||||
{
|
||||
ammo_cost = maps/mp/zombies/_zm_weapons::get_ammo_cost( str_weapon );
|
||||
}
|
||||
|
||||
if ( is_true( player.pers_upgrades_awarded[ "nube" ] ) )
|
||||
{
|
||||
ammo_cost = maps/mp/zombies/_zm_pers_upgrades_functions::pers_nube_override_ammo_cost( player, self.zombie_weapon_upgrade, ammo_cost );
|
||||
}
|
||||
|
||||
if ( player maps/mp/zombies/_zm_pers_upgrades_functions::is_pers_double_points_active() )
|
||||
{
|
||||
ammo_cost = int( ammo_cost / 2 );
|
||||
}
|
||||
|
||||
if ( str_weapon == "riotshield_zm" )
|
||||
{
|
||||
play_sound_on_ent( "no_purchase" );
|
||||
}
|
||||
else if ( player.score >= ammo_cost )
|
||||
{
|
||||
if ( self.first_time_triggered == 0 )
|
||||
{
|
||||
self maps/mp/zombies/_zm_weapons::show_all_weapon_buys( player, cost, ammo_cost, is_grenade );
|
||||
}
|
||||
|
||||
if ( player maps/mp/zombies/_zm_weapons::has_upgrade( str_weapon ) )
|
||||
{
|
||||
player maps/mp/zombies/_zm_stats::increment_client_stat( "upgraded_ammo_purchased" );
|
||||
player maps/mp/zombies/_zm_stats::increment_player_stat( "upgraded_ammo_purchased" );
|
||||
}
|
||||
else
|
||||
{
|
||||
player maps/mp/zombies/_zm_stats::increment_client_stat( "ammo_purchased" );
|
||||
player maps/mp/zombies/_zm_stats::increment_player_stat( "ammo_purchased" );
|
||||
}
|
||||
|
||||
if ( str_weapon == "riotshield_zm" )
|
||||
{
|
||||
if ( isDefined( player.player_shield_reset_health ) )
|
||||
{
|
||||
ammo_given = player [[ player.player_shield_reset_health ]]();
|
||||
}
|
||||
else
|
||||
{
|
||||
ammo_given = 0;
|
||||
}
|
||||
}
|
||||
else if ( player maps/mp/zombies/_zm_weapons::has_upgrade( str_weapon ) )
|
||||
{
|
||||
ammo_given = player maps/mp/zombies/_zm_weapons::ammo_give( level.zombie_weapons[ str_weapon ].upgrade_name );
|
||||
}
|
||||
else
|
||||
{
|
||||
ammo_given = player maps/mp/zombies/_zm_weapons::ammo_give( str_weapon );
|
||||
}
|
||||
|
||||
if ( ammo_given )
|
||||
{
|
||||
player maps/mp/zombies/_zm_score::minus_to_player_score( ammo_cost, 1 );
|
||||
bbprint( "zombie_uses", "playername %s playerscore %d round %d cost %d name %s x %f y %f z %f type %s", player.name, player.score, level.round_number, ammo_cost, str_weapon, self.origin, "ammo" );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
play_sound_on_ent( "no_purchase" );
|
||||
|
||||
if ( isDefined( level.custom_generic_deny_vo_func ) )
|
||||
{
|
||||
player [[ level.custom_generic_deny_vo_func ]]();
|
||||
}
|
||||
else
|
||||
{
|
||||
player maps/mp/zombies/_zm_audio::create_and_play_dialog( "general", "no_money_weapon" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( isDefined( self.stub ) && isDefined( self.stub.prompt_and_visibility_func ) )
|
||||
{
|
||||
self [[ self.stub.prompt_and_visibility_func ]]( player );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
wallbuy_dynamic_update()
|
||||
{
|
||||
if(!(is_classic() && level.scr_zm_map_start_location == "processing"))
|
||||
{
|
||||
@ -2115,11 +2394,13 @@ wallbuy_dynamic_increase_trigger_radius()
|
||||
{
|
||||
prev_built_wallbuys = level.built_wallbuys;
|
||||
wallbuy_increase_trigger_radius();
|
||||
wallbuy_decrease_upgraded_ammo_cost();
|
||||
}
|
||||
|
||||
if (level.built_wallbuys == -100)
|
||||
{
|
||||
wallbuy_increase_trigger_radius();
|
||||
wallbuy_decrease_upgraded_ammo_cost();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,16 @@
|
||||
#include common_scripts\utility;
|
||||
#include maps\mp\zombies\_zm_utility;
|
||||
|
||||
get_upgraded_ammo_cost( weapon_name )
|
||||
{
|
||||
if ( isDefined( level.zombie_weapons[ weapon_name ].upgraded_ammo_cost ) )
|
||||
{
|
||||
return level.zombie_weapons[ weapon_name ].upgraded_ammo_cost;
|
||||
}
|
||||
|
||||
return 2500;
|
||||
}
|
||||
|
||||
makegrenadedudanddestroy()
|
||||
{
|
||||
self endon( "death" );
|
||||
|
Reference in New Issue
Block a user