How to spawn player 2 before end of round 1 (zombies)

Topic created ยท 11 Posts ยท 325 Views
  • I tried just connecting via IP over LAN, but second player had to spectate the first round.
    I then setup server hosting, but still when another player connects to my lobby they are forced to spectate the first round.
    This ruins the point distribution and makes for a less fun game.

    How can I spawn (or how can they spawn themselves) in on round 1?
    Either when playing over LAN or server hosted.
    I just want to find any way that works.
    Thanks for any help.

  • If you are playing on a map with an intro cutscene, you could try to skip it at the same time. Other than that, you will have to use GSC mods on a dedicated server to force the game to spawn in the 2nd player (or a similar workaround).

  • Where I have to set the gsc on this new update?

  • @luigistyle
    Skipping cutscene at the same time doesn't work.
    Using map_restart or fast_restart just leaves the map on a black screen.
    Same with dying out to restart.

    Is there documentation anywhere on how to setup a GSC on Plutonium?
    Or for a similar workaround?

  • @Lupercal GSC's can be loaded onto dedicated servers (which can be hosted on your computer).
    T6 Dedicated Server Guide
    Loading GSC on a Dedicated Server Guide

    To have all players spawn on round 1, you can use this simple GSC in your script.

    Add this into your script anywhere.

    spawn_if_round_one() //force spawn player
    {
    	wait 5; //waits for blackscreen to load
    	if ( self.sessionstate == "spectator" && level.round_number == 1 )
    	{
    		self [[ level.spawnplayer ]]();
    		if ( level.script != "zm_tomb" || level.script != "zm_prison" || !is_classic() )
    			thread maps\mp\zombies\_zm::refresh_player_navcard_hud();
    	}
    }
    

    Then add this

    player thread spawn_if_round_one();
    

    under your OnPlayerConnect function, like so.

    onPlayerConnect()
    {
    	level endon( "end_game" );
            self endon( "disconnect" );
    	for (;;)
    	{
    		level waittill( "connected", player );
    		player thread spawn_if_round_one();
    	}
    }
    

    Hope this helps

  • @Cahz theres is some problem with !is_classic();asfafafas.png

  • @szoroscsirke21 the is_classic() function is held in _zm_utility.gsc which means you're missing the include for it.

    Add this include to the top of your _clientids.gsc file.
    #include maps/mp/zombies/_zm_utility;

  • Thank You! @Cahz
    It fixed the error message, but the scipts still not works. I think im stupid. My friend only revive after round 1 finished. I cant make it work. ๐Ÿ˜•

  • @szoroscsirke21 You need to make sure you're doing the steps correctly. Yes, you copied the script, but you must not have the player thread spawn_if_round_one(); in your _clientids.gsc file.

  • on the host console just use command:
    fast_restart
    this set map to all initial positions and if all players are present the command starts over the map with all present and alive round 1

    it is worth while setting up a dedicated server on one of the lan machines you and friend are playing on, which ever is most powerful, xpartygo on my pc runs a lil laggy but dedicated host and client simultaneously actually has a smother outcome. AND then you can use fast_restart on dedicated

  • @MrE-Ronski85
    I am already using a dedicated server on my machine....
    And the fast_restart or map_restart commands used to crash server.
    Now those commands don't even work.

    And when the game ends, the lobby crashes with error:
    "CG_Spawn: no free fake entities"

    Same error will then occur on every lobby join until I restart the server.

Log in to reply