Skip to content
  • 0 Unread 0
  • Recent
  • Popular
  • Users
  • Donate
Collapse
Home Docs Stats Discord Donate
Download
Ivobardolf

Ivobardolf

@Ivobardolf
Unfollow Follow
About
Posts
74
Topics
3
Shares
0
Groups
0
Followers
10
Following
7

Posts

Recent Best Controversial

  • Looking for a potential GSC script for no restrictions on getting the ray gun and ray gun mark 2
    Ivobardolf Ivobardolf
    BO2 Modding Support & Discussion

    Here is a simple script that does it, But keep in mind it also allows all players to get the Wonder Weapons of the map, 4 Paralyzer, 4 Blundergat etc:

    #include common_scripts\utility;
    #include maps\mp\zombies\_zm_utility;
    
    init()
    {
        flag_wait( "initial_blackscreen_passed" );
    
        wait 1;
    
       level.special_weapon_magicbox_check = ::No_Limited_Weapons;
    
    }
    
    No_Limited_Weapons( weapon )
    {
        return true;
    }
    

  • Remove Zombie Dying by Himself
    Ivobardolf Ivobardolf
    BO2 Modding Releases & Resources

    Hello,

    In order to stop Zombies from dying by being Idle for too long & if they are far from you, you change these functions ( This is for Origins, Other maps should be the same by replacing the names and some don't use a function from this ), First Idle:

    tomb_round_spawn_failsafe()//tomp is Origins name
    

    replace OR comment out:

    self dodamage( self.health + 100, ( 0, 0, 0 ) );
    level.zombie_total++;
    level.zombie_total_subtract++;
    
    zombie_damage_failsafe()//this for damaged or missing limbs
    

    replace OR comment out:

    self.enemy dodamage( self.enemy.health + 1000, self.enemy.origin, self, self, "none", "MOD_RIFLE_BULLET" );
    continue_failsafe_damage = 1;
    

    for far away:

    delete_zombie_noone_looking( how_close, how_high )//every map has this
    

    replace OR comment out:

    self notify( "zombie_delete" );
    self delete();
    level.zombie_total++;           level.zombie_respawned_health[level.zombie_respawned_health.size] = self.health;
    

    here is a GSC script for Origins:

    #include common_scripts\utility;
    #include maps\mp\_utility;
    #include maps\mp\zombies\_zm_utility;
    
    
    main()
    {
        replaceFunc(maps\mp\zm_tomb_distance_tracking::delete_zombie_noone_looking, ::delete_zombie_noone_looking);
        replaceFunc(maps\mp\zm_tomb::tomb_round_spawn_failsafe, ::tomb_round_spawn_failsafe);// tomb is origins name
        replaceFunc(maps\mp\zombies\_zm::round_spawn_failsafe, ::round_spawn_failsafe);
    }
    
    delete_zombie_noone_looking( how_close, how_high )
    {
        self endon( "death" );
    
        if ( !isdefined( how_close ) )
            how_close = 1500;
    
        if ( !isdefined( how_high ) )
            how_high = 600;
    
        distance_squared_check = how_close * how_close;
        too_far_dist = distance_squared_check * 3;
    
        if ( isdefined( level.zombie_tracking_too_far_dist ) )
            too_far_dist = level.zombie_tracking_too_far_dist * level.zombie_tracking_too_far_dist;
    
        self.inview = 0;
        self.player_close = 0;
        n_distance_squared = 0;
        n_height_difference = 0;
        players = get_players();
    
        for ( i = 0; i < players.size; i++ )
        {
            if ( players[i].sessionstate == "spectator" )
                continue;
    
            if ( isdefined( level.only_track_targeted_players ) )
            {
                if ( !isdefined( self.favoriteenemy ) || self.favoriteenemy != players[i] )
                    continue;
            }
    
            can_be_seen = self player_can_see_me( players[i] );
    
            if ( can_be_seen && distancesquared( self.origin, players[i].origin ) < too_far_dist )
                self.inview++;
    
            n_modifier = 1.0;
    
            if ( isdefined( players[i].b_in_tunnels ) && players[i].b_in_tunnels )
                n_modifier = 2.25;
    
            n_distance_squared = distancesquared( self.origin, players[i].origin );
            n_height_difference = abs( self.origin[2] - players[i].origin[2] );
    
            if ( n_distance_squared < distance_squared_check * n_modifier && n_height_difference < how_high )
                self.player_close++;
        }
    
        if ( self.inview == 0 && self.player_close == 0 )
        {
            if ( !isdefined( self.animname ) || self.animname != "zombie" && self.animname != "mechz_zombie" )
                return;
    
            if ( isdefined( self.electrified ) && self.electrified == 1 )
                return;
    
            if ( isdefined( self.in_the_ground ) && self.in_the_ground == 1 )
                return;
    
            zombies = getaiarray( "axis" );
    
            if ( ( !isdefined( self.damagemod ) || self.damagemod == "MOD_UNKNOWN" ) && self.health < self.maxhealth )
            {
                if ( !( isdefined( self.exclude_distance_cleanup_adding_to_total ) && self.exclude_distance_cleanup_adding_to_total ) && !( isdefined( self.isscreecher ) && self.isscreecher ) )
                {
                    empty = 0;
                    //level.zombie_total++;
                    //level.zombie_respawned_health[level.zombie_respawned_health.size] = self.health;
                }
            }
            else if ( zombies.size + level.zombie_total > 24 || zombies.size + level.zombie_total <= 24 && self.health >= self.maxhealth )
            {
                if ( !( isdefined( self.exclude_distance_cleanup_adding_to_total ) && self.exclude_distance_cleanup_adding_to_total ) && !( isdefined( self.isscreecher ) && self.isscreecher ) )
                {
                    empty = 1;
                    //level.zombie_total++;
    
                    if ( self.health < level.zombie_health )
                        level.zombie_respawned_health[level.zombie_respawned_health.size] = self.health;
                }
            }
    
            self maps\mp\zombies\_zm_spawner::reset_attack_spot();
            //self notify( "zombie_delete" );
            empty = 0;
    
            if ( isdefined( self.is_mechz ) && self.is_mechz )
            {
                self notify( "mechz_cleanup" );
                level.mechz_left_to_spawn++;
                wait_network_frame();
                level notify( "spawn_mechz" );
            }
            empty = 0;
            //self delete();
            recalc_zombie_array();
        }
    }
    
    tomb_round_spawn_failsafe()
    {
        self endon( "death" );
        prevorigin = self.origin;
    
        while ( true )
        {
            if ( isdefined( self.ignore_round_spawn_failsafe ) && self.ignore_round_spawn_failsafe )
                return;
    
            wait 15;
    
            if ( isdefined( self.is_inert ) && self.is_inert )
                continue;
    
            if ( isdefined( self.lastchunk_destroy_time ) )
            {
                if ( gettime() - self.lastchunk_destroy_time < 8000 )
                    continue;
            }
    
            if ( self.origin[2] < -3000 )
            {
                if ( isdefined( level.put_timed_out_zombies_back_in_queue ) && level.put_timed_out_zombies_back_in_queue && !flag( "dog_round" ) && !( isdefined( self.isscreecher ) && self.isscreecher ) )
                {
                    empty = 0;
                    //level.zombie_total++;
                    //level.zombie_total_subtract++;
                }
                empty = 0;
                //self dodamage( self.health + 100, ( 0, 0, 0 ) );
                break;
            }
    
            if ( distancesquared( self.origin, prevorigin ) < 576 )
            {
                if ( isdefined( level.put_timed_out_zombies_back_in_queue ) && level.put_timed_out_zombies_back_in_queue && !flag( "dog_round" ) )
                {
                    if ( !self.ignoreall && !( isdefined( self.nuked ) && self.nuked ) && !( isdefined( self.marked_for_death ) && self.marked_for_death ) && !( isdefined( self.isscreecher ) && self.isscreecher ) && ( isdefined( self.has_legs ) && self.has_legs ) && !( isdefined( self.is_brutus ) && self.is_brutus ) )
                    {
                        empty = 0;
                        //level.zombie_total++;
                        //level.zombie_total_subtract++;
                    }
                }
    
                level.zombies_timeout_playspace++;
                empty = 0;
                //self dodamage( self.health + 100, ( 0, 0, 0 ) );
                break;
            }
    
            prevorigin = self.origin;
        }
    }
    
    round_spawn_failsafe()
    {
        self endon( "death" );
        prevorigin = self.origin;
    
        while ( true )
        {
            if ( !level.zombie_vars["zombie_use_failsafe"] )
                return;
    
            if ( isdefined( self.ignore_round_spawn_failsafe ) && self.ignore_round_spawn_failsafe )
                return;
    
            wait 30;
    
            if ( !self.has_legs )
                wait 10.0;
    
            if ( isdefined( self.is_inert ) && self.is_inert )
                continue;
    
            if ( isdefined( self.lastchunk_destroy_time ) )
            {
                if ( gettime() - self.lastchunk_destroy_time < 8000 )
                    continue;
            }
    
            if ( self.origin[2] < level.zombie_vars["below_world_check"] )
            {
                if ( isdefined( level.put_timed_out_zombies_back_in_queue ) && level.put_timed_out_zombies_back_in_queue && !flag( "dog_round" ) && !( isdefined( self.isscreecher ) && self.isscreecher ) )
                {
                    empty = 0;
                    //level.zombie_total++;
                    //level.zombie_total_subtract++;
                }
    
    /#
    
    #/
                empty = 0;
                //self dodamage( self.health + 100, ( 0, 0, 0 ) );
                break;
            }
    
            if ( distancesquared( self.origin, prevorigin ) < 576 )
            {
                if ( isdefined( level.put_timed_out_zombies_back_in_queue ) && level.put_timed_out_zombies_back_in_queue && !flag( "dog_round" ) )
                {
                    if ( !self.ignoreall && !( isdefined( self.nuked ) && self.nuked ) && !( isdefined( self.marked_for_death ) && self.marked_for_death ) && !( isdefined( self.isscreecher ) && self.isscreecher ) && ( isdefined( self.has_legs ) && self.has_legs ) )
                    {
                        empty = 0;
                        //level.zombie_total++;
                        //level.zombie_total_subtract++;
                    }
                }
    
                level.zombies_timeout_playspace++;
    /#
    
    #/
                empty = 0;
                //self dodamage( self.health + 100, ( 0, 0, 0 ) );
                break;
            }
    
            prevorigin = self.origin;
        }
    }
    

    here is a GSC script for Buried:

    #include maps\mp\gametypes_zm\_hud_util;
    #include common_scripts\utility;
    #include maps\mp\_utility;
    #include maps\mp\zombies\_zm_utility;
    #include maps\mp\gametypes_zm\_spawnlogic;
    
    main()
    {
        replaceFunc(maps\mp\zm_buried_distance_tracking::delete_zombie_noone_looking, ::delete_zombie_noone_looking);
        replaceFunc(maps\mp\zombies\_zm::round_spawn_failsafe, ::round_spawn_failsafe);
    }
    
    
    delete_zombie_noone_looking( how_close, how_high )
    {
        self endon( "death" );
    
        if ( self can_be_deleted_from_buried_special_zones() )
        {
            self.inview = 0;
            self.player_close = 0;
        }
        else
        {
            if ( !isdefined( how_close ) )
                how_close = 1000;
    
            if ( !isdefined( how_high ) )
                how_high = 500;
    
            if ( !( isdefined( self.has_legs ) && self.has_legs ) )
                how_close = how_close * 1.5;
    
            distance_squared_check = how_close * how_close;
            height_squared_check = how_high * how_high;
            too_far_dist = distance_squared_check * 3;
    
            if ( isdefined( level.zombie_tracking_too_far_dist ) )
                too_far_dist = level.zombie_tracking_too_far_dist * level.zombie_tracking_too_far_dist;
    
            self.inview = 0;
            self.player_close = 0;
            players = get_players();
    
            foreach ( player in players )
            {
                if ( player.sessionstate == "spectator" )
                    continue;
    
                if ( isdefined( player.laststand ) && player.laststand && ( isdefined( self.favoriteenemy ) && self.favoriteenemy == player ) )
                {
                    if ( !self can_zombie_see_any_player() )
                    {
                        self.favoriteenemy = undefined;
                        self.zombie_path_bad = 1;
                        self thread escaped_zombies_cleanup();
                    }
                }
    
                if ( isdefined( level.only_track_targeted_players ) )
                {
                    if ( !isdefined( self.favoriteenemy ) || self.favoriteenemy != player )
                        continue;
                }
    
                can_be_seen = self player_can_see_me( player );
                distance_squared = distancesquared( self.origin, player.origin );
    
                if ( can_be_seen && distance_squared < too_far_dist )
                    self.inview++;
    
                if ( distance_squared < distance_squared_check && abs( self.origin[2] - player.origin[2] ) < how_high )
                    self.player_close++;
            }
        }
    
        wait 0.1;
    
        if ( self.inview == 0 && self.player_close == 0 )
        {
            if ( !isdefined( self.animname ) || isdefined( self.animname ) && self.animname != "zombie" )
                return;
    
            if ( isdefined( self.electrified ) && self.electrified == 1 )
                return;
    
            zombies = getaiarray( "axis" );
    
            if ( zombies.size + level.zombie_total > 24 || zombies.size + level.zombie_total <= 24 && self.health >= self.maxhealth )
            {
                if ( !( isdefined( self.exclude_distance_cleanup_adding_to_total ) && self.exclude_distance_cleanup_adding_to_total ) && !( isdefined( self.isscreecher ) && self.isscreecher ) )
                {
                    //level.zombie_total++;
    
                    if ( self.health < level.zombie_health )
                        level.zombie_respawned_health[level.zombie_respawned_health.size] = self.health;
                }
            }
    
            self maps\mp\zombies\_zm_spawner::reset_attack_spot();
            //self notify( "zombie_delete" );
    
            if ( isdefined( self.anchor ) )
                //self.anchor delete();
    
            //self delete();
            recalc_zombie_array();
        }
    }
    
    round_spawn_failsafe()
    {
        self endon( "death" );
        prevorigin = self.origin;
    
        while ( true )
        {
            if ( !level.zombie_vars["zombie_use_failsafe"] )
                return;
    
            if ( isdefined( self.ignore_round_spawn_failsafe ) && self.ignore_round_spawn_failsafe )
                return;
    
            wait 30;
    
            if ( !self.has_legs )
                wait 10.0;
    
            if ( isdefined( self.is_inert ) && self.is_inert )
                continue;
    
            if ( isdefined( self.lastchunk_destroy_time ) )
            {
                if ( gettime() - self.lastchunk_destroy_time < 8000 )
                    continue;
            }
    
            if ( self.origin[2] < level.zombie_vars["below_world_check"] )
            {
                if ( isdefined( level.put_timed_out_zombies_back_in_queue ) && level.put_timed_out_zombies_back_in_queue && !flag( "dog_round" ) && !( isdefined( self.isscreecher ) && self.isscreecher ) )
                {
                    empty = 0;
                    //level.zombie_total++;
                    //level.zombie_total_subtract++;
                }
    
    /#
    
    #/
                empty = 0;
                //self dodamage( self.health + 100, ( 0, 0, 0 ) );
                break;
            }
    
            if ( distancesquared( self.origin, prevorigin ) < 576 )
            {
                if ( isdefined( level.put_timed_out_zombies_back_in_queue ) && level.put_timed_out_zombies_back_in_queue && !flag( "dog_round" ) )
                {
                    if ( !self.ignoreall && !( isdefined( self.nuked ) && self.nuked ) && !( isdefined( self.marked_for_death ) && self.marked_for_death ) && !( isdefined( self.isscreecher ) && self.isscreecher ) && ( isdefined( self.has_legs ) && self.has_legs ) )
                    {
                        empty = 0;
                        //level.zombie_total++;
                        //level.zombie_total_subtract++;
                    }
                }
    
                level.zombies_timeout_playspace++;
    /#
    
    #/
                empty = 0;
                //self dodamage( self.health + 100, ( 0, 0, 0 ) );
                break;
            }
    
            prevorigin = self.origin;
        }
    }
    

    here is a GSC script for Mob of the Dead:

    #include maps\mp\gametypes_zm\_hud_util;
    #include common_scripts\utility;
    #include maps\mp\_utility;
    #include maps\mp\zombies\_zm_utility;
    #include maps\mp\gametypes_zm\_spawnlogic;
    
    main()
    {
        replaceFunc(maps\mp\zm_alcatraz_distance_tracking::delete_zombie_noone_looking, ::delete_zombie_noone_looking);
        replaceFunc(maps\mp\zm_prison::alcatraz_round_spawn_failsafe, ::alcatraz_round_spawn_failsafe);// tomb is origins name
        replaceFunc(maps\mp\zombies\_zm::round_spawn_failsafe, ::round_spawn_failsafe);
    }
    
    delete_zombie_noone_looking( how_close, how_high )
    {
        self endon( "death" );
    
        if ( !isdefined( how_close ) )
            how_close = 1500;
    
        if ( !isdefined( how_high ) )
            how_close = 600;
    
        distance_squared_check = how_close * how_close;
        too_far_dist = distance_squared_check * 3;
    
        if ( isdefined( level.zombie_tracking_too_far_dist ) )
            too_far_dist = level.zombie_tracking_too_far_dist * level.zombie_tracking_too_far_dist;
    
        self.inview = 0;
        self.player_close = 0;
        players = get_players();
    
        for ( i = 0; i < players.size; i++ )
        {
            if ( players[i].sessionstate == "spectator" )
                continue;
    
            if ( isdefined( level.only_track_targeted_players ) )
            {
                if ( !isdefined( self.favoriteenemy ) || self.favoriteenemy != players[i] )
                    continue;
            }
    
            can_be_seen = self player_can_see_me( players[i] );
    
            if ( can_be_seen && distancesquared( self.origin, players[i].origin ) < too_far_dist )
                self.inview++;
    
            if ( distancesquared( self.origin, players[i].origin ) < distance_squared_check && abs( self.origin[2] - players[i].origin[2] ) < how_high )
                self.player_close++;
        }
    
        wait 0.1;
    
        if ( self.inview == 0 && self.player_close == 0 )
        {
            if ( !isdefined( self.animname ) || isdefined( self.animname ) && self.animname != "zombie" )
                return;
    
            if ( isdefined( self.electrified ) && self.electrified == 1 )
                return;
    
            if ( isdefined( self.in_the_ground ) && self.in_the_ground == 1 )
                return;
    
            zombies = getaiarray( "axis" );
    
            if ( ( !isdefined( self.damagemod ) || self.damagemod == "MOD_UNKNOWN" ) && self.health < self.maxhealth )
            {
                if ( !( isdefined( self.exclude_distance_cleanup_adding_to_total ) && self.exclude_distance_cleanup_adding_to_total ) && !( isdefined( self.isscreecher ) && self.isscreecher ) )
                {
                    //level.zombie_total++;
                    //level.zombie_respawned_health[level.zombie_respawned_health.size] = self.health;
                }
            }
            else if ( zombies.size + level.zombie_total > 24 || zombies.size + level.zombie_total <= 24 && self.health >= self.maxhealth )
            {
                if ( !( isdefined( self.exclude_distance_cleanup_adding_to_total ) && self.exclude_distance_cleanup_adding_to_total ) && !( isdefined( self.isscreecher ) && self.isscreecher ) )
                {
                    //level.zombie_total++;
    
                    if ( self.health < level.zombie_health )
                        level.zombie_respawned_health[level.zombie_respawned_health.size] = self.health;
                }
            }
    
            self maps\mp\zombies\_zm_spawner::reset_attack_spot();
            //self notify( "zombie_delete" );
            //self delete();
            recalc_zombie_array();
        }
    }
    
    alcatraz_round_spawn_failsafe()
    {
        self endon( "death" );
        prevorigin = self.origin;
    
        while ( true )
        {
            if ( isdefined( self.ignore_round_spawn_failsafe ) && self.ignore_round_spawn_failsafe )
                return;
    
            wait 15;
    
            if ( isdefined( self.is_inert ) && self.is_inert )
                continue;
    
            if ( isdefined( self.lastchunk_destroy_time ) )
            {
                if ( gettime() - self.lastchunk_destroy_time < 8000 )
                    continue;
            }
    
            if ( self.origin[2] < -15000 )
            {
                if ( isdefined( level.put_timed_out_zombies_back_in_queue ) && level.put_timed_out_zombies_back_in_queue && !flag( "dog_round" ) && !( isdefined( self.isscreecher ) && self.isscreecher ) )
                {
                    //level.zombie_total++;
                    //level.zombie_total_subtract++;
                }
    
    /#
    
    #/
                self dodamage( self.health + 100, ( 0, 0, 0 ) );
                break;
            }
    
            if ( distancesquared( self.origin, prevorigin ) < 576 )
            {
                if ( isdefined( level.put_timed_out_zombies_back_in_queue ) && level.put_timed_out_zombies_back_in_queue && !flag( "dog_round" ) )
                {
                    if ( !( isdefined( self.nuked ) && self.nuked ) && !( isdefined( self.marked_for_death ) && self.marked_for_death ) && !( isdefined( self.isscreecher ) && self.isscreecher ) && ( isdefined( self.has_legs ) && self.has_legs ) && !( isdefined( self.is_brutus ) && self.is_brutus ) )
                    {
                        //level.zombie_total++;
                        //level.zombie_total_subtract++;
                    }
                }
    
                level.zombies_timeout_playspace++;
    /#
    
    #/
    
                if ( isdefined( self.is_brutus ) && self.is_brutus )
                {
                    self.suppress_brutus_powerup_drop = 1;
                    self.brutus_round_spawn_failsafe = 1;
                }
    
                //self dodamage( self.health + 100, ( 0, 0, 0 ) );
                break;
            }
    
            prevorigin = self.origin;
        }
    }
    
    round_spawn_failsafe()
    {
        self endon( "death" );
        prevorigin = self.origin;
    
        while ( true )
        {
            if ( !level.zombie_vars["zombie_use_failsafe"] )
                return;
    
            if ( isdefined( self.ignore_round_spawn_failsafe ) && self.ignore_round_spawn_failsafe )
                return;
    
            wait 30;
    
            if ( !self.has_legs )
                wait 10.0;
    
            if ( isdefined( self.is_inert ) && self.is_inert )
                continue;
    
            if ( isdefined( self.lastchunk_destroy_time ) )
            {
                if ( gettime() - self.lastchunk_destroy_time < 8000 )
                    continue;
            }
    
            if ( self.origin[2] < level.zombie_vars["below_world_check"] )
            {
                if ( isdefined( level.put_timed_out_zombies_back_in_queue ) && level.put_timed_out_zombies_back_in_queue && !flag( "dog_round" ) && !( isdefined( self.isscreecher ) && self.isscreecher ) )
                {
                    empty = 0;
                    //level.zombie_total++;
                    //level.zombie_total_subtract++;
                }
    
    /#
    
    #/
                empty = 0;
                //self dodamage( self.health + 100, ( 0, 0, 0 ) );
                break;
            }
    
            if ( distancesquared( self.origin, prevorigin ) < 576 )
            {
                if ( isdefined( level.put_timed_out_zombies_back_in_queue ) && level.put_timed_out_zombies_back_in_queue && !flag( "dog_round" ) )
                {
                    if ( !self.ignoreall && !( isdefined( self.nuked ) && self.nuked ) && !( isdefined( self.marked_for_death ) && self.marked_for_death ) && !( isdefined( self.isscreecher ) && self.isscreecher ) && ( isdefined( self.has_legs ) && self.has_legs ) )
                    {
                        empty = 0;
                        //level.zombie_total++;
                        //level.zombie_total_subtract++;
                    }
                }
    
                level.zombies_timeout_playspace++;
    /#
    
    #/
                empty = 0;
                //self dodamage( self.health + 100, ( 0, 0, 0 ) );
                break;
            }
    
            prevorigin = self.origin;
        }
    }
    

    here is a GSC script for Die Rise:

    #include maps\mp\gametypes_zm\_hud_util;
    #include common_scripts\utility;
    #include maps\mp\_utility;
    #include maps\mp\zombies\_zm_utility;
    #include maps\mp\gametypes_zm\_spawnlogic;
    
    main()
    {
        replaceFunc(maps\mp\zm_highrise_distance_tracking::delete_zombie_noone_looking, ::delete_zombie_noone_looking);
        replaceFunc(maps\mp\zombies\_zm::round_spawn_failsafe, ::round_spawn_failsafe);
    }
    
    delete_zombie_noone_looking( how_close, how_high )
    {
        self endon( "death" );
    
        if ( !isdefined( how_close ) )
            how_close = 1000;
    
        if ( !isdefined( how_high ) )
            how_high = 500;
    
        distance_squared_check = how_close * how_close;
        height_squared_check = how_high * how_high;
        too_far_dist = distance_squared_check * 3;
    
        if ( isdefined( level.zombie_tracking_too_far_dist ) )
            too_far_dist = level.zombie_tracking_too_far_dist * level.zombie_tracking_too_far_dist;
    
        self.inview = 0;
        self.player_close = 0;
        players = get_players();
    
        for ( i = 0; i < players.size; i++ )
        {
            if ( players[i].sessionstate == "spectator" )
                continue;
    
            if ( isdefined( level.only_track_targeted_players ) )
            {
                if ( !isdefined( self.favoriteenemy ) || self.favoriteenemy != players[i] )
                    continue;
            }
    
            can_be_seen = self player_can_see_me( players[i] );
    
            if ( can_be_seen && distancesquared( self.origin, players[i].origin ) < too_far_dist )
                self.inview++;
    
            if ( distancesquared( self.origin, players[i].origin ) < distance_squared_check && abs( self.origin[2] - players[i].origin[2] ) < how_high )
                self.player_close++;
        }
    
        wait 0.1;
    
        if ( self.inview == 0 && self.player_close == 0 )
        {
            if ( !isdefined( self.animname ) || isdefined( self.animname ) && self.animname != "zombie" )
                return;
    
            if ( isdefined( self.electrified ) && self.electrified == 1 )
                return;
    
            zombies = getaiarray( "axis" );
    
            if ( zombies.size + level.zombie_total > 24 || zombies.size + level.zombie_total <= 24 && self.health >= self.maxhealth )
            {
                if ( !( isdefined( self.exclude_distance_cleanup_adding_to_total ) && self.exclude_distance_cleanup_adding_to_total ) && !( isdefined( self.isscreecher ) && self.isscreecher ) )
                {
                    //level.zombie_total++;
    
                    if ( self.health < level.zombie_health )
                        level.zombie_respawned_health[level.zombie_respawned_health.size] = self.health;
                }
            }
    
            self maps\mp\zombies\_zm_spawner::reset_attack_spot();
            //self notify( "zombie_delete" );
            //self delete();
            recalc_zombie_array();
        }
    }
    
    
    round_spawn_failsafe()
    {
        self endon( "death" );
        prevorigin = self.origin;
    
        while ( true )
        {
            if ( !level.zombie_vars["zombie_use_failsafe"] )
                return;
    
            if ( isdefined( self.ignore_round_spawn_failsafe ) && self.ignore_round_spawn_failsafe )
                return;
    
            wait 30;
    
            if ( !self.has_legs )
                wait 10.0;
    
            if ( isdefined( self.is_inert ) && self.is_inert )
                continue;
    
            if ( isdefined( self.lastchunk_destroy_time ) )
            {
                if ( gettime() - self.lastchunk_destroy_time < 8000 )
                    continue;
            }
    
            if ( self.origin[2] < level.zombie_vars["below_world_check"] )
            {
                if ( isdefined( level.put_timed_out_zombies_back_in_queue ) && level.put_timed_out_zombies_back_in_queue && !flag( "dog_round" ) && !( isdefined( self.isscreecher ) && self.isscreecher ) )
                {
                    empty = 0;
                    //level.zombie_total++;
                    //level.zombie_total_subtract++;
                }
    
    /#
    
    #/
                empty = 0;
                //self dodamage( self.health + 100, ( 0, 0, 0 ) );
                break;
            }
    
            if ( distancesquared( self.origin, prevorigin ) < 576 )
            {
                if ( isdefined( level.put_timed_out_zombies_back_in_queue ) && level.put_timed_out_zombies_back_in_queue && !flag( "dog_round" ) )
                {
                    if ( !self.ignoreall && !( isdefined( self.nuked ) && self.nuked ) && !( isdefined( self.marked_for_death ) && self.marked_for_death ) && !( isdefined( self.isscreecher ) && self.isscreecher ) && ( isdefined( self.has_legs ) && self.has_legs ) )
                    {
                        empty = 0;
                        //level.zombie_total++;
                        //level.zombie_total_subtract++;
                    }
                }
    
                level.zombies_timeout_playspace++;
    /#
    
    #/
                empty = 0;
                //self dodamage( self.health + 100, ( 0, 0, 0 ) );
                break;
            }
    
            prevorigin = self.origin;
        }
    }
    

    here is a GSC script for Tranzit:

    #include maps\mp\gametypes_zm\_hud_util;
    #include common_scripts\utility;
    #include maps\mp\_utility;
    #include maps\mp\zombies\_zm_utility;
    #include maps\mp\gametypes_zm\_spawnlogic;
    
    
    main()
    {
        replaceFunc(maps\mp\zm_transit_distance_tracking::delete_zombie_noone_looking, ::delete_zombie_noone_looking);
        replaceFunc(maps\mp\zombies\_zm::round_spawn_failsafe, ::round_spawn_failsafe);
    }
    
    delete_zombie_noone_looking( how_close )
    {
        self endon( "death" );
    
        if ( !isdefined( how_close ) )
            how_close = 1000;
    
        distance_squared_check = how_close * how_close;
        too_far_dist = distance_squared_check * 3;
    
        if ( isdefined( level.zombie_tracking_too_far_dist ) )
            too_far_dist = level.zombie_tracking_too_far_dist * level.zombie_tracking_too_far_dist;
    
        self.inview = 0;
        self.player_close = 0;
        players = get_players();
    
        for ( i = 0; i < players.size; i++ )
        {
            if ( players[i].sessionstate == "spectator" )
                continue;
    
            if ( isdefined( level.only_track_targeted_players ) )
            {
                if ( !isdefined( self.favoriteenemy ) || self.favoriteenemy != players[i] )
                    continue;
            }
    
            can_be_seen = self player_can_see_me( players[i] );
    
            if ( can_be_seen && distancesquared( self.origin, players[i].origin ) < too_far_dist )
                self.inview++;
    
            if ( distancesquared( self.origin, players[i].origin ) < distance_squared_check )
                self.player_close++;
        }
    
        wait 0.1;
    
        if ( self.inview == 0 && self.player_close == 0 )
        {
            if ( !isdefined( self.animname ) || isdefined( self.animname ) && self.animname != "zombie" )
                return;
    
            if ( isdefined( self.electrified ) && self.electrified == 1 )
                return;
    
            if ( isdefined( self.in_the_ground ) && self.in_the_ground == 1 )
                return;
    
            zombies = getaiarray( "axis" );
    
            if ( ( !isdefined( self.damagemod ) || self.damagemod == "MOD_UNKNOWN" ) && self.health < self.maxhealth )
            {
                if ( !( isdefined( self.exclude_distance_cleanup_adding_to_total ) && self.exclude_distance_cleanup_adding_to_total ) && !( isdefined( self.isscreecher ) && self.isscreecher ) )
                {
                    //level.zombie_total++;
                    //level.zombie_respawned_health[level.zombie_respawned_health.size] = self.health;
                }
            }
            else if ( zombies.size + level.zombie_total > 24 || zombies.size + level.zombie_total <= 24 && self.health >= self.maxhealth )
            {
                if ( !( isdefined( self.exclude_distance_cleanup_adding_to_total ) && self.exclude_distance_cleanup_adding_to_total ) && !( isdefined( self.isscreecher ) && self.isscreecher ) )
                {
                    //level.zombie_total++;
    
                    if ( self.health < level.zombie_health )
                        level.zombie_respawned_health[level.zombie_respawned_health.size] = self.health;
                }
            }
    
            self maps\mp\zombies\_zm_spawner::reset_attack_spot();
            //self notify( "zombie_delete" );
            //self delete();
            recalc_zombie_array();
        }
    }
    
    round_spawn_failsafe()
    {
        self endon( "death" );
        prevorigin = self.origin;
    
        while ( true )
        {
            if ( !level.zombie_vars["zombie_use_failsafe"] )
                return;
    
            if ( isdefined( self.ignore_round_spawn_failsafe ) && self.ignore_round_spawn_failsafe )
                return;
    
            wait 30;
    
            if ( !self.has_legs )
                wait 10.0;
    
            if ( isdefined( self.is_inert ) && self.is_inert )
                continue;
    
            if ( isdefined( self.lastchunk_destroy_time ) )
            {
                if ( gettime() - self.lastchunk_destroy_time < 8000 )
                    continue;
            }
    
            if ( self.origin[2] < level.zombie_vars["below_world_check"] )
            {
                if ( isdefined( level.put_timed_out_zombies_back_in_queue ) && level.put_timed_out_zombies_back_in_queue && !flag( "dog_round" ) && !( isdefined( self.isscreecher ) && self.isscreecher ) )
                {
                    empty = 0;
                    //level.zombie_total++;
                    //level.zombie_total_subtract++;
                }
    
    /#
    
    #/
                empty = 0;
                //self dodamage( self.health + 100, ( 0, 0, 0 ) );
                break;
            }
    
            if ( distancesquared( self.origin, prevorigin ) < 576 )
            {
                if ( isdefined( level.put_timed_out_zombies_back_in_queue ) && level.put_timed_out_zombies_back_in_queue && !flag( "dog_round" ) )
                {
                    if ( !self.ignoreall && !( isdefined( self.nuked ) && self.nuked ) && !( isdefined( self.marked_for_death ) && self.marked_for_death ) && !( isdefined( self.isscreecher ) && self.isscreecher ) && ( isdefined( self.has_legs ) && self.has_legs ) )
                    {
                        empty = 0;
                        //level.zombie_total++;
                        //level.zombie_total_subtract++;
                    }
                }
    
                level.zombies_timeout_playspace++;
    /#
    
    #/
                empty = 0;
                //self dodamage( self.health + 100, ( 0, 0, 0 ) );
                break;
            }
    
            prevorigin = self.origin;
        }
    }
    

  • Cap the Number of Zombies in the Round to 1 Player
    Ivobardolf Ivobardolf
    BO2 Modding Releases & Resources

    Hello,

    This is a simple script using replace function to cap the zombies numbers in a round to 1 player.
    Now instead of 389 zombies for 4 players on round 26, it's now 84

    You can also make it a X number of zombies for X number of players, all from the simple function, 8 players in game but only spawns zombies up to 6 players.

    Or change how much zombies get added per player for better
    calculating, example on round 40 for normal calculations:
    1 Player: 168 Zombies
    2 Players: 312 Zombies, 1.85 Worth of zombies
    3 Players: 600 Zombies, 3.57 Worth of zombies
    4 Players: 888 Zombies, 5.28 Worth of zombies

    It's also possible to change the formula, you can have any number of zombies you want.

    the change is simple:
    From --->

    if ( player_num == 1 )
            max = max + int( 0.5 * level.zombie_vars["zombie_ai_per_player"] * multiplier );
        else
    	max = max + int( ( player_num - 1 ) * level.zombie_vars["zombie_ai_per_player"] * multiplier );
    

    To --->

    if ( player_num == 1 )
            max = max + int( 0.5 * level.zombie_vars["zombie_ai_per_player"] * multiplier );
        else
    	max = max + int( 0.5 * level.zombie_vars["zombie_ai_per_player"] * multiplier );
    

    Here is the script:

    #include common_scripts\utility;
    #include maps\mp\_utility;
    #include maps\mp\zombies\_zm_utility;
    #include maps\mp\zombies\_zm_ffotd;
    #include maps\mp\zombies\_zm;
    #include maps\mp\_visionset_mgr;
    #include maps\mp\zombies\_zm_devgui;
    #include maps\mp\zombies\_zm_zonemgr;
    #include maps\mp\zombies\_zm_unitrigger;
    #include maps\mp\zombies\_zm_audio;
    #include maps\mp\zombies\_zm_blockers;
    #include maps\mp\zombies\_zm_bot;
    #include maps\mp\zombies\_zm_clone;
    #include maps\mp\zombies\_zm_buildables;
    #include maps\mp\zombies\_zm_equipment;
    #include maps\mp\zombies\_zm_laststand;
    #include maps\mp\zombies\_zm_magicbox;
    #include maps\mp\zombies\_zm_perks;
    #include maps\mp\zombies\_zm_playerhealth;
    #include maps\mp\zombies\_zm_power;
    #include maps\mp\zombies\_zm_powerups;
    #include maps\mp\zombies\_zm_score;
    #include maps\mp\zombies\_zm_spawner;
    #include maps\mp\zombies\_zm_gump;
    #include maps\mp\zombies\_zm_timer;
    #include maps\mp\zombies\_zm_traps;
    #include maps\mp\zombies\_zm_weapons;
    #include maps\mp\zombies\_zm_tombstone;
    #include maps\mp\zombies\_zm_stats;
    #include maps\mp\zombies\_zm_pers_upgrades;
    #include maps\mp\gametypes_zm\_zm_gametype;
    #include maps\mp\zombies\_zm_pers_upgrades_functions;
    #include maps\mp\_demo;
    #include maps\mp\gametypes_zm\_hud_util;
    #include maps\mp\zombies\_zm_melee_weapon;
    #include maps\mp\zombies\_zm_ai_dogs;
    #include maps\mp\zombies\_zm_pers_upgrades_system;
    #include maps\mp\gametypes_zm\_weapons;
    #include maps\mp\zombies\_zm_ai_basic;
    #include maps\mp\zombies\_zm_game_module;
    
    main()
    {
    	replaceFunc(maps\mp\zombies\_zm::round_spawning, ::round_spawning);	
    }
    
    round_spawning()
    {
        level endon( "intermission" );
        level endon( "end_of_round" );
        level endon( "restart_round" );
    /#
        level endon( "kill_round" );
    #/
    
        if ( level.intermission )
            return;
    
    /#
        if ( getdvarint( #"zombie_cheat" ) == 2 || getdvarint( #"zombie_cheat" ) >= 4 )
            return;
    #/
    
        if ( level.zombie_spawn_locations.size < 1 )
        {
    /#
            assertmsg( "No active spawners in the map.  Check to see if the zone is active and if it's pointing to spawners." );
    #/
            return;
        }
    
        ai_calculate_health( level.round_number );
        count = 0;
        players = get_players();
    
        for ( i = 0; i < players.size; i++ )
            players[i].zombification_time = 0;
    
        max = level.zombie_vars["zombie_max_ai"];
        multiplier = level.round_number / 5;
    
        if ( multiplier < 1 )
            multiplier = 1;
    
        if ( level.round_number >= 10 )
            multiplier = multiplier * ( level.round_number * 0.15 );
    
        player_num = get_players().size;
    
        if ( player_num == 1 )
            max = max + int( 0.5 * level.zombie_vars["zombie_ai_per_player"] * multiplier );
        else
    	{
    		//max = max + int( ( player_num - 1 ) * level.zombie_vars["zombie_ai_per_player"] * multiplier );
    		max = max + int( 0.5 * level.zombie_vars["zombie_ai_per_player"] * multiplier );
    		iPrintLn("^8Zombies count set to 1 Player :D");
    	}
             
        if ( !isdefined( level.max_zombie_func ) )
            level.max_zombie_func = ::default_max_zombie_func;
    
        if ( !( isdefined( level.kill_counter_hud ) && level.zombie_total > 0 ) )
        {
            level.zombie_total = [[ level.max_zombie_func ]]( max );
            level notify( "zombie_total_set" );
        }
    
        if ( isdefined( level.zombie_total_set_func ) )
            level thread [[ level.zombie_total_set_func ]]();
    
        if ( level.round_number < 10 || level.speed_change_max > 0 )
            level thread zombie_speed_up();
    
        mixed_spawns = 0;
        old_spawn = undefined;
    
        while ( true )
        {
            while ( get_current_zombie_count() >= level.zombie_ai_limit || level.zombie_total <= 0 )
                wait 0.1;
    
            while ( get_current_actor_count() >= level.zombie_actor_limit )
            {
                clear_all_corpses();
                wait 0.1;
            }
    
            flag_wait( "spawn_zombies" );
    
            while ( level.zombie_spawn_locations.size <= 0 )
                wait 0.1;
    
            run_custom_ai_spawn_checks();
            spawn_point = level.zombie_spawn_locations[randomint( level.zombie_spawn_locations.size )];
    
            if ( !isdefined( old_spawn ) )
                old_spawn = spawn_point;
            else if ( spawn_point == old_spawn )
                spawn_point = level.zombie_spawn_locations[randomint( level.zombie_spawn_locations.size )];
    
            old_spawn = spawn_point;
    
            if ( isdefined( level.mixed_rounds_enabled ) && level.mixed_rounds_enabled == 1 )
            {
                spawn_dog = 0;
    
                if ( level.round_number > 30 )
                {
                    if ( randomint( 100 ) < 3 )
                        spawn_dog = 1;
                }
                else if ( level.round_number > 25 && mixed_spawns < 3 )
                {
                    if ( randomint( 100 ) < 2 )
                        spawn_dog = 1;
                }
                else if ( level.round_number > 20 && mixed_spawns < 2 )
                {
                    if ( randomint( 100 ) < 2 )
                        spawn_dog = 1;
                }
                else if ( level.round_number > 15 && mixed_spawns < 1 )
                {
                    if ( randomint( 100 ) < 1 )
                        spawn_dog = 1;
                }
    
                if ( spawn_dog )
                {
                    keys = getarraykeys( level.zones );
    
                    for ( i = 0; i < keys.size; i++ )
                    {
                        if ( level.zones[keys[i]].is_occupied )
                        {
                            akeys = getarraykeys( level.zones[keys[i]].adjacent_zones );
    
                            for ( k = 0; k < akeys.size; k++ )
                            {
                                if ( level.zones[akeys[k]].is_active && !level.zones[akeys[k]].is_occupied && level.zones[akeys[k]].dog_locations.size > 0 )
                                {
                                    maps\mp\zombies\_zm_ai_dogs::special_dog_spawn( undefined, 1 );
                                    level.zombie_total--;
                                    wait_network_frame();
                                }
                            }
                        }
                    }
                }
            }
    
            if ( isdefined( level.zombie_spawners ) )
            {
                if ( isdefined( level.use_multiple_spawns ) && level.use_multiple_spawns )
                {
                    if ( isdefined( spawn_point.script_int ) )
                    {
                        if ( isdefined( level.zombie_spawn[spawn_point.script_int] ) && level.zombie_spawn[spawn_point.script_int].size )
                            spawner = random( level.zombie_spawn[spawn_point.script_int] );
                        else
                        {
    /#
                            assertmsg( "Wanting to spawn from zombie group " + spawn_point.script_int + "but it doens't exist" );
    #/
                        }
                    }
                    else if ( isdefined( level.zones[spawn_point.zone_name].script_int ) && level.zones[spawn_point.zone_name].script_int )
                        spawner = random( level.zombie_spawn[level.zones[spawn_point.zone_name].script_int] );
                    else if ( isdefined( level.spawner_int ) && ( isdefined( level.zombie_spawn[level.spawner_int].size ) && level.zombie_spawn[level.spawner_int].size ) )
                        spawner = random( level.zombie_spawn[level.spawner_int] );
                    else
                        spawner = random( level.zombie_spawners );
                }
                else
                    spawner = random( level.zombie_spawners );
    
                ai = spawn_zombie( spawner, spawner.targetname, spawn_point );
            }
    
            if ( isdefined( ai ) )
            {
                level.zombie_total--;
                ai thread round_spawn_failsafe();
                count++;
            }
    
            wait( level.zombie_vars["zombie_spawn_delay"] );
            wait_network_frame();
        }
    }

  • [Release] [ZM] [Mod] zm_weapons - Adding all weapons to maps
    Ivobardolf Ivobardolf
    BO2 Modding Releases & Resources

    works really well, Thanks for the work! 👍


  • ATTN ADMINS: Possible Pluto Exploit/RCE???
    Ivobardolf Ivobardolf
    General Discussion

    Sheik thanks for the detailed information, hope it gets patched quickly 🙏


  • Lava damage/ daño de lava
    Ivobardolf Ivobardolf
    Temas De Español

    make a GSC file and paste this in it

    #include maps\mp\_utility;
    #include common_scripts\utility;
    #include maps\mp\gametypes_zm\_hud_util;
    
    init()
    {
        level thread onPlayerConnect();
    }
    
    onPlayerConnect()
    {
    	level endon( "game_ended" );
    	for(;;)
    	{
    		level waittill( "connected", player);
    		player.ignore_lava_damage = 1;
    	}
    }
    

  • [Release] [ZM] [Mod] zm_perks - Adding all perks to maps
    Ivobardolf Ivobardolf
    BO2 Modding Releases & Resources

    Oh wow you are doing Perks too!
    Thank you for doing it 👍


  • Does anyone have a script that allows all four players to have the Ray Gun Mark II on every map?
    Ivobardolf Ivobardolf
    BO2 Modding Support & Discussion

    check this, it makes it that you can get both rayguns + box wonder weapons for all players https://forum.plutonium.pw/topic/43983/looking-for-a-potential-gsc-script-for-no-restrictions-on-getting-the-ray-gun-and-ray-gun-mark-2/3?_=1788660320080


  • I Feel Like Plutonium Is Hacked To Death Now...
    Ivobardolf Ivobardolf
    General Discussion

    on black ops 2, I've seen no recoil while aiming and shooting, wall hacks, auto aim and the worst is straight up shooting through walls killing everyone like console hackers, I don't know if watching a demo can let you guys see what the hacker is activating or even see what they to actually do it.

    Thankfully zombies doesn't have any hackers


  • [Release] [ZM] [Mod] zm_weapons - Adding all weapons to maps
    Ivobardolf Ivobardolf
    BO2 Modding Releases & Resources

    Maximizer Blake Great things Deserve the wait


  • Prevent Bo2 Origns multiplayer from breaking Easter Egg
    Ivobardolf Ivobardolf
    General Discussion

    KnightofHeide that step only count the number of players that have done it when someone picks up the stone tablet that spawns from punching the zombies, if you all do the step but one player didn't and leaves it breaks it because the last player that picked up the stone ran a check and the player who didn't do it made it not progress further, you need someone else to join and do it I think, I have a mini fix for it by making it needing one player to do it and it will automatically give the elemental powers to all players in the game


  • Remove Zombie Dying by Himself
    Ivobardolf Ivobardolf
    BO2 Modding Releases & Resources

    @T-Re-Viento Thanks for trying it, but I'm curious, why do you use it 🤔 ?

    yeah, Origins and Motd and some areas in other maps need the things I disable here for them to respawn the zombies, I can think of a way to make it work, but that isn't what I intended for the script, only thing you can do is only move out and in the crazy place if the rounds are changing.


  • Remove Zombie Dying by Himself
    Ivobardolf Ivobardolf
    BO2 Modding Releases & Resources

    WolflexZ They Respawn/Die if they have met certain conditions that I disabled here:
    1 - Zombie is far away
    2 - Zombie is Idle (he stands in place for too long)
    I couldn't find anything related to needing to hit the player

    As you said, many people don't need this script, and it might do them more harm then good, it's intended for some uses and not normal play.


  • Remove Zombie Dying by Himself
    Ivobardolf Ivobardolf
    BO2 Modding Releases & Resources

    @T-Re-Viento Makes sense now 👍

    Regarding the no running, I use the script in testing on every map and never had a no running issue, what round/step the zombie was supposed to run and it didn't?


  • Remove Zombie Dying by Himself
    Ivobardolf Ivobardolf
    BO2 Modding Releases & Resources

    Izi selva Try to keep the conversation to the topic, if you have questions join the plutonium discord

    use OAT tools for that:
    https://github.com/Laupetin/OpenAssetTools


  • Remove Zombie Dying by Himself
    Ivobardolf Ivobardolf
    BO2 Modding Releases & Resources

    Izi selva I'll think about it, since it will need more things and I didn't plan for that


  • Remove Zombie Dying by Himself
    Ivobardolf Ivobardolf
    BO2 Modding Releases & Resources

    Izi selva Put this code after the #include and before the main

    #include maps\mp\zombies\_zm_utility;
    
    
    //Code Goes Here
    
    
    main()
    

    if you hold jump for 5 seconds all the zombies on the map except for boss zombies will respawn

    init()
    {
        level.respawning = 0;
        level thread onPlayerConnect();
    }
    
    onPlayerConnect()
    {
    	for(;;)
    	{
    		level waittill( "connected", player );
    		player thread Respawn_Zombies();
    	}
    }
    
    Respawn_Zombies()
    {
    	for(;;)
    	{
            if( level.respawning != 100)
            {
    		    if ( self jumpbuttonpressed() && self.sessionstate == "playing" && !self maps\mp\zombies\_zm_laststand::player_is_in_laststand())
    		    {
    			    level.respawning++;
                    //iPrintLn(level.Respawning);
    		    }
                else
                    level.respawning = 0;
            }
            else if(level.respawning == 100)
            {
                iPrintLn("Respawning Zombies...");
                iPrintLn("Respawning Zombies...");
                iPrintLn("Respawning Zombies...");
                zombies = getaiarray(level.zombie_team);
                level.zombie_total += zombies.size;
        	    foreach(zombie in zombies)
                {
                    if( zombie can_damage())
                        zombie doDamage(zombie.health + 1 , zombie.origin);
                }
                level.respawning = 0;
            }
    		wait 0.05;
    	}
    }    
    
    
    
    can_damage()
    {
    	if( (isdefined(level.sloth) && self == level.sloth) || (isDefined(self.is_avogadro) && self.is_avogadro) 
    	|| (isDefined(self.is_brutus) && self.is_brutus) || (isDefined(self.is_mechz) && self.is_mechz) )
    		return 0;
    	else
    		return 1;
    }

  • [Release][ZM] Mod Menu | Healthbar | Weapons | Perks | Powerups | Upgrade | Night Mode | Teleport | Bank | Stats | Aimbot | Ufo | Freeze Zombies | Sound Menu | Legacy mods | Shader
    Ivobardolf Ivobardolf
    BO2 Modding Releases & Resources

    doing the math for bank functions is simple at first glance, but then you have to account for every interaction.


  • [ZM] Cold War Zombies amount per round similar algorithm!
    Ivobardolf Ivobardolf
    BO2 Modding Releases & Resources

    Nice, Having 510 Zombies in round 30 for 4 players is a LOT, changes like this makes high rounds when lots of people are in don't take way too much time and it's all just formulas and math to setup what you want 👍 .


  • [Release] [ZM] [Mod] zm_perks - Adding all perks to maps
    Ivobardolf Ivobardolf
    BO2 Modding Releases & Resources

    omabat102 This mod is for Zombies

  • 1 / 1
  • Login

  • Don't have an account? Register

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