[Setup] Product=Killing Spree Bonus Version=100 Archive=SpreeBonus.umod SrcPath=. MasterPath=.. Requires=UnrealTournamentRequirement Group=SetupGroup Group=SpreeBonusGroup [UnrealTournamentRequirement] Product=UnrealTournament Version= [SetupGroup] Copy=(Src=System\Manifest.ini,Master=System\Manifest.ini,Size=429,Flags=3) Copy=(Src=System\Manifest.int,Master=System\Manifest.int,Size=520,Flags=3) [SpreeBonusGroup] File=(Src=System\SpreeBonus.int,Size=203) File=(Src=System\SpreeBonus.u,Size=20069) File=(Src=Help\SpreeBonus.txt,Size=1150) [Setup] LocalProduct=Killing Spree Bonus ReadMe=Help\SpreeBonus.txt SetupWindowTitle=Killing Spree Bonus AutoplayWindowTitle=Killing Spree Bonus Options ProductURL=www.planetunreal.com/wizard VersionURL=www.planetunreal.com/wizard Developer=Wizard DeveloperURL=mailto:gikrauss@sinectis.com.ar [UnrealTournamentRequirement] LocalProduct=UnrealTournament ProductURL=http://www.unrealtournament.com/ VersionURL=http://unreal.epicgames.com/ Developer=Epic Games, Inc. DeveloperURL=http://www.epicgames.com/ [Public] Object=(Name=SpreeBonus.SpreeBonus,Class=Class,MetaClass=Engine.Mutator,Description="Killing Spree Bonus") Object=(Name=SpreeBonus.SBModMenuItem,Class=Class,MetaClass=UMenu.UMenuModMenuItem) *Dr@?JIAHl98Yl?rNoneAddItem SpreeBonusGiveUDamageAndShieldGiveShieldBelt GiveHealth GiveArmor GiveUDamageCoreSetTextGetSelectedIndexSetSelectedIndex SetEditableCreateControlReceiveLocalizedMessageSystemGiveToUWindowEngine ActivateFindInventoryTypeCreated BonusType5 BonusType3 BonusType2 BeginPlayPostBeginPlaySetup BonusType4 SBMessageSBClientWindowSBConfigWindowNotify MenuCaptionExecute ScoreKillBotpack GetOffset GetStringSBModMenuItemUMenuHealth bIsPlayerTeam RelatedPRI_2Killer LocalMessageOther RespawnTimeLevelOwner RelatedPRI_1OptionalObjectYLYPosClipYActor StrPropertyClassPropertyPawn bTeamGameGame InventorySpreeMutatorClassC ClientClassObject Function bSizableUWindowPulldownMenuItemUWindowDialogClientWindowUWindowFramedWindowUWindowComboControlUWindowRootWindowUWindowDialogControlUWindowWindowUWindowPulldownMenuSetSize CreateWindow WindowTitleWinLeft WinHeight WinWidthWinTopRootPlayerReplicationInfoPackage MenuHelpSwitchUMenuModMenuItem Initialized MenuItemEut_shieldbeltUDamagearmor2CriticalEventPlus ByteProperty ScriptText ReturnValueStaticSaveConfig GameInfo BonusType1 IntProperty LevelInfo TextBufferObjectPropertyFloatProperty BoolPropertyChargeInv bHeldItem9=0p3N1pTԅj@j@j@j@j@j@j@j@j@j@TԆTԅj@j@j@j@j@j@Tԅj@j@j@j@TԆTԆTԆTԆTԅj@j@j@TԆTԆTԪRkTԒ.;TԒ.;TԆTԆTԆTԆT""""&-2 upl$]You got the Damage Amplifier!]You got the Body Armor!] You got the Big Keg O' Health!]You got the Shield Belt!]32You got the Damage Amplifier and the Shield Belt!@ @@@@  @<@"@/@(;M!X|~p3N_4p3Np3N_4p3Np3N_4p3Np3N_4p3Np3N_4p3N_4_4_4_4_4_4_4_4p3N_4_4_4_4_4_4_4_4p3N_4_4_4_4_4_4_4_4p3N_4_4_4_4_4_4_4_4p3N_4_4_4_4_4_4_4_4p3N @542$ƲMo o '##$- w*- wR-3::, % & , , , ,  G% Y& l, , , , % & , , , , E% W& j, }, , , % & , , ,  N//============================================================================= // Spree Bonus Messages //============================================================================= class SBMessage extends CriticalEventPlus; var localized string GiveUDamage; var localized string GiveArmor; var localized string GiveHealth; var localized string GiveShieldBelt; var localized string GiveUDamageAndShield; static function float GetOffset(int Switch, float YL, float ClipY ) { return (Default.YPos/768.0) * ClipY + YL; } static function string GetString( optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) { switch (Switch) { case 1: return Default.GiveArmor; break; case 2: return Default.GiveHealth; break; case 3: return Default.GiveShieldBelt; break; case 4: return Default.GiveUDamage; break; case 5: return Default.GiveUDamageAndShield; break; } return ""; }  - -' g,O L, O   )%@D#  012@ 6Killing Spree Bonus !-' 3\HCHC?D?,?D?, u//============================================================================= // Spree Bonus Mutator //============================================================================= class SBConfigWindow expands UWindowFramedWindow; function BeginPlay() { Super.BeginPlay(); WindowTitle = "Killing Spree Bonus"; ClientClass = class'SBClientWindow'; bSizable = true; } function Created() { Super.Created(); SetSize(200, 200); WinLeft = Int((Root.WinWidth - WinWidth) / 2); WinTop = Int((Root.WinHeight - WinHeight) / 2); } ,~ a |w * , -'   ,*** C//============================================================================= // SBModMenuItem //============================================================================= class SBModMenuItem expands UMenuModMenuItem; function Setup() { MenuCaption = "Killing Spree Bonus"; MenuHelp = "Configure Killing Spree Bonus!"; } function Execute() { MenuItem.Owner.Root.CreateWindow(class'SBConfigWindow', 10, 10, 10, 10); } 7?'28l|ͷ;aGV撠o (!]Killing Spree BonusbT//============================================================================= // Killing Spree Bonus Mutator. //============================================================================= class SpreeBonus expands Mutator; var bool Initialized; var() config int BonusType1; var() config int BonusType2; var() config int BonusType3; var() config int BonusType4; var() config int BonusType5; function PostBeginPlay() { if (Initialized) return; Initialized = True; } function ScoreKill ( Pawn Killer, Pawn Other ) { if ( Other.bIsPlayer && (Killer != None) && Killer.bIsPlayer && (Killer != Other) && (!Level.Game.bTeamGame || (Other.PlayerReplicationInfo.Team != Killer.PlayerReplicationInfo.Team)) ) { if ( Killer.Spree == 4 ) { switch ( BonusType1 ) { case 0: GiveArmor(Killer); break; case 1: GiveHealth(Killer); break; case 2: GiveShieldBelt(Killer); break; case 3: GiveUDamage(Killer); break; case 4: GiveUDamageAndShield(Killer); break; } } else if ( Killer.Spree == 9 ) { switch ( BonusType2 ) { case 0: GiveArmor(Killer); break; case 1: GiveHealth(Killer); break; case 2: GiveShieldBelt(Killer); break; case 3: GiveUDamage(Killer); break; case 4: GiveUDamageAndShield(Killer); break; } } else if ( Killer.Spree == 14 ) { switch ( BonusType3 ) { case 0: GiveArmor(Killer); break; case 1: GiveHealth(Killer); break; case 2: GiveShieldBelt(Killer); break; case 3: GiveUDamage(Killer); break; case 4: GiveUDamageAndShield(Killer); break; } } else if ( Killer.Spree == 19 ) { switch ( BonusType4 ) { case 0: GiveArmor(Killer); break; case 1: GiveHealth(Killer); break; case 2: GiveShieldBelt(Killer); break; case 3: GiveUDamage(Killer); break; case 4: GiveUDamageAndShield(Killer); break; } } else if ( Killer.Spree == 24 ) { switch ( BonusType5 ) { case 0: GiveArmor(Killer); break; case 1: GiveHealth(Killer); break; case 2: GiveShieldBelt(Killer); break; case 3: GiveUDamage(Killer); break; case 4: GiveUDamageAndShield(Killer); break; } } } super.ScoreKill( Killer, Other ); } function GiveArmor ( Pawn Killer ) { local Inventory inv; inv = spawn(class'Armor2'); if ( inv != None ) { inv.bHeldItem = true; inv.RespawnTime = 0.0; inv.GiveTo(Killer); Killer.ReceiveLocalizedMessage( class'SBMessage', 0, None, None, None); } } function GiveHealth ( Pawn Killer ) { Killer.Health += 100; if ( Killer.Health > 199 ) Killer.Health = 199; Killer.ReceiveLocalizedMessage( class'SBMessage', 1, None, None, None); } function GiveShieldBelt ( Pawn Killer ) { local Inventory inv; inv = spawn(class'UT_ShieldBelt'); if ( inv != None ) { inv.Charge = 200; inv.bHeldItem = true; inv.RespawnTime = 0.0; inv.GiveTo(Killer); Killer.ReceiveLocalizedMessage( class'SBMessage', 2, None, None, None); } } function GiveUDamage ( Pawn Killer ) { local Inventory inv; inv = Killer.FindInventoryType(class'UDamage'); if ( inv != None ) inv.Destroy(); inv = spawn(class'UDamage'); if ( inv != None ) { inv.Charge = 200; inv.bHeldItem = true; inv.RespawnTime = 0.0; inv.GiveTo(Killer); inv.Activate(); Killer.ReceiveLocalizedMessage( class'SBMessage', 3, None, None, None); } } function GiveUDamageAndShield ( Pawn Killer ) { local Inventory inv; inv = Killer.FindInventoryType(class'UDamage'); if ( inv != None ) inv.Destroy(); inv = spawn(class'UDamage'); if ( inv != None ) { inv.Charge = 200; inv.bHeldItem = true; inv.RespawnTime = 0.0; inv.GiveTo(Killer); inv.Activate(); } inv = spawn(class'UT_ShieldBelt'); if ( inv != None ) { inv.Charge = 200; inv.bHeldItem = true; inv.RespawnTime = 0.0; inv.GiveTo(Killer); } Killer.ReceiveLocalizedMessage( class'SBMessage', 4, None, None, None); } .  A AC? Killing Spree ( ArmorExtra HealthShield BeltUDamageShield Belt & UDamage  .  A BC? Rampage ( ArmorExtra HealthShield BeltUDamageShield Belt & UDamage  .  ABC? Dominating ( ArmorExtra HealthShield BeltUDamageShield Belt & UDamage  .  ABC? Unstoppable ( ArmorExtra HealthShield BeltUDamageShield Belt & UDamage  .  ACC? Goldlike ( ArmorExtra HealthShield BeltUDamageShield Belt & UDamage   : C 3 .$ K   .    .    .    . +   .  * !  1w*aa w*,-'  a w*,-'    ,*** CKilling Spree BonusConfigure Killing Spree Bonus! >"s< $ A A A A XXXAJA>A;AlAAAEAMADX$X(AiA[AIA9AWnqEfAki?m0ioA`A@i)lVAHAbAmAKA_E#A.n*c+lWmTmSAgAjAGEA8EmUl1mRALEn<Em6E nFl=9QAn:CE&l2l]9!9YEE"ANEPEOAcAaE%%- PK]=p h%! u%!h B&! O&! \&! i&*p v&6p C'+p P'J]'=- g+,- t+%/ A, N,*- Z, g, s, ,h K-\ W-6- c-+- p-  }-.7 I.  U.  a.-Z m.;B y.;^ F/  S/y _/  X;.5 d;gp;#A W= d4YXF(qW!d4r