mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-09 23:02:53 -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:
@ -365,7 +365,7 @@
|
|||||||
* Max ammo no longer fills clip ammo
|
* Max ammo no longer fills clip ammo
|
||||||
* Upgraded: kill on any round
|
* Upgraded: kill on any round
|
||||||
* Upgraded: charged shots damage Panzersoldat
|
* 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
|
* Fire upgraded: charged shots no longer deal additional damage to Panzersoldat
|
||||||
* Ice upgraded: fixed melee sound
|
* 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()
|
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)
|
update_staff_accessories(n_element_index)
|
||||||
{
|
{
|
||||||
cur_melee = self get_player_melee_weapon();
|
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"))
|
if (!issubstr(cur_melee, "one_inch_punch"))
|
||||||
{
|
{
|
||||||
self.use_staff_melee = 0;
|
|
||||||
|
|
||||||
if (n_element_index != 0)
|
if (n_element_index != 0)
|
||||||
{
|
{
|
||||||
staff_info = maps\mp\zm_tomb_craftables::get_staff_info_from_element_index(n_element_index);
|
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();
|
current_weapon = self getcurrentweapon();
|
||||||
|
|
||||||
self takeweapon(cur_melee);
|
self takeweapon(cur_melee);
|
||||||
self takeweapon("held_" + cur_melee);
|
|
||||||
self giveweapon(melee_to_keep);
|
self giveweapon(melee_to_keep);
|
||||||
self set_player_melee_weapon(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))
|
if (!self hasweapon("equip_dieseldrone_zm"))
|
||||||
{
|
{
|
||||||
self switchtoweapon("held_" + melee_to_keep);
|
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
|
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)
|
get_punch_element_from_index(ind)
|
||||||
{
|
{
|
||||||
if (ind == 1)
|
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::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_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_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()
|
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
Reference in New Issue
Block a user