diff --git a/scripts/zm/_zm_reimagined.gsc b/scripts/zm/_zm_reimagined.gsc index 0461bb61..7d5bbcc9 100644 --- a/scripts/zm/_zm_reimagined.gsc +++ b/scripts/zm/_zm_reimagined.gsc @@ -57,6 +57,8 @@ main() 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_weapons::createballisticknifewatcher_zm, scripts\zm\replaced\_zm_weapons::createballisticknifewatcher_zm); + replaceFunc(maps\mp\zombies\_zm_weapons::weapon_spawn_think, scripts\zm\replaced\_zm_weapons::weapon_spawn_think); + replaceFunc(maps\mp\zombies\_zm_weapons::weapon_set_first_time_hint, scripts\zm\replaced\_zm_weapons::weapon_set_first_time_hint); replaceFunc(maps\mp\zombies\_zm_magicbox::treasure_chest_init, scripts\zm\replaced\_zm_magicbox::treasure_chest_init); replaceFunc(maps\mp\zombies\_zm_magicbox::treasure_chest_move, scripts\zm\replaced\_zm_magicbox::treasure_chest_move); replaceFunc(maps\mp\zombies\_zm_magicbox::treasure_chest_timeout, scripts\zm\replaced\_zm_magicbox::treasure_chest_timeout); @@ -2402,7 +2404,7 @@ wallbuy_decrease_upgraded_ammo_cost() { 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; + level._unitriggers.trigger_stubs[i].trigger_func = scripts\zm\replaced\_zm_weapons::weapon_spawn_think; } } } @@ -2430,272 +2432,6 @@ wallbuy_claymore_changes() } } -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")) diff --git a/scripts/zm/replaced/_zm_weapons.gsc b/scripts/zm/replaced/_zm_weapons.gsc index dc01518e..edfe64ce 100644 --- a/scripts/zm/replaced/_zm_weapons.gsc +++ b/scripts/zm/replaced/_zm_weapons.gsc @@ -220,7 +220,6 @@ ammo_give( weapon ) return false; } - lethal_grenade_update_prompt( player ) { weapon = self.stub.zombie_weapon_upgrade; @@ -234,6 +233,272 @@ lethal_grenade_update_prompt( player ) return 1; } +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 ); + } + } +} + get_upgraded_ammo_cost( weapon_name ) { if ( isDefined( level.zombie_weapons[ weapon_name ].upgraded_ammo_cost ) ) @@ -244,6 +509,11 @@ get_upgraded_ammo_cost( weapon_name ) return 2500; } +weapon_set_first_time_hint( cost, ammo_cost ) +{ + // remove +} + makegrenadedudanddestroy() { self endon( "death" ); diff --git a/scripts/zm/zm_transit/zm_transit_reimagined.gsc b/scripts/zm/zm_transit/zm_transit_reimagined.gsc index 442375cd..ee1f3a45 100644 --- a/scripts/zm/zm_transit/zm_transit_reimagined.gsc +++ b/scripts/zm/zm_transit/zm_transit_reimagined.gsc @@ -210,9 +210,11 @@ b23r_hint_string_fix() { if (trig.zombie_weapon_upgrade == "beretta93r_zm") { - hint = maps\mp\zombies\_zm_weapons::get_weapon_hint(trig.zombie_weapon_upgrade); + level.zombie_weapons[trig.zombie_weapon_upgrade].hint = "Hold ^3[{+activate}]^7 for &&1 [Cost: &&2], Ammo [Cost: &&3], \n Upgraded Ammo [Cost: &&4]"; + hint = level.zombie_weapons[trig.zombie_weapon_upgrade].hint; cost = level.zombie_weapons[trig.zombie_weapon_upgrade].cost; - trig sethintstring(hint, cost); + display_name = getweapondisplayname(trig.zombie_weapon_upgrade); + trig sethintstring(hint, display_name, cost, cost / 2, 2500); } } }