mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-08 06:12:17 -05:00
Mule Kick: revert stowed weapon reload changes
Mule Kick: save and restore current dual wield weapon clip ammo on stowed dual wield weapon reload
This commit is contained in:
parent
1eec4b1028
commit
723d1c8f23
@ -2808,14 +2808,10 @@ additionalprimaryweapon_stowed_weapon_refill()
|
|||||||
|
|
||||||
vars = [];
|
vars = [];
|
||||||
|
|
||||||
self.weapon_last_held_time = [];
|
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
vars["string"] = self waittill_any_return("weapon_change", "weapon_change_complete", "perk_additionalprimaryweapon_activated", "specialty_additionalprimaryweapon_stop", "spawned_player");
|
vars["string"] = self waittill_any_return("weapon_change", "weapon_change_complete", "perk_additionalprimaryweapon_activated", "specialty_additionalprimaryweapon_stop", "spawned_player");
|
||||||
|
|
||||||
vars["weapon_last_held_time"] = [];
|
|
||||||
|
|
||||||
if (self hasPerk("specialty_additionalprimaryweapon"))
|
if (self hasPerk("specialty_additionalprimaryweapon"))
|
||||||
{
|
{
|
||||||
vars["curr_wep"] = self getCurrentWeapon();
|
vars["curr_wep"] = self getCurrentWeapon();
|
||||||
@ -2830,35 +2826,27 @@ additionalprimaryweapon_stowed_weapon_refill()
|
|||||||
foreach (primary in primaries)
|
foreach (primary in primaries)
|
||||||
{
|
{
|
||||||
if (primary != maps\mp\zombies\_zm_weapons::get_nonalternate_weapon(vars["curr_wep"]))
|
if (primary != maps\mp\zombies\_zm_weapons::get_nonalternate_weapon(vars["curr_wep"]))
|
||||||
{
|
|
||||||
if (!isdefined(self.weapon_last_held_time[primary]))
|
|
||||||
{
|
{
|
||||||
if (vars["string"] != "weapon_change")
|
if (vars["string"] != "weapon_change")
|
||||||
{
|
{
|
||||||
vars["weapon_last_held_time"][primary] = getTime();
|
self thread refill_after_time(primary);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vars["weapon_last_held_time"][primary] = self.weapon_last_held_time[primary];
|
self notify(primary + "_reload_stop");
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (vars["string"] == "weapon_change")
|
|
||||||
{
|
|
||||||
self additionalprimaryweapon_do_refill(primary);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self.weapon_last_held_time = vars["weapon_last_held_time"];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
additionalprimaryweapon_do_refill(primary)
|
refill_after_time(primary)
|
||||||
{
|
{
|
||||||
|
self endon(primary + "_reload_stop");
|
||||||
|
self endon("specialty_additionalprimaryweapon_stop");
|
||||||
|
self endon("spawned_player");
|
||||||
|
|
||||||
vars = [];
|
vars = [];
|
||||||
|
|
||||||
vars["reload_time"] = weaponReloadTime(primary);
|
vars["reload_time"] = weaponReloadTime(primary);
|
||||||
@ -2884,42 +2872,27 @@ additionalprimaryweapon_do_refill(primary)
|
|||||||
vars["reload_time"] *= getDvarFloat("perk_weapReloadMultiplier");
|
vars["reload_time"] *= getDvarFloat("perk_weapReloadMultiplier");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isdefined(self.weapon_last_held_time[primary]))
|
wait vars["reload_time"];
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((getTime() - self.weapon_last_held_time[primary]) < (vars["reload_time"] * 1000))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
vars["missing_clip_max"] = undefined;
|
|
||||||
|
|
||||||
if (isdefined(vars["reload_amount"]))
|
|
||||||
{
|
|
||||||
vars["reload_segments_num"] = int((getTime() - self.weapon_last_held_time[primary]) / (vars["reload_time"] * 1000));
|
|
||||||
|
|
||||||
vars["missing_clip_max"] = vars["reload_amount"] * vars["reload_segments_num"];
|
|
||||||
}
|
|
||||||
|
|
||||||
vars["ammo_clip"] = self getWeaponAmmoClip(primary);
|
vars["ammo_clip"] = self getWeaponAmmoClip(primary);
|
||||||
vars["ammo_stock"] = self getWeaponAmmoStock(primary);
|
vars["ammo_stock"] = self getWeaponAmmoStock(primary);
|
||||||
vars["missing_clip"] = weaponClipSize(primary) - vars["ammo_clip"];
|
vars["missing_clip"] = weaponClipSize(primary) - vars["ammo_clip"];
|
||||||
|
vars["og_ammo_stock"] = vars["ammo_stock"];
|
||||||
|
|
||||||
if (vars["missing_clip"] > vars["ammo_stock"])
|
if (vars["missing_clip"] > vars["ammo_stock"])
|
||||||
{
|
{
|
||||||
vars["missing_clip"] = vars["ammo_stock"];
|
vars["missing_clip"] = vars["ammo_stock"];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isDefined(vars["missing_clip_max"]) && vars["missing_clip"] > vars["missing_clip_max"])
|
if (isDefined(vars["reload_amount"]) && vars["missing_clip"] > vars["reload_amount"])
|
||||||
{
|
{
|
||||||
vars["missing_clip"] = vars["missing_clip_max"];
|
vars["missing_clip"] = vars["reload_amount"];
|
||||||
}
|
}
|
||||||
|
|
||||||
vars["ammo_stock"] -= vars["missing_clip"];
|
|
||||||
|
|
||||||
vars["dw_primary"] = weaponDualWieldWeaponName(primary);
|
vars["dw_primary"] = weaponDualWieldWeaponName(primary);
|
||||||
|
vars["alt_primary"] = weaponAltWeaponName(primary);
|
||||||
|
|
||||||
|
vars["ammo_stock"] -= vars["missing_clip"];
|
||||||
|
|
||||||
if (vars["dw_primary"] != "none")
|
if (vars["dw_primary"] != "none")
|
||||||
{
|
{
|
||||||
@ -2934,7 +2907,20 @@ additionalprimaryweapon_do_refill(primary)
|
|||||||
vars["ammo_stock"] -= vars["dw_missing_clip"];
|
vars["ammo_stock"] -= vars["dw_missing_clip"];
|
||||||
}
|
}
|
||||||
|
|
||||||
// setting dw weapon clip ammo changes both clips ammo so must calculate both left and right ammo before setting ammo
|
if (vars["ammo_stock"] != vars["og_ammo_stock"])
|
||||||
|
{
|
||||||
|
// setWeaponAmmoClip changes dual wield weapon clip ammo of current weapon when called on any dual wield weapon
|
||||||
|
vars["curr_primary"] = self getCurrentWeapon();
|
||||||
|
vars["curr_dw_primary"] = weaponDualWieldWeaponName(vars["curr_primary"]);
|
||||||
|
vars["curr_dw_ammo_clip"] = 0;
|
||||||
|
|
||||||
|
// save current dual wield weapon clip ammo
|
||||||
|
if(vars["dw_primary"] != "none" && vars["curr_dw_primary"] != "none")
|
||||||
|
{
|
||||||
|
vars["curr_dw_ammo_clip"] = self getWeaponAmmoClip(vars["curr_dw_primary"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// setWeaponAmmoClip changes both clips ammo on dual wield weapons so must calculate both left and right ammo before setting ammo
|
||||||
self setWeaponAmmoClip(primary, vars["ammo_clip"] + vars["missing_clip"]);
|
self setWeaponAmmoClip(primary, vars["ammo_clip"] + vars["missing_clip"]);
|
||||||
|
|
||||||
if (vars["dw_primary"] != "none")
|
if (vars["dw_primary"] != "none")
|
||||||
@ -2944,7 +2930,12 @@ additionalprimaryweapon_do_refill(primary)
|
|||||||
|
|
||||||
self setWeaponAmmoStock(primary, vars["ammo_stock"]);
|
self setWeaponAmmoStock(primary, vars["ammo_stock"]);
|
||||||
|
|
||||||
vars["alt_primary"] = weaponAltWeaponName(primary);
|
// restore current dual wield weapon clip ammo
|
||||||
|
if(vars["dw_primary"] != "none" && vars["curr_dw_primary"] != "none")
|
||||||
|
{
|
||||||
|
self set_weapon_ammo_clip_left(vars["curr_primary"], vars["curr_dw_ammo_clip"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (vars["alt_primary"] != "none")
|
if (vars["alt_primary"] != "none")
|
||||||
{
|
{
|
||||||
@ -2960,6 +2951,11 @@ additionalprimaryweapon_do_refill(primary)
|
|||||||
self setWeaponAmmoClip(vars["alt_primary"], vars["ammo_clip"] + vars["missing_clip"]);
|
self setWeaponAmmoClip(vars["alt_primary"], vars["ammo_clip"] + vars["missing_clip"]);
|
||||||
self setWeaponAmmoStock(vars["alt_primary"], vars["ammo_stock"] - vars["missing_clip"]);
|
self setWeaponAmmoStock(vars["alt_primary"], vars["ammo_stock"] - vars["missing_clip"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isDefined(vars["reload_amount"]) && self getWeaponAmmoStock(primary) > 0 && self getWeaponAmmoClip(primary) < weaponClipSize(primary))
|
||||||
|
{
|
||||||
|
self refill_after_time(primary);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
electric_cherry_unlimited()
|
electric_cherry_unlimited()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user