mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-07 21:59:49 -05:00
Staffs (upgraded): do alt weapon reload changes from weapon file
Staffs (upgraded): move all alt weapon ammo to clip Staffs (upgraded): fix issues with melee weapons
This commit is contained in:
parent
fdd62975cc
commit
60258d0a95
@ -365,7 +365,7 @@
|
||||
* Max ammo no longer fills clip ammo
|
||||
* Upgraded: kill on any round
|
||||
* Upgraded: charged shots damage Panzersoldat
|
||||
* Upgraded: decreased alt weapon reload time to 0.4 seconds
|
||||
* Upgraded: decreased alt weapon fire time from 3 seconds to 0.5 seconds
|
||||
* Fire upgraded: charged shots no longer deal additional damage to Panzersoldat
|
||||
* Ice upgraded: fixed melee sound
|
||||
|
||||
|
@ -1,67 +0,0 @@
|
||||
#include maps\mp\zombies\_zm_weap_staff_revive;
|
||||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\zombies\_zm_utility;
|
||||
#include maps\mp\zombies\_zm_net;
|
||||
#include maps\mp\zm_tomb_utility;
|
||||
#include maps\mp\zombies\_zm_laststand;
|
||||
|
||||
watch_staff_revive_fired()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
while (true)
|
||||
{
|
||||
self waittill("missile_fire", e_projectile, str_weapon);
|
||||
|
||||
if (!(str_weapon == "staff_revive_zm"))
|
||||
continue;
|
||||
|
||||
self thread staff_revive_impact_wait();
|
||||
|
||||
self thread staff_revive_reload(str_weapon);
|
||||
}
|
||||
}
|
||||
|
||||
staff_revive_impact_wait()
|
||||
{
|
||||
self waittill("projectile_impact", e_ent, v_explode_point, n_radius, str_name, n_impact);
|
||||
|
||||
self thread staff_revive_impact(v_explode_point);
|
||||
}
|
||||
|
||||
staff_revive_reload(str_weapon)
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
wait 0.4;
|
||||
|
||||
ammo_clip = self getWeaponAmmoClip(str_weapon);
|
||||
ammo_stock = self getWeaponAmmoStock(str_weapon);
|
||||
|
||||
if (ammo_clip < 1 && ammo_stock >= 1)
|
||||
{
|
||||
self setWeaponAmmoClip(str_weapon, ammo_clip + 1);
|
||||
self setWeaponAmmoStock(str_weapon, ammo_stock - 1);
|
||||
return;
|
||||
}
|
||||
|
||||
while (1)
|
||||
{
|
||||
self waittill("weapon_change");
|
||||
|
||||
if (self getCurrentWeapon() == str_weapon)
|
||||
{
|
||||
ammo_clip = self getWeaponAmmoClip(str_weapon);
|
||||
ammo_stock = self getWeaponAmmoStock(str_weapon);
|
||||
|
||||
if (ammo_clip < 1 && ammo_stock >= 1)
|
||||
{
|
||||
self setWeaponAmmoClip(str_weapon, ammo_clip + 1);
|
||||
self setWeaponAmmoStock(str_weapon, ammo_stock - 1);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
@ -668,5 +668,20 @@ run_gramophone_door(str_vinyl_record)
|
||||
|
||||
watch_staff_ammo_reload()
|
||||
{
|
||||
// removed max ammo clip fill
|
||||
self endon( "disconnect" );
|
||||
|
||||
while ( true )
|
||||
{
|
||||
self waittill( "zmb_max_ammo" );
|
||||
|
||||
a_weapons = self getweaponslist();
|
||||
|
||||
foreach ( weapon in a_weapons )
|
||||
{
|
||||
if ( issubstr( weapon, "staff_revive" ) )
|
||||
{
|
||||
self setweaponammoclip( weapon, weaponclipsize( weapon ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -111,12 +111,11 @@ capture_zombie_spawn_init(animname_set = 0)
|
||||
update_staff_accessories(n_element_index)
|
||||
{
|
||||
cur_melee = self get_player_melee_weapon();
|
||||
melee_to_keep = "knife_zm";
|
||||
melee_to_keep = get_melee_weapon_from_held();
|
||||
self.use_staff_melee = 0;
|
||||
|
||||
if (!issubstr(cur_melee, "one_inch_punch"))
|
||||
{
|
||||
self.use_staff_melee = 0;
|
||||
|
||||
if (n_element_index != 0)
|
||||
{
|
||||
staff_info = maps\mp\zm_tomb_craftables::get_staff_info_from_element_index(n_element_index);
|
||||
@ -142,19 +141,23 @@ update_staff_accessories(n_element_index)
|
||||
current_weapon = self getcurrentweapon();
|
||||
|
||||
self takeweapon(cur_melee);
|
||||
self takeweapon("held_" + cur_melee);
|
||||
self giveweapon(melee_to_keep);
|
||||
self set_player_melee_weapon(melee_to_keep);
|
||||
self giveweapon("held_" + melee_to_keep);
|
||||
|
||||
if (!self hasweapon("equip_dieseldrone_zm"))
|
||||
if (!self.use_staff_melee)
|
||||
{
|
||||
self setactionslot(2, "weapon", "held_" + melee_to_keep);
|
||||
}
|
||||
self takeweapon("held_" + cur_melee);
|
||||
self giveweapon("held_" + melee_to_keep);
|
||||
|
||||
if (is_melee_weapon(current_weapon))
|
||||
{
|
||||
self switchtoweapon("held_" + melee_to_keep);
|
||||
if (!self hasweapon("equip_dieseldrone_zm"))
|
||||
{
|
||||
self setactionslot(2, "weapon", "held_" + melee_to_keep);
|
||||
}
|
||||
|
||||
if (is_melee_weapon(current_weapon))
|
||||
{
|
||||
self switchtoweapon("held_" + melee_to_keep);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -192,12 +195,29 @@ update_staff_accessories(n_element_index)
|
||||
}
|
||||
else
|
||||
{
|
||||
self setweaponammostock("staff_revive_zm", 3);
|
||||
self setweaponammoclip("staff_revive_zm", 1);
|
||||
|
||||
self setweaponammostock("staff_revive_zm", weaponmaxammo("staff_revive_zm") - weaponclipsize("staff_revive_zm"));
|
||||
self setweaponammoclip("staff_revive_zm", weaponclipsize("staff_revive_zm"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
get_melee_weapon_from_held()
|
||||
{
|
||||
melee_to_keep = "knife_zm";
|
||||
|
||||
foreach (weapon in self getweaponslist())
|
||||
{
|
||||
if (getsubstr(weapon, 0, 5) == "held_")
|
||||
{
|
||||
melee_to_keep = getsubstr(weapon, 5);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return melee_to_keep;
|
||||
}
|
||||
|
||||
get_punch_element_from_index(ind)
|
||||
{
|
||||
if (ind == 1)
|
||||
|
@ -60,7 +60,6 @@ main()
|
||||
replaceFunc(maps\mp\zombies\_zm_weap_staff_fire::flame_damage_fx, scripts\zm\replaced\_zm_weap_staff_fire::flame_damage_fx);
|
||||
replaceFunc(maps\mp\zombies\_zm_weap_staff_fire::get_impact_damage, scripts\zm\replaced\_zm_weap_staff_fire::get_impact_damage);
|
||||
replaceFunc(maps\mp\zombies\_zm_weap_staff_lightning::staff_lightning_ball_kill_zombies, scripts\zm\replaced\_zm_weap_staff_lightning::staff_lightning_ball_kill_zombies);
|
||||
replaceFunc(maps\mp\zombies\_zm_weap_staff_revive::watch_staff_revive_fired, scripts\zm\replaced\_zm_weap_staff_revive::watch_staff_revive_fired);
|
||||
}
|
||||
|
||||
init()
|
||||
|
13
weapons/zm/staff_revive_zm
Normal file
13
weapons/zm/staff_revive_zm
Normal file
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user