[Setup] Product=Action Combat Version=100 Archive=UTPCombat.umod SrcPath=. MasterPath=.. Requires=UnrealTournamentRequirement Group=SetupGroup Group=UTPCombatGroup [UnrealTournamentRequirement] Product=UnrealTournament Version= [SetupGroup] Copy=(Src=System\Manifest.ini,Master=System\Manifest.ini,Size=417,Flags=3) Copy=(Src=System\Manifest.int,Master=System\Manifest.int,Size=543,Flags=3) [UTPCombatGroup] File=(Src=System\UTPCombat.u,Size=8522) File=(Src=System\UTPCombat.int,Size=214) File=(Src=Help\UTPCombat.txt,Size=757) [Setup] LocalProduct=Action Combat ReadMe=Help\UTPCombat.txt SetupWindowTitle=Action Combat Setup AutoplayWindowTitle=Action Combat Options ProductURL=http://www.planetunreal.com/utp VersionURL=http://www.planetunreal.com/utp Developer=Professor Gib (Team UTP) DeveloperURL=http://www.planetunreal.com/thelaboratory [UnrealTournamentRequirement] LocalProduct=UnrealTournament ProductURL=http://www.unrealtournament.com/ VersionURL=http://unreal.epicgames.com/ Developer=Epic Games, Inc. DeveloperURL=http://www.epicgames.com/ Áƒ*žER@¤.G@–Đ7‡ÎÓŒoŕ)M˘ËRNone GiveItemTo SetTwoHands GiveAmmo WeaponSetGiveToGiveDoubleEnforcers ScoreKill BecomeItemFindInventoryTypeEngineCoreSetDisplayPropertiesCheckReplacementCombatSystemIdle PlayerPawn UTPCombatIdle2 SetUpSlaveAmmoWeapon AddInventory PreBeginPlay ModifyPlayerSetHandSetSwitchPriority DownWeaponBotpackMutator TextBufferObject NextMutatorbSuperRelevant bHeldItem RespawnTime InventoryActor FunctionOtherPawnTextureClassClassProperty ScriptText ReturnValuePackage StrPropertyStyle AmbientGlowbUnlitHealth AIRating Handedness bCanThrow ItemNameKillerbMeshEnviroMapItem aClassNamePendingWeapon AmmoName AmmoTypeDynamicLoadObject AmmoAmountMaxAmmo enforcer BoolPropertyObjectProperty DoubleNameSlaveEnforcer ItemClass IntProperty ByteProperty WeaponItem Enforcer1 Enforcer2FloatPropertybItemsRemovedPreInitializedPostInitialized „€†‚€‚€†‘ˆ€†ˆˆ „€†€‹€† €€@ €†  4ÂK$?„ a/! a/!?-($' nP T   „Rw.„ *.„  a „ ĄŽ ŞÍĚĚ>rސ@ Ź­--™  Ÿ,ô@ Ž-Ľ(>w•*•  BçźˆŤ ‘(r* rw‚*.‚apw*– -—'  š$a#a/!.“Ś3q!Žq!¤*Ž a– -—' œŽ˘,–Botpack.ThighpadsBotpack.ChainsawBotpack.ImpactHammerBotpack.EnforcerBotpack.UT_BioRifleBotpack.ShockRifleBotpack.PulseGunBotpack.RipperBotpack.minigun2Botpack.UT_FlakCannonBotpack.UT_EightballBotpack.SniperRifle žw- -' - ' HCclass combat extends mutator; var bool bItemsRemoved, PreInitialized, PostInitialized; event PreBeginPlay() { if (PreInitialized) { bItemsRemoved = True; return; } PreInitialized = True; } /*function PostBeginPlay() { if (PostInitialized) return; PostInitialized = True; Level.Game.RegisterDamageMutator( Self ); }*/ function modifyplayer(pawn other) { other.health=150; giveitemto(other, "Botpack.Thighpads"); giveitemto(other, "Botpack.Chainsaw"); giveitemto(other, "Botpack.ImpactHammer"); giveitemto(other, "Botpack.Enforcer"); GiveDoubleEnforcers(other); giveitemto(other, "Botpack.UT_BioRifle"); giveitemto(other, "Botpack.ShockRifle"); giveitemto(other, "Botpack.PulseGun"); giveitemto(other, "Botpack.Ripper"); giveitemto(other, "Botpack.minigun2"); giveitemto(other, "Botpack.UT_FlakCannon"); giveitemto(other, "Botpack.UT_Eightball"); giveitemto(other, "Botpack.SniperRifle"); } function ScoreKill(pawn killer, pawn other) { Other.Weapon.bCanThrow = False; // don't drop any weapons. if(nextmutator!=none) nextmutator.ScoreKill(killer, other); } function bool checkreplacement(actor other, out byte bSuperRelevant) { bSuperRelevant=0; If(other.isa('weapon') || other.isa('ammo')) If(!bItemsRemoved) return false; bSuperRelevant=0; return true; } function GiveItemTo( pawn Other, string aClassName ) { local class ItemClass; local Inventory Item; local Weapon WeaponItem; ItemClass = class( DynamicLoadObject( aClassName, class'Class' ) ); // //taken out(If already owned, or) class not found, return. if ( ItemClass == None ) return; // Procedure for weapons. if ( class( ItemClass ) != None ) { WeaponItem = Weapon( Spawn( ItemClass, Self ) ); if ( WeaponItem != None ) { WeaponItem.RespawnTime = 0.0; WeaponItem.GiveTo( Other ); WeaponItem.bHeldItem = TRUE; GiveAmmo( WeaponItem, Other ); WeaponItem.SetSwitchPriority( Other ); WeaponItem.WeaponSet( Other ); WeaponItem.AmbientGlow = 0; WeaponItem.SetOwner( Other ); if ( Other.IsA( 'PlayerPawn' ) ) WeaponItem.SetHand( PlayerPawn( Other ).Handedness ); else WeaponItem.GotoState( 'Idle' ); Other.Weapon.GotoState( 'DownWeapon' ); Other.PendingWeapon = None; Other.Weapon = WeaponItem; } return; } Item = Spawn( ItemClass, Self ); Item.RespawnTime = 0.0; Item.GiveTo( Other ); Item.bHeldItem = TRUE; } Function GiveDoubleEnforcers(pawn other) { local Enforcer Enforcer1, Enforcer2; local Inventory Item; Item = Other.FindInventoryType(class'Enforcer'); if (Enforcer(Item) != none) { Enforcer1 = Enforcer(Item); Enforcer2 = Spawn(class'Enforcer', Other); Enforcer2.BecomeItem(); Enforcer1.ItemName = Enforcer1.DoubleName; Enforcer1.SlaveEnforcer = Enforcer2; Enforcer1.SetTwoHands(); Enforcer1.AIRating = 0.4; Enforcer1.SlaveEnforcer.SetUpSlave( Other.Weapon == Enforcer1 ); Enforcer1.SlaveEnforcer.SetDisplayProperties(Enforcer1.Style, Enforcer1.Texture, Enforcer1.bUnlit, Enforcer1.bMeshEnviromap); Enforcer1.SetTwoHands(); Enforcer1.WeaponSet(Other); } } function GiveAmmo( weapon WeaponItem, Pawn Other ) { if ( WeaponItem.AmmoName == None ) return; WeaponItem.AmmoType = Ammo(Other.FindInventoryType(WeaponItem.AmmoName)); if ( WeaponItem.AmmoType != None ) return; else { WeaponItem.AmmoType = Spawn(WeaponItem.AmmoName, Self); // Create ammo type required Other.AddInventory(WeaponItem.AmmoType); // and add to player's inventory WeaponItem.AmmoType.BecomeItem(); WeaponItem.AmmoType.AmmoAmount = WeaponItem.AmmoType.MaxAmmo; WeaponItem.AmmoType.GotoState('Idle2'); } } /*function MutatorTakeDamage( out int ActualDamage, Pawn Victim, Pawn InstigatedBy, out Vector HitLocation, out Vector Momentum, name DamageType) //found a better way... { if(victim.health - ActualDamage<=0) { for (Inv = Other.Inventory; Inv != None; Inv = Inv.Inventory ) if ( Weapon( Inv ) != None ) Weapon( Inv ).Destroy; if ( NextDamageMutator != None ) NextDamageMutator.MutatorTakeDamage( ActualDamage, Victim, InstigatedBy, HitLocation, Momentum, DamageType ); }*/ Ü r’* Š.Œ ’`wŠ* ţŠa’ŠŠŠ§Š¨Šq! ‰˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙=Dăčԉl€¤ă‚˛tů‚˛tů†9ë }‚˛tů‚˛tů‚˛tů‚˛tů†9ë }‚˛tů‚˛tůŒŃ¸™B‚˛tůŒŃ¸™B‚˛tůŒŃ¸™B‚˛tůŒŃ¸™B†9ë }„‚t‡@„‚t‡@„‚t‡@„‚t‡@„‚t‡@„‚t‡@„‚t‡@„‚t‡@†9ë }„‚t‡@„‚t‡@„‚t‡@„‚t‡@„‚t‡@„‚t‡@„‚t‡@„‚t‡@‚˛tů‚˛tů‚˛tů‚˛tů‚˛tů‚˛tů‚˛tů†9ë }‚˛tů“ýŻé‚˛tů†9ë }‚˛tů†9ë }†9ë }ˆĚj@وĚj@وĚj@Ł‹=•‚‹=•‚†9ë }‚˛tů‰l€¤ă†9ë } ”€ / +˙˙˙˙ / +ű˙˙˙C / +˙˙˙˙) +ý˙˙˙E +˙˙˙˙% +˙˙˙˙ Eţ˙˙˙? +˙˙˙˙& +˙˙˙˙ +ý˙˙˙' Eú˙˙˙ +ý˙˙˙D Eü˙˙˙G +ý˙˙˙+ ,ţ˙˙˙> +˙˙˙˙ +ý˙˙˙ E÷˙˙˙! Nř˙˙˙$ Dř˙˙˙# +ý˙˙˙, Dő˙˙˙: Jő˙˙˙2 +ý˙˙˙0 '÷˙˙˙ Dő˙˙˙3 '÷˙˙˙ '÷˙˙˙ '÷˙˙˙ 0ř˙˙˙8 Iú˙˙˙4 +ý˙˙˙ Eú˙˙˙= Dţ˙˙˙7 Ní˙˙˙6 Iô˙˙˙A Iô˙˙˙B +ý˙˙˙J Nţ˙˙˙5 'ě˙˙˙@ Jő˙˙˙1 Eő˙˙˙* 0ü˙˙˙F‡L y‡( F‡K S‡K `‡( m˜Hz‡( H‡; U‡; b‡M o‡( |‡( IP V‡( bO oŠ" {›< H‡9 T  Oa`pŸAPgQœSx"ž-K(Q x(Ł-4SCD)|Wl‰h So. {x[Public] Object=(Name=UTPCombat.Combat,Class=Class,MetaClass=Engine.Mutator,Description="Action Combat, All weapons & ammo pickups removed. Every player starts with 150 health, 50 armor, all weapons & full ammo.")Action Combat is a mutator made for UT Retail. In this mutator all waepons and all ammo is removed from the level. When a player spawns, he/she starts with all weapons, all ammo, 150 health and 50 armor. The purpose of this mutator is that it add a totally new dimension teamplay strategies and skills. Just focusing on the weapons to pick up and kill as many opponents as possible. From now on you have to be careful with your weapons and ammo, because there isn't anymore to pick up. And what is even worse than running out of ammo. Action Combat was made by Professor Gib. Member of the Ultimate Tournament Project Team http://www.planetunreal.com/utp Professor Gib The Laboratory http://www.planetunreal.com/thelaboratory System\Manifest.ini+System\Manifest.int+System\UTPCombat.uJJ!System\UTPCombat.int”%ÖHelp\UTPCombat.txtj&őŁĹăŸ_)*S ß¤