[Setup] Product=BoomDeath Version=100 Archive=BoomDeath.umod SrcPath=. MasterPath=.. Requires=UnrealTournament402Requirement Group=SetupGroup Group=BoomDeathGroup Group=umodIncludeFilesGroup [UnrealTournament402Requirement] Product=UnrealTournament Version=402 [SetupGroup] Copy=(Src=System\Manifest.ini,Master=System\Manifest.ini,Size=480,Flags=3) Copy=(Src=System\Manifest.int,Master=System\Manifest.int,Size=440,Flags=3) [BoomDeathGroup] File=(Src=System\BoomDeath.u,Size=10687) File=(Src=System\BoomDeath.int,Size=700) [umodIncludeFilesGroup] File=(Src=System\boomdeath.txt,Size=760) [Setup] LocalProduct=BoomDeath ReadMe=System\boomdeath.txt SetupWindowTitle=BoomDeath Mutator AutoplayWindowTitle=BoomDeath Options ProductURL=none VersionURL=none Developer=William Chenoweth DeveloperURL=none [UnrealTournament402Requirement] LocalProduct=UnrealTournament ProductURL=http://www.unrealtournament.com/ VersionURL=http://unreal.epicgames.com/ Developer=Epic Games, Inc. DeveloperURL=http://www.epicgames.com/ Áƒ*žD4@A &U% š!łÓą9ŕ}qśÂA4NoneMutatorTakeDamageBot PlayerPawnPostBeginPlay BoomDeathCoreEngineRegisterDamageMutatorSystem BoomDeath30 BoomDeath40 BoomDeath10 BoomDeath50 BoomDeath20VectorObjectPropertyObjectClassPackageLevel GameInfo LevelInfoMutator TextBufferPawnActor NameProperty BoolProperty FunctionHealthStruct actualDamage Momentum HitLocationGame InstigatorNextDamageMutatorVictim instigatedBy IntProperty Explosion InitializedBotpack ShockWaveStructProperty LocationFloatProperty DamageType RandRange ScriptTextchance €ƒ€ƒ €ƒ€ƒ€ƒ,€ƒ!€ƒ-€ƒ%€ƒ$€ƒ€€‡‡€‡€‡€‡€€Œ €Œ€"€Œ#€Œ(€Œ€&€Œ)€Œ€€*€Œ'€Œ+€Œ„<> ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ .kV-ú„1šňpƒŚTŒÔƒŚTŒÔƒŚTŒÔƒŚTŒÔƒŚTŒÔƒŚTŒÔ‡ÔäŮԄ1šňp‹’ÔűRákř† „?3 ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ /ďEÎ?„1šňpƒŚTŒÔƒŚTŒÔƒŚTŒÔƒŚTŒÔƒŚTŒÔƒŚTŒÔ‡ÔäŮԄ1šňp‹’ÔűRákř† pclass BoomDeath40 expands Mutator; var bool Initialized; function PostBeginPlay() { if (Initialized) return; Initialized = True; Level.Game.RegisterDamageMutator( Self ); } function MutatorTakeDamage( out int ActualDamage, Pawn Victim, Pawn InstigatedBy, out Vector HitLocation, out Vector Momentum, name DamageType) { //local WarShell bigboom; local Shockwave explosion; local float chance; if (InstigatedBy.IsA('Bot') || InstigatedBy.IsA('PlayerPawn')) { if (Victim.IsA('Bot') || Victim.IsA('PlayerPawn')) { if (Victim.Health <= ActualDamage) { chance = RandRange(0, 10); if (chance <= 4) { //bigboom = Spawn(class 'WarShell', InstigatedBy, , Victim.Location); //bigboom.Instigator = Victim; //bigboom.speed = 1200; //bigboom.Explode(Victim.Location, Victim.Location); //HurtRadius(1000, 300.0, 'RedeemerDeath', 100000, Victim.Location); explosion = Spawn(class 'Shockwave',,,Victim.Location); explosion.Instigator = Victim; } } } } if ( NextDamageMutator != None ) NextDamageMutator.MutatorTakeDamage( ActualDamage, Victim, InstigatedBy, HitLocation, Momentum, DamageType ); } ›2ŤűÁ„a/!a/!Á„a/!a/!Á˜˜“ AÁ˛?,a ‡  •—ůwŽ*Ž$,'& ™^. - -'š– ›4ŤűÁ„ a/! a/!Á„a/!a/!Á˜˜“ AÁ˛?,a ‡  •—ůwŽ*Ž$ %() ™ ^. -  - 'š– pclass BoomDeath20 expands Mutator; var bool Initialized; function PostBeginPlay() { if (Initialized) return; Initialized = True; Level.Game.RegisterDamageMutator( Self ); } function MutatorTakeDamage( out int ActualDamage, Pawn Victim, Pawn InstigatedBy, out Vector HitLocation, out Vector Momentum, name DamageType) { //local WarShell bigboom; local Shockwave explosion; local float chance; if (InstigatedBy.IsA('Bot') || InstigatedBy.IsA('PlayerPawn')) { if (Victim.IsA('Bot') || Victim.IsA('PlayerPawn')) { if (Victim.Health <= ActualDamage) { chance = RandRange(0, 10); if (chance <= 2) { //bigboom = Spawn(class 'WarShell', InstigatedBy, , Victim.Location); //bigboom.Instigator = Victim; //bigboom.speed = 1200; //bigboom.Explode(Victim.Location, Victim.Location); //HurtRadius(1000, 300.0, 'RedeemerDeath', 100000, Victim.Location); explosion = Spawn(class 'Shockwave',,,Victim.Location); explosion.Instigator = Victim; } } } } if ( NextDamageMutator != None ) NextDamageMutator.MutatorTakeDamage( ActualDamage, Victim, InstigatedBy, HitLocation, Momentum, DamageType ); } „@9 ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ 6“´|„1šňpƒŚTŒÔƒŚTŒÔƒŚTŒÔƒŚTŒÔƒŚTŒÔƒŚTŒÔ‡ÔäŮԄ1šňp‹’ÔűRákř† ›: ŤűÁ„a/!a/!Á„a/!a/!Á˜˜ “ AÁ˛?,a ‡  •—ůwŽ*Ž$ !  ™^. - -'š– ›8ŤúŔ„a/!a/!Ŕ„a/!a/!Ŕ˜˜“ AŔ˛?&a ‡  •—řwŽ*Ž$-+* ™^. - -'š– „07 ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ;Ő.‚Ű„1šňpƒŚTŒÔƒŚTŒÔƒŚTŒÔƒŚTŒÔƒŚTŒÔƒŚTŒÔ‡ÔäŮԄ1šňp‹’ÔűRákř† pclass BoomDeath50 expands Mutator; var bool Initialized; function PostBeginPlay() { if (Initialized) return; Initialized = True; Level.Game.RegisterDamageMutator( Self ); } function MutatorTakeDamage( out int ActualDamage, Pawn Victim, Pawn InstigatedBy, out Vector HitLocation, out Vector Momentum, name DamageType) { //local WarShell bigboom; local Shockwave explosion; local float chance; if (InstigatedBy.IsA('Bot') || InstigatedBy.IsA('PlayerPawn')) { if (Victim.IsA('Bot') || Victim.IsA('PlayerPawn')) { if (Victim.Health <= ActualDamage) { chance = RandRange(0, 10); if (chance <= 5) { //bigboom = Spawn(class 'WarShell', InstigatedBy, , Victim.Location); //bigboom.Instigator = Victim; //bigboom.speed = 1200; //bigboom.Explode(Victim.Location, Victim.Location); //HurtRadius(1000, 300.0, 'RedeemerDeath', 100000, Victim.Location); explosion = Spawn(class 'Shockwave',,,Victim.Location); explosion.Instigator = Victim; } } } } if ( NextDamageMutator != None ) NextDamageMutator.MutatorTakeDamage( ActualDamage, Victim, InstigatedBy, HitLocation, Momentum, DamageType ); } „51˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ =Q=a„1šňpƒŚTŒÔƒŚTŒÔƒŚTŒÔƒŚTŒÔƒŚTŒÔƒŚTŒÔ‡ÔäŮԄ1šňp‹’ÔűRákř† ›AŤűÁ„ a/! a/!Á„a/!a/!Á˜˜“ AÁ˛?,a ‡  •—ůwŽ*Ž$ $#" pclass BoomDeath30 expands Mutator; var bool Initialized; function PostBeginPlay() { if (Initialized) return; Initialized = True; Level.Game.RegisterDamageMutator( Self ); } function MutatorTakeDamage( out int ActualDamage, Pawn Victim, Pawn InstigatedBy, out Vector HitLocation, out Vector Momentum, name DamageType) { //local WarShell bigboom; local Shockwave explosion; local float chance; if (InstigatedBy.IsA('Bot') || InstigatedBy.IsA('PlayerPawn')) { if (Victim.IsA('Bot') || Victim.IsA('PlayerPawn')) { if (Victim.Health <= ActualDamage) { chance = RandRange(0, 10); if (chance <= 3) { //bigboom = Spawn(class 'WarShell', InstigatedBy, , Victim.Location); //bigboom.Instigator = Victim; //bigboom.speed = 1200; //bigboom.Explode(Victim.Location, Victim.Location); //HurtRadius(1000, 300.0, 'RedeemerDeath', 100000, Victim.Location); explosion = Spawn(class 'Shockwave',,,Victim.Location); explosion.Instigator = Victim; } } } } if ( NextDamageMutator != None ) NextDamageMutator.MutatorTakeDamage( ActualDamage, Victim, InstigatedBy, HitLocation, Momentum, DamageType ); } pclass BoomDeath10 expands Mutator; var bool Initialized; function PostBeginPlay() { if (Initialized) return; Initialized = True; Level.Game.RegisterDamageMutator( Self ); } function MutatorTakeDamage( out int ActualDamage, Pawn Victim, Pawn InstigatedBy, out Vector HitLocation, out Vector Momentum, name DamageType) { //local WarShell bigboom; local Shockwave explosion; local float chance; if (InstigatedBy.IsA('Bot') || InstigatedBy.IsA('PlayerPawn')) { if (Victim.IsA('Bot') || Victim.IsA('PlayerPawn')) { if (Victim.Health <= ActualDamage) { chance = RandRange(0, 10); if (chance <= 1) { //bigboom = Spawn(class 'WarShell', InstigatedBy, , Victim.Location); //bigboom.Instigator = Victim; //bigboom.speed = 1200; //bigboom.Explode(Victim.Location, Victim.Location); //HurtRadius(1000, 300.0, 'RedeemerDeath', 100000, Victim.Location); explosion = Spawn(class 'Shockwave',,,Victim.Location); explosion.Instigator = Victim; } } } } if ( NextDamageMutator != None ) NextDamageMutator.MutatorTakeDamage( ActualDamage, Victim, InstigatedBy, HitLocation, Momentum, DamageType ); } ™ ^. -  - 'š– ˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙÷˙˙˙,ţ˙˙˙+ţ˙˙˙˙˙˙˙ú˙˙˙ţ˙˙˙-ü˙˙˙%ţ˙˙˙ţ˙˙˙/ţ˙˙˙(ţ˙˙˙ú˙˙˙1ţ˙˙˙-ű˙˙˙.ő˙˙˙#ű˙˙˙$(ý˙˙˙ű˙˙˙ű˙˙˙ü˙˙˙ţ˙˙˙˙˙˙˙ˆ3& S ˆ9& ` ˆ>& m ˆ1& z ˆ7& Gˆ1' Tˆ7' aˆ9' nˆ3' {ˆ>' H.* U/* a‘7  m‘>  y93 Eˆ9) Qˆ1) ^13 k‘3  wˆ>) C>3 P;* \‘9  h6* tˆ3) @33 M‘1  Y73 eˆ7) q=* ~œ70 J7! V7" cœ>0 p>! |>" I3" Vœ10 c1! o3! |œ30 Iœ90 U9! a1" n9" {„ oH„ ow’;24{fŠ›=za.Š™=8[1Š›/zS2Š™/8M5’=24{E6„ p@IŠ›;zpKŠ™68jNŠ›6ybOŠ™;8[R„ oSS’.24{BV„o}hŠ›.{lk’/24{gn’624{bŠ™.8]”[Public] Object=(Name=BoomDeath.BoomDeath10,Class=Class,MetaClass=Engine.Mutator,Description="BoomDeath 10%,10% chance dead players explode....") Object=(Name=BoomDeath.BoomDeath20,Class=Class,MetaClass=Engine.Mutator,Description="BoomDeath 20%,20% chance dead players explode....") Object=(Name=BoomDeath.BoomDeath30,Class=Class,MetaClass=Engine.Mutator,Description="BoomDeath 30%,30% chance dead players explode....") Object=(Name=BoomDeath.BoomDeath40,Class=Class,MetaClass=Engine.Mutator,Description="BoomDeath 40%,40% chance dead players explode....") Object=(Name=BoomDeath.BoomDeath50,Class=Class,MetaClass=Engine.Mutator,Description="BoomDeath 50%,50% chance dead players explode....") ----------------- About BoomDeath ----------------- BoomDeath is my first UnrealScript. I tried to learn the basics while writing this mutator. All it does is set a percent chance that a Redeemer warhead will explode after a player dies. Frags are counted normally, with the exception that the dead player gets a frag for every player killed in their death-explosion. This balances the game in a way because newbies have a chance to strike back when they are constantly being fragged, and an expert player on a spree or rampage has an increased chance of being blown up and losing all their weapons and armor. Of course, if you can get behind a wall before the explosion... Enjoy... - William 'Ntruder' Chenoweth (ntruder@home.com)System\Manifest.inikSystem\Manifest.intk¸System\BoomDeath.u#ż)System\BoomDeath.intâ-źSystem\boomdeath.txtž0řŁĹ㟖3Q4#čŐŁ