rott/kf_sources/ScrnBalanceSrv/Classes/ScrnTab_UserSettings.uc
2026-07-14 20:27:09 +07:00

1657 lines
56 KiB
Ucode

class ScrnTab_UserSettings extends UT2K4TabPanel;
var localized string strDisabledByServer, strForcedByServer;
var localized string strLock, strUnlock;
// version
var automated GUIImage img_ScrnLogo;
var automated GUIImage img_TourneyLogo;
var automated GUILabel lbl_Version;
var automated GUILabel lbl_CR;
var automated GUILabel lbl_TourneyMember;
var automated GUIButton b_ScrnGroup;
var automated GUIButton b_GetPrize;
// weapons
var automated GUISectionBackground bg_Weapons;
var automated moCheckBox ch_ManualReload;
var automated moCheckBox ch_CookNade;
var automated moCheckBox ch_PrioritizePerkedWeapons;
var automated moCheckBox ch_PrioritizeBoomstick;
var automated GUIButton b_GunSkin;
var automated GUIButton b_WeaponLock;
var automated GUIButton b_PerkProgress;
var automated GUIButton b_Accuracy;
var localized string strLockWeapons, strUnlockWeapons;
var localized string strBoundToCook, strBoundToThrow, strCantFindNade;
// HUD & Info
var automated GUISectionBackground bg_HUD;
var automated moCheckBox ch_ShowDamages;
var automated moCheckBox ch_ShowSpeed;
var automated moCheckBox ch_ShowAchProgress;
var automated moComboBox cbx_BarStyle;
var automated moSlider sl_BarScale;
var automated moComboBox cbx_HudStyle;
var automated moSlider sl_HudScale;
var automated moSlider sl_HudAmmoScale;
var automated moSlider sl_HudY;
var automated moSlider sl_3DScopeSensScale; //I added this
var array<localized string> BarStyleItems;
var array<localized string> HudStyleItems;
var automated GUIButton b_Status;
var automated GUIButton b_HL;
var automated GUIButton b_Zeds;
// PLAYERS
var automated GUISectionBackground bg_Players;
var automated moComboBox cbx_Player;
var automated GUILabel lbl_PlayerID;
var automated GUIButton b_Profile;
var automated GUIButton b_PlayerList;
var automated moEditBox txt_Reason;
var automated GUIButton b_Blame;
var automated GUIButton b_Spec;
var automated GUIButton b_Kick;
var automated GUIButton b_TSC_C;
var automated GUIButton b_TSC_A;
var automated GUIButton b_Team_Lock;
var automated GUIButton b_Team_Unlock;
var automated GUIButton b_Team_Invite;
var automated GUIButton b_MVOTE_Yes;
var automated GUIButton b_MVOTE_No;
var automated GUIButton b_MVOTE_Boring;
var automated GUIButton b_MVOTE_EndTrade;
var transient int PlayerLocalID;
var transient string PlayerSteamID64;
var localized string strBadReason;
// SERVER INFO
var automated GUILabel lbl_ServerInfo;
var localized string strServerInfoSeparator;
var localized string strPerkRange, strPerkXPLevel, strPerkBonusLevel;
var localized string strSpawnBalance, strWeaponFix, strAltBurnMech, strBeta, strHardcore, strNoPerkChanges;
var color StatusColor[2];
var transient bool bFillPlayerList;
// event ResolutionChanged( int ResX, int ResY )
function InitComponent(GUIController MyController, GUIComponent MyOwner)
{
local int i;
Super.InitComponent(MyController, MyOwner);
/*
bg_Weapons.ManageComponent(ch_ManualReload);
bg_Weapons.ManageComponent(ch_CookNade);
bg_Weapons.ManageComponent(ch_PrioritizePerkedWeapons);
bg_Weapons.ManageComponent(ch_PrioritizeBoomstick);
bg_Weapons.ManageComponent(b_GunSkin);
bg_Weapons.ManageComponent(b_WeaponLock);
bg_Weapons.ManageComponent(b_PerkProgress);
bg_Weapons.ManageComponent(b_Accuracy);
*/
cbx_BarStyle.ResetComponent();
for ( i=0; i < BarStyleItems.length; ++i )
cbx_BarStyle.AddItem(BarStyleItems[i]);
cbx_HudStyle.ResetComponent();
for ( i=0; i < HudStyleItems.length; ++i )
cbx_HudStyle.AddItem(HudStyleItems[i]);
}
function ShowPanel(bool bShow)
{
local ScrnPlayerController PC;
local ScrnHUD H;
local ScrnCustomPRI ScrnPRI;
local bool b;
log("ShowPanel("$bShow$")", class.name);
Super.ShowPanel(bShow);
if ( !bShow ) {
SetTimer(0, false);
return;
}
log("ShowPanel: Set button visibility", class.name);
lbl_Version.Caption = class'ScrnBalance'.default.FriendlyName @ class'ScrnBalance'.static.GetVersionStr();
lbl_CR.Caption = "Copyright (c) 2012-2018 PU Developing IK, Latvia. All Rights Reserved.";
ServerStatus();
PC = ScrnPlayerController(PlayerOwner());
if ( PC == none )
return;
H = ScrnHUD(PC.myHUD);
ScrnPRI = class'ScrnCustomPRI'.static.FindMe(PC.PlayerReplicationInfo);
// tourney member
b = ScrnPRI != none && ScrnPRI.IsTourneyMember();
img_TourneyLogo.SetVisibility(b);
lbl_TourneyMember.SetVisibility(b);
b_GetPrize.SetVisibility(b && !class'ScrnAchievements'.static.IsAchievementUnlocked(
Class'ScrnClientPerkRepLink'.Static.FindMe(PC), 'TSCT'));
// v9.11: team locks are available in regular game too
b_Team_Lock.SetVisibility(true);
b_Team_Unlock.SetVisibility(false);
b_Team_Invite.SetVisibility(true);
// TSC
b = TSCGameReplicationInfo(PC.GameReplicationInfo) != none;
b_TSC_C.SetVisibility(b);
b_TSC_A.SetVisibility(b);
sl_BarScale.SetVisibility(H.PlayerInfoVersionNumber >= 80);
sl_HudScale.SetVisibility(H.bCoolHud);
sl_HudAmmoScale.SetVisibility(H.bCoolHud);
sl_HudY.SetVisibility(H.bCoolHud);
sl_BarScale.SetValue(H.PlayerInfoScale);
sl_HudScale.SetValue(H.CoolHudScale);
sl_HudAmmoScale.SetValue(H.CoolHudAmmoScale);
sl_HudY.SetValue(H.CoolHudAmmoOffsetY);
RefreshInfo();
bFillPlayerList = true; // fill player list in 1s
SetTimer(1, true);
log("ShowPanel: EOF", class.name);
}
function Timer()
{
RefreshInfo();
if ( bFillPlayerList && Controller.bCurMenuInitialized )
{
FillPlayerList();
}
}
function RefreshInfo()
{
local ScrnPlayerController PC;
log("RefreshInfo", class.name);
PC = ScrnPlayerController(PlayerOwner());
if ( PC == none )
return;
if ( PC.Mut.bAllowWeaponLock ) {
b_WeaponLock.EnableMe();
b_WeaponLock.Hint = b_WeaponLock.default.Hint ;
if ( PC.bWeaponsLocked )
b_WeaponLock.Caption = strUnlockWeapons;
else
b_WeaponLock.Caption = strLockWeapons;
}
else {
b_WeaponLock.DisableMe();
b_WeaponLock.Hint = PC.strLockDisabled;
}
if ( KFGameReplicationInfo(PC.GameReplicationInfo) != none ) {
b_MVOTE_Boring.SetVisibility(KFGameReplicationInfo(PC.GameReplicationInfo).bWaveInProgress);
b_MVOTE_EndTrade.SetVisibility(!b_MVOTE_Boring.bVisible);
}
else {
b_MVOTE_Boring.Hide();
b_MVOTE_EndTrade.Hide();
}
b_Team_Unlock.SetVisibility(class'ScrnBalance'.default.Mut.bTeamsLocked);
b_Team_Lock.SetVisibility(!b_Team_Unlock.bVisible);
}
function ServerStatus()
{
local ScrnBalance m;
local string s;
local color cSpawnBalance, cNoPerkChanges;
local KFPlayerReplicationInfo KFPRI;
m = class'ScrnBalance'.default.Mut;
if ( m == none )
return; // wtf?
s = m.ColorStringC(strServerInfoSeparator, lbl_ServerInfo.TextColor);
if ( m.bNoStartCashToss && m.bMedicRewardFromTeam && m.bSpawn0 )
cSpawnBalance = StatusColor[1];
else if ( m.bMedicRewardFromTeam ) {
cSpawnBalance.R = 255;
cSpawnBalance.G = 106;
}
else {
cSpawnBalance = StatusColor[0];
}
if ( !m.bNoPerkChanges )
cNoPerkChanges = StatusColor[0];
else if ( !m.bPerkChangeBoss || !m.bPerkChangeDead )
cNoPerkChanges = StatusColor[1];
else {
cNoPerkChanges.R = 255;
cNoPerkChanges.G = 106;
}
lbl_ServerInfo.Caption =
strPerkRange$"["
$ class'ScrnHUD'.static.ColoredPerkLevel(m.SrvMinLevel)
$ m.ColorStringC("..", lbl_ServerInfo.TextColor)
$ class'ScrnHUD'.static.ColoredPerkLevel(m.SrvMaxLevel)
$ m.ColorStringC("]", lbl_ServerInfo.TextColor);
KFPRI = KFPlayerReplicationInfo(PlayerOwner().PlayerReplicationInfo);
if ( KFPRI != none && KFPRI.ClientVeteranSkill != none ) {
lbl_ServerInfo.Caption $= s $ strPerkXPLevel
$ class'ScrnHUD'.static.ColoredPerkLevel(KFPRI.ClientVeteranSkillLevel);
if ( class<ScrnVeterancyTypes>(KFPRI.ClientVeteranSkill) != none)
lbl_ServerInfo.Caption $= s $ strPerkBonusLevel
$ class'ScrnHUD'.static.ColoredPerkLevel(
class'ScrnVeterancyTypes'.static.GetBonusLevel(KFPRI.ClientVeteranSkillLevel));
}
lbl_ServerInfo.Caption $= "|" $ m.ColorStringC(strSpawnBalance, cSpawnBalance)
$ s $ m.ColorStringC(strWeaponFix, StatusColor[1])
$ s $ m.ColorStringC(strAltBurnMech, StatusColor[byte(m.bAltBurnMech)])
$ s $ m.ColorStringC(strBeta, StatusColor[byte(m.bBeta)])
$ s $ m.ColorStringC(strHardcore, StatusColor[byte(m.bHardcore)])
$ s $ m.ColorStringC(strNoPerkChanges, cNoPerkChanges);
}
function string GetPlayerName(PlayerReplicationInfo PRI)
{
if (PRI == none) {
return "";
}
return class'ScrnBalance'.default.Mut.StripColorTags(PRI.PlayerName);
}
function PlayerReplicationInfo FindPRI(string PlayerName)
{
local int i;
local GameReplicationInfo GRI;
PlayerName = class'ScrnBalance'.default.Mut.StripColorTags(PlayerName);
if ( PlayerName == "" )
return none;
GRI = PlayerOwner().GameReplicationInfo;
if (GRI == none)
return none;
for ( i = 0; i < GRI.PRIArray.Length; ++i ) {
if ( GetPlayerName(GRI.PRIArray[i]) == PlayerName ) {
return GRI.PRIArray[i];
}
}
return none;
}
function FillPlayerList()
{
local int i, idx;
local KFPlayerReplicationInfo KFPRI;
local int BlueIndex;
local GameReplicationInfo GRI;
local array<KFPlayerReplicationInfo> PRIs;
local string s;
local string SelectedPlayerName;
GRI = PlayerOwner().GameReplicationInfo;
if ( GRI == none )
return;
bFillPlayerList = false;
log("FillPlayerList", class.name);
// sort list by Red Players -> Blue Players -> Spectators
for ( i = 0; i < GRI.PRIArray.Length; i++) {
log("FillPlayerList: Loading PRI: " $(i+1)$"/"$GRI.PRIArray.Length, class.name);
KFPRI = KFPlayerReplicationInfo(GRI.PRIArray[i]);
if ( KFPRI == none || KFPRI.PlayerID == 0 )
continue;
log("FillPlayerList: PRI["$(i+1)$"] loaded", class.name);
if ( KFPRI.bOnlySpectator || KFPRI.Team == none ) {
PRIs[PRIs.length] = KFPRI; // add to the end
log("FillPlayerList: PRI["$(i+1)$"] added to spectators", class.name);
}
else if ( KFPRI.Team.TeamIndex == 0 ) {
PRIs.insert(0,1);
PRIs[0] = KFPRI; // add to the beginning
BlueIndex++;
log("FillPlayerList: PRI["$(i+1)$"] added to red team", class.name);
}
else {
PRIs.insert(BlueIndex,1);
PRIs[BlueIndex] = KFPRI; // add to the beginning of blue team
log("FillPlayerList: PRI["$(i+1)$"] added to blue team", class.name);
}
}
log("FillPlayerList: Clearing Player List", class.name);
SelectedPlayerName = cbx_Player.GetText();
cbx_Player.bIgnoreChange = true;
cbx_Player.ResetComponent();
idx = -1;
log("FillPlayerList: FillingPlayer List", class.name);
for ( i = 0; i < PRIs.Length; i++) {
s = GetPlayerName(PRIs[i]);
cbx_Player.AddItem(s);
if ( s == SelectedPlayerName )
idx = i;
}
cbx_Player.bIgnoreChange = false;
log("FillPlayerList: Selected index: " $ (idx+1)$"/"$PRIs.Length, class.name);
cbx_Player.SilentSetIndex(idx);
log("FillPlayerList: EOF", class.name);
}
function LoadPlayerData(string PlayerName)
{
local PlayerReplicationInfo PRI;
local ScrnCustomPRI ScrnPRI;
local string s;
log("LoadPlayerData: " $ PlayerName, class.name);
PlayerLocalID = 0;
PlayerSteamID64 = "";
PRI = FindPRI(PlayerName);
if ( PRI == none ) {
lbl_PlayerID.Caption = "";
}
else {
PlayerLocalID = PRI.PlayerID;
ScrnPRI = class'ScrnCustomPRI'.static.FindMe(PRI);
s = "ID="$PRI.PlayerID;
if ( ScrnPRI != none ) {
PlayerSteamID64 = ScrnPRI.GetSteamID64();
s $= " SID64="$ PlayerSteamID64;
}
lbl_PlayerID.Caption = s;
if ( PRI.Team == none || PRI.Team.TeamIndex > 1 )
lbl_PlayerID.TextColor = lbl_ServerInfo.TextColor;
else
lbl_PlayerID.TextColor = class'ScrnHUD'.default.TextColors[PRI.Team.TeamIndex];
}
log("LoadPlayerData: EOF", class.name);
}
function InternalOnLoadINI(GUIComponent Sender, string s)
{
local ScrnPlayerController PC;
local ScrnHUD H;
PC = ScrnPlayerController(PlayerOwner());
H = ScrnHUD(PC.myHUD);
switch (Sender)
{
case ch_ManualReload:
ch_ManualReload.Checked(PC.bManualReload);
if ( PC.Mut.bForceManualReload ) {
ch_ManualReload.DisableMe();
ch_ManualReload.Hint = strForcedByServer;
}
else {
ch_ManualReload.EnableMe();
ch_ManualReload.Hint = ch_ManualReload.default.Hint;
}
break;
case ch_CookNade:
if ( PC.Mut.bReplaceNades ) {
ch_CookNade.Checked(IsCookingSet());
ch_CookNade.EnableMe();
ch_CookNade.Hint = strDisabledByServer;
}
else {
ch_CookNade.Checked(false);
ch_CookNade.DisableMe();
ch_CookNade.Hint = ch_CookNade.default.Hint;
}
break;
case ch_PrioritizePerkedWeapons:
ch_PrioritizePerkedWeapons.Checked(PC.bPrioritizePerkedWeapons);
break;
case ch_PrioritizeBoomstick:
ch_PrioritizeBoomstick.Checked(PC.bPrioritizeBoomstick);
break;
case ch_ShowDamages:
if ( !PC.Mut.bShowDamages || H == none ) {
ch_ShowDamages.Checked(false);
ch_ShowDamages.DisableMe();
ch_ShowDamages.Hint = strDisabledByServer;
}
else {
ch_ShowDamages.Checked(H.bShowDamages);
ch_ShowDamages.EnableMe();
ch_ShowDamages.Hint = ch_ShowDamages.default.Hint;
}
break;
case ch_ShowSpeed:
if ( H == none ) {
ch_ShowSpeed.Checked(false);
ch_ShowSpeed.DisableMe();
}
else {
ch_ShowSpeed.Checked(H.bShowSpeed);
ch_ShowSpeed.EnableMe();
}
break;
case ch_ShowAchProgress:
ch_ShowAchProgress.Checked(PC.bAlwaysDisplayAchProgression);
break;
case cbx_BarStyle:
if ( H == none ) {
cbx_BarStyle.SetIndex(0);
cbx_BarStyle.DisableMe();
}
else {
if ( H.PlayerInfoVersionNumber < 80 )
cbx_BarStyle.SetIndex(0);
else if ( H.PlayerInfoVersionNumber < 90 )
cbx_BarStyle.SetIndex(1);
else
cbx_BarStyle.SetIndex(2);
cbx_BarStyle.EnableMe();
}
break;
case cbx_HudStyle:
if ( H == none ) {
if ( class'ScrnVeterancyTypes'.default.bOldStyleIcons )
cbx_HudStyle.SetIndex(0);
else
cbx_HudStyle.SetIndex(1);
cbx_HudStyle.DisableMe();
}
else {
cbx_HudStyle.EnableMe();
if ( H.bCoolHud ) {
if ( H.bCoolHudLeftAlign )
cbx_HudStyle.SetIndex(3);
else
cbx_HudStyle.SetIndex(2);
}
else if ( class'ScrnVeterancyTypes'.default.bOldStyleIcons )
cbx_HudStyle.SetIndex(0);
else
cbx_HudStyle.SetIndex(1);
}
break;
case sl_BarScale:
if ( H == none ) {
sl_BarScale.DisableMe();
sl_BarScale.DisableMe();
}
else {
sl_BarScale.EnableMe();
}
break;
case sl_3DScopeSensScale:
if ( H == none ) {
sl_3DScopeSensScale.DisableMe();
sl_3DScopeSensScale.DisableMe();
}
else {
sl_3DScopeSensScale.EnableMe();
}
break;
}
}
function InternalOnChange(GUIComponent Sender)
{
local ScrnPlayerController PC;
local ScrnHUD H;
PC = ScrnPlayerController(PlayerOwner());
H = ScrnHUD(PC.myHUD);
switch (sender)
{
case ch_ManualReload:
PC.bManualReload = ch_ManualReload.IsChecked();
PC.SaveConfig();
break;
case ch_CookNade:
SetCookNade(ch_CookNade.IsChecked());
break;
case ch_PrioritizePerkedWeapons:
PC.bPrioritizePerkedWeapons = ch_PrioritizePerkedWeapons.IsChecked();
PC.SaveConfig();
break;
case ch_PrioritizeBoomstick:
PC.bPrioritizeBoomstick = ch_PrioritizeBoomstick.IsChecked();
PC.SaveConfig();
break;
case ch_ShowDamages:
if ( H != none ) {
H.bShowDamages = ch_ShowDamages.IsChecked();
PC.ServerAcknowledgeDamages(ch_ShowDamages.IsChecked());
H.SaveConfig();
}
break;
case ch_ShowSpeed:
if ( H != none ) {
H.bShowSpeed = ch_ShowSpeed.IsChecked();
H.SaveConfig();
}
break;
case ch_ShowAchProgress:
PC.bAlwaysDisplayAchProgression = ch_ShowAchProgress.IsChecked();
PC.SaveConfig();
break;
case cbx_BarStyle:
switch (cbx_BarStyle.GetIndex()) {
case 0: PC.ConsoleCommand("PlayerInfoVersion 70"); break;
case 1: PC.ConsoleCommand("PlayerInfoVersion 83"); break;
case 2: PC.ConsoleCommand("PlayerInfoVersion 90"); break;
}
sl_BarScale.SetVisibility(cbx_BarStyle.GetIndex() > 0);
PC.myHUD.SaveConfig();
break;
case cbx_HudStyle:
if ( H != none ) {
switch (cbx_HudStyle.GetIndex()) {
case 0:
class'ScrnBalanceSrv.ScrnVeterancyTypes'.default.bOldStyleIcons = true;
H.bCoolHud = false;
break;
case 1:
class'ScrnBalanceSrv.ScrnVeterancyTypes'.default.bOldStyleIcons = false;
H.bCoolHud = false;
break;
case 2:
class'ScrnBalanceSrv.ScrnVeterancyTypes'.default.bOldStyleIcons = false;
H.bCoolHud = true;
H.bCoolHudLeftAlign = false;
break;
case 3:
class'ScrnBalanceSrv.ScrnVeterancyTypes'.default.bOldStyleIcons = false;
H.bCoolHud = true;
H.bCoolHudLeftAlign = true;
break;
}
sl_HudScale.SetVisibility(H.bCoolHud);
sl_HudAmmoScale.SetVisibility(H.bCoolHud);
sl_HudY.SetVisibility(H.bCoolHud);
H.SaveConfig();
}
break;
case sl_BarScale:
if ( H != none ) {
H.PlayerInfoScale = sl_BarScale.GetValue();
H.SaveConfig();
}
break;
case sl_HudScale:
if ( H != none ) {
H.CoolHudScale = sl_HudScale.GetValue();
H.SaveConfig();
}
break;
case sl_HudAmmoScale:
if ( H != none ) {
H.CoolHudAmmoScale = sl_HudAmmoScale.GetValue();
H.SaveConfig();
}
break;
case sl_HudY:
if ( H != none ) {
H.CoolHudAmmoOffsetY = sl_HudY.GetValue();
H.SaveConfig();
}
break;
case sl_3DScopeSensScale:
PC.Custom3DScopeSens = sl_3DScopeSensScale.GetValue();
PC.SaveConfig();
break;
case cbx_Player:
LoadPlayerData(cbx_Player.GetText());
break;
}
}
function SetCookNade(bool bCook)
{
local GUIController GC;
local array<string> BindAliases;
local array<string> BindKeyNames;
local array<string> LocalizedBindKeyNames;
local int i, j;
local string s, msg;
GC = GUIController(PlayerOwner().Player.GUIController);
if (bCook) {
//retrieve key bindings containing "ThrowGrenade" (command) or "ThrowNade" (alias)
GC.SearchBinds("ThrowGrenade", BindAliases);
if ( BindAliases.length == 0 )
GC.SearchBinds("ThrowNade", BindAliases);
if ( BindAliases.length == 0 )
PlayerOwner().ClientMessage(strCantFindNade);
else {
for ( i = 0; i < BindAliases.length; i++ ) {
//get keys that are bound to aliases
GC.GetAssignedKeys(BindAliases[i], BindKeyNames, LocalizedBindKeyNames);
//bind keys to cook grenade
for ( j = 0; j < BindKeyNames.length; j++ ) {
s = BindKeyNames[j];
GC.SetKeyBind(s, "CookGrenade | ThrowGrenade | OnRelease ThrowCookedGrenade");
//inform player what binding has been changed
if ( j < LocalizedBindKeyNames.length && LocalizedBindKeyNames[j] != "" )
s = LocalizedBindKeyNames[j];
msg = strBoundToCook;
ReplaceText(msg, "%s", s);
PlayerOwner().ClientMessage(msg);
}
}
}
}
else {
GC.SearchBinds("CookGrenade", BindAliases); //retrieve key bindings containing "CookGrenade"
for ( i = 0; i < BindAliases.length; i++ ) {
//get keys that are bound to aliases
GC.GetAssignedKeys(BindAliases[i], BindKeyNames, LocalizedBindKeyNames);
//bind keys to throw grenade
for ( j = 0; j < BindKeyNames.length; j++ ) {
s = BindKeyNames[j];
GC.SetKeyBind(s, "ThrowGrenade");
//inform player what binding has been changed
if ( j < LocalizedBindKeyNames.length && LocalizedBindKeyNames[j] != "" )
s = LocalizedBindKeyNames[j];
msg = strBoundToThrow;
ReplaceText(msg, "%s", s);
PlayerOwner().ClientMessage(msg);
}
}
}
}
function bool IsCookingSet()
{
local array<string> BindAliases;
GUIController(PlayerOwner().Player.GUIController).SearchBinds("CookGrenade", BindAliases);
return BindAliases.length > 0;
}
function bool ButtonClicked(GUIComponent Sender)
{
local ScrnPlayerController PC;
PC = ScrnPlayerController(PlayerOwner());
if ( PC == none )
return true;
switch ( Sender ) {
case b_ScrnGroup:
LaunchURLPage("http://steamcommunity.com/groups/ScrNBalance");
break;
case b_GetPrize:
PC.Mutate("GIMMECOOKIES");
b_GetPrize.Hide();
break;
case b_GunSkin:
PC.GunSkin(0, true);
break;
case b_WeaponLock:
PC.ToggleWeaponLock();
RefreshInfo();
break;
case b_PerkProgress:
PC.Mutate("PERKSTATS");
break;
case b_Accuracy:
PC.Mutate("ACCURACY");
break;
case b_Status:
PC.Mutate("STATUS");
break;
case b_HL:
PC.Mutate("HL");
break;
case b_Zeds:
PC.Mutate("ZEDLIST");
break;
case b_Profile:
if ( PlayerSteamID64 != "" )
LaunchURLPage("http://steamcommunity.com/profiles/"$PlayerSteamID64);
break;
case b_MVOTE_Yes:
PC.Mutate("VOTE YES");
break;
case b_MVOTE_No:
PC.Mutate("VOTE NO");
break;
case b_MVOTE_Boring:
PC.Mutate("VOTE BORING");
break;
case b_MVOTE_EndTrade:
PC.Mutate("VOTE ENDTRADE");
break;
case b_Team_Lock:
PC.Mutate("VOTE LOCKTEAM");
break;
case b_Team_Unlock:
PC.Mutate("VOTE UNLOCKTEAM");
break;
}
return true;
}
function bool PlayerVoteButtonClicked(GUIComponent Sender)
{
local bool bNeedReason;
local string cmd;
if ( PlayerLocalID <= 0 )
return true;
switch (Sender) {
case b_Blame:
cmd = "BLAME";
bNeedReason = true;
break;
case b_Spec:
cmd = "SPEC";
bNeedReason = true;
break;
case b_Kick:
cmd = "KICK";
bNeedReason = true;
break;
case b_TSC_C:
cmd = "TEAM C";
break;
case b_TSC_A:
cmd = "TEAM A";
break;
case b_Team_Invite:
cmd = "INVITE";
break;
}
cmd = "VOTE" @ cmd @ PlayerLocalID;
if ( bNeedReason ) {
if ( !class'ScrnBalanceVoting'.static.IsGoodReason(txt_Reason.GetText()) ) {
txt_Reason.SetFocus(none);
PlayerOwner().ClientMessage(strBadReason);
return true;
}
cmd @= txt_Reason.GetText();
}
PlayerOwner().Mutate(cmd);
return true;
}
function LaunchURLPage( string URL )
{
PlayerOwner().Player.Console.DelayedConsoleCommand("START "$URL);
}
defaultproperties
{
strDisabledByServer="Disable on the Server side"
strForcedByServer="Forced by the Server"
strLock="Lock"
strUnlock="Unlock"
Begin Object Class=GUIImage Name=LogoStandard
Image=Texture'ScrnTex.HUD.ScrNBalanceLogo256'
ImageStyle=ISTY_Scaled
WinTop=0.005000
WinLeft=0.005000
WinWidth=0.090000
WinHeight=0.160000
RenderWeight=0.900000
bBoundToParent=True
bScaleToParent=True
End Object
img_ScrnLogo=GUIImage'ScrnBalanceSrv.ScrnTab_UserSettings.LogoStandard'
Begin Object Class=GUIImage Name=LogoTourney
Image=Texture'ScrnTex.Tourney.TourneyMember'
ImageStyle=ISTY_Scaled
WinTop=0.005000
WinLeft=0.905000
WinWidth=0.090000
WinHeight=0.160000
RenderWeight=0.900000
bBoundToParent=True
bScaleToParent=True
bVisible=False
End Object
img_TourneyLogo=GUIImage'ScrnBalanceSrv.ScrnTab_UserSettings.LogoTourney'
Begin Object Class=GUILabel Name=VersionLabel
TextAlign=TXTA_Center
TextColor=(B=0,R=160)
TextFont="UT2LargeFont"
ShadowOffsetX=2.000000
ShadowOffsetY=2.000000
FontScale=FNS_Small
WinTop=0.010000
WinLeft=0.100000
WinWidth=0.800000
WinHeight=0.050000
End Object
lbl_Version=GUILabel'ScrnBalanceSrv.ScrnTab_UserSettings.VersionLabel'
Begin Object Class=GUILabel Name=CRLabel
TextAlign=TXTA_Center
TextColor=(B=128,G=128,R=128)
TextFont="UT2SmallFont"
FontScale=FNS_Small
WinTop=0.055000
WinLeft=0.100000
WinWidth=0.800000
WinHeight=0.050000
End Object
lbl_CR=GUILabel'ScrnBalanceSrv.ScrnTab_UserSettings.CRLabel'
Begin Object Class=GUILabel Name=TourneyLabel
Caption="Congratulations on getting into TSC Tournament Playoffs!"
TextAlign=TXTA_Center
TextColor=(B=0,G=255)
ShadowOffsetX=1.000000
ShadowOffsetY=1.000000
WinTop=0.115000
WinLeft=0.100000
WinWidth=0.800000
WinHeight=0.045000
bVisible=False
End Object
lbl_TourneyMember=GUILabel'ScrnBalanceSrv.ScrnTab_UserSettings.TourneyLabel'
Begin Object Class=GUIButton Name=SteamGroupButton
Caption="Group..."
bAutoSize=True
bAutoShrink=False
Hint="Opens up ScrN Balance Fans - Official Steam Group in Web Browser (minimizes KF)."
WinTop=0.115000
WinLeft=0.100000
WinWidth=0.095000
WinHeight=0.045000
RenderWeight=2.000000
TabOrder=0
bBoundToParent=True
bScaleToParent=True
OnClick=ScrnTab_UserSettings.ButtonClicked
OnKeyEvent=SteamGroupButton.InternalOnKeyEvent
End Object
b_ScrnGroup=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.SteamGroupButton'
Begin Object Class=GUIButton Name=PrizeButton
Caption="Get Prize"
bAutoSize=True
bAutoShrink=False
Hint="Grants xp boost for all ScrN official perks"
WinTop=0.115000
WinLeft=0.775000
WinWidth=0.120000
WinHeight=0.045000
RenderWeight=2.000000
TabOrder=1
bBoundToParent=True
bScaleToParent=True
bVisible=False
OnClick=ScrnTab_UserSettings.ButtonClicked
OnKeyEvent=PrizeButton.InternalOnKeyEvent
End Object
b_GetPrize=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.PrizeButton'
Begin Object Class=GUISectionBackground Name=WeaponsBG
Caption="Weapons"
WinTop=0.175000
WinLeft=0.005000
WinWidth=0.490000
WinHeight=0.315000
RenderWeight=0.100100
OnPreDraw=WeaponsBG.InternalPreDraw
End Object
bg_Weapons=GUISectionBackground'ScrnBalanceSrv.ScrnTab_UserSettings.WeaponsBG'
Begin Object Class=moCheckBox Name=ManualReload
CaptionWidth=0.955000
Caption="Manual Reload"
ComponentClassName="ScrnBalanceSrv.ScrnGUICheckBoxButton"
OnCreateComponent=ManualReload.InternalOnCreateComponent
IniOption="@Internal"
Hint="Check this to disable automatic reloading when firing with an empty gun"
WinTop=0.230000
WinLeft=0.015000
WinWidth=0.288000
TabOrder=10
OnChange=ScrnTab_UserSettings.InternalOnChange
OnLoadINI=ScrnTab_UserSettings.InternalOnLoadINI
End Object
ch_ManualReload=moCheckBox'ScrnBalanceSrv.ScrnTab_UserSettings.ManualReload'
Begin Object Class=moCheckBox Name=CookNade
CaptionWidth=0.955000
Caption="Enable Grenade 'Cooking'"
ComponentClassName="ScrnBalanceSrv.ScrnGUICheckBoxButton"
OnCreateComponent=CookNade.InternalOnCreateComponent
IniOption="@Internal"
Hint="If checked, armed grenade will remain in your hands while key is being held. Nade cooking slows down toss rate!"
WinTop=0.280000
WinLeft=0.015000
WinWidth=0.288000
TabOrder=11
OnChange=ScrnTab_UserSettings.InternalOnChange
OnLoadINI=ScrnTab_UserSettings.InternalOnLoadINI
End Object
ch_CookNade=moCheckBox'ScrnBalanceSrv.ScrnTab_UserSettings.CookNade'
Begin Object Class=moCheckBox Name=PrioritizePerkedWeapons
CaptionWidth=0.955000
Caption="Perked Weapons First"
ComponentClassName="ScrnBalanceSrv.ScrnGUICheckBoxButton"
OnCreateComponent=PrioritizePerkedWeapons.InternalOnCreateComponent
IniOption="@Internal"
Hint="If checked, perked weapons will be switched first in the inventory group"
WinTop=0.330000
WinLeft=0.015000
WinWidth=0.288000
TabOrder=12
OnChange=ScrnTab_UserSettings.InternalOnChange
OnLoadINI=ScrnTab_UserSettings.InternalOnLoadINI
End Object
ch_PrioritizePerkedWeapons=moCheckBox'ScrnBalanceSrv.ScrnTab_UserSettings.PrioritizePerkedWeapons'
Begin Object Class=moCheckBox Name=PrioritizeBoomstick
CaptionWidth=0.955000
Caption="Boomstick before AA12"
ComponentClassName="ScrnBalanceSrv.ScrnGUICheckBoxButton"
OnCreateComponent=PrioritizeBoomstick.InternalOnCreateComponent
IniOption="@Internal"
Hint="If checked, when pressing '4' Boomstick (Hunting Shotgun) will be switched before AA12"
WinTop=0.380000
WinLeft=0.015000
WinWidth=0.288000
TabOrder=13
OnChange=ScrnTab_UserSettings.InternalOnChange
OnLoadINI=ScrnTab_UserSettings.InternalOnLoadINI
End Object
ch_PrioritizeBoomstick=moCheckBox'ScrnBalanceSrv.ScrnTab_UserSettings.PrioritizeBoomstick'
Begin Object Class=GUIButton Name=GunSkinButton
Caption="Gun Skin"
Hint="Toggles current weapon skin: normal / gold / camo / neon. Requires appropriate DLC(-s)."
WinTop=0.227500
WinLeft=0.310000
WinWidth=0.175000
WinHeight=0.045000
RenderWeight=1.000000
TabOrder=14
bBoundToParent=True
bScaleToParent=True
OnClick=ScrnTab_UserSettings.ButtonClicked
OnKeyEvent=GunSkinButton.InternalOnKeyEvent
End Object
b_GunSkin=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.GunSkinButton'
Begin Object Class=GUIButton Name=WeaponLockButton
Caption="Lock Weapons"
Hint="Locks/Unlocks dropped weapons, so they can not be picked up by other players"
WinTop=0.277500
WinLeft=0.310000
WinWidth=0.175000
WinHeight=0.045000
RenderWeight=1.000000
TabOrder=15
bBoundToParent=True
bScaleToParent=True
OnClick=ScrnTab_UserSettings.ButtonClicked
OnKeyEvent=WeaponLockButton.InternalOnKeyEvent
End Object
b_WeaponLock=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.WeaponLockButton'
Begin Object Class=GUIButton Name=PerkProgressButton
Caption="Perk Progress"
Hint="Prints perk progress and gained xp during this game to the console"
WinTop=0.327500
WinLeft=0.310000
WinWidth=0.175000
WinHeight=0.045000
RenderWeight=1.000000
TabOrder=16
bBoundToParent=True
bScaleToParent=True
OnClick=ScrnTab_UserSettings.ButtonClicked
OnKeyEvent=PerkProgressButton.InternalOnKeyEvent
End Object
b_PerkProgress=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.PerkProgressButton'
Begin Object Class=GUIButton Name=AccuracyButton
Caption="Show Accuracy"
Hint="Prints player accuracy to the console"
WinTop=0.377500
WinLeft=0.310000
WinWidth=0.175000
WinHeight=0.045000
RenderWeight=1.000000
TabOrder=17
bBoundToParent=True
bScaleToParent=True
OnClick=ScrnTab_UserSettings.ButtonClicked
OnKeyEvent=AccuracyButton.InternalOnKeyEvent
End Object
b_Accuracy=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.AccuracyButton'
strLockWeapons="Lock Weapons"
strUnlockWeapons="Unlock Weapons"
strBoundToCook="'%s' key bound to 'Cook' grenade"
strBoundToThrow="'%s' key bound to Throw grenade"
strCantFindNade="Can't find a key set for throwing grenades. Please assign it in Settings->Controls."
Begin Object Class=GUISectionBackground Name=HUDBG
Caption="HUD & Info"
WinTop=0.175000
WinLeft=0.505000
WinWidth=0.490000
WinHeight=0.315000
RenderWeight=0.100100
OnPreDraw=WeaponsBG.InternalPreDraw
End Object
bg_HUD=GUISectionBackground'ScrnBalanceSrv.ScrnTab_UserSettings.HUDBG'
Begin Object Class=moCheckBox Name=ShowDamages
CaptionWidth=0.955000
Caption="Show Damages"
ComponentClassName="ScrnBalanceSrv.ScrnGUICheckBoxButton"
OnCreateComponent=ShowDamages.InternalOnCreateComponent
IniOption="@Internal"
Hint="If checked, damage you're doing will popup on your screen"
WinTop=0.230000
WinLeft=0.515000
WinWidth=0.288000
TabOrder=20
OnChange=ScrnTab_UserSettings.InternalOnChange
OnLoadINI=ScrnTab_UserSettings.InternalOnLoadINI
End Object
ch_ShowDamages=moCheckBox'ScrnBalanceSrv.ScrnTab_UserSettings.ShowDamages'
Begin Object Class=moCheckBox Name=ShowSpeed
CaptionWidth=0.955000
Caption="Show Speed"
ComponentClassName="ScrnBalanceSrv.ScrnGUICheckBoxButton"
OnCreateComponent=ShowSpeed.InternalOnCreateComponent
IniOption="@Internal"
Hint="Toggles drawing of your movement speed on the HUD"
WinTop=0.280000
WinLeft=0.515000
WinWidth=0.288000
TabOrder=21
OnChange=ScrnTab_UserSettings.InternalOnChange
OnLoadINI=ScrnTab_UserSettings.InternalOnLoadINI
End Object
ch_ShowSpeed=moCheckBox'ScrnBalanceSrv.ScrnTab_UserSettings.ShowSpeed'
Begin Object Class=moCheckBox Name=ShowAchProgress
CaptionWidth=0.955000
Caption="Achievement Progress"
ComponentClassName="ScrnBalanceSrv.ScrnGUICheckBoxButton"
OnCreateComponent=ShowAchProgress.InternalOnCreateComponent
IniOption="@Internal"
Hint="If checked, you will always receive notification message on any achievement progress. If not, game will automatically decide when to show a notification."
WinTop=0.330000
WinLeft=0.515000
WinWidth=0.288000
TabOrder=22
OnChange=ScrnTab_UserSettings.InternalOnChange
OnLoadINI=ScrnTab_UserSettings.InternalOnLoadINI
End Object
ch_ShowAchProgress=moCheckBox'ScrnBalanceSrv.ScrnTab_UserSettings.ShowAchProgress'
Begin Object Class=moComboBox Name=BarStyleList
bReadOnly=True
CaptionWidth=0.000000
OnCreateComponent=BarStyleList.InternalOnCreateComponent
IniOption="@Internal"
Hint="Player Info Bar Style (Beacons above teammates)"
WinTop=0.380000
WinLeft=0.515000
WinWidth=0.218000
RenderWeight=1.000000
TabOrder=26
OnChange=ScrnTab_UserSettings.InternalOnChange
OnLoadINI=ScrnTab_UserSettings.InternalOnLoadINI
End Object
cbx_BarStyle=moComboBox'ScrnBalanceSrv.ScrnTab_UserSettings.BarStyleList'
Begin Object Class=moSlider Name=BarScale
MaxValue=2.000000
MinValue=0.500000
LabelJustification=TXTA_Center
ComponentJustification=TXTA_Left
CaptionWidth=0.000000
LabelColor=(B=255,G=255,R=255)
OnCreateComponent=BarScale.InternalOnCreateComponent
Hint="Adjust size of the Player Bars"
WinTop=0.380000
WinLeft=0.760000
WinWidth=0.100000
TabOrder=27
OnChange=ScrnTab_UserSettings.InternalOnChange
OnLoadINI=ScrnTab_UserSettings.InternalOnLoadINI
End Object
sl_BarScale=moSlider'ScrnBalanceSrv.ScrnTab_UserSettings.BarScale'
Begin Object Class=moComboBox Name=HudStyleList
bReadOnly=True
CaptionWidth=0.000000
OnCreateComponent=HudStyleList.InternalOnCreateComponent
IniOption="@Internal"
Hint="HUD Style"
WinTop=0.430000
WinLeft=0.515000
WinWidth=0.218000
RenderWeight=1.000000
TabOrder=29
OnChange=ScrnTab_UserSettings.InternalOnChange
OnLoadINI=ScrnTab_UserSettings.InternalOnLoadINI
End Object
cbx_HudStyle=moComboBox'ScrnBalanceSrv.ScrnTab_UserSettings.HudStyleList'
Begin Object Class=moSlider Name=HudScale
MaxValue=3.000000
MinValue=1.500000
LabelJustification=TXTA_Center
ComponentJustification=TXTA_Left
CaptionWidth=0.000000
LabelColor=(B=255,G=255,R=255)
OnCreateComponent=HudScale.InternalOnCreateComponent
Hint="Adjust size of the Cool HUD"
WinTop=0.430000
WinLeft=0.760000
WinWidth=0.100000
TabOrder=30
OnChange=ScrnTab_UserSettings.InternalOnChange
OnLoadINI=ScrnTab_UserSettings.InternalOnLoadINI
End Object
sl_HudScale=moSlider'ScrnBalanceSrv.ScrnTab_UserSettings.HudScale'
Begin Object Class=moSlider Name=HudAmmoScale
MaxValue=1.500000
MinValue=0.250000
LabelJustification=TXTA_Center
ComponentJustification=TXTA_Left
CaptionWidth=0.000000
LabelColor=(B=255,G=255,R=255)
OnCreateComponent=HudAmmoScale.InternalOnCreateComponent
Hint="Adjust size of Ammo Counter"
WinTop=0.415000
WinLeft=0.870000
WinWidth=0.100000
TabOrder=31
OnChange=ScrnTab_UserSettings.InternalOnChange
OnLoadINI=ScrnTab_UserSettings.InternalOnLoadINI
End Object
sl_HudAmmoScale=moSlider'ScrnBalanceSrv.ScrnTab_UserSettings.HudAmmoScale'
Begin Object Class=moSlider Name=HudY
MaxValue=1.000000
MinValue=0.200000
LabelJustification=TXTA_Center
ComponentJustification=TXTA_Left
CaptionWidth=0.000000
LabelColor=(B=255,G=255,R=255)
OnCreateComponent=HudY.InternalOnCreateComponent
Hint="Adjust vertical position of Ammo Counter"
WinTop=0.445000
WinLeft=0.870000
WinWidth=0.100000
TabOrder=32
OnChange=ScrnTab_UserSettings.InternalOnChange
OnLoadINI=ScrnTab_UserSettings.InternalOnLoadINI
End Object
sl_HudY=moSlider'ScrnBalanceSrv.ScrnTab_UserSettings.HudY'
Begin Object Class=moSlider Name=Custom3DScopeSens
MaxValue=75.000000
MinValue=5.000000
bIntSlider=True
LabelJustification=TXTA_Center
ComponentJustification=TXTA_Left
CaptionWidth=0.000000
LabelColor=(B=255,G=255,R=255)
OnCreateComponent=Custom3DScopeSens.InternalOnCreateComponent
Hint="Adjust mouse sensitivity scale when using 3D scopes (Value in FOV, 24 for vanilla behaviour)"
WinTop=0.430000
WinLeft=0.310000
WinWidth=0.175000
WinHeight=0.045000
TabOrder=18
OnChange=ScrnTab_UserSettings.InternalOnChange
OnLoadINI=ScrnTab_UserSettings.InternalOnLoadINI
End Object
sl_3DScopeSensScale=moSlider'ScrnBalanceSrv.ScrnTab_UserSettings.Custom3DScopeSens'
BarStyleItems(0)="Classic Bars"
BarStyleItems(1)="Modern Bars"
BarStyleItems(2)="Cool Bars"
HudStyleItems(0)="Classic HUD, old icons"
HudStyleItems(1)="Classic HUD, new icons"
HudStyleItems(2)="Cool HUD (center)"
HudStyleItems(3)="Cool HUD (left)"
Begin Object Class=GUIButton Name=StatusButton
Caption="Server Status"
Hint="Prints ScrN server settings"
WinTop=0.227500
WinLeft=0.810000
WinWidth=0.175000
WinHeight=0.045000
RenderWeight=1.000000
TabOrder=23
bBoundToParent=True
bScaleToParent=True
OnClick=ScrnTab_UserSettings.ButtonClicked
OnKeyEvent=StatusButton.InternalOnKeyEvent
End Object
b_Status=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.StatusButton'
Begin Object Class=GUIButton Name=HLButton
Caption="HL"
Hint="Prints Hardcore Level"
WinTop=0.277500
WinLeft=0.810000
WinWidth=0.175000
WinHeight=0.045000
RenderWeight=1.000000
TabOrder=24
bBoundToParent=True
bScaleToParent=True
OnClick=ScrnTab_UserSettings.ButtonClicked
OnKeyEvent=HLButton.InternalOnKeyEvent
End Object
b_HL=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.HLButton'
Begin Object Class=GUIButton Name=ZedsButton
Caption="Zeds"
Hint="Prints current monster collection"
WinTop=0.327500
WinLeft=0.810000
WinWidth=0.175000
WinHeight=0.045000
RenderWeight=1.000000
TabOrder=25
bBoundToParent=True
bScaleToParent=True
OnClick=ScrnTab_UserSettings.ButtonClicked
OnKeyEvent=ZedsButton.InternalOnKeyEvent
End Object
b_Zeds=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.ZedsButton'
Begin Object Class=GUISectionBackground Name=PlayerBG
Caption="MVote"
WinTop=0.510000
WinLeft=0.005000
WinWidth=0.990000
WinHeight=0.235000
RenderWeight=0.100100
OnPreDraw=WeaponsBG.InternalPreDraw
End Object
bg_Players=GUISectionBackground'ScrnBalanceSrv.ScrnTab_UserSettings.PlayerBG'
Begin Object Class=moComboBox Name=PlayerList
bReadOnly=True
CaptionWidth=0.180000
Caption="Player:"
OnCreateComponent=PlayerList.InternalOnCreateComponent
IniOption="@Internal"
Hint="Select a player from the list"
WinTop=0.575000
WinLeft=0.015000
WinWidth=0.460000
RenderWeight=1.000000
TabOrder=50
OnChange=ScrnTab_UserSettings.InternalOnChange
OnLoadINI=ScrnTab_UserSettings.InternalOnLoadINI
End Object
cbx_Player=moComboBox'ScrnBalanceSrv.ScrnTab_UserSettings.PlayerList'
Begin Object Class=GUILabel Name=PlayerLabel
TextColor=(B=200,G=200,R=200)
TextFont="UT2SmallFont"
FontScale=FNS_Small
WinTop=0.570000
WinLeft=0.490000
WinWidth=0.800000
WinHeight=0.050000
RenderWeight=0.200000
End Object
lbl_PlayerID=GUILabel'ScrnBalanceSrv.ScrnTab_UserSettings.PlayerLabel'
Begin Object Class=GUIButton Name=ProfileButton
Caption="Profile..."
Hint="Opens player's Steam profile in web browser (minimizes KF)"
WinTop=0.580000
WinLeft=0.790000
WinWidth=0.095000
WinHeight=0.045000
RenderWeight=2.000000
TabOrder=51
bBoundToParent=True
bScaleToParent=True
OnClick=ScrnTab_UserSettings.ButtonClicked
OnKeyEvent=ProfileButton.InternalOnKeyEvent
End Object
b_Profile=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.ProfileButton'
Begin Object Class=GUIButton Name=PlayerListButton
Caption="List"
Hint="Writes player list into the console and KillingFloor.log"
WinTop=0.580000
WinLeft=0.890000
WinWidth=0.095000
WinHeight=0.045000
RenderWeight=1.000000
TabOrder=52
bBoundToParent=True
bScaleToParent=True
OnClick=ScrnTab_UserSettings.ButtonClicked
OnKeyEvent=PlayerListButton.InternalOnKeyEvent
End Object
b_PlayerList=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.PlayerListButton'
Begin Object Class=moEditBox Name=ReasonTextBox
ComponentWidth=0.820000
Caption="Reason:"
OnCreateComponent=ebName.InternalOnCreateComponent
WinTop=0.630000
WinLeft=0.015000
WinWidth=0.460000
TabOrder=60
End Object
txt_Reason=moEditBox'ScrnBalanceSrv.ScrnTab_UserSettings.ReasonTextBox'
Begin Object Class=GUIButton Name=BlameButton
Caption="Blame"
Hint="Click to start a Blame-vote on selected player for a 'Reason'"
WinTop=0.630000
WinLeft=0.490000
WinWidth=0.095000
WinHeight=0.045000
RenderWeight=2.000000
TabOrder=61
bBoundToParent=True
bScaleToParent=True
OnClick=ScrnTab_UserSettings.PlayerVoteButtonClicked
OnKeyEvent=BlameButton.InternalOnKeyEvent
End Object
b_Blame=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.BlameButton'
Begin Object Class=GUIButton Name=SpecButton
Caption="Spec"
Hint="Click to start a vote to move selected player to spectators for a 'Reason'."
WinTop=0.630000
WinLeft=0.590000
WinWidth=0.095000
WinHeight=0.045000
RenderWeight=2.000000
TabOrder=62
bBoundToParent=True
bScaleToParent=True
OnClick=ScrnTab_UserSettings.PlayerVoteButtonClicked
OnKeyEvent=SpecButton.InternalOnKeyEvent
End Object
b_Spec=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.SpecButton'
Begin Object Class=GUIButton Name=KickButton
Caption="Kick"
Hint="Click to start a kick-vote selected player for a 'Reason'."
WinTop=0.630000
WinLeft=0.690000
WinWidth=0.095000
WinHeight=0.045000
RenderWeight=2.000000
TabOrder=63
bBoundToParent=True
bScaleToParent=True
OnClick=ScrnTab_UserSettings.PlayerVoteButtonClicked
OnKeyEvent=KickButton.InternalOnKeyEvent
End Object
b_Kick=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.KickButton'
Begin Object Class=GUIButton Name=TSC_C_Button
Caption="Captain"
Hint="Vote selected player to be a Team Captain"
WinTop=0.630000
WinLeft=0.790000
WinWidth=0.095000
WinHeight=0.045000
RenderWeight=2.000000
TabOrder=64
bBoundToParent=True
bScaleToParent=True
bVisible=False
OnClick=ScrnTab_UserSettings.PlayerVoteButtonClicked
OnKeyEvent=TSC_C_Button.InternalOnKeyEvent
End Object
b_TSC_C=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.TSC_C_Button'
Begin Object Class=GUIButton Name=TSC_A_Button
Caption="Carrier"
Hint="Vote selected player to be a Gnome Carrier. If voted, nobody but carrier or captain can pick up the Gnome."
WinTop=0.630000
WinLeft=0.890000
WinWidth=0.095000
WinHeight=0.045000
RenderWeight=1.000000
TabOrder=65
bBoundToParent=True
bScaleToParent=True
bVisible=False
OnClick=ScrnTab_UserSettings.PlayerVoteButtonClicked
OnKeyEvent=TSC_A_Button.InternalOnKeyEvent
End Object
b_TSC_A=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.TSC_A_Button'
Begin Object Class=GUIButton Name=TeamLockButton
Caption="Lock Team"
Hint="Locks teams, preventing uninvited players to join."
WinTop=0.680000
WinLeft=0.690000
WinWidth=0.195000
WinHeight=0.045000
RenderWeight=2.000000
TabOrder=73
bBoundToParent=True
bScaleToParent=True
bVisible=False
OnClick=ScrnTab_UserSettings.ButtonClicked
OnKeyEvent=TeamLockButton.InternalOnKeyEvent
End Object
b_Team_Lock=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.TeamLockButton'
Begin Object Class=GUIButton Name=TeamUnlockButton
Caption="Unlock Team"
Hint="Unlocks teams, allowing everybody to join."
WinTop=0.680000
WinLeft=0.690000
WinWidth=0.195000
WinHeight=0.045000
RenderWeight=2.000000
TabOrder=73
bBoundToParent=True
bScaleToParent=True
bVisible=False
OnClick=ScrnTab_UserSettings.ButtonClicked
OnKeyEvent=TeamUnlockButton.InternalOnKeyEvent
End Object
b_Team_Unlock=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.TeamUnlockButton'
Begin Object Class=GUIButton Name=TeamInviteButton
Caption="Invite"
Hint="Invite player to the team (bypasses lock)."
WinTop=0.680000
WinLeft=0.890000
WinWidth=0.095000
WinHeight=0.045000
RenderWeight=1.000000
TabOrder=74
bBoundToParent=True
bScaleToParent=True
bVisible=False
OnClick=ScrnTab_UserSettings.PlayerVoteButtonClicked
OnKeyEvent=TeamInviteButton.InternalOnKeyEvent
End Object
b_Team_Invite=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.TeamInviteButton'
Begin Object Class=GUIButton Name=VoteYesButton
Caption="Vote YES"
Hint="Accept current vote in progress"
WinTop=0.680000
WinLeft=0.015000
WinWidth=0.095000
WinHeight=0.045000
RenderWeight=1.000000
TabOrder=70
bBoundToParent=True
bScaleToParent=True
bVisible=False
OnClick=ScrnTab_UserSettings.ButtonClicked
OnKeyEvent=VoteYesButton.InternalOnKeyEvent
End Object
b_MVOTE_Yes=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.VoteYesButton'
Begin Object Class=GUIButton Name=VoteNoButton
Caption="Vote NO"
Hint="Decline current vote in progress"
WinTop=0.680000
WinLeft=0.115000
WinWidth=0.095000
WinHeight=0.045000
RenderWeight=1.000000
TabOrder=71
bBoundToParent=True
bScaleToParent=True
bVisible=False
OnClick=ScrnTab_UserSettings.ButtonClicked
OnKeyEvent=VoteNoButton.InternalOnKeyEvent
End Object
b_MVOTE_No=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.VoteNoButton'
Begin Object Class=GUIButton Name=BoringButton
Caption="Boring"
Hint="Boosts zed spawn rates, making game faster."
WinTop=0.680000
WinLeft=0.280000
WinWidth=0.195000
WinHeight=0.045000
RenderWeight=2.000000
TabOrder=72
bBoundToParent=True
bScaleToParent=True
bVisible=False
OnClick=ScrnTab_UserSettings.ButtonClicked
OnKeyEvent=BoringButton.InternalOnKeyEvent
End Object
b_MVOTE_Boring=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.BoringButton'
Begin Object Class=GUIButton Name=EndTradeButton
Caption="End Trade"
Hint="Skips Trader Time and starts next wave."
WinTop=0.680000
WinLeft=0.280000
WinWidth=0.195000
WinHeight=0.045000
RenderWeight=2.000000
TabOrder=72
bBoundToParent=True
bScaleToParent=True
bVisible=False
OnClick=ScrnTab_UserSettings.ButtonClicked
OnKeyEvent=EndTradeButton.InternalOnKeyEvent
End Object
b_MVOTE_EndTrade=GUIButton'ScrnBalanceSrv.ScrnTab_UserSettings.EndTradeButton'
strBadReason="Write a good reason"
Begin Object Class=GUILabel Name=ServerInfoLabel
Caption="Server status unavailable"
TextAlign=TXTA_Center
TextColor=(B=192,G=192,R=192)
bMultiLine=True
WinTop=0.755000
WinLeft=0.010000
WinWidth=0.980000
WinHeight=0.240000
End Object
lbl_ServerInfo=GUILabel'ScrnBalanceSrv.ScrnTab_UserSettings.ServerInfoLabel'
strServerInfoSeparator=" "
strPerkRange="Perk Bonus Range: "
strPerkXPLevel="Your Perk Level = "
strPerkBonusLevel="Bonus Level = "
strSpawnBalance="Money Balance"
strWeaponFix="Weapon Balance"
strAltBurnMech="Alt.Burn"
strBeta="Beta"
strHardcore="Hardcore"
strNoPerkChanges="No Perk Changes"
StatusColor(0)=(R=100,A=255)
StatusColor(1)=(G=255,A=255)
}