Skip to content
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Donate
Collapse

Plutonium

mahmodhalah2undefined

mahmodhalah2

@mahmodhalah2
About
Posts
9
Topics
1
Shares
0
Groups
0
Followers
3
Following
8

Posts

Recent Best Controversial

  • 🔮 BO2 Zombies – Shared Mystery Box Script
    mahmodhalah2undefined mahmodhalah2

    🔥 About:
    This script upgrades the way players interact with the Mystery Box in BO2 Zombies,
    adding new co-op focused features that make gameplay smoother, faster, and more fun.

    ✨ Features:

    • Press V while the Mystery Box is open to share it with your teammate.
      No more fighting over rolls – now both players can access the box together.
    • Press Shift while the Mystery Box is open to instantly close it.
      Perfect for shutting it down during hectic moments, trolling your friends,
      or preventing wasted spins.

    💀 Why Use It?

    • Perfect for co-op sessions where teamwork and timing matter.
    • Adds a unique twist to the Mystery Box mechanic, making it feel more dynamic.
    • Helps avoid box-hogging and gives both players fair chances.
    • Quick-close feature with Shift makes the box easier to control.
    • Useful for speedruns, challenge games, and custom fun runs.

    âš¡ Installation:
    Just drop the script into your Plutonium BO2 Zombies GSC mods folder
    and enjoy the upgraded Mystery Box experience!
    [code]

    #include maps/mp/_utility;
    #include common_scripts/utility;
    #include maps/mp/gametypes_zm/_hud_util;
    #include maps/mp/zombies/_zm_weapons;
    #include maps/mp/zombies/_zm_magicbox;
    #include maps/mp/zombies/_zm;
    #include maps/mp/zombies/_zm_unitrigger;
    #include maps/mp/zombies/_zm_utility;
    #include maps/mp/_zm_tomb_capture_zones;
    init()
    {
        if(getdvar( "mapname" ) == "zm_tomb" )
        	thread monitor_boxes();
        else
            thread CheckForCurrentBox();
            
        level.shared_box = 0;
        add_zombie_hint( "default_shared_box", "Hold ^3&&1^7 for weapon");
    }
    
    CheckForCurrentBox()
    {
    	flag_wait( "initial_blackscreen_passed" );
        if( getdvar( "mapname" ) == "zm_nuked" )
        {
            wait 10;
        }
        for(i = 0; i < level.chests.size; i++)
        {
            level.chests[ i ] thread reset_box();
    		if(level.chests[ i ].hidden)
        	{
    			level.chests[ i ] get_chest_pieces();
        	}
    		if(!level.chests[ i ].hidden)
    		{
    			level.chests[ i ].unitrigger_stub.prompt_and_visibility_func = ::boxtrigger_update_prompt;
    		}
    	}
    }
    
    monitor_boxes()
    {
    	flag_wait( "initial_blackscreen_passed" );
        wait 10;
        for(i = 0; i < level.chests.size; i++)
        {
            level.chests[ i ] thread reset_box();		
    	}
        for(;;)
        {
            for(i = 0; i < level.chests.size; i++)
            {
                if(!level.chests[ i ].hidden)
                {
                    level.chests[ i ].unitrigger_stub.prompt_and_visibility_func = ::boxtrigger_update_prompt;
                    level.chests[ i ].zbarrier waittill( "left" );
                    //iPrintLn("left");
                }
            }
            wait 15;
            //iPrintLn("15");
    	}
    }
    
    reset_box()
    {
    	self notify("kill_chest_think");
        wait .1;
    	if(!self.hidden)
        {
    		self.grab_weapon_hint = 0;
    		self thread maps/mp/zombies/_zm_unitrigger::register_static_unitrigger( self.unitrigger_stub, ::magicbox_unitrigger_think );
        	self.unitrigger_stub run_visibility_function_for_all_triggers();
    	}
    	self thread custom_treasure_chest_think();
    }
    
    get_chest_pieces()
    {
    	self.chest_box = getent( self.script_noteworthy + "_zbarrier", "script_noteworthy" );
    	self.chest_rubble = [];
    	rubble = getentarray( self.script_noteworthy + "_rubble", "script_noteworthy" );
    	i = 0;
    	while ( i < rubble.size )
    	{
    		if ( distancesquared( self.origin, rubble[ i ].origin ) < 10000 )
    		{
    			self.chest_rubble[ self.chest_rubble.size ] = rubble[ i ];
    		}
    		i++;
    	}
    	self.zbarrier = getent( self.script_noteworthy + "_zbarrier", "script_noteworthy" );
    	if ( isDefined( self.zbarrier ) )
    	{
    		self.zbarrier zbarrierpieceuseboxriselogic( 3 );
    		self.zbarrier zbarrierpieceuseboxriselogic( 4 );
    	}
    	self.unitrigger_stub = spawnstruct();
    	self.unitrigger_stub.origin = self.origin + ( anglesToRight( self.angles ) * -22.5 );
    	self.unitrigger_stub.angles = self.angles;
    	self.unitrigger_stub.script_unitrigger_type = "unitrigger_box_use";
    	self.unitrigger_stub.script_width = 104;
    	self.unitrigger_stub.script_height = 50;
    	self.unitrigger_stub.script_length = 45;
    	self.unitrigger_stub.trigger_target = self;
    	unitrigger_force_per_player_triggers( self.unitrigger_stub, 1 );
    	self.unitrigger_stub.prompt_and_visibility_func = ::boxtrigger_update_prompt;
    	self.zbarrier.owner = self;
    }
    
    boxtrigger_update_prompt( player )
    {
    	can_use = self custom_boxstub_update_prompt( player );
    	if ( isDefined( self.hint_string ) )
    	{
    		if ( isDefined( self.hint_parm1 ) )
    		{
    			self sethintstring( self.hint_string, self.hint_parm1 );
    		}
    		else
    		{
    			self sethintstring( self.hint_string );
    		}
    	}
    	return can_use;
    }
    
    custom_boxstub_update_prompt( player )
    {
        self setcursorhint( "HINT_NOICON" );
        if(!self trigger_visible_to_player( player ))
        {
            if(level.shared_box)
            {
                self setvisibletoplayer( player );
                self.hint_string = get_hint_string( self, "default_shared_box" );
                return 1;
            }
            return 0;
        }
        self.hint_parm1 = undefined;
                    if(level.shared_box)
        {
                    self.hint_string = "Press ^2F^7 to take weapon"; // Any player can now take it
            return 1;
        }
    
            if ( isDefined( self.stub.trigger_target.grab_weapon_hint ) && self.stub.trigger_target.grab_weapon_hint && !level.shared_box )
        {
            if (isDefined( level.magic_box_check_equipment ) && [[ level.magic_box_check_equipment ]]( self.stub.trigger_target.grab_weapon_name ) )
            {
                self.hint_string = "Press ^2F^7 for Equipment, ^3V^7 to share, or ^1Shift^7 to close";
            }
            else 
            {
                self.hint_string = "Press ^2F^7 for Weapon, ^3V^7 to share, or ^1Shift^7 to close";
            }
        }
        else if(getdvar("mapname") == "zm_tomb" && isDefined(level.zone_capture.zones) && !level.zone_capture.zones[self.stub.zone] ent_flag( "player_controlled" )) 
        {
            self.stub.hint_string = &"ZM_TOMB_ZC";
            return 0;
        }
        else
        {
            if ( isDefined( level.using_locked_magicbox ) && level.using_locked_magicbox && isDefined( self.stub.trigger_target.is_locked ) && self.stub.trigger_target.is_locked )
            {
                self.hint_string = get_hint_string( self, "locked_magic_box_cost" );
            }
            else
            {
                self.hint_parm1 = self.stub.trigger_target.zombie_cost;
                self.hint_string = get_hint_string( self, "default_treasure_chest" );
            }
        }
        return 1;
    }
    
    custom_treasure_chest_think()
    {
    	self endon( "kill_chest_think" );
    	user = undefined;
    	user_cost = undefined;
    	self.box_rerespun = undefined;
    	self.weapon_out = undefined;
    	self thread unregister_unitrigger_on_kill_think();
    	while ( 1 )
    	{
    		if ( !isdefined( self.forced_user ) )
    		{
    			self waittill( "trigger", user );
    			if ( user == level )
    			{
    				wait 0.1;
    				continue;
    			}
    		}
    		else
    		{
    			user = self.forced_user;
    		}
    		if ( user in_revive_trigger() )
    		{
    			wait 0.1;
    			continue;
    		}
    		if ( user.is_drinking > 0 )
    		{
    			wait 0.1;
    			continue;
    		}
    		if ( isdefined( self.disabled ) && self.disabled )
    		{
    			wait 0.1;
    			continue;
    		}
    		if ( user getcurrentweapon() == "none" )
    		{
    			wait 0.1;
    			continue;
    		}
    		reduced_cost = undefined;
    		if ( is_player_valid( user ) && user maps/mp/zombies/_zm_pers_upgrades_functions::is_pers_double_points_active() )
    		{
    			reduced_cost = int( self.zombie_cost / 2 );
    		}
    		if ( isdefined( level.using_locked_magicbox ) && level.using_locked_magicbox && isdefined( self.is_locked ) && self.is_locked ) 
    		{
    			if ( user.score >= level.locked_magic_box_cost )
    			{
    				user maps/mp/zombies/_zm_score::minus_to_player_score( level.locked_magic_box_cost );
    				self.zbarrier set_magic_box_zbarrier_state( "unlocking" );
    				self.unitrigger_stub run_visibility_function_for_all_triggers();
    			}
    			else
    			{
    				user maps/mp/zombies/_zm_audio::create_and_play_dialog( "general", "no_money_box" );
    			}
    			wait 0.1 ;
    			continue;
    		}
    		else if ( isdefined( self.auto_open ) && is_player_valid( user ) )
    		{
    			if ( !isdefined( self.no_charge ) )
    			{
    				user maps/mp/zombies/_zm_score::minus_to_player_score( self.zombie_cost );
    				user_cost = self.zombie_cost;
    			}
    			else
    			{
    				user_cost = 0;
    			}
    			self.chest_user = user;
    			break;
    		}
    		else if ( is_player_valid( user ) && user.score >= self.zombie_cost )
    		{
    			user maps/mp/zombies/_zm_score::minus_to_player_score( self.zombie_cost );
    			user_cost = self.zombie_cost;
    			self.chest_user = user;
    			break;
    		}
    		else if ( isdefined( reduced_cost ) && user.score >= reduced_cost )
    		{
    			user maps/mp/zombies/_zm_score::minus_to_player_score( reduced_cost );
    			user_cost = reduced_cost;
    			self.chest_user = user;
    			break;
    		}
    		else if ( user.score < self.zombie_cost )
    		{
    			play_sound_at_pos( "no_purchase", self.origin );
    			user maps/mp/zombies/_zm_audio::create_and_play_dialog( "general", "no_money_box" );
    			wait 0.1;
    			continue;
    		}
    		wait 0.05;
    	}
    	flag_set( "chest_has_been_used" );
    	maps/mp/_demo::bookmark( "zm_player_use_magicbox", getTime(), user );
    	user maps/mp/zombies/_zm_stats::increment_client_stat( "use_magicbox" );
    	user maps/mp/zombies/_zm_stats::increment_player_stat( "use_magicbox" );
    	if ( isDefined( level._magic_box_used_vo ) )
    	{
    		user thread [[ level._magic_box_used_vo ]]();
    	}
    	self thread watch_for_emp_close();
    	if ( isDefined( level.using_locked_magicbox ) && level.using_locked_magicbox )
    	{
    		self thread custom_watch_for_lock();
    	}
    	self._box_open = 1;
    	level.box_open = 1;
    	self._box_opened_by_fire_sale = 0;
    	if ( isDefined( level.zombie_vars[ "zombie_powerup_fire_sale_on" ] ) && level.zombie_vars[ "zombie_powerup_fire_sale_on" ] && !isDefined( self.auto_open ) && self [[ level._zombiemode_check_firesale_loc_valid_func ]]() )
    	{
    		self._box_opened_by_fire_sale = 1;
    	}
    	if ( isDefined( self.chest_lid ) )
    	{
    		self.chest_lid thread treasure_chest_lid_open();
    	}
    	if ( isDefined( self.zbarrier ) )
    	{
    		play_sound_at_pos( "open_chest", self.origin );
    		play_sound_at_pos( "music_chest", self.origin );
    		self.zbarrier set_magic_box_zbarrier_state( "open" );
    	}
    	self.timedout = 0;
    	self.weapon_out = 1;
    	self.zbarrier thread treasure_chest_weapon_spawn( self, user );
    	self.zbarrier thread treasure_chest_glowfx();
    	thread maps/mp/zombies/_zm_unitrigger::unregister_unitrigger( self.unitrigger_stub );
    	self.zbarrier waittill_any( "randomization_done", "box_hacked_respin" );
    	if ( flag( "moving_chest_now" ) && !self._box_opened_by_fire_sale && isDefined( user_cost ) )
    	{
    		user maps/mp/zombies/_zm_score::add_to_player_score( user_cost, 0 );
    	}
    	if ( flag( "moving_chest_now" ) && !level.zombie_vars[ "zombie_powerup_fire_sale_on" ] && !self._box_opened_by_fire_sale )
    	{
    		self thread treasure_chest_move( self.chest_user );
    	}
    	else
    	{
    		self.grab_weapon_hint = 1;
    		self.grab_weapon_name = self.zbarrier.weapon_string;
    		self.chest_user = user;
    		thread maps/mp/zombies/_zm_unitrigger::register_static_unitrigger( self.unitrigger_stub, ::magicbox_unitrigger_think );
    		if ( isDefined( self.zbarrier ) && !is_true( self.zbarrier.closed_by_emp ) )
    		{
    			self thread treasure_chest_timeout();
    		}
    		timeout_time = 105;
    		grabber = user;
    		for( i=0;i<105;i++ )
    		{
    			// SKIPPING with SHIFT
    			if(user sprintButtonPressed() && isplayer( user ) && distance(self.origin, user.origin) <= 100)
    			{
    				self.timedout = 1;
    				if(isDefined(self.zbarrier.weapon_model))
    				{
    					self.zbarrier.weapon_model delete();
    				}
    				self.zbarrier notify( "weapon_grabbed" );
    				break;
    			}
    
    			// SHARING with V
    			if(user meleebuttonpressed() && isplayer( user ) && distance(self.origin, user.origin) <= 100)
    			{
    				level.magic_box_grab_by_anyone = 1;
    				level.shared_box = 1;
    				self.unitrigger_stub run_visibility_function_for_all_triggers();
    				for( a=i;a<105;a++ )
    				{
    					foreach(player in level.players)
    					{
    						if(player usebuttonpressed() && distance(self.origin, player.origin) <= 100 && isDefined( player.is_drinking ) && !player.is_drinking)
    						{
    							player thread treasure_chest_give_weapon( self.zbarrier.weapon_string );
    							a = 105;
    							break;
    						}
    					}
    					wait 0.1;
    				}
    				break;
    			}
    
    			// GRABBING with F
    			if(grabber usebuttonpressed() && isplayer( grabber ) && user == grabber && distance(self.origin, grabber.origin) <= 100 && isDefined( grabber.is_drinking ) && !grabber.is_drinking)
    			{
    				grabber thread treasure_chest_give_weapon( self.zbarrier.weapon_string );
    				break;
    			}
    			wait 0.1;
    		}
    		self.weapon_out = undefined;
    		self notify( "user_grabbed_weapon" );
    		user notify( "user_grabbed_weapon" );
    		self.grab_weapon_hint = 0;
    		self.zbarrier notify( "weapon_grabbed" );
    		if ( isDefined( self._box_opened_by_fire_sale ) && !self._box_opened_by_fire_sale )
    		{
    			level.chest_accessed += 1;
    		}
    		if ( level.chest_moves > 0 && isDefined( level.pulls_since_last_ray_gun ) )
    		{
    			level.pulls_since_last_ray_gun += 1;
    		}
    		thread maps/mp/zombies/_zm_unitrigger::unregister_unitrigger( self.unitrigger_stub );
    		if ( isDefined( self.chest_lid ) )
    		{
    			self.chest_lid thread treasure_chest_lid_close( self.timedout );
    		}
    		if ( isDefined( self.zbarrier ) )
    		{
    			self.zbarrier set_magic_box_zbarrier_state( "close" );
    			play_sound_at_pos( "close_chest", self.origin );
    			self.zbarrier waittill( "closed" );
    			wait 1;
    		}
    		else
    		{
    			wait 3;
    		}
    		if ( isDefined( level.zombie_vars[ "zombie_powerup_fire_sale_on" ] ) && level.zombie_vars[ "zombie_powerup_fire_sale_on" ] || self [[ level._zombiemode_check_firesale_loc_valid_func ]]() || self == level.chests[ level.chest_index ] )
    		{
    			thread maps/mp/zombies/_zm_unitrigger::register_static_unitrigger( self.unitrigger_stub, ::magicbox_unitrigger_think );
    		}
    	}
    	self._box_open = 0;
    	level.box_open = 0;
    	level.shared_box = 0;
    	level.magic_box_grab_by_anyone = 0;
    	self._box_opened_by_fire_sale = 0;
    	self.chest_user = undefined;
    	self notify( "chest_accessed" );
    	self thread custom_treasure_chest_think();
    }
    
    custom_watch_for_lock()
    {
        self endon( "user_grabbed_weapon" );
        self endon( "chest_accessed" );
        self waittill( "box_locked" );
        self notify( "kill_chest_think" );
        self.grab_weapon_hint = 0;
        wait 0.1;
        self thread maps/mp/zombies/_zm_unitrigger::register_static_unitrigger( self.unitrigger_stub, ::magicbox_unitrigger_think );
        self.unitrigger_stub run_visibility_function_for_all_triggers();
        self thread custom_treasure_chest_think();
    }
    
    

    [/code]

    🚀 Play smarter, share faster, and survive longer with the Shared Mystery Box Script!

    BO2 Modding Releases & Resources

  • Rank System From My Z-tavern Simpled
    mahmodhalah2undefined mahmodhalah2

    DirkRockface this my dis user : abo_al_7alah

    BO2 Modding Releases & Resources

  • Rank System From My Z-tavern Simpled
    mahmodhalah2undefined mahmodhalah2

    DirkRockface we're can I find it I need it

    BO2 Modding Releases & Resources

  • [Release] [ZM] [Mod] zm_weapons - Adding all weapons to maps
    mahmodhalah2undefined mahmodhalah2

    sehteria can you DM me in discord king_rl_pl

    BO2 Modding Releases & Resources

  • [Release] [ZM] [Mod] zm_weapons - Adding all weapons to maps
    mahmodhalah2undefined mahmodhalah2

    i add the files to mods and i add it to website in xampp and make url buy when i come to open the box the game crashed

    BO2 Modding Releases & Resources

  • Perks Problems
    mahmodhalah2undefined mahmodhalah2

    download custom-perks-powerups.gsc search to find it

    WAW Client Support

  • I need some scripts that maybe useful in ZM Bo2
    mahmodhalah2undefined mahmodhalah2

    @Mazen-exe try this https://www.mediafire.com/file/f2tv7ybgjv9ljo8/best_script_bo2_zm.rar/file

    BO2 Modding Support & Discussion

  • Give ideas for scripts!
    mahmodhalah2undefined mahmodhalah2

    make this scripts /afk/rank/bank/pay/id/custom name/save load rounds/kill last zombie/drop weapon/buy speed or hp. I hope you see my comment

    BO2 Modding Support & Discussion

  • [Release] [ZM] BO2 Remix Mod
    mahmodhalah2undefined mahmodhalah2

    nice mod but i need slow zm not speed one how?

    BO2 Modding Releases & Resources
  • 1 / 1
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Donate