diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index 6594f6e..eeabb4e 100644 Binary files a/Localization/INT/ServerExt.int and b/Localization/INT/ServerExt.int differ diff --git a/Localization/RUS/ServerExt.rus b/Localization/RUS/ServerExt.rus new file mode 100644 index 0000000..c530254 Binary files /dev/null and b/Localization/RUS/ServerExt.rus differ diff --git a/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc b/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc index ba87184..b789463 100644 --- a/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc +++ b/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc @@ -10,7 +10,7 @@ function InitMenu() for( i=0; i 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; @@ -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... } } @@ -1447,27 +1497,28 @@ defaultproperties 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)")) // WebConfigs.Add((PropType=0,PropName="MinimalDataLevel",UIName="Minimal Real Level",UIDesc="Minimal level for new players or who loads from saves")) - 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) + // TODO: localize + 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) 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 048caf8..e9bbc36 100644 --- a/ServerExt/Classes/Ext_PerkFieldMedic.uc +++ b/ServerExt/Classes/Ext_PerkFieldMedic.uc @@ -179,7 +179,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 bd8eca0..cfca467 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_TraitRanger') 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_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_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_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/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 9aafb6f..85a5b6a 100644 --- a/ServerExt/Classes/Ext_TraitMedicPistol.uc +++ b/ServerExt/Classes/Ext_TraitMedicPistol.uc @@ -26,7 +26,5 @@ static function ApplyEffectOn( KFPawn_Human 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/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 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/KFGUI_Base.uc b/ServerExt/Classes/KFGUI_Base.uc index 84be48e..e32a69b 100644 --- a/ServerExt/Classes/KFGUI_Base.uc +++ b/ServerExt/Classes/KFGUI_Base.uc @@ -23,6 +23,9 @@ var() int IDValue; // Integer ID value. var transient float CompPos[4],InputPos[4]; var float TimerRate,TimerCounter; +var localized string Caption; +var localized string Hint; + var transient KFGUI_Base MouseArea; // Next in recurse line of the mouse pointer focus area. var() bool bDisabled,bClickable,bCanFocus; diff --git a/ServerExt/Classes/KFGUI_SwitchMenuBar.uc b/ServerExt/Classes/KFGUI_SwitchMenuBar.uc index 22d3336..cfbb0aa 100644 --- a/ServerExt/Classes/KFGUI_SwitchMenuBar.uc +++ b/ServerExt/Classes/KFGUI_SwitchMenuBar.uc @@ -9,11 +9,14 @@ var int NumButtons,CurrentPageNum,PageComponentIndex; var array 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/UIP_About.uc b/ServerExt/Classes/UIP_About.uc index a73ad75..8e55bba 100644 --- a/ServerExt/Classes/UIP_About.uc +++ b/ServerExt/Classes/UIP_About.uc @@ -2,6 +2,39 @@ 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 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')); + AuthorButton = KFGUI_Button(FindComponentID('Author')); + Forumbutton = KFGUI_Button(FindComponentID('Forum')); + + Super.InitMenu(); + + 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; + Forumbutton.Tooltip=ForumButtonTooltip; +} + private final function UniqueNetId GetAuthID() { local UniqueNetId Res; @@ -9,6 +42,7 @@ private final function UniqueNetId GetAuthID() class'OnlineSubsystem'.Static.StringToUniqueNetId("0x0110000100E8984E",Res); return Res; } + function ButtonClicked( KFGUI_Button Sender ) { switch( Sender.ID ) @@ -24,19 +58,17 @@ function ButtonClicked( KFGUI_Button Sender ) defaultproperties { - ForumURL="forums.tripwireinteractive.com/showthread.php?t=106926" + ForumURL="https://steamcommunity.com/sharedfiles/filedetails/?id=2085786712" 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 @@ -46,8 +78,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 diff --git a/ServerExt/Classes/UIP_AdminMenu.uc b/ServerExt/Classes/UIP_AdminMenu.uc index 73d55e4..734d9cf 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]; + PlayerContext.ItemRows[0].Text = EditPlayer$" "$Item.Columns[0]; SelectedID = Item.Value; PlayerContext.OpenMenu(Self); } @@ -57,31 +129,12 @@ function ButtonClicked( KFGUI_Button Sender ) defaultproperties { 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 @@ -97,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) diff --git a/ServerExt/Classes/UIP_News.uc b/ServerExt/Classes/UIP_News.uc index 35f8bc7..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); + 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 diff --git a/ServerExt/Classes/UIP_PerkSelection.uc b/ServerExt/Classes/UIP_PerkSelection.uc index 53438d3..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()); @@ -303,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 @@ -315,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 @@ -327,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 diff --git a/ServerExt/Classes/UIP_PlayerSpecs.uc b/ServerExt/Classes/UIP_PlayerSpecs.uc index 2823841..0571dfe 100644 --- a/ServerExt/Classes/UIP_PlayerSpecs.uc +++ b/ServerExt/Classes/UIP_PlayerSpecs.uc @@ -4,6 +4,7 @@ struct FPageExtraInfo { var array 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('BPlaytime')); + TopKillsButton=KFGUI_Button(FindComponentID('BKills')); + TopExpButton=KFGUI_Button(FindComponentID('BExp')); + + 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() @@ -167,8 +227,6 @@ function SelectedRow( KFGUI_ListItem Item, int Row, bool bRight, bool bDblClick defaultproperties { 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 @@ -179,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="BPlaytime" XPosition=0.35 YPosition=0.05 XSize=0.1 @@ -190,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="BKills" XPosition=0.6 YPosition=0.05 XSize=0.1 @@ -201,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="BExp" XPosition=0.85 YPosition=0.05 XSize=0.1 @@ -222,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) diff --git a/ServerExt/Classes/UIP_Settings.uc b/ServerExt/Classes/UIP_Settings.uc index ab2fb7e..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(); @@ -14,20 +37,21 @@ function InitMenu() SettingsBox = KFGUI_ComponentList(FindComponentID('SettingsBox')); //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; @@ -45,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 ) { @@ -131,7 +155,7 @@ function ButtonClicked( KFGUI_Button Sender ) switch( Sender.ID ) { case 'KB': - KeyBindButton.ButtonText = "Press a button"; + KeyBindButton.ButtonText = ButtonPressButtonText; KeyBindButton.SetDisabled(true); GrabKeyFocus(); bSetKeybind = true; diff --git a/ServerExt/Classes/UIR_PerkStat.uc b/ServerExt/Classes/UIR_PerkStat.uc index 6ae594e..eea8da4 100644 --- a/ServerExt/Classes/UIR_PerkStat.uc +++ b/ServerExt/Classes/UIR_PerkStat.uc @@ -9,11 +9,19 @@ var int StatIndex,OldValue,CurrentCost,MaxStatValue; var string ProgressStr; var bool bCostDirty; +var localized string AddButtonToolTip; +var localized string CountBoxToolTip; +var localized string CostText; + function InitMenu() { InfoText = KFGUI_TextLable(FindComponentID('Info')); StatCountBox = KFGUI_NumericBox(FindComponentID('CountBox')); AddButton = KFGUI_Button(FindComponentID('AddBox')); + + AddButton.ToolTip=AddButtonToolTip; + StatCountBox.ToolTip=CountBoxToolTip; + Super.InitMenu(); } @@ -43,7 +51,7 @@ function Timer() bCostDirty = false; OldValue = MyPerk.PerkStats[StatIndex].CurrentValue; if(CurrentCost != 0) - InfoText.SetText(MyPerk.GetStatUIStr(StatIndex)$" ["$OldValue$"/"$MaxStatValue$", Cost "$CurrentCost$", "$ProgressStr$"%]:"); + InfoText.SetText(MyPerk.GetStatUIStr(StatIndex)$" ["$OldValue$"/"$MaxStatValue$", "$CostText$" "$CurrentCost$", "$ProgressStr$"%]:"); else InfoText.SetText(MyPerk.GetStatUIStr(StatIndex)$" ["$OldValue$"/"$MaxStatValue$", "$ProgressStr$"%]:"); } @@ -135,7 +143,6 @@ defaultproperties XSize=0.18 YSize=0.8 OnTextChange=EditBoxChange - ToolTip="Here you can specify how many stat points to buy" MaxValue=100 MinValue=1 bScaleByFontSize=false @@ -147,7 +154,6 @@ defaultproperties XSize=0.08 YSize=0.8 ButtonText="+" - ToolTip="Click here to buy stats for this perk" OnClickLeft=BuyStatPoint OnClickRight=BuyStatPoint End Object diff --git a/ServerExt/Classes/UIR_PerkTraitList.uc b/ServerExt/Classes/UIR_PerkTraitList.uc index 68bb0fe..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,8 +134,5 @@ function NotifyMousePaused() defaultproperties { - 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 diff --git a/ServerExt/Classes/UIR_TraitInfoPopup.uc b/ServerExt/Classes/UIR_TraitInfoPopup.uc index e6213c7..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$")"; + YesButton.ButtonText = ButtonBuyText$" ("$Cost$")"; if( Cost>OldPoints || !MyTrait.Static.MeetsRequirements(OldLevel,MyPerk) ) YesButton.SetDisabled(true); else YesButton.SetDisabled(false); @@ -87,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 @@ -98,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 diff --git a/ServerExt/Classes/UI_AdminMOTD.uc b/ServerExt/Classes/UI_AdminMOTD.uc index 7ee1309..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,12 +65,11 @@ function ButtonClicked( KFGUI_Button Sender ) } function MOTDEdited( KFGUI_EditBox Sender ) { - NewsField.SetText("MOTD Preview:|"$Sender.Value); + NewsField.SetText(MotdPreviewText$"|"$Sender.Value); } defaultproperties { - WindowTitle="Edit MOTD line" XPosition=0.25 YPosition=0.2 XSize=0.5 @@ -67,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 @@ -79,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 @@ -90,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 diff --git a/ServerExt/Classes/UI_AdminPerkLevel.uc b/ServerExt/Classes/UI_AdminPerkLevel.uc index 0b602d1..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"; + WindowTitle = Mode==1 ? WindowTitleSetLevel : WindowTitleSetPrestigeLevel; return; } - WindowTitle = (Mode==1 ? "Set level of " : "Set prestige level of ")$PRI.GetHumanReadableName(); + WindowTitle = (Mode==1 ? WindowTitleSetLevelOf : WindowTitleSetPrestigeLevelOf)$" "$PRI.GetHumanReadableName(); LevelBox.ChangeValue(string(Mode==1 ? ExtPlayerReplicationInfo(PRI).ECurrentPerkLevel : ExtPlayerReplicationInfo(PRI).ECurrentPerkPrestige)); BaseValue = (Mode==1 ? 100 : 100000); } @@ -55,8 +76,6 @@ defaultproperties 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 @@ -67,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 @@ -78,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 diff --git a/ServerExt/Classes/UI_MidGameMenu.uc b/ServerExt/Classes/UI_MidGameMenu.uc index 9801d95..ce40e44 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,SkipTraderButton; @@ -14,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; @@ -21,18 +33,19 @@ function InitMenu() PageSwitcher = KFGUI_SwitchMenuBar(FindComponentID('Pager')); Super(KFGUI_Page).InitMenu(); - 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 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; + WindowTitle = TitleText$" "$P.PerkName; } function ButtonClicked( KFGUI_Button Sender ) { @@ -44,12 +61,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 @@ -60,8 +74,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 diff --git a/ServerExt/Classes/UI_Scoreboard.uc b/ServerExt/Classes/UI_Scoreboard.uc index 554da03..45d6339 100644 --- a/ServerExt/Classes/UI_Scoreboard.uc +++ b/ServerExt/Classes/UI_Scoreboard.uc @@ -17,12 +17,59 @@ var KFGUI_Tooltip ToolTipItem; var transient bool bHasSelectedPlayer,bMeAdmin,bShowSpectatorsOnly; +var KFGUI_Button SpecButton; + +var localized string TimeText; +var localized string PlayersText; +var localized string PlayerText; +var localized string AliveText; +var localized string SpectatorsText; +var localized string HeaderWaveText; +var localized string HeaderPlayerText; +var localized string HeaderDoshText; +var localized string HeaderKillsText; +var localized string HeaderAssistText; +var localized string HeaderPingText; +var localized string NoPerkText; +var localized string RespawnText; +var localized string BotText; +var localized string DeadText; +var localized string UnmutePlayerText; +var localized string MutePlayerText; +var localized string YouveMutedText; +var localized string YouveUnmutedText; +var localized string HealthText; +var localized string RClickForOptsText; +var localized string SpecButtonText; +var localized string SpecButtonTooltip; +var localized string SpectateThisPlayerText; +var localized string ViewPlayerProfileText; +var localized string MuteText; + +function FRowItem NewFRowItem(string Text, bool isSplitter) +{ + local FRowItem newItem; + newItem.Text=Text; + newItem.bSplitter=isSplitter; + return newItem; +} + function InitMenu() { Super.InitMenu(); HealthIcon = Texture2D(DynamicLoadObject("UI_Objective_Tex.UI_Obj_Healing_Loc",class'Texture2D')); PlayersList = KFGUI_List(FindComponentID('PlayerList')); + SpecButton = KFGUI_Button(FindComponentID('Spec')); + + 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("", true)); } + function ShowMenu() { local ExtPlayerController PC; @@ -161,7 +208,7 @@ function DrawMenu() Y+=YL; Canvas.SetPos(XPos+26,Y); - Canvas.DrawText("Time: "$FormatTimeSM(KFGRI.ElapsedTime)$" | Players: "$NumPlayer$" | Alive: "$NumAlivePlayer$" | Spectators: "$NumSpec,,FontScalar,FontScalar); + Canvas.DrawText(TimeText$": "$FormatTimeSM(KFGRI.ElapsedTime)$" | "$PlayersText$": "$NumPlayer$" | "$AliveText$": "$NumAlivePlayer$" | "$SpectatorsText$": "$NumSpec,,FontScalar,FontScalar); XPos += XScale*0.75-1; XScale *= 0.25; @@ -171,7 +218,7 @@ function DrawMenu() Canvas.Font = Owner.CurrentStyle.PickFont(DefFont+3,FontScalar); Canvas.TextSize("A",XL,YL,FontScalar,FontScalar); Y = YPos+4; - DrawCenteredText("WAVE",XPos+XScale*0.5,Y,FontScalar); + DrawCenteredText(HeaderWaveText,XPos+XScale*0.5,Y,FontScalar); Y += YL; DrawCenteredText(KFGRI.WaveNum$"/"$(KFGRI.WaveMax-1),XPos+XScale*0.5,Y,FontScalar*1.1); @@ -205,15 +252,15 @@ function DrawMenu() Canvas.DrawColor = SBTextColor; Y = YPos+4; Canvas.SetPos(XPos+18,Y); - Canvas.DrawText("PLAYER",,FontScalar,FontScalar); + Canvas.DrawText(HeaderPlayerText,,FontScalar,FontScalar); if( !bShowSpectatorsOnly ) { Canvas.SetPos(XPos+CashXPos,Y); - Canvas.DrawText("DOSH",,FontScalar,FontScalar); - DrawCenteredText("KILLS",XPos+KillsXPos,Y,FontScalar); - DrawCenteredText("ASSISTS",XPos+AssistXPos,Y,FontScalar); + Canvas.DrawText(HeaderDoshText,,FontScalar,FontScalar); + DrawCenteredText(HeaderKillsText,XPos+KillsXPos,Y,FontScalar); + DrawCenteredText(HeaderAssistText,XPos+AssistXPos,Y,FontScalar); } - DrawCenteredText("PING",XPos+PingXPos,Y,FontScalar); + DrawCenteredText(HeaderPingText,XPos+PingXPos,Y,FontScalar); // Check how many players to draw. YPos+=(YHeight-1); @@ -410,14 +457,14 @@ function DrawPlayerEntry( Canvas C, int Index, float YOffset, float Height, floa else { C.DrawColor = SBTextColor; - S = "No Perk"; + S = NoPerkText; } YPos = SBFontSize*0.9; C.SetPos(XPos+Height*0.5,YOffset+Height*0.495); if( PRI.RespawnCounter>=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 +492,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 +503,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 +522,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 +557,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 +589,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; @@ -580,8 +627,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 @@ -594,10 +639,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 diff --git a/ServerExt/Classes/UI_Scoreboard_CD.uc b/ServerExt/Classes/UI_Scoreboard_CD.uc index 4391a30..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; @@ -497,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 @@ -510,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 diff --git a/ServerExt/Classes/UI_UnloadInfo.uc b/ServerExt/Classes/UI_UnloadInfo.uc index a6c1f32..c170e7c 100644 --- a/ServerExt/Classes/UI_UnloadInfo.uc +++ b/ServerExt/Classes/UI_UnloadInfo.uc @@ -1,22 +1,43 @@ Class UI_UnloadInfo extends KFGUI_FloatingWindow; var class 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; - YesButten.SetDisabled(true); - InfoLabel.SetText("Please wait..."); + WindowTitle = ResetPerkNotice$" "$P.Default.PerkName; + UnloadPerkYesButton.SetDisabled(true); + InfoLabel.SetText(PleaseWait); ++CurCallCode; ExtPlayerController(GetPlayer()).OnClientGetResponse = ReceivedInfo; ExtPlayerController(GetPlayer()).ServerGetUnloadInfo(CurCallCode,PerkToReset,false); @@ -45,17 +66,18 @@ function ReceivedInfo( byte CallID, byte Code, int DataA, int DataB ) { if( CurCallCode!=CallID ) return; + 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; } } @@ -76,10 +98,9 @@ defaultproperties XSize=0.98 YSize=0.775 End Object - 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 @@ -88,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 @@ -101,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 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) 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_MapRank.uc b/ServerExt/Classes/xUI_MapRank.uc index 7b9c521..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 ) @@ -33,13 +59,13 @@ defaultproperties YSize=0.2 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 @@ -47,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 @@ -60,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) diff --git a/ServerExt/Classes/xUI_MapVote.uc b/ServerExt/Classes/xUI_MapVote.uc index 30a0169..320ad95 100644 --- a/ServerExt/Classes/xUI_MapVote.uc +++ b/ServerExt/Classes/xUI_MapVote.uc @@ -3,16 +3,70 @@ Class xUI_MapVote extends KFGUI_FloatingWindow; var xVotingReplication RepInfo; var KFGUI_ColumnList CurrentVotes,MapList; var KFGUI_ComboBox GameModeCombo; +var KFGUI_RightClickMenu MapRClicker; +var KFGUI_Button CloseButton; var int SelectedMapIndex; var editinline export KFGUI_RightClickMenu MapRightClick; var bool bFirstTime; +var localized string CloseButtonText; +var localized string CloseButtonToolTip; +var localized string ColumnMapName; +var localized string ColumnSequence; +var localized string ColumnPlayCount; +var localized string ColumnRating; +var localized string ColumnGame; +var localized string ColumnNumVotes; +var localized string Title; + +function FColumnItem newFColumnItem(string Text, float Width) +{ + local FColumnItem newItem; + newItem.Text=Text; + newItem.Width=Width; + return newItem; +} + +function FRowItem newFRowItem(string Text, bool isDisabled) +{ + local FRowItem newItem; + newItem.Text=Text; + newItem.bDisabled=isDisabled; + return newItem; +} + function InitMenu() { Super.InitMenu(); CurrentVotes = KFGUI_ColumnList(FindComponentID('Votes')); MapList = KFGUI_ColumnList(FindComponentID('Maps')); GameModeCombo = KFGUI_ComboBox(FindComponentID('Filter')); + MapRClicker = KFGUI_RightClickMenu(FindComponentID('RClick')); + CloseButton = KFGUI_Button(FindComponentID('Close')); + + // TODO: i18n this + // I don't know why it's not working + // MapRClicker.ItemRows.AddItem(newFRowItem("Vote this map", false)); + // MapRClicker.ItemRows.AddItem(newFRowItem("Admin force this map", true)); + + // And this too: + // GameModeCombo.LableString="Game mode:"; + // GameModeCombo.ToolTip="Select game mode to vote for."; + + CloseButton.ButtonText=CloseButtonText; + CloseButton.ToolTip=CloseButtonToolTip; + + MapList.Columns.AddItem(newFColumnItem(ColumnMapName,0.5)); + MapList.Columns.AddItem(newFColumnItem(ColumnSequence,0.18)); + MapList.Columns.AddItem(newFColumnItem(ColumnPlayCount,0.18)); + MapList.Columns.AddItem(newFColumnItem(ColumnRating,0.14)); + + CurrentVotes.Columns.AddItem(newFColumnItem(ColumnGame,0.2)); + CurrentVotes.Columns.AddItem(newFColumnItem(ColumnMapName,0.5)); + CurrentVotes.Columns.AddItem(newFColumnItem(ColumnNumVotes,0.15)); + CurrentVotes.Columns.AddItem(newFColumnItem(ColumnRating,0.15)); + + WindowTitle=Title; } function CloseMenu() { @@ -143,7 +197,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 @@ -155,10 +208,6 @@ defaultproperties XSize=0.98 YSize=0.25 ID="Votes" - Columns.Add((Text="Game",Width=0.2)) - Columns.Add((Text="Map Name",Width=0.5)) - Columns.Add((Text="Num votes",Width=0.15)) - Columns.Add((Text="Rating",Width=0.15)) OnSelectedRow=SelectedVoteRow bShouldSortList=true bLastSortedReverse=true @@ -170,10 +219,6 @@ defaultproperties XSize=0.98 YSize=0.56 ID="Maps" - Columns.Add((Text="Map Name",Width=0.5)) - Columns.Add((Text="Sequence",Width=0.18)) - Columns.Add((Text="Play Count",Width=0.18)) - Columns.Add((Text="Rating",Width=0.14)) OnSelectedRow=SelectedVoteRow End Object Begin Object Class=KFGUI_ComboBox Name=GameModeFilter @@ -192,8 +237,6 @@ defaultproperties XSize=0.1 YSize=0.05 ID="Close" - ButtonText="Close" - ToolTip="Close the mapvote menu." OnClickLeft=ButtonClicked OnClickRight=ButtonClicked End Object @@ -204,6 +247,7 @@ defaultproperties Components.Add(CloseButton) Begin Object Class=KFGUI_RightClickMenu Name=MapRClicker + ID="RClick" ItemRows(0)=(Text="Vote this map") ItemRows(1)=(Text="Admin force this map",bDisabled=true) OnSelectedItem=ClickedRow diff --git a/ServerExt/Classes/xVotingReplication.uc b/ServerExt/Classes/xVotingReplication.uc index 502db95..ec94f21 100644 --- a/ServerExt/Classes/xVotingReplication.uc +++ b/ServerExt/Classes/xVotingReplication.uc @@ -29,11 +29,26 @@ var transient float RebunchTimer,NextVoteTimer; var bool bClientConnected,bAllReceived,bClientRanked; var transient bool bListDirty; +var localized string MaplistRecvMsg; +var localized string ClientMapVoteMsg; +var localized string InitMapVoteMsg; +var localized string TwoMinRemainMsg; +var localized string OneMinRemainMsg; +var localized string XSecondsRemainMsg; +var localized string UnknownPlayerName; +var localized string VotedForKnownMapMsg; +var localized string VotedForUnkownMapMsg; +var localized string AdminForcedKnownMapswitchMsg; +var localized string AdminForcedUnknownMapswitchMsg; +var localized string KnownMapSwitchMsg; +var localized string UnknownMapSwitchMsg; + function PostBeginPlay() { PlayerOwner = PlayerController(Owner); RebunchTimer = WorldInfo.TimeSeconds+5.f; } + function Tick( float Delta ) { if( PlayerOwner==None || PlayerOwner.Player==None ) @@ -115,33 +130,33 @@ reliable client simulated function ClientReady( int CurGame ) { ClientCurrentGame = CurGame; bAllReceived = true; - MapVoteMsg("Maplist successfully received."); + MapVoteMsg(MaplistRecvMsg); } simulated final function MapVoteMsg( string S ) { if( S!="" ) - GetPlayer().ClientMessage("MapVote: "$S); + GetPlayer().ClientMessage(ClientMapVoteMsg$" "$S); } reliable client simulated function ClientNotifyVote( PlayerReplicationInfo PRI, int GameIndex, int MapIndex ) { if( bAllReceived ) - MapVoteMsg((PRI!=None ? PRI.PlayerName : "Someone")$" has voted for "$Maps[MapIndex].MapTitle$" ("$GameModes[GameIndex].GameShortName$")."); - else MapVoteMsg((PRI!=None ? PRI.PlayerName : "Someone")$" has voted for a map."); + MapVoteMsg((PRI!=None ? PRI.PlayerName : UnknownPlayerName)$" "$VotedForKnownMapMsg$" "$Maps[MapIndex].MapTitle$" ("$GameModes[GameIndex].GameShortName$")."); + else MapVoteMsg((PRI!=None ? PRI.PlayerName : UnknownPlayerName)$" "$VotedForUnkownMapMsg); } reliable client simulated function ClientNotifyVoteTime( int Time ) { if( Time==0 ) - MapVoteMsg("Initializing mid-game mapvote..."); + MapVoteMsg(InitMapVoteMsg); if( Time<=10 ) MapVoteMsg(string(Time)$"..."); else if( Time<60 ) - MapVoteMsg(string(Time)$" seconds..."); + MapVoteMsg(string(Time)$" "$XSecondsRemainMsg); else if( Time==60 ) - MapVoteMsg("1 minute remains..."); + MapVoteMsg(OneMinRemainMsg); else if( Time==120 ) - MapVoteMsg("2 minutes remain..."); + MapVoteMsg(TwoMinRemainMsg); } reliable client simulated function ClientNotifyVoteWin( int GameIndex, int MapIndex, bool bAdminForce ) { @@ -149,12 +164,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(AdminForcedKnownMapswitchMsg$" "$Maps[MapIndex].MapTitle$" ("$GameModes[GameIndex].GameShortName$")."); + else MapVoteMsg(AdminForcedUnknownMapswitchMsg); } 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$") "$KnownMapSwitchMsg); + else MapVoteMsg(UnknownMapSwitchMsg); } reliable client simulated function ClientOpenMapvote( optional bool bShowRank ) {