Force Game Start Mutator - Принудительный старт игры Force Game Start Mutator - Принудительный старт игры Мутатор автоматически стартует игру (не дожидаясь пока все нажмут "готов") через определённый интервал времени. Интервал настраивается в файле ForceGameStartMut.ini...
#1
Отправлено:
Force Game Start Mutator - Принудительный старт игры
Мутатор автоматически стартует игру (не дожидаясь пока все нажмут “готов”) через определённый интервал времени.
Интервал настраивается в файле ForceGameStartMut.ini
(параметр waitingInterval в секундах)
Добавлять в виде ForceGameStartMut.ForceGameStartMut
class ForceGameStartMut extends Mutator config(ForceGameStartMut);
var config int waitingInterval;
var int startWaiting;
var bool firstPlayerArrived;
function PostBeginPlay()
{
startWaiting = Level.TimeSeconds;
firstPlayerArrived = false;
SetTimer(5.0, true);
}
function Timer()
{
local int playersN;
// Проверяем состояние игры. Если мы не находимся в ожидании старта, то выходим.
if (!Level.Game.bWaitingToStartMatch)
return;
// Проверим, не появились ли игроки. При появлении одного игрока таймер сбрасывается.
playersN = PlayersNumber();
if (playersN == 0)
return;
if (playersN > 0 && !firstPlayerArrived)
{
firstPlayerArrived = true;
startWaiting = Level.TimeSeconds;
return;
}
// Ждём, пока не пройдёт waitingInterval секунд после появления первого игрока.
if (Level.TimeSeconds - startWaiting < waitingInterval)
return;
// Начинаем игру
Level.Game.StartMatch();
}
function int PlayersNumber()
{
local int N;
local Controller C;
N = 0;
for (C = Level.ControllerList; C != None; C = C.nextController)
{
if (C.IsA('PlayerController') && C.PlayerReplicationInfo.PlayerID > 0 && C.PlayerReplicationInfo.bWaitingPlayer)
N++;
}
return N;
}
defaultproperties
{
waitingInterval=60
bAddToServerPackages=True
GroupName="ForceGameStartMut"
FriendlyName="ForceGameStartMut"
Description="Forces game start if some players are not ready for a long period of time"
}
Автор: Flame
Скомпилированная версия: https://yadi.sk/d/giSP0sgucjCuF