115 lines
3.8 KiB
Ucode
115 lines
3.8 KiB
Ucode
//=============================================================================
|
|
// KFGFxHUD_ScoreboardVersusWidget
|
|
//=============================================================================
|
|
// Displays a list of all active players on the server (not spectators) and
|
|
// prints out vital information such as their Kills, Dosh, Health, Perks, etc.
|
|
//=============================================================================
|
|
// Killing Floor 2
|
|
// Copyright (C) 2015 Tripwire Interactive LLC
|
|
// - Zane Gholson 5/2/2016
|
|
//=============================================================================
|
|
|
|
|
|
class KFGFxHUD_ScoreboardVersusWidget extends KFGFxHUD_ScoreboardWidget;
|
|
|
|
var localized string ScoreString;
|
|
|
|
var int AssistValue;
|
|
var int KillValue;
|
|
var int DamageValue;
|
|
|
|
function LocalizeText()
|
|
{
|
|
local GFxObject LocalizedObject;
|
|
|
|
LocalizedObject = CreateObject( "Object" );
|
|
|
|
LocalizedObject.SetString("playerText", PlayerString);
|
|
LocalizedObject.SetString("scoreText", ScoreString);
|
|
LocalizedObject.SetString("killsText", KillsString);
|
|
LocalizedObject.SetString("assistsText", AssistsString);
|
|
LocalizedObject.SetString("pingText", PingString);
|
|
|
|
SetObject("localizeText", LocalizedObject);
|
|
}
|
|
|
|
function TickHud(float DeltaTime)
|
|
{
|
|
if(bUpdateScoreboard &&
|
|
GetPC() != none &&
|
|
GetPC().WorldInfo.TimeSeconds - LastScoreboardUpdateTime > ScoreboardUpdateInterval)
|
|
{
|
|
LastScoreboardUpdateTime = GetPC().WorldInfo.TimeSeconds; // throttle the updates so we're not spamming Actionscript with data.
|
|
|
|
UpdatePlayerList();
|
|
//UpdateMatchInfo();
|
|
//SendServerInfoToGFX();
|
|
}
|
|
}
|
|
|
|
function UpdatePlayerData()
|
|
{
|
|
local GFxObject DataProvider,TempData;
|
|
local int i;
|
|
local KFPlayerReplicationinfo KFPRI;
|
|
local KFPlayerController KFPC;
|
|
local int PlayerIndex;
|
|
|
|
KFPC = KFPlayerController(GetPC());
|
|
|
|
PlayerIndex=0;
|
|
DataProvider = CreateArray();
|
|
for(i = 0 ; i < CurrentPlayerList.length; i ++)
|
|
{
|
|
KFPRI = CurrentPlayerList[i];
|
|
if(KFPRI.GetTeamNum() == 255)
|
|
{
|
|
TempData = CreateObject("Object");
|
|
|
|
TempData.SetString("playername", KFPRI.PlayerName);
|
|
|
|
TempData.SetInt("score", KFPRI.DamageDealtOnTeam * DamageValue + KFPRI.Kills * KillValue + KFPRI.Assists * AssistValue);
|
|
TempData.SetInt("assists", KFPRI.Assists);
|
|
TempData.SetInt("kills", KFPRI.Kills);
|
|
TempData.SetInt("ping", KFPRI.Ping * `PING_SCALE);
|
|
//TempData.SetInt("perkLevel", KFPRI.GetActivePerkLevel());
|
|
/*if( KFPRI.CurrentPerkClass != none )
|
|
{
|
|
TempData.SetString("perkName", KFPRI.CurrentPerkClass.default.PerkName);
|
|
TempData.SetString("iconPath", "img://"$KFPRI.CurrentPerkClass.static.GetPerkIconPath());
|
|
}*/
|
|
|
|
if( class'WorldInfo'.static.IsConsoleBuild( CONSOLE_Orbis ) )
|
|
{
|
|
TempData.SetString("avatar", "img://"$KFPC.GetPS4Avatar(KFPRI.PlayerName));
|
|
}
|
|
else
|
|
{
|
|
TempData.SetString("avatar","img://"$KFPC.GetSteamAvatar(KFPRI.UniqueId));
|
|
}
|
|
|
|
if(KFPRI.PlayerHealth < 0)
|
|
{
|
|
TempData.SetFloat("health", 0);
|
|
TempData.SetFloat("healthPercent", 0);
|
|
}
|
|
else
|
|
{
|
|
TempData.SetFloat("health", KFPRI.PlayerHealth);
|
|
TempData.SetFloat("healthPercent", ByteToFloat(KFPRI.PlayerHealthPercent) * 100);
|
|
}
|
|
|
|
DataProvider.SetElementObject(PlayerIndex,TempData);
|
|
PlayerIndex++;
|
|
}
|
|
}
|
|
|
|
SetObject("playerData", DataProvider);
|
|
}
|
|
|
|
DefaultProperties
|
|
{
|
|
KillValue=100
|
|
AssistValue=40
|
|
DamageValue=1.0f
|
|
}
|