diff --git a/README.md b/README.md index 1121d201..7167bfb3 100644 --- a/README.md +++ b/README.md @@ -81,10 +81,12 @@ * [G-Strike Beacon](#g-strike-beacon) * [Equipment](#equipment) * [Combat Knife](#combat-knife) + * [One Inch Punch](#one-inch-punch) + * [Frag Grenade](#frag-grenade) + * [Semtex](#semtex) * [Claymore](#claymore) * [Bouncing Betty](#bouncing-betty) * [Time Bomb](#time-bomb) - * [One Inch Punch](#one-inch-punch) * [Wallbuys](#wallbuys) * [Mystery Box](#mystery-box) * [Perks](#perks) @@ -562,6 +564,17 @@ #### Combat Knife * Added model from Black Ops 2 Multiplayer +#### One Inch Punch +* Upgraded: elemental punch changes based on which staff the player currently has +* Upgraded: uses melee lunge anim as normal melee anim +* Fixed an issue where a player's melee weapon wouldn't reset if the player bled out in the Giant Robots + +#### Frag Grenade +* Replaces Semtex on Origins + +#### Semtex +* Replaces Frag Grenade on Mob of the Dead + #### Claymore * Can be repurchased * Can be placed while in the air @@ -580,11 +593,6 @@ * Switches to detonator at correct time after throwing * Fixed detonator raise and drop anims -#### One Inch Punch -* Upgraded: elemental punch changes based on which staff the player currently has -* Upgraded: uses melee lunge anim as normal melee anim -* Fixed an issue where a player's melee weapon wouldn't reset if the player bled out in the Giant Robots - ## Wallbuys * Purchasing ammo refills clip ammo * Increased trigger radius diff --git a/maps/mp/zm_tomb.d3dbsp b/maps/mp/zm_tomb.d3dbsp index 17acaa51..62577d11 100644 --- a/maps/mp/zm_tomb.d3dbsp +++ b/maps/mp/zm_tomb.d3dbsp @@ -5178,7 +5178,7 @@ { "origin" "2301 2860 -216" "classname" "script_struct" -"zombie_weapon_upgrade" "sticky_grenade_zm" +"zombie_weapon_upgrade" "frag_grenade_zm" "targetname" "weapon_upgrade" "target" "pf2212_auto37" "angles" "0 90 0" @@ -5383,7 +5383,7 @@ { "origin" "803.157 -2885.94 104" "classname" "script_struct" -"zombie_weapon_upgrade" "sticky_grenade_zm" +"zombie_weapon_upgrade" "frag_grenade_zm" "targetname" "weapon_upgrade" "target" "pf2224_auto37" "angles" "0 15 0" diff --git a/scripts/zm/_zm_reimagined.gsc b/scripts/zm/_zm_reimagined.gsc index ed74beb5..442cd3d3 100644 --- a/scripts/zm/_zm_reimagined.gsc +++ b/scripts/zm/_zm_reimagined.gsc @@ -146,8 +146,6 @@ init() setscoreboardcolumns_gametype(); - set_lethal_grenade_init(); - set_dvars(); weapon_changes(); @@ -1201,16 +1199,6 @@ setscoreboardcolumns_gametype() } } -set_lethal_grenade_init() -{ - if (level.script != "zm_transit" && level.script != "zm_nuked" && level.script != "zm_highrise" && level.script != "zm_tomb") - { - return; - } - - level.zombie_lethal_grenade_player_init = "sticky_grenade_zm"; -} - swap_staminup_perk() { vending_triggers = getentarray("zombie_vending", "targetname"); @@ -1450,6 +1438,10 @@ weapon_changes() include_weapon("held_spork_zm_alcatraz", 0); register_melee_weapon_for_level("held_spork_zm_alcatraz"); + include_weapon("sticky_grenade_zm", 0); + add_zombie_weapon("sticky_grenade_zm", undefined, &"ZOMBIE_WEAPON_STICKY_GRENADE", 250, "wpck_explo", "", 250); + register_lethal_grenade_for_level("sticky_grenade_zm"); + maps\mp\zombies\_zm_weapons::register_zombie_weapon_callback("willy_pete_zm", ::player_give_willy_pete); register_tactical_grenade_for_level("willy_pete_zm"); level.zombie_weapons["willy_pete_zm"].is_in_box = 1; @@ -1568,6 +1560,11 @@ weapon_changes() include_weapon("sa58_upgraded_zm", 0); add_zombie_weapon("sa58_zm", "sa58_upgraded_zm", &"WEAPON_SA58", 1000, "wpck_fal", "", undefined, 1); } + + if (level.script == "zm_transit" || level.script == "zm_nuked" || level.script == "zm_highrise" || level.script == "zm_prison") + { + level.zombie_lethal_grenade_player_init = "sticky_grenade_zm"; + } } player_give_willy_pete() diff --git a/scripts/zm/replaced/zm_alcatraz_weap_quest.gsc b/scripts/zm/replaced/zm_alcatraz_weap_quest.gsc index e95978b3..ac1f7c7e 100644 --- a/scripts/zm/replaced/zm_alcatraz_weap_quest.gsc +++ b/scripts/zm/replaced/zm_alcatraz_weap_quest.gsc @@ -102,4 +102,17 @@ wolf_spit_out_powerup() if (isdefined(power_ups[0])) power_ups[0] movez(120, 4); +} + +hellhole_projectile_watch() +{ + self endon("disconnect"); + + while (true) + { + self waittill("grenade_fire", grenade, weapname); + + if (is_lethal_grenade(weapname)) + self thread hellhole_grenades(grenade); + } } \ No newline at end of file diff --git a/scripts/zm/replaced/zm_prison.csc b/scripts/zm/replaced/zm_prison.csc new file mode 100644 index 00000000..b2354693 --- /dev/null +++ b/scripts/zm/replaced/zm_prison.csc @@ -0,0 +1,48 @@ +#include clientscripts\mp\zm_prison; +#include clientscripts\mp\_utility; +#include clientscripts\mp\_filter; +#include clientscripts\mp\zombies\_zm_weapons; +#include clientscripts\mp\zombies\_zm_utility; +#include clientscripts\mp\zm_prison_ffotd; +#include clientscripts\mp\zombies\_zm_perk_electric_cherry; +#include clientscripts\mp\zombies\_zm_perk_divetonuke; +#include clientscripts\mp\zm_alcatraz_classic; +#include clientscripts\mp\_visionset_mgr; +#include clientscripts\mp\zm_prison_fx; +#include clientscripts\mp\zm_alcatraz_amb; +#include clientscripts\mp\zombies\_zm_ai_brutus; +#include clientscripts\mp\zm_alcatraz_grief_cellblock; +#include clientscripts\mp\zombies\_zm; +#include clientscripts\mp\zombies\_zm_craftables; +#include clientscripts\mp\zombies\_zm_magicbox_prison; +#include clientscripts\mp\zombies\_zm_weap_riotshield_prison; +#include clientscripts\mp\zombies\_zm_weap_blundersplat; +#include clientscripts\mp\zombies\_zm_weap_tomahawk; +#include clientscripts\mp\zm_prison_spoon; +#include clientscripts\mp\zm_prison_weap_quest; +#include clientscripts\mp\zombies\_zm_equipment; + +entityspawned_alcatraz(localclientnum) +{ + if (!isdefined(self.type)) + { + return; + } + + if (self.type == "player") + self thread playerspawned(localclientnum); + + if (self.type == "missile") + { + switch (self.weapon) + { + case "sticky_grenade_zm": + self thread clientscripts\mp\_sticky_grenade::spawned(localclientnum); + break; + + case "blundersplat_explosive_dart_zm": + self thread clientscripts\mp\zombies\_zm_weap_blundersplat::spawned(localclientnum); + break; + } + } +} \ No newline at end of file diff --git a/scripts/zm/zm_prison/zm_prison_reimagined.csc b/scripts/zm/zm_prison/zm_prison_reimagined.csc index b9fe6f89..53dff15c 100644 --- a/scripts/zm/zm_prison/zm_prison_reimagined.csc +++ b/scripts/zm/zm_prison/zm_prison_reimagined.csc @@ -3,8 +3,11 @@ main() { + replaceFunc(clientscripts\mp\zm_prison::entityspawned_alcatraz, scripts\zm\replaced\zm_prison::entityspawned_alcatraz); replaceFunc(clientscripts\mp\zombies\_zm_ai_brutus::brutusfootstepcbfunc, scripts\zm\replaced\_zm_ai_brutus::brutusfootstepcbfunc); + level thread clientscripts\mp\_sticky_grenade::main(); + if (is_gametype_active("zstandard")) { level.zombiemode_using_additionalprimaryweapon_perk = 1; diff --git a/scripts/zm/zm_prison/zm_prison_reimagined.gsc b/scripts/zm/zm_prison/zm_prison_reimagined.gsc index babd2b54..bd96b85a 100644 --- a/scripts/zm/zm_prison/zm_prison_reimagined.gsc +++ b/scripts/zm/zm_prison/zm_prison_reimagined.gsc @@ -26,6 +26,7 @@ main() replaceFunc(maps\mp\zm_alcatraz_traps::tower_trap_trigger_think, scripts\zm\replaced\zm_alcatraz_traps::tower_trap_trigger_think); replaceFunc(maps\mp\zm_alcatraz_travel::move_gondola, scripts\zm\replaced\zm_alcatraz_travel::move_gondola); replaceFunc(maps\mp\zm_alcatraz_weap_quest::grief_soul_catcher_state_manager, scripts\zm\replaced\zm_alcatraz_weap_quest::grief_soul_catcher_state_manager); + replaceFunc(maps\mp\zm_alcatraz_weap_quest::hellhole_projectile_watch, scripts\zm\replaced\zm_alcatraz_weap_quest::hellhole_projectile_watch); replaceFunc(maps\mp\zm_alcatraz_distance_tracking::delete_zombie_noone_looking, scripts\zm\replaced\zm_alcatraz_distance_tracking::delete_zombie_noone_looking); replaceFunc(maps\mp\zm_prison_spoon::give_player_spoon_upon_receipt, scripts\zm\replaced\zm_prison_spoon::give_player_spoon_upon_receipt); replaceFunc(maps\mp\zm_prison_spoon::dip_the_spoon, scripts\zm\replaced\zm_prison_spoon::dip_the_spoon); @@ -87,6 +88,8 @@ init() player_initial_spawn_override(); player_respawn_override(); + level thread maps\mp\_sticky_grenade::init(); + level thread updatecraftables(); level thread grief_brutus_spawn_after_time(); } diff --git a/sound/wpn/grenade/sticky/alert/semtex_alert.LN65.pc.snd.wav b/sound/wpn/grenade/sticky/alert/semtex_alert.LN65.pc.snd.wav new file mode 100644 index 00000000..909faf58 Binary files /dev/null and b/sound/wpn/grenade/sticky/alert/semtex_alert.LN65.pc.snd.wav differ diff --git a/sound/wpn/grenade/sticky/alert/semtex_charge.LN65.pc.snd.wav b/sound/wpn/grenade/sticky/alert/semtex_charge.LN65.pc.snd.wav new file mode 100644 index 00000000..65327d19 Binary files /dev/null and b/sound/wpn/grenade/sticky/alert/semtex_charge.LN65.pc.snd.wav differ diff --git a/sound/wpn/grenade/sticky/alert/semtex_pin_pull.LN65.pc.snd.wav b/sound/wpn/grenade/sticky/alert/semtex_pin_pull.LN65.pc.snd.wav new file mode 100644 index 00000000..bcb4f12a Binary files /dev/null and b/sound/wpn/grenade/sticky/alert/semtex_pin_pull.LN65.pc.snd.wav differ diff --git a/soundbank/mod.all.aliases.csv b/soundbank/mod.all.aliases.csv index 0a073fdf..9151315c 100644 --- a/soundbank/mod.all.aliases.csv +++ b/soundbank/mod.all.aliases.csv @@ -362,6 +362,9 @@ wpn_sa58_flux_l_npc_pap,raw\sound\wpn\pap\pap_flux_left.LN65.pc.snd,,,wpn_sa58_f wpn_sa58_flux_l_plr_pap,raw\sound\wpn\pap\pap_flux_left.LN65.pc.snd,,,wpn_sa58_flux_r_plr_pap,grp_weapon,3685,3685,,25,900,900,default,default,allon,allon,8,priority,4,priority,32129,33416,,85,90,63,-1,,loaded,nonlooping,variant,-1,0,10386,,snp_wpn_3p,3d,0,0,0,0,63,,no,no,left_shot,4000,,,,no,0,0,0,,yes,no,0,0,,yes,no,bus_fx, wpn_sa58_flux_r_npc_pap,raw\sound\wpn\pap\pap_flux_right.LN65.pc.snd,,,wpn_sa58_fire_npc,grp_weapon,3685,3685,,25,900,900,default,default,allon,allon,8,priority,4,priority,32129,33416,,85,90,63,-1,,loaded,nonlooping,variant,-1,0,10386,,snp_wpn_3p,3d,0,0,0,0,63,,no,no,right_shot,4000,,,,no,0,0,0,,yes,no,0,0,,yes,no,bus_fx, wpn_sa58_flux_r_plr_pap,raw\sound\wpn\pap\pap_flux_right.LN65.pc.snd,,,wpn_sa58_fire_plr,grp_weapon,3685,3685,,25,900,900,default,default,allon,allon,8,priority,4,priority,32129,33416,,85,90,63,-1,,loaded,nonlooping,variant,-1,0,10386,,snp_wpn_3p,3d,0,0,0,0,63,,no,no,right_shot,4000,,,,no,0,0,0,,yes,no,0,0,,yes,no,bus_fx, +wpn_semtex_alert,raw\sound\wpn\grenade\sticky\alert\semtex_alert.LN65.pc.snd,,,,grp_hdrfx,6553,6553,,50,500,750,default,default,allon,allon,8,priority,8,oldest,32767,32767,,90,100,0,-1,,loaded,nonlooping,volume,-1,0,1165,,snp_alerts_gameplay,3d,0,25,225,11653,63,,no,yes,none,0,,,,no,0,0,0,,yes,no,0,0,,yes,no,bus_fx, +wpn_semtex_charge,raw\sound\wpn\grenade\sticky\alert\semtex_charge.LN65.pc.snd,,,wpn_semtex_pin_pull,grp_hdrfx,6553,6553,,50,300,500,default,default,allon,allon,8,priority,8,oldest,32767,32767,,90,100,0,-1,,loaded,nonlooping,volume,-1,350,1165,,snp_alerts_gameplay,3d,0,25,225,11653,63,,no,yes,none,0,,,,no,0,0,0,,yes,no,0,0,,yes,no,bus_fx, +wpn_semtex_pin_pull,raw\sound\wpn\grenade\sticky\alert\semtex_pin_pull.LN65.pc.snd,,,,grp_hdrfx,6553,6553,,50,300,500,default,default,allon,allon,8,priority,8,oldest,32767,32767,,90,100,0,-1,,loaded,nonlooping,volume,-1,0,1165,,snp_alerts_gameplay,3d,0,25,225,11653,63,,no,yes,none,0,,,,no,0,0,0,,yes,no,0,0,,yes,no,bus_fx, fly_betty_explo,raw\sound\wpn\grenade\explosion\explode\explode_00.LN65.pc.snd,,,fly_betty_close,grp_explosion,36853,36853,,750,4500,6000,default,default,allon,allon,4,oldest,8,oldest,27553,38966,,90,99,63,-52,,loaded,nonlooping,volume,-1,0,655,,snp_grenade,3d,0,0,0,0,25,,yes,no,none,0,,,,no,0,0,0,,yes,no,0,0,,yes,no,bus_fx, fly_betty_jump,raw\sound\mpl\betty\betty_trigger.LN65.pc.snd,,,,grp_explosion,32845,32845,,250,1200,1200,default,default,allon,allon,3,priority,1,reject,30927,34715,,40,95,63,-1,,loaded,nonlooping,volume,-1,0,207,,snp_explosion,3d,0,50,300,6553,51,,yes,no,none,0,,,,no,0,0,0,,yes,no,0,0,,yes,no,bus_fx, fly_betty_plant_npc,raw\sound\mpl\betty\betty_deploy.LN65.pc.snd,,,fly_gear_plant_npc,grp_foley,4639,5840,,200,500,500,default,default,allon,allon,3,oldest,8,oldest,29497,36043,,90,90,63,-1,,loaded,nonlooping,volume,-1,0,6553,,snp_foley,3d,0,25,50,11653,25,,no,yes,none,0,,,,no,0,0,0,,yes,no,0,0,,yes,no,bus_fx, diff --git a/zone_source/includes/clientscripts.zone b/zone_source/includes/clientscripts.zone index ccd17317..e3981cea 100644 --- a/zone_source/includes/clientscripts.zone +++ b/zone_source/includes/clientscripts.zone @@ -9,6 +9,7 @@ script,scripts/zm/replaced/_zm_ai_brutus.csc script,scripts/zm/replaced/_zm_ai_mechz.csc script,scripts/zm/replaced/_zm_weapons.csc script,scripts/zm/replaced/zm_nuked.csc +script,scripts/zm/replaced/zm_prison.csc script,scripts/zm/replaced/zm_buried.csc script,scripts/zm/replaced/zm_tomb_craftables.csc script,scripts/zm/replaced/zgrief.csc \ No newline at end of file diff --git a/zone_source/includes/sticky_grenade_zm.zone b/zone_source/includes/sticky_grenade_zm.zone new file mode 100644 index 00000000..2f8c9ba5 --- /dev/null +++ b/zone_source/includes/sticky_grenade_zm.zone @@ -0,0 +1,3 @@ +weapon,sticky_grenade_zm +fx,weapon/crossbow/fx_trail_crossbow_blink_grn_os +fx,weapon/crossbow/fx_trail_crossbow_blink_red_os \ No newline at end of file diff --git a/zone_source/zm_transit.zone b/zone_source/zm_transit.zone index 739c9345..91e57106 100644 --- a/zone_source/zm_transit.zone +++ b/zone_source/zm_transit.zone @@ -3,6 +3,7 @@ >name,zm_transit include,includes/jetgun_zm +include,includes/sticky_grenade_zm include,includes/muzzleflashes_zmb_ug