ClientPause [XC_Engine servers]

ClientPause [XC_Engine servers]

Postby Higor » Sat Mar 10, 2018 8:57 am

ClientPause.7z
10/03/2018 build
(6.8 KiB) Downloaded 16 times


Small client pause util for XC_Engine servers.
Made by Higor (UT99.org)
caco_fff@hotmail.com

- Pauses server upon player request.
- Pause is immediate if player is alone.
- Other players can cancel the pause/unpause request.
- Auto-pauses tournament games that lose players.
- Pause/unpause notification is less laggy
- Unpauses server when empty

=============
Installation:

Add following entry (in UnrealTournament.ini) to [XC_Engine.XC_GameEngine]

ServerActors=ClientPause.ClientPause

=========
Settings:

Config entry (in UnrealTournament.ini, autogenerated after running server):

[ClientPause.ClientPause]
PauseTimer=3
PlayerCommandRetry=11.000000
InitialBroadcastTime=4


This utility applies script patching the moment the game starts and players spawn, during that time
all players' Pause button functionality is replaced by a delayed pause system that allows anyone to pause
the server as well as cancel someone else's pause attempt.

There's an anti-spam system that prevents the same player from using the same pause command
repeatedly, the commands are: Pause, Pause Cancel, Unpause, Unpause Cancel.
Also, if a player joins a paused game, the server will unpause for a single frame to force visual update.

In tournament games the module can function as an auto-pauser, it will automatically pause the game
the moment the server's player count drops below the amount of players the game initially started with.

When the game finishes and the end cameras are set, the pause mechanics are reversed to default.

==
Code contains:
- Script Patcher usage.
- Dynamic Array handling.
- Game start/end detection.
- 1:1 second timer.
- PawnActors/DynamicActors iterators.

==
Note:
The pause uses state-based control which does not reflect real time changes of the level's pause status.
If something else pauses/unpauses the server (NexGen or other server controllers) ClientPause won't
detect it and operate based on it's internal state instead (re-pausing a manually paused game for example)
Higor
Godlike
 
Posts: 1625
Joined: Sun Mar 04, 2012 6:47 pm

Return to Discussions

Who is online

Users browsing this forum: No registered users and 1 guest