From 4caed0a5f40275bd3fcf2ec22108c9705dce2a8c Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Fri, 26 Jun 2020 02:21:38 +0300 Subject: [PATCH 01/39] fix: encoding UCS-2 LE BOM --- Localization/INT/ServerExt.int | Bin 369 -> 740 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index 6594f6e09e5289fe79d563b11daf63b128eb387d..df123f8a67bc545f75aca67aefcb1927ce037475 100644 GIT binary patch literal 740 zcmd6kziYy95XIkI=>HJ1xVbyHR2>v5q7(-$BFR^ilBk#j+kd|Hb4g07P&>GkkmT;& z-Mb&}{JGFT@5(io(^?0uG*PS!WUmCTqm<`Wk9yD$)ZvZEOtHH1>$pc{Q{`V|_sPr@ z=t#x^h8X5uSvyiucJgYLwmePCITCt*;JsaCEUA0~%ZZ&}$`xV7pquh*hy$_tQu-L< zn7>DN2j`wh_ybMxx6IJwh2(8`1DGn@wr*kDjt-vhXq)ZrD)#<$#b+u*CJZ#Yamyy_ s-g}xlRliH7TNnPV=6~JXrs<*D4m~2aT%)S#ouE*q_Y0P3Sb&*EUyjy+v;Y7A literal 369 zcmb`DJr9CF42E|T{zG$%+wBf4ehipMjK(;CAr~le<~|5lqW*i2lR;cu+}^%#n?7x} zdC(a}TkNGHtBQrzmuQv{>QrcqnXjP@5qsNfbY&-7lGem*+dBf^!r_2IsVCexAYGTI`0B`<>A&`$F7dCClT4GFZPj f^)NR!O@Tj?KauBVB@8tFDAz2fWzXcB+7 From f1a373dea8c3c64afefa7da204f676f59cc17ecc Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Fri, 26 Jun 2020 03:52:31 +0300 Subject: [PATCH 02/39] constant interface strings marked as localized --- ServerExt/Classes/Ext_PerkBase.uc | 2 +- ServerExt/Classes/Ext_TGroupBase.uc | 3 +-- ServerExt/Classes/Ext_TraitBase.uc | 2 +- ServerExt/Classes/KFExtendedHUD.uc | 4 +--- ServerExt/Classes/VSZombie.uc | 3 +-- 5 files changed, 5 insertions(+), 9 deletions(-) diff --git a/ServerExt/Classes/Ext_PerkBase.uc b/ServerExt/Classes/Ext_PerkBase.uc index ebdfdfd..b67507b 100644 --- a/ServerExt/Classes/Ext_PerkBase.uc +++ b/ServerExt/Classes/Ext_PerkBase.uc @@ -10,7 +10,7 @@ var array WebConfigs; var ExtPerkManager PerkManager; var Controller PlayerOwner; -var() string PerkName; +var() localized string PerkName; var() Texture2D PerkIcon; var() class BasePerk; // KF perk that this perk is based on. var() class PrimaryMelee,PrimaryWeapon; diff --git a/ServerExt/Classes/Ext_TGroupBase.uc b/ServerExt/Classes/Ext_TGroupBase.uc index 58e3055..76eeffe 100644 --- a/ServerExt/Classes/Ext_TGroupBase.uc +++ b/ServerExt/Classes/Ext_TGroupBase.uc @@ -2,7 +2,7 @@ Class Ext_TGroupBase extends Object abstract; -var() string GroupInfo; +var() localized string GroupInfo; var() bool bLimitToOne; // Limit to only one trait for this group. static function string GetUIInfo( Ext_PerkBase Perk ) @@ -30,5 +30,4 @@ static function bool GroupLimited( Ext_PerkBase Perk, class Trait defaultproperties { - GroupInfo="Group" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitBase.uc b/ServerExt/Classes/Ext_TraitBase.uc index 7c9b281..9192fd0 100644 --- a/ServerExt/Classes/Ext_TraitBase.uc +++ b/ServerExt/Classes/Ext_TraitBase.uc @@ -6,7 +6,7 @@ Class Ext_TraitBase extends Object var array WebConfigs; var() class TraitGroup; // With groups you can prevent player from buying multiple traits of same group. -var() string TraitName,Description; // UI name. +var() localized string TraitName,Description; // UI name. var() byte NumLevels; // Maximum number of levels. var config array LevelCosts; var() array DefLevelCosts; // Point price tag for each level. diff --git a/ServerExt/Classes/KFExtendedHUD.uc b/ServerExt/Classes/KFExtendedHUD.uc index 971452b..77fc5aa 100644 --- a/ServerExt/Classes/KFExtendedHUD.uc +++ b/ServerExt/Classes/KFExtendedHUD.uc @@ -61,7 +61,7 @@ var color BlackBGColor,RedBGColor,HUDTextColor; var transient array WasNewlyAdded; var transient OnlineSubsystem OnlineSub; -var string BadConnectionStr; +var localized string BadConnectionStr; var transient bool bShowProgress,bProgressDC,bConfirmDisconnect,bMeAdmin,bLoadedInitItems; @@ -1196,6 +1196,4 @@ defaultproperties HealthBarFullVisDist=350 HealthBarCutoffDist=3500 DamagePopupFadeOutTime=3.000000 - - BadConnectionStr="Warning: Connection problem!" } diff --git a/ServerExt/Classes/VSZombie.uc b/ServerExt/Classes/VSZombie.uc index 5c3d837..b4d6d31 100644 --- a/ServerExt/Classes/VSZombie.uc +++ b/ServerExt/Classes/VSZombie.uc @@ -2,7 +2,7 @@ Class VSZombie extends KFPawn_Monster abstract; var() class MeleeHitDT; -var() string ZombieName; +var() localized string ZombieName; var transient VSFPZedHands FPHandModel; var() int MeleeDamage,HitsPerAttack; var() float PropDamageScale; @@ -455,7 +455,6 @@ defaultproperties HPScaler=1 InventoryManagerClass=None // No weapons for bots! - ZombieName="Zombie" PropDamageScale=0.65 HitZones(0)=(ZoneName="head",BoneName="head",GoreHealth=20,Limb=BP_Head,DmgScale=2) From 18b31efdfcb7df266c90db581bae029ddb719068 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Fri, 26 Jun 2020 03:55:53 +0300 Subject: [PATCH 03/39] hardcode removed --- ServerExt/Classes/ExtGUI_PerkSelectionPage.uc | 1 - ServerExt/Classes/Ext_PerkBerserker.uc | 1 - ServerExt/Classes/Ext_PerkCommando.uc | 1 - ServerExt/Classes/Ext_PerkDemolition.uc | 1 - ServerExt/Classes/Ext_PerkFieldMedic.uc | 1 - ServerExt/Classes/Ext_PerkFirebug.uc | 1 - ServerExt/Classes/Ext_PerkGunslinger.uc | 1 - ServerExt/Classes/Ext_PerkSWAT.uc | 1 - ServerExt/Classes/Ext_PerkSharpshooter.uc | 1 - ServerExt/Classes/Ext_PerkSupport.uc | 1 - ServerExt/Classes/Ext_PerkSurvivalist.uc | 1 - ServerExt/Classes/Ext_TGroupMonster.uc | 1 - ServerExt/Classes/Ext_TGroupRegen.uc | 1 - ServerExt/Classes/Ext_TGroupZEDTime.uc | 1 - ServerExt/Classes/Ext_T_MonsterPRI.uc | 1 - ServerExt/Classes/Ext_TraitAPShots.uc | 2 -- ServerExt/Classes/Ext_TraitAcidicCompound.uc | 2 -- ServerExt/Classes/Ext_TraitAirborne.uc | 2 -- ServerExt/Classes/Ext_TraitAirborneAgent.uc | 2 -- ServerExt/Classes/Ext_TraitAmmoReg.uc | 2 -- ServerExt/Classes/Ext_TraitArmorReg.uc | 2 -- ServerExt/Classes/Ext_TraitArmorRep.uc | 2 -- ServerExt/Classes/Ext_TraitAutoFire.uc | 2 -- ServerExt/Classes/Ext_TraitBoomWeld.uc | 2 -- ServerExt/Classes/Ext_TraitBunnyHop.uc | 2 -- ServerExt/Classes/Ext_TraitCarryCap.uc | 2 -- ServerExt/Classes/Ext_TraitContactNade.uc | 2 -- ServerExt/Classes/Ext_TraitDemoAOE.uc | 2 -- ServerExt/Classes/Ext_TraitDemoCriticalHit.uc | 2 -- ServerExt/Classes/Ext_TraitDemoDirectHit.uc | 2 -- ServerExt/Classes/Ext_TraitDemoNuke.uc | 2 -- ServerExt/Classes/Ext_TraitDemoProfessional.uc | 2 -- ServerExt/Classes/Ext_TraitDemoReactiveArmor.uc | 2 -- ServerExt/Classes/Ext_TraitDireReload.uc | 2 -- ServerExt/Classes/Ext_TraitDoorRepair.uc | 2 -- ServerExt/Classes/Ext_TraitDuracell.uc | 2 -- ServerExt/Classes/Ext_TraitEliteReload.uc | 2 -- ServerExt/Classes/Ext_TraitEnemyHP.uc | 2 -- ServerExt/Classes/Ext_TraitFanfire.uc | 2 -- ServerExt/Classes/Ext_TraitFireExplode.uc | 2 -- ServerExt/Classes/Ext_TraitFireRange.uc | 2 -- ServerExt/Classes/Ext_TraitGhost.uc | 2 -- ServerExt/Classes/Ext_TraitGrenadeCap.uc | 2 -- ServerExt/Classes/Ext_TraitGrenadeSUpg.uc | 2 -- ServerExt/Classes/Ext_TraitGrenadeUpg.uc | 2 -- ServerExt/Classes/Ext_TraitHealthReg.uc | 2 -- ServerExt/Classes/Ext_TraitHeavyArmor.uc | 2 -- ServerExt/Classes/Ext_TraitKnockback.uc | 2 -- ServerExt/Classes/Ext_TraitMachineGunner.uc | 2 -- ServerExt/Classes/Ext_TraitMedBoost.uc | 2 -- ServerExt/Classes/Ext_TraitMedDamBoost.uc | 2 -- ServerExt/Classes/Ext_TraitMedShield.uc | 2 -- ServerExt/Classes/Ext_TraitMedicPistol.uc | 2 -- ServerExt/Classes/Ext_TraitNapalm.uc | 2 -- ServerExt/Classes/Ext_TraitNightvision.uc | 2 -- ServerExt/Classes/Ext_TraitPenetrator.uc | 2 -- ServerExt/Classes/Ext_TraitRackEmUp.uc | 2 -- ServerExt/Classes/Ext_TraitRagdoll.uc | 2 -- ServerExt/Classes/Ext_TraitRanger.uc | 2 -- ServerExt/Classes/Ext_TraitRapidAssault.uc | 2 -- ServerExt/Classes/Ext_TraitRetali.uc | 2 -- ServerExt/Classes/Ext_TraitSWATEnforcer.uc | 2 -- ServerExt/Classes/Ext_TraitSirenResistance.uc | 4 +--- ServerExt/Classes/Ext_TraitSpartan.uc | 2 -- ServerExt/Classes/Ext_TraitSupply.uc | 2 -- ServerExt/Classes/Ext_TraitSupplyGren.uc | 5 +---- ServerExt/Classes/Ext_TraitTacticalMove.uc | 2 -- ServerExt/Classes/Ext_TraitTactician.uc | 2 -- ServerExt/Classes/Ext_TraitToxicDart.uc | 2 -- ServerExt/Classes/Ext_TraitUberAmmo.uc | 2 -- ServerExt/Classes/Ext_TraitUnCloak.uc | 2 -- ServerExt/Classes/Ext_TraitUnGrab.uc | 2 -- ServerExt/Classes/Ext_TraitVampire.uc | 2 -- ServerExt/Classes/Ext_TraitWPBers.uc | 5 +---- ServerExt/Classes/Ext_TraitWPComm.uc | 3 --- ServerExt/Classes/Ext_TraitWPDemo.uc | 5 +---- ServerExt/Classes/Ext_TraitWPFire.uc | 5 +---- ServerExt/Classes/Ext_TraitWPGuns.uc | 3 --- ServerExt/Classes/Ext_TraitWPMedic.uc | 3 --- ServerExt/Classes/Ext_TraitWPSWAT.uc | 3 --- ServerExt/Classes/Ext_TraitWPSharp.uc | 3 --- ServerExt/Classes/Ext_TraitWPSupp.uc | 3 --- ServerExt/Classes/Ext_TraitWPSurv.uc | 3 --- ServerExt/Classes/Ext_TraitZED_Damage.uc | 2 -- ServerExt/Classes/Ext_TraitZED_Health.uc | 2 -- ServerExt/Classes/Ext_TraitZED_Summon.uc | 2 -- ServerExt/Classes/Ext_TraitZED_SummonExt.uc | 2 -- ServerExt/Classes/Ext_TraitZedTExt.uc | 2 -- ServerExt/Classes/Ext_TraitZedative.uc | 2 -- ServerExt/Classes/VS_ZedRecentZed.uc | 1 - ServerExt/Classes/xUI_MapVote.uc | 1 - 91 files changed, 5 insertions(+), 181 deletions(-) diff --git a/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc b/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc index ba87184..ca7ab32 100644 --- a/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc +++ b/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc @@ -49,7 +49,6 @@ function UserPressedEsc(); defaultproperties { WindowTitle="" - XPosition=0.01 XSize=0.73 YSize=0.73 diff --git a/ServerExt/Classes/Ext_PerkBerserker.uc b/ServerExt/Classes/Ext_PerkBerserker.uc index 9ee2c2c..18a4edd 100644 --- a/ServerExt/Classes/Ext_PerkBerserker.uc +++ b/ServerExt/Classes/Ext_PerkBerserker.uc @@ -33,7 +33,6 @@ function PlayerKilled( KFPawn_Monster Victim, class DT ) defaultproperties { - PerkName="Berserker" PerkIcon=Texture2D'UI_PerkIcons_TEX.UI_PerkIcon_Berserker' DefTraitList.Add(class'Ext_TraitWPBers') DefTraitList.Add(class'Ext_TraitUnGrab') diff --git a/ServerExt/Classes/Ext_PerkCommando.uc b/ServerExt/Classes/Ext_PerkCommando.uc index da1e663..fd10120 100644 --- a/ServerExt/Classes/Ext_PerkCommando.uc +++ b/ServerExt/Classes/Ext_PerkCommando.uc @@ -52,7 +52,6 @@ simulated function float GetZedTimeExtensions( byte Level ) defaultproperties { - PerkName="Commando" PerkIcon=Texture2D'UI_PerkIcons_TEX.UI_PerkIcon_Commando' DefTraitList.Add(class'Ext_TraitWPComm') DefTraitList.Add(class'Ext_TraitUnCloak') diff --git a/ServerExt/Classes/Ext_PerkDemolition.uc b/ServerExt/Classes/Ext_PerkDemolition.uc index 50e3a28..6a338a6 100644 --- a/ServerExt/Classes/Ext_PerkDemolition.uc +++ b/ServerExt/Classes/Ext_PerkDemolition.uc @@ -75,7 +75,6 @@ simulated function ModifySpareAmmoAmount( KFWeapon KFW, out int PrimarySpareAmmo defaultproperties { - PerkName="Demolitionist" PerkIcon=Texture2D'UI_PerkIcons_TEX.UI_PerkIcon_Demolition' DefTraitList.Add(class'Ext_TraitWPDemo') DefTraitList.Add(class'Ext_TraitBoomWeld') diff --git a/ServerExt/Classes/Ext_PerkFieldMedic.uc b/ServerExt/Classes/Ext_PerkFieldMedic.uc index 177711e..eb6b6e5 100644 --- a/ServerExt/Classes/Ext_PerkFieldMedic.uc +++ b/ServerExt/Classes/Ext_PerkFieldMedic.uc @@ -167,7 +167,6 @@ simulated function float GetSelfHealingSurgePct() defaultproperties { - PerkName="Field Medic" PerkIcon=Texture2D'UI_PerkIcons_TEX.UI_PerkIcon_Medic' DefTraitList.Remove(class'Ext_TraitMedicPistol') DefTraitList.Add(class'Ext_TraitAirborne') diff --git a/ServerExt/Classes/Ext_PerkFirebug.uc b/ServerExt/Classes/Ext_PerkFirebug.uc index 779ed75..358bab2 100644 --- a/ServerExt/Classes/Ext_PerkFirebug.uc +++ b/ServerExt/Classes/Ext_PerkFirebug.uc @@ -2,7 +2,6 @@ Class Ext_PerkFirebug extends Ext_PerkBase; defaultproperties { - PerkName="Firebug" PerkIcon=Texture2D'UI_PerkIcons_TEX.UI_PerkIcon_Firebug' DefTraitList.Add(class'Ext_TraitWPFire') DefTraitList.Add(class'Ext_TraitNapalm') diff --git a/ServerExt/Classes/Ext_PerkGunslinger.uc b/ServerExt/Classes/Ext_PerkGunslinger.uc index 81e80bd..90234dd 100644 --- a/ServerExt/Classes/Ext_PerkGunslinger.uc +++ b/ServerExt/Classes/Ext_PerkGunslinger.uc @@ -35,7 +35,6 @@ simulated function float GetZedTimeModifier( KFWeapon W ) defaultproperties { - PerkName="Gunslinger" DefTraitList.Add(class'Ext_TraitWPGuns') DefTraitList.Add(class'Ext_TraitUberAmmo') DefTraitList.Add(class'Ext_TraitFanfire') diff --git a/ServerExt/Classes/Ext_PerkSWAT.uc b/ServerExt/Classes/Ext_PerkSWAT.uc index 35626a3..ec247fa 100644 --- a/ServerExt/Classes/Ext_PerkSWAT.uc +++ b/ServerExt/Classes/Ext_PerkSWAT.uc @@ -30,7 +30,6 @@ simulated function float GetZedTimeModifier( KFWeapon W ) defaultproperties { - PerkName="SWAT" PerkIcon=Texture2D'UI_PerkIcons_TEX.UI_PerkIcon_SWAT' DefTraitList.Add(class'Ext_TraitWPSWAT') DefTraitList.Add(class'Ext_TraitHeavyArmor') diff --git a/ServerExt/Classes/Ext_PerkSharpshooter.uc b/ServerExt/Classes/Ext_PerkSharpshooter.uc index 21f91ff..d8f2161 100644 --- a/ServerExt/Classes/Ext_PerkSharpshooter.uc +++ b/ServerExt/Classes/Ext_PerkSharpshooter.uc @@ -25,7 +25,6 @@ function float GetStunPowerModifier( optional class DamageType, opti defaultproperties { - PerkName="Sharpshooter" PerkIcon=Texture2D'UI_PerkIcons_TEX.UI_PerkIcon_Sharpshooter' DefTraitList.Add(class'Ext_TraitWPSharp') DefTraitList.Add(class'Ext_TraitRackEmUp') diff --git a/ServerExt/Classes/Ext_PerkSupport.uc b/ServerExt/Classes/Ext_PerkSupport.uc index 6e4c1a2..935e603 100644 --- a/ServerExt/Classes/Ext_PerkSupport.uc +++ b/ServerExt/Classes/Ext_PerkSupport.uc @@ -39,7 +39,6 @@ simulated function bool IsPerforateActive() defaultproperties { - PerkName="Support" PerkIcon=Texture2D'UI_PerkIcons_TEX.UI_PerkIcon_Support' DefTraitList.Add(class'Ext_TraitGrenadeSUpg') DefTraitList.Add(class'Ext_TraitWPSupp') diff --git a/ServerExt/Classes/Ext_PerkSurvivalist.uc b/ServerExt/Classes/Ext_PerkSurvivalist.uc index 7cf3f23..142647a 100644 --- a/ServerExt/Classes/Ext_PerkSurvivalist.uc +++ b/ServerExt/Classes/Ext_PerkSurvivalist.uc @@ -2,7 +2,6 @@ Class Ext_PerkSurvivalist extends Ext_PerkBase; defaultproperties { - PerkName="Survivalist" PerkIcon=Texture2D'UI_PerkIcons_TEX.UI_PerkIcon_Survivalist' DefTraitList.Add(class'Ext_TraitWPSurv') //DefTraitList.Add(class'Ext_TraitHeavyArmor') diff --git a/ServerExt/Classes/Ext_TGroupMonster.uc b/ServerExt/Classes/Ext_TGroupMonster.uc index 1cd6444..05ad8ff 100644 --- a/ServerExt/Classes/Ext_TGroupMonster.uc +++ b/ServerExt/Classes/Ext_TGroupMonster.uc @@ -2,5 +2,4 @@ class Ext_TGroupMonster extends Ext_TGroupBase; defaultproperties { - GroupInfo="Monster" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TGroupRegen.uc b/ServerExt/Classes/Ext_TGroupRegen.uc index 7ea40a8..e552e35 100644 --- a/ServerExt/Classes/Ext_TGroupRegen.uc +++ b/ServerExt/Classes/Ext_TGroupRegen.uc @@ -30,5 +30,4 @@ static final function byte GetMaxLimit( Ext_PerkBase Perk ) defaultproperties { - GroupInfo="Regeneration" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TGroupZEDTime.uc b/ServerExt/Classes/Ext_TGroupZEDTime.uc index 66f513d..cc0afb0 100644 --- a/ServerExt/Classes/Ext_TGroupZEDTime.uc +++ b/ServerExt/Classes/Ext_TGroupZEDTime.uc @@ -2,5 +2,4 @@ class Ext_TGroupZEDTime extends Ext_TGroupBase; defaultproperties { - GroupInfo="ZED Time" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_T_MonsterPRI.uc b/ServerExt/Classes/Ext_T_MonsterPRI.uc index 01530ab..2e34461 100644 --- a/ServerExt/Classes/Ext_T_MonsterPRI.uc +++ b/ServerExt/Classes/Ext_T_MonsterPRI.uc @@ -59,5 +59,4 @@ simulated final function NotifyOwner() defaultproperties { bBot=true - MonsterName="Petty" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitAPShots.uc b/ServerExt/Classes/Ext_TraitAPShots.uc index 26c44a6..b811bee 100644 --- a/ServerExt/Classes/Ext_TraitAPShots.uc +++ b/ServerExt/Classes/Ext_TraitAPShots.uc @@ -23,12 +23,10 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { SupportedPerk=class'Ext_PerkSupport' - TraitName="Armor Piercing Rounds" NumLevels=4 DefLevelCosts(0)=15 DefLevelCosts(1)=30 DefLevelCosts(2)=40 DefLevelCosts(3)=50 DefMinLevel=15 - Description="Greatly increases penetration with perk weapons! The penetration strength is increased by every level in:|Lv1-4: 25%, 30%, 35%, 40%" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitAcidicCompound.uc b/ServerExt/Classes/Ext_TraitAcidicCompound.uc index b6687d4..3dc78c6 100644 --- a/ServerExt/Classes/Ext_TraitAcidicCompound.uc +++ b/ServerExt/Classes/Ext_TraitAcidicCompound.uc @@ -12,8 +12,6 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { SupportedPerk=class'Ext_PerkFieldMedic' - TraitName="Acidic Compound" DefLevelCosts(0)=15 DefMinLevel=5 - Description="When activated medic weapons have a chance to poison zeds." } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitAirborne.uc b/ServerExt/Classes/Ext_TraitAirborne.uc index 6cb2dba..5e0a164 100644 --- a/ServerExt/Classes/Ext_TraitAirborne.uc +++ b/ServerExt/Classes/Ext_TraitAirborne.uc @@ -15,7 +15,6 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { SupportedPerk=class'Ext_PerkFieldMedic' - TraitName="Airborne Agent" DefLevelCosts(0)=20 DefLevelCosts(1)=10 DefLevelCosts(2)=10 @@ -26,5 +25,4 @@ defaultproperties HealRates(3)=0.15 NumLevels=4 DefMinLevel=50 - Description="Give extra health boost and area of heal effect for medic darts during ZED-time,|each level gives extra amount of heal boost at a rate of:|Lv 1-3: +5%, +10%, +20%|Lv 4: +15%, but works outside of ZED-time too!" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitAirborneAgent.uc b/ServerExt/Classes/Ext_TraitAirborneAgent.uc index 5b94e1e..a1269dc 100644 --- a/ServerExt/Classes/Ext_TraitAirborneAgent.uc +++ b/ServerExt/Classes/Ext_TraitAirborneAgent.uc @@ -42,9 +42,7 @@ defaultproperties { SupportedPerk=class'Ext_PerkFieldMedic' TraitGroup=class'Ext_TGroupZEDTime' - TraitName="ZED TIME - Airborne Agent" NumLevels=1 DefLevelCosts(0)=60 DefMinLevel=75 - Description="You release a healing gas during Zed time, healing teammates close by. ||-REQUIREMENT: Grenade Upgrade trait needs to be level 1!" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitAmmoReg.uc b/ServerExt/Classes/Ext_TraitAmmoReg.uc index e862919..2153c36 100644 --- a/ServerExt/Classes/Ext_TraitAmmoReg.uc +++ b/ServerExt/Classes/Ext_TraitAmmoReg.uc @@ -21,12 +21,10 @@ static function CancelEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Lev defaultproperties { TraitGroup=class'Ext_TGroupRegen' - TraitName="Ammo Regeneration" NumLevels=3 DefLevelCosts(0)=10 DefLevelCosts(1)=20 DefLevelCosts(2)=40 - Description="With this trait all your weapons ammo (not grenades) will regen every half minute at rate of:|Lvl1-3: 2%, 5%, 10% of max ammo" RegenValues.Add(0.02) RegenValues.Add(0.05) RegenValues.Add(0.1) diff --git a/ServerExt/Classes/Ext_TraitArmorReg.uc b/ServerExt/Classes/Ext_TraitArmorReg.uc index 7f2890a..aa9da91 100644 --- a/ServerExt/Classes/Ext_TraitArmorReg.uc +++ b/ServerExt/Classes/Ext_TraitArmorReg.uc @@ -18,8 +18,6 @@ static function CancelEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Lev defaultproperties { - TraitName="Armor Regeneration" - Description="With this trait your armor will regen every 10 seconds at a rate of:|Lvl1-3: +7pts, +12pts, +25pts" RegenValues.Empty() RegenValues.Add(7) RegenValues.Add(12) diff --git a/ServerExt/Classes/Ext_TraitArmorRep.uc b/ServerExt/Classes/Ext_TraitArmorRep.uc index bbf630d..b0a06fb 100644 --- a/ServerExt/Classes/Ext_TraitArmorRep.uc +++ b/ServerExt/Classes/Ext_TraitArmorRep.uc @@ -12,12 +12,10 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { SupportedPerk=class'Ext_PerkFieldMedic' - TraitName="Armor Repair" NumLevels=5 DefLevelCosts(0)=10 DefLevelCosts(1)=15 DefLevelCosts(2)=20 DefLevelCosts(3)=25 DefLevelCosts(4)=35 - Description="With this trait you will repair armor as you heal, for each level will repair armor with a rate of:|Lv1-5: +5%, +10%, +15%, +20%, +25%" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitAutoFire.uc b/ServerExt/Classes/Ext_TraitAutoFire.uc index c4f704f..72d65c7 100644 --- a/ServerExt/Classes/Ext_TraitAutoFire.uc +++ b/ServerExt/Classes/Ext_TraitAutoFire.uc @@ -17,7 +17,5 @@ static function CancelEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Lev defaultproperties { - TraitName="Auto-Fire weapons" DefLevelCosts(0)=50 - Description="Make all perked weapons fully automatic." } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitBoomWeld.uc b/ServerExt/Classes/Ext_TraitBoomWeld.uc index e91ea86..3c813ab 100644 --- a/ServerExt/Classes/Ext_TraitBoomWeld.uc +++ b/ServerExt/Classes/Ext_TraitBoomWeld.uc @@ -12,7 +12,5 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { - TraitName="Explosive Weld" DefLevelCosts(0)=30 - Description="Cases welded doors explode when broken by zeds. The more you weld one door, the bigger explosion." } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitBunnyHop.uc b/ServerExt/Classes/Ext_TraitBunnyHop.uc index b5f2b72..4840319 100644 --- a/ServerExt/Classes/Ext_TraitBunnyHop.uc +++ b/ServerExt/Classes/Ext_TraitBunnyHop.uc @@ -13,8 +13,6 @@ static function CancelEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Lev defaultproperties { - TraitName="Bunny Hop" DefLevelCosts(0)=50 DefMinLevel=100 - Description="Enable player to do bunny hopping. It means the more you continiously make successful jumps while moving forward you will keep accelerating in speed." } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitCarryCap.uc b/ServerExt/Classes/Ext_TraitCarryCap.uc index 5e93280..2950436 100644 --- a/ServerExt/Classes/Ext_TraitCarryCap.uc +++ b/ServerExt/Classes/Ext_TraitCarryCap.uc @@ -21,14 +21,12 @@ static function CancelEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Lev defaultproperties { - TraitName="Carry Capacity" NumLevels=5 DefLevelCosts(0)=10 DefLevelCosts(1)=15 DefLevelCosts(2)=20 DefLevelCosts(3)=25 DefLevelCosts(4)=50 - Description="With this trait you can carry more.|Lv1-5: +2,+4,+6,+8,+15 slots" CarryAdds.Add(2) CarryAdds.Add(4) CarryAdds.Add(6) diff --git a/ServerExt/Classes/Ext_TraitContactNade.uc b/ServerExt/Classes/Ext_TraitContactNade.uc index f0696bd..bbd46b0 100644 --- a/ServerExt/Classes/Ext_TraitContactNade.uc +++ b/ServerExt/Classes/Ext_TraitContactNade.uc @@ -11,7 +11,5 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { - TraitName="Explode on Contact" DefLevelCosts(0)=25 - Description="Make dynamites explode on contact with the ZED." } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitDemoAOE.uc b/ServerExt/Classes/Ext_TraitDemoAOE.uc index 18e03ec..df5e401 100644 --- a/ServerExt/Classes/Ext_TraitDemoAOE.uc +++ b/ServerExt/Classes/Ext_TraitDemoAOE.uc @@ -13,12 +13,10 @@ static function CancelEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Lev defaultproperties { SupportedPerk=class'Ext_PerkDemolition' - TraitName="Area Of Damage" NumLevels=4 DefLevelCosts(0)=25 DefLevelCosts(1)=15 DefLevelCosts(2)=30 DefLevelCosts(3)=40 DefMinLevel=15 - Description="Increases the AOE of your demo weapons. The distance is increased by every level in:|Lv1-4: 15%, 20%, 25%, 30%" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitDemoCriticalHit.uc b/ServerExt/Classes/Ext_TraitDemoCriticalHit.uc index 93dc6de..d9e8e17 100644 --- a/ServerExt/Classes/Ext_TraitDemoCriticalHit.uc +++ b/ServerExt/Classes/Ext_TraitDemoCriticalHit.uc @@ -12,8 +12,6 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { SupportedPerk=class'Ext_PerkDemolition' - TraitName="Armor Piercing Rounds" DefLevelCosts(0)=100 DefMinLevel=50 - Description="Demo weapons will do 50% more damage when hitting a critical point!" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitDemoDirectHit.uc b/ServerExt/Classes/Ext_TraitDemoDirectHit.uc index 34861a1..e35f26f 100644 --- a/ServerExt/Classes/Ext_TraitDemoDirectHit.uc +++ b/ServerExt/Classes/Ext_TraitDemoDirectHit.uc @@ -12,8 +12,6 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { SupportedPerk=class'Ext_PerkDemolition' - TraitName="High Impact" DefLevelCosts(0)=65 DefMinLevel=35 - Description="Demo weapons will do 25% more damage on a direct hit!" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitDemoNuke.uc b/ServerExt/Classes/Ext_TraitDemoNuke.uc index b5fb5fa..9a5ec88 100644 --- a/ServerExt/Classes/Ext_TraitDemoNuke.uc +++ b/ServerExt/Classes/Ext_TraitDemoNuke.uc @@ -54,12 +54,10 @@ defaultproperties { SupportedPerk=class'Ext_PerkDemolition' TraitGroup=class'Ext_TGroupZEDTime' - TraitName="ZED Time - Nuke" NumLevels=4 DefLevelCosts(0)=100 DefLevelCosts(1)=150 DefLevelCosts(2)=200 DefLevelCosts(3)=250 DefMinLevel=100 - Description="Demo weapons will spawn a nuke during ZED time. |Each level increases the damage & time of the nuke field. ||-REQUIREMENT: Damage bonus trait needs to have at least 30 points!" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitDemoProfessional.uc b/ServerExt/Classes/Ext_TraitDemoProfessional.uc index fae3380..05f3788 100644 --- a/ServerExt/Classes/Ext_TraitDemoProfessional.uc +++ b/ServerExt/Classes/Ext_TraitDemoProfessional.uc @@ -39,8 +39,6 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { SupportedPerk=class'Ext_PerkDemolition' - TraitName="Demolitions Specialist" DefLevelCosts(0)=100 DefMinLevel=100 - Description="Projectiles from demo weapons will never be duds. ||-REQUIREMENT: Reload bonus trait needs to have at least 30 points!" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitDemoReactiveArmor.uc b/ServerExt/Classes/Ext_TraitDemoReactiveArmor.uc index 8b02971..dc9040f 100644 --- a/ServerExt/Classes/Ext_TraitDemoReactiveArmor.uc +++ b/ServerExt/Classes/Ext_TraitDemoReactiveArmor.uc @@ -12,8 +12,6 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { SupportedPerk=class'Ext_PerkDemolition' - TraitName="Reactive Armor" DefLevelCosts(0)=25 DefMinLevel=45 - Description="When near death you will explode and leave yourself with 5 health" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitDireReload.uc b/ServerExt/Classes/Ext_TraitDireReload.uc index 6943234..c51db38 100644 --- a/ServerExt/Classes/Ext_TraitDireReload.uc +++ b/ServerExt/Classes/Ext_TraitDireReload.uc @@ -12,7 +12,5 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { SupportedPerk=class'Ext_PerkSharpshooter' - TraitName="Dire reloader" DefLevelCosts(0)=35 - Description="This trait will make you reload much faster when you have less then 40 health." } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitDoorRepair.uc b/ServerExt/Classes/Ext_TraitDoorRepair.uc index 16ffcef..f49d6fd 100644 --- a/ServerExt/Classes/Ext_TraitDoorRepair.uc +++ b/ServerExt/Classes/Ext_TraitDoorRepair.uc @@ -13,9 +13,7 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { SupportedPerk=class'Ext_PerkSupport' - TraitName="Door Repair" NumLevels=1 DefLevelCosts(0)=30 DefMinLevel=25 - Description="Allows you to repair doors using the welder." } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitDuracell.uc b/ServerExt/Classes/Ext_TraitDuracell.uc index 5a1b48e..15968ad 100644 --- a/ServerExt/Classes/Ext_TraitDuracell.uc +++ b/ServerExt/Classes/Ext_TraitDuracell.uc @@ -15,13 +15,11 @@ static function CancelEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Lev defaultproperties { - TraitName="Duracell Batteries" NumLevels=4 DefLevelCosts(0)=5 DefLevelCosts(1)=10 DefLevelCosts(2)=20 DefLevelCosts(3)=25 - Description="With this trait your flashlight batteries becomes extra durable.|Lv1-4: +30,+100,+300,+1000% lifetime" BatteryCharges.Add(0.77) BatteryCharges.Add(0.5) BatteryCharges.Add(0.333) diff --git a/ServerExt/Classes/Ext_TraitEliteReload.uc b/ServerExt/Classes/Ext_TraitEliteReload.uc index 4788d7a..1537d9a 100644 --- a/ServerExt/Classes/Ext_TraitEliteReload.uc +++ b/ServerExt/Classes/Ext_TraitEliteReload.uc @@ -11,8 +11,6 @@ static function CancelEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Lev defaultproperties { - TraitName="Tactical Reload" DefLevelCosts(0)=50 - Description="With this trait you will have extra speedy tactical reload moves for your perked weapons." DefMinLevel=50 } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitEnemyHP.uc b/ServerExt/Classes/Ext_TraitEnemyHP.uc index 98ca062..feccfeb 100644 --- a/ServerExt/Classes/Ext_TraitEnemyHP.uc +++ b/ServerExt/Classes/Ext_TraitEnemyHP.uc @@ -11,11 +11,9 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { - TraitName="Enemy Health Bar" NumLevels=4 DefLevelCosts(0)=25 DefLevelCosts(1)=15 DefLevelCosts(2)=20 DefLevelCosts(3)=30 - Description="This trait lets you see enemy health bars. The distance is increased by every level in:|Lv1-4: 5m, 7m, 10m, 16m" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitFanfire.uc b/ServerExt/Classes/Ext_TraitFanfire.uc index ce05902..4678b72 100644 --- a/ServerExt/Classes/Ext_TraitFanfire.uc +++ b/ServerExt/Classes/Ext_TraitFanfire.uc @@ -13,7 +13,5 @@ defaultproperties { SupportedPerk=class'Ext_PerkGunslinger' TraitGroup=class'Ext_TGroupZEDTime' - TraitName="ZED TIME - Fanfire" DefLevelCosts(0)=30 - Description="Make perked weapons fire at normal firerate during ZED-time." } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitFireExplode.uc b/ServerExt/Classes/Ext_TraitFireExplode.uc index 3f5b0e7..c2178ff 100644 --- a/ServerExt/Classes/Ext_TraitFireExplode.uc +++ b/ServerExt/Classes/Ext_TraitFireExplode.uc @@ -11,7 +11,5 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { - TraitName="Fire Explosion" DefLevelCosts(0)=50 - Description="Make zombies sometimes explode when burned to death." } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitFireRange.uc b/ServerExt/Classes/Ext_TraitFireRange.uc index 5e2ba30..9c6ea98 100644 --- a/ServerExt/Classes/Ext_TraitFireRange.uc +++ b/ServerExt/Classes/Ext_TraitFireRange.uc @@ -11,7 +11,5 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { - TraitName="Extra Fire Range" DefLevelCosts(0)=35 - Description="Add some additional fire range to flamethrowers." } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitGhost.uc b/ServerExt/Classes/Ext_TraitGhost.uc index 5e4c6dc..68f23e2 100644 --- a/ServerExt/Classes/Ext_TraitGhost.uc +++ b/ServerExt/Classes/Ext_TraitGhost.uc @@ -26,9 +26,7 @@ defaultproperties bHighPriorityDeath=true NumLevels=2 TraitData=class'Ext_T_GhostHelper' - TraitName="Redemption" DefLevelCosts(0)=30 DefLevelCosts(1)=30 DefMinLevel=30 - Description="With this trait you will turn into ghost when you die and redeem at another spot in the map.|Level 1: Works 50 % of the time, but never again until you respawned after death.|Level 2: Always works, and it lets you redeem again after 3 minutes" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitGrenadeCap.uc b/ServerExt/Classes/Ext_TraitGrenadeCap.uc index 1295d98..dac0f82 100644 --- a/ServerExt/Classes/Ext_TraitGrenadeCap.uc +++ b/ServerExt/Classes/Ext_TraitGrenadeCap.uc @@ -14,13 +14,11 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { - TraitName="Grenade Capacity" DefLevelCosts(0)=40 DefLevelCosts(1)=55 DefLevelCosts(2)=70 DefLevelCosts(3)=90 DefLevelCosts(4)=150 - Description="With this trait you can carry more grenades.|Lv1-5: +1,+2,+3,+5,+8 grenades" CarryAdds(0)=1 CarryAdds(1)=2 CarryAdds(2)=3 diff --git a/ServerExt/Classes/Ext_TraitGrenadeSUpg.uc b/ServerExt/Classes/Ext_TraitGrenadeSUpg.uc index 831a9a8..9b66645 100644 --- a/ServerExt/Classes/Ext_TraitGrenadeSUpg.uc +++ b/ServerExt/Classes/Ext_TraitGrenadeSUpg.uc @@ -12,8 +12,6 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { - TraitName="Grenade Upgrade" DefLevelCosts(0)=50 - Description="With this upgrade you will upgrade to your perk specific grenades.|Level 1: SUPER grenade" DefMinLevel=50 } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitGrenadeUpg.uc b/ServerExt/Classes/Ext_TraitGrenadeUpg.uc index 1542115..5191aa4 100644 --- a/ServerExt/Classes/Ext_TraitGrenadeUpg.uc +++ b/ServerExt/Classes/Ext_TraitGrenadeUpg.uc @@ -20,9 +20,7 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { - TraitName="Grenade Upgrade" NumLevels=2 DefLevelCosts(0)=5 DefLevelCosts(1)=50 - Description="With this upgrade you will upgrade to your perk specific grenades.|Level 1: Normal perk grenade|Level 2: Perk SUPER grenade (REQUIRES perk level 50 to buy)!" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitHealthReg.uc b/ServerExt/Classes/Ext_TraitHealthReg.uc index 5fcf46e..44a59ea 100644 --- a/ServerExt/Classes/Ext_TraitHealthReg.uc +++ b/ServerExt/Classes/Ext_TraitHealthReg.uc @@ -21,12 +21,10 @@ static function CancelEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Lev defaultproperties { TraitGroup=class'Ext_TGroupRegen' - TraitName="Health Regeneration" NumLevels=3 DefLevelCosts(0)=10 DefLevelCosts(1)=20 DefLevelCosts(2)=40 - Description="With this trait your health will regen every 10 seconds at a rate of:|Lvl1-3: +5HP, +10HP, +20HP" RegenValues.Add(5) RegenValues.Add(10) RegenValues.Add(20) diff --git a/ServerExt/Classes/Ext_TraitHeavyArmor.uc b/ServerExt/Classes/Ext_TraitHeavyArmor.uc index 2e67d49..90ab413 100644 --- a/ServerExt/Classes/Ext_TraitHeavyArmor.uc +++ b/ServerExt/Classes/Ext_TraitHeavyArmor.uc @@ -19,11 +19,9 @@ static function ApplyEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Leve defaultproperties { - TraitName="Heavy Armor" NumLevels=3 DefLevelCosts(0)=50 DefLevelCosts(1)=20 DefLevelCosts(2)=60 DefMinLevel=50 - Description="Makes your armor stop all damage (except for Siren scream and fall damage).|Level 2 makes you in addition spawn with 50 points of armor.|Level 3 makes you spawn with full armor." } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitKnockback.uc b/ServerExt/Classes/Ext_TraitKnockback.uc index da3f8d2..9c85c81 100644 --- a/ServerExt/Classes/Ext_TraitKnockback.uc +++ b/ServerExt/Classes/Ext_TraitKnockback.uc @@ -13,14 +13,12 @@ static function CancelEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Lev defaultproperties { - TraitName="Knockback Resistance" NumLevels=4 DefLevelCosts(0)=30 DefLevelCosts(1)=30 DefLevelCosts(2)=40 DefLevelCosts(3)=60 DefMinLevel=70 - Description="Reduce the amount of knockback zeds do to you in a rate of:|Lvl1-4: -20%, -50%, -70%, -90%" ChanceValues(0)=0.8 ChanceValues(1)=0.5 diff --git a/ServerExt/Classes/Ext_TraitMachineGunner.uc b/ServerExt/Classes/Ext_TraitMachineGunner.uc index 07f8624..2936b02 100644 --- a/ServerExt/Classes/Ext_TraitMachineGunner.uc +++ b/ServerExt/Classes/Ext_TraitMachineGunner.uc @@ -31,9 +31,7 @@ defaultproperties { SupportedPerk=class'Ext_PerkCommando' TraitGroup=class'Ext_TGroupZEDTime' - TraitName="ZED TIME - Machine Gunner" NumLevels=1 DefLevelCosts(0)=60 DefMinLevel=55 - Description="During Zed time, you do 3% more damage with perks weapons and shoot 3x faster with all guns!" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitMedBoost.uc b/ServerExt/Classes/Ext_TraitMedBoost.uc index 1f2794f..e386fea 100644 --- a/ServerExt/Classes/Ext_TraitMedBoost.uc +++ b/ServerExt/Classes/Ext_TraitMedBoost.uc @@ -23,7 +23,6 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { SupportedPerk=class'Ext_PerkFieldMedic' - TraitName="Adrenaline Shot" NumLevels=5 DefLevelCosts(0)=35 DefLevelCosts(1)=10 @@ -31,5 +30,4 @@ defaultproperties DefLevelCosts(3)=30 DefLevelCosts(4)=40 DefMinLevel=25 - Description="Healing players will increase there speed 10% up to 30%. The percent is increased by every level in:|Lv1-5: 10%, 15%, 20%, 25%, 30%" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitMedDamBoost.uc b/ServerExt/Classes/Ext_TraitMedDamBoost.uc index e579393..a51cc51 100644 --- a/ServerExt/Classes/Ext_TraitMedDamBoost.uc +++ b/ServerExt/Classes/Ext_TraitMedDamBoost.uc @@ -23,11 +23,9 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { SupportedPerk=class'Ext_PerkFieldMedic' - TraitName="Focus Injection" NumLevels=3 DefLevelCosts(0)=40 DefLevelCosts(1)=50 DefLevelCosts(2)=60 DefMinLevel=85 - Description="Healing players will increase there damage up to 15%. The percent is increased by every level in:|Lv1-3: 5%, 10%, 15%" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitMedShield.uc b/ServerExt/Classes/Ext_TraitMedShield.uc index e7cac1a..1131594 100644 --- a/ServerExt/Classes/Ext_TraitMedShield.uc +++ b/ServerExt/Classes/Ext_TraitMedShield.uc @@ -23,7 +23,6 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { SupportedPerk=class'Ext_PerkFieldMedic' - TraitName="Coagulant Booster" NumLevels=5 DefLevelCosts(0)=35 DefLevelCosts(1)=10 @@ -31,5 +30,4 @@ defaultproperties DefLevelCosts(3)=30 DefLevelCosts(4)=40 DefMinLevel=100 - Description="Healing players will increase there damage resistance up to 30%. The percent is increased by every level in:|Lv1-5: 10%, 15%, 20%, 25%, 30%" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitMedicPistol.uc b/ServerExt/Classes/Ext_TraitMedicPistol.uc index 2437dd0..09b602d 100644 --- a/ServerExt/Classes/Ext_TraitMedicPistol.uc +++ b/ServerExt/Classes/Ext_TraitMedicPistol.uc @@ -8,7 +8,5 @@ static function AddDefaultInventory( KFPawn Player, Ext_PerkBase Perk, byte Leve defaultproperties { - TraitName="Medic Pistol" DefLevelCosts(0)=20 - Description="Spawn with a medic pistol instead of standard 9mm." } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitNapalm.uc b/ServerExt/Classes/Ext_TraitNapalm.uc index 26a8151..f960959 100644 --- a/ServerExt/Classes/Ext_TraitNapalm.uc +++ b/ServerExt/Classes/Ext_TraitNapalm.uc @@ -11,7 +11,5 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { - TraitName="Napalm" DefLevelCosts(0)=35 - Description="Make zombies lit each other on fire." } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitNightvision.uc b/ServerExt/Classes/Ext_TraitNightvision.uc index c7aaff3..a66f276 100644 --- a/ServerExt/Classes/Ext_TraitNightvision.uc +++ b/ServerExt/Classes/Ext_TraitNightvision.uc @@ -11,8 +11,6 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { - TraitName="Nightvision" NumLevels=1 DefLevelCosts(0)=25 - Description="Spawn with nightvision goggles." } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitPenetrator.uc b/ServerExt/Classes/Ext_TraitPenetrator.uc index 95468ce..fabd526 100644 --- a/ServerExt/Classes/Ext_TraitPenetrator.uc +++ b/ServerExt/Classes/Ext_TraitPenetrator.uc @@ -43,9 +43,7 @@ defaultproperties { SupportedPerk=class'Ext_PerkSupport' TraitGroup=class'Ext_TGroupZEDTime' - TraitName="ZED TIME - Penetrator" NumLevels=1 DefLevelCosts(0)=50 DefMinLevel=65 - Description="During Zed time, your perk weapons penetrate through any targets they hit! ||-REQUIREMENT: Armor Piercing Shots trait needs to be level 1!" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitRackEmUp.uc b/ServerExt/Classes/Ext_TraitRackEmUp.uc index c8bac92..6ad0f5f 100644 --- a/ServerExt/Classes/Ext_TraitRackEmUp.uc +++ b/ServerExt/Classes/Ext_TraitRackEmUp.uc @@ -14,7 +14,6 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { SupportedPerk=class'Ext_PerkRhythmPerkBase' - TraitName="Rack 'em up" DefLevelCosts(0)=10 DefLevelCosts(1)=15 DefLevelCosts(2)=20 @@ -26,5 +25,4 @@ defaultproperties ComboSize.Add(16) ComboSize.Add(28) NumLevels=5 - Description="Deals more damage to each consequtive headshot done to zeds by +7.5%.|For each level you can make a bigger combo and deal more damage in a rate of:|Lv1-5: +30%, +60%, +90%, +120%, +210%" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitRagdoll.uc b/ServerExt/Classes/Ext_TraitRagdoll.uc index 6f1af32..9c931f8 100644 --- a/ServerExt/Classes/Ext_TraitRagdoll.uc +++ b/ServerExt/Classes/Ext_TraitRagdoll.uc @@ -15,13 +15,11 @@ static function CancelEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Lev defaultproperties { - TraitName="Knockout Resistance" NumLevels=3 DefLevelCosts(0)=30 DefLevelCosts(1)=30 DefLevelCosts(2)=40 DefMinLevel=100 - Description="Prevent you from being ragdolled. For each level you lower the chance of being knocked out by:|Lvl1-3: 20%, 50%, 80%" ChanceValues(0)=0.2 ChanceValues(1)=0.5 diff --git a/ServerExt/Classes/Ext_TraitRanger.uc b/ServerExt/Classes/Ext_TraitRanger.uc index 26d52d8..19cd020 100644 --- a/ServerExt/Classes/Ext_TraitRanger.uc +++ b/ServerExt/Classes/Ext_TraitRanger.uc @@ -13,7 +13,5 @@ defaultproperties { SupportedPerk=class'Ext_PerkSharpshooter' TraitGroup=class'Ext_TGroupZEDTime' - TraitName="ZED TIME - Ranger" DefLevelCosts(0)=40 - Description="This will make you effectively stun enemies with headshots during ZED-time." } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitRapidAssault.uc b/ServerExt/Classes/Ext_TraitRapidAssault.uc index 899e20c..92713d6 100644 --- a/ServerExt/Classes/Ext_TraitRapidAssault.uc +++ b/ServerExt/Classes/Ext_TraitRapidAssault.uc @@ -13,7 +13,5 @@ defaultproperties { SupportedPerk=class'Ext_PerkSWAT' TraitGroup=class'Ext_TGroupZEDTime' - TraitName="ZED TIME - Rapid Assault" DefLevelCosts(0)=30 - Description="Gives player unlimited ammunition for perked weapons during ZED-time and allows them to fire in realtime." } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitRetali.uc b/ServerExt/Classes/Ext_TraitRetali.uc index cf1d4e7..6c6f503 100644 --- a/ServerExt/Classes/Ext_TraitRetali.uc +++ b/ServerExt/Classes/Ext_TraitRetali.uc @@ -16,8 +16,6 @@ static function bool PreventDeath( KFPawn_Human Player, Controller Instigator, C defaultproperties { - TraitName="Retaliation" DefLevelCosts(0)=50 DefMinLevel=40 - Description="End your life with a BOOM!" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitSWATEnforcer.uc b/ServerExt/Classes/Ext_TraitSWATEnforcer.uc index 1656369..a90bc78 100644 --- a/ServerExt/Classes/Ext_TraitSWATEnforcer.uc +++ b/ServerExt/Classes/Ext_TraitSWATEnforcer.uc @@ -21,8 +21,6 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { - TraitName="ZED TIME - SWAT Enforcer" TraitGroup=class'Ext_TGroupZEDTime' DefLevelCosts(0)=50 - Description="This trait makes you move at normal speed and allows you to knock down zeds by bumping into them during ZED-time." } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitSirenResistance.uc b/ServerExt/Classes/Ext_TraitSirenResistance.uc index 58ddfd7..771ca30 100644 --- a/ServerExt/Classes/Ext_TraitSirenResistance.uc +++ b/ServerExt/Classes/Ext_TraitSirenResistance.uc @@ -11,8 +11,6 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { - TraitName="Siren Resistance" DefLevelCosts(0)=50 - DefMinLevel=75 - Description="Make all your projectiles resistant to siren screams." + DefMinLevel=75 } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitSpartan.uc b/ServerExt/Classes/Ext_TraitSpartan.uc index 7fa8f64..fea372e 100644 --- a/ServerExt/Classes/Ext_TraitSpartan.uc +++ b/ServerExt/Classes/Ext_TraitSpartan.uc @@ -19,12 +19,10 @@ defaultproperties { SupportedPerk=class'Ext_PerkBerserker' TraitGroup=class'Ext_TGroupZEDTime' - TraitName="ZED TIME - Spartan!" NumLevels=3 DefLevelCosts(0)=50 DefLevelCosts(1)=40 DefLevelCosts(2)=80 - Description="This trait lets you move at normal speed and attack faster in ZED-time.|Lv1-3: +50,+120,+300% atk speed" AtkRates.Add(1.5) AtkRates.Add(2.2) AtkRates.Add(4.0) diff --git a/ServerExt/Classes/Ext_TraitSupply.uc b/ServerExt/Classes/Ext_TraitSupply.uc index a904556..b15fb03 100644 --- a/ServerExt/Classes/Ext_TraitSupply.uc +++ b/ServerExt/Classes/Ext_TraitSupply.uc @@ -17,9 +17,7 @@ static function PlayerDied( Ext_PerkBase Perk, byte Level, optional Ext_TraitDat defaultproperties { - TraitName="Ammunition Supply" DefLevelCosts(0)=50 - Description="With this trait you can supply ammunition for your team mates. For each use you will receive a little bit of XP points." TraitData=class'Ext_TraitSupplyData' SupplyIcon=Texture2D'UI_World_TEX.Support_Supplier_HUD' diff --git a/ServerExt/Classes/Ext_TraitSupplyGren.uc b/ServerExt/Classes/Ext_TraitSupplyGren.uc index 5531547..83e7198 100644 --- a/ServerExt/Classes/Ext_TraitSupplyGren.uc +++ b/ServerExt/Classes/Ext_TraitSupplyGren.uc @@ -6,9 +6,6 @@ static function ApplyEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Leve } defaultproperties -{ - TraitName="Grenade Supply" - Description="With this trait you can supply grenades for your team mates. For each use you will receive a little bit of XP points." - +{ SupplyIcon=Texture2D'UI_World_TEX.Demolitionist_Supplier_HUD' } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitTacticalMove.uc b/ServerExt/Classes/Ext_TraitTacticalMove.uc index 3eab0ae..ffe2c99 100644 --- a/ServerExt/Classes/Ext_TraitTacticalMove.uc +++ b/ServerExt/Classes/Ext_TraitTacticalMove.uc @@ -12,10 +12,8 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { SupportedPerk=class'Ext_PerkSWAT' - TraitName="Tactical Movement" NumLevels=3 DefLevelCosts(0)=30 DefLevelCosts(1)=35 DefLevelCosts(2)=50 - Description="This trait makes you move faster while in iron sight and crouched at a rate of:|Lv 1-3: +30%,+50%,+100%" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitTactician.uc b/ServerExt/Classes/Ext_TraitTactician.uc index 6a2a916..2d689ac 100644 --- a/ServerExt/Classes/Ext_TraitTactician.uc +++ b/ServerExt/Classes/Ext_TraitTactician.uc @@ -40,9 +40,7 @@ defaultproperties { SupportedPerk=class'Ext_PerkCommando' TraitGroup=class'Ext_TGroupZEDTime' - TraitName="ZED TIME - Tactician" NumLevels=1 DefLevelCosts(0)=30 DefMinLevel=35 - Description="During Zed time, you reload perk weapons at full speed and switch perk weapons twice as fast! ||-REQUIREMENT: Damage bonus trait needs to have at least 30 points!" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitToxicDart.uc b/ServerExt/Classes/Ext_TraitToxicDart.uc index 60213c7..1c6c0eb 100644 --- a/ServerExt/Classes/Ext_TraitToxicDart.uc +++ b/ServerExt/Classes/Ext_TraitToxicDart.uc @@ -14,7 +14,6 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { - TraitName="Toxic Darts" DefLevelCosts(0)=25 DefLevelCosts(1)=25 DefLevelCosts(2)=30 @@ -22,5 +21,4 @@ defaultproperties DartDamages(1)=35 DartDamages(2)=70 NumLevels=3 - Description="Make your healing darts poison the ZEDs, the damage is increased in a rate of:|Lv 1-3: +15, +35, +70 dmg" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitUberAmmo.uc b/ServerExt/Classes/Ext_TraitUberAmmo.uc index f203908..e9cfda1 100644 --- a/ServerExt/Classes/Ext_TraitUberAmmo.uc +++ b/ServerExt/Classes/Ext_TraitUberAmmo.uc @@ -13,7 +13,5 @@ defaultproperties { SupportedPerk=class'Ext_PerkGunslinger' TraitGroup=class'Ext_TGroupZEDTime' - TraitName="ZED TIME - Uber Ammo" DefLevelCosts(0)=30 - Description="Gives player unlimited ammunition for perked weapons during ZED-time." } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitUnCloak.uc b/ServerExt/Classes/Ext_TraitUnCloak.uc index dd0d323..da18f12 100644 --- a/ServerExt/Classes/Ext_TraitUnCloak.uc +++ b/ServerExt/Classes/Ext_TraitUnCloak.uc @@ -20,14 +20,12 @@ static function CancelEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Lev defaultproperties { - TraitName="Cloak Detection" NumLevels=5 DefLevelCosts(0)=5 DefLevelCosts(1)=7 DefLevelCosts(2)=10 DefLevelCosts(3)=15 DefLevelCosts(4)=25 - Description="Detect cloaked stalkers with radius for each level:|Lv1-5: 3m, 5m, 7m, 10m, 15m" RadiusValues.Add(300) RadiusValues.Add(500) RadiusValues.Add(700) diff --git a/ServerExt/Classes/Ext_TraitUnGrab.uc b/ServerExt/Classes/Ext_TraitUnGrab.uc index 69a6c56..17c0438 100644 --- a/ServerExt/Classes/Ext_TraitUnGrab.uc +++ b/ServerExt/Classes/Ext_TraitUnGrab.uc @@ -11,7 +11,5 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { - TraitName="Fake Out" DefLevelCosts(0)=30 - Description="With this trait you are ungrabbable by the zeds." } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitVampire.uc b/ServerExt/Classes/Ext_TraitVampire.uc index eea8fca..4359a0e 100644 --- a/ServerExt/Classes/Ext_TraitVampire.uc +++ b/ServerExt/Classes/Ext_TraitVampire.uc @@ -14,7 +14,6 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { SupportedPerk=class'Ext_PerkBerserker' - TraitName="Vampire" NumLevels=4 DefLevelCosts(0)=25 DefLevelCosts(1)=15 @@ -24,5 +23,4 @@ defaultproperties RegenRate.Add(0.03) RegenRate.Add(0.04) RegenRate.Add(0.06) - Description="With this trait you will recover some of your health by every kill (with a melee weapon), in a rate of:|Lv1-4: +2%, +3%, +4%, +6%" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitWPBers.uc b/ServerExt/Classes/Ext_TraitWPBers.uc index 4bd89cc..dfc8567 100644 --- a/ServerExt/Classes/Ext_TraitWPBers.uc +++ b/ServerExt/Classes/Ext_TraitWPBers.uc @@ -1,10 +1,7 @@ Class Ext_TraitWPBers extends Ext_TraitWeapons; defaultproperties -{ - TraitName="Berserker Weapon Loadout" - Description="This will grant you berserker weapon loadout to spawn with.|Level 1: Pulverizer|Level 2: Nailgun|Level 3: Sawblade Gun|Level 4: All 3" - +{ LevelEffects(0)=(LoadoutClasses=(class'KFWeap_Blunt_Pulverizer')) LevelEffects(1)=(LoadoutClasses=(class'KFWeap_Shotgun_Nailgun')) LevelEffects(2)=(LoadoutClasses=(class'KFWeap_Eviscerator')) diff --git a/ServerExt/Classes/Ext_TraitWPComm.uc b/ServerExt/Classes/Ext_TraitWPComm.uc index 722d9de..554aed7 100644 --- a/ServerExt/Classes/Ext_TraitWPComm.uc +++ b/ServerExt/Classes/Ext_TraitWPComm.uc @@ -2,9 +2,6 @@ Class Ext_TraitWPComm extends Ext_TraitWeapons; defaultproperties { - TraitName="Commando Weapon Loadout" - Description="This will grant you commando weapon loadout to spawn with.|Level 1: Bullpup|Level 2: AK12|Level 3: SCAR|Level 4: All 3" - LevelEffects(0)=(LoadoutClasses=(class'KFWeap_AssaultRifle_Bullpup')) LevelEffects(1)=(LoadoutClasses=(class'KFWeap_AssaultRifle_AK12')) LevelEffects(2)=(LoadoutClasses=(class'KFWeap_AssaultRifle_SCAR')) diff --git a/ServerExt/Classes/Ext_TraitWPDemo.uc b/ServerExt/Classes/Ext_TraitWPDemo.uc index 6a71a57..3403a4c 100644 --- a/ServerExt/Classes/Ext_TraitWPDemo.uc +++ b/ServerExt/Classes/Ext_TraitWPDemo.uc @@ -1,10 +1,7 @@ Class Ext_TraitWPDemo extends Ext_TraitWeapons; defaultproperties -{ - TraitName="Demolitionist Weapon Loadout" - Description="This will grant you demolitionist weapon loadout to spawn with.|Level 1: C4|Level 2: M79 Grenade Launcher|Level 3: RPG Rocket Launcher|Level 4: All 3" - +{ LevelEffects(0)=(LoadoutClasses=(class'KFWeap_Thrown_C4')) LevelEffects(1)=(LoadoutClasses=(class'KFWeap_GrenadeLauncher_M79')) LevelEffects(2)=(LoadoutClasses=(class'KFWeap_RocketLauncher_RPG7')) diff --git a/ServerExt/Classes/Ext_TraitWPFire.uc b/ServerExt/Classes/Ext_TraitWPFire.uc index 44da085..9b37839 100644 --- a/ServerExt/Classes/Ext_TraitWPFire.uc +++ b/ServerExt/Classes/Ext_TraitWPFire.uc @@ -1,10 +1,7 @@ Class Ext_TraitWPFire extends Ext_TraitWeapons; defaultproperties -{ - TraitName="Firebug Weapon Loadout" - Description="This will grant you firebug weapon loadout to spawn with.|Level 1: Dragons Breath|Level 2: Flamethrower|Level 3: Microwave Gun|Level 4: All 3" - +{ LevelEffects(0)=(LoadoutClasses=(class'KFWeap_Shotgun_DragonsBreath')) LevelEffects(1)=(LoadoutClasses=(class'KFWeap_Flame_Flamethrower')) LevelEffects(2)=(LoadoutClasses=(class'KFWeap_Beam_Microwave')) diff --git a/ServerExt/Classes/Ext_TraitWPGuns.uc b/ServerExt/Classes/Ext_TraitWPGuns.uc index 7c689ad..1a40076 100644 --- a/ServerExt/Classes/Ext_TraitWPGuns.uc +++ b/ServerExt/Classes/Ext_TraitWPGuns.uc @@ -2,9 +2,6 @@ Class Ext_TraitWPGuns extends Ext_TraitWeapons; defaultproperties { - TraitName="Gunslinger Weapon Loadout" - Description="This will grant you gunslinger weapon loadout to spawn with.|Level 1: M1911 Pistol|Level 2: Desert Eagle|Level 3: Magnum Revolver|Level 4: All 3 with dualies" - LevelEffects(0)=(LoadoutClasses=(class'KFWeap_Pistol_Colt1911')) LevelEffects(1)=(LoadoutClasses=(class'KFWeap_Pistol_Deagle')) LevelEffects(2)=(LoadoutClasses=(class'KFWeap_Revolver_SW500')) diff --git a/ServerExt/Classes/Ext_TraitWPMedic.uc b/ServerExt/Classes/Ext_TraitWPMedic.uc index a7f7d4a..dd5c577 100644 --- a/ServerExt/Classes/Ext_TraitWPMedic.uc +++ b/ServerExt/Classes/Ext_TraitWPMedic.uc @@ -2,9 +2,6 @@ Class Ext_TraitWPMedic extends Ext_TraitWeapons; defaultproperties { - TraitName="Medic Weapon Loadout" - Description="This will grant you Field Medic weapon loadout to spawn with.|Level 1: SMG|Level 2: Shotgun|Level 3: Assault Rifle|Level 4: All 3" - LevelEffects(0)=(LoadoutClasses=(class'KFWeap_SMG_Medic')) LevelEffects(1)=(LoadoutClasses=(class'KFWeap_Shotgun_Medic')) LevelEffects(2)=(LoadoutClasses=(class'KFWeap_AssaultRifle_Medic')) diff --git a/ServerExt/Classes/Ext_TraitWPSWAT.uc b/ServerExt/Classes/Ext_TraitWPSWAT.uc index 997770b..3768aaa 100644 --- a/ServerExt/Classes/Ext_TraitWPSWAT.uc +++ b/ServerExt/Classes/Ext_TraitWPSWAT.uc @@ -2,9 +2,6 @@ Class Ext_TraitWPSWAT extends Ext_TraitWeapons; defaultproperties { - TraitName="SWAT Weapon Loadout" - Description="This will grant you SWAT weapon loadout to spawn with.|Level 1: MP5 RAS|Level 2: P90|Level 3: Kriss|Level 4: All 3" - LevelEffects(0)=(LoadoutClasses=(class'KFWeap_SMG_MP5RAS')) LevelEffects(1)=(LoadoutClasses=(class'KFWeap_SMG_P90')) LevelEffects(2)=(LoadoutClasses=(class'KFWeap_SMG_Kriss')) diff --git a/ServerExt/Classes/Ext_TraitWPSharp.uc b/ServerExt/Classes/Ext_TraitWPSharp.uc index d19547e..c7e742c 100644 --- a/ServerExt/Classes/Ext_TraitWPSharp.uc +++ b/ServerExt/Classes/Ext_TraitWPSharp.uc @@ -2,9 +2,6 @@ Class Ext_TraitWPSharp extends Ext_TraitWeapons; defaultproperties { - TraitName="Sharpshooter Weapon Loadout" - Description="This will grant you sharpshooter weapon loadout to spawn with.|Level 1: Crossbow|Level 2: M14 EBR|Level 3: Railgun|Level 4: All 3" - LevelEffects(0)=(LoadoutClasses=(class'KFWeap_Bow_Crossbow')) LevelEffects(1)=(LoadoutClasses=(class'KFWeap_Rifle_M14EBR')) LevelEffects(2)=(LoadoutClasses=(class'KFWeap_Rifle_RailGun')) diff --git a/ServerExt/Classes/Ext_TraitWPSupp.uc b/ServerExt/Classes/Ext_TraitWPSupp.uc index f9cee2d..8111b8c 100644 --- a/ServerExt/Classes/Ext_TraitWPSupp.uc +++ b/ServerExt/Classes/Ext_TraitWPSupp.uc @@ -2,9 +2,6 @@ Class Ext_TraitWPSupp extends Ext_TraitWeapons; defaultproperties { - TraitName="Support Weapon Loadout" - Description="This will grant you support weapon loadout to spawn with.|Level 1: M4 Shotgun|Level 2: Boomstick|Level 3: AA12|Level 4: All 3" - LevelEffects(0)=(LoadoutClasses=(class'KFWeap_Shotgun_M4')) LevelEffects(1)=(LoadoutClasses=(class'KFWeap_Shotgun_DoubleBarrel')) LevelEffects(2)=(LoadoutClasses=(class'KFWeap_Shotgun_AA12')) diff --git a/ServerExt/Classes/Ext_TraitWPSurv.uc b/ServerExt/Classes/Ext_TraitWPSurv.uc index 128b32e..9ec82e6 100644 --- a/ServerExt/Classes/Ext_TraitWPSurv.uc +++ b/ServerExt/Classes/Ext_TraitWPSurv.uc @@ -2,9 +2,6 @@ Class Ext_TraitWPSurv extends Ext_TraitWeapons; defaultproperties { - TraitName="Survivalist Weapon Loadout" - Description="This will grant you Survivalist weapon loadout to spawn with.|Level 1: Dragons Breath|Level 2: M16M203 Assault Rifle|Level 3: Medic Assault Rifle|Level 4: All 3" - LevelEffects(0)=(LoadoutClasses=(class'KFWeap_Shotgun_DragonsBreath')) LevelEffects(1)=(LoadoutClasses=(class'KFWeap_AssaultRifle_M16M203')) LevelEffects(2)=(LoadoutClasses=(class'KFWeap_AssaultRifle_Medic')) diff --git a/ServerExt/Classes/Ext_TraitZED_Damage.uc b/ServerExt/Classes/Ext_TraitZED_Damage.uc index 69df11e..9c8f474 100644 --- a/ServerExt/Classes/Ext_TraitZED_Damage.uc +++ b/ServerExt/Classes/Ext_TraitZED_Damage.uc @@ -21,8 +21,6 @@ static function CancelEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Lev defaultproperties { NumLevels=5 - TraitName="Monster Damage" - Description="This trait will scale how much damage your helper ZED will deal:|Lv1-5: +10%, +25%, +50%, +100%, +200%||-Requires Monster Tongue trait." DefLevelCosts(0)=10 DefLevelCosts(1)=20 DefLevelCosts(2)=30 diff --git a/ServerExt/Classes/Ext_TraitZED_Health.uc b/ServerExt/Classes/Ext_TraitZED_Health.uc index ca5a833..249f8a3 100644 --- a/ServerExt/Classes/Ext_TraitZED_Health.uc +++ b/ServerExt/Classes/Ext_TraitZED_Health.uc @@ -22,8 +22,6 @@ defaultproperties { NumLevels=5 bPostApplyEffect=true - TraitName="Monster Health" - Description="This trait will scale how much health your helper ZED will have:|Lv1-5: +25%, +50%, +75%, +100%, +200%||-Requires Monster Tongue trait." DefLevelCosts(0)=5 DefLevelCosts(1)=15 DefLevelCosts(2)=25 diff --git a/ServerExt/Classes/Ext_TraitZED_Summon.uc b/ServerExt/Classes/Ext_TraitZED_Summon.uc index 9d90cee..8ed5662 100644 --- a/ServerExt/Classes/Ext_TraitZED_Summon.uc +++ b/ServerExt/Classes/Ext_TraitZED_Summon.uc @@ -161,8 +161,6 @@ defaultproperties { bIsSummoner=true NumLevels=6 - TraitName="Monster Tongue" - Description="With this trait you will spawn yourself a helper zed, the higher level of this trait you have, the better zed will spawn.||-REQUIREMENT: Damage bonus trait needs to have at least 30 points!" DefLevelCosts(0)=20 DefLevelCosts(1)=10 DefLevelCosts(2)=10 diff --git a/ServerExt/Classes/Ext_TraitZED_SummonExt.uc b/ServerExt/Classes/Ext_TraitZED_SummonExt.uc index e078f0f..d674e86 100644 --- a/ServerExt/Classes/Ext_TraitZED_SummonExt.uc +++ b/ServerExt/Classes/Ext_TraitZED_SummonExt.uc @@ -57,8 +57,6 @@ defaultproperties { bIsSummoner=true NumLevels=4 - TraitName="Monster Tongue Extra" - Description="With this trait you will spawn yourself extra helper zeds.|Lv 1: Spawn one extra weak zed.|Lv 2: Spawn one extra strong zed.|Lv 3: Spawn one weak and one strong zed.|Lv 4: Spawn two strong zeds.||-Requires Monster Tongue trait." DefLevelCosts(0)=100 DefLevelCosts(1)=40 DefLevelCosts(2)=80 diff --git a/ServerExt/Classes/Ext_TraitZedTExt.uc b/ServerExt/Classes/Ext_TraitZedTExt.uc index 5d268b2..184b269 100644 --- a/ServerExt/Classes/Ext_TraitZedTExt.uc +++ b/ServerExt/Classes/Ext_TraitZedTExt.uc @@ -13,7 +13,6 @@ static function CancelEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Lev defaultproperties { SupportedPerk=class'Ext_PerkCommando' - TraitName="ZED Time Extensions" NumLevels=6 DefLevelCosts(0)=15 DefLevelCosts(1)=25 @@ -22,5 +21,4 @@ defaultproperties DefLevelCosts(4)=55 DefLevelCosts(5)=65 DefMinLevel=15 - Description="Adds ZED Time extensions to your perk. The amount of extensions is increased by 1 every level" } \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitZedative.uc b/ServerExt/Classes/Ext_TraitZedative.uc index bde7b08..a308988 100644 --- a/ServerExt/Classes/Ext_TraitZedative.uc +++ b/ServerExt/Classes/Ext_TraitZedative.uc @@ -40,9 +40,7 @@ defaultproperties { SupportedPerk=class'Ext_PerkFieldMedic' TraitGroup=class'Ext_TGroupZEDTime' - TraitName="ZED TIME - Zedative" NumLevels=1 DefLevelCosts(0)=50 DefMinLevel=65 - Description="During Zed time, damaging Zeds with perk weapons will slow them 30% and do massive amounts of poison damage. ||-REQUIREMENT: Healing bonus trait needs to have at least 25 points!" } \ No newline at end of file diff --git a/ServerExt/Classes/VS_ZedRecentZed.uc b/ServerExt/Classes/VS_ZedRecentZed.uc index 11d4c54..4e47100 100644 --- a/ServerExt/Classes/VS_ZedRecentZed.uc +++ b/ServerExt/Classes/VS_ZedRecentZed.uc @@ -144,7 +144,6 @@ defaultproperties { Health=300 HealthMax=300 - ZombieName="Recently Infected" FPHandOffset=(X=-35,Z=-60) HitsPerAttack=1 HPScaler=0.4 diff --git a/ServerExt/Classes/xUI_MapVote.uc b/ServerExt/Classes/xUI_MapVote.uc index 30a0169..b5d69ff 100644 --- a/ServerExt/Classes/xUI_MapVote.uc +++ b/ServerExt/Classes/xUI_MapVote.uc @@ -143,7 +143,6 @@ function SelectedVoteRow( KFGUI_ListItem Item, int Row, bool bRight, bool bDblCl defaultproperties { - WindowTitle="Killing Floor 2 mapvote menu" XPosition=0.2 YPosition=0.1 XSize=0.6 From bb9964199ffe79ae3f3fdaa78be9e00454af6995 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Fri, 26 Jun 2020 03:56:35 +0300 Subject: [PATCH 04/39] update the localization file --- Localization/INT/ServerExt.int | Bin 740 -> 29138 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index df123f8a67bc545f75aca67aefcb1927ce037475..f10d3efbd1885d01576c58fc79631788d0779c0a 100644 GIT binary patch literal 29138 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 Zj(4 Date: Fri, 26 Jun 2020 07:17:32 +0300 Subject: [PATCH 05/39] main menu tab localization --- Localization/INT/ServerExt.int | Bin 29138 -> 30258 bytes ServerExt/Classes/ExtGUI_PerkSelectionPage.uc | 4 +-- ServerExt/Classes/KFGUI_Base.uc | 3 ++ ServerExt/Classes/KFGUI_SwitchMenuBar.uc | 9 ++++-- ServerExt/Classes/UI_MidGameMenu.uc | 27 +++++++----------- 5 files changed, 22 insertions(+), 21 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index f10d3efbd1885d01576c58fc79631788d0779c0a..f5a13d35a5c4e1a08360aa0a61815959028a9682 100644 GIT binary patch delta 1046 zcmaJ=F;2rk5S&mU1PxT_taKE704YU;5Fim06j33B9E==`*g))HQuz(YA3^+pFQlTU z(;9{=whU{A0*rX{TIw7K_W?xyM83F~cnFoXeP%_NS*uhMGc5U-cN^j6Q|z)Fw&e`~tTwOdp;&E`nq%0}j=a*Fl;owKC%Z zk(mg%Hi^0-Cf#uII=(KVI(ZHSEO{Kxl8emeZ&Nw@6}+UOBR+GhFFLnbioVe5GH#W( Iaa+&qKSfltasU7T delta 9 Qcmdn=hVjy4#toMW0UI_2NdN!< diff --git a/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc b/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc index ca7ab32..b789463 100644 --- a/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc +++ b/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc @@ -10,7 +10,7 @@ function InitMenu() for( i=0; i PageButtons; // Remember to call InitMenu() on the newly created page after. -final function KFGUI_Base AddPage( class PageClass, string Caption, string Hint, optional out KFGUI_Button Button ) +final function KFGUI_Base AddPage( class PageClass, optional out KFGUI_Button Button ) { local KFGUI_Base P; + local KFGUI_Base C; local KFGUI_Button B; + C = new PageClass; + // Add page. P = new (Self) PageClass; P.Owner = Owner; @@ -22,8 +25,8 @@ final function KFGUI_Base AddPage( class PageClass, string Caption, // Add page switch button. B = new (Self) class'KFGUI_Button'; - B.ButtonText = Caption; - B.ToolTip = Hint; + B.ButtonText = C.Caption; + B.ToolTip = C.Hint; B.OnClickLeft = PageSwitched; B.OnClickRight = PageSwitched; B.IDValue = NumButtons; diff --git a/ServerExt/Classes/UI_MidGameMenu.uc b/ServerExt/Classes/UI_MidGameMenu.uc index 5fdbb45..574ead9 100644 --- a/ServerExt/Classes/UI_MidGameMenu.uc +++ b/ServerExt/Classes/UI_MidGameMenu.uc @@ -1,12 +1,7 @@ Class UI_MidGameMenu extends KFGUI_FloatingWindow; - -struct FPageInfo -{ - var class PageClass; - var string Caption,Hint; -}; + var KFGUI_SwitchMenuBar PageSwitcher; -var() array Pages; +var array< class > Pages; var KFGUI_Button AdminButton,SpectateButton; @@ -30,8 +25,8 @@ function InitMenu() for( i=0; i Date: Fri, 26 Jun 2020 09:32:40 +0300 Subject: [PATCH 06/39] add TODO labels --- ServerExt/Classes/ExtEmoteList.uc | 1 + ServerExt/Classes/ExtGUI_PerkSelectionPage.uc | 2 +- ServerExt/Classes/ExtHUD_SpectatorInfo.uc | 1 + ServerExt/Classes/Ext_PerkBase.uc | 1 + ServerExt/Classes/UIP_About.uc | 1 + ServerExt/Classes/UIP_AdminMenu.uc | 3 ++- ServerExt/Classes/UIP_News.uc | 2 +- ServerExt/Classes/UIP_PerkSelection.uc | 1 + ServerExt/Classes/UIP_PlayerSpecs.uc | 1 + ServerExt/Classes/UIP_Settings.uc | 3 ++- ServerExt/Classes/UIR_PerkStat.uc | 1 + ServerExt/Classes/UIR_PerkTraitList.uc | 1 + ServerExt/Classes/UIR_TraitInfoPopup.uc | 3 ++- ServerExt/Classes/UI_AdminMOTD.uc | 1 + ServerExt/Classes/UI_AdminPerkLevel.uc | 5 +++-- ServerExt/Classes/UI_MidGameMenu.uc | 8 +++++--- ServerExt/Classes/UI_PrestigeNote.uc | 2 ++ ServerExt/Classes/UI_ResetWarning.uc | 3 ++- ServerExt/Classes/UI_Scoreboard.uc | 1 + ServerExt/Classes/UI_Scoreboard_CD.uc | 1 + ServerExt/Classes/UI_UnloadInfo.uc | 7 +++++-- ServerExt/Classes/xUI_MapRank.uc | 1 + ServerExt/Classes/xUI_MapVote.uc | 1 + ServerExt/Classes/xVotingReplication.uc | 20 +++++++++---------- 24 files changed, 48 insertions(+), 23 deletions(-) diff --git a/ServerExt/Classes/ExtEmoteList.uc b/ServerExt/Classes/ExtEmoteList.uc index 988ddac..d9e85b0 100644 --- a/ServerExt/Classes/ExtEmoteList.uc +++ b/ServerExt/Classes/ExtEmoteList.uc @@ -67,6 +67,7 @@ static final function name GetEmoteFromIndex(byte EmoteIndex) defaultproperties { + // TODO: localize Emotes.Add((Id=4515, ItemName = "LetsGetCrazy", AnimName="Emote_01_LetsGetCrazy", IconPath="EMOTE_TEX.Emote_LetsGoCrazy_512")) Emotes.Add((Id=4516, ItemName = "ThunderClap", AnimName="Emote_02_ThunderClap", IconPath="EMOTE_TEX.Emote_Thunderclap_512")) Emotes.Add((Id=4517, ItemName = "UncleCharlie", AnimName="Emote_03_UncleCharlie", IconPath="EMOTE_TEX.Emote_UncleCharlie_512")) diff --git a/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc b/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc index b789463..8ace20e 100644 --- a/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc +++ b/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc @@ -48,7 +48,7 @@ function UserPressedEsc(); defaultproperties { - WindowTitle="" + WindowTitle="" // TODO: localize? WTF? XPosition=0.01 XSize=0.73 YSize=0.73 diff --git a/ServerExt/Classes/ExtHUD_SpectatorInfo.uc b/ServerExt/Classes/ExtHUD_SpectatorInfo.uc index 6f49a38..5b8f696 100644 --- a/ServerExt/Classes/ExtHUD_SpectatorInfo.uc +++ b/ServerExt/Classes/ExtHUD_SpectatorInfo.uc @@ -8,6 +8,7 @@ function LocalizeText() local GFxObject TempObject; TempObject = CreateObject("Object"); + // TODO: localize? TempObject.SetString("prevPlayer", "FREE CAMERA"); TempObject.SetString("nextPlayer", PrevPlayerString); TempObject.SetString("changeCamera", ChangeCameraString); diff --git a/ServerExt/Classes/Ext_PerkBase.uc b/ServerExt/Classes/Ext_PerkBase.uc index b67507b..c87dde1 100644 --- a/ServerExt/Classes/Ext_PerkBase.uc +++ b/ServerExt/Classes/Ext_PerkBase.uc @@ -1411,6 +1411,7 @@ defaultproperties WebConfigs.Add((PropType=0,PropName="MaxPrestige",UIName="Max Prestige",UIDesc="Maximum prestige level")) WebConfigs.Add((PropType=0,PropName="PrestigeXPReduce",UIName="Prestige XP Reduce",UIDesc="Percent amount of XP cost is reduced for each prestige (1.0 = 1/2, or 50 % of XP)")) + // TODO: localize DefPerkStats(0)=(MaxValue=50,CostPerValue=1,StatType="Speed",UIName="Movement Speed (+&%)",Progress=0.4) DefPerkStats(1)=(MaxValue=1000,CostPerValue=1,StatType="Damage",UIName="Perk Damage (+&%)",Progress=0.5) DefPerkStats(2)=(MaxValue=90,CostPerValue=1,StatType="Recoil",UIName="Fire Recoil (-&%)",Progress=1) diff --git a/ServerExt/Classes/UIP_About.uc b/ServerExt/Classes/UIP_About.uc index a73ad75..f23d51a 100644 --- a/ServerExt/Classes/UIP_About.uc +++ b/ServerExt/Classes/UIP_About.uc @@ -26,6 +26,7 @@ defaultproperties { ForumURL="forums.tripwireinteractive.com/showthread.php?t=106926" + // TODO: localize Begin Object Class=KFGUI_TextField Name=AboutText XPosition=0.025 YPosition=0.025 diff --git a/ServerExt/Classes/UIP_AdminMenu.uc b/ServerExt/Classes/UIP_AdminMenu.uc index 73d55e4..51230e0 100644 --- a/ServerExt/Classes/UIP_AdminMenu.uc +++ b/ServerExt/Classes/UIP_AdminMenu.uc @@ -30,7 +30,7 @@ function SelectedRow( KFGUI_ListItem Item, int Row, bool bRight, bool bDblClick { if( bRight || bDblClick ) { - PlayerContext.ItemRows[0].Text = "-- EDIT: "$Item.Columns[0]; + PlayerContext.ItemRows[0].Text = "-- EDIT: "$Item.Columns[0]; // TODO: localize? SelectedID = Item.Value; PlayerContext.OpenMenu(Self); } @@ -56,6 +56,7 @@ function ButtonClicked( KFGUI_Button Sender ) defaultproperties { + // TODO: localize Begin Object Class=KFGUI_RightClickMenu Name=PlayerContextMenu ItemRows.Add((Text="",Value=-1)) ItemRows.Add((Text="Show Debug Info",Value=9)) diff --git a/ServerExt/Classes/UIP_News.uc b/ServerExt/Classes/UIP_News.uc index 35f8bc7..a4c01b1 100644 --- a/ServerExt/Classes/UIP_News.uc +++ b/ServerExt/Classes/UIP_News.uc @@ -23,7 +23,7 @@ function ShowMenu() if( !WebsiteButton.bDisabled ) { WebsiteURL = GRI.ServerAdInfo.WebsiteLink; - WebsiteButton.ChangeToolTip("Visit the server website at: "$WebsiteURL); + WebsiteButton.ChangeToolTip("Visit the server website at: "$WebsiteURL); // TODO: localize } } function Timer() diff --git a/ServerExt/Classes/UIP_PerkSelection.uc b/ServerExt/Classes/UIP_PerkSelection.uc index 53438d3..89f376b 100644 --- a/ServerExt/Classes/UIP_PerkSelection.uc +++ b/ServerExt/Classes/UIP_PerkSelection.uc @@ -260,6 +260,7 @@ function ButtonClicked( KFGUI_Button Sender ) defaultproperties { + // TODO: localize Begin Object Class=KFGUI_List Name=PerksList ID="Perks" XPosition=0 diff --git a/ServerExt/Classes/UIP_PlayerSpecs.uc b/ServerExt/Classes/UIP_PlayerSpecs.uc index 2823841..0f42db9 100644 --- a/ServerExt/Classes/UIP_PlayerSpecs.uc +++ b/ServerExt/Classes/UIP_PlayerSpecs.uc @@ -166,6 +166,7 @@ function SelectedRow( KFGUI_ListItem Item, int Row, bool bRight, bool bDblClick defaultproperties { + // TODO: localize Begin Object Class=KFGUI_Button Name=B_ShowStats ButtonText="Show Stats" Tooltip="Show the stats of the current players in server" diff --git a/ServerExt/Classes/UIP_Settings.uc b/ServerExt/Classes/UIP_Settings.uc index ab2fb7e..5ea3903 100644 --- a/ServerExt/Classes/UIP_Settings.uc +++ b/ServerExt/Classes/UIP_Settings.uc @@ -13,6 +13,7 @@ function InitMenu() // Client settings SettingsBox = KFGUI_ComponentList(FindComponentID('SettingsBox')); + // TODO: localize //AddCheckBox("Text-To-Speech:","Enable Text-to-Speech talk for player chat messages",'TTS', bool bDefault ); AddCheckBox("First person legs:","Show first person body",'FP',class'ExtPlayerController'.Default.bShowFPLegs); if( class'ExtPlayerController'.Default.bShowFPLegs ) @@ -131,7 +132,7 @@ function ButtonClicked( KFGUI_Button Sender ) switch( Sender.ID ) { case 'KB': - KeyBindButton.ButtonText = "Press a button"; + KeyBindButton.ButtonText = "Press a button"; // TODO: localize KeyBindButton.SetDisabled(true); GrabKeyFocus(); bSetKeybind = true; diff --git a/ServerExt/Classes/UIR_PerkStat.uc b/ServerExt/Classes/UIR_PerkStat.uc index 6cd12e7..8c2f3d1 100644 --- a/ServerExt/Classes/UIR_PerkStat.uc +++ b/ServerExt/Classes/UIR_PerkStat.uc @@ -106,6 +106,7 @@ final function string ChopExtraDigits( float Value ) defaultproperties { + // TODO: localize Begin Object Class=KFGUI_TextLable Name=InfoLable ID="Info" XPosition=0 diff --git a/ServerExt/Classes/UIR_PerkTraitList.uc b/ServerExt/Classes/UIR_PerkTraitList.uc index 68bb0fe..a26723c 100644 --- a/ServerExt/Classes/UIR_PerkTraitList.uc +++ b/ServerExt/Classes/UIR_PerkTraitList.uc @@ -110,6 +110,7 @@ function NotifyMousePaused() defaultproperties { + // TODO: localize Columns.Add((Text="Trait name",Width=0.6)) Columns.Add((Text="Level",Width=0.2)) Columns.Add((Text="Cost",Width=0.2)) diff --git a/ServerExt/Classes/UIR_TraitInfoPopup.uc b/ServerExt/Classes/UIR_TraitInfoPopup.uc index e6213c7..f30c92f 100644 --- a/ServerExt/Classes/UIR_TraitInfoPopup.uc +++ b/ServerExt/Classes/UIR_TraitInfoPopup.uc @@ -50,7 +50,7 @@ function Timer() return; } Cost = MyTrait.Static.GetTraitCost(OldLevel); - YesButton.ButtonText = "Buy ("$Cost$")"; + YesButton.ButtonText = "Buy ("$Cost$")"; // TODO: localize if( Cost>OldPoints || !MyTrait.Static.MeetsRequirements(OldLevel,MyPerk) ) YesButton.SetDisabled(true); else YesButton.SetDisabled(false); @@ -78,6 +78,7 @@ defaultproperties bAlwaysTop=true bOnlyThisFocus=true + // TODO: localize Begin Object Class=KFGUI_TextField Name=TraitInfoLbl ID="Info" XPosition=0.05 diff --git a/ServerExt/Classes/UI_AdminMOTD.uc b/ServerExt/Classes/UI_AdminMOTD.uc index 7ee1309..8847649 100644 --- a/ServerExt/Classes/UI_AdminMOTD.uc +++ b/ServerExt/Classes/UI_AdminMOTD.uc @@ -50,6 +50,7 @@ function MOTDEdited( KFGUI_EditBox Sender ) defaultproperties { + // TODO: localize WindowTitle="Edit MOTD line" XPosition=0.25 YPosition=0.2 diff --git a/ServerExt/Classes/UI_AdminPerkLevel.uc b/ServerExt/Classes/UI_AdminPerkLevel.uc index 0b602d1..f43606f 100644 --- a/ServerExt/Classes/UI_AdminPerkLevel.uc +++ b/ServerExt/Classes/UI_AdminPerkLevel.uc @@ -23,10 +23,10 @@ final function InitPage( int UserID, byte Mode ) } if( ExtPlayerReplicationInfo(PRI)==None ) { - WindowTitle = Mode==1 ? "Set level" : "Set prestige level"; + WindowTitle = Mode==1 ? "Set level" : "Set prestige level"; // TODO: localize return; } - WindowTitle = (Mode==1 ? "Set level of " : "Set prestige level of ")$PRI.GetHumanReadableName(); + WindowTitle = (Mode==1 ? "Set level of " : "Set prestige level of ")$PRI.GetHumanReadableName(); // TODO: localize LevelBox.ChangeValue(string(Mode==1 ? ExtPlayerReplicationInfo(PRI).ECurrentPerkLevel : ExtPlayerReplicationInfo(PRI).ECurrentPerkPrestige)); BaseValue = (Mode==1 ? 100 : 100000); } @@ -53,6 +53,7 @@ defaultproperties bAlwaysTop=true bOnlyThisFocus=true + // TODO: localize Begin Object Class=KFGUI_Button Name=YesButten ID="Yes" ButtonText="Submit" diff --git a/ServerExt/Classes/UI_MidGameMenu.uc b/ServerExt/Classes/UI_MidGameMenu.uc index 574ead9..1f112e7 100644 --- a/ServerExt/Classes/UI_MidGameMenu.uc +++ b/ServerExt/Classes/UI_MidGameMenu.uc @@ -16,6 +16,8 @@ function InitMenu() PageSwitcher = KFGUI_SwitchMenuBar(FindComponentID('Pager')); Super(KFGUI_Page).InitMenu(); + + // TODO: localize AddMenuButton('Mapvote',"Map Vote","Show mapvote menu"); AddMenuButton('Settings',"Settings","Enter the game settings"); AddMenuButton('Disconnect',"Disconnect","Disconnect from this server"); @@ -43,8 +45,8 @@ function Timer() { bInitSpectate = true; bOldSpectate = PRI.bOnlySpectator; - SpectateButton.ButtonText = (bOldSpectate ? "Join" : "Spectate"); - SpectateButton.ChangeToolTip(bOldSpectate ? "Click to become an active player" : "Click to become a spectator"); + SpectateButton.ButtonText = (bOldSpectate ? "Join" : "Spectate"); // TODO: localize + SpectateButton.ChangeToolTip(bOldSpectate ? "Click to become an active player" : "Click to become a spectator"); // TODO: localize } } @@ -128,7 +130,7 @@ final function KFGUI_Button AddMenuButton( name ButtonID, string Text, optional defaultproperties { - WindowTitle="Killing Floor 2 - Survival" + WindowTitle="Killing Floor 2 - Survival" // TODO: wtf? XPosition=0.1 YPosition=0.1 XSize=0.8 diff --git a/ServerExt/Classes/UI_PrestigeNote.uc b/ServerExt/Classes/UI_PrestigeNote.uc index d78ec6b..01a2c19 100644 --- a/ServerExt/Classes/UI_PrestigeNote.uc +++ b/ServerExt/Classes/UI_PrestigeNote.uc @@ -3,6 +3,7 @@ Class UI_PrestigeNote extends UI_ResetWarning; function SetupTo( Ext_PerkBase P ) { PerkToReset = P.Class; + // TODO: localize WindowTitle = "NOTICE: Prestige "$P.PerkName; InfoLabel.SetText("NOTICE: If you prestige your perk, you can not undo this operation!|All your gained XP and level will be reset to #{FF0000}0#{DEF}.|But this will also increase the amount of points by #{F7FE2E}+"$P.PrestigeSPIncrease$"#{DEF} you earn for every level up in the future.||Are you sure you want to do this?"); } @@ -11,6 +12,7 @@ defaultproperties { bIsPrestige=true + // TODO: localize Begin Object Name=YesButten Tooltip="Prestige the perk (you can not undo this action!)" End Object diff --git a/ServerExt/Classes/UI_ResetWarning.uc b/ServerExt/Classes/UI_ResetWarning.uc index 408c325..32df906 100644 --- a/ServerExt/Classes/UI_ResetWarning.uc +++ b/ServerExt/Classes/UI_ResetWarning.uc @@ -12,7 +12,7 @@ function InitMenu() function SetupTo( Ext_PerkBase P ) { PerkToReset = P.Class; - WindowTitle = "WARNING: Reset "$P.PerkName; + WindowTitle = "WARNING: Reset "$P.PerkName; // TODO: localize } function ButtonClicked( KFGUI_Button Sender ) { @@ -38,6 +38,7 @@ defaultproperties bAlwaysTop=true bOnlyThisFocus=true + // TODO: localize Begin Object Class=KFGUI_TextField Name=WarningLabel ID="Info" XPosition=0.01 diff --git a/ServerExt/Classes/UI_Scoreboard.uc b/ServerExt/Classes/UI_Scoreboard.uc index 554da03..03ee3c0 100644 --- a/ServerExt/Classes/UI_Scoreboard.uc +++ b/ServerExt/Classes/UI_Scoreboard.uc @@ -570,6 +570,7 @@ defaultproperties SBTextColor=(R=250,G=250,B=250,A=255) ScoreboardSpacing=4 + // TODO: localize Begin Object Class=KFGUI_List Name=PlayerList bDrawBackground=false OnDrawItem=DrawPlayerEntry diff --git a/ServerExt/Classes/UI_Scoreboard_CD.uc b/ServerExt/Classes/UI_Scoreboard_CD.uc index 4391a30..522e9e4 100644 --- a/ServerExt/Classes/UI_Scoreboard_CD.uc +++ b/ServerExt/Classes/UI_Scoreboard_CD.uc @@ -487,6 +487,7 @@ defaultproperties Components.Empty + // TODO: localize Begin Object Class=KFGUI_List_CD Name=PlayerList bDrawBackground=false OnDrawItem=DrawPlayerEntry diff --git a/ServerExt/Classes/UI_UnloadInfo.uc b/ServerExt/Classes/UI_UnloadInfo.uc index a6c1f32..131d51e 100644 --- a/ServerExt/Classes/UI_UnloadInfo.uc +++ b/ServerExt/Classes/UI_UnloadInfo.uc @@ -14,9 +14,9 @@ function InitMenu() final function SetupTo( class P ) { PerkToReset = P; - WindowTitle = "NOTICE: Unload stats for "$P.Default.PerkName; + WindowTitle = "NOTICE: Unload stats for "$P.Default.PerkName; // TODO: localize YesButten.SetDisabled(true); - InfoLabel.SetText("Please wait..."); + InfoLabel.SetText("Please wait..."); // TODO: localize ++CurCallCode; ExtPlayerController(GetPlayer()).OnClientGetResponse = ReceivedInfo; ExtPlayerController(GetPlayer()).ServerGetUnloadInfo(CurCallCode,PerkToReset,false); @@ -45,6 +45,7 @@ function ReceivedInfo( byte CallID, byte Code, int DataA, int DataB ) { if( CurCallCode!=CallID ) return; + // TODO: localize switch( Code ) { case 0: @@ -76,6 +77,8 @@ defaultproperties XSize=0.98 YSize=0.775 End Object + + // TODO: localize Begin Object Class=KFGUI_Button Name=YesButten ID="Yes" ButtonText="YES" diff --git a/ServerExt/Classes/xUI_MapRank.uc b/ServerExt/Classes/xUI_MapRank.uc index 7b9c521..657cf24 100644 --- a/ServerExt/Classes/xUI_MapRank.uc +++ b/ServerExt/Classes/xUI_MapRank.uc @@ -32,6 +32,7 @@ defaultproperties XSize=0.3 YSize=0.2 + // TODO: localize Begin Object Class=KFGUI_TextLable Name=InfoLabel XPosition=0.1 YPosition=0.15 diff --git a/ServerExt/Classes/xUI_MapVote.uc b/ServerExt/Classes/xUI_MapVote.uc index b5d69ff..f89b5db 100644 --- a/ServerExt/Classes/xUI_MapVote.uc +++ b/ServerExt/Classes/xUI_MapVote.uc @@ -148,6 +148,7 @@ defaultproperties XSize=0.6 YSize=0.8 + // TODO: localize Begin Object Class=KFGUI_ColumnList Name=CurrentVotesList XPosition=0.015 YPosition=0.075 diff --git a/ServerExt/Classes/xVotingReplication.uc b/ServerExt/Classes/xVotingReplication.uc index 502db95..fc42191 100644 --- a/ServerExt/Classes/xVotingReplication.uc +++ b/ServerExt/Classes/xVotingReplication.uc @@ -115,13 +115,13 @@ reliable client simulated function ClientReady( int CurGame ) { ClientCurrentGame = CurGame; bAllReceived = true; - MapVoteMsg("Maplist successfully received."); + MapVoteMsg("Maplist successfully received."); // TODO: localize } simulated final function MapVoteMsg( string S ) { if( S!="" ) - GetPlayer().ClientMessage("MapVote: "$S); + GetPlayer().ClientMessage("MapVote: "$S); // TODO: localize } reliable client simulated function ClientNotifyVote( PlayerReplicationInfo PRI, int GameIndex, int MapIndex ) { @@ -133,15 +133,15 @@ reliable client simulated function ClientNotifyVote( PlayerReplicationInfo PRI, reliable client simulated function ClientNotifyVoteTime( int Time ) { if( Time==0 ) - MapVoteMsg("Initializing mid-game mapvote..."); + MapVoteMsg("Initializing mid-game mapvote..."); // TODO: localize if( Time<=10 ) MapVoteMsg(string(Time)$"..."); else if( Time<60 ) - MapVoteMsg(string(Time)$" seconds..."); + MapVoteMsg(string(Time)$" seconds..."); // TODO: localize else if( Time==60 ) - MapVoteMsg("1 minute remains..."); + MapVoteMsg("1 minute remains..."); // TODO: localize else if( Time==120 ) - MapVoteMsg("2 minutes remain..."); + MapVoteMsg("2 minutes remain..."); // TODO: localize } reliable client simulated function ClientNotifyVoteWin( int GameIndex, int MapIndex, bool bAdminForce ) { @@ -149,12 +149,12 @@ reliable client simulated function ClientNotifyVoteWin( int GameIndex, int MapIn if( bAdminForce ) { if( bAllReceived ) - MapVoteMsg("An admin has forced mapswitch to "$Maps[MapIndex].MapTitle$" ("$GameModes[GameIndex].GameShortName$")."); - else MapVoteMsg("An admin has forced a mapswitch."); + MapVoteMsg("An admin has forced mapswitch to "$Maps[MapIndex].MapTitle$" ("$GameModes[GameIndex].GameShortName$")."); // TODO: localize + else MapVoteMsg("An admin has forced a mapswitch."); // TODO: localize } else if( bAllReceived ) - MapVoteMsg(Maps[MapIndex].MapTitle$" ("$GameModes[GameIndex].GameShortName$") has won mapvote, switching map..."); - else MapVoteMsg("A map has won mapvote, switching map..."); + MapVoteMsg(Maps[MapIndex].MapTitle$" ("$GameModes[GameIndex].GameShortName$") has won mapvote, switching map..."); // TODO: localize + else MapVoteMsg("A map has won mapvote, switching map..."); // TODO: localize } reliable client simulated function ClientOpenMapvote( optional bool bShowRank ) { From 502cda2cec575e0def9d7018ab32b689cdc12960 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 11 Aug 2020 19:18:40 +0300 Subject: [PATCH 07/39] feat: xVotingReplication localization --- Localization/INT/ServerExt.int | Bin 30258 -> 31502 bytes ServerExt/Classes/xVotingReplication.uc | 39 ++++++++++++++++-------- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index f5a13d35a5c4e1a08360aa0a61815959028a9682..db94d7a4587a56143b0e5b9ff4c9637f162b8a4b 100644 GIT binary patch delta 1263 zcmbtTO-sW-5PiK0{)gaM1$z`c6hRQFict~7LrJ!6uuV$S#*fSX1AmM7yF7dL%}zE+ zTO)#mmh9}zoA=&KK0Z5dU!C`EVYjh`dpzS785T&8VuULg%rN08!oWo{#vdTLeMa;y z=Z$1WC>YIIcZ8j_`+)H!Ga}~Ye1<$t_`D#%Txu=<5&{^+*k`%4ICiZKTP{jCC1*C; z`1oO2dCHpPmnwgsP=v^Pg;m7?raZ>jqly9F4f#!-(!%*-NKPIlc#S7U`>aTv1ClB4 zwF_NWFR>-*h<4TMGb=Ppy%$UqZS8OeYjCSz`3ku^ghY!-Fr}cpgdL9Gb*ex0%B#QPYnv9-&0sMUR5?BYWx05qgLO<@lMEiY}3-P!MASa70S+wde!E? di(N*V;9~5k%4**$l^2>HTlOk|+Tj1R{{{=|; Date: Wed, 12 Aug 2020 14:16:23 +0300 Subject: [PATCH 08/39] feat: UnloadPerk localization --- Localization/INT/ServerExt.int | Bin 31502 -> 33032 bytes ServerExt/Classes/UI_UnloadInfo.uc | 54 +++++++++++++++++++---------- 2 files changed, 35 insertions(+), 19 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index db94d7a4587a56143b0e5b9ff4c9637f162b8a4b..33c50f537a375dbf0ecdc81f8fc01fef7fbb63fb 100644 GIT binary patch delta 1412 zcmb7E&1w@-7(FfGLTMMRA={hUg#{^9cY;W2tyMJEQVBssCYi(z#+j0t^v6~QT)7hA zK7g;_EBHumTzk&FnL242P=>iP_kQ0!-}!#O{+{{rdG^QriT(EBQa*<(c!igEj5l0k z^pPMy$bF0+|6fBIJLn?in_-*l0PoPCEJK72_xG^G{d4T{)&o4mU6?T}!@C(#Gk%Rj z9q_v(2u5&6eVheBF-S+Evk&$@{^6VhM>H1LQOP~vlwgw}D)RYZ!&Pa$Jx z7Aj2@p~~%F!ZV%fL}2XqCzYz$1awHLX**V864;;1)jXt&3HB)o`8{;WnsoJi^-X7R z=YrIz+I{j<2L9AFniz!$ZENMKon5$=D}6zajrz^HJ_ofa?^MGw`mGK$C_D$)Ib delta 9 QcmeBZV(R PerkToReset; -var KFGUI_Button YesButten; +var KFGUI_Button UnloadPerkYesButton, UnloadPerkNoButton; var KFGUI_TextField InfoLabel; var byte CurCallCode; +var localized string ResetPerkNotice; +var localized string PleaseWait; +var localized string ResetDisabledWarn; +var localized string ResetMinLevelWarnPart1; +var localized string ResetMinLevelWarnPart2; +var localized string ResetAttentionPart1; +var localized string ResetAttentionPart2; +var localized string ResetAttentionPart3; + +var localized string ButtonYesText; +var localized string ButtonNoText; +var localized string ButtonYesToolTip; +var localized string ButtonNoToolTip; + function InitMenu() { - YesButten = KFGUI_Button(FindComponentID('Yes')); + UnloadPerkYesButton = KFGUI_Button(FindComponentID('Yes')); + UnloadPerkNoButton = KFGUI_Button(FindComponentID('No')); + + UnloadPerkYesButton.ButtonText=ButtonYesText; + UnloadPerkNoButton.ButtonText=ButtonNoText; + UnloadPerkYesButton.ToolTip=ButtonYesToolTip; + UnloadPerkNoButton.ToolTip=ButtonNoToolTip; + InfoLabel = KFGUI_TextField(FindComponentID('Info')); Super.InitMenu(); } final function SetupTo( class P ) { PerkToReset = P; - WindowTitle = "NOTICE: Unload stats for "$P.Default.PerkName; // TODO: localize - YesButten.SetDisabled(true); - InfoLabel.SetText("Please wait..."); // TODO: localize + WindowTitle = ResetPerkNotice$" "$P.Default.PerkName; + UnloadPerkYesButton.SetDisabled(true); + InfoLabel.SetText(PleaseWait); ++CurCallCode; ExtPlayerController(GetPlayer()).OnClientGetResponse = ReceivedInfo; ExtPlayerController(GetPlayer()).ServerGetUnloadInfo(CurCallCode,PerkToReset,false); @@ -45,18 +66,18 @@ function ReceivedInfo( byte CallID, byte Code, int DataA, int DataB ) { if( CurCallCode!=CallID ) return; - // TODO: localize + switch( Code ) { case 0: - InfoLabel.SetText("ERROR: Perk unloading is disabled on this server!"); + InfoLabel.SetText(ResetDisabledWarn); break; case 1: - InfoLabel.SetText("ERROR: You need to be at least on level #{FFFF00}"$DataA$"#{DEF} before you can use this feature!"); + InfoLabel.SetText(ResetMinLevelWarnPart1$DataA$ResetMinLevelWarnPart2); break; case 2: - InfoLabel.SetText("#{FF0000}WARNING:#{DEF} By using this feature you will lose #{FFFF00}"$DataA$"#{DEF} XP points, and by that you will drop down #{FF0000}"$DataB$"#{DEF} levels!|In addition you will be forced to suicide to reset specific stats.||Are you sure you want to continue?"); - YesButten.SetDisabled(false); + InfoLabel.SetText(ResetAttentionPart1$DataA$ResetAttentionPart2$DataB$ResetAttentionPart3); + UnloadPerkYesButton.SetDisabled(false); break; } } @@ -78,11 +99,8 @@ defaultproperties YSize=0.775 End Object - // TODO: localize - Begin Object Class=KFGUI_Button Name=YesButten + Begin Object Class=KFGUI_Button Name=UnloadPerkYesButton ID="Yes" - ButtonText="YES" - Tooltip="Reset the perk (you can not undo this action!)" XPosition=0.2 YPosition=0.9 XSize=0.29 @@ -91,10 +109,8 @@ defaultproperties OnClickLeft=ButtonClicked OnClickRight=ButtonClicked End Object - Begin Object Class=KFGUI_Button Name=NoButten + Begin Object Class=KFGUI_Button Name=UnloadPerkNoButton ID="No" - ButtonText="ABORT" - Tooltip="Abort without doing anything" XPosition=0.5 YPosition=0.9 XSize=0.29 @@ -104,6 +120,6 @@ defaultproperties End Object Components.Add(WarningLabel) - Components.Add(YesButten) - Components.Add(NoButten) + Components.Add(UnloadPerkYesButton) + Components.Add(UnloadPerkNoButton) } \ No newline at end of file From d07c52ea4ccd57435a8f5e7ce6aaa9f5df89d76f Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Wed, 12 Aug 2020 14:32:24 +0300 Subject: [PATCH 09/39] feat: MidGameMenu localization --- Localization/INT/ServerExt.int | Bin 33032 -> 34306 bytes ServerExt/Classes/UI_MidGameMenu.uc | 40 +++++++++++++++++++--------- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index 33c50f537a375dbf0ecdc81f8fc01fef7fbb63fb..ad95a1d53c1bbae2b6ce4b3300f99d71c28708bd 100644 GIT binary patch delta 1130 zcmah|%}T>S7#xZRDR>YsLKQ>bKsodGOCZVa&NnmP&(3F!*>~f2{cEy;CT?+!bKIi`9|N4h!x%%Zh6wPAI|!!7-3T`b zk#fJo{gh8g#1+>c{69oHM>z$qy(%_4m~LLWcp}p~9O{b7TdpE&?LqUnT#2er)e({^ z7uiqTYAwNK`_rvSm+_KCOvRMiLw-kj)(&~gDn|R6x)HODi5#ftx+=KPSf_+8cy^W% zDT4`Zc@#=%Ocz6^?BJ255!*>2ky?g~L_~Xi#j&heF4M7bMf7%Q+saazJH`tW=+l5y zFXa0{;X~CehsMR8O)Zu+xx|L5!WL_3f)YD_^er-0duZJ&B{WHPT%a?Nt@}_krz~y kfw3Y>H8$t9Xwf-c-RFSi_SB&H98 delta 9 QcmZqbVd`jN+Q88W01<2hRsaA1 diff --git a/ServerExt/Classes/UI_MidGameMenu.uc b/ServerExt/Classes/UI_MidGameMenu.uc index 7b52305..ce40e44 100644 --- a/ServerExt/Classes/UI_MidGameMenu.uc +++ b/ServerExt/Classes/UI_MidGameMenu.uc @@ -9,6 +9,23 @@ var transient KFGUI_Button PrevButton; var transient int NumButtons,NumButtonRows; var transient bool bInitSpectate,bOldSpectate,bInitSkipTrader; +var localized string MapVoteButtonText; +var localized string MapVoteButtonToolTip; +var localized string SettingsButtonText; +var localized string SettingsButtonToolTip; +var localized string SkipTraderButtonText; +var localized string SkipTraderButtonToolTip; +var localized string SpectateButtonText; +var localized string SpectateButtonToolTip; +var localized string CloseButtonText; +var localized string CloseButtonToolTip; +var localized string DisconnectButtonText; +var localized string DisconnectButtonToolTip; +var localized string ExitButtonText; +var localized string ExitButtonToolTip; +var localized string JoinButtonText; +var localized string JoinButtonToolTip; + function InitMenu() { local int i; @@ -17,14 +34,13 @@ function InitMenu() PageSwitcher = KFGUI_SwitchMenuBar(FindComponentID('Pager')); Super(KFGUI_Page).InitMenu(); - // TODO: localize - AddMenuButton('Mapvote',"Map Vote","Show mapvote menu"); - AddMenuButton('Settings',"Settings","Enter the game settings"); - SkipTraderButton = AddMenuButton('SkipTrader',"Skip Trader","start voting for skip trader"); - SpectateButton = AddMenuButton('Spectate',"",""); - AddMenuButton('Close',"Close","Close this menu"); - AddMenuButton('Disconnect',"Disconnect","Disconnect from this server"); - AddMenuButton('Exit',"Exit","Exit this game"); + AddMenuButton('Mapvote',MapVoteButtonText,MapVoteButtonToolTip); + AddMenuButton('Settings',SettingsButtonText,SettingsButtonToolTip); + SkipTraderButton = AddMenuButton('SkipTrader',SkipTraderButtonText,SkipTraderButtonToolTip); + SpectateButton = AddMenuButton('Spectate',SpectateButtonText,SpectateButtonToolTip); + AddMenuButton('Close',CloseButtonText,CloseButtonToolTip); + AddMenuButton('Disconnect',DisconnectButtonText,DisconnectButtonToolTip); + AddMenuButton('Exit',ExitButtonText,ExitButtonToolTip); for( i=0; i Date: Wed, 12 Aug 2020 14:55:02 +0300 Subject: [PATCH 10/39] feat: ResetPerk localization --- Localization/INT/ServerExt.int | Bin 34306 -> 35294 bytes ServerExt/Classes/UI_ResetWarning.uc | 24 ++++++++++++++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index ad95a1d53c1bbae2b6ce4b3300f99d71c28708bd..261208c8a678ba9b17259ede84a58f4d4bd2cde5 100644 GIT binary patch delta 590 zcmYjOOG^S_6g?PijBpVoLBW`tf(RiZ2rL47xUmO9wFns>*^p_DpP7`5ShR9?|3mBk zNxPQ)gnmQkeq$!XnYs6#`#AT`U>Nz9$VcQ&h9+7l;0zVC2!nID@KJ|HRB?q_M3JXw zP$Qow9%-ks%*;L3<&Y%~u?=UUi$h*3FSW0nzAnV9^&gd)K|ou-YV z#0E=}>F>m{RB+A6Xr=_c&3Kj(2VF+n{QBCRF!Gs>Ck>;H)vanh?op%PqU{oGT5Hlg znv<{oV$i@n>wL?2tg9n|XC(2213szI)8mFU+a;XnvtN}pdYcN$^e%A1w@Y6=z0d=p zb60FuiFTV@cuj{>t>(ZAtTJ`7Xq8@vso}_?WydR$3l~gb-3rZMpHh32ow1AOaLiLV zC~-u0oUPJSU>SE-gwAuZVc1-^@$5YfZfLdWcS!2jCA1*C-Yv5e@)B&#m+h#({N2(2 F{002yb&CK1 delta 9 QcmcaNnW?FVX#-Om02Jo~yZ`_I diff --git a/ServerExt/Classes/UI_ResetWarning.uc b/ServerExt/Classes/UI_ResetWarning.uc index 32df906..bc82128 100644 --- a/ServerExt/Classes/UI_ResetWarning.uc +++ b/ServerExt/Classes/UI_ResetWarning.uc @@ -1,18 +1,35 @@ Class UI_ResetWarning extends KFGUI_FloatingWindow; var KFGUI_TextField InfoLabel; +var KFGUI_Button YesButton, NoButton; var class PerkToReset; var bool bIsPrestige; +var localized string TitleText; +var localized string YesButtonText; +var localized string YesButtonToolTip; +var localized string NoButtonText; +var localized string NobuttonToolTip; +var localized string InfoText; + function InitMenu() { InfoLabel = KFGUI_TextField(FindComponentID('Info')); + YesButton = KFGUI_Button(FindComponentID('Yes')); + NoButton = KFGUI_Button(FindComponentID('No')); + + YesButton.ButtonText=YesButtonText; + YesButton.Tooltip=YesButtonToolTip; + NoButton.ButtonText=NoButtonText; + NoButton.Tooltip=NobuttonToolTip; + InfoLabel.SetText(InfoText); + Super.InitMenu(); } function SetupTo( Ext_PerkBase P ) { PerkToReset = P.Class; - WindowTitle = "WARNING: Reset "$P.PerkName; // TODO: localize + WindowTitle = TitleText$" "$P.PerkName; } function ButtonClicked( KFGUI_Button Sender ) { @@ -45,12 +62,9 @@ defaultproperties YPosition=0.12 XSize=0.98 YSize=0.775 - Text="#{FF0000}WARNING:#{DEF} If you reset your perk to initial status, you can not undo this operation!|#{FF0000}All your gained XP and level (including prestige level) will be reset to 0.#{DEF}|Do NOT cry to an admin later if this was a mistake!||Are you sure you want to do this?" End Object Begin Object Class=KFGUI_Button Name=YesButten ID="Yes" - ButtonText="YES" - Tooltip="Reset the perk (you can not undo this action!)" XPosition=0.2 YPosition=0.9 XSize=0.29 @@ -61,8 +75,6 @@ defaultproperties End Object Begin Object Class=KFGUI_Button Name=NoButten ID="No" - ButtonText="ABORT" - Tooltip="Abort without doing anything" XPosition=0.5 YPosition=0.9 XSize=0.29 From d8f0e5dc73be7e29910e137f26ceffbad1b0e713 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Wed, 12 Aug 2020 15:02:03 +0300 Subject: [PATCH 11/39] no actions needed --- ServerExt/Classes/ExtGUI_PerkSelectionPage.uc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc b/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc index 8ace20e..b789463 100644 --- a/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc +++ b/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc @@ -48,7 +48,7 @@ function UserPressedEsc(); defaultproperties { - WindowTitle="" // TODO: localize? WTF? + WindowTitle="" XPosition=0.01 XSize=0.73 YSize=0.73 From 8f246e993953f6c61e2554567ee08f37782808c5 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Wed, 12 Aug 2020 15:06:07 +0300 Subject: [PATCH 12/39] no actions needed --- ServerExt/Classes/ExtHUD_SpectatorInfo.uc | 1 - 1 file changed, 1 deletion(-) diff --git a/ServerExt/Classes/ExtHUD_SpectatorInfo.uc b/ServerExt/Classes/ExtHUD_SpectatorInfo.uc index 5b8f696..6f49a38 100644 --- a/ServerExt/Classes/ExtHUD_SpectatorInfo.uc +++ b/ServerExt/Classes/ExtHUD_SpectatorInfo.uc @@ -8,7 +8,6 @@ function LocalizeText() local GFxObject TempObject; TempObject = CreateObject("Object"); - // TODO: localize? TempObject.SetString("prevPlayer", "FREE CAMERA"); TempObject.SetString("nextPlayer", PrevPlayerString); TempObject.SetString("changeCamera", ChangeCameraString); From cc6f7b34ec34eb0e6ac3f359c3d4af93010a68c4 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Wed, 12 Aug 2020 15:28:23 +0300 Subject: [PATCH 13/39] feat: AboutPage localization --- Localization/INT/ServerExt.int | Bin 35294 -> 36232 bytes ServerExt/Classes/UIP_About.uc | 34 +++++++++++++++++++++++++++------ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index 261208c8a678ba9b17259ede84a58f4d4bd2cde5..e82e1ea84838bbfe8ff2c90c94160818fbbc6492 100644 GIT binary patch delta 860 zcma)4Jxjw-6g_kll!BAEJalqst<^=rA+<&v3iaDHZId?GG%-p2KqVl8I%jlu_80ZH zcdL&P|RjXSQpSiveDU}6*d zsKUTDo^Zl!h#UP?j0@7n01;f)51`QC+R>GD=1tZpl=xn-&Luj-EB3qBXp8Z7!lFk$ zdpy`I7hr@PMnpmd8>nj`2I)*QY#ogtMwukT#pifp$3yq16$6|drtaFgK zq{!$3!epP_Mhd$;DV7Z=Omtglvt5v{3b({qJWEA6muymIg^#S_T8|i;7`e{0FEz&F zgak@kBO+W9bv0FkCP_pjxy1B|5;HRo6k{FcEG^I>#^)^+&iE6ny8RZ8(Zm5`9&;Vd zX^=&DeDaE{ko!_gR7{D;Tqv`o%t@HX94A2LqX$2|eqLT5pEN;JH+LvV9Q%W3u9h0F zi0yFnH@uT>Cwy5+HdZ0h8&ryNknUE Z{!f#rkg<&T?}z+O=G~!@A!A<7{|&R>pI`t0 delta 9 QcmeB}&2(=v(}sJU02U_%umAu6 diff --git a/ServerExt/Classes/UIP_About.uc b/ServerExt/Classes/UIP_About.uc index f23d51a..60bb0ec 100644 --- a/ServerExt/Classes/UIP_About.uc +++ b/ServerExt/Classes/UIP_About.uc @@ -2,6 +2,31 @@ Class UIP_About extends KFGUI_MultiComponent; var const string ForumURL; +var KFGUI_TextField About; +var KFGUI_Button AuthorButton; +var KFGUI_Button Forumbutton; + +var localized string AboutText; +var localized string AuthorButtonText; +var localized string AuthorButtonTooltip; +var localized string ForumButtonText; +var localized string ForumButtonTooltip; + +function InitMenu() +{ + About = KFGUI_TextField(FindComponentID('About')); + AuthorButton = KFGUI_Button(FindComponentID('Author')); + Forumbutton = KFGUI_Button(FindComponentID('Forum')); + + Super.InitMenu(); + + About.SetText(AboutText); + AuthorButton.ButtonText=AuthorButtonText; + AuthorButton.Tooltip=AuthorButtonTooltip; + Forumbutton.ButtonText=ForumButtonText; + Forumbutton.Tooltip=ForumButtonTooltip; +} + private final function UniqueNetId GetAuthID() { local UniqueNetId Res; @@ -9,6 +34,7 @@ private final function UniqueNetId GetAuthID() class'OnlineSubsystem'.Static.StringToUniqueNetId("0x0110000100E8984E",Res); return Res; } + function ButtonClicked( KFGUI_Button Sender ) { switch( Sender.ID ) @@ -24,20 +50,18 @@ function ButtonClicked( KFGUI_Button Sender ) defaultproperties { - ForumURL="forums.tripwireinteractive.com/showthread.php?t=106926" + ForumURL="https://steamcommunity.com/sharedfiles/filedetails/?id=2085786712" // TODO: localize Begin Object Class=KFGUI_TextField Name=AboutText + ID="About" XPosition=0.025 YPosition=0.025 XSize=0.95 YSize=0.8 - Text="#{F3E2A9}Server Extension Mod#{DEF} - Written by Marco||Credits:|#{01DF3A}Forrest Mark X#{DEF} - Implementation of first person legs and backpack weapon.|#{FF00FF}Sheep#{DEF} - Beta testing.|Mysterial - For ideas from UT2004RPG mod.|All other beta testers..." End Object Begin Object Class=KFGUI_Button Name=AboutButton ID="Author" - ButtonText="Author Profile" - Tooltip="Visit this mod authors steam profile" XPosition=0.7 YPosition=0.92 XSize=0.27 @@ -47,8 +71,6 @@ defaultproperties End Object Begin Object Class=KFGUI_Button Name=ForumButton ID="Forum" - ButtonText="Visit Forums" - Tooltip="Visit this mods discussion forum" XPosition=0.7 YPosition=0.84 XSize=0.27 From 52d64df7821fdf008d5119ae908ac177f8475c25 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Wed, 12 Aug 2020 17:12:44 +0300 Subject: [PATCH 14/39] feat: AdminMenu localization --- Localization/INT/ServerExt.int | Bin 36232 -> 37552 bytes ServerExt/Classes/UIP_AdminMenu.uc | 98 +++++++++++++++++++++-------- 2 files changed, 73 insertions(+), 25 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index e82e1ea84838bbfe8ff2c90c94160818fbbc6492..064e9ebda388280d3f6fd4c2b2166376b256c7c2 100644 GIT binary patch delta 1232 zcma)6Jx{_=6g^=wCQeKam=^~VqXQ;RCJYrAj1W;UajjB;P|(ndve?B$7N?HRI^#d| z-1lgCd>PX;?Yr-sbMHO(wd2ps$B3{b!>$|&Is4V*x6 zwS`U8(Z&Ow8TW9DC$zZV$30_$Pj;2HuTq3jaG0x!BXn`Ye8O@f9a0P)BCju{H|Gg? zo02l}YdJ%<(#IVOt?7oksPH-D?VGgJFqlX{DupQvm~`!Fcf^-PnL4@Qzt{sJ17bUL z&9ib8B5hqFGY?xX=9*pkG~8wV4&Qv*9&!~@T72|?XIH#Fx}r_&;U#k$$zA(J7~t2Z`=Dx zOreSk;!D$lllT;i)7W{>9VAgj2ii<52Umt7XKTP!mCt~ei&pIBvKuA7ji~qwfM(RE delta 9 Qcmdn6l&NDj(}s>-02NyVLI3~& diff --git a/ServerExt/Classes/UIP_AdminMenu.uc b/ServerExt/Classes/UIP_AdminMenu.uc index 51230e0..e3d2fd1 100644 --- a/ServerExt/Classes/UIP_AdminMenu.uc +++ b/ServerExt/Classes/UIP_AdminMenu.uc @@ -1,20 +1,92 @@ Class UIP_AdminMenu extends KFGUI_MultiComponent; var KFGUI_ColumnList PlayersList; +var KFGUI_Button MotdButton; var editinline export KFGUI_RightClickMenu PlayerContext; var int SelectedID; +var localized string EditPlayer; +var localized string ShowDebugInfo; +var localized string Add1kXP; +var localized string Add10kXP; +var localized string AdvancePerkLevel; +var localized string SetPerkLevel; +var localized string SetPrestigeLevel; +var localized string UnloadAllStats; +var localized string UnloadAllTraits; +var localized string Remove1kXP; +var localized string Remove10kXP; +var localized string ResetAllStats; +var localized string ResetCurrentPerkStats; +var localized string ColumnPlayer; +var localized string ColumnTotalKills; +var localized string ColumnTotalExp; +var localized string ColumnTotalPlayTime; +var localized string EditMotdButtonText; +var localized string EditMotdButtonToolTip; + +function FRowItem newFRowItem(string Text, int Value, bool isSplitter) +{ + local FRowItem newItem; + + newItem.Text=Text; + newItem.Value=Value; + newItem.bSplitter=isSplitter; + + return newItem; +} + +function FColumnItem newFColumnItem(string Text, float Width) +{ + local FColumnItem newItem; + + newItem.Text=Text; + newItem.Width=Width; + + return newItem; +} + function InitMenu() { PlayersList = KFGUI_ColumnList(FindComponentID('Players')); + MotdButton = KFGUI_Button(FindComponentID('MOTD')); + + PlayerContext.ItemRows.AddItem(newFRowItem("",-1,false)); + PlayerContext.ItemRows.AddItem(newFRowItem(ShowDebugInfo,9,false)); + PlayerContext.ItemRows.AddItem(newFRowItem("",0,true)); + PlayerContext.ItemRows.AddItem(newFRowItem(Add1kXP,2,false)); + PlayerContext.ItemRows.AddItem(newFRowItem(Add10kXP,3,false)); + PlayerContext.ItemRows.AddItem(newFRowItem(AdvancePerkLevel,4,false)); + PlayerContext.ItemRows.AddItem(newFRowItem(SetPerkLevel,-1,false)); + PlayerContext.ItemRows.AddItem(newFRowItem(SetPrestigeLevel,-2,false)); + PlayerContext.ItemRows.AddItem(newFRowItem("",0,true)); + PlayerContext.ItemRows.AddItem(newFRowItem(UnloadAllStats,5,false)); + PlayerContext.ItemRows.AddItem(newFRowItem(UnloadAllTraits,6,false)); + PlayerContext.ItemRows.AddItem(newFRowItem("",0,true)); + PlayerContext.ItemRows.AddItem(newFRowItem(Remove1kXP,7,false)); + PlayerContext.ItemRows.AddItem(newFRowItem(Remove10kXP,8,false)); + PlayerContext.ItemRows.AddItem(newFRowItem("",0,true)); + PlayerContext.ItemRows.AddItem(newFRowItem(ResetAllStats,0,false)); + PlayerContext.ItemRows.AddItem(newFRowItem(ResetCurrentPerkStats,1,false)); + + PlayersList.Columns.AddItem(newFColumnItem(ColumnPlayer,0.55)); + PlayersList.Columns.AddItem(newFColumnItem(ColumnTotalKills,0.15)); + PlayersList.Columns.AddItem(newFColumnItem(ColumnTotalExp,0.15)); + PlayersList.Columns.AddItem(newFColumnItem(ColumnTotalPlayTime,0.15)); + + MotdButton.ButtonText=EditMotdButtonText; + MotdButton.Tooltip=EditMotdButtonToolTip; + Super.InitMenu(); } + function ShowMenu() { Super.ShowMenu(); SetTimer(2,true); Timer(); } + function CloseMenu() { Super.CloseMenu(); @@ -30,7 +102,7 @@ function SelectedRow( KFGUI_ListItem Item, int Row, bool bRight, bool bDblClick { if( bRight || bDblClick ) { - PlayerContext.ItemRows[0].Text = "-- EDIT: "$Item.Columns[0]; // TODO: localize? + PlayerContext.ItemRows[0].Text = EditPlayer$" "$Item.Columns[0]; // TODO: localize? SelectedID = Item.Value; PlayerContext.OpenMenu(Self); } @@ -56,33 +128,13 @@ function ButtonClicked( KFGUI_Button Sender ) defaultproperties { - // TODO: localize Begin Object Class=KFGUI_RightClickMenu Name=PlayerContextMenu - ItemRows.Add((Text="",Value=-1)) - ItemRows.Add((Text="Show Debug Info",Value=9)) - ItemRows.Add((bSplitter=true)) - ItemRows.Add((Text="Add 1,000 XP",Value=2)) - ItemRows.Add((Text="Add 10,000 XP",Value=3)) - ItemRows.Add((Text="Advance Perk Level",Value=4)) - ItemRows.Add((Text="Set Perk Level",Value=-1)) - ItemRows.Add((Text="Set Prestige Level",Value=-2)) - ItemRows.Add((bSplitter=true)) - ItemRows.Add((Text="Unload all stats",Value=5)) - ItemRows.Add((Text="Unload all traits",Value=6)) - ItemRows.Add((bSplitter=true)) - ItemRows.Add((Text="Remove 1,000 XP",Value=7)) - ItemRows.Add((Text="Remove 10,000 XP",Value=8)) - ItemRows.Add((bSplitter=true)) - ItemRows.Add((Text="Reset ALL Stats",Value=0)) - ItemRows.Add((Text="Reset Current Perk Stats",Value=1)) OnSelectedItem=SelectedRCItem End Object PlayerContext=PlayerContextMenu Begin Object Class=KFGUI_Button Name=EditMOTDButton ID="MOTD" - ButtonText="Edit MOTD" - Tooltip="Edit the server Message of the Day" XPosition=0.2 YPosition=0.997 XSize=0.1 @@ -98,10 +150,6 @@ defaultproperties YPosition=0.05 XSize=0.9 YSize=0.92 - Columns.Add((Text="Player",Width=0.55)) - Columns.Add((Text="Total Kills",Width=0.15)) - Columns.Add((Text="Total EXP",Width=0.15)) - Columns.Add((Text="Total PlayTime",Width=0.15)) OnSelectedRow=SelectedRow End Object Components.Add(PlayerList) From afb0172dca19240a39112b4216774ca941ff92a5 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Wed, 12 Aug 2020 18:14:21 +0300 Subject: [PATCH 15/39] feat: MapVote localization (partially) --- Localization/INT/ServerExt.int | Bin 37552 -> 38034 bytes ServerExt/Classes/xUI_MapVote.uc | 65 +++++++++++++++++++++++++------ 2 files changed, 54 insertions(+), 11 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index 064e9ebda388280d3f6fd4c2b2166376b256c7c2..ebe8209bb03bfc61b634d0e0e035e8ff752090fd 100644 GIT binary patch delta 288 zcmdn6lxfmRrVSe=De^LKF@SJ1Lj^-9gC|2ggD*oOLjgk=Lq0NSU`(Anzfqb|Z?fS;VMT~KKcMPdpgLOyC8$mX2B;WFm2xmpu8^S=NaislL)D>) zfz)XRFysJDs$_5m+FJ@#TLLx_CaQoC2dS100;(-x$ONiO2dhKkgXD$Xkz563gTyub XfM(~y{Z Date: Wed, 12 Aug 2020 18:21:45 +0300 Subject: [PATCH 16/39] title --- Localization/INT/ServerExt.int | Bin 38034 -> 38078 bytes ServerExt/Classes/xUI_MapVote.uc | 5 +++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index ebe8209bb03bfc61b634d0e0e035e8ff752090fd..144379276032b7f7dcadbffa21d0d3f5c829bed0 100644 GIT binary patch delta 60 zcmbQVl4;*crVZC7sfI9QGL$gnFr+frGAJ?lG9)q-FoZGW1I1Dq6c}=WWFAB5WX8$z OlM`CFHvgD3ixB`2@ey?Z delta 22 ecmdnDl4;UPrVZC7O*WY Date: Wed, 12 Aug 2020 18:22:36 +0300 Subject: [PATCH 17/39] fix: forgot to remove todo --- ServerExt/Classes/UIP_About.uc | 1 - 1 file changed, 1 deletion(-) diff --git a/ServerExt/Classes/UIP_About.uc b/ServerExt/Classes/UIP_About.uc index 60bb0ec..a02def6 100644 --- a/ServerExt/Classes/UIP_About.uc +++ b/ServerExt/Classes/UIP_About.uc @@ -52,7 +52,6 @@ defaultproperties { ForumURL="https://steamcommunity.com/sharedfiles/filedetails/?id=2085786712" - // TODO: localize Begin Object Class=KFGUI_TextField Name=AboutText ID="About" XPosition=0.025 From 649332947ba1d93a8c25457540cffb6c1b18cbd9 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Wed, 12 Aug 2020 18:23:18 +0300 Subject: [PATCH 18/39] fix: forgot to remove todo #2 --- ServerExt/Classes/UIP_AdminMenu.uc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ServerExt/Classes/UIP_AdminMenu.uc b/ServerExt/Classes/UIP_AdminMenu.uc index e3d2fd1..734d9cf 100644 --- a/ServerExt/Classes/UIP_AdminMenu.uc +++ b/ServerExt/Classes/UIP_AdminMenu.uc @@ -102,7 +102,7 @@ function SelectedRow( KFGUI_ListItem Item, int Row, bool bRight, bool bDblClick { if( bRight || bDblClick ) { - PlayerContext.ItemRows[0].Text = EditPlayer$" "$Item.Columns[0]; // TODO: localize? + PlayerContext.ItemRows[0].Text = EditPlayer$" "$Item.Columns[0]; SelectedID = Item.Value; PlayerContext.OpenMenu(Self); } From ee17235bf425bb9772febe266c70f8bf95d7c544 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Wed, 12 Aug 2020 18:31:04 +0300 Subject: [PATCH 19/39] feat: NewsPage localization --- Localization/INT/ServerExt.int | Bin 38078 -> 38290 bytes ServerExt/Classes/UIP_News.uc | 9 +++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index 144379276032b7f7dcadbffa21d0d3f5c829bed0..19b5d9bd20f74aa53a42c3b6bd1d0422ca7b7ea3 100644 GIT binary patch delta 116 zcmdnDl4;UvrVab1Om68FnygpK#~IF$%8LJQaAKRrCM5Yb|WOokGm pyb=R10~Z5a45(6>H4G?MJUMrgtU@{11ejU{hD4wqE2tijJ^%p!9Pa=C delta 9 RcmbQVnrYukrVab1000(x1gii5 diff --git a/ServerExt/Classes/UIP_News.uc b/ServerExt/Classes/UIP_News.uc index a4c01b1..9459b39 100644 --- a/ServerExt/Classes/UIP_News.uc +++ b/ServerExt/Classes/UIP_News.uc @@ -4,6 +4,9 @@ var KFGUI_TextField NewsField; var string WebsiteURL; var KFGUI_Button WebsiteButton; +var localized string WebSiteButtonText; +var localized string WebsiteButtonToolTip; + function InitMenu() { Super.InitMenu(); @@ -11,6 +14,9 @@ function InitMenu() // Client settings NewsField = KFGUI_TextField(FindComponentID('News')); WebsiteButton = KFGUI_Button(FindComponentID('Website')); + + WebsiteButton.ButtonText=WebSiteButtonText; + Timer(); } function ShowMenu() @@ -23,7 +29,7 @@ function ShowMenu() if( !WebsiteButton.bDisabled ) { WebsiteURL = GRI.ServerAdInfo.WebsiteLink; - WebsiteButton.ChangeToolTip("Visit the server website at: "$WebsiteURL); // TODO: localize + WebsiteButton.ChangeToolTip(WebsiteButtonToolTip$" "$WebsiteURL); } } function Timer() @@ -53,7 +59,6 @@ defaultproperties End Object Begin Object Class=KFGUI_Button Name=WebSiteButton ID="Website" - ButtonText="Visit Website" XPosition=0.44 YPosition=0.92 XSize=0.12 From 44c4d081b042920fc4248e89833c33ee96c498fd Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Wed, 12 Aug 2020 18:53:32 +0300 Subject: [PATCH 20/39] feat: PerkSelection localization --- Localization/INT/ServerExt.int | Bin 38290 -> 39402 bytes ServerExt/Classes/UIP_PerkSelection.uc | 48 +++++++++++++++++-------- 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index 19b5d9bd20f74aa53a42c3b6bd1d0422ca7b7ea3..7c3511b6ede8b5da16a883f5a3fb3f3a0e5d0113 100644 GIT binary patch delta 857 zcmZuvO-lk%6g{{UtU!c9sFx9KBD1AbP_$H2BWOGMm1Hx1jA9_@!etTo@GrD!6ZC^> z-LL4}H_A9E!-IL}opn%bTTzd! zOR`*k4z;eNN*EUIjaXTyM$x5KB7^urmGm|xmyLNviWKg!?dx%TfA&wVLWa0!F~EbX zQ_~&&KH3-t+f;P&%zIs$Yp|w;vT3?T%pxMKO2`&h2Z!9b^ktDFd*Rr;A)E>kg*(Qr z_#nctiOJcVW8zyQD58>w!m%#AMRjq!8M|FDpeSNq!JM8|-_R{v#KO>UiOUy^Y zw(rCY)0cq56Cvy^JNp5)BLMe0DQSZ++YlZJV1}T+owOSu|Yk PdyHp3b)ud_l4t^dLTjc_ delta 9 RcmaF0nQ78$rVW#(0st6&1hxPG diff --git a/ServerExt/Classes/UIP_PerkSelection.uc b/ServerExt/Classes/UIP_PerkSelection.uc index 89f376b..b7823a3 100644 --- a/ServerExt/Classes/UIP_PerkSelection.uc +++ b/ServerExt/Classes/UIP_PerkSelection.uc @@ -1,7 +1,7 @@ Class UIP_PerkSelection extends KFGUI_MultiComponent; var KFGUI_List PerkList; -var KFGUI_Button B_Prestige; +var KFGUI_Button B_Prestige, B_Reset, B_Unload; var KFGUI_ComponentList StatsList; var UIR_PerkTraitList TraitsList; var KFGUI_TextLable PerkLabel; @@ -11,6 +11,19 @@ var class PrevPendingPerk; var array StatBuyers; var int OldPerkPoints; +var localized string PrestigeButtonText; +var localized string PrestigeButtonToolTip; +var localized string ResetButtonText; +var localized string ResetButtonToolTip; +var localized string UnloadButtonText; +var localized string UnloadButtonToolTip; +var localized string PrestigeButtonDisabledToolTip; +var localized string Level; +var localized string Points; +var localized string NoPerkSelected; +var localized string NotAviable; +var localized string MaxStr; + function InitMenu() { PerkList = KFGUI_List(FindComponentID('Perks')); @@ -19,6 +32,18 @@ function InitMenu() PerkLabel = KFGUI_TextLable(FindComponentID('Info')); PerkLabel.SetText(""); B_Prestige = KFGUI_Button(FindComponentID('Prestige')); + B_Reset = KFGUI_Button(FindComponentID('Reset')); + B_Unload = KFGUI_Button(FindComponentID('Unload')); + + B_Prestige.ButtonText=PrestigeButtonText; + B_Prestige.ToolTip="-"; + + B_Unload.ButtonText=UnloadButtonText; + B_Unload.ToolTip=UnloadButtonToolTip; + + B_Reset.ButtonText=ResetButtonText; + B_Reset.ToolTip=ResetButtonToolTip; + Super.InitMenu(); } function ShowMenu() @@ -87,7 +112,7 @@ function Timer() } } OldPerkPoints = PendingPerk.CurrentSP; - PerkLabel.SetText("Lv"$PendingPerk.GetLevelString()@PendingPerk.PerkName$" (Points: "$PendingPerk.CurrentSP$")"); + PerkLabel.SetText(Level$PendingPerk.GetLevelString()@PendingPerk.PerkName$" ("$Points$" "$PendingPerk.CurrentSP$")"); for( i=0; i"); + PerkLabel.SetText(NoPerkSelected); } } else if( PendingPerk!=None && OldPerkPoints!=PendingPerk.CurrentSP ) @@ -112,7 +137,7 @@ function Timer() B_Prestige.SetDisabled(!PendingPerk.CanPrestige()); OldPerkPoints = PendingPerk.CurrentSP; - PerkLabel.SetText("Lv"$PendingPerk.GetLevelString()@PendingPerk.PerkName$" (Points: "$PendingPerk.CurrentSP$")"); + PerkLabel.SetText(Level$PendingPerk.GetLevelString()@PendingPerk.PerkName$" ("$Points$" "$PendingPerk.CurrentSP$")"); for( i=0; i=TC.Default.NumLevels ) - S = "MAX\nN/A"; + S = MaxStr$"\n"$NotAviable; else { S = PendingPerk.PerkTraits[i].CurrentLevel$"/"$TC.Default.NumLevels$"\n"; if( TC.Static.MeetsRequirements(PendingPerk.PerkTraits[i].CurrentLevel,PendingPerk) ) S $= string(TC.Static.GetTraitCost(PendingPerk.PerkTraits[i].CurrentLevel)); - else S $= "N/A"; + else S $= NotAviable; } TraitsList.AddLine(TC.Default.TraitName$"\n"$S,i); TraitsList.ToolTip.AddItem(TC.Static.GetTooltipInfo()); @@ -260,7 +285,6 @@ function ButtonClicked( KFGUI_Button Sender ) defaultproperties { - // TODO: localize Begin Object Class=KFGUI_List Name=PerksList ID="Perks" XPosition=0 @@ -304,8 +328,6 @@ defaultproperties Begin Object Class=KFGUI_Button Name=ResetPerkButton ID="Reset" - ButtonText="Reset Level" - ToolTip="Reset this perk by unloading all stats, traits and set XP gained and level to 0" XPosition=0.25 YPosition=0.025 XSize=0.074 @@ -316,8 +338,6 @@ defaultproperties End Object Begin Object Class=KFGUI_Button Name=UnloadPerkButton ID="Unload" - ButtonText="Unload Perk" - ToolTip="Reset all spent points on this perk and refund the points in exchange of some XP" XPosition=0.325 YPosition=0.025 XSize=0.074 @@ -328,8 +348,6 @@ defaultproperties End Object Begin Object Class=KFGUI_Button Name=PrestigePerkButton ID="Prestige" - ButtonText="Prestige" - ToolTip="-" XPosition=0.4 YPosition=0.025 XSize=0.074 From 7abd406bc4f17e25c361270bd26bdb89864abe1a Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 1 Sep 2020 05:46:02 +0300 Subject: [PATCH 21/39] feat: AdminMOTD localization --- Localization/INT/ServerExt.int | Bin 39402 -> 40024 bytes ServerExt/Classes/UI_AdminMOTD.uc | 31 +++++++++++++++++++++--------- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index 7c3511b6ede8b5da16a883f5a3fb3f3a0e5d0113..0a4ffabcb23a7d19b3b028f6c6d3792f6692d84e 100644 GIT binary patch delta 379 zcmZ9IPfJ2U6vYqXMnw_|B3d{U?yP7P2#RJcMIphJg}pb{12xd`&rWTj`-T>Mi@=Q^ zrO)7}@Z5PR(dNB-&-~`xGk3F!{H!D2n=c!kr!GqH(M5nBDyX84J2a6*91W-Wc*B@# z0D}&+J^o0?6f5DieOhD^4;bRvIT-e*w)mO4`lCU?!z)_kU!XByZ|JF5Y4kCYuRU0v zC(4fT*mu~Uh>v|-7LxbOC)00vYhtfwhc^3uG&STVR299&M_5c6? delta 9 RcmcbygXz^~rVX!V0stEC1!VvL diff --git a/ServerExt/Classes/UI_AdminMOTD.uc b/ServerExt/Classes/UI_AdminMOTD.uc index 8847649..e84c754 100644 --- a/ServerExt/Classes/UI_AdminMOTD.uc +++ b/ServerExt/Classes/UI_AdminMOTD.uc @@ -2,14 +2,34 @@ Class UI_AdminMOTD extends KFGUI_FloatingWindow; var KFGUI_TextField NewsField; var KFGUI_EditBox EditField; +var KFGUI_Button YesButton; +var KFGUI_Button NoButton; + +var localized string WindowTitleText; +var localized string YesButtonText; +var localized string YesButtonToolTip; +var localized string NoButtonText; +var localized string NoButtonToolTip; +var localized string EditBoxToolTip; +var localized string MotdPreviewText; function InitMenu() { Super.InitMenu(); - + // Client settings NewsField = KFGUI_TextField(FindComponentID('News')); EditField = KFGUI_EditBox(FindComponentID('Edit')); + YesButton = KFGUI_Button(FindComponentID('Yes')); + NoButton = KFGUI_Button(FindComponentID('No')); + + WindowTitle = WindowTitleText; + EditField.ToolTip=EditBoxToolTip; + YesButton.ButtonText=YesButtonText; + YesButton.Tooltip=YesButtonToolTip; + NoButton.ButtonText=NoButtonText; + NoButton.Tooltip=NoButtonToolTip; + Timer(); } function Timer() @@ -45,13 +65,11 @@ function ButtonClicked( KFGUI_Button Sender ) } function MOTDEdited( KFGUI_EditBox Sender ) { - NewsField.SetText("MOTD Preview:|"$Sender.Value); + NewsField.SetText(MotdPreviewText$"|"$Sender.Value); } defaultproperties { - // TODO: localize - WindowTitle="Edit MOTD line" XPosition=0.25 YPosition=0.2 XSize=0.5 @@ -68,8 +86,6 @@ defaultproperties End Object Begin Object Class=KFGUI_Button Name=YesButten ID="Yes" - ButtonText="Submit" - Tooltip="Submit changes to server" XPosition=0.4 YPosition=0.9 XSize=0.09 @@ -80,8 +96,6 @@ defaultproperties End Object Begin Object Class=KFGUI_Button Name=NoButten ID="No" - ButtonText="Cancel" - Tooltip="Abort without doing anything" XPosition=0.5 YPosition=0.9 XSize=0.09 @@ -91,7 +105,6 @@ defaultproperties End Object Begin Object Class=KFGUI_EditBox Name=EditBox ID="Edit" - Tooltip="Enter the text here, use vertical line character for line switches." XPosition=0.05 YPosition=0.09 XSize=0.9 From 1fed799819d5e6058bab0eac3c26d591546453eb Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 1 Sep 2020 05:55:21 +0300 Subject: [PATCH 22/39] fix: delete deprecated comment --- ServerExt/Classes/UI_ResetWarning.uc | 1 - 1 file changed, 1 deletion(-) diff --git a/ServerExt/Classes/UI_ResetWarning.uc b/ServerExt/Classes/UI_ResetWarning.uc index bc82128..dad58e8 100644 --- a/ServerExt/Classes/UI_ResetWarning.uc +++ b/ServerExt/Classes/UI_ResetWarning.uc @@ -55,7 +55,6 @@ defaultproperties bAlwaysTop=true bOnlyThisFocus=true - // TODO: localize Begin Object Class=KFGUI_TextField Name=WarningLabel ID="Info" XPosition=0.01 From d519e2e7722b22ea3bc02b31cb92058ba5f754b3 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 1 Sep 2020 06:20:02 +0300 Subject: [PATCH 23/39] feat: PrestigeNote localization --- Localization/INT/ServerExt.int | Bin 40024 -> 40936 bytes ServerExt/Classes/UI_PrestigeNote.uc | 18 +++++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index 0a4ffabcb23a7d19b3b028f6c6d3792f6692d84e..ef4833353df0602d7d34627bdf0a3e38e8853961 100644 GIT binary patch delta 381 zcmcbygXzV7rVSBuCbKjOhzBqfF{CmSGn6o7GNc1pehm3QcIssAS(^NQ4E_uu44w?m z46Y1T3<{GUPmP|utsyAXlOc~G4XDnCA(0^os3!-gDwUxEs4oC0QUs(88EhGpfM%iS z2bz?|pukWG)L9Co3s7yIeBM@cvO$O2wT~f@DKUvXQc=A3gj>&8$V(tY%+cJUfEdk0X09{)N zBq1i715I&dFaqLQ25q2gc^SBXF2v!p$@+D&;xLz|f_<3>Gzk<6MUxL&NXwT3{i6W3 b3FsPz3}ASGWI?Vg1^IJwW4-0%6P-c;qaRfW delta 9 QcmaE{pXtU9rVSBu02)IC-~a#s diff --git a/ServerExt/Classes/UI_PrestigeNote.uc b/ServerExt/Classes/UI_PrestigeNote.uc index 01a2c19..9d1af51 100644 --- a/ServerExt/Classes/UI_PrestigeNote.uc +++ b/ServerExt/Classes/UI_PrestigeNote.uc @@ -1,19 +1,27 @@ Class UI_PrestigeNote extends UI_ResetWarning; +var localized string WindowTitleText; +var localized string PrestigeButtonToolTip; +var localized string InfoLabelTextPart1; +var localized string InfoLabelTextPart2; + +function InitMenu() +{ + Super.InitMenu(); + YesButton.ToolTip=PrestigeButtonToolTip; +} + function SetupTo( Ext_PerkBase P ) { PerkToReset = P.Class; - // TODO: localize - WindowTitle = "NOTICE: Prestige "$P.PerkName; - InfoLabel.SetText("NOTICE: If you prestige your perk, you can not undo this operation!|All your gained XP and level will be reset to #{FF0000}0#{DEF}.|But this will also increase the amount of points by #{F7FE2E}+"$P.PrestigeSPIncrease$"#{DEF} you earn for every level up in the future.||Are you sure you want to do this?"); + WindowTitle = WindowTitleText$" "$P.PerkName; + InfoLabel.SetText(InfoLabelTextPart1$P.PrestigeSPIncrease$InfoLabelTextPart2); } defaultproperties { bIsPrestige=true - // TODO: localize Begin Object Name=YesButten - Tooltip="Prestige the perk (you can not undo this action!)" End Object } \ No newline at end of file From 4eb6bb074a3f9b7e57099523dbad0a4ba16fac08 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 1 Sep 2020 06:34:47 +0300 Subject: [PATCH 24/39] feat: MapRank localization --- Localization/INT/ServerExt.int | Bin 40936 -> 41352 bytes ServerExt/Classes/xUI_MapRank.uc | 33 +++++++++++++++++++++++++------ 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index ef4833353df0602d7d34627bdf0a3e38e8853961..65562d29ea07bf23159f018bea7b3db4cb7c4309 100644 GIT binary patch delta 270 zcmaE{pQ+<8(}oxGC*SJin!IZgpKlODB10ZSHbX1}F9R2YCy<@Skk1gpkjhZOP{Lr# zpv2(9kjaq3pukWG6fXtRIY53kP+kEjp8;eS16jF1QwkXDC&#y`vim^fC)dx?p8RJH zhb2fJp)wO_KBie9^ATzwrs+-QZ&&68*x$Xq9U=B6O)0=pi=bfC`w D58pjw delta 9 QcmeA;%=BVE(}oxG0T`(TE&u=k diff --git a/ServerExt/Classes/xUI_MapRank.uc b/ServerExt/Classes/xUI_MapRank.uc index 657cf24..a0c5614 100644 --- a/ServerExt/Classes/xUI_MapRank.uc +++ b/ServerExt/Classes/xUI_MapRank.uc @@ -2,11 +2,37 @@ Class xUI_MapRank extends KFGUI_Page; var xVotingReplication RepInfo; +var KFGUI_TextLable InfoLabel; +var KFGUI_Button YesButton; +var KFGUI_Button NoButton; + +var localized string InfoText; +var localized string YesButtonText; +var localized string YesButtonToolTip; +var localized string NoButtonText; +var localized string NoButtonToolTip; + +function InitMenu() +{ + Super.InitMenu(); + + YesButton = KFGUI_Button(FindComponentID('Yes')); + NoButton = KFGUI_Button(FindComponentID('No')); + InfoLabel = KFGUI_TextLable(FindComponentID('Info')); + + InfoLabel.SetText(InfoText); + YesButton.ButtonText=YesButtonText; + YesButton.ToolTip=YesButtonToolTip; + NoButton.ButtonText=NoButtonText; + NoButton.ToolTip=NoButtonToolTip; +} + function CloseMenu() { Super.CloseMenu(); RepInfo = None; } + function ButtonClicked( KFGUI_Button Sender ) { switch( Sender.ID ) @@ -32,15 +58,14 @@ defaultproperties XSize=0.3 YSize=0.2 - // TODO: localize Begin Object Class=KFGUI_TextLable Name=InfoLabel + ID="Info" XPosition=0.1 YPosition=0.15 XSize=0.8 YSize=0.35 AlignX=1 AlignY=1 - Text="Did you like this map?" End Object Begin Object Class=KFGUI_Button Name=YesButton XPosition=0.3 @@ -48,8 +73,6 @@ defaultproperties XSize=0.2 YSize=0.3 ID="Yes" - ButtonText="Like" - ToolTip="Press this if you liked this map." OnClickLeft=ButtonClicked OnClickRight=ButtonClicked ExtravDir=1 @@ -61,8 +84,6 @@ defaultproperties XSize=0.2 YSize=0.3 ID="No" - ButtonText="Dislike" - ToolTip="Press this if you disliked this map." OnClickLeft=ButtonClicked OnClickRight=ButtonClicked TextColor=(R=255,G=128,B=128,A=255) From a67c3f577bf914fc7fdae93a1d40ccc7b5ac51fc Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 1 Sep 2020 06:52:58 +0300 Subject: [PATCH 25/39] feat: Settings localization --- Localization/INT/ServerExt.int | Bin 41352 -> 43780 bytes ServerExt/Classes/UIP_Settings.uc | 49 ++++++++++++++++++++++-------- 2 files changed, 36 insertions(+), 13 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index 65562d29ea07bf23159f018bea7b3db4cb7c4309..b27fdae73efee1f345f5825990414647382f8e2a 100644 GIT binary patch delta 2134 zcma)7%Wl&^6us&WBsQdg5SyV?f(lWIu22LBp(u(JhyrOh?3~6lR%1Ijfzoc0MHUqj zLdajhhBg1dKky$c*>TP|-sF zhmtN3Jvp5-Hh}A4za^f8c)!H$$ssV2V~Ig3>||JS+34!ldQxrXf@%zdeV99x0Z31= zPVlu%K^6of-Gu1_T(2QD!sQ`&T-o6>SS81Ew32Yo5irp;;1c5W+w|7N?7QY#)DCme z;F^wGX6EIL?pYG*iB6F1scZNW1uKm&sJNhExdUyK$WT7wE{}JScetCwR~em?rjMr; zE8Y%S&V^)_M*IL};7b!-uqQRFJakikWuase3Nm%bC`!FpB4!*|t3=1$C1$f_=D5Zy zG-3e5O)s#CWAsC)@w@ZhvbB~Jst$*hk+&=K%8ER0vxm^Z94dJ* z&yT{~F$2-;j0Mo7wH(|f-mWZ zM&*Dj3@pN;2Vr&lKae(JBFqBnTGZPV5SQt9JwD(F|>%_=T-^^~e@-JXK c+?E}SVgO?YEaO7Fp5lCt@sC;J-gDsp0~;Wg3IG5A delta 9 QcmZp<#?*0`X+y_C02VU@g8%>k diff --git a/ServerExt/Classes/UIP_Settings.uc b/ServerExt/Classes/UIP_Settings.uc index 5ea3903..99505b9 100644 --- a/ServerExt/Classes/UIP_Settings.uc +++ b/ServerExt/Classes/UIP_Settings.uc @@ -6,6 +6,29 @@ var KFGUI_TextLable KeyBindLabel; var name CurKeybind; var bool bSetKeybind,bDelayedSet; +var localized string FirstPersonLegsText; +var localized string FirstPersonLegsToolTip; +var localized string HideNameBeaconsText; +var localized string HideNameBeaconsToolTip; +var localized string HideKillMessagesText; +var localized string HideKillMessagesToolTip; +var localized string HideDamageMessagesText; +var localized string HideDamageMessagesToolTip; +var localized string HideDamagePopupText; +var localized string HideDamagePopupToolTip; +var localized string UseKf2DeathMessagesText; +var localized string UseKf2DeathMessagesToolTip; +var localized string UseKf2KillMessagesText; +var localized string UseKf2KillMessagesToolTip; +var localized string DontBecomeZombieText; +var localized string DontBecomeZombieToolTip; +var localized string NoScreenShakeText; +var localized string NoScreenShakeToolTip; +var localized string ButtonToggleBehindviewKeybindText; +var localized string ButtonToggleBehindviewKeybindToolTip; +var localized string ButtonPressButtonText; +var localized string NotSetText; + function InitMenu() { Super.InitMenu(); @@ -13,22 +36,22 @@ function InitMenu() // Client settings SettingsBox = KFGUI_ComponentList(FindComponentID('SettingsBox')); - // TODO: localize //AddCheckBox("Text-To-Speech:","Enable Text-to-Speech talk for player chat messages",'TTS', bool bDefault ); - AddCheckBox("First person legs:","Show first person body",'FP',class'ExtPlayerController'.Default.bShowFPLegs); + AddCheckBox(FirstPersonLegsText,FirstPersonLegsToolTip,'FP',class'ExtPlayerController'.Default.bShowFPLegs); if( class'ExtPlayerController'.Default.bShowFPLegs ) ExtPlayerController(GetPlayer()).ToggleFPBody(false); - AddCheckBox("Hide name beacons:","Hide the player name beacons",'NB',class'ExtPlayerController'.Default.bHideNameBeacons); - AddCheckBox("Hide kill messages:","Hide player kill messages",'KM',class'ExtPlayerController'.Default.bHideKillMsg); - AddCheckBox("Hide damage messages:","Hide player damage messages",'DM',class'ExtPlayerController'.Default.bHideDamageMsg); - AddCheckBox("Hide damage popup:","Hide damage popup messages",'PP',class'ExtPlayerController'.Default.bHideNumberMsg); - AddCheckBox("Use KF2 DeathMessages:","Use KF2 death message display format.",'K2DM',class'ExtPlayerController'.Default.bUseKF2DeathMessages); - AddCheckBox("Use KF2 Kill Messages:","Use KF2 kill message display format.",'K2KM',class'ExtPlayerController'.Default.bUseKF2KillMessages); - KeyBindButton = AddButton("","Toggle Behindview keybind:","With this desired button you can toggle your behindview (click to change it)",'KB',KeyBindLabel); - AddCheckBox("Don't become zombie:","Disable zombie player mode (for game modes that support it)",'ZP',class'ExtPlayerController'.Default.bNoMonsterPlayer); - AddCheckBox("No screen shake:","Disable screen shake (from explosions)",'NS',class'ExtPlayerController'.Default.bNoScreenShake); + AddCheckBox(HideNameBeaconsText,HideNameBeaconsToolTip,'NB',class'ExtPlayerController'.Default.bHideNameBeacons); + AddCheckBox(HideKillMessagesText,HideKillMessagesToolTip,'KM',class'ExtPlayerController'.Default.bHideKillMsg); + AddCheckBox(HideDamageMessagesText,HideDamageMessagesToolTip,'DM',class'ExtPlayerController'.Default.bHideDamageMsg); + AddCheckBox(HideDamagePopupText,HideDamagePopupToolTip,'PP',class'ExtPlayerController'.Default.bHideNumberMsg); + AddCheckBox(UseKf2DeathMessagesText,UseKf2DeathMessagesToolTip,'K2DM',class'ExtPlayerController'.Default.bUseKF2DeathMessages); + AddCheckBox(UseKf2KillMessagesText,UseKf2KillMessagesToolTip,'K2KM',class'ExtPlayerController'.Default.bUseKF2KillMessages); + KeyBindButton = AddButton("",ButtonToggleBehindviewKeybindText,ButtonToggleBehindviewKeybindToolTip,'KB',KeyBindLabel); + AddCheckBox(DontBecomeZombieText,DontBecomeZombieToolTip,'ZP',class'ExtPlayerController'.Default.bNoMonsterPlayer); + AddCheckBox(NoScreenShakeText,NoScreenShakeToolTip,'NS',class'ExtPlayerController'.Default.bNoScreenShake); InitBehindviewKey(); } + final function InitBehindviewKey() { local PlayerInput IN; @@ -46,7 +69,7 @@ final function InitBehindviewKey() break; } } - KeyBindButton.ButtonText = (CurKeybind!='' ? string(CurKeybind) : ""); + KeyBindButton.ButtonText = (CurKeybind!='' ? string(CurKeybind) : NotSetText); } final function KFGUI_CheckBox AddCheckBox( string Cap, string TT, name IDN, bool bDefault ) { @@ -132,7 +155,7 @@ function ButtonClicked( KFGUI_Button Sender ) switch( Sender.ID ) { case 'KB': - KeyBindButton.ButtonText = "Press a button"; // TODO: localize + KeyBindButton.ButtonText = ButtonPressButtonText; KeyBindButton.SetDisabled(true); GrabKeyFocus(); bSetKeybind = true; From c74aa02086e1bac4d226a1e527fdbcc295fe2293 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 1 Sep 2020 07:02:33 +0300 Subject: [PATCH 26/39] feat: trait buy localization --- Localization/INT/ServerExt.int | Bin 43780 -> 44242 bytes ServerExt/Classes/UIR_TraitInfoPopup.uc | 22 ++++++++++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index b27fdae73efee1f345f5825990414647382f8e2a..3dc0f51f0237a44b346ae7faa0f422c28338adc0 100644 GIT binary patch delta 241 zcmZp<#&qc>(*~B+;k*o73?LlM5X#`m5X2DA5W-NzkjRk9Py*!VF{Cl%GXwx}0YfPe z$AZ;50of%$m=BZ(u`7XkQW+|MBDM@l5Ru6r>xEgta+4QM6P8BE`U1_aU{GMl0qQ6N z;vA4lb(ksnKr?fI=41lx0+|&6G`)x+nIQwHtC%5mvZ9vcaNHEptWgEIi0VL6)s delta 9 Qcmca~ld0tz(*~B+02opPX#fBK diff --git a/ServerExt/Classes/UIR_TraitInfoPopup.uc b/ServerExt/Classes/UIR_TraitInfoPopup.uc index f30c92f..73e0810 100644 --- a/ServerExt/Classes/UIR_TraitInfoPopup.uc +++ b/ServerExt/Classes/UIR_TraitInfoPopup.uc @@ -2,18 +2,32 @@ Class UIR_TraitInfoPopup extends KFGUI_FloatingWindow; var KFGUI_TextField TraitInfo; var KFGUI_Button YesButton; +var KFGUI_Button NoButton; var class MyTrait; var int TraitIndex; var Ext_PerkBase MyPerk; var int OldPoints,OldLevel; +var localized string ButtonBuyText; +var localized string ButtonBuyDisabledText; +var localized string ButtonBuyTooltip; +var localized string ButtonCancelText; +var localized string ButtonCancelTooltip; + function InitMenu() { TraitInfo = KFGUI_TextField(FindComponentID('Info')); YesButton = KFGUI_Button(FindComponentID('Yes')); + NoButton = KFGUI_Button(FindComponentID('No')); + + NoButton.ButtonText=ButtonCancelText; + NoButton.Tooltip=ButtonCancelTooltip; + YesButton.Tooltip=ButtonBuyTooltip; + Super.InitMenu(); } + function CloseMenu() { Super.CloseMenu(); @@ -45,12 +59,12 @@ function Timer() OldLevel = MyPerk.PerkTraits[TraitIndex].CurrentLevel; if( OldLevel>=MyTrait.Default.NumLevels ) { - YesButton.ButtonText = "Max level"; + YesButton.ButtonText = ButtonBuyDisabledText; YesButton.SetDisabled(true); return; } Cost = MyTrait.Static.GetTraitCost(OldLevel); - YesButton.ButtonText = "Buy ("$Cost$")"; // TODO: localize + YesButton.ButtonText = ButtonBuyText$" ("$Cost$")"; if( Cost>OldPoints || !MyTrait.Static.MeetsRequirements(OldLevel,MyPerk) ) YesButton.SetDisabled(true); else YesButton.SetDisabled(false); @@ -78,7 +92,6 @@ defaultproperties bAlwaysTop=true bOnlyThisFocus=true - // TODO: localize Begin Object Class=KFGUI_TextField Name=TraitInfoLbl ID="Info" XPosition=0.05 @@ -88,7 +101,6 @@ defaultproperties End Object Begin Object Class=KFGUI_Button Name=BuyButten ID="Yes" - Tooltip="Purchase this trait (you can not undo this action!)" XPosition=0.3 YPosition=0.91 XSize=0.19 @@ -99,8 +111,6 @@ defaultproperties End Object Begin Object Class=KFGUI_Button Name=CancelButten ID="No" - ButtonText="Cancel" - Tooltip="Abort without doing anything" XPosition=0.5 YPosition=0.91 XSize=0.19 From 6a2cf9260343da2aaa9fec1872bd5348a5577e74 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 1 Sep 2020 07:18:49 +0300 Subject: [PATCH 27/39] feat: AdminPerkLevel localization --- Localization/INT/ServerExt.int | Bin 44242 -> 45080 bytes ServerExt/Classes/UI_AdminPerkLevel.uc | 31 ++++++++++++++++++------- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index 3dc0f51f0237a44b346ae7faa0f422c28338adc0..7614f7d69a70b4951eb5c67925351c3048be4dc0 100644 GIT binary patch delta 284 zcmca~lWE2SrVW?YOlD~mnEY!d*W^omLX#Wj$gl=8q%xFDmhTtm&H=K@fH;RiX>#Kn z>B(IEI+Jg7$S{I=hG2CJK5#Yu3~3Cu3`z_TaRs0*m~I7ze4rf63>&}fVveJ3V>u0LpFo{lLgw9CjXgL#E-Dk321V~WWxsG$$hg$ q1oMEZ%h7ciflSK>iWUQ9VPgr($p8TI=}IC1 delta 9 RcmbR7fa%grrVW?Y000^Q1y%q6 diff --git a/ServerExt/Classes/UI_AdminPerkLevel.uc b/ServerExt/Classes/UI_AdminPerkLevel.uc index f43606f..5c48810 100644 --- a/ServerExt/Classes/UI_AdminPerkLevel.uc +++ b/ServerExt/Classes/UI_AdminPerkLevel.uc @@ -2,13 +2,34 @@ Class UI_AdminPerkLevel extends KFGUI_FloatingWindow; var KFGUI_NumericBox LevelBox; var int PlayerID,BaseValue; +var KFGUI_Button YesButton; +var KFGUI_Button NoButton; + +var localized string WindowTitleSetLevel; +var localized string WindowTitleSetPrestigeLevel; +var localized string WindowTitleSetLevelOf; +var localized string WindowTitleSetPrestigeLevelOf; +var localized string YesButtonText; +var localized string YesButtonToolTip; +var localized string NoButtonText; +var localized string NoButtonToolTip; +var localized string LevelBoxToolTip; function InitMenu() { Super.InitMenu(); LevelBox = KFGUI_NumericBox(FindComponentID('Edit')); + YesButton = KFGUI_Button(FindComponentID('Yes')); + NoButton = KFGUI_Button(FindComponentID('No')); + + YesButton.ButtonText=YesButtonText; + YesButton.Tooltip=YesButtonToolTip; + NoButton.ButtonText=NoButtonText; + NoButton.Tooltip=NoButtonToolTip; + LevelBox.Tooltip=LevelBoxToolTip; } + final function InitPage( int UserID, byte Mode ) { local PlayerReplicationInfo PRI; @@ -23,10 +44,10 @@ final function InitPage( int UserID, byte Mode ) } if( ExtPlayerReplicationInfo(PRI)==None ) { - WindowTitle = Mode==1 ? "Set level" : "Set prestige level"; // TODO: localize + WindowTitle = Mode==1 ? WindowTitleSetLevel : WindowTitleSetPrestigeLevel; return; } - WindowTitle = (Mode==1 ? "Set level of " : "Set prestige level of ")$PRI.GetHumanReadableName(); // TODO: localize + WindowTitle = (Mode==1 ? WindowTitleSetLevelOf : WindowTitleSetPrestigeLevelOf)$" "$PRI.GetHumanReadableName(); LevelBox.ChangeValue(string(Mode==1 ? ExtPlayerReplicationInfo(PRI).ECurrentPerkLevel : ExtPlayerReplicationInfo(PRI).ECurrentPerkPrestige)); BaseValue = (Mode==1 ? 100 : 100000); } @@ -53,11 +74,8 @@ defaultproperties bAlwaysTop=true bOnlyThisFocus=true - // TODO: localize Begin Object Class=KFGUI_Button Name=YesButten ID="Yes" - ButtonText="Submit" - Tooltip="Set the perk/prestige level" XPosition=0.4 YPosition=0.5 XSize=0.09 @@ -68,8 +86,6 @@ defaultproperties End Object Begin Object Class=KFGUI_Button Name=NoButten ID="No" - ButtonText="Cancel" - Tooltip="Abort without doing anything" XPosition=0.5 YPosition=0.5 XSize=0.09 @@ -79,7 +95,6 @@ defaultproperties End Object Begin Object Class=KFGUI_NumericBox Name=EditBox ID="Edit" - Tooltip="Enter the new perk/prestige level to set this player to." XPosition=0.05 YPosition=0.2 XSize=0.9 From 074115876c4fac19452616c6a948c5412b004dd6 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 1 Sep 2020 07:28:45 +0300 Subject: [PATCH 28/39] feat: PerkTraitList localization --- Localization/INT/ServerExt.int | Bin 45080 -> 45274 bytes ServerExt/Classes/UIR_PerkTraitList.uc | 28 +++++++++++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index 7614f7d69a70b4951eb5c67925351c3048be4dc0..8044df1342be66b35b5fdd4e8c9a9a4c4325d0b4 100644 GIT binary patch delta 180 zcmbR7fa%slrVSDs)Oi`W7(h6hA(X+BA&4QKA%G#3p@<=yAp}S!GGsE8F!(TJPCjTZ zTNeV9sQ~hA8I+J@6&Uh>>T-c{N??A6`N*na HVoD4EQnn(m delta 9 QcmcchkZHyPrVSDs02#3aumAu6 diff --git a/ServerExt/Classes/UIR_PerkTraitList.uc b/ServerExt/Classes/UIR_PerkTraitList.uc index a26723c..f8a6065 100644 --- a/ServerExt/Classes/UIR_PerkTraitList.uc +++ b/ServerExt/Classes/UIR_PerkTraitList.uc @@ -4,6 +4,30 @@ Class UIR_PerkTraitList extends KFGUI_ColumnList; var array ToolTip; var KFGUI_Tooltip ToolTipItem; +var localized string TraitNameText; +var localized string TraitLevelText; +var localized string TraitCostText; + +function InitMenu() +{ + local FColumnItem NameItem; + local FColumnItem LevelItem; + local FColumnItem CostItem; + + Super.InitMenu(); + + NameItem.Text=TraitNameText; + NameItem.Width=0.6; + LevelItem.Text=TraitLevelText; + LevelItem.Width=0.2; + CostItem.Text=TraitCostText; + CostItem.Width=0.2; + + Columns.AddItem(NameItem); + Columns.AddItem(LevelItem); + Columns.AddItem(CostItem); +} + function DrawMenu() { local int i,n,j; @@ -110,9 +134,5 @@ function NotifyMousePaused() defaultproperties { - // TODO: localize - Columns.Add((Text="Trait name",Width=0.6)) - Columns.Add((Text="Level",Width=0.2)) - Columns.Add((Text="Cost",Width=0.2)) bCanSortColumn=false } \ No newline at end of file From 4d473f5aa48b666a01711b7c54128b2aae5de811 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 1 Sep 2020 07:38:15 +0300 Subject: [PATCH 29/39] feat: PerkStat localization --- Localization/INT/ServerExt.int | Bin 45274 -> 45596 bytes ServerExt/Classes/UIR_PerkStat.uc | 13 +++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index 8044df1342be66b35b5fdd4e8c9a9a4c4325d0b4..cf391c75490b17beee25fc9d6137c61493ab0423 100644 GIT binary patch delta 195 zcmcchkZH~nrVY0?OlDavBpJYv%233R%@E8`!jK5Wu?)NnTnvs3DU%atC{Etf%A=S8 zR*}k}0F=!Kl1U7u43$8-7^ Date: Tue, 1 Sep 2020 07:39:41 +0300 Subject: [PATCH 30/39] fix: no localization here --- ServerExt/Classes/ExtEmoteList.uc | 1 - 1 file changed, 1 deletion(-) diff --git a/ServerExt/Classes/ExtEmoteList.uc b/ServerExt/Classes/ExtEmoteList.uc index d9e85b0..988ddac 100644 --- a/ServerExt/Classes/ExtEmoteList.uc +++ b/ServerExt/Classes/ExtEmoteList.uc @@ -67,7 +67,6 @@ static final function name GetEmoteFromIndex(byte EmoteIndex) defaultproperties { - // TODO: localize Emotes.Add((Id=4515, ItemName = "LetsGetCrazy", AnimName="Emote_01_LetsGetCrazy", IconPath="EMOTE_TEX.Emote_LetsGoCrazy_512")) Emotes.Add((Id=4516, ItemName = "ThunderClap", AnimName="Emote_02_ThunderClap", IconPath="EMOTE_TEX.Emote_Thunderclap_512")) Emotes.Add((Id=4517, ItemName = "UncleCharlie", AnimName="Emote_03_UncleCharlie", IconPath="EMOTE_TEX.Emote_UncleCharlie_512")) From 968703993396ad525541ad5c84e154000310789e Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 1 Sep 2020 09:25:21 +0300 Subject: [PATCH 31/39] feat: PlayerStats localization --- Localization/INT/ServerExt.int | Bin 45596 -> 46836 bytes ServerExt/Classes/UIP_PlayerSpecs.uc | 86 ++++++++++++++++++++------- 2 files changed, 63 insertions(+), 23 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index cf391c75490b17beee25fc9d6137c61493ab0423..3595f78a5da81829c4777040b315b7c0ed7331b1 100644 GIT binary patch delta 803 zcmbR9gz3v$rVTQiCg0k?H+e%b%Ve2i8NpzN42FD$a)w}r5{5(|E}k6NBB>1%RX~U{ zC^7IdZ~^(~>J6vLTf#&YfF@)xq%tTl6vNB|vhx|zfFw*NnW2=S2nbUd@)$}cPqY%& z%>=SQI#Pk6WndCwR|rsN0Yd;o4$x(lK>e8vxeTcw_ZdQD6o9fQa!@y7(KlIts-ixo zD@(vOV49=Aki<|4a+@f`ZHYj8au{^sZaCSZ$q%u`8|W&K95~$6VeZO?iK4g&p%xfs znz&tq&`pFpxFL4BGE^`WfWk%|<_1@W2w>PDha^M|&~8=Sc0+U#VXr(aUO=(t3=GE{ zV7%r6V=@F7gB8G-Rh%de4i8Ye%3*-}9jn^#iHh|gcSF>I-HA;dgDucM2z3e!=zfIg Rhq(-zVu&&+VDj^cq5! UserID; }; + var FPageExtraInfo ExtraInfo[3]; var KFGUI_ColumnList PlayersList,TopPlayers[3]; var KFGUI_SwitchComponent MultiPager; @@ -12,6 +13,31 @@ var byte CurrentPageStatus[3]; var KFGUI_Button PreviousButton; var bool bDownloadingPage; +var KFGUI_Button TopPlaytimeButton; +var KFGUI_Button TopKillsButton; +var KFGUI_Button TopExpButton; + +var localized string ShowStatsButtonText; +var localized string ShowStatsButtonToolTip; +var localized string TopPlaytimeButtonText; +var localized string TopPlaytimeButtonToolTip; +var localized string TopKillsButtonText; +var localized string TopKillsButtonToolTip; +var localized string TopExpButtonText; +var localized string TopExpButtonToolTip; +var localized string PlayerColumnText; +var localized string TotalKillsColumnText; +var localized string TotalExpColumnText; +var localized string TotalPlaytimeColumnText; + +function FColumnItem NewFColumnItem(string Text, float Width) +{ + local FColumnItem NewItem; + NewItem.Text = Text; + NewItem.Width = Width; + return NewItem; +} + function InitMenu() { PreviousButton = KFGUI_Button(FindComponentID('Init')); @@ -21,6 +47,40 @@ function InitMenu() TopPlayers[1] = KFGUI_ColumnList(FindComponentID('Kills')); TopPlayers[2] = KFGUI_ColumnList(FindComponentID('EXP')); MultiPager = KFGUI_SwitchComponent(FindComponentID('Pager')); + + TopPlaytimeButton=KFGUI_Button(FindComponentID('Playtime')); + TopKillsButton=KFGUI_Button(FindComponentID('Kills')); + TopExpButton=KFGUI_Button(FindComponentID('Exp')); + + PreviousButton.ButtonText=ShowStatsButtonText; + PreviousButton.Tooltip=ShowStatsButtonToolTip; + + TopPlaytimeButton.ButtonText=TopPlaytimeButtonText; + TopPlaytimeButton.Tooltip=TopPlaytimeButtonToolTip; + + TopKillsButton.ButtonText=TopKillsButtonText; + TopKillsButton.Tooltip=TopKillsButtonToolTip; + + TopExpButton.ButtonText=TopExpButtonText; + TopExpButton.Tooltip=TopExpButtonToolTip; + + PlayersList.Columns.AddItem(NewFColumnItem(PlayerColumnText,0.55)); + PlayersList.Columns.AddItem(NewFColumnItem(TotalKillsColumnText,0.15)); + PlayersList.Columns.AddItem(NewFColumnItem(TotalExpColumnText,0.15)); + PlayersList.Columns.AddItem(NewFColumnItem(TotalPlaytimeColumnText,0.15)); + + TopPlayers[0].Columns.AddItem(NewFColumnItem("#",0.05)); + TopPlayers[0].Columns.AddItem(NewFColumnItem(PlayerColumnText,0.7)); + TopPlayers[0].Columns.AddItem(NewFColumnItem(TotalPlaytimeColumnText,0.25)); + + TopPlayers[1].Columns.AddItem(NewFColumnItem("#",0.05)); + TopPlayers[1].Columns.AddItem(NewFColumnItem(PlayerColumnText,0.7)); + TopPlayers[1].Columns.AddItem(NewFColumnItem(TotalKillsColumnText,0.25)); + + TopPlayers[2].Columns.AddItem(NewFColumnItem("#",0.05)); + TopPlayers[2].Columns.AddItem(NewFColumnItem(PlayerColumnText,0.7)); + TopPlayers[2].Columns.AddItem(NewFColumnItem(TotalExpColumnText,0.25)); + Super.InitMenu(); } function ShowMenu() @@ -166,10 +226,7 @@ function SelectedRow( KFGUI_ListItem Item, int Row, bool bRight, bool bDblClick defaultproperties { - // TODO: localize Begin Object Class=KFGUI_Button Name=B_ShowStats - ButtonText="Show Stats" - Tooltip="Show the stats of the current players in server" XPosition=0.05 YPosition=0.05 XSize=0.1 @@ -180,8 +237,7 @@ defaultproperties OnClickRight=ButtonClicked End Object Begin Object Class=KFGUI_Button Name=B_ShowTopTime - ButtonText="Top playtime" - Tooltip="Show the top playtime by players in all-time from this server" + ID="Playtime" XPosition=0.35 YPosition=0.05 XSize=0.1 @@ -191,8 +247,7 @@ defaultproperties OnClickRight=ButtonClicked End Object Begin Object Class=KFGUI_Button Name=B_ShowTopKills - ButtonText="Top kills" - Tooltip="Show the top kills by players in all-time from this server" + ID="Kills" XPosition=0.6 YPosition=0.05 XSize=0.1 @@ -202,8 +257,7 @@ defaultproperties OnClickRight=ButtonClicked End Object Begin Object Class=KFGUI_Button Name=B_ShowTopEXP - ButtonText="Top EXP" - Tooltip="Show the top EXP by players in all-time from this server" + ID="Exp" XPosition=0.85 YPosition=0.05 XSize=0.1 @@ -223,34 +277,20 @@ defaultproperties XSize=0.9 YSize=0.85 ID="Pager" - Begin Object Class=KFGUI_ColumnList Name=PlayerList ID="Players" - Columns.Add((Text="Player",Width=0.55)) - Columns.Add((Text="Total Kills",Width=0.15)) - Columns.Add((Text="Total EXP",Width=0.15)) - Columns.Add((Text="Total PlayTime",Width=0.15)) OnSelectedRow=SelectedRow End Object Begin Object Class=KFGUI_ColumnList Name=TopPlaytimes ID="PlayTimes" - Columns.Add((Text="#",Width=0.05)) - Columns.Add((Text="Player",Width=0.7)) - Columns.Add((Text="Total PlayTime",Width=0.25)) OnSelectedRow=SelectedRow End Object Begin Object Class=KFGUI_ColumnList Name=TopKills ID="Kills" - Columns.Add((Text="#",Width=0.05)) - Columns.Add((Text="Player",Width=0.7)) - Columns.Add((Text="Total Kills",Width=0.25)) OnSelectedRow=SelectedRow End Object Begin Object Class=KFGUI_ColumnList Name=TopExp ID="EXP" - Columns.Add((Text="#",Width=0.05)) - Columns.Add((Text="Player",Width=0.7)) - Columns.Add((Text="Total EXP",Width=0.25)) OnSelectedRow=SelectedRow End Object Components.Add(PlayerList) From 46bc9fa44334db3f14e8180c8eeeef2ff84abd50 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 1 Sep 2020 09:56:14 +0300 Subject: [PATCH 32/39] feat: Scoreboard localization --- Localization/INT/ServerExt.int | Bin 46836 -> 48350 bytes ServerExt/Classes/UI_Scoreboard.uc | 85 +++++++++++++++++++++-------- 2 files changed, 62 insertions(+), 23 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index 3595f78a5da81829c4777040b315b7c0ed7331b1..e08dd6e52b5ecd8ed6cdedc084f70b50099fc50e 100644 GIT binary patch delta 1407 zcmah}%Ps^#6g`o6L_%UQ#D->rSlJ4Tp}peObR!lPV`i9%G1Hkg9;=S9wCjl9u(I(l z{=m-0&Z+7usz!@Udb(0|&b{ZJy0<^xJKjD!o86FzwL^B6wyEvWgPQe;Hrcp z^r064syOFqln8*0{-YnMws@aoHx}XLmLk zxXZ;tyq(%dNKTQF3w+XZ9dnf@1(qlTA8^$k{Q!CFV@Z`~qD_T{B{4nNAnA~#-3*#b z0TC*eH!il}V>JW4&VpQ&O zp_2V)>bFC*jEZ%X^ulX&!EPjTUpijlOzvV)4o(qgSf=_W4G&4Rduo!nDzCr76Nkeh zMolmroJfwtf5EEqT_<-+6{LnM*|{H{_Q`JGikz&GOTE|lnaA9sh!(2vNQ1dgnYB!| zn2$70B->34WmE3|8f1?AP#h318vc)wY*QmL2;&4J>xTDvQf3uqG>`ckbV5v{{RJd? WP{Qp{v>=0 ) { C.DrawColor = SBTextColor; - S = "Respawn: "$FormatTimeSM(PRI.RespawnCounter); + S = RespawnText$" "$FormatTimeSM(PRI.RespawnCounter); } while( true ) // Make sure too long name doesn't overleap. { @@ -445,7 +491,7 @@ function DrawPlayerEntry( Canvas C, int Index, float YOffset, float Height, floa } // Ping - DrawCenteredText(PRI.bBot ? "BOT" : string(PRI.Ping*4),PingXPos,YPos,SBFontSize); + DrawCenteredText(PRI.bBot ? BotText : string(PRI.Ping*4),PingXPos,YPos,SBFontSize); // Draw health. if( !bShowSpectatorsOnly ) @@ -456,7 +502,7 @@ function DrawPlayerEntry( Canvas C, int Index, float YOffset, float Height, floa C.DrawTile(HealthIcon,(Height-12)*0.5,(Height-12)*0.5,0,0,256,256); } if( PRI.PlayerHealth<=0 || PRI.PlayerHealthPercent<=0 ) - DrawCenteredText("DEAD",6+(Height-12)*0.5,YOffset+Height*0.45,SBFontSize*0.95); + DrawCenteredText(DeadText,6+(Height-12)*0.5,YOffset+Height*0.45,SBFontSize*0.95); else DrawCenteredText(string(PRI.PlayerHealth),6+(Height-12)*0.5,YOffset+Height*0.45,SBFontSize*0.95); } } @@ -475,7 +521,7 @@ function ClickedPlayer( int Index, bool bRight, int MouseX, int MouseY ) PlayerContext.ItemRows[0].bDisabled = (PlayerIndex==Index || !PC.IsSpectating()); PlayerContext.ItemRows[1].bDisabled = RightClickPlayer.bBot; PlayerContext.ItemRows[2].bDisabled = (PlayerIndex==Index || RightClickPlayer.bBot); - PlayerContext.ItemRows[2].Text = (PlayerContext.ItemRows[2].bDisabled || PC.IsPlayerMuted(RightClickPlayer.UniqueId)) ? "Unmute player" : "Mute player"; + PlayerContext.ItemRows[2].Text = (PlayerContext.ItemRows[2].bDisabled || PC.IsPlayerMuted(RightClickPlayer.UniqueId)) ? UnmutePlayerText : MutePlayerText; if( PlayerIndex==Index ) // Selected self. { @@ -510,13 +556,13 @@ function SelectedRCItem( int Index ) case 2: // Mute voice. if( !PC.IsPlayerMuted(RightClickPlayer.UniqueId) ) { - PC.ClientMessage("You've muted "$RightClickPlayer.TaggedPlayerName); + PC.ClientMessage(YouveMutedText$" "$RightClickPlayer.TaggedPlayerName); PC.ClientMutePlayer(RightClickPlayer.UniqueId); RightClickPlayer.bIsMuted = true; } else { - PC.ClientMessage("You've unmuted "$RightClickPlayer.TaggedPlayerName); + PC.ClientMessage(YouveUnmutedText$" "$RightClickPlayer.TaggedPlayerName); PC.ClientUnmutePlayer(RightClickPlayer.UniqueId); RightClickPlayer.bIsMuted = false; } @@ -542,10 +588,10 @@ function ShowPlayerTooltip( int Index ) ToolTipItem.ParentComponent = Self; ToolTipItem.InitMenu(); } - S = "Player: "$PRI.TaggedPlayerName$"|Health: "$(PRI.PlayerHealthPercent<=0 ? "0" : string(PRI.PlayerHealth)); + S = PlayerText$" "$PRI.TaggedPlayerName$"|"$HealthText$" "$(PRI.PlayerHealthPercent<=0 ? "0" : string(PRI.PlayerHealth)); if( PRI.ShowAdminName() ) S = S$"|"$PRI.GetAdminName(); - S = S$"|(Right click for options)"; + S = S$"|"$RClickForOptsText; ToolTipItem.SetText(S); ToolTipItem.ShowMenu(); ToolTipItem.CompPos[0] = Owner.MousePosition.X; @@ -570,7 +616,6 @@ defaultproperties SBTextColor=(R=250,G=250,B=250,A=255) ScoreboardSpacing=4 - // TODO: localize Begin Object Class=KFGUI_List Name=PlayerList bDrawBackground=false OnDrawItem=DrawPlayerEntry @@ -581,8 +626,6 @@ defaultproperties End Object Begin Object Class=KFGUI_Button Name=B_ShowSpecs ID="Spec" - ButtonText="Show Spectators" - Tooltip="Toggle show server spectators" XPosition=0.67 YPosition=0.95 XSize=0.09 @@ -595,10 +638,6 @@ defaultproperties Components.Add(B_ShowSpecs) Begin Object Class=KFGUI_RightClickMenu Name=PlayerContextMenu - ItemRows.Add((Text="Spectate this player")) - ItemRows.Add((Text="View player Steam profile")) - ItemRows.Add((Text="Mute")) - ItemRows.Add((bSplitter=true)) OnSelectedItem=SelectedRCItem OnBecameHidden=HidRightClickMenu End Object From 6879c4ccd7b90f2f518601f1bc907e8525b319fe Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 1 Sep 2020 10:19:52 +0300 Subject: [PATCH 33/39] feat: Scoreboard localization part2 --- Localization/INT/ServerExt.int | Bin 48350 -> 48642 bytes ServerExt/Classes/UI_Scoreboard.uc | 7 +-- ServerExt/Classes/UI_Scoreboard_CD.uc | 74 ++++++++++++++++---------- 3 files changed, 51 insertions(+), 30 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index e08dd6e52b5ecd8ed6cdedc084f70b50099fc50e..3ec2e4805e14d33dc0a1bbf1776b5b62087418ea 100644 GIT binary patch delta 338 zcmccjld0(s(+0EclP$LEu_`g}GH^{kzf*E@#CD#^Q?{#37HSrmd;v&L*v+>2-}XAj z&2>BT7&pJ$^?`9ROQXP~?IQK@49*NL46z`c3?2-r42cXWK(dG-08C~xgaGLZh7tx_ z1|^`FD?<>2H;{#{IvA)T5r|V!)CU83jzH{+MMn@&eI7%0J&J}PpmIOB1uj72%78eB yA)lcDNEe}~#gv6OD-5U_CPx9hW8F(@(cGH^}S-674L!;r{O$&kuW#9%eKce^@Jg=0 ) { C.DrawColor = SBTextColor; - S = RespawnText$" "$FormatTimeSM(PRI.RespawnCounter); + S = RespawnText$": "$FormatTimeSM(PRI.RespawnCounter); } while( true ) // Make sure too long name doesn't overleap. { @@ -588,7 +589,7 @@ function ShowPlayerTooltip( int Index ) ToolTipItem.ParentComponent = Self; ToolTipItem.InitMenu(); } - S = PlayerText$" "$PRI.TaggedPlayerName$"|"$HealthText$" "$(PRI.PlayerHealthPercent<=0 ? "0" : string(PRI.PlayerHealth)); + S = PlayerText$": "$PRI.TaggedPlayerName$"|"$HealthText$": "$(PRI.PlayerHealthPercent<=0 ? "0" : string(PRI.PlayerHealth)); if( PRI.ShowAdminName() ) S = S$"|"$PRI.GetAdminName(); S = S$"|"$RClickForOptsText; diff --git a/ServerExt/Classes/UI_Scoreboard_CD.uc b/ServerExt/Classes/UI_Scoreboard_CD.uc index 522e9e4..efae702 100644 --- a/ServerExt/Classes/UI_Scoreboard_CD.uc +++ b/ServerExt/Classes/UI_Scoreboard_CD.uc @@ -3,6 +3,34 @@ class UI_Scoreboard_CD extends UI_Scoreboard; var transient float AdminXPos, PerkXPos, PlayerXPos, StateXPos, TimeXPos; var int MaxPlayerCount; +var localized string HeaderPerkText; +var localized string HeaderStateText; +var localized string HeaderRankText; +var localized string DeveloperText; +var localized string VoteKickText; + +function FRowItem NewFRowItem(string Text, bool isSplitter) +{ + local FRowItem newItem; + newItem.Text=Text; + newItem.bSplitter=isSplitter; + return newItem; +} + +function InitMenu() +{ + Super.InitMenu(); + + SpecButton.ButtonText=SpecButtonText; + SpecButton.Tooltip=SpecButtonTooltip; + + PlayerContext.ItemRows.AddItem(NewFRowItem(SpectateThisPlayerText, false)); + PlayerContext.ItemRows.AddItem(NewFRowItem(ViewPlayerProfileText, false)); + PlayerContext.ItemRows.AddItem(NewFRowItem(MuteText, false)); + PlayerContext.ItemRows.AddItem(NewFRowItem(VoteKickText, false)); + PlayerContext.ItemRows.AddItem(NewFRowItem("", true)); +} + static final function string FormatTimeSMH (float Sec) { local int Hours, Seconds, Minutes; @@ -112,7 +140,7 @@ function DrawMenu() Canvas.TextSize (S, XL, YL, FontScalar, FontScalar); XPos += XL; - S = " | WAVE " $KFGRI.WaveNum; + S = " | "$HeaderWaveText$" " $KFGRI.WaveNum; Canvas.SetPos (XPos, YPos); Canvas.DrawText (S, , FontScalar, FontScalar); Canvas.TextSize (S, XL, YL, FontScalar, FontScalar); @@ -133,7 +161,7 @@ function DrawMenu() XPos = XPosCenter; YPos += YL; - S = " Players : " $NumPlayer $" | Alive : " $NumAlivePlayer $" | Spectators : " $NumSpec $" "; + S = " "$PlayersText$" : " $NumPlayer $" | "$AliveText$" : " $NumAlivePlayer $" | "$SpectatorsText$" : " $NumSpec $" "; Canvas.TextSize (S, XL, YL, FontScalar, FontScalar); XPos -= (XL * 0.5); @@ -144,19 +172,19 @@ function DrawMenu() Canvas.DrawColor = MakeColor (250, 250, 0, 255); XPos += 5; - S = "Players : " $NumPlayer; + S = PlayersText$" : " $NumPlayer; Canvas.SetPos (XPos, YPos); Canvas.DrawText (S, , FontScalar, FontScalar); Canvas.TextSize (S, XL, YL, FontScalar, FontScalar); XPos += XL; - S = " | Alive : " $NumAlivePlayer; + S = " | "$AliveText$" : " $NumAlivePlayer; Canvas.SetPos (XPos, YPos); Canvas.DrawText (S, , FontScalar, FontScalar); Canvas.TextSize (S, XL, YL, FontScalar, FontScalar); XPos += XL; - S = " | Spectators : " $NumSpec; + S = " | "$SpectatorsText$" : " $NumSpec; Canvas.SetPos (XPos, YPos); Canvas.DrawText (S, , FontScalar, FontScalar); @@ -185,29 +213,29 @@ function DrawMenu() if( !bShowSpectatorsOnly ) { Canvas.SetPos (XPos + PerkXPos, YPos); - Canvas.DrawText ("PERK", , FontScalar, FontScalar); + Canvas.DrawText (HeaderPerkText, , FontScalar, FontScalar); Canvas.SetPos (XPos + KillsXPos, YPos); - Canvas.DrawText ("KILLS", , FontScalar, FontScalar); + Canvas.DrawText (HeaderKillsText, , FontScalar, FontScalar); Canvas.SetPos (XPos + AssistXPos, YPos); - Canvas.DrawText ("ASSISTS", , FontScalar, FontScalar); + Canvas.DrawText (HeaderAssistText, , FontScalar, FontScalar); Canvas.SetPos (XPos + CashXPos, YPos); - Canvas.DrawText ("DOSH", , FontScalar, FontScalar); + Canvas.DrawText (HeaderDoshText, , FontScalar, FontScalar); Canvas.SetPos (XPos + StateXPos, YPos); - Canvas.DrawText ("STATE", , FontScalar, FontScalar); + Canvas.DrawText (HeaderStateText, , FontScalar, FontScalar); } Canvas.SetPos (XPos, YPos); - Canvas.DrawText ("RANK", , FontScalar, FontScalar); + Canvas.DrawText (HeaderRankText, , FontScalar, FontScalar); Canvas.SetPos (XPos + PlayerXPos, YPos); - Canvas.DrawText ("PLAYER", , FontScalar, FontScalar); + Canvas.DrawText (HeaderPlayerText, , FontScalar, FontScalar); Canvas.SetPos (XPos + PingXPos, YPos); - Canvas.DrawText ("PING", , FontScalar, FontScalar); + Canvas.DrawText (HeaderPingText, , FontScalar, FontScalar); PRIList.Length = (bShowSpectatorsOnly ? NumSpec : NumPlayer); j = PRIList.Length; @@ -298,7 +326,7 @@ function DrawPlayerEntry( Canvas C, int Index, float YOffset, float Height, floa else { C.DrawColor = MakeColor (250, 250, 250, 255); - S = "No Perk"; + S = NoPerkText; C.SetPos (0.f + PerkXPos + Height, YOffset); C.DrawText (S, , FontScalar, FontScalar); } @@ -326,12 +354,12 @@ function DrawPlayerEntry( Canvas C, int Index, float YOffset, float Height, floa } else if( KFPRI.bIsDev ) { - S = "Developer"; + S = DeveloperText; C.DrawColor = MakeColor(130,255,235,255); } else { - S = "Player"; + S = PlayerText; C.DrawColor = MakeColor(255,255,255,255); } @@ -367,7 +395,7 @@ function DrawPlayerEntry( Canvas C, int Index, float YOffset, float Height, floa if (KFPRI.PlayerHealth <= 0 || KFPRI.PlayerHealthPercent <= 0) { C.DrawColor = MakeColor (250, 0, 0, 255); - S = "DEAD"; + S = DeadText; } else { @@ -421,10 +449,10 @@ function ShowPlayerTooltip( int Index ) ToolTipItem.ParentComponent = Self; ToolTipItem.InitMenu(); } - S = "Player: "$PRI.TaggedPlayerName$"|Health: "$(PRI.PlayerHealthPercent<=0 ? "0" : string(PRI.PlayerHealth)); + S = PlayerText$": "$PRI.TaggedPlayerName$"|"$HealthText$": "$(PRI.PlayerHealthPercent<=0 ? "0" : string(PRI.PlayerHealth)); if( PRI.ShowAdminName() ) S = S$"|"$PRI.GetAdminName(); - S = S$"|(Right click for options)"; + S = S$"|"$RClickForOptsText; ToolTipItem.SetText(S); ToolTipItem.ShowMenu(); ToolTipItem.CompPos[0] = Owner.MousePosition.X; @@ -487,7 +515,6 @@ defaultproperties Components.Empty - // TODO: localize Begin Object Class=KFGUI_List_CD Name=PlayerList bDrawBackground=false OnDrawItem=DrawPlayerEntry @@ -498,8 +525,6 @@ defaultproperties End Object Begin Object Class=KFGUI_Button_CD Name=B_ShowSpecs ID="Spec" - ButtonText="Show Spectators" - Tooltip="Toggle show server spectators" XPosition=0.67 YPosition=0.965 XSize=0.09 @@ -511,11 +536,6 @@ defaultproperties Components.Add(B_ShowSpecs) Begin Object Class=KFGUI_RightClickMenu_CD Name=PlayerContextMenu - ItemRows.Add((Text="Spectate this player")) - ItemRows.Add((Text="View player Steam profile")) - ItemRows.Add((Text="Mute Player")) - ItemRows.Add((Text="Vote kick player")) - ItemRows.Add((bSplitter=true)) OnSelectedItem=SelectedRCItem OnBecameHidden=HidRightClickMenu End Object From a4bd2fdec2a9f3bb9db170354a803c1c6fcc9e82 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 1 Sep 2020 10:23:42 +0300 Subject: [PATCH 34/39] fix: remove spaces --- Localization/INT/ServerExt.int | Bin 48642 -> 48634 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index 3ec2e4805e14d33dc0a1bbf1776b5b62087418ea..54c348bf6c5b032de9c32b27d87fc4f71a2d64dc 100644 GIT binary patch delta 29 lcmZqr!}RMn(}u3<%{|qZxHc!W6|ir<)VqdbbHlVIbpY-^4+{VQ delta 51 zcmezMo2ls!(}u2UMup9t)t9*#6($!hke=Mo#I?Dh&4(Q*db)Ql2eSf$(&UX(6*teC HmY@y*Ln0LS From a7e39266cc2ff46e6867b75dcf3d812c601ccc57 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 1 Sep 2020 11:07:53 +0300 Subject: [PATCH 35/39] feat: stats localization --- Localization/INT/ServerExt.int | Bin 48634 -> 50200 bytes ServerExt/Classes/Ext_PerkBase.uc | 102 ++++++++++++++++++++++-------- 2 files changed, 76 insertions(+), 26 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index 54c348bf6c5b032de9c32b27d87fc4f71a2d64dc..bacb6802e7e26a200928f0e1952e741f9821c627 100644 GIT binary patch delta 1515 zcmb7EJxc>Y5Pd|k5NvF;JOo7%D+?=&pb;y6m>4iEMo!lSmH?^W0Od2t_Gt7WuN~EP8sccf;1PP z%z!GdZlYxXw)mCM7Qpw|U5rbf6<;15NlBukEGb1xZ8qxqD_q&=G?oLiRS3!nrePF1@{7p=(?wiDFFwW^RRGu_zIb|zX>vw<>WvnyvDwi~06}Lao z*d@`1Az;5E+%fKqkpVX7J2#0md80!~hqIAZiA=ND?vHRofFk8@Q=fbl_6%9SyCvRQ zSN`Asp%Jy-H!cFG_JKh%Q(@ zxWA#j+IuU_tZD2hMTL%((Zz-aD~nytkJTA+k(ovAM4o}Ow?~roFl*F%( zKkdJZX4^9M5mM7_Zf5n!;5B(9wbSj3c4FF2AIy+lnou+uA@}OJGeUk=Uh7fM-Zwp- B^FROq delta 9 QcmbQy!Tjqt(}rJr0U1ICf&c&j diff --git a/ServerExt/Classes/Ext_PerkBase.uc b/ServerExt/Classes/Ext_PerkBase.uc index a6b45b4..664e309 100644 --- a/ServerExt/Classes/Ext_PerkBase.uc +++ b/ServerExt/Classes/Ext_PerkBase.uc @@ -64,7 +64,6 @@ struct FDefPerkStat var int MaxValue,CostPerValue; var float Progress; var name StatType; - var string UIName; var bool bHiddenConfig; // Hide this config by default. }; var() array DefPerkStats; @@ -89,6 +88,57 @@ var() array EnemyDistDraw; var bool bOwnerNetClient,bClientAuthorized,bPerkNetReady,bHasNightVision,bCanBeGrabbed,bExplosiveWeld,bExplodeOnContact,bNapalmFire,bFireExplode,bToxicDart,bTacticalReload,bHeavyArmor,bHasSWATEnforcer; +var localized string StatSpeed; +var localized string StatDamage; +var localized string StatRecoil; +var localized string StatSpread; +var localized string StatRate; +var localized string StatReload; +var localized string StatHealth; +var localized string StatKnockDown; +var localized string StatWelder; +var localized string StatHeal; +var localized string StatMag; +var localized string StatSpare; +var localized string StatOffDamage; +var localized string StatSelfDamage; +var localized string StatArmor; +var localized string StatPoisonDmg; +var localized string StatSonicDmg; +var localized string StatFireDmg; +var localized string StatAllDmg; +var localized string StatHeadDamage; +var localized string StatHealRecharge; + +function string UIName(FDefPerkStat DefPerkStat) +{ + switch( DefPerkStat.StatType ) + { + case name("Speed"): return StatSpeed; + case name("Damage"): return StatDamage; + case name("Recoil"): return StatRecoil; + case name("Spread"): return StatSpread; + case name("Rate"): return StatRate; + case name("Reload"): return StatReload; + case name("Health"): return StatHealth; + case name("KnockDown"): return StatKnockDown; + case name("Welder"): return StatWelder; + case name("Heal"): return StatHeal; + case name("Mag"): return StatMag; + case name("Spare"): return StatSpare; + case name("OffDamage"): return StatOffDamage; + case name("SelfDamage"): return StatSelfDamage; + case name("Armor"): return StatArmor; + case name("PoisonDmg"): return StatPoisonDmg; + case name("SonicDmg"): return StatSonicDmg; + case name("FireDmg"): return StatFireDmg; + case name("AllDmg"): return StatAllDmg; + case name("HeadDamage"): return StatHeadDamage; + case name("HealRecharge"): return StatHealRecharge; + } + return ""; +} + replication { // Things the server should send to the client. @@ -152,13 +202,13 @@ simulated function PostBeginPlay() { i = DefPerkStats.Find('StatType',PerkStats[j].StatType); if( i>=0 ) - PerkStats[j].UIName = DefPerkStats[i].UIName; + PerkStats[j].UIName = UIName(DefPerkStats[i]); else { // Fallback to parent perk for trying to find name. i = Class'Ext_PerkBase'.Default.DefPerkStats.Find('StatType',PerkStats[j].StatType); if( i>=0 ) - PerkStats[j].UIName = Class'Ext_PerkBase'.Default.DefPerkStats[i].UIName; + PerkStats[j].UIName = UIName(Class'Ext_PerkBase'.Default.DefPerkStats[i]); else PerkStats[j].UIName = string(PerkStats[j].StatType); // Fallback to stat name then... } } @@ -231,13 +281,13 @@ reliable client simulated function ClientReceiveStat( int Index, int MaxValue, i } i = DefPerkStats.Find('StatType',Type); if( i>=0 ) - PerkStats[Index].UIName = DefPerkStats[i].UIName; + PerkStats[Index].UIName = UIName(DefPerkStats[i]); else { // Fallback to parent perk for trying to find name. i = Class'Ext_PerkBase'.Default.DefPerkStats.Find('StatType',Type); if( i>=0 ) - PerkStats[Index].UIName = Class'Ext_PerkBase'.Default.DefPerkStats[i].UIName; + PerkStats[Index].UIName = UIName(Class'Ext_PerkBase'.Default.DefPerkStats[i]); else PerkStats[Index].UIName = string(Type); // Fallback to stat name then... } } @@ -1448,27 +1498,27 @@ defaultproperties // WebConfigs.Add((PropType=0,PropName="MinimalDataLevel",UIName="Minimal Real Level",UIDesc="Minimal level for new players or who loads from saves")) // TODO: localize - DefPerkStats(0)=(MaxValue=50,CostPerValue=1,StatType="Speed",UIName="Movement Speed (+&%)",Progress=0.4) - DefPerkStats(1)=(MaxValue=1000,CostPerValue=1,StatType="Damage",UIName="Perk Damage (+&%)",Progress=0.5) - DefPerkStats(2)=(MaxValue=90,CostPerValue=1,StatType="Recoil",UIName="Fire Recoil Reduce (+&%)",Progress=1) - DefPerkStats(3)=(MaxValue=80,CostPerValue=1,StatType="Spread",UIName="Fire Spread Reduce (+&%)",Progress=0.75) - DefPerkStats(4)=(MaxValue=1000,CostPerValue=1,StatType="Rate",UIName="Perk Rate of Fire (+&%)",Progress=0.5) - DefPerkStats(5)=(MaxValue=1000,CostPerValue=1,StatType="Reload",UIName="Perk Reload Time (-&%)",Progress=0.5) - DefPerkStats(6)=(MaxValue=150,CostPerValue=1,StatType="Health",UIName="Health (+&HP)",Progress=1) - DefPerkStats(7)=(MaxValue=100,CostPerValue=1,StatType="KnockDown",UIName="Knockback (+&%)",Progress=1) - DefPerkStats(8)=(MaxValue=200,CostPerValue=1,StatType="Welder",UIName="Welding Rate (+&%)",bHiddenConfig=true,Progress=0.5) - DefPerkStats(9)=(MaxValue=400,CostPerValue=1,StatType="Heal",UIName="Heal Efficiency (+&%)",bHiddenConfig=true,Progress=0.5) - DefPerkStats(10)=(MaxValue=400,CostPerValue=1,StatType="Mag",UIName="Magazine Capacity (+&%)",Progress=1) - DefPerkStats(11)=(MaxValue=500,CostPerValue=1,StatType="Spare",UIName="Max Ammo (+&%)",Progress=1) - DefPerkStats(12)=(MaxValue=1000,CostPerValue=1,StatType="OffDamage",UIName="Off-Perk Damage (+&%)",Progress=0.25) - DefPerkStats(13)=(MaxValue=1000,CostPerValue=1,StatType="SelfDamage",UIName="Self Damage Reduction (+&%)",Progress=1,bHiddenConfig=true) - DefPerkStats(14)=(MaxValue=150,CostPerValue=1,StatType="Armor",UIName="Armor (+&)",Progress=1) - DefPerkStats(15)=(MaxValue=1000,CostPerValue=1,StatType="PoisonDmg",UIName="Toxic Resistance (+&%)",Progress=1.5,bHiddenConfig=true) - DefPerkStats(16)=(MaxValue=1000,CostPerValue=1,StatType="SonicDmg",UIName="Sonic Resistance (+&%)",Progress=1.5,bHiddenConfig=true) - DefPerkStats(17)=(MaxValue=1000,CostPerValue=1,StatType="FireDmg",UIName="Fire Resistance (+&%)",Progress=1.5,bHiddenConfig=true) - DefPerkStats(18)=(MaxValue=500,CostPerValue=1,StatType="AllDmg",UIName="Zed Damage Reduction (+&%)",Progress=0.25) - DefPerkStats(19)=(MaxValue=500,CostPerValue=1,StatType="HeadDamage",UIName="Perk Head Damage (+&%)",Progress=1,bHiddenConfig=true) - DefPerkStats(20)=(MaxValue=200,CostPerValue=1,StatType="HealRecharge",UIName="Syringe Recharge Rate (+&%)",Progress=0.5,bHiddenConfig=true) + DefPerkStats(0)=(MaxValue=50,CostPerValue=1,StatType="Speed",Progress=0.4) + DefPerkStats(1)=(MaxValue=1000,CostPerValue=1,StatType="Damage",Progress=0.5) + DefPerkStats(2)=(MaxValue=90,CostPerValue=1,StatType="Recoil",Progress=1) + DefPerkStats(3)=(MaxValue=80,CostPerValue=1,StatType="Spread",Progress=0.75) + DefPerkStats(4)=(MaxValue=1000,CostPerValue=1,StatType="Rate",Progress=0.5) + DefPerkStats(5)=(MaxValue=1000,CostPerValue=1,StatType="Reload",Progress=0.5) + DefPerkStats(6)=(MaxValue=150,CostPerValue=1,StatType="Health",Progress=1) + DefPerkStats(7)=(MaxValue=100,CostPerValue=1,StatType="KnockDown",Progress=1) + DefPerkStats(8)=(MaxValue=200,CostPerValue=1,StatType="Welder",bHiddenConfig=true,Progress=0.5) + DefPerkStats(9)=(MaxValue=400,CostPerValue=1,StatType="Heal",bHiddenConfig=true,Progress=0.5) + DefPerkStats(10)=(MaxValue=400,CostPerValue=1,StatType="Mag",Progress=1) + DefPerkStats(11)=(MaxValue=500,CostPerValue=1,StatType="Spare",Progress=1) + DefPerkStats(12)=(MaxValue=1000,CostPerValue=1,StatType="OffDamage",Progress=0.25) + DefPerkStats(13)=(MaxValue=1000,CostPerValue=1,StatType="SelfDamage",Progress=1,bHiddenConfig=true) + DefPerkStats(14)=(MaxValue=150,CostPerValue=1,StatType="Armor",Progress=1) + DefPerkStats(15)=(MaxValue=1000,CostPerValue=1,StatType="PoisonDmg",Progress=1.5,bHiddenConfig=true) + DefPerkStats(16)=(MaxValue=1000,CostPerValue=1,StatType="SonicDmg",Progress=1.5,bHiddenConfig=true) + DefPerkStats(17)=(MaxValue=1000,CostPerValue=1,StatType="FireDmg",Progress=1.5,bHiddenConfig=true) + DefPerkStats(18)=(MaxValue=500,CostPerValue=1,StatType="AllDmg",Progress=0.25) + DefPerkStats(19)=(MaxValue=500,CostPerValue=1,StatType="HeadDamage",Progress=1,bHiddenConfig=true) + DefPerkStats(20)=(MaxValue=200,CostPerValue=1,StatType="HealRecharge",Progress=0.5,bHiddenConfig=true) Modifiers.Add(1.f) Modifiers.Add(1.f) From 22478871a67de65336faa8d63d2238fa65bc1340 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 1 Sep 2020 12:04:48 +0300 Subject: [PATCH 36/39] update about --- Localization/INT/ServerExt.int | Bin 50200 -> 50372 bytes ServerExt/Classes/UIP_About.uc | 12 ++++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index bacb6802e7e26a200928f0e1952e741f9821c627..eeabb4eb2e78f3c20476d6649b3b075b7b574b68 100644 GIT binary patch delta 470 zcmY+Aze>YE9LK-dP4EFE%TaI>XGNSUiqJwq!K}577+RB>Kd4!{+Gfn+?h6RMg1h(x zeGNxHxoc@kAb0ouci;QHzqP*StMuG zIxvAomQA-j+l*6RkegUXN|w88EPvzMQM>wCJb6xjtp~ybO*aDgxb$X@zoN`o6BH@m zlr?H9b*?T2jhqkcxIa<)m|bqN>}HepHyYsOkvFUt1gy+8im#G!aG#rg%Ob<&0@Tp%y zq02haN}KNvH41s|0d+pvf4-t$q}fB_W0#^6SDP1)av=t&6Ojleim-JMi|rh8x0)A_ zC5F;s&Xb$AO``i|{O{sWX>v)GL1uLFuuf~xA|A4<(qYBL=V((Dn5WCwg2-?1$yt!a P@sdj1$eiAfxK{lEf~-Na diff --git a/ServerExt/Classes/UIP_About.uc b/ServerExt/Classes/UIP_About.uc index a02def6..8e55bba 100644 --- a/ServerExt/Classes/UIP_About.uc +++ b/ServerExt/Classes/UIP_About.uc @@ -6,12 +6,20 @@ var KFGUI_TextField About; var KFGUI_Button AuthorButton; var KFGUI_Button Forumbutton; -var localized string AboutText; var localized string AuthorButtonText; var localized string AuthorButtonTooltip; var localized string ForumButtonText; var localized string ForumButtonTooltip; +var localized string MarcoText; +var localized string CreditsText; +var localized string ForrestMarkXText; +var localized string SheepText; +var localized string MysterialText; +var localized string PostText; +var localized string InklesspenText; +var localized string GenzmeyText; + function InitMenu() { About = KFGUI_TextField(FindComponentID('About')); @@ -20,7 +28,7 @@ function InitMenu() Super.InitMenu(); - About.SetText(AboutText); + About.SetText("#{F3E2A9}Server Extension Mod#{DEF} - "$MarcoText$" Marco||"$CreditsText$":|#{01DF3A}Forrest Mark X#{DEF} - "$ForrestMarkXText$"|#{FF00FF}Sheep#{DEF} - "$SheepText$"|inklesspen - "$InklesspenText$"|GenZmeY - "$GenzmeyText$"|Mysterial - "$MysterialText$"|"$PostText); AuthorButton.ButtonText=AuthorButtonText; AuthorButton.Tooltip=AuthorButtonTooltip; Forumbutton.ButtonText=ForumButtonText; From 011299001f2556757d29847dfcf788dc813cfcfe Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 1 Sep 2020 13:16:01 +0300 Subject: [PATCH 37/39] fix: use unicode font for all --- ServerExt/Classes/KF2Style.uc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ServerExt/Classes/KF2Style.uc b/ServerExt/Classes/KF2Style.uc index ea1504e..e7fef54 100644 --- a/ServerExt/Classes/KF2Style.uc +++ b/ServerExt/Classes/KF2Style.uc @@ -16,6 +16,7 @@ function InitStyle() for( i=0; i Date: Sun, 6 Sep 2020 20:05:05 +0300 Subject: [PATCH 38/39] fix: id collision --- ServerExt/Classes/UIP_PlayerSpecs.uc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ServerExt/Classes/UIP_PlayerSpecs.uc b/ServerExt/Classes/UIP_PlayerSpecs.uc index b12d191..0571dfe 100644 --- a/ServerExt/Classes/UIP_PlayerSpecs.uc +++ b/ServerExt/Classes/UIP_PlayerSpecs.uc @@ -48,9 +48,9 @@ function InitMenu() TopPlayers[2] = KFGUI_ColumnList(FindComponentID('EXP')); MultiPager = KFGUI_SwitchComponent(FindComponentID('Pager')); - TopPlaytimeButton=KFGUI_Button(FindComponentID('Playtime')); - TopKillsButton=KFGUI_Button(FindComponentID('Kills')); - TopExpButton=KFGUI_Button(FindComponentID('Exp')); + TopPlaytimeButton=KFGUI_Button(FindComponentID('BPlaytime')); + TopKillsButton=KFGUI_Button(FindComponentID('BKills')); + TopExpButton=KFGUI_Button(FindComponentID('BExp')); PreviousButton.ButtonText=ShowStatsButtonText; PreviousButton.Tooltip=ShowStatsButtonToolTip; @@ -237,7 +237,7 @@ defaultproperties OnClickRight=ButtonClicked End Object Begin Object Class=KFGUI_Button Name=B_ShowTopTime - ID="Playtime" + ID="BPlaytime" XPosition=0.35 YPosition=0.05 XSize=0.1 @@ -247,7 +247,7 @@ defaultproperties OnClickRight=ButtonClicked End Object Begin Object Class=KFGUI_Button Name=B_ShowTopKills - ID="Kills" + ID="BKills" XPosition=0.6 YPosition=0.05 XSize=0.1 @@ -257,7 +257,7 @@ defaultproperties OnClickRight=ButtonClicked End Object Begin Object Class=KFGUI_Button Name=B_ShowTopEXP - ID="Exp" + ID="BExp" XPosition=0.85 YPosition=0.05 XSize=0.1 From d295c48be356c3cd5a3006db59b690ee3a705902 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Sun, 6 Sep 2020 23:22:41 +0300 Subject: [PATCH 39/39] feat: russian localization --- Localization/RUS/ServerExt.rus | Bin 0 -> 50930 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Localization/RUS/ServerExt.rus diff --git a/Localization/RUS/ServerExt.rus b/Localization/RUS/ServerExt.rus new file mode 100644 index 0000000000000000000000000000000000000000..c530254c49a4e5ee5da23feb98528b8cf918cc8a GIT binary patch literal 50930 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 literal 0 HcmV?d00001