Skip to content
  • 0 Unread 0
  • Recent
  • Popular
  • Users
  • Donate
Collapse

Plutonium

DED2SIN

DED2SIN

@DED2SIN
Unfollow Follow
About
Posts
1
Topics
1
Shares
0
Groups
0
Followers
1
Following
1

Posts

Recent Best Controversial

  • I improved a zombies custom games pause mod!
    DED2SIN DED2SIN

    Just as title says I adapted a mod from hima_simple that pauses the game playing custom zombies. The problem with it was that the zombies still moved to your last Coords before stopping in place and zombies continued to spawn as well. useful for the start or end of the round but not in the middle. Mine pauses spawning, movement, allows 5 seconds of invuln when unpausing to reposition. This was very much vibe coded and hasn't been tested on bosses yet but I will report back!

    How to Use

    open chat by pressing 'T'

    Type 'p' and press Enter.

    How to install
    C:\Users\13103\AppData\Local\Plutonium\storage\t6\scripts\zm
    Or equivalent
    Most likely will have to create ZM file
    Add new notepad file in zm, copy code in, name it pause_mod.gsc. Save and play! LMK if anything is broken!

    GSC CODE

    #include maps\mp\gametypes_zm_hud_util;
    #include maps\mp\gametypes_zm_hud_message;

    init()
    {
    level.is_game_paused = false;
    level.is_unpausing = false;
    level thread watchchatpause();
    }

    watchchatpause()
    {
    level endon("end_game");

    for(;;)
    {
        level waittill("say", message, player);
        message = tolower(message);
    
        // Pause Command
        if (message == "p" && !level.is_game_paused && !level.is_unpausing)
        {
            level.is_game_paused = true;
            
            // Backup total/active AI limits and throttle spawn cap to 0
            if(isDefined(level.zombie_ai_limit) && level.zombie_ai_limit > 0)
            {
                level.old_ai_limit = level.zombie_ai_limit;
            }
            else
            {
                level.old_ai_limit = 24;
            }
            level.zombie_ai_limit = 0;
    
            if(!isDefined(level.gamestate))
            {
                level.gamestate = createServerFontString("hudsmall", 3.0);
                level.gamestate setPoint("CENTER", "TOP", 0, 190);
            }
            level.gamestate setText("Game Paused");
    
            // Secure players
            players = getplayers();
            for(i = 0; i < players.size; i++)
            {
                players[i].godmode = true;
                players[i].ignoreme = 1;
                players[i] freezeControls(true);
                players[i] iprintln("^1Game Paused");
            }
    
            // Freeze standard zombies AND special actors/bosses
            freeze_all_enemies();
        }
        // Unpause Command
        else if (message == "u" && level.is_game_paused && !level.is_unpausing)
        {
            level.is_unpausing = true;
    
            // Unfreeze players immediately so they can move during countdown
            players = getplayers();
            for(i = 0; i < players.size; i++)
            {
                players[i] freezeControls(false);
                players[i] iprintln("^2Resuming! Move into position...");
            }
    
            // Countdown loop
            for(i = 5; i > 0; i--)
            {
                if(isDefined(level.gamestate))
                {
                    level.gamestate setText("Resuming in: " + i);
                }
                
                players = getplayers();
                for(p = 0; p < players.size; p++)
                {
                    players[p] playlocalsound("zmb_admin_beep");
                }
                wait 1.0;
            }
    
            if(isDefined(level.gamestate))
            {
                level.gamestate destroy();
            }
    
            // Restore AI limits safely so the round manager continues spawning
            if(isDefined(level.old_ai_limit))
            {
                level.zombie_ai_limit = level.old_ai_limit;
            }
            else
            {
                level.zombie_ai_limit = 24;
            }
    
            // Restore player protection status
            players = getplayers();
            for(i = 0; i < players.size; i++)
            {
                players[i].godmode = false;
                players[i].ignoreme = 0;
                players[i] iprintln("^2Enemies Resumed!");
            }
    
            // Unfreeze standard zombies AND special actors/bosses
            unfreeze_all_enemies();
    
            level notify("resume_zombies");
            level.is_game_paused = false;
            level.is_unpausing = false;
        }
        wait 0.05;
    }
    

    }

    freeze_all_enemies()
    {
    enemies = get_all_enemies();

    for(i = 0; i < enemies.size; i++)
    {
        if(isDefined(enemies[i]) && isAlive(enemies[i]))
        {
            enemies[i].anchor_origin = enemies[i].origin;
            enemies[i].ignoreall = true;
            enemies[i] setGoalPos(enemies[i].origin);
            enemies[i] thread freeze_zombie_position();
        }
    }
    

    }

    unfreeze_all_enemies()
    {
    enemies = get_all_enemies();

    for(i = 0; i < enemies.size; i++)
    {
        if(isDefined(enemies[i]) && isAlive(enemies[i]))
        {
            enemies[i].ignoreall = false;
        }
    }
    

    }

    get_all_enemies()
    {
    enemies = getaiarray();

    actors = getentarray("actor", "classname");
    if (isDefined(actors) && actors.size > 0)
    {
        for(i = 0; i < actors.size; i++)
        {
            enemies[enemies.size] = actors[i];
        }
    }
    
    return enemies;
    

    }

    freeze_zombie_position()
    {
    self endon("death");
    level endon("resume_zombies");

    for(;;)
    {
        if(isDefined(self.anchor_origin))
        {
            self setorigin(self.anchor_origin);
            self setGoalPos(self.anchor_origin);
        }
        wait 0.1;
    }
    

    }

    Type 'u' to unpause.[pause_mod.gsc]

    BO2 Modding Releases & Resources
  • 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