*E.@ݝhe:YYNE*͇Z.NoneAMadmansDream TakeDamageCoreJerksSystemChunkUpDead9BInitforDeadBeginEngineSetText PreventDeath BeginState Corroding LieStillDead9LPUTHumanCarcass LPCarcassCreateControl GibSoundsDying GreenBloodReduceCylinderMassTick SpawnHeadAnimEndAddFliesAndRats AnimSequenceCreateReplacementUWindowCheckZoneCarcassesTimerHitWall DestroyedCollisionRadiusCollisionHeightDead1GutHitCreated RightHitMasterReplacement GibSoundHeadHit AnimFrameshotSetFontGibbingLeftHit LandThump bBlockActorsbBlockPlayersPostBeginPlay LifeSpan PlayDyingGibbed PlayerPawn BeginPlayTextureBroadcastMessage BaseChangeLandedVector RemoteRole Napalmed SetValueLPTFemaleBodyAMadmansDreamModMenuItemAMadmansDreamConfigWindowAMadmansDreamClientWindowJBMaleBotPlusbCollideActors MaleBotPlusbStaticFemaleBotPlus DrawType NetPriority HidePlayerNotify MenuHelpExecute MenuCaptionReducedHeightFactorbCollideWorldMaleBot bProjTargetPhysicsbStasisSetNumericOnly SetMaxLength icestatued GetValue LPTMaleBodyTransientSoundVolume PrePivotbReducedHeightbSlidingCarcassTournamentFemaleTournamentMaleJBFemaleBotPlus SinglePlayer BuoyancyUMenu FemaleBotRegisterDamageMutatorstoned LandedSound AllowChunk Corroded bDecorativeBurned Disrupted LocationCarcass bIsPlayerPlayerReplicationInfo PointRegionKillerN Momentum HitLocationDamageFatness HitNormalaPawnbBounce ZoneInfo GameInfo VelocityDesiredRotationGameRegion Decoration DeltaTimeOther MultiSkinsMutator ExitActor AnimMinRate bPainZone bDestructive splashSizeOwnersplash AnimLast TimeSecondscarcNetMode bMeshCurvyDecal bAnimLoopbAnimFinished PlayerOwner bBobbing MaxCarcasses LevelInfoKilledBbMeshEnviroMap Acceleration OldLocationCumulativeDamageBugsSkin DamageTypeBase instigatedByWall TweenRate DamagePerSecZone bWaterZoneLevel AnimRateWStaticSaveConfigRollY ReturnValueR DrawScale NumCarcassesSimAnim S_Corpse bSizableUWindowEditControlUWindowPulldownMenuItemUWindowSmallCloseButtonUWindowDialogClientWindowUWindowFramedWindowUWindowRootWindowUWindowDialogControlUWindowWindowUWindowPulldownMenuUWindowLabelControlSetSize CreateWindow WindowTitleAlignWinLeft EditBoxWidth WinHeight WinWidthWinTopRootBestHeaderControlOffset CenterPos CenterWidth CloseButtonSoundRoleClassPackage TextBufferObject FunctionStatePlaneratsRotatorStruct UnrealShare StrPropertyStructPropertyfliesMalebPlayerCarcass ScriptText bGreenBlood NewFatnessThumpGib1Gib4Gib5 bThumped bPermanent bCorroding DeathZone ExistTime carcRotation finalRot OldHeightimpact PlayerRepGibsnewAnimibSeen Rotation ExitSoundUMenuModMenuItem ControlWidth ControlLeft ControlRight Initialized MenuItemBotpackClassProperty NamePropertyPitchObjectPropertyFloatPropertyUTMasterCreatureChunk UTBloodPool2UT_HeadFemale UT_HeadMale UT_BloodHitUT_BloodBurstUT_BigBloodHitTMaleMasterChunkTFemaleMasterChunkPawnMoverActorbHidden BloodSplatNewGibPoolLastHit bJerking bRiddled WeaponOffsetZABar BoolPropertyXCMesh IntPropertyAuthor BytePropertyEMaxCarcassesPerZone ActiveZone ClientClassdist NextMutator6b$\KBA$ݛ111111ԝX11{#UԝX{#UԝX{#UԝXH9H9111tH9tt1ԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXH9TTTttQ23%11 T$>labA`:@A_$@@%$A&$PAN$ @" ) 8BY }5R=$:ett=$:etttttttttttttttt=$:e$ݛttt=$:e11 >UIa  bP%3-1I-&m@!n ,d-:'q!--(o$::$6%?%6%??,%?,@!/>m,a?L??>6?,a-# [WsE}NV~@$rkOB$ݛG1111tt oKSYSX7$4C .$fff?M<%$A&$@IUW$4Cg$B@:j>::$<<6--;'  x+03;-Y &_y$"w*a j"cEGB666b?a@(Ea m>v--(o$K::$64?%64??,4?,Y!/>,a?L??>6?,a-# IRA B lW d'GLUQ  aa@!a@m- -6-6- p1T{"- aA( 5=sy S!w >hT$aL>q!  XVo\ZcF]agw*a <q+Z T%vuF2c%BMo o  yCGe_~ }5Rt }5R }5Rttttt }5RtВ gdD 2 ::$B ftttt]H]H (-2*+7$'.$45$B_r^ . ::$B gI-:q!q!  T vL0 wH(_6@F6@EL-; -3]- uP]kiw*a/!:a!-' OtD W#AnM#=/a &-1//$333??,MM6fff?6?,x-(v!# m4`J^E.-(#@@%v,. ;- 6 -(----a?,za a?, 6%6%--6@F6@E6zD6@F-- L?fff? FC/S= 100) ) { bCorroding = true; GotoState('Corroding'); } else { if ( !bDecorative ) { bBobbing = false; SetPhysics(PHYS_Falling); } if ( (Physics == PHYS_None) && (Momentum.Z < 0) ) Momentum.Z *= -1; Velocity += 3 * momentum/(Mass + 200); if ( DamageType == 'shot' ) Damage *= 0.4; CumulativeDamage += Damage; if ( (((Damage > 30) || !IsAnimating()) && (CumulativeDamage > 0.8 * Mass)) || (Damage > 0.4 * Mass) || ((Velocity.Z > 150) && !IsAnimating()) ) ChunkUp(Damage); if ( bDecorative ) Velocity = vect(0,0,0); } } } function ChunkUp(int Damage) { if ( bPermanent ) return; if ( Region.Zone.bPainZone && (Region.Zone.DamagePerSec > 0) ) { if ( Bugs != None ) Bugs.Destroy(); } else CreateReplacement(); SetPhysics(PHYS_None); bHidden = true; SetCollision(false,false,false); bProjTarget = false; GotoState('Gibbing'); } simulated function Landed(vector HitNormal) { local rotator finalRot; local float OldHeight; if ( (Velocity.Z < -1000) && !bPermanent ) { ChunkUp(200); return; } finalRot = Rotation; finalRot.Roll = 0; finalRot.Pitch = 0; setRotation(finalRot); SetPhysics(PHYS_None); SetCollision(bCollideActors, false, false); if ( HitNormal.Z < 0.99 ) ReducedHeightFactor = 0.1; if ( HitNormal.Z < 0.93 ) ReducedHeightFactor = 0.0; if ( !IsAnimating() ) LieStill(); if ( Level.NetMode == NM_DedicatedServer ) return; if ( Pool == None ) Pool = Spawn(class'UTBloodPool2',,,Location, rotator(HitNormal)); else Spawn(class'BloodSplat',,,Location, rotator(HitNormal + 0.5 * VRand())); } function AnimEnd() { if ( Physics == PHYS_None ) LieStill(); else if ( Region.Zone.bWaterZone ) { bThumped = true; LieStill(); } } function LieStill() { SimAnim.X = 10000 * AnimFrame; SimAnim.Y = 5000 * AnimRate; if ( !bThumped && !bDecorative ) LandThump(); if ( !bReducedHeight ) ReduceCylinder(); } function LandThump() { local float impact; if ( Physics == PHYS_None) { bThumped = true; if ( Role == ROLE_Authority ) { impact = 0.75 + Velocity.Z * 0.004; impact = Mass * impact * impact * 0.015; PlaySound(LandedSound,, impact); } } } simulated function HitWall(vector HitNormal, actor Wall) { local UT_BloodBurst b; b = Spawn(class 'UT_BloodBurst'); if ( bGreenBlood ) b.GreenBlood(); b.RemoteRole = ROLE_None; Velocity = 0.7 * (Velocity - 2 * HitNormal * (Velocity Dot HitNormal)); Velocity.Z *= 0.9; if ( Abs(Velocity.Z) < 120 ) { bBounce = false; Disable('HitWall'); } } auto state Dying { ignores TakeDamage; simulated function BeginState() { Super.BeginState(); if ( (PlayerOwner != None) && PlayerOwner.Owner.IsA('PlayerPawn') && PlayerOwner.Owner.IsInState('Dying') ) PlayerOwner.Owner.bHidden = true; } Begin: if ( bCorroding ) GotoState('Corroding'); if ( bDecorative && !bReducedHeight ) { ReduceCylinder(); SetPhysics(PHYS_None); } Sleep(0.2); if ( bCorroding ) GotoState('Corroding'); GotoState('Dead'); } state Dead { function AddFliesAndRats() { } function CheckZoneCarcasses() { local LPUTHumanCarcass C, Best; if ( !bDecorative && (DeathZone.NumCarcasses > DeathZone.MaxCarcasses) ) { Best = self; ForEach AllActors(class'LPUTHumanCarcass', C) if ( (C != Self) && !C.bDecorative && (C.DeathZone == DeathZone) && !C.IsAnimating() ) { if ( Best == self ) Best = C; else if ( !C.PlayerCanSeeMe() ) { Best = C; break; } } Best.Destroy(); } } function Timer() { if ( ExistTime <= 0 ) { Super.Timer();} else { SetPhysics(Phys_Falling); ExistTime -= 3.0; } } singular event BaseChange() { if ( Pawn(Base) != None ) { ChunkUp(200); return; } if ( (Mover(Base) != None) && (ExistTime == 0) ) { ExistTime = 10; SetTimer(3.0, true); } Super.BaseChange(); } function BeginState() { if ( bDecorative || bPermanent || ((Level.NetMode == NM_Standalone) && Level.Game.IsA('SinglePlayer')) ) lifespan = 0.0; else { if ( Mover(Base) != None ) { ExistTime = 12; SetTimer(3.0, true); } else SetTimer(12, false); } } } state Gibbing { ignores Landed, HitWall, AnimEnd, TakeDamage, ZoneChange; Begin: Sleep(0.25); GibSound(); if ( !bPlayerCarcass ) Destroy(); } state Corroding { ignores Landed, HitWall, AnimEnd, TakeDamage, ZoneChange; function Tick( float DeltaTime ) { local int NewFatness; local float splashSize; local actor splash; NewFatness = fatness - 80 * DeltaTime; if ( NewFatness < 85 ) { if ( Region.Zone.bWaterZone && Region.Zone.bDestructive ) { splashSize = FClamp(0.0002 * Mass * (250 - 0.5 * FMax(-600,Velocity.Z)), 1.0, 4.0 ); if ( Region.Zone.ExitSound != None ) PlaySound(Region.Zone.ExitSound, SLOT_Interact, splashSize); if ( Region.Zone.ExitActor != None ) { splash = Spawn(Region.Zone.ExitActor); if ( splash != None ) splash.DrawScale = splashSize; } } Destroy(); } fatness = Clamp(NewFatness, 0, 255); } function BeginState() { Disable('Tick'); } Begin: Sleep(0.5); Enable('Tick'); } [C![M- !-'EC,DM-( C[Z\-,266 Br*-(a!̌?=Y- ?, #1  333?-(a!̌?= fT//============================================================================= // LPTMaleBody. //============================================================================= class LPTMaleBody extends LPUTHumanCarcass; var float LastHit; var bool bJerking; var name Jerks[4]; replication { // Things the server should send to the client. unreliable if( Role==ROLE_Authority ) LastHit, bJerking; } function TakeDamage( int Damage, Pawn InstigatedBy, Vector Hitlocation, Vector Momentum, name DamageType) { local bool bRiddled; if ( bJerking || (AnimSequence == 'Dead9') ) { bJerking = true; if ( Damage < 23 ) LastHit = Level.TimeSeconds; else bJerking = false; } Super.TakeDamage(Damage, InstigatedBy, HitLocation, Momentum, DamageType); if ( bJerking ) { CumulativeDamage = 50; Velocity.Z = FMax(Velocity.Z, 40); if ( InstigatedBy == None ) { bJerking = false; PlayAnim('Dead9B', 1.1, 0.1); } } if ( bJerking && (VSize(InstigatedBy.Location - Location) < 150) && (InstigatedBy.Acceleration != vect(0,0,0)) && ((Normal(InstigatedBy.Velocity) Dot Normal(Location - InstigatedBy.Location)) > 0.7) ) { bJerking = false; PlayAnim('Dead9B', 1.1, 0.1); } } function AnimEnd() { local name NewAnim; if ( AnimSequence == 'Dead9' ) bJerking = true; if ( !bJerking ) Super.AnimEnd(); else if ( (Level.TimeSeconds - LastHit < 0.2) && (FRand() > 0.02) ) { NewAnim = Jerks[Rand(4)]; if ( NewAnim == AnimSequence ) { if ( NewAnim == Jerks[0] ) NewAnim = Jerks[1]; else NewAnim = Jerks[0]; } TweenAnim(NewAnim, 0.15); } else { bJerking = false; PlayAnim('Dead9B', 1.1, 0.1); } } function SpawnHead() { local carcass carc; carc = Spawn(class'UT_HeadMale'); if ( carc != None ) { carc.RemoteRole = ROLE_SimulatedProxy; carc.Initfor(self); } } Sh0 T` !n-  /a0  w  -r    ar  b 10a (]B!-'+-(DL>  ף<,)%)&)%)a&>-(a!?= p7,%v67,a7L$Aa7L$@A W//============================================================================= // LPTFemaleBody. //============================================================================= class LPTFemaleBody extends LPUTHumanCarcass; var float LastHit; var bool bJerking; var name Jerks[4]; replication { // Things the server should send to the client. unreliable if( Role==ROLE_Authority ) LastHit, bJerking; } function SpawnHead() { local carcass carc; carc = Spawn(class'UT_HeadFemale'); if ( carc != None ) { carc.RemoteRole = ROLE_SimulatedProxy; carc.Initfor(self); } } function TakeDamage( int Damage, Pawn InstigatedBy, Vector Hitlocation, Vector Momentum, name DamageType) { local bool bRiddled; if ( bJerking || (AnimSequence == 'Dead9') ) { bJerking = true; if ( Damage < 23 ) LastHit = Level.TimeSeconds; else bJerking = false; } Super.TakeDamage(Damage, InstigatedBy, HitLocation, Momentum, DamageType); if ( bJerking ) { CumulativeDamage = 50; Velocity.Z = FMax(Velocity.Z, 40); if ( InstigatedBy == None ) { bJerking = false; PlayAnim('Dead9B', 1.1, 0.1); } } if ( bJerking && (VSize(InstigatedBy.Location - Location) < 150) && (InstigatedBy.Acceleration != vect(0,0,0)) && ((Normal(InstigatedBy.Velocity) Dot Normal(Location - InstigatedBy.Location)) > 0.7) ) { bJerking = false; PlayAnim('Dead9B', 1.1, 0.1); } } function AnimEnd() { local name NewAnim; if ( AnimSequence == 'Dead9' ) bJerking = true; if ( !bJerking ) Super.AnimEnd(); else if ( (Level.TimeSeconds - LastHit < 0.2) && (FRand() > 0.02) ) { NewAnim = Jerks[Rand(4)]; if ( NewAnim == AnimSequence ) { if ( NewAnim == Jerks[0] ) NewAnim = Jerks[1]; else NewAnim = Jerks[0]; } TweenAnim(NewAnim, 0.15); } else { bJerking = false; PlayAnim('Dead9B', 1.0, 0.1); } } >@R HG7[M- !-'EG,HM-( GWVX-,266 Br*-(a!̌?=Y- ?, #1  333?-(a!̌?= ~['//============================================================================= // LPCarcass. //============================================================================= class LPCarcass extends Decoration; // Sprite. #exec Texture Import Package=Engine.Carcass File=Textures\Corpse.pcx Name=S_Corpse Mips=Off Flags=2 // Variables. var bool bPlayerCarcass; var() byte flies; var() byte rats; var() bool bReducedHeight; var bool bDecorative; var bool bSlidingCarcass; var int CumulativeDamage; var PlayerReplicationInfo PlayerOwner; var Pawn Bugs; function CreateReplacement() { if (Bugs != None) Bugs.Destroy(); } function Destroyed() { local Actor A; if (Bugs != None) Bugs.Destroy(); Super.Destroyed(); } function Initfor(actor Other) { //implemented in subclasses } function ChunkUp(int Damage) { destroy(); } static simulated function bool AllowChunk(int N, name A) { return true; } function TakeDamage( int Damage, Pawn instigatedBy, Vector hitlocation, Vector momentum, name damageType) { if ( !bDecorative ) { bBobbing = false; SetPhysics(PHYS_Falling); } if ( (Physics == PHYS_None) && (Momentum.Z < 0) ) Momentum.Z *= -1; Velocity += 3 * momentum/(Mass + 200); if ( DamageType == 'shot' ) Damage *= 0.4; CumulativeDamage += Damage; if ( (((Damage > 30) || !IsAnimating()) && (CumulativeDamage > 0.8 * Mass)) || (Damage > 0.4 * Mass) || ((Velocity.Z > 150) && !IsAnimating()) ) ChunkUp(Damage); if ( bDecorative ) Velocity = vect(0,0,0); } auto state Dying { ignores TakeDamage; Begin: Sleep(0.2); GotoState('Dead'); } state Dead { function Timer() { local bool bSeen; local Pawn aPawn; local float dist; if ( Region.Zone.NumCarcasses <= Region.Zone.MaxCarcasses ) { if ( !PlayerCanSeeMe() ) { // Destroy(); } else SetTimer(2.0, false); } else { Destroy(); } } function AddFliesAndRats() { } function CheckZoneCarcasses() { } function BeginState() { if ( bDecorative ) lifespan = 0.0; else SetTimer(18.0, false); } Begin: FinishAnim(); Sleep(5.0); CheckZoneCarcasses(); Sleep(7.0); if ( !bDecorative && !bHidden && !Region.Zone.bWaterZone && !Region.Zone.bPainZone ) AddFliesAndRats(); } _I? - Ea  "E-1EaP #?w*w*a**w*a X w# (i7%!-'+-(HL>  ף<,"%"&"%"a&>-(a!̌?= U//=========================================================== // Mod Menu Item for A Madman's Dream. //=========================================================== class AMadmansDreamModMenuItem expands UMenuModMenuItem; function Execute() { MenuItem.Owner.Root.CreateWindow(class'AMadmansDreamConfigWindow',10,10,150,100); } Jp#S <#a :w#*#$# qFE2sƳє;aGնmo h S]A Madman's DreamQ]Setup for A Madman's Dream;EA Madman's Dream Beta v 1.00 Setup e-( t)XCB?,?, E //=================================================== // AMadmansDreamConfigWindow: Actual Configuration Window. //=================================================== class AMadmansDreamConfigWindow expands UWindowFramedWindow; function BeginPlay() { Super.BeginPlay(); WindowTitle = "A Madman's Dream Beta v 1.00 Setup"; ClientClass = class'AMadmansDreamClientWindow'; bSizable = False; } function Created() { Super.Created(); SetSize(350, 100); WinLeft = (Root.WinWidth - WinWidth) / 2; WinTop = (Root.WinHeight - WinHeight) / 2; } z z+//============================================== // AMadmansDreamClientWindow. // This controls general features in the Mutator //============================================== class AMadmansDreamClientWindow expands UWindowDialogClientWindow; //Title + Author + Bar var UWindowLabelControl Header; var UWindowLabelControl Author; var UWindowLabelControl Bar; //Max Number of Carcasses Per Zone var UWindowEditControl MaxCarcassesPerZone; //Finished Button var UWindowSmallCloseButton CloseButton; function Created() { local int Centerpos, ControlOffSet, CenterWidth, ControlWidth, ControlLeft, ControlRight; local int WeaponOffset; CenterWidth = (WinWidth/4)*3; CenterPos = (WinWidth - CenterWidth)/2; ControlWidth = WinWidth/2.5; ControlLeft = (WinWidth/2 - ControlWidth)/2; ControlRight = WinWidth/2 + ControlLeft; //Auto Control WeaponOffSet=55; ControlOffset=55; //Title Header = UWindowLabelControl(CreateControl(class'UWindowLabelControl', 75, 5, 200,1)); Header.SetText("A Madman's Dream"); Header.SetFont(F_LargeBold); //Author Author = UWindowLabelControl(CreateControl(class'UWindowLabelControl', 130, 30, 150,1)); Author.SetText("by Patrick Lavender"); //Bar Author = UWindowLabelControl(CreateControl(class'UWindowLabelControl', 0, 35, 350,1)); Header.SetFont(F_LargeBold); Author.SetText("____________________________________________________________________________________________"); //Max Carcasses Per Zone Textbox MaxCarcassesPerZone = UWindowEditControl(CreateControl(class'UWindowEditControl', 10, WeaponOffset, 150, 1)); MaxCarcassesPerZone.SetText("Max Carcasses Per Zone:"); MaxCarcassesPerZone.SetNumericOnly(True); MaxCarcassesPerZone.EditBoxWidth = 30; MaxCarcassesPerZone.Align = TA_Left; MaxCarcassesPerZone.SetValue(String(class'AMadmansDream'.default.MaxCarcassesPerZone)); MaxCarcassesPerZone.SetMaxLength(3); // Finished button CloseButton = UWindowSmallCloseButton(CreateWindow(class'UWindowSmallCloseButton', 280, WeaponOffset, 60, 16)); CloseButton.SetText( "Finished" ); } function Notify(UWindowDialogControl C, byte E) { switch(E) { case DE_Change: // the message sent by sliders and checkboxes switch(C) { case MaxCarcassesPerZone: class'AMadmansDream'.default.MaxCarcassesPerZone=int(MaxCarcassesPerZone.getValue()); class'AMadmansDream'.static.StaticSaveConfig(); break; } case DE_Click: // the message sent by buttons switch(C){ case CloseButton: class'AMadmansDream.AMadmansDream'.static.StaticSaveConfig(); SaveConfig(); break; } break; } } |,^)FD?,,^D?F,BD @AD?,?B,RD?,?A5,7],7,. B@HC?, A Madman's Dream,0,+. CAC?+ by Patrick Lavender+.  BC?,0,+d ____________________________________________________________________________________________ .  A?5C?  Max Carcasses Per Zone: Z' A $ CS  [,8. C?5pBA8 Finished }JD=a" (?%=&o$@@ @>L!Tw.*, Lw.* ?% Aa@@' "o/// ============================================================ // A Madman's Dream. // // The mutator class. // ============================================================ class AMadmansDream expands Mutator; //Mandatory boolean variable to handle multiple calls to BeginPlay functions var bool Initialized; var() config int MaxCarcassesPerZone; function PostBeginPlay() { local zoneinfo ActiveZone; if (Initialized) return; Initialized = True; Broadcastmessage("PEU " $ MaxCarcassesPerZone); //Replace Upper bound for Max Carcasses for each zone of the map foreach AllActors(class'ZoneInfo', ActiveZone) { ActiveZone.MaxCarcasses = MaxCarcassesPerZone; ActiveZone.bDestructive = false; } setTimer(0.1, True); Level.Game.RegisterDamageMutator( Self ); } function bool PreventDeath(Pawn Killed, Pawn Killer, name damageType, vector HitLocation) { local LPcarcass carc; if ( !(Killed.bHidden) ) { //BroadCastMessage("Damage type is : " $ damagetype); if ( (damagetype=='gibbed') || (Killed.gibbed(damagetype)) || (damagetype=='icestatued') || (damagetype=='Disrupted') || (damagetype=='stoned') || (damagetype=='Burned') || (damagetype=='Napalmed')) { // Simply return control in the above cases of 'special death'. if ( NextMutator != None ) return NextMutator.PreventDeath(Killed,Killer, damageType,HitLocation); return false; } //Otherwise, it should be a standard death from here on out. //Hide player, play appropriate death animation, and spawn the carcass (corresponding to gender). if ( (Killed.isA('FemaleBotPlus')) || (Killed.isA('JBFemaleBotPlus')) || (Killed.isA('FemaleBot')) || (Killed.isA('TournamentFemale')) ){ Killed.bHidden = true; Killed.PlayDying(damageType,HitLocation); carc=Spawn( class'LPTFemaleBody', Killed,,Killed.location,Killed.rotation); } else if ( (Killed.isA('MaleBotPlus')) || (Killed.isA('JBMaleBotPlus')) || (Killed.isA('MaleBot')) || (Killed.isA('TournamentMale')) ) { Killed.bHidden = true; Killed.PlayDying(damageType,HitLocation); carc=Spawn( class'LPTMaleBody', Killed,,Killed.location,Killed.rotation); } //The type of bot/player isn't supported by my mod yet. Simply pass on control to next mutator. else { if ( NextMutator != None ) return NextMutator.PreventDeath(Killed,Killer, damageType,HitLocation); return false; } //Initialize the carcass for the killed player. if ( carc != None ) carc.Initfor(Killed); if ( Killed.bIsPlayer ) Killed.HidePlayer(); else Killed.Destroy(); } //Then, pass on control to the next mutator. if ( NextMutator != None ) return NextMutator.PreventDeath(Killed,Killer, damageType,HitLocation); return false; } {KPDd O$K L  J ] O ~$K x8 b{   QA>"Z--&4::$a/!fw.*@Aa@@'a@A( |n1#0a>,-aa R< c A ACB X XWUX WZWSW[W@`@WHXDWecBWcWBI^WacrW]Hl`vcEWDWFIWWWJW{WFWIFI&HnWYWOaVc`ILWWsW\WJ`_I%HmcxewgXISc|W~XhW}[I.WugAIog|XxIgXaHP[6IvamWgcCIjHgIRW~aIgVHNW@e\a`erIsH<[qHIaMeGI7aNWWHdH}IbcaHDEKgU[>WUWTIL[$aVHeWAaXaYa[[;WA[FIKW|[)[?["aWIMWCaII[#Hd[E[)HP[PekIJgHaz[[ bG xb\hZay hay tah@b$c NbT Zb { fbTsb$Z Acz Ncr [czhc>{ vcnv CdO Od i \d$a hdT tdjtAeT Oeg \eT heYue yNio \iYhiEvif {jj} GkefTkeP bkb oki |k_ HlO Ulh alu mlQ yl>yFm] Tmw `mu mmeT ymj Fnp Snn _n$$3knO"Q^o$mop B \t f ht@ ut Bu{ OufZ[u_ iuS vu{ CvgZOv _ ]vjvcFwUw}cwlqw$ H@x+HzO7VzA M{OY{O!t{$DP|yT}zb}f p}>f }}yI~zW~f e~Q r~R ~$-L$y$f U z bFmoh \GXiDXA^LY$ eG E?aQo{ rh{ ~$m J3jjhxT6NL`H Zju g hsUqA tru{ Nuh[Yi<_ Buf Otd[O ,s k>hx#BF{ H>z U`Abmt c=l omx {m_ Hi Uuzb<$Bpf rE~ C{ _hlzzyHf VpbuyR$d`xnt f rzR |` 6v\JfCRg4]U fNry@gg4_NS|mT|!uI$b ~\ J(fmV,CCf Ffg4bR>Ut gNP={ ^$g4f'k_EQhV d\ @(gmLg4`yJgCYEo\c;UKc)]`cg4P }{ Me` Zeg4E,ghle)B zz|yJ=~X$^ f=|"9s|>[l g4z/GePAQ|L@1OLRM[