wip
This commit is contained in:
parent
40d8ce4f71
commit
f05e1dcca4
@ -59,7 +59,7 @@ function DrawMenu()
|
|||||||
FocusMouseItem = n;
|
FocusMouseItem = n;
|
||||||
else MouseYHit -= ItemHeight;
|
else MouseYHit -= ItemHeight;
|
||||||
}
|
}
|
||||||
OnDrawItem(Canvas, n,Y, ItemHeight, CompPos[2], (FocusMouseItem == n));
|
OnDrawItem(Canvas, n,Y, ItemHeight, GetWidth(), (FocusMouseItem == n));
|
||||||
Y+=ItemHeight;
|
Y+=ItemHeight;
|
||||||
++n;
|
++n;
|
||||||
}
|
}
|
||||||
@ -73,6 +73,11 @@ function DrawMenu()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function float GetWidth()
|
||||||
|
{
|
||||||
|
return CompPos[2];
|
||||||
|
}
|
||||||
|
|
||||||
function float GetItemHeight()
|
function float GetItemHeight()
|
||||||
{
|
{
|
||||||
return CompPos[3] / ListItemsPerPage;
|
return CompPos[3] / ListItemsPerPage;
|
||||||
|
@ -14,6 +14,7 @@ const MatchGroupSteamID64 = "10358279";
|
|||||||
|
|
||||||
var private config int Version;
|
var private config int Version;
|
||||||
var private config E_LogLevel LogLevel;
|
var private config E_LogLevel LogLevel;
|
||||||
|
var private config String MessageOfTheDay;
|
||||||
|
|
||||||
var private KFGameInfo KFGI;
|
var private KFGameInfo KFGI;
|
||||||
var private KFGameInfo_Survival KFGIS;
|
var private KFGameInfo_Survival KFGIS;
|
||||||
@ -69,6 +70,7 @@ private function PreInit()
|
|||||||
if (Version == `NO_CONFIG)
|
if (Version == `NO_CONFIG)
|
||||||
{
|
{
|
||||||
LogLevel = LL_Info;
|
LogLevel = LL_Info;
|
||||||
|
MessageOfTheDay = "";
|
||||||
SaveConfig();
|
SaveConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -314,10 +316,11 @@ public function YAS_RepInfo CreateRepInfo(Controller C)
|
|||||||
RepInfos.AddItem(OwnerRepInfo);
|
RepInfos.AddItem(OwnerRepInfo);
|
||||||
|
|
||||||
OwnerRepInfo.RankRepInfo = RankRepInfo;
|
OwnerRepInfo.RankRepInfo = RankRepInfo;
|
||||||
OwnerRepInfo.YAS = Self;
|
OwnerRepInfo.YAS = Self;
|
||||||
OwnerRepInfo.LogLevel = LogLevel;
|
OwnerRepInfo.LogLevel = LogLevel;
|
||||||
OwnerRepInfo.RankPlayer = CfgRanks.default.Player;
|
OwnerRepInfo.RankPlayer = CfgRanks.default.Player;
|
||||||
OwnerRepInfo.RankAdmin = CfgRanks.default.Admin;
|
OwnerRepInfo.RankAdmin = CfgRanks.default.Admin;
|
||||||
|
OwnerRepInfo.MessageOfTheDay = MessageOfTheDay;
|
||||||
}
|
}
|
||||||
|
|
||||||
return OwnerRepInfo;
|
return OwnerRepInfo;
|
||||||
|
@ -4,7 +4,7 @@ var public YAS YAS;
|
|||||||
|
|
||||||
var public repnotify E_LogLevel LogLevel;
|
var public repnotify E_LogLevel LogLevel;
|
||||||
var public repnotify SystemRank RankPlayer, RankAdmin;
|
var public repnotify SystemRank RankPlayer, RankAdmin;
|
||||||
var public repnotify String DynamicServerName;
|
var public repnotify String DynamicServerName, MessageOfTheDay;
|
||||||
var public repnotify bool UsesStats, Custom, PasswordRequired;
|
var public repnotify bool UsesStats, Custom, PasswordRequired;
|
||||||
|
|
||||||
var public YAS_RankRepInfo RankRepInfo;
|
var public YAS_RankRepInfo RankRepInfo;
|
||||||
@ -22,7 +22,7 @@ var private int Retries;
|
|||||||
replication
|
replication
|
||||||
{
|
{
|
||||||
if (bNetInitial)
|
if (bNetInitial)
|
||||||
LogLevel, RankPlayer, RankAdmin;
|
LogLevel, RankPlayer, RankAdmin, MessageOfTheDay;
|
||||||
|
|
||||||
if (bNetDirty)
|
if (bNetDirty)
|
||||||
DynamicServerName, UsesStats, Custom, PasswordRequired;
|
DynamicServerName, UsesStats, Custom, PasswordRequired;
|
||||||
@ -59,6 +59,10 @@ public simulated event ReplicatedEvent(name VarName)
|
|||||||
if (SC != None) SC.DynamicServerName = DynamicServerName;
|
if (SC != None) SC.DynamicServerName = DynamicServerName;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'MessageOfTheDay':
|
||||||
|
if (SC != None) SC.MessageOfTheDay = MessageOfTheDay;
|
||||||
|
break;
|
||||||
|
|
||||||
case 'UsesStats':
|
case 'UsesStats':
|
||||||
if (SC != None) SC.UsesStats = UsesStats;
|
if (SC != None) SC.UsesStats = UsesStats;
|
||||||
break;
|
break;
|
||||||
@ -233,6 +237,7 @@ private simulated function InitScoreboard()
|
|||||||
SC.UsesStats = UsesStats;
|
SC.UsesStats = UsesStats;
|
||||||
SC.Custom = Custom;
|
SC.Custom = Custom;
|
||||||
SC.PasswordRequired = PasswordRequired;
|
SC.PasswordRequired = PasswordRequired;
|
||||||
|
SC.MessageOfTheDay = MessageOfTheDay;
|
||||||
}
|
}
|
||||||
|
|
||||||
defaultproperties
|
defaultproperties
|
||||||
|
@ -3,6 +3,8 @@ class YAS_ScoreBoard extends KFGUI_Page
|
|||||||
|
|
||||||
const HeaderWidthRatio = 0.30f;
|
const HeaderWidthRatio = 0.30f;
|
||||||
const PlayerListWidthRatio = 0.6f;
|
const PlayerListWidthRatio = 0.6f;
|
||||||
|
const PlayerEntryHeightMod = 1.05f;
|
||||||
|
const ListItems = 16;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
const IconRanked = Texture2D'YAS.IconRanked';
|
const IconRanked = Texture2D'YAS.IconRanked';
|
||||||
@ -41,7 +43,7 @@ var localized String Players, Spectators;
|
|||||||
var public Array<YAS_RankRepInfo> RepInfos;
|
var public Array<YAS_RankRepInfo> RepInfos;
|
||||||
|
|
||||||
var public YAS_Settings Settings;
|
var public YAS_Settings Settings;
|
||||||
var public String DynamicServerName;
|
var public String DynamicServerName, MessageOfTheDay;
|
||||||
var public bool UsesStats, Custom, PasswordRequired;
|
var public bool UsesStats, Custom, PasswordRequired;
|
||||||
|
|
||||||
var public SystemRank RankPlayer;
|
var public SystemRank RankPlayer;
|
||||||
@ -204,8 +206,9 @@ function DrawMenu()
|
|||||||
local PlayerReplicationInfo PRI;
|
local PlayerReplicationInfo PRI;
|
||||||
local float XPos, YPos, YL, XL, FontScalar, XPosCenter, BoxW, BoxX, BoxH, MinBoxW, DoshSize, ScrollBarWidth;
|
local float XPos, YPos, YL, XL, FontScalar, XPosCenter, BoxW, BoxX, BoxH, MinBoxW, DoshSize, ScrollBarWidth;
|
||||||
local int i, j, NumSpec, NumAlivePlayer, Width;
|
local int i, j, NumSpec, NumAlivePlayer, Width;
|
||||||
local float BorderSize;
|
local float BorderSize, PlayerListSizeY;
|
||||||
local Color ColorTMP;
|
local Color ColorTMP;
|
||||||
|
local Array<String> MessageOfTheDayLines;
|
||||||
|
|
||||||
PC = GetPlayer();
|
PC = GetPlayer();
|
||||||
if (KFGRI == None)
|
if (KFGRI == None)
|
||||||
@ -361,7 +364,8 @@ function DrawMenu()
|
|||||||
YPos += YL;
|
YPos += YL;
|
||||||
BoxH = YL + BorderSize;
|
BoxH = YL + BorderSize;
|
||||||
Canvas.SetDrawColorStruct(Settings.Style.ListHeaderBoxColor);
|
Canvas.SetDrawColorStruct(Settings.Style.ListHeaderBoxColor);
|
||||||
Owner.CurrentStyle.DrawRectBox( XPos - BorderSize * 2,
|
Owner.CurrentStyle.DrawRectBox(
|
||||||
|
XPos - BorderSize * 2,
|
||||||
YPos,
|
YPos,
|
||||||
Width + BorderSize * 4,
|
Width + BorderSize * 4,
|
||||||
BoxH,
|
BoxH,
|
||||||
@ -381,7 +385,7 @@ function DrawMenu()
|
|||||||
|
|
||||||
Canvas.TextSize(class'KFGFxHUD_ScoreboardWidget'.default.PingString$" ", XL, YL, FontScalar, FontScalar);
|
Canvas.TextSize(class'KFGFxHUD_ScoreboardWidget'.default.PingString$" ", XL, YL, FontScalar, FontScalar);
|
||||||
PingWBox = XL < MinBoxW ? MinBoxW : XL;
|
PingWBox = XL < MinBoxW ? MinBoxW : XL;
|
||||||
if (true || NumPlayer <= PlayersList.ListItemsPerPage) // TODO: implement scrollbar later
|
if (NumPlayer <= PlayersList.ListItemsPerPage)
|
||||||
ScrollBarWidth = 0;
|
ScrollBarWidth = 0;
|
||||||
else
|
else
|
||||||
ScrollBarWidth = BorderSize * 8;
|
ScrollBarWidth = BorderSize * 8;
|
||||||
@ -428,6 +432,53 @@ function DrawMenu()
|
|||||||
PlayersList.YSize = (1.f - PlayersList.YPosition) - 0.15;
|
PlayersList.YSize = (1.f - PlayersList.YPosition) - 0.15;
|
||||||
|
|
||||||
PlayersList.ChangeListSize(KFPRIArray.Length);
|
PlayersList.ChangeListSize(KFPRIArray.Length);
|
||||||
|
|
||||||
|
PlayerListSizeY = PlayersList.GetItemHeight() * PlayerEntryHeightMod * (NumPlayer <= PlayersList.ListItemsPerPage ? NumPlayer : PlayersList.ListItemsPerPage);
|
||||||
|
|
||||||
|
PlayerListSizeY -= PlayersList.GetItemHeight() * PlayerEntryHeightMod - PlayersList.GetItemHeight();
|
||||||
|
|
||||||
|
// Scroll bar (fake)
|
||||||
|
// This is an imitation of a scroll bar
|
||||||
|
// just to let people know that they can scroll the mouse wheel.
|
||||||
|
// This interface already has a scroll bar,
|
||||||
|
// but I haven't figured out how to use it yet.
|
||||||
|
// I hope this can be replaced later
|
||||||
|
if (NumPlayer > PlayersList.ListItemsPerPage)
|
||||||
|
{
|
||||||
|
Canvas.SetDrawColorStruct(Settings.Style.ListHeaderBoxColor);
|
||||||
|
Owner.CurrentStyle.DrawRectBox(
|
||||||
|
XPos + PlayersList.GetWidth() - ScrollBarWidth,
|
||||||
|
YPos + YL + BorderSize * 4,
|
||||||
|
ScrollBarWidth,
|
||||||
|
PlayerListSizeY,
|
||||||
|
Settings.Style.EdgeSize,
|
||||||
|
0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// MessageOfTheDay
|
||||||
|
MessageOfTheDayLines = SplitString(MessageOfTheDay, "\n");
|
||||||
|
|
||||||
|
YPos += BoxH + BorderSize * 6 + PlayerListSizeY;
|
||||||
|
Width = Canvas.ClipX * PlayerListWidthRatio;
|
||||||
|
BoxH = YL + BorderSize;
|
||||||
|
Canvas.SetDrawColorStruct(Settings.Style.ListHeaderBoxColor);
|
||||||
|
Owner.CurrentStyle.DrawRectBox(
|
||||||
|
XPos - BorderSize * 2,
|
||||||
|
YPos,
|
||||||
|
Width + BorderSize * 4,
|
||||||
|
BoxH * (MessageOfTheDayLines.Length > 0 ? MessageOfTheDayLines.Length : 1),
|
||||||
|
Settings.Style.EdgeSize,
|
||||||
|
152);
|
||||||
|
|
||||||
|
if (MessageOfTheDay != "")
|
||||||
|
{
|
||||||
|
Canvas.SetDrawColorStruct(Settings.Style.ListHeaderTextColor);
|
||||||
|
foreach MessageOfTheDayLines(S)
|
||||||
|
{
|
||||||
|
DrawTextShadowHVCenter(S, XPos - BorderSize * 2, YPos, Width + BorderSize * 4, BoxH, FontScalar);
|
||||||
|
YPos += BoxH;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function DrawHealthIcon(float X, float Y, float W, float H)
|
function DrawHealthIcon(float X, float Y, float W, float H)
|
||||||
@ -468,8 +519,9 @@ function DrawPlayerEntry(Canvas C, int Index, float YOffset, float Height, float
|
|||||||
local Color HealthBoxColor;
|
local Color HealthBoxColor;
|
||||||
|
|
||||||
BorderSize = Owner.HUDOwner.ScaledBorderSize;
|
BorderSize = Owner.HUDOwner.ScaledBorderSize;
|
||||||
|
|
||||||
YOffset *= 1.05;
|
YOffset *= PlayerEntryHeightMod;
|
||||||
|
|
||||||
KFPRI = KFPRIArray[Index];
|
KFPRI = KFPRIArray[Index];
|
||||||
|
|
||||||
Rank = PlayerRank(KFPRI);
|
Rank = PlayerRank(KFPRI);
|
||||||
@ -485,28 +537,9 @@ function DrawPlayerEntry(Canvas C, int Index, float YOffset, float Height, float
|
|||||||
|
|
||||||
Canvas.TextSize("ABC", XL, YL, FontScalar, FontScalar);
|
Canvas.TextSize("ABC", XL, YL, FontScalar, FontScalar);
|
||||||
|
|
||||||
if (KFPRIArray.Length > 1 && Index == 0)
|
ShapeHealth = Settings.Style.ShapeStateHealthBoxMidPlayer;
|
||||||
{
|
|
||||||
ShapeHealth = Settings.Style.ShapeStateHealthBoxTopPlayer;
|
|
||||||
}
|
|
||||||
else if (KFPRIArray.Length > 1 && Index == KFPRIArray.Length - 1)
|
|
||||||
{
|
|
||||||
ShapeHealth = Settings.Style.ShapeStateHealthBoxBottomPlayer;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ShapeHealth = Settings.Style.ShapeStateHealthBoxMidPlayer;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!KFPRI.bReadyToPlay && KFGRI.bMatchHasBegun)
|
if (!KFGRI.bMatchHasBegun)
|
||||||
{
|
|
||||||
HealthBoxColor = Settings.Style.StateBoxColorLobby;
|
|
||||||
}
|
|
||||||
else if (!KFGRI.bMatchHasBegun)
|
|
||||||
{
|
|
||||||
HealthBoxColor = Settings.Style.StateBoxColorLobby;
|
|
||||||
}
|
|
||||||
else if (bIsZED && KFTeamInfo_Zeds(GetPlayer().PlayerReplicationInfo.Team) == None)
|
|
||||||
{
|
{
|
||||||
HealthBoxColor = Settings.Style.StateBoxColorLobby;
|
HealthBoxColor = Settings.Style.StateBoxColorLobby;
|
||||||
}
|
}
|
||||||
@ -543,12 +576,7 @@ function DrawPlayerEntry(Canvas C, int Index, float YOffset, float Height, float
|
|||||||
else
|
else
|
||||||
C.SetDrawColorStruct(Settings.Style.PlayerBoxColor);
|
C.SetDrawColorStruct(Settings.Style.PlayerBoxColor);
|
||||||
|
|
||||||
if (KFPRIArray.Length > 1 && Index == 0)
|
Shape = Settings.Style.ShapePlayerBoxMidPlayer;
|
||||||
Shape = Settings.Style.ShapePlayerBoxTopPlayer;
|
|
||||||
else if (KFPRIArray.Length > 1 && Index == KFPRIArray.Length - 1)
|
|
||||||
Shape = Settings.Style.ShapePlayerBoxBottomPlayer;
|
|
||||||
else
|
|
||||||
Shape = Settings.Style.ShapePlayerBoxMidPlayer;
|
|
||||||
|
|
||||||
BoxWidth = DoshXPos - HealthWBox - BorderSize * 2;
|
BoxWidth = DoshXPos - HealthWBox - BorderSize * 2;
|
||||||
Owner.CurrentStyle.DrawRectBox(XPos, YOffset, BoxWidth, Height, Settings.Style.EdgeSize, Shape);
|
Owner.CurrentStyle.DrawRectBox(XPos, YOffset, BoxWidth, Height, Settings.Style.EdgeSize, Shape);
|
||||||
@ -556,16 +584,12 @@ function DrawPlayerEntry(Canvas C, int Index, float YOffset, float Height, float
|
|||||||
XPos += BoxWidth;
|
XPos += BoxWidth;
|
||||||
|
|
||||||
// Right stats box
|
// Right stats box
|
||||||
if (KFPRIArray.Length > 1 && Index == 0)
|
Shape = Settings.Style.ShapeStatsBoxMidPlayer;
|
||||||
Shape = Settings.Style.ShapeStatsBoxTopPlayer;
|
|
||||||
else if (KFPRIArray.Length > 1 && Index == KFPRIArray.Length - 1)
|
|
||||||
Shape = Settings.Style.ShapeStatsBoxBottomPlayer;
|
|
||||||
else
|
|
||||||
Shape = Settings.Style.ShapeStatsBoxMidPlayer;
|
|
||||||
|
|
||||||
BoxWidth = Width - XPos;
|
BoxWidth = Width - XPos;
|
||||||
C.SetDrawColorStruct(Settings.Style.StatsBoxColor);
|
C.SetDrawColorStruct(Settings.Style.StatsBoxColor);
|
||||||
Owner.CurrentStyle.DrawRectBox( XPos,
|
Owner.CurrentStyle.DrawRectBox(
|
||||||
|
XPos,
|
||||||
YOffset,
|
YOffset,
|
||||||
BoxWidth,
|
BoxWidth,
|
||||||
Height,
|
Height,
|
||||||
@ -865,7 +889,7 @@ defaultproperties
|
|||||||
OnDrawItem=DrawPlayerEntry
|
OnDrawItem=DrawPlayerEntry
|
||||||
ID="PlayerList"
|
ID="PlayerList"
|
||||||
bClickable=false
|
bClickable=false
|
||||||
ListItemsPerPage=16
|
ListItemsPerPage=ListItems
|
||||||
End Object
|
End Object
|
||||||
Components.Add(PlayerList)
|
Components.Add(PlayerList)
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ Difficulty="0"
|
|||||||
GameLength="0"
|
GameLength="0"
|
||||||
|
|
||||||
# Mutators
|
# Mutators
|
||||||
Mutators="YAS.YASMut"
|
Mutators="YAS.YASMut,FriendlyHUD.FriendlyHUDMutator"
|
||||||
|
|
||||||
# Additional parameters
|
# Additional parameters
|
||||||
Args=""
|
Args=""
|
||||||
|
Loading…
Reference in New Issue
Block a user