- Регистрация
- 12 Янв 2024
- Сообщения
- 76
- Реакции
- 10
- Баллы
- 8
Цветное название сервера, карты + доп. информация (время, количество монстров, номер волны)
Переменные (задаются в ServerColorMut.ini)
Ссылка
Код для вставки
Код с коментариями
Сделано корявенько, но пока сойдёт)
Кому надо поправить нюансы - правьте ServerColorInfo - вроде там всё предельно просто
Информация о сервере обновляется где-то раз в 10 секунд.
Автор Flame.
Переменные (задаются в ServerColorMut.ini)
ServerName - цвет названия сервера + название
MapColor - цвет карты
WaveColor - цвет номера волны (если цвет не задан - номер волны не выводится)
WavePrefix - префикс перед номером волны (например, Wave=)
TimeColor - цвет времени прошедшего с начала волны(если цвет не задан - время не выводится)
TimePrefix - префикс перед временем (например, Time=)
MonsterColor - цвет количество оставшихся монстров (если цвет не задан - информация не выводится)
MonsterPrefix - префикс перед количеством монстров (например, M=)
NotStartedColor - цвет информации о том, что игра не началась(если цвет не задан - информация не выводится)
NotStartedPrefix - Надпись отображаемая до начала карты (например, "Waiting Players")
Пример: До начала карты, на 1 волне, после 1 волны во время трейдера, на 4 волне
MapColor - цвет карты
WaveColor - цвет номера волны (если цвет не задан - номер волны не выводится)
WavePrefix - префикс перед номером волны (например, Wave=)
TimeColor - цвет времени прошедшего с начала волны(если цвет не задан - время не выводится)
TimePrefix - префикс перед временем (например, Time=)
MonsterColor - цвет количество оставшихся монстров (если цвет не задан - информация не выводится)
MonsterPrefix - префикс перед количеством монстров (например, M=)
NotStartedColor - цвет информации о том, что игра не началась(если цвет не задан - информация не выводится)
NotStartedPrefix - Надпись отображаемая до начала карты (например, "Waiting Players")
Пример: До начала карты, на 1 волне, после 1 волны во время трейдера, на 4 волне
Ссылка
Код для вставки
Код:
ServerColorMut.ServerColorMut
Код с коментариями
Код:
class ServerColorMut extends Mutator config(ServerColorMut);
var config string ServerName;
var config string MapColor;
var config string WaveColor;
var config string WavePrefix;
var config string TimeColor;
var config string TimePrefix;
var config string MonsterColor;
var config string MonsterPrefix;
var config string NotStartedColor;
var config string NotStartedPrefix;
var ServerColorActor SCA;
function PostBeginPlay()
{
SCA = Spawn(class'ServerColorActor');
}
Код:
class ServerColorActor extends Info;
var GameRules GRules;
function PostBeginPlay()
{
GRules = Spawn(class'ServerColorInfo');
if(Level.Game.GameRulesModifiers == none)
Level.Game.GameRulesModifiers = GRules;
else
Level.Game.GameRulesModifiers.AddGameRules(GRules);
super(Actor).PostBeginPlay();
}
Код:
class ServerColorInfo extends GameRules;
function GetServerDetails(out GameInfo.ServerResponseLine ServerState)
{
local string sTemp;
local int waveNum;
local int monsterNum;
local int elapsedTime;
local KFGameReplicationInfo KFGRI;
KFGRI=KFGameReplicationInfo(Level.GRI);
waveNum=KFGRI.WaveNumber + 1;
elapsedTime=KFGRI.ElapsedTime;
monsterNum=KFGRI.MaxMonsters;
//Задаём название сервера. Если переменная в ини не нулевая, то рисуем в цвете то что прописано в ини
if(class'ServerColorMut'.default.ServerName != "")
ServerState.ServerName = class'ServerColorMut'.default.ServerName;
else //Иначе рисуем белым цветом значение переменной ServerName заданной в KillingFloor.ini
ServerState.ServerName = Level.Game.GameReplicationInfo.ServerName;
//Если задан цвет для карты - отрисовываем название карты в цвете
if(class'ServerColorMut'.default.MapColor != "")
{
sTemp = ServerState.MapName;
if(Left(sTemp, 1) != "")
{
sTemp = class'ServerColorMut'.default.MapColor $ sTemp;
ServerState.MapName = sTemp;
}
}
//Если задан цвет для волны - отрисовываем номер волны, если не задан - ничего не пишем
if(class'ServerColorMut'.default.WaveColor != "")
{
//цвет+префикс+значение
sTemp = class'ServerColorMut'.default.WaveColor$class'ServerColorMut'.default.WavePrefix$waveNum;
if (Level.Game.GetStateName() == 'MatchInProgress')
ServerState.ServerName @=sTemp;
}
//Если задан цвет для времени - отрисовываем время прошедшее с начала карты, если не задан - ничего не пишем
if(class'ServerColorMut'.default.TimeColor != "")
{
//цвет+префикс+значение
sTemp = " " $ class'ServerColorMut'.default.TimeColor$class'ServerColorMut'.default.TimePrefix$GetTimeString(elapsedTime);
if (Level.Game.GetStateName() == 'MatchInProgress')
ServerState.ServerName @=sTemp;
}
//Если задан цвет для количества оставшихся монстров - отрисовываем, иначе - ничего не пишем
if(class'ServerColorMut'.default.MonsterColor != "")
{
//цвет+префикс+значение
sTemp = " "$class'ServerColorMut'.default.MonsterColor$class'ServerColorMut'.default.MonsterPrefix$monsterNum;
if (Level.Game.GetStateName() == 'MatchInProgress')
ServerState.ServerName @=sTemp;
}
//Задаём надпись и её цвет для ситуации, когда игра ещё не началась
if (class'ServerColorMut'.default.NotStartedColor != "")
{
sTemp = " "$class'ServerColorMut'.default.NotStartedColor$class'ServerColorMut'.default.NotStartedPrefix;
if(Level.Game.GetStateName() != 'MatchInProgress')
ServerState.ServerName @=sTemp;
}
}
function string GetTimeString(int seconds)
{
local int cMinutes,cSeconds;
local string result;
cMinutes=seconds / 60;
cSeconds=seconds % 60;
if(cMinutes<10)
result$="0";
result$=string(cMinutes);
result$=":";
if(cSeconds<10)
result$="0";
result$=string(cSeconds);
return result;
}
Сделано корявенько, но пока сойдёт)
Кому надо поправить нюансы - правьте ServerColorInfo - вроде там всё предельно просто
Информация о сервере обновляется где-то раз в 10 секунд.
Автор Flame.
Последнее редактирование: