Max Ammo changed to work like BO3/BO4/Cold War (Clip Refills)
-
Sorry if it already exists, but I couldn't find it. Just a buncha old scripts that wouldn't work., so I made my own with help from the discord
#include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\zombies\_zm_utility; #include maps\mp\zombies\_zm_powerups; init() { level thread onPlayerConnect(); } onPlayerConnect() { level endon("game_ended"); for(;;) { level waittill("connected", player); player thread onPlayerSpawned(); } } onPlayerSpawned() { self endon("disconnect"); level endon("game_ended"); for(;;) { self waittill("spawned_player"); if(!isDefined(level.maC1)) { wait 5; level.maC1 = "DONE"; replaceFunc(maps\mp\zombies\_zm_powerups::full_ammo_powerup,::new_full_ammo_powerup); } } } new_full_ammo_powerup( drop_item, player ) { players = get_players( player.team ); if ( isdefined( level._get_game_module_players ) ){ players = [[ level._get_game_module_players ]]( player ); } for ( i = 0; i < players.size; i++ ) { if ( players[i] maps\mp\zombies\_zm_laststand::player_is_in_laststand() ) continue; primary_weapons = players[i] getweaponslist( 1 ); players[i] notify( "zmb_max_ammo" ); players[i] notify( "zmb_lost_knife" ); players[i] notify( "zmb_disable_claymore_prompt" ); players[i] notify( "zmb_disable_spikemore_prompt" ); for ( x = 0; x < primary_weapons.size; x++ ) { curWeapon = primary_weapons[x]; if ( level.headshots_only && is_lethal_grenade(curWeapon) ){ continue; } if ( isDefined( level.zombie_include_equipment ) && isDefined( level.zombie_include_equipment[curWeapon] ) ){ continue; } if ( isDefined( level.zombie_weapons_no_max_ammo ) && isDefined( level.zombie_weapons_no_max_ammo[curWeapon] ) ){ continue; } if ( players[i] hasweapon( curWeapon ) ){ players[i] givemaxammo( curWeapon ); players[i] setweaponammoclip( curWeapon, 300); } } } level thread full_ammo_on_hud( drop_item, player.team ); }
Please report any bugs or errors.
For the record, there is one I know of already, if you have a dual wield (eg. dual wield five sevens) and you have another weapon out when you get the max ammo, the dual wield weapon will only have one clip refilled.
One of them won't
If you're holding the dual wield, it refills as expected.
If anyone knows how to fix, be my guest -
nice one lad!
-
I believe the Cold War Mod might have this, not sure though, but nice release as a standalone
-
Nice release.
I'm so used to this since I only play BO3 custom maps -
MisterX2003 I believe you can omit this segment:
init() { level thread onPlayerConnect(); } onPlayerConnect() { level endon("game_ended"); for(;;) { level waittill("connected", player); player thread onPlayerSpawned(); } } onPlayerSpawned() { self endon("disconnect"); level endon("game_ended"); for(;;) { self waittill("spawned_player"); if(!isDefined(level.maC1)) { wait 5; level.maC1 = "DONE"; replaceFunc(maps\mp\zombies\_zm_powerups::full_ammo_powerup,::new_full_ammo_powerup); } } }
and write it as
main() { replaceFunc(maps\mp\zombies\_zm_powerups::full_ammo_powerup,::new_full_ammo_powerup); }
afaik replaceFunc only needs to be run once per game, your code runs it once for each player.
-
This post is deleted!
-
@The_Spectre115 As the plutonium docs say, you cannot "inject" things in any way, this word usually means that we are gonna use an external program that will patch the game memory wile its running, and thats exatcly what triggers the ban system.
We instead "load" the scripts letting the Compiled GSC in a predefined folder plutonium setted up for it. the tutorial for it is on the point 6 in here:
-
znchi just tested this one, it also works thanks to both of u
-
This causes an infinite loop crash seemingly randomly on picking up a max ammo.
-
FantasticLoki copied the actual max ammo code and added the extra line to fill the clip. works all the time for me without issues.
new_full_ammo_powerup(drop_item, player) { players = get_players( player.team ); if ( isDefined( level._get_game_module_players ) ) { players = [[ level._get_game_module_players ]]( player ); } i = 0; while ( i < players.size ) { if ( players[ i ] maps\mp\zombies\_zm_laststand::player_is_in_laststand() ) { i++; continue; } else { primary_weapons = players[ i ] getweaponslist( 1 ); players[ i ] notify( "zmb_max_ammo" ); players[ i ] notify( "zmb_lost_knife" ); players[ i ] notify( "zmb_disable_claymore_prompt" ); players[ i ] notify( "zmb_disable_spikemore_prompt" ); x = 0; while ( x < primary_weapons.size ) { if ( level.headshots_only && is_lethal_grenade( primary_weapons[ x ] ) ) { x++; continue; } else { if ( isDefined( level.zombie_include_equipment ) && isDefined( level.zombie_include_equipment[ primary_weapons[ x ] ] ) ) { x++; continue; } else { if ( players[ i ] hasweapon( primary_weapons[ x ] ) ) { players[ i ] givemaxammo( primary_weapons[ x ] ); players[ i ] setweaponammoclip( primary_weapons[ x ], weaponclipsize( primary_weapons[ x ] ) ); } } } x++; } } i++; } level thread full_ammo_on_hud( drop_item, player.team ); }
-
How can I add this to my server?
-
i have a lil question,how do i add this to my game?
-
@Rubysexx read our doc
-
I was testing and the game crashed for me.
The game crashes when performing the reload action of any weapon and at the same time taking maximum ammo.
This error was already described in this forum, but it was described as a random error, but it is not a random error.
If anyone finds a solution please share it, or if there is a forum about this please share it here.