diff --git a/README.md b/README.md index c81649c7..5a88d92c 100644 --- a/README.md +++ b/README.md @@ -236,7 +236,10 @@ ## Sniper Rifles * Decreased move speed from 95% to 90% * Disabled scope sway -* Unupgraded: increased zoom FOV from 15 to 25 +* Unupgraded: increased scope FOV from 15 or 20 to 25 + +### Ballista +* Replaces Olympia ## Shotguns * Increased penetration diff --git a/english/localizedstrings/reimagined.str b/english/localizedstrings/reimagined.str index b2cae1d7..fbc2e4f8 100644 --- a/english/localizedstrings/reimagined.str +++ b/english/localizedstrings/reimagined.str @@ -1014,6 +1014,9 @@ LANG_ENGLISH "Toughguy & Crybaby" REFERENCE ZOMBIE_WEAPON_SARITCH LANG_ENGLISH "Hold ^3[{+activate}]^7 for SMR [Cost: &&1]" +REFERENCE ZMWEAPON_BALLISTA_WALLBUY +LANG_ENGLISH "Hold ^3[{+activate}]^7 for Ballista [Cost: &&1]" + REFERENCE ZOMBIE_PERK_QUICKREVIVE LANG_ENGLISH "Hold ^3[{+activate}]^7 for Quick Revive [Cost: &&1]" diff --git a/scripts/zm/_zm_reimagined.gsc b/scripts/zm/_zm_reimagined.gsc index b9388a58..b9758826 100644 --- a/scripts/zm/_zm_reimagined.gsc +++ b/scripts/zm/_zm_reimagined.gsc @@ -1679,6 +1679,10 @@ weapon_changes() include_weapon( "saritch_upgraded_zm", 0 ); add_zombie_weapon( "saritch_zm", "saritch_upgraded_zm", &"ZOMBIE_WEAPON_SARITCH", 500, "wpck_smr", "", undefined, 1 ); } + + include_weapon( "ballista_zm", 0 ); + include_weapon( "ballista_upgraded_zm", 0 ); + add_zombie_weapon( "ballista_zm", "ballista_upgraded_zm", &"ZMWEAPON_BALLISTA_WALLBUY", 500, "wpck_snipe", "", undefined, 1 ); } player_give_willy_pete() diff --git a/scripts/zm/locs/zm_buried_loc_maze.gsc b/scripts/zm/locs/zm_buried_loc_maze.gsc index f7094833..1774dc35 100644 --- a/scripts/zm/locs/zm_buried_loc_maze.gsc +++ b/scripts/zm/locs/zm_buried_loc_maze.gsc @@ -258,7 +258,7 @@ init_wallbuys() og_weapon_structs = array_randomize(og_weapon_structs); scripts\zm\replaced\utility::wallbuy("saritch_zm", "saritch", "weapon_upgrade", og_weapon_structs[0].origin, og_weapon_structs[0].angles); - scripts\zm\replaced\utility::wallbuy("rottweil72_zm", "olympia", "weapon_upgrade", og_weapon_structs[1].origin, og_weapon_structs[1].angles); + scripts\zm\replaced\utility::wallbuy("ballista_zm", "ballista", "weapon_upgrade", og_weapon_structs[1].origin, og_weapon_structs[1].angles); scripts\zm\replaced\utility::wallbuy("beretta93r_zm", "beretta93r", "weapon_upgrade", og_weapon_structs[2].origin, og_weapon_structs[2].angles); scripts\zm\replaced\utility::wallbuy("pdw57_zm", "pdw57", "weapon_upgrade", og_weapon_structs[3].origin, og_weapon_structs[3].angles); scripts\zm\replaced\utility::wallbuy("an94_zm", "an94", "weapon_upgrade", og_weapon_structs[4].origin, og_weapon_structs[4].angles); diff --git a/scripts/zm/locs/zm_prison_loc_docks.gsc b/scripts/zm/locs/zm_prison_loc_docks.gsc index d0e22f5e..e9310ba6 100644 --- a/scripts/zm/locs/zm_prison_loc_docks.gsc +++ b/scripts/zm/locs/zm_prison_loc_docks.gsc @@ -129,7 +129,7 @@ set_box_weapons() init_wallbuys() { scripts\zm\replaced\utility::wallbuy("saritch_zm", "saritch", "weapon_upgrade", (305, 6376, 319), (0, -80, 0)); - scripts\zm\replaced\utility::wallbuy("rottweil72_zm", "olympia", "weapon_upgrade", (-709, 5721, -19.875), (0, -80, 30)); + scripts\zm\replaced\utility::wallbuy("ballista_zm", "ballista", "weapon_upgrade", (-709, 5721, -19.875), (0, -80, 30)); scripts\zm\replaced\utility::wallbuy("uzi_zm", "uzi", "weapon_upgrade", (-219, 7156, 122), (0, 190, 0)); } diff --git a/scripts/zm/locs/zm_transit_loc_cornfield.gsc b/scripts/zm/locs/zm_transit_loc_cornfield.gsc index 2d5d780f..b423eee3 100644 --- a/scripts/zm/locs/zm_transit_loc_cornfield.gsc +++ b/scripts/zm/locs/zm_transit_loc_cornfield.gsc @@ -122,7 +122,7 @@ main() init_wallbuys() { scripts\zm\replaced\utility::wallbuy("saritch_zm", "saritch", "weapon_upgrade", (13662, -1166, -134), (0, -90, 0)); - scripts\zm\replaced\utility::wallbuy("rottweil72_zm", "olympia", "weapon_upgrade", (13553, -539, -133), (0, -90, 0)); + scripts\zm\replaced\utility::wallbuy("ballista_zm", "ballista", "weapon_upgrade", (13553, -539, -133), (0, -90, 0)); scripts\zm\replaced\utility::wallbuy("beretta93r_zm", "beretta93r", "weapon_upgrade", (13793, -1646, -105), (0, 0, 0)); scripts\zm\replaced\utility::wallbuy("mp5k_zm", "mp5", "weapon_upgrade", (13553, -769, -133), (0, -90, 0)); scripts\zm\replaced\utility::wallbuy("ak74u_zm", "ak74u", "weapon_upgrade", (13979, -1550, -134), (0, 90, 0)); diff --git a/scripts/zm/locs/zm_transit_loc_diner.gsc b/scripts/zm/locs/zm_transit_loc_diner.gsc index 66e52694..1b59a649 100644 --- a/scripts/zm/locs/zm_transit_loc_diner.gsc +++ b/scripts/zm/locs/zm_transit_loc_diner.gsc @@ -159,7 +159,7 @@ treasure_chest_init() init_wallbuys() { scripts\zm\replaced\utility::wallbuy("saritch_zm", "saritch", "weapon_upgrade", (-5085, -7807, -5), (0, 0, 0)); - scripts\zm\replaced\utility::wallbuy("rottweil72_zm", "olympia", "weapon_upgrade", (-4576, -7748, 18), (0, 90, 0)); + scripts\zm\replaced\utility::wallbuy("ballista_zm", "ballista", "weapon_upgrade", (-4576, -7748, 18), (0, 90, 0)); scripts\zm\replaced\utility::wallbuy("mp5k_zm", "mp5", "weapon_upgrade", (-5489, -7982.7, 62), (0, 1, 0)); scripts\zm\replaced\utility::wallbuy("tazer_knuckles_zm", "tazer_knuckles", "tazer_upgrade", (-6265, -7941, 100), (0, 90, 0)); } diff --git a/scripts/zm/locs/zm_transit_loc_power.gsc b/scripts/zm/locs/zm_transit_loc_power.gsc index 74e28f90..d00d52ca 100644 --- a/scripts/zm/locs/zm_transit_loc_power.gsc +++ b/scripts/zm/locs/zm_transit_loc_power.gsc @@ -104,7 +104,7 @@ treasure_chest_init() init_wallbuys() { scripts\zm\replaced\utility::wallbuy("saritch_zm", "saritch", "weapon_upgrade", (10559, 8220, -495), (0, 90, 0)); - scripts\zm\replaced\utility::wallbuy("rottweil72_zm", "olympia", "weapon_upgrade", (10678, 8135, -476), (0, 180, 0)); + scripts\zm\replaced\utility::wallbuy("ballista_zm", "ballista", "weapon_upgrade", (10678, 8135, -476), (0, 180, 0)); scripts\zm\replaced\utility::wallbuy("870mcs_zm", "870mcs", "weapon_upgrade", (11778, 7664, -697), (0, 170, 0)); scripts\zm\replaced\utility::wallbuy("mp5k_zm", "mp5", "weapon_upgrade", (11452, 8692, -521), (0, 90, 0)); scripts\zm\replaced\utility::wallbuy("bowie_knife_zm", "bowie_knife", "bowie_upgrade", (10835, 8145, -353), (0, 0, 0)); diff --git a/scripts/zm/locs/zm_transit_loc_tunnel.gsc b/scripts/zm/locs/zm_transit_loc_tunnel.gsc index 45c6e60d..3e34c56e 100644 --- a/scripts/zm/locs/zm_transit_loc_tunnel.gsc +++ b/scripts/zm/locs/zm_transit_loc_tunnel.gsc @@ -70,7 +70,7 @@ main() init_wallbuys() { scripts\zm\replaced\utility::wallbuy("saritch_zm", "saritch", "weapon_upgrade", (-11166, -2844, 247), (0, -86, 0)); - scripts\zm\replaced\utility::wallbuy("rottweil72_zm", "olympia", "weapon_upgrade", (-10735, -2960, 247), (0, 97, 0)); + scripts\zm\replaced\utility::wallbuy("ballista_zm", "ballista", "weapon_upgrade", (-10735, -2960, 247), (0, 97, 0)); scripts\zm\replaced\utility::wallbuy("ak74u_zm", "ak74u", "weapon_upgrade", (-10656, -752, 247), (0, 83, 0)); scripts\zm\replaced\utility::wallbuy("m16_zm", "m16", "weapon_upgrade", (-11839, -1695.1, 287), (0, 270, 0)); scripts\zm\replaced\utility::wallbuy("sticky_grenade_zm", "sticky_grenade", "weapon_upgrade", (-11839, -2406, 283), (0, -93, 0)); diff --git a/scripts/zm/replaced/_zm_weapons.gsc b/scripts/zm/replaced/_zm_weapons.gsc index 8a4da7bd..35a1f3ed 100644 --- a/scripts/zm/replaced/_zm_weapons.gsc +++ b/scripts/zm/replaced/_zm_weapons.gsc @@ -181,6 +181,10 @@ wallbuy_changes() { self.zombie_weapon_upgrade = "saritch_zm"; } + else if (self.zombie_weapon_upgrade == "rottweil72_zm") + { + self.zombie_weapon_upgrade = "ballista_zm"; + } } add_dynamic_wallbuy(weapon, wallbuy, pristine) diff --git a/scripts/zm/replaced/utility.gsc b/scripts/zm/replaced/utility.gsc index 9ea53496..8a3ac2e7 100644 --- a/scripts/zm/replaced/utility.gsc +++ b/scripts/zm/replaced/utility.gsc @@ -336,6 +336,10 @@ get_chalk_fx_name(weapon_name) { weapon_name = "m14_zm"; } + else if (weapon_name == "ballista_zm") + { + weapon_name = "rottweil72_zm"; + } return weapon_name + "_fx"; } diff --git a/zone_source/ballista_zm.zone b/zone_source/ballista_zm.zone new file mode 100644 index 00000000..361e8aa2 --- /dev/null +++ b/zone_source/ballista_zm.zone @@ -0,0 +1,86 @@ +image,~~-gmtl_t6_wpn_sniper_ballist~5f538f3a +image,mtl_t6_wpn_sniper_ballista_nml +image,~mtl_t6_wpn_sniper_ballista_a~c281cc51 +image,~-gmtl_t6_wpn_sniper_ballista_col +image,~mtl_t6_wpn_sniper_ballista_i~48a71291 +material,mc/mtl_t6_wpn_sniper_ballista_thermal +material,mc/mtl_t6_wpn_sniper_ballista_camo1 +image,~~-gmtl_t6_wpn_sniper_ballist~77b7f0fa +image,mtl_t6_wpn_sniper_ballista_sights_nml +image,~-gmtl_t6_wpn_sniper_ballista~0bdce4cf +image,~_mtl_t6_wpn_base_noheat_ir-rrb +material,mc/mtl_t6_wpn_sniper_ballista_sights_thermal +material,mc/mtl_t6_wpn_sniper_ballista_sights +material,mc/mtl_t6_wpn_sniper_ballista_camo2 +material,mc/mtl_t6_wpn_sniper_ballista_camo3 +xmodel,t6_wpn_sniper_ballista_view +fx,weapon/muzzleflashes/fx_muz_xlg_gas_flash_1p +fx,weapon/muzzleflashes/fx_muz_xlg_smk_1p +fx,weapon/muzzleflashes/fx_muz_snpr_flash_1p +fx,weapon/muzzleflashes/fx_muz_xlg_gas_flash_3p +fx,weapon/muzzleflashes/fx_muz_snpr_flash_3p +xmodel,t6_wpn_sniper_ballista_world +xmodel,t6_attach_mag_ballista_view +xmodel,t6_attach_mag_ballista_world +material,gfx_fxt_smk_trail_tracer +tracer,ballista_tracer +image,~~-gmtl_t6_wpn_sniper_ballist~e541153f +image,mtl_t6_wpn_sniper_ballista_scope_nml +image,~mtl_t6_wpn_sniper_ballista_s~03fbaf1f +image,~-gmtl_t6_wpn_sniper_ballista~f9eaeff9 +image,~mtl_t6_wpn_sniper_ballista_s~e35f4ac5 +material,mc/mtl_t6_wpn_sniper_ballista_scope_thermal +material,mc/mtl_t6_wpn_sniper_ballista_scope_camo1 +material,mc/mtl_t6_wpn_sniper_ballista_scope_camo2 +material,mc/mtl_weapon_camo_muertos_3 +material,mc/mtl_weapon_camo_zmb_dlc2_alt_2 +camo,camo_ballista +xanim,viewmodel_ballista_idle +xanim,viewmodel_ballista_fire +xanim,viewmodel_ballista_rechamber +xanim,viewmodel_ballista_reload +xanim,viewmodel_ballista_reload_empty +xanim,viewmodel_ballista_pullout +xanim,viewmodel_ballista_first_raise +xanim,viewmodel_ballista_putaway +xanim,viewmodel_ballista_pullout_quick +xanim,viewmodel_ballista_putaway_quick +xanim,viewmodel_ballista_sprint_in +xanim,viewmodel_ballista_sprint_loop +xanim,viewmodel_ballista_sprint_out +xanim,viewmodel_ballista_crawl_in +xanim,viewmodel_ballista_crawl_forward +xanim,viewmodel_ballista_crawl_back +xanim,viewmodel_ballista_crawl_right +xanim,viewmodel_ballista_crawl_left +xanim,viewmodel_ballista_crawl_out +xanim,viewmodel_ballista_ads_fire +xanim,viewmodel_ballista_alt_ads_rechamber +xanim,viewmodel_ballista_d2p_in +xanim,viewmodel_ballista_d2p_loop +xanim,viewmodel_ballista_d2p_out +xanim,viewmodel_ballista_iron_sights_ads_up +xanim,viewmodel_ballista_iron_sights_ads_down +rawfile,rumble/sniper_fire +image,hud_mp_firerate_bolt +material,hud_mp_firerate_bolt +image,menu_zm_weapons_ballista +material,menu_zm_weapons_ballista +image,menu_mp_weapons_ballista +material,menu_mp_weapons_ballista +weapon,ballista_zm +fx,weapon/muzzleflashes_zmb_ug/fx_zmb_muz_xlg_gas_flash_1p +fx,weapon/muzzleflashes_zmb_ug/fx_zmb_muz_xlg_gas_flash_3p +attachment,is +image,scope_overlay_ballista_1024 +material,scope_overlay_ballista +attachmentunique,au_ballista_none +attachmentunique,au_ballista_acog +attachmentunique,au_ballista_is +weapon,ballista_upgraded_zm +xanim,viewmodel_ballista_ads_rechamber +xanim,viewmodel_ballista_rangefinder_ads_fire +xanim,viewmodel_ballista_acog_ads_up +xanim,viewmodel_ballista_acog_ads_down +xanim,viewmodel_ballista_ads_up +xanim,viewmodel_ballista_ads_down \ No newline at end of file diff --git a/zone_source/mod.zone b/zone_source/mod.zone index c5d0661c..d5225861 100644 --- a/zone_source/mod.zone +++ b/zone_source/mod.zone @@ -3,6 +3,7 @@ >name,mod include,saritch_zm +include,ballista_zm include,knife_ballistic_zm include,ray_gun_zm include,raygun_mark2_zm