[Setup] Product=GibFight Version=101 Archive=GibFight.umod SrcPath=. MasterPath=.. Requires=UnrealTournamentRequirement Group=SetupGroup Group=umodINIGroup Group=GibFightGroup Group=umodIncludeFilesGroup [UnrealTournamentRequirement] Product=UnrealTournament Version= [SetupGroup] Copy=(Src=System\Manifest.ini,Master=System\Manifest.ini,Size=615,Flags=3) Copy=(Src=System\Manifest.int,Master=System\Manifest.int,Size=505,Flags=3) [umodINIGroup] AddIni=UnrealTournament.ini,Engine.GameEngine.ServerPackages=GibFight [GibFightGroup] File=(Src=System\GibFight.int,Size=191) File=(Src=System\GibFight.u,Size=135759) File=(Src=System\GibFight.txt,Size=2134) [umodIncludeFilesGroup] File=(Src=GibFight\Classes\GLogo2.bmp,Size=9782) [Setup] LocalProduct=GibFight ReadMe=System\GibFight.txt SetupWindowTitle=GibFight AutoplayWindowTitle=GibFight Options ProductURL=www.planetunreal.com/hob VersionURL=www.planetunreal.com/hob Developer=HOB DeveloperURL=www.planetunreal.com/hob Logo=GibFight\Classes\GLogo2.bmp [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=GibFight.GibFight,Class=Class,MetaClass=Engine.Mutator,Description="GibFight") Object=(Name=GibFight.GibFightModMenuItem,Class=Class, MetaClass=UMenu.UMenuModMenuItem)*E@l+^xP8None GibFightCoreSystemStillEngineAltFireMeshBotpackCollisionRadius ExplosionProjectileFireCreateControlFireAnimEndSetFontTimer TakeDamageCollisionHeight ForceFireBeginForceAltFireFinish AltFiringSelectPhysicsHitWallspeedDamageSetTextTickRotatorPostBeginPlaySetTextColorBlowUpDesiredRotationbFixedRotationDir DrawScaleAnimSequence AmbientGlow ItemName PlayRecoil NormalFireUseAmmoPickupMessage GiveAmmoThirdPersonMesh ZoneChangebBounce MaxSpeedPickupViewMesh SetHelpTextMomentumTransfer SpawnChunksVector RemoteRoleProjectileClassPlayerViewScale RateSelfSuggestAttackStyleBurningFlame AdjustAim SpectatorSuggestDefenseStyle RespawnTimePlayerViewOffsetClientAltFirePlayAltFiringPlayIdleAnim PlaySelectExplosionDecalAltProjectileClassMaxAmmo AmmoAmountbAmbientGlow PlayFiringPickupAmmoCount TweenDownPlayerViewMesh AmmoName FiringSpeedProcessTouchAltFireSound SelectSound ImpactSoundColorInventoryGroupMyDamageTypeIn FireSound ExplodingOut LifeSpanbRotatingPickupDeathMessageLandedSetWeaponStayLightSaturation LightType LightEffect LightRadius BeginState GibbedHead GibbedLeg GibChunk GibbedArm SpikeBallAltRefireRateGibFightClientWindow StatusIconUWindowMassWingInBurnedbNetTemporaryLightBrightness AIRatingPawnbBlockPlayersbBlockActors BeginPlayInternalTimeCrushed SetValueWarExplosionbUnlit SmallGibSetWall RefireRate LightHue GibLegAmmoZombieMasterZombieSpawnStoneBall GibArmAmmoMutatorTakeDamageBump MediumGibGibAmmo GetValue OnSurfaceSkinCreatedCheckSurfaceTexture ClientFirebStatic SoundVolumePalettebCollideWorldStyle SoundRadiusUSizeRotationRateAmmoVSize BuoyancybMasked PlayerPawn NetPriority BombGrenadeCreatureCarcass ScaleGlow hotspots gibfestamtAmbientSoundMaxStoneBallAmountGibBallDeath CorrodedGibFightModMenuItem TorchAmmoMaxNumOtherFlamesStoneBallDeath FlyingArmGhoulThirdPersonScalePickupViewScaleDripSlide ThrownFlareGibFightConfigWindowFlying FlyingGib Cooked_Gib GibHeadAmmomoveburntime ReplaceWith FlyingHeadut_bossthigh ut_bosshead DestroyedSuperShockExploUT_SpriteBallExplosionUTHeadsUTPlayerChunksUT_FemaleArmUT_FlameExplosionUT_FemaleFootUT_FemaleTorsoUT_HeadFemale UT_MaleFoot UT_HeadMaleUT_SpriteBallChild UT_ThighUT_MaleTorso ut_bossarmGrenadeDeathbombrun MenuCaption MenuHelpExecuteChairTable GreenColor MaxBurnTime RedColor DecorationThighSpriteBallExplosionVaseParticleBurst MaleHeadLiverLeg1FlameExplosion FemaleHeadBallExplosionArm1PlayerChunksBarrel WoodenBoxHealingAmountSpriteExplosionNotify PickupSoundBot GrenadeBombPaintGibBall FlyingLeg PathNode UT_MaleArmMipZeroUMenu MaxColorUBits DExplosionCarcassWarExplosion2UTHumanCarcassUTLiverUsedInWeaponSlotVClampTorchUClampVBitsChest ProjClassWallB ScriptTextLbWarn AdjustedAim bWaterZoneXViewRotationC bWeaponStay FireOffsetStruct SpawnSoundYbAltWarnTarget ReturnValue MiscSoundiNLevelStructProperty ClientClass bSizableClassPropertyUWindowEditBoxUWindowPulldownMenuItemUWindowDialogClientWindowUWindowFramedWindowUWindowRootWindowUWindowCheckboxUWindowDialogControlUWindowWindowUWindowPulldownMenuZoneObjectMutator Instigator WindowTitleAlignCanvasbDamageTriggered Velocity bPointing HitNormal projSpeed AmmoType bForceFireZLightLodMeshObjectProperty bUseAltMode bChecked FunctionExtentGRBaseState UnrealShareInv LevelInfoFinstigatedBy Rotation Eightball InventoryVictimNextDamageMutatorU Palette1ValueNavigationPoint HitActorNetMode bWarnTargetStart bDropDetail WaterRingOwnerUnrealI StrPropertySetSize BurnTimeGib1Gib4Gib2Gib3Jmta1gibP6Arm1Mleg1MNDamage JBoulder1Gibs NumChunksSkinsFlareMRandRotSurfaceNormal bOnGroundbCheckedSurface wallTime BaseOffset TraceNorm TraceLoc DotProduct GrenadeMGrenadeFloorbCanHitOwner bHitWater SmokeRateNumExtraGrenadesBoolPropertyUWindowLabelControlRegionBigRock Boulder1Proj TempRockMoon1Enemy HeadRegionDrawStretchedTextureSegment bCanEditUMenuModMenuItem Initialized MenuItem IntPropertyTournamentWeaponTournamentHealth MaxLengthBioFearTournamentAmmoWinLeftbCarriedItem Razor2AltRazor2 BlastMarkNewZoneClass Momentum TextBuffer HitLocation WinHeightactualDamage UT_GrenadePNumWinTop WinWidthOtherUT_BlackSmokeUT_BloodBurstUT_BigBloodHit DeltaTimebForceAltFire RandSpinbNumericOnlyCalcDrawOffsetut_Decoration BloodSplatIconsRootWeapon FireAdjust headmalem malearmm maletorsom ThighUTMbCanClientFire UseHammerMyFearBytePropertybHighDetailMode Projectile ZoneInfoRole DrawColor DamageTypeEffectsSoundActor FireTextureCountScaleAltProjectileSpeedProjectileSpeedStaticSaveConfigPackageRoll aimerrorSWEDSoundDampeningHealth AnimFrame PointRegion LocationPlayOwnedSoundMover HurtRadiusFloatPropertyCreateWindowNamePropertyinfernoflares BurnSoundGLogo GreatFire ancsconcNumOtherFlames AmbAncientLoopingafire5OneShot sblockD1 GibFightMutSpawnedStoneBallCurrentStoneBallAmountStoneBallEditStoneBallEdit2StoneBallLabelGibAmountLabelGibAmountEditGibAmountEdit2GibPercentLabel MyFlyHead CreatedByHOBSpawnedGibBallbSecretuLua}=$:ettttt=$:effffffff١ГГГГ%8x._%8x.__tttttttttttttttttttttttttttGɰGɰGɰGɰGɰGɰGɰGɰGɰGɰGɰGɰGɰGɇt%8x.t%8x.ttGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGw4w4K((w4P>[cd"XOf"kZ<BMf2g1ʺ!ԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝX&BNԝX&BNԝX&BNԝXʺ!ԝXԝXԝXԝXttGGGGGGGGГГГГГГГГ__ԝXԝXtfffلԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXʺ!ԝXԝXԝXԝXԝXԝXʺ!V"y"k"RSeVP%$L>}W"S $@$ AbcsdA a#d_$?7@-!z nQv# _ԝXԝX11!t"ږyrүԝXK$ D1$HD$ A4" NWhTFrS7\$@A&%$L? $@$@0H{# p$/D$HBm]h2 x&̻ԝXtѸBtѸBtttԝXtԝXttttԝXԝXttԝXtOEL"P$@8Gt$G!?k$333?YRS^]%o was smacked with %k's %w.VJS]S,]You got a gib(]Gib@$A:6@N9$L>2p$L?.o$L?'< $A$@`lR,<PQ3@%*Bw2&BNg"JS,]You ate a Cooked Gib +(= Cooked Gib@$2.j\$ Bb$ #=' $A$@U0$So$A\$AY:#:A@dv<WkL#H@4@B5@Wx)l&XFqC<9 <q|bNfo#IJa|$D$ B $@A$#:` nBYnWK((_Oj^PtoԝXH9H9H9H91!t"ڜ!t"ڇttt1Oj ԴPtoԝXH9H9H9H91!t"ڜ!t"ڇttt1OjBPtoԝXH9H9H9H91!t"ڜ!t"ڇttt1OjR)5PtoԝXH9H9H9H91!t"ڜ!t"ڇttt1Oja}PtoԝXH9H9H9H91!t"ڜ!t"ڇttt1$D1$HD$A4"8WgTFrS7\$&M%$> $A$Awvbc sAad 0$o$C#:. iimgFjBP>[_Oj PtoԝX}1!t"ڜ!t"ڇttt1OjZM޴PtoԝX}1!t"ڜ!t"ڇttt1Ojp!ⲴPtoԝX}1!t"ڜ!t"ڇttt1Oj^PtoԝX}1!t"ڜ!t"ڇttt1Oj ԴPtoԝX}1!t"ڜ!t"ڇttt1OjBPtoԝX}1!t"ڜ!t"ڇttt1OjR)5PtoԝX}1!t"ڜ!t"ڇttt1Oja}PtoԝX}1!t"ڜ!t"ڇttt1$D1$HD$A4"8WlTFrS7\$&M%$> $A$Awv0$o$C#:. chIDCNPgm#]'$D$ B%$? $@A$#:` hws;^V_ԝXԝXԝXԝXOjʺ!tOj1!t"ڜ!t"ڭʺ!ttt1$C1$HD$pA4"F7&[bcs}a#d0$#:. ~aC2rO`8bPv"ApB~~ZQ@|mRRWC2a ;?,a @@w.*.-*D?zC?,#?a eJP(KUlfD@sRl; SQڔ_Oj1!t"ڜ!t"ږ$A1$HB$pA4"WNTF7&p%$L?'@}$#:." ji2Tf &̻ԝXtѸBtѸBtttԝXtԝXttttԝXԝXttԝXtO^L"P$ff?8]G]t$q= ?@$?k$?YRS^]%o was spanked by %k's %w.VJS]S,]You got a Gibbed Arm(= Gibbed Arm@$A:6@@̿N9$L>2.m'< $A$@E_f2Us&̻ԝXtѸBt pѸBt pѸBtttԝXtԝXttttԝXԝXttԝXtOOL"P$ff?8GYRS^]%o got a bite out of %k's %w.VJS]S,]You got a Gibbed Head(] Gibbed Head@$A:6@@̿N9$L>2.m'< $A$@ipg2V̽č&̻ԝXtѸBtѸBtttԝXtԝXttttԝXԝXttԝXtOrL"P$ff?8IGIt$q= ?@$?k$?YRS^]%o got a kick out of %k's %w.VJS]S,]You got a Gibbed Leg(= Gibbed Leg@$A:6@@N9$L>2.m'< $A$@Qql~WP2~KTc|.XډKTcU K/KTcKTcU K/KTcKTcKTc|.XډKTcKTc|.XډKTcKTc|.XډKTcxxx|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.XډKTc|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.XډKTc|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.XډKTc|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.XډKTcU K/U K/U K/U K/U K/U K/KTcU K/U K/U K/U K/U K/U K/KTc+Q|.Xډ+QU K/+Q+QU K/+Q+Q+Q|.Xډ+Q+Q|.Xډ+Q+Q|.Xډ+Qxxx|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډ+Q|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډ+Q|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډ+Q|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډ+QU K/U K/U K/U K/U K/U K/+QU K/U K/U K/U K/U K/U K/+Q |.Xډ U K/  U K/   |.Xډ  |.Xډ  |.Xډ xxx|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډ |.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډ |.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډ |.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډ U K/U K/U K/U K/U K/U K/ U K/U K/U K/U K/U K/U K/ ZMޅ|.XډZMތU K/ZMމZMތU K/ZMމZMމZMޅ|.XډZMމZMޅ|.XډZMމZMޅ|.XډZMޝxxx|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.XډZMޅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.XډZMޅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.XډZMޅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.XډZMވU K/U K/U K/U K/U K/U K/ZMވU K/U K/U K/U K/U K/U K/ZMވp!ⲅ|.Xډp!ⲌU K/p!ⲉp!ⲌU K/p!ⲉp!ⲉp!ⲅ|.Xډp!ⲉp!ⲅ|.Xډp!ⲉp!ⲅ|.Xډp!ⲝxxx|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډp!ⲅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډp!ⲅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډp!ⲅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډp!ⲈU K/U K/U K/U K/U K/U K/p!ⲈU K/U K/U K/U K/U K/U K/p!Ⲉ^|.Xډ^U K/^^U K/^^^|.Xډ^^|.Xډ^^|.Xډ^xxx|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډ^|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډ^|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډ^|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډ^U K/U K/U K/U K/U K/U K/^U K/U K/U K/U K/U K/U K/^ ԅ|.Xډ ԌU K/ ԉ ԌU K/ ԉ ԉ ԅ|.Xډ ԉ ԅ|.Xډ ԉ ԅ|.Xډ ԝxxx|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډ ԅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډ ԅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډ ԅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډ ԈU K/U K/U K/U K/U K/U K/ ԈU K/U K/U K/U K/U K/U K/ ԈB|.XډBU K/BBU K/BBB|.XډBB|.XډBB|.XډBxxx|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.XډB|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.XډB|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.XډB|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.XډBU K/U K/U K/U K/U K/U K/BU K/U K/U K/U K/U K/U K/BR)5|.XډR)5U K/R)5R)5U K/R)5R)5R)5|.XډR)5R)5|.XډR)5R)5|.XډR)5xxx|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.XډR)5|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.XډR)5|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.XډR)5|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.XډR)5U K/U K/U K/U K/U K/U K/R)5U K/U K/U K/U K/U K/U K/R)5a}|.Xډa}U K/a}a}U K/a}a}a}|.Xډa}a}|.Xډa}a}|.Xډa}xxx|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډa}|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډa}|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډa}|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xڅ|.Xډa}U K/U K/U K/U K/U K/U K/a}U K/U K/U K/U K/U K/U K/a}nW*UU*UU_[cF2^ TL#!I"H"2wDZKFpt2f܂Mo o nfLhUgH?|bB2riL#!I"H"T yS_iaj2~|L#!I"H"FGAg9 q!Z "aA`J2E\h,L#!I"H"2{}p@MRJViGx2O靂KL#!I"H"]@GsI^jgNldlhVF>o$b>-)'aVsa!q!L to/'!o--| -|'?a "@?L>?$? `L/(!L--Z -Z'Va "@VL>V$L? iCQ<'%wC-{ a K_"T*HC?_b? ]Q@j'%w.]-)8 y[_7[* PN_U< N* n{5rc d_&{b@A??_Ga bwG*G5& aGQe Gp cIay -+I,( #??, "}YP%&-6-v! BYB99?x<::$ja j$B ut/(!t--8 -8'Ta "@TL>T$L? d Wb.. cCRQ 6c6C6R. =ZQD'-gad Q xFis} $F L -"-  zK Jz  QK (JQ   -7-  F -5-    -4 -    IM b.. nbaJ 6n6b6a. =iJD'-haM J j:E5/a0 :(:a/!p  ף=-RJa K : JG0 Ha P : H`0 10 VNr*-.+&q!-'-'. )B0. -0 k@ ::$ @q|@ @>9?,d6?,zDPCG-k(6 --8'v!? ol5&-8-v! WlWhh?,<::$ga g$W ^. |K \.a/!u.a/!y.a/!aa . . ::$a  "@Ia WI$a t/mj/kU/??CBCB r6/$6/$6/$ Un b.. NfOH 6N6f6O. =HHD'-@an H Hz9r*-.+&q!-'-'. )Bz - M[:#b'w*%.r*76 6 ?,< ?[&[%Ow* 6 6 ?,[&>OO6 6 ?,)\=L= vy_Ey* EOCz/a6 OBNMO% O#??,10ma m$a 6= %::$a![a @?(::$ =X^= =>9?,<6?,HDPCG6 --6'v!? ]vQ6-+v,( #??, "KX:b'w*%.r*76 6 ?,< ?X&X%Ow* 6 6 ?,X&>OO6 6 ?,)\=L= Eo,cv;o7::$a  P;EPo6Ea+Etw.P*a*P qB}2B%5o&̻ԝXtn;ѸBtѸBtttԝXtԝXttttԝX7ԝXttԝXtO~L"8^G^,]You got a Flare(]FlareA:6 @N9$L>2.&X $A$@r` b.. Fer> 6F6e6r. =w>D'-Sa` > pS:!b'w*%.r*76 6 ?,< ?S&S%Ow* 6 6 ?,S&>OO6 6 ?,)\=L= e\/2!\--6 -6'Na "@NL>N$?ia i$a ku ~v u"u`::$a  "@pa up$`a KL*,Yr*a/!>1a/!u.a/a6 Bw* wr''aa10a  ի#??ի#?a+ 6 ?,6 ?,6 ?,'D6 6 6 ?C?&'oףp?1a 1$CL> ף=oL>L>a/!DL?=a/!C?=>L=*'A1a 1$a kM:!b'w*%.r*76 6 ?,< ?M&M%Ow* 6 6 ?,M&>OO6 6 ?,)\=L= Jm9r*-.+&q!-'-'. )Bm - HF:!b'w*%$.r$*76$ 6 ?,< ?F&F%Ow$* 6 6$ ?,F&>OO6$ 6 ?,)\=L= fxB-{'@?xxPGt::$a$?6?6??6?,-(o$ NuG a/!k a/!^a    ի #??ի #?w*$Gu Q][_ hd`;Mۄd726$pA1$A$pA4"%$L?0Ss VM -5/a0  w * A, C,( A C,P -, 33?  L?10/a0 ed-7da/!Za/!Ja/!Fa/!B p}?zgibfight.torch10-"/a0 ,/a0 :,,a/!j& , ?, L?a , , 1010/a0 ha/!>,-a   Ea/!>,%,a   a  \& L?a   ի#??ի#?E,  #?a   ի#??ի#?ER,  >a   ի#??ի#?E, u>a   ի#??ի#?EE,X  #?a   ի#??ի#?-4 R?a S  ի#??ի#?/a0 CBa/!>&  ?,sBa/!@a/!Ja/!a/!Da/!`a/!ha/!\a/!va/!ba/!|a/!xa/!Za/!|a   10-"/a0 :,a/!>&  ?, L?a   1010/a0 5 a/!qa/!Ca/!Ma/!c%a T  ի#??ի#?a  Pa4  a/!Ha/!Ea/!_% a V  ի#??ի#?a  5 a4  a/!La/!Fa/!za/!Ka/!|a/!^a/!Y% a   ի#??ի#?a  r a4 4 a/!}a/!Ga/!Ia/!]a/!aa/!A%( a U  ի#??ի#?a   a10K (E }K b.. qvBD 6q6v6B. =JDD'-RaK D eI5?3?:L>a  ի#??ի#?a $*>a ] ի#??ի#?a $?a I ի#??ի#?a $L?a  ի#??ի#?a $ K_Lgw \e"w`::$a  "@~a w~$a XLO WL;#9L333?a!q=UULa!rL> cT/ToT- S-)a "@=-)'= BrusM {b;(r* w*-.+&q!*-'-'. )Qb0. -0 GhO a/!Da/!Ca/!n u>0,,. !q ף=a/!u (\?/,&. !qda/!Ba/!da/!ha/!ga/!ia/!fa/!Ia/!~ q= ?9?,d6?,zDPCG-y(6 --Z'v!? nY_`Y* Sc5dD&cP@A??D\a bw\*\5& jXHZ 5X*D?!z mj" *C?jb? ; a@@( QiEs 7v -s -s'%%&--------------------|=====GibFight=====|--------------------photspots=T-"pflares=T-7pinferno=T-5pbombrun=T-4pgibfestamount=Spstoneballamount=S(5-" ,Xsecret 88 enabled-R'&Ssecret 88 disabled-R(--------------------a?' OK-a!333??L= |m* a?  u  ro;i L lq a?  P  {Ma* VBa!a%!a&>Ta!?L= qDQ#!wa!>> e~* a?  xva  K{ -' wy<  {  x}?nH L S  tD a?  J  @VA  sA* aA  E -' C  F;i L >xM\- VBa!a%!a&>Ta!X?L= QULZ} Se{ a=L>( zNA  Mc -' O -' FE]//============================================================================= // GibFightClientWindow. //============================================================================= class GibFightClientWindow expands UWindowDialogClientWindow; #exec TEXTURE IMPORT NAME=GLogo FILE=C:\UnrealTournament\GibFight\Classes\GLOGO.PCX FLAGS=2 MIPS=OFF var UWindowCheckBox HotSpots, Flares, Inferno, BombRun; var UWindowLabelControl GibAmountLabel,GibPercentLabel,StoneBallLabel,CreatedBy,HOB; var UWindowEditBox GibAmountEdit,StoneBallEdit; var string GibAmountEdit2,StoneBallEdit2; var() color RedColor,GreenColor; function Created() { Super.Created(); hotspots = UWindowCheckBox(CreateControl(class'UWindowCheckBox', 10, 68, 100, 1)); hotspots.SetText("HotSpots"); hotspots.SetHelpText("If you stand in a bright spot too long you will spontaneously combust"); hotspots.SetTextColor(RedColor); hotspots.SetFont(F_Normal); hotspots.Align = TA_Left; hotspots.bChecked = class'GibFight.GibFight'.default.hotspots; //---------------------------------------- flares = UWindowCheckBox(CreateControl(class'UWindowCheckBox', 10, 84, 100, 1)); flares.SetText("Flares"); flares.SetHelpText("Replaces HealthVials with Flares"); flares.SetTextColor(RedColor); flares.SetFont(F_Normal); flares.Align = TA_Left; flares.bChecked = class'GibFight.GibFight'.default.flares; //---------------------------------------- inferno = UWindowCheckBox(CreateControl(class'UWindowCheckBox', 10, 100, 100, 1)); inferno.SetText("Inferno"); inferno.SetHelpText("Its an inferno of flames"); inferno.SetTextColor(RedColor); inferno.SetFont(F_Normal); inferno.Align = TA_Left; inferno.bChecked = class'GibFight.GibFight'.default.inferno; //---------------------------------------- bombrun = UWindowCheckBox(CreateControl(class'UWindowCheckBox', 10, 116, 100, 1)); bombrun.SetText("BombRun"); bombrun.SetHelpText("Bombs drop from players"); bombrun.SetTextColor(RedColor); bombrun.SetFont(F_Normal); bombrun.Align = TA_Left; bombrun.bChecked = class'GibFight.GibFight'.default.bombrun; //----------------------------------------- GibAmountLabel = UWindowLabelControl( CreateControl(class'UWindowLabelControl', 10, 132, 100, 10)); GibAmountLabel.SetText("Gib Amount: "); GibAmountLabel.SetHelpText("The amount of gibs"); GibAmountLabel.SetTextColor(RedColor); GibAmountLabel.Align = TA_Left; GibAmountLabel.SetFont(F_Normal); //---------------------------------------- GibAmountEdit = UWindowEditBox( CreateControl(class'UWindowEditBox', 96, 133, 100, 10)); GibAmountEdit.bNumericOnly = True; GibAmountEdit.SetFont(F_Normal); GibAmountEdit.Align = TA_Right; GibAmountEdit.bCanEdit = True; GibAmountEdit.MaxLength = 2; GibAmountEdit.SetValue(string(class'GibFight.GibFight'.default.gibfestamt)); //----------------------------------------- GibPercentLabel = UWindowLabelControl( CreateControl(class'UWindowLabelControl', 107, 132, 100, 10)); GibPercentLabel.SetText("%"); GibPercentLabel.Align = TA_Left; GibPercentLabel.SetFont(F_Normal); //---------------------------------------- StoneBallLabel = UWindowLabelControl( CreateControl(class'UWindowLabelControl', 10, 148, 100, 10)); StoneBallLabel.SetText("StoneBall Amount: "); StoneBallLabel.SetHelpText("Spawns giant StoneBalls around the level"); StoneBallLabel.SetTextColor(RedColor); StoneBallLabel.Align = TA_Left; StoneBallLabel.SetFont(F_Normal); //---------------------------------------- StoneBallEdit = UWindowEditBox( CreateControl(class'UWindowEditBox', 96, 149, 100, 10)); StoneBallEdit.bNumericOnly = True; StoneBallEdit.SetFont(F_Normal); StoneBallEdit.Align = TA_Right; StoneBallEdit.bCanEdit = True; StoneBallEdit.MaxLength = 2; StoneBallEdit.SetValue(string(class'GibFight.GibFight'.default.maxstoneballamount)); //---------------------------------------- CreatedBy = UWindowLabelControl( CreateControl(class'UWindowLabelControl', 40, 165, 100, 10)); CreatedBy.SetText("Created By: "); CreatedBy.SetTextColor(RedColor); CreatedBy.Align = TA_Left; CreatedBy.SetFont(F_Normal); //---------------------------------------- HOB = UWindowLabelControl( CreateControl(class'UWindowLabelControl', 96, 165, 100, 10)); HOB.SetText("HOB"); HOB.SetTextColor(GreenColor); HOB.Align = TA_Left; HOB.SetFont(F_Normal); } function Paint(Canvas C, float X, float Y) { Super.Paint(C, X, Y); DrawStretchedTextureSegment(C, 1, 1, 128, 64, 0 ,0, 128, 64, Texture'GLogo'); C.DrawColor.r = 0; C.DrawColor.g = 0; C.DrawColor.b = 0; } function Notify(UWindowDialogControl C, byte E) { switch(E) { case DE_Change: switch(C) { case hotspots: class'gibfight.gibfight'.default.hotspots = hotspots.bChecked; class'gibfight.gibfight'.static.StaticSaveConfig(); break; case GibAmountEdit: gibamountedit2 = GibAmountEdit.GetValue(); class'gibfight.gibfight'.default.gibfestamt = int(GibAmountEdit2); class'gibfight.gibfight'.static.StaticSaveConfig(); break; case StoneBallEdit: stoneballedit2 = StoneBallEdit.GetValue(); class'gibfight.gibfight'.default.maxstoneballamount = int(StoneBallEdit2); class'gibfight.gibfight'.static.StaticSaveConfig(); break; case flares: class'gibfight.gibfight'.default.flares = flares.bChecked; class'gibfight.gibfight'.static.StaticSaveConfig(); break; case inferno: class'gibfight.gibfight'.default.inferno = inferno.bChecked; class'gibfight.gibfight'.static.StaticSaveConfig(); break; case bombrun: class'gibfight.gibfight'.default.bombrun = bombrun.bChecked; class'gibfight.gibfight'.static.StaticSaveConfig(); break; } break; } } ETa q!Z Bzw  UVWYQ# q!Z Z\zi2[є;aGնmo snPMGibFight SetupQ]"!Allows you to configure GibFightb//============================================================================= // GibFightModMenuItem. //============================================================================= class GibFightModMenuItem expands UMenuModMenuItem; function Execute() { MenuItem.Owner.Root.CreateWindow(class'GibFightConfigWindow', 10, 10, 150, 100); } ESE kcw.*2L>42>8`` L?,8i8 ]eF]2?Ua Rw.*L aL>'[a2( ^D,"-d?O-d' Y//============================================================================= // GibAmmo. //============================================================================= class GibAmmo expands TournamentAmmo; ]//============================================================================= // TorchAmmo. //============================================================================= class TorchAmmo expands TournamentAmmo; _//============================================================================= // GibLegAmmo. //============================================================================= class GibLegAmmo expands TournamentAmmo; _//============================================================================= // GibArmAmmo. //============================================================================= class GibArmAmmo expands TournamentAmmo; ~x'C6--9<A9> X//============================================================================= // FlyingLeg. //============================================================================= class FlyingLeg expands FlyingGib; X//============================================================================= // FlyingArm. //============================================================================= class FlyingArm expands FlyingGib; o2//============================================================================= // ThrownFlare. //============================================================================= class ThrownFlare expands Projectile; var bool bHitWater; var float Count, SmokeRate; var int NumExtraGrenades; simulated function PostBeginPlay() { local vector X,Y,Z; local rotator RandRot; Super.PostBeginPlay(); if ( Level.NetMode != NM_DedicatedServer ) PlayAnim('Out'); SetTimer(2.5+FRand()*0.5,false); //Grenade begins unarmed if ( Role == ROLE_Authority ) { GetAxes(Instigator.ViewRotation,X,Y,Z); Velocity = X * (Instigator.Velocity Dot X)*0.4 + Vector(Rotation) * (Speed + FRand() * 60); Velocity.z += 210; MaxSpeed = 800; RandSpin(50000); if (Instigator.HeadRegion.Zone.bWaterZone) { bHitWater = True; Disable('Tick'); Velocity=0.6*Velocity; } } } simulated function BeginPlay() { if ( Level.bHighDetailMode && !Level.bDropDetail ) SmokeRate = 0.03; else SmokeRate = 0.15; } simulated function ZoneChange( Zoneinfo NewZone ) { local waterring w; local UT_BlackSmoke b; if (!NewZone.bWaterZone || bHitWater) Return; bHitWater = True; w = Spawn(class'WaterRing',,,,rot(16384,0,0)); w.DrawScale = 0.2; w.RemoteRole = ROLE_None; Velocity=0.6*Velocity; b = Spawn(class'UT_BlackSmoke'); b.RemoteRole = ROLE_None; Destroy(); } simulated function Timer() { local Pawn P; local UT_SpriteBallExplosion s; ForEach RadiusActors(class 'Pawn', P, 80){ if (P.Health > 0) Explosion(P, Location+Vect(0,0,1)*16); } s = spawn(class'UT_SpriteBallExplosion',,,Location); s.RemoteRole = ROLE_None; Destroy(); } simulated function Tick(float DeltaTime) { local UT_BlackSmoke b; if ( bHitWater || Level.bDropDetail ) { Disable('Tick'); Return; } Count += DeltaTime; if ( (Count>Frand()*SmokeRate+SmokeRate+NumExtraGrenades*0.03) && (Level.NetMode!=NM_DedicatedServer) ) { b = Spawn(class'UT_BlackSmoke'); b.RemoteRole = ROLE_None; Count=0; } } simulated function Landed( vector HitNormal ) { HitWall( HitNormal, None ); } simulated function ProcessTouch( actor Other, vector HitLocation ) { Explosion(Other, HitLocation); } simulated function HitWall( vector HitNormal, actor Wall ) { Velocity = 0.75*(( Velocity dot HitNormal ) * HitNormal * (-2.0) + Velocity); // Reflect off Wall w/damping RandSpin(100000); speed = VSize(Velocity); if ( Level.NetMode != NM_DedicatedServer ) PlaySound(ImpactSound, SLOT_Misc, 1.5 ); if ( Velocity.Z > 400 ) Velocity.Z = 0.5 * (400 + Velocity.Z); else if ( speed < 20 ) { bBounce = False; SetPhysics(PHYS_None); } } simulated function Explosion(actor Other, vector HitLocation) { local UT_SpriteBallExplosion s; if (Other.IsA('Pawn') || Other.IsA('UTHumanCarcass') || Other.IsA('CreatureCarcass')) spawn(class'BurningFlame',Other,,Other.Location); if ( Level.NetMode != NM_DedicatedServer ) { spawn(class'Botpack.BlastMark',,,,rot(16384,0,0)); s = spawn(class'UT_SpriteBallExplosion',,,HitLocation); s.RemoteRole = ROLE_None; } Destroy(); } D4//============================================================================= // GibbedLeg. //============================================================================= class GibbedLeg expands TournamentWeapon; function SetWeaponStay() { bWeaponStay = false; } function Projectile ProjectileFire(class ProjClass, float ProjSpeed, bool bWarn) { local Vector Start, X,Y,Z; Owner.MakeNoise(Pawn(Owner).SoundDampening); GetAxes(Pawn(owner).ViewRotation,X,Y,Z); Start = Owner.Location + CalcDrawOffset() + FireOffset.X * X + FireOffset.Y * Y + FireOffset.Z * Z; AdjustedAim = pawn(owner).AdjustAim(ProjSpeed, Start, AimError, True, bWarn); return Spawn(ProjClass,,, Start,AdjustedAim); } simulated function PlayFiring() { LoopAnim( 'Still', 0.7 + 0.6 * FireAdjust, 0.05 ); PlayOwnedSound(firesound); } function float RateSelf( out int bUseAltMode ) { local Pawn P; if ( (AmmoType != None) && (AmmoType.AmmoAmount <=0) ) return -2; P = Pawn(Owner); if ( (P.Enemy == None ) || (P.Enemy.Location.Z < Owner.Location.Z - 60) || (FRand() < 0.5) ) bUseAltMode = 1; else bUseAltMode = 0; if ( P.Enemy != None ) { if ( Owner.Location.Z > P.Enemy.Location.Z + 140 ) { bUseAltMode = 1; return (AIRating + 0.25); } else if ( P.Enemy.Location.Z > Owner.Location.Z + 160 ) return (AIRating - 0.07); } return (AIRating + FRand() * 0.05); } function AltFire( float Value ) { if ( AmmoType == None ) { // ammocheck GiveAmmo(Pawn(Owner)); } if (AmmoType.UseAmmo(1)) { GotoState('AltFiring'); bCanClientFire = true; bPointing=True; Pawn(Owner).PlayRecoil(FiringSpeed); ClientAltFire(Value); ProjectileFire(AltProjectileClass, AltProjectileSpeed, bAltWarnTarget); } } simulated function PlayAltFiring() { LoopAnim('Still', 0.4 + 0.3 * FireAdjust,0.05); PlayOwnedSound(altfiresound); } simulated function PlayIdleAnim() { if ( Mesh != PickupViewMesh ) LoopAnim('Still', 0.3,0.4); } simulated function PlaySelect() { bForceFire = false; bForceAltFire = false; bCanClientFire = false; if ( !IsAnimating() || (AnimSequence != 'Select') ) PlayAnim('Still',1.0,0.0); Owner.PlaySound(SelectSound, SLOT_Misc, Pawn(Owner).SoundDampening); } simulated function TweenDown() { if ( IsAnimating() && (AnimSequence != '') && (GetAnimGroup(AnimSequence) == 'Select') ) TweenAnim( AnimSequence, AnimFrame * 0.4 ); else PlayAnim('Still', 1.0, 0.05); } function float SuggestAttackStyle() { return -0.2; } function float SuggestDefenseStyle() { return -0.2; } /////////////////////////////////////////////////////// state NormalFire { function ForceFire() { bForceFire = true; } function ForceAltFire() { bForceAltFire = true; } function Fire(float F) { } function AltFire(float F) { } function AnimEnd() { Finish(); } Begin: Sleep(1.0); } //////////////////////////////////////////////////////// state AltFiring { function Fire(float F) { } function AltFire(float F) { } function ForceFire() { bForceFire = true; } function ForceAltFire() { bForceAltFire = true; } function AnimEnd() { Finish(); } Begin: Sleep(1.0); } B4//============================================================================= // GibbedArm. //============================================================================= class GibbedArm expands TournamentWeapon; function SetWeaponStay() { bWeaponStay = false; } function Projectile ProjectileFire(class ProjClass, float ProjSpeed, bool bWarn) { local Vector Start, X,Y,Z; Owner.MakeNoise(Pawn(Owner).SoundDampening); GetAxes(Pawn(owner).ViewRotation,X,Y,Z); Start = Owner.Location + CalcDrawOffset() + FireOffset.X * X + FireOffset.Y * Y + FireOffset.Z * Z; AdjustedAim = pawn(owner).AdjustAim(ProjSpeed, Start, AimError, True, bWarn); return Spawn(ProjClass,,, Start,AdjustedAim); } simulated function PlayFiring() { LoopAnim( 'Still', 0.7 + 0.6 * FireAdjust, 0.05 ); PlayOwnedSound(firesound); } function float RateSelf( out int bUseAltMode ) { local Pawn P; if ( (AmmoType != None) && (AmmoType.AmmoAmount <=0) ) return -2; P = Pawn(Owner); if ( (P.Enemy == None ) || (P.Enemy.Location.Z < Owner.Location.Z - 60) || (FRand() < 0.5) ) bUseAltMode = 1; else bUseAltMode = 0; if ( P.Enemy != None ) { if ( Owner.Location.Z > P.Enemy.Location.Z + 140 ) { bUseAltMode = 1; return (AIRating + 0.25); } else if ( P.Enemy.Location.Z > Owner.Location.Z + 160 ) return (AIRating - 0.07); } return (AIRating + FRand() * 0.05); } function AltFire( float Value ) { if ( AmmoType == None ) { // ammocheck GiveAmmo(Pawn(Owner)); } if (AmmoType.UseAmmo(1)) { GotoState('AltFiring'); bCanClientFire = true; bPointing=True; Pawn(Owner).PlayRecoil(FiringSpeed); ClientAltFire(Value); ProjectileFire(AltProjectileClass, AltProjectileSpeed, bAltWarnTarget); } } simulated function PlayAltFiring() { LoopAnim('Still', 0.4 + 0.3 * FireAdjust,0.05); PlayOwnedSound(altfiresound); } simulated function PlayIdleAnim() { if ( Mesh != PickupViewMesh ) LoopAnim('Still', 0.3,0.4); } simulated function PlaySelect() { bForceFire = false; bForceAltFire = false; bCanClientFire = false; if ( !IsAnimating() || (AnimSequence != 'Select') ) PlayAnim('Still',1.0,0.0); Owner.PlaySound(SelectSound, SLOT_Misc, Pawn(Owner).SoundDampening); } simulated function TweenDown() { if ( IsAnimating() && (AnimSequence != '') && (GetAnimGroup(AnimSequence) == 'Select') ) TweenAnim( AnimSequence, AnimFrame * 0.4 ); else PlayAnim('Still', 1.0, 0.05); } function float SuggestAttackStyle() { return -0.2; } function float SuggestDefenseStyle() { return -0.2; } /////////////////////////////////////////////////////// state NormalFire { function ForceFire() { bForceFire = true; } function ForceAltFire() { bForceAltFire = true; } function Fire(float F) { } function AltFire(float F) { } function AnimEnd() { Finish(); } Begin: Sleep(1.0); } //////////////////////////////////////////////////////// state AltFiring { function Fire(float F) { } function AltFire(float F) { } function ForceFire() { bForceFire = true; } function ForceAltFire() { bForceAltFire = true; } function AnimEnd() { Finish(); } Begin: Sleep(1.0); } vK//============================================================================= // BurningFlame. //============================================================================= class BurningFlame expands ut_Decoration; var() Sound BurnSound; var int burntime; var() int maxburntime; var() int moveburntime; //var int NumFlames; // flames it spawns on the owner //var int MaxNumFlames; // max flames it spawns on the owner var int NumOtherFlames; // flames it spawns on other people var() int MaxNumOtherFlames; // max flames it spawns on other people function PostBeginPlay() { SetTimer(0.08,true); Super.PostBeginPlay(); } simulated function Tick(float DeltaTime) { local vector X,Y,Z; local BurningFlame F; local Pawn P; local Carcass C; local UT_BlackSmoke s; if (Owner == None || Owner.IsA('Spectator') || (Owner.IsA('Pawn') && Pawn(Owner).Health <= -5)) Destroy(); ForEach RadiusActors(class'BurningFlame', F, 80){ if (F != None && F != Self && F.Owner == Owner) if (F.burntime > burntime) F.Destroy(); else Destroy(); } SetLocation(owner.Location + FRand() * owner.CollisionRadius*vect(1,1,0) + owner.CollisionHeight * FRand() * vect(0,0,1)); SetRotation(owner.rotation); // makes flames burn faster if you move around more if (Owner.Velocity.x > 2 || Owner.Velocity.y > 2 || Owner.Velocity.z > 2) burntime+= ((Owner.velocity.x+Owner.velocity.y+Owner.velocity.z)/moveburntime) + 1; else burntime--; if (FRand() > 0.94){ s = Spawn(class'UT_BlackSmoke',,,location); s.RemoteRole = ROLE_None; if (Owner.ScaleGlow > 0.2) Owner.ScaleGlow -= 0.08; if (Owner.ScaleGlow < 0.2) Owner.ScaleGlow = 0.2; } if (Owner.IsA('Zombie') && DrawScale < 0.8) DrawScale += 0.1; else if (Owner.IsA('ZombieMaster') && DrawScale < 1.2) DrawScale += 0.1; else if (DrawScale < 0.4) DrawScale += 0.05; if (burntime >= maxburntime){ s = Spawn(class'UT_BlackSmoke',,,location); s.RemoteRole = ROLE_None; Destroy(); } } simulated function Timer() { local BurningFlame F; local Pawn P; local Carcass C; local Decoration D; local Inventory I; local Projectile Proj; local Cooked_Gib G; local UT_BlackSmoke s; if ((Owner.IsA('Zombie') || Owner.IsA('ZombieMaster') || Owner.IsA('Ghoul')) && FRand() > 0.24){ Owner.TakeDamage( Rand(2) + 20, Pawn(Owner), owner.Location, Velocity, 'Burned' ); Owner.ScaleGlow = 0.08; } else if (Owner.IsA('Pawn') && FRand() > 0.86) Owner.TakeDamage( Rand(2) + 1, Pawn(Owner), owner.Location, Velocity, 'Burned' ); else if ((Owner.IsA('UTPlayerChunks') || Owner.IsA('PlayerChunks') || Owner.IsA('GibChunk') || Owner.IsA('GibbedLeg') || Owner.IsA('GibbedArm') || Owner.IsA('GibbedHead') || Owner.IsA('MediumGib') || Owner.IsA('SmallGib')) && FRand() > 0.54){ G = spawn(class'GibFight.Cooked_Gib',,,Owner.location); G.Mesh = Owner.Mesh; G.PickupViewMesh = Owner.Mesh; G.ThirdPersonMesh = Owner.Mesh; s = Spawn(class'UT_BlackSmoke',,,location); s.RemoteRole = ROLE_None; Owner.Destroy(); Destroy(); } else if (Owner.IsA('Decoration') && FRand() > 0.64) Owner.TakeDamage( Rand(2) + 8, Pawn(Owner), owner.Location, Velocity, 'Burned' ); // spawns flames on other people if they are close ForEach RadiusActors(class 'Pawn',P,150){ if (P.Health > 0 && P != Owner && numotherflames < maxnumotherflames && FRand() > 0.84){ spawn(class'GibFight.burningflame',P,,P.location); numotherflames++; } } ForEach RadiusActors(class 'Decoration',D,150){ if (D != None && D != Owner && (D.IsA('Chest') || D.IsA('Carcass') || D.IsA('Chair') || D.IsA('Barrel') || D.IsA('Table') || D.IsA('WoodenBox') || D.IsA('Vase')) && numotherflames < maxnumotherflames && FRand() > 0.84){ spawn(class'GibFight.burningflame',D,,D.location); numotherflames++; } } ForEach RadiusActors(class 'Inventory',I,150){ if (I != None && I != Owner && I.bCarriedItem == false && (I.IsA('GibChunk') || I.IsA('GibbedLeg') || I.IsA('GibbedArm') || I.IsA('GibbedHead') || I.IsA('MediumGib') || I.IsA('SmallGib')) && numotherflames < maxnumotherflames && FRand() > 0.86){ spawn(class'GibFight.burningflame',I,,I.location); numotherflames++; } } foreach RadiusActors( class 'Projectile', Proj,150){ if (Proj != None && Proj != Owner && Proj.IsA('SpikeBall') && numotherflames < maxnumotherflames && FRand() > 0.86){ spawn(class'GibFight.burningflame',Proj,,Proj.location); numotherflames++; } } if (numotherflames > 0 && FRand() > 0.84) numotherflames--; } simulated function ZoneChange( Zoneinfo NewZone ) { local UT_BlackSmoke s; if (!NewZone.bWaterZone) Return; s = Spawn(class'UT_BlackSmoke',,,location); s.RemoteRole = ROLE_None; Destroy(); } B4//============================================================================= // GibChunk. //============================================================================= class GibChunk expands TournamentWeapon; function SetWeaponStay() { bWeaponStay = false; } function Projectile ProjectileFire(class ProjClass, float ProjSpeed, bool bWarn) { local Vector Start, X,Y,Z; Owner.MakeNoise(Pawn(Owner).SoundDampening); GetAxes(Pawn(owner).ViewRotation,X,Y,Z); Start = Owner.Location + CalcDrawOffset() + FireOffset.X * X + FireOffset.Y * Y + FireOffset.Z * Z; AdjustedAim = pawn(owner).AdjustAim(ProjSpeed, Start, AimError, True, bWarn); return Spawn(ProjClass,,, Start,AdjustedAim); } simulated function PlayFiring() { LoopAnim( 'Still', 0.7 + 0.6 * FireAdjust, 0.05 ); PlayOwnedSound(firesound); } function float RateSelf( out int bUseAltMode ) { local Pawn P; if ( (AmmoType != None) && (AmmoType.AmmoAmount <=0) ) return -2; P = Pawn(Owner); if ( (P.Enemy == None ) || (P.Enemy.Location.Z < Owner.Location.Z - 60) || (FRand() < 0.5) ) bUseAltMode = 1; else bUseAltMode = 0; if ( P.Enemy != None ) { if ( Owner.Location.Z > P.Enemy.Location.Z + 140 ) { bUseAltMode = 1; return (AIRating + 0.25); } else if ( P.Enemy.Location.Z > Owner.Location.Z + 160 ) return (AIRating - 0.07); } return (AIRating + FRand() * 0.05); } function AltFire( float Value ) { if ( AmmoType == None ) { // ammocheck GiveAmmo(Pawn(Owner)); } if (AmmoType.UseAmmo(1)) { GotoState('AltFiring'); bCanClientFire = true; bPointing=True; Pawn(Owner).PlayRecoil(FiringSpeed); ClientAltFire(Value); ProjectileFire(AltProjectileClass, AltProjectileSpeed, bAltWarnTarget); } } simulated function PlayAltFiring() { LoopAnim('Still', 0.4 + 0.3 * FireAdjust,0.05); PlayOwnedSound(altfiresound); } simulated function PlayIdleAnim() { if ( Mesh != PickupViewMesh ) LoopAnim('Still', 0.3,0.4); } simulated function PlaySelect() { bForceFire = false; bForceAltFire = false; bCanClientFire = false; if ( !IsAnimating() || (AnimSequence != 'Select') ) PlayAnim('Still',1.0,0.0); Owner.PlaySound(SelectSound, SLOT_Misc, Pawn(Owner).SoundDampening); } simulated function TweenDown() { if ( IsAnimating() && (AnimSequence != '') && (GetAnimGroup(AnimSequence) == 'Select') ) TweenAnim( AnimSequence, AnimFrame * 0.4 ); else PlayAnim('Still', 1.0, 0.05); } function float SuggestAttackStyle() { return -0.2; } function float SuggestDefenseStyle() { return -0.2; } /////////////////////////////////////////////////////// state NormalFire { function ForceFire() { bForceFire = true; } function ForceAltFire() { bForceAltFire = true; } function Fire(float F) { } function AltFire(float F) { } function AnimEnd() { Finish(); } Begin: Sleep(1.0); } //////////////////////////////////////////////////////// state AltFiring { function Fire(float F) { } function AltFire(float F) { } function ForceFire() { bForceFire = true; } function ForceAltFire() { bForceAltFire = true; } function AnimEnd() { Finish(); } Begin: Sleep(1.0); } m://============================================================================= // FlyingGib. //============================================================================= class FlyingGib expands Projectile; var vector SurfaceNormal; var bool bOnGround; var bool bCheckedSurface; var float wallTime; var float BaseOffset; var BioFear MyFear; function PostBeginPlay() { SetTimer(3.0, false); Super.PostbeginPlay(); } function Destroyed() { if ( MyFear != None ) MyFear.Destroy(); Super.Destroyed(); } function Timer() { spawn(class'ut_bloodburst',,,Location + SurfaceNormal*8); PlaySound (MiscSound,,3.0*DrawScale); if ( (Mover(Base) != None) && Mover(Base).bDamageTriggered ) Base.TakeDamage( Damage, instigator, Location, MomentumTransfer * Normal(Velocity), MyDamageType); HurtRadius(damage * Drawscale, FMin(250, DrawScale * 35), MyDamageType, MomentumTransfer * Drawscale, Location); Destroy(); } simulated function SetWall(vector HitNormal, Actor Wall) { local vector TraceNorm, TraceLoc, Extent; local actor HitActor; local rotator RandRot; SurfaceNormal = HitNormal; if ( Level.NetMode != NM_DedicatedServer ) spawn(class'BloodSplat',,,Location, rotator(SurfaceNormal)); RandRot = rotator(HitNormal); RandRot.Roll += 32768; SetRotation(RandRot); if ( Mover(Wall) != None ) SetBase(Wall); } singular function TakeDamage( int NDamage, Pawn instigatedBy, Vector hitlocation, vector momentum, name damageType ) { GoToState('Exploding'); } auto state Flying { function ProcessTouch (Actor Other, vector HitLocation) { if ( Pawn(Other)!=Instigator || bOnGround) Global.Timer(); } simulated function HitWall( vector HitNormal, actor Wall ) { SetPhysics(PHYS_None); MakeNoise(0.3); bOnGround = True; PlaySound(ImpactSound); SetWall(HitNormal, Wall); PlayAnim('Still'); GoToState('OnSurface'); } simulated function ZoneChange( Zoneinfo NewZone ) { local waterring w; if (!NewZone.bWaterZone) Return; if (!bOnGround) { w = Spawn(class'WaterRing',,,,rot(16384,0,0)); w.DrawScale = 0.1; } bOnGround = True; Velocity=0.1*Velocity; } function Timer() { GotoState('Exploding'); } function BeginState() { if ( Role == ROLE_Authority ) { Velocity = Vector(Rotation) * Speed; Velocity.z += 120; if( Region.zone.bWaterZone ) Velocity=Velocity*0.7; } if ( Level.NetMode != NM_DedicatedServer ) RandSpin(100000); LoopAnim('Still',0.4); bOnGround=False; PlaySound(SpawnSound); } } state Exploding { ignores Touch, TakeDamage; function BeginState() { SetTimer(0.1+FRand()*0.2, False); } } state OnSurface { function ProcessTouch (Actor Other, vector HitLocation) { GotoState('Exploding'); } simulated function CheckSurface() { local float DotProduct; DotProduct = SurfaceNormal dot vect(0,0,-1); If( DotProduct > 0.7 ) PlayAnim('Drip',0.1); else if (DotProduct > -0.5) PlayAnim('Slide',0.2); } function Timer() { if ( Mover(Base) != None ) { WallTime -= 0.2; if ( WallTime < 0.15 ) Global.Timer(); else if ( VSize(Location - Base.Location) > BaseOffset + 4 ) Global.Timer(); } else Global.Timer(); } function BeginState() { wallTime = 1.2; MyFear = Spawn(class'BioFear'); if ( Mover(Base) != None ) { BaseOffset = VSize(Location - Base.Location); SetTimer(0.2, true); } else SetTimer(wallTime, false); } simulated function AnimEnd() { if ( !bCheckedSurface && (DrawScale > 1.0) ) CheckSurface(); bCheckedSurface = true; } } x5Configure GibFight W-' oN XBCC?,?,  D4//============================================================================= // Torch. //============================================================================= class Torch expands TournamentWeapon; function Projectile ProjectileFire(class ProjClass, float ProjSpeed, bool bWarn) { local Vector Start, X,Y,Z; Owner.MakeNoise(Pawn(Owner).SoundDampening); GetAxes(Pawn(owner).ViewRotation,X,Y,Z); Start = Owner.Location + CalcDrawOffset() + FireOffset.X * X + FireOffset.Y * Y + FireOffset.Z * Z; AdjustedAim = pawn(owner).AdjustAim(ProjSpeed, Start, AimError, True, bWarn); return Spawn(ProjClass,,, Start,AdjustedAim); } simulated function PlayFiring() { LoopAnim( 'Out', 0.7 + 0.6 * FireAdjust, 0.05 ); PlayOwnedSound(class'Razor2'.Default.SpawnSound, SLOT_None,4.2); } function float RateSelf( out int bUseAltMode ) { local Pawn P; if ( (AmmoType != None) && (AmmoType.AmmoAmount <=0) ) return -2; P = Pawn(Owner); if ( (P.Enemy == None ) || (P.Enemy.Location.Z < Owner.Location.Z - 60) || (FRand() < 0.5) ) bUseAltMode = 1; else bUseAltMode = 0; if ( P.Enemy != None ) { if ( Owner.Location.Z > P.Enemy.Location.Z + 140 ) { bUseAltMode = 1; return (AIRating + 0.25); } else if ( P.Enemy.Location.Z > Owner.Location.Z + 160 ) return (AIRating - 0.07); } return (AIRating + FRand() * 0.05); } function AltFire( float Value ) { if ( AmmoType == None ) { // ammocheck GiveAmmo(Pawn(Owner)); } if (AmmoType.UseAmmo(1)) { GotoState('AltFiring'); bCanClientFire = true; bPointing=True; Pawn(Owner).PlayRecoil(FiringSpeed); ClientAltFire(Value); ProjectileFire(AltProjectileClass, AltProjectileSpeed, bAltWarnTarget); } } simulated function PlayAltFiring() { LoopAnim('Out', 0.4 + 0.3 * FireAdjust,0.05); PlayOwnedSound(class'Razor2Alt'.Default.SpawnSound, SLOT_None,4.2); } simulated function PlayIdleAnim() { if ( Mesh != PickupViewMesh ) LoopAnim('In', 0.3,0.4); } simulated function PlaySelect() { bForceFire = false; bForceAltFire = false; bCanClientFire = false; if ( !IsAnimating() || (AnimSequence != 'Select') ) PlayAnim('In',1.0,0.0); Owner.PlaySound(SelectSound, SLOT_Misc, Pawn(Owner).SoundDampening); } simulated function TweenDown() { if ( IsAnimating() && (AnimSequence != '') && (GetAnimGroup(AnimSequence) == 'Select') ) TweenAnim( AnimSequence, AnimFrame * 0.4 ); else PlayAnim('In', 1.0, 0.05); } function float SuggestAttackStyle() { return -0.2; } function float SuggestDefenseStyle() { return -0.2; } /////////////////////////////////////////////////////// state NormalFire { function ForceFire() { bForceFire = true; } function ForceAltFire() { bForceAltFire = true; } function Fire(float F) { } function AltFire(float F) { } function AnimEnd() { Finish(); } Begin: Sleep(8.0); } //////////////////////////////////////////////////////// state AltFiring { function Fire(float F) { } function AltFire(float F) { } function ForceFire() { bForceFire = true; } function ForceAltFire() { bForceAltFire = true; } function AnimEnd() { Finish(); } Begin: Sleep(8.0); } ]TsuX"["~"|"r*U< t*Uy"ym@                                                 !                 !    !  @@ @!!@       @  !    !@@@!AA!@ !@@@@    AA AA@A    !AAAA A     ! !AA!    !AA A!A@AA !   A AA       A !   !AA !@!A@ !!  CC! A @@   CCC@!! AA DEC@A!A!A@@@@@@@@A@$A!!C  $A  IDAD! EGE $GADGE G# @A@!DGG*A!' % F% @DF(&D  E*A")B ' (JE!@( K,H!!A&I(- &K()-(ABJ-+ (LJ)*--+LM,--+ (--+ E--L-, MOM,,-L-,-OW/ D,-L-,,-L-, G)-LMML-A-WWO/(-LMML-(LOag"&(-LMML-(-LMML-! LOOM,A(LgfWLLOOM,,-LOfgD  LOOM,LOOM,@A@-OWaWWWO/A,JgngaL-OWaWWWO/,LLMOfgngaM(-OWaWWWO/-OWaWWWO/!A!(LOagggfWL@,LfgngaM( (LOagggfWLLOWWagnngaO-(LOagggfWL (LOagggfWL,-LOfgngaL$LOagnngaO-, ,-LOfgngaL-QfggongfWL( (,LNdengaL,-LOfgngaL,LLMOfgngaM( G!JggongfWL/((,LLMOfgngaM( LWgĨngfO-+,/LNdengaM( ,LLMOfgngaM( LOWWagnngaO-, GA'WgĨngfO,,(LOWWagnngaO-, ,OnĩnfO,.-/6TVenngaO- LOWWagnngaO-, -QfggongfWL/((IF,OnĩnLLLL-QfggongfWL/(((MaɩnWL +LL1XXekngfWL((-QfggongfWL/(( LWgĨngfO,,++,,,LL/OaɩnO.QN+LWgĨngfO,,+OaagnW- +OON6RkwwngfO,/-LWgĨngfO,,+,+,OnĩnL/N,OL/LOg/6,,OnĩnL/NL,OWgɨg,,LYpuwnfLOM,,OnĩnL/NL,,,LL/OaɩnO6UU63ҼN/OaɩnO6UUN+ LWgȨgWOOpx{ɩnWMO-,LL/OaɩnO6UUN+/L/LOg/XdWdX6ґg/XdeU,(WfgngWѴpx~n1LLOg/XdeUMW63Ҽ6TddRұҴѢҼ6XdW-/WonԶpy~ɨW6Ҽ6XdQPdX6Һ6dXaѱѴҺXXaN(+WWgɩѸٻx}fdUҺXTddRҾ6Wب۴ǴҾ_hgU/,gngеҭx}Y§RҾ_RѾXXa9_]^pgN(OagnѲƮx~_Ѵd^;p٥wvtf/Q˳ڮx]v8lt]_vxoWWnŵnt}psm\uٯmxnٯx{nWMaff6gڶx~pʷٯ~vy~xnطvs>nطvy|n-ag̵Qi{ѭy~xnطvypxܴ={~yvgܴ={u~~n(MǕUkuxp~xܴ={u{>pXޯ{~xmMMĻppt~U ,Wnfg1qZ}{>ppz~~yvglptu~~u6,WnfgvglptpyXgĨg+3qwįì~~yvglpt[q{~xmMMǦTq?|||||\+gĨg,XMMǦTq?|{/OQM((fnδLjz\r{~xmMMǦTq?|u~~u6,WnfgL9Np_ϡww\OQM((f~u6,WnfgL9Npu\,+sWǵXitf~~u6,WnfgL9Npuϲ||||\+gĨg(6jw6R-wjR,+||||\+gĨg(6jwjRj+N̶WiqkgMW|||\+gĨg(6jwjT/ww\OQM(UY2+UZ5j+Nww\OQM(UY2UonV+NL(j+Nww\OQM(UY2UkwjR, UkwjR,+WZ2+UkwjR,+UY2+UY2+UY2                                             !                 !    !  @@ @!!@       @  !    !@@@!AA!@ !@@@@    AA AA@A    !AAAA A     ! !AA!    !AA A!A@AA !   A AA       A !   !AA !@!A@ !!  CC! A @@   CCC@!! AA DEC@A!A!A@@@@@@@@A@$A!!C  $A  IDAD! EGE $GADGE G# @A@!DGG*A!' % F% @DF(&D  E*A")B ' (JE!@( K,H!!A&I(- &K()-(ABJ-+ (LJ)*--+LM,--+ (--+ E--L-, MOM,,-L-,-OW/ D,-L-,,-L-, G)-LMML-A-WWO/(-LMML-(LOag"&(-LMML-(-LMML-! LOOM,A(LgfWLLOOM,,-LOfgD  LOOM,LOOM,@A@-OWaWWWO/A,JgngaL-OWaWWWO/,LLMOfgngaM(-OWaWWWO/-OWaWWWO/!A!(LOagggfWL@,LfgngaM( (LOagggfWLLOWWagnngaO-(LOagggfWL (LOagggfWL,-LOfgngaL$LOagnngaO-, ,-LOfgngaL-QfggongfWL( (,LNdengaL,-LOfgngaL,LLMOfgngaM( G!JggongfWL/((,LLMOfgngaM( LWgĨngfO-+,/LNdengaM( ,LLMOfgngaM( LOWWagnngaO-, GA'WgĨngfO,,(LOWWagnngaO-, ,OnĩnfO,.-/6TVenngaO- LOWWagnngaO-, -QfggongfWL/((IF,OnĩnLLLL-QfggongfWL/(((MaɩnWL +LL1XXekngfWL((-QfggongfWL/(( LWgĨngfO,,++,,,LL/OaɩnO.QN+LWgĨngfO,,+OaagnW- +OON6RkwwngfO,/-LWgĨngfO,,+,+,OnĩnL/N,OL/LOg/6,,OnĩnL/NL,OWgɨg,,LYpuwnfLOM,,OnĩnL/NL,,,LL/OaɩnO6UU63ҼN/OaɩnO6UUN+ LWgȨgWOOpx{ɩnWMO-,LL/OaɩnO6UUN+/L/LOg/XdWdX6ґg/XdeU,(WfgngWѴpx~n1LLOg/XdeUMW63Ҽ6TddRұҴѢҼ6XdW-/WonԶpy~ɨW6Ҽ6XdQPdX6Һ6dXaѱѴҺXXaN(+WWgɩѸٻx}fdUҺXTddRҾ6Wب۴ǴҾ_hgU/,gngеҭx}Y§RҾ_RѾXXa9_]^pgN(OagnѲƮx~_Ѵd^;p٥wvtf/Q˳ڮx]v8lt]_vxoWWnŵnt}psm\uٯmxnٯx{nWMaff6gڶx~pʷٯ~vy~xnطvs>nطvy|n-ag̵Qi{ѭy~xnطvypxܴ={~yvgܴ={u~~n(MǕUkuxp~xܴ={u{>pXޯ{~xmMMĻppt~U ,Wnfg1qZ}{>ppz~~yvglptu~~u6,WnfgvglptpyXgĨg+3qwįì~~yvglpt[q{~xmMMǦTq?|||||\+gĨg,XMMǦTq?|{/OQM((fnδLjz\r{~xmMMǦTq?|u~~u6,WnfgL9Np_ϡww\OQM((f~u6,WnfgL9Npu\,+sWǵXitf~~u6,WnfgL9Npuϲ||||\+gĨg(6jw6R-wjR,+||||\+gĨg(6jwjRj+N̶WiqkgMW|||\+gĨg(6jwjT/ww\OQM(UY2+UZ5j+Nww\OQM(UY2UonV+NL(j+Nww\OQM(UY2UkwjR, UkwjR,+WZ2+UkwjR,+UY2+UY2+UY2@!!!))))11199999!BBBBB!B)JJJRZRRZJRZJ!R!Z!J)R)Z)R1Z1R9Z9R1R9RBZ1Z9J1J9!R9RBV9RB)RJ)RJ1ROAckckckckc!k!c)k)c1k1c9k9cBkBZBZJc9cBcJkBZBcBkBZ9ZBZB!ZB)hBcRkJkRZJcJcRkJkRZJZN!cNcR!kJkJ!kRkR!ZJ-ZR-eN+kR)\N;^V=kN1cZ9ZRJZRR`]D^ZNccRZZZc^Zcccs{ss{s!{!!!)))){11s9sBsBsJ{9{B{J9BB5?B7B9sJxJsT{RkZ!sJ{JwTkZ)kZ1sJ!sR!sR)wV%sR1sZ1JLRVVVV~W+JRRZRVZ Rd~d$c fkZ9e1c.p-kZBkcBsZ9sc=}i>sBs?{9cceckmwyk%w!q1~73~%B=kZJkcJscJkcRkcZsgRkkcsh]mJ}mXwNx_JVVLkkkskkssk{sksk{ks{kcgcmsN.  ABB?HotSpotsM3If you stand in a bright spot too long you will spontaneously combust !%$- -".  ABB?Flares(3Replaces HealthVials with Flares !%$- -7.  ABB?Inferno 3Its an inferno of flames !%$- -5 .  ABB? BombRun 3Bombs drop from players ! % $ - -4!.  ACB A!Gib Amount: !3The amount of gibs! !!$!%. BCB A-'%$-',{S 3. BCB A3 %3$3%#.  ACB A#StoneBall Amount: #03Spawns giant StoneBalls around the level# !#$#%. BCB A-'%$-',{S (%.  B%CB A%Created By: % !%$%%*. B%CB A* HOB* !`*$*% zL~//============================================================================= // GibFight. // Created by HOB //============================================================================= class GibFight expands Mutator; var bool Initialized; var config bool hotspots; var config int gibfestamt; var config bool flares; var config bool inferno; var config bool bombrun; var SpikeBall SpawnedStoneBall; var GibBall SpawnedGibBall; var config int MaxStoneBallAmount; var int CurrentStoneBallAmount; var bool bSecret; function PostBeginPlay() { if (Initialized) return; Initialized = True; if (gibfestamt <= 0) gibfestamt = 1; log("--------------------"); log("|=====GibFight=====|"); log("--------------------"); log("hotspots="$hotspots); log("flares="$flares); log("inferno="$inferno); log("bombrun="$bombrun); log("gibfestamount="$gibfestamt); log("stoneballamount="$maxstoneballamount); if (hotspots && gibfestamt == 88){ log("secret 88 enabled"); bSecret = true; gibfestamt = 1; } else{ log("secret 88 disabled"); bSecret = false; } log("--------------------"); settimer(1,true); } function SpawnStoneBall() { local NavigationPoint N; foreach AllActors(class'NavigationPoint', N) { // spawns some undead if ((CurrentStoneBallAmount < MaxStoneBallAmount) && N.IsA('PathNode') && frand() <0.08) { if (bSecret){ SpawnedGibBall = Spawn(class'GibBall', , , N.Location); SpawnedGibBall.GibFightMut = Self; CurrentStoneBallAmount++; return; } else{ SpawnedStoneBall = Spawn(class'SpikeBall', , , N.Location); SpawnedStoneBall.GibFightMut = Self; CurrentStoneBallAmount++; return; } } } } simulated function Timer() { local BurningFlame F; local Pawn P; local Effects E; local Light L; local Decoration D; local inventory inv; local Projectile Proj; local int i; // make the flames giant sized, burn longer, and spread faster if (inferno){ ForEach AllActors(class 'burningflame', F){ if (F != None && F.maxburntime < 250 || F.moveburntime < 40){ F.maxburntime = 280; F.moveburntime = 80; F.maxnumotherflames = 3; if (F.DrawScale < 1.4) F.DrawScale = F.DrawScale * 0.8; } } } ForEach AllActors(class 'inventory', inv){ if (flares){ if (inv.IsA('Ammo') && !inv.IsA('GibAmmo') && !inv.IsA('GibArmAmmo') && !inv.IsA('GibLegAmmo') && FRand() > 0.99) ReplaceWith(inv, "gibfight.torch"); } } if (hotspots){ ForEach AllActors(class 'Projectile', Proj){ ForEach AllActors(class 'Light', L){ if (L.LightBrightness >= 150 && Proj.IsA('SpikeBall') && (VSize(L.Location - Proj.Location) < 200) && FRand() > 0.80) spawn(class'BurningFlame',Proj,,Proj.Location); } } } ForEach AllActors(class 'Pawn', P){ // spawn blood effects if (!P.IsA('Spectator') && P.Health <= 45) spawn(class'UT_BigBloodHit',,,P.Location); if (!P.IsA('Spectator') && P.Health <= 25){ for (i=0;i<2;i++){ spawn(class'UT_BigBloodHit',,,P.Location); spawn(class'UT_BloodBurst',,,P.Location); } if (gibfestamt >= 1 && FRand() > 0.80){ spawn(class'GibFight.GibChunk',,,P.Location + FRand() * P.CollisionRadius*vect(1.5,1.5,0) + P.CollisionHeight * FRand() * vect(0,0,1.5)); } else if (gibfestamt >= 5 && FRand() > 0.64){ spawn(class'GibFight.GibChunk',,,P.Location + FRand() * P.CollisionRadius*vect(1.5,1.5,0) + P.CollisionHeight * FRand() * vect(0,0,1.5)); } else if (gibfestamt >= 10 && FRand() > 0.46){ spawn(class'GibFight.GibChunk',,,P.Location + FRand() * P.CollisionRadius*vect(1.5,1.5,0) + P.CollisionHeight * FRand() * vect(0,0,1.5)); } else if (gibfestamt >= 15 && FRand() > 0.24){ spawn(class'GibFight.GibChunk',,,P.Location + FRand() * P.CollisionRadius*vect(1.5,1.5,0) + P.CollisionHeight * FRand() * vect(0,0,1.5)); } else if (gibfestamt == 88 && FRand() > 0.64){ spawn(class'GibFight.GibChunk',,,P.Location + FRand() * P.CollisionRadius*vect(1.5,1.5,0) + P.CollisionHeight * FRand() * vect(0,0,1.5)); } } if (bombrun && FRand() > 0.62) spawn(class'GibFight.GrenadeBomb',,,P.Location + FRand() * P.CollisionRadius*vect(1.5,1.5,0) + P.CollisionHeight * FRand() * vect(0,0,1.5)); // spawn flames ForEach AllActors(class 'Effects', E){ if (!P.IsA('Spectator') && (VSize(P.Location - E.Location) < 115)){ // check for certain types of explosions if (E.IsA('UT_SpriteBallExplosion') || E.IsA('UT_SpriteBallChild') || E.IsA('SuperShockExplo') || E.IsA('UT_FlameExplosion') || E.IsA('FlameExplosion') || E.IsA('SpriteExplosion') || E.IsA('ParticleBurst') || E.IsA('DExplosion') || E.IsA('BallExplosion') || E.IsA('WarExplosion') || E.IsA('WarExplosion2') || E.IsA('SpriteBallExplosion') || E.IsA('WarExplosion')) spawn(class'GibFight.BurningFlame',P,,P.Location); } } if (hotspots){ ForEach AllActors(class 'Light', L){ if (L.LightBrightness >= 150 && !P.IsA('Spectator') && (VSize(L.Location - P.Location) < 200) && FRand() > 0.80) spawn(class'GibFight.BurningFlame',P,,P.Location); } } } ForEach AllActors(class 'Decoration', D){ if (D.IsA('UT_MaleArm') || D.IsA('UT_FemaleArm') || D.IsA('ut_bossarm') || D.IsA('Arm1')){ for (i=0;iTa!?L= wy;i L R < f A ACB q -' {v -' |~{:  }@~_    BI aA  D  CF?  Ea -' G -' H  v -' MNOQ1v -' @Ta  j\* a?  v -' V{ -' WY:  X[_  Z  Ud a?  _  ^a?  `a -' b -' c  Ef?nH L O2//============================================================================= // SpikeBall. //============================================================================= class SpikeBall expands Projectile; var bool bCanHitOwner, bHitWater; var float Count, SmokeRate; var GibFight GibFightMut; simulated function PostBeginPlay() { local vector X,Y,Z; local rotator RandRot; Super.PostBeginPlay(); if ( Role == ROLE_Authority ) { GetAxes(Instigator.ViewRotation,X,Y,Z); Velocity = X * (Instigator.Velocity Dot X)*0.4 + Vector(Rotation) * (Speed + FRand() * 100); Velocity.z += 210; MaxSpeed = 1000; RandSpin(50000); bCanHitOwner = False; if (Instigator.HeadRegion.Zone.bWaterZone) { bHitWater = True; Disable('Tick'); Velocity=0.6*Velocity; } } else; } simulated function ZoneChange( Zoneinfo NewZone ) { local waterring w; if (!NewZone.bWaterZone || bHitWater) Return; bHitWater = True; w = Spawn(class'WaterRing',,,,rot(16384,0,0)); w.DrawScale = 0.2; w.RemoteRole = ROLE_None; Velocity=0.8*Velocity; } simulated function Tick(float DeltaTime) { local ParticleBurst p; if ( bHitWater || Level.bDropDetail ) { Disable('Tick'); Return; } Count += DeltaTime; if ( (Count>Frand()*SmokeRate+SmokeRate+Rand(2)*0.03) && (Level.NetMode!=NM_DedicatedServer) ) { p = Spawn(class'ParticleBurst'); p.RemoteRole = ROLE_None; Count=0; } } simulated function Landed( vector HitNormal ) { HitWall( HitNormal, None ); } simulated function Bump( actor Other ) { Other.TakeDamage(damage, instigator,Location, (MomentumTransfer * Normal(Velocity)), 'crushed' ); } singular function TakeDamage( int NDamage, Pawn instigatedBy, Vector hitlocation, vector momentum, name damageType ) { if (NDamage >= 40) Explosion(Location+Vect(0,0,1)*16); } simulated function HitWall( vector HitNormal, actor Wall ) { bCanHitOwner = True; Velocity = 1.05*(( Velocity dot HitNormal ) * HitNormal * (-2.0) + Velocity); // Reflect off Wall w/damping RandSpin(100000); speed = VSize(Velocity); if ( Level.NetMode != NM_DedicatedServer ) PlaySound(Sound'AmbAncient.sblockD1', SLOT_Misc, 1.5 ); if ( Velocity.Z > 400 ) Velocity.Z = 0.5 * (400 + Velocity.Z); else if ( speed < 30 ) { Explosion(Location+Vect(0,0,1)*16); } } /////////////////////////////////////////////////////// function BlowUp(vector HitLocation) { SpawnChunks(1); MakeNoise(1.0); } function SpawnChunks(int num) { local int NumChunks,i; local BigRock TempRock; local float scale; NumChunks = 1+Rand(num); scale = 12 * sqrt(0.52/NumChunks); speed = VSize(Velocity); TempRock = Spawn(class'Boulder1'); if (TempRock != None ) TempRock.SpawnChunks(1); } simulated function Explosion(vector HitLocation) { local UT_SpriteBallExplosion s; BlowUp(HitLocation); if ( Level.NetMode != NM_DedicatedServer ) { spawn(class'Botpack.BlastMark',,,,rot(16384,0,0)); s = spawn(class'UT_SpriteBallExplosion',,,HitLocation); s.RemoteRole = ROLE_None; } GibFightMut.CurrentStoneBallAmount--; Destroy(); } +nk?nF L ICK:-a!>>L= _o"h 5&b? CK-a!333??L= zCK8-a!>>L= ` -( ut?iF L Hw;d L  JER#k-(-(-(Ca!a!X?a$. z{|XCK:-a!>>L= GXA<  c//============================================================================= // Cooked_Gib. //============================================================================= class Cooked_Gib expands TournamentHealth; e~wU*Ua g?@ ProjClass, float ProjSpeed, bool bWarn) { local Vector Start, X,Y,Z; Owner.MakeNoise(Pawn(Owner).SoundDampening); GetAxes(Pawn(owner).ViewRotation,X,Y,Z); Start = Owner.Location + CalcDrawOffset() + FireOffset.X * X + FireOffset.Y * Y + FireOffset.Z * Z; AdjustedAim = pawn(owner).AdjustAim(ProjSpeed, Start, AimError, True, bWarn); return Spawn(ProjClass,,, Start,AdjustedAim); } simulated function PlayFiring() { LoopAnim( 'Still', 0.7 + 0.6 * FireAdjust, 0.05 ); PlayOwnedSound(firesound); } function float RateSelf( out int bUseAltMode ) { local Pawn P; if ( (AmmoType != None) && (AmmoType.AmmoAmount <=0) ) return -2; P = Pawn(Owner); if ( (P.Enemy == None ) || (P.Enemy.Location.Z < Owner.Location.Z - 60) || (FRand() < 0.5) ) bUseAltMode = 1; else bUseAltMode = 0; if ( P.Enemy != None ) { if ( Owner.Location.Z > P.Enemy.Location.Z + 140 ) { bUseAltMode = 1; return (AIRating + 0.25); } else if ( P.Enemy.Location.Z > Owner.Location.Z + 160 ) return (AIRating - 0.07); } return (AIRating + FRand() * 0.05); } function Fire( float Value ) { if ( (AmmoType == None) && (AmmoName != None) ) { // ammocheck GiveAmmo(Pawn(Owner)); } if ( AmmoType.UseAmmo(1) ) { GotoState('NormalFire'); bCanClientFire = true; bPointing=True; Pawn(Owner).PlayRecoil(FiringSpeed); ClientFire(Value); MyFlyHead = FlyingHead(ProjectileFire(AltProjectileClass, ProjectileSpeed, bWarnTarget)); MyFlyHead.Mesh = Mesh; } } function AltFire( float Value ) { if ( AmmoType == None ) { // ammocheck GiveAmmo(Pawn(Owner)); } if (AmmoType.UseAmmo(1)) { GotoState('AltFiring'); bCanClientFire = true; bPointing=True; Pawn(Owner).PlayRecoil(FiringSpeed); ClientAltFire(Value); MyFlyHead = FlyingHead(ProjectileFire(AltProjectileClass, ProjectileSpeed, bWarnTarget)); MyFlyHead.Mesh = Mesh; } } simulated function PlayAltFiring() { LoopAnim('Still', 0.4 + 0.3 * FireAdjust,0.05); PlayOwnedSound(altfiresound); } simulated function PlayIdleAnim() { if ( Mesh != PickupViewMesh ) LoopAnim('Still', 0.3,0.4); } simulated function PlaySelect() { bForceFire = false; bForceAltFire = false; bCanClientFire = false; if ( !IsAnimating() || (AnimSequence != 'Select') ) PlayAnim('Still',1.0,0.0); Owner.PlaySound(SelectSound, SLOT_Misc, Pawn(Owner).SoundDampening); } simulated function TweenDown() { if ( IsAnimating() && (AnimSequence != '') && (GetAnimGroup(AnimSequence) == 'Select') ) TweenAnim( AnimSequence, AnimFrame * 0.4 ); else PlayAnim('Still', 1.0, 0.05); } function float SuggestAttackStyle() { return -0.2; } function float SuggestDefenseStyle() { return -0.2; } /////////////////////////////////////////////////////// state NormalFire { function ForceFire() { bForceFire = true; } function ForceAltFire() { bForceAltFire = true; } function Fire(float F) { } function AltFire(float F) { } function AnimEnd() { Finish(); } Begin: Sleep(1.0); } //////////////////////////////////////////////////////// state AltFiring { function Fire(float F) { } function AltFire(float F) { } function ForceFire() { bForceFire = true; } function ForceAltFire() { bForceAltFire = true; } function AnimEnd() { Finish(); } Begin: Sleep(1.0); } *R //============================================================================= // GibFightConfigWindow. //============================================================================= class GibFightConfigWindow expands UWindowFramedWindow; function BeginPlay() { Super.BeginPlay(); //Set the title of the Framed Window WindowTitle = "Configure GibFight"; //The class of the content ClientClass = class'GibFightClientWindow'; //Make the Framed Window resizable bSizable = true; } function Created() { Super.Created(); SetSize(126, 195); WinLeft = (Root.WinWidth - WinWidth) / 2; WinTop = (Root.WinHeight - WinHeight) / 2; } _//============================================================================= // GibHeadAmmo. //============================================================================= class GibHeadAmmo expands TournamentAmmo; X//============================================================================= // FlyingHead. //============================================================================= class FlyingHead expands FlyingGib; 0`  -( LDL#!wa!X>> pK=a![333??L= $ff@ JrK#-a!333??L= tCa6 -a!>>L= ODg #!wa!>> PEm k-(-(-(Ca!a!?a$. QMw( VBa!a%!a&>Ta!?L= RT; L SV?D L U^*a?   -' X -' Y[8 Z]] \} Wfa?  a `c= b_ -' d -' e Ji //============================================================================= // BombGrenade. //============================================================================= class BombGrenade expands UT_Grenade; simulated function PostBeginPlay() { local vector X,Y,Z; local rotator RandRot; Super.PostBeginPlay(); if ( Level.NetMode != NM_DedicatedServer ) PlayAnim('WingIn'); SetTimer(5.2+FRand()*0.5,false); //Grenade begins unarmed } function BlowUp(vector HitLocation) { HurtRadius(damage, 150, MyDamageType, MomentumTransfer, HitLocation); MakeNoise(1.0); } hkn 5;%::$a!paff@?( opqRef Y::$96?,xY6-333?{::$PGa!>-)(a E'//============================================================================= // GrenadeBomb. //============================================================================= class GrenadeBomb expands Projectile; var bool bCanHitOwner, bHitWater; simulated function PostBeginPlay() { local vector X,Y,Z; local rotator RandRot; Super.PostBeginPlay(); if ( Level.NetMode != NM_DedicatedServer ) PlayAnim('WingIn'); SetTimer(5.2+FRand()*0.5,false); //Grenade begins unarmed /* if ( Role == ROLE_Authority ) { GetAxes(Instigator.ViewRotation,X,Y,Z); Velocity = X * (Instigator.Velocity Dot X)*0.4 + Vector(Rotation) * (Speed + FRand() * 100); Velocity.z += 210; MaxSpeed = 1000; RandSpin(50000); bCanHitOwner = False; if (Instigator.HeadRegion.Zone.bWaterZone) { bHitWater = True; Velocity=0.6*Velocity; } } */ } simulated function ZoneChange( Zoneinfo NewZone ) { local waterring w; if (!NewZone.bWaterZone || bHitWater) Return; bHitWater = True; w = Spawn(class'WaterRing',,,,rot(16384,0,0)); w.DrawScale = 0.2; w.RemoteRole = ROLE_None; Velocity=0.6*Velocity; } simulated function Timer() { Explosion(Location+Vect(0,0,1)*16); } simulated function Landed( vector HitNormal ) { HitWall( HitNormal, None ); } simulated function ProcessTouch( actor Other, vector HitLocation ) { if ( (Other!=instigator) || bCanHitOwner ) Explosion(HitLocation); } simulated function HitWall( vector HitNormal, actor Wall ) { bCanHitOwner = True; Velocity = 0.75*(( Velocity dot HitNormal ) * HitNormal * (-2.0) + Velocity); // Reflect off Wall w/damping RandSpin(100000); speed = VSize(Velocity); if ( Level.NetMode != NM_DedicatedServer ) PlaySound(ImpactSound, SLOT_Misc, 1.5 ); if ( Velocity.Z > 400 ) Velocity.Z = 0.5 * (400 + Velocity.Z); else if ( speed < 20 ) { bBounce = False; SetPhysics(PHYS_None); } } /////////////////////////////////////////////////////// function BlowUp(vector HitLocation) { HurtRadius(damage, 200, MyDamageType, MomentumTransfer, HitLocation); MakeNoise(1.0); } simulated function Explosion(vector HitLocation) { local UT_SpriteBallExplosion s; BlowUp(HitLocation); if ( Level.NetMode != NM_DedicatedServer ) { spawn(class'Botpack.BlastMark',,,,rot(16384,0,0)); s = spawn(class'UT_SpriteBallExplosion',,,HitLocation); s.RemoteRole = ROLE_None; } Destroy(); } {u Z;%::$a!paff@?( vwxd2! #??, TsEWk-(-(-(Ca!a!?a$. $` -( YMa, VBa!a%!a&>Ta!?L= D'< 3T?//============================================================================= // GibBall. //============================================================================= class GibBall expands Projectile; var bool bCanHitOwner, bHitWater; var float Count, SmokeRate; var GibFight GibFightMut; simulated function PostBeginPlay() { local vector X,Y,Z; local rotator RandRot; Super.PostBeginPlay(); if ( Role == ROLE_Authority ) { GetAxes(Instigator.ViewRotation,X,Y,Z); Velocity = X * (Instigator.Velocity Dot X)*0.4 + Vector(Rotation) * (Speed + FRand() * 100); Velocity.z += 210; MaxSpeed = 1000; RandSpin(50000); bCanHitOwner = False; if (Instigator.HeadRegion.Zone.bWaterZone) { bHitWater = True; Disable('Tick'); Velocity=0.6*Velocity; } } else; } simulated function ZoneChange( Zoneinfo NewZone ) { local waterring w; if (!NewZone.bWaterZone || bHitWater) Return; bHitWater = True; w = Spawn(class'WaterRing',,,,rot(16384,0,0)); w.DrawScale = 0.2; w.RemoteRole = ROLE_None; Velocity=0.8*Velocity; } simulated function Tick(float DeltaTime) { local UT_BloodBurst U; if (FRand() >= 0.50) LightHue++; else LightHue--; if (FRand() >= 0.50) LightSaturation++; else LightSaturation--; if (FRand() >= 0.20){ spawn(class'GibFight.FlyingGib',,,Location + FRand() * CollisionRadius*vect(1.5,1.5,0) + CollisionHeight * FRand() * vect(0,0,1.5)); U = spawn(class'UT_BloodBurst',,,Location); U.RemoteRole = Role_None; } else if (FRand() >= 0.40){ spawn(class'GibFight.FlyingArm',,,Location + FRand() * CollisionRadius*vect(1.5,1.5,0) + CollisionHeight * FRand() * vect(0,0,1.5)); U = spawn(class'UT_BloodBurst',,,Location); U.RemoteRole = Role_None; } else if (FRand() >= 0.60){ spawn(class'GibFight.FlyingLeg',,,Location + FRand() * CollisionRadius*vect(1.5,1.5,0) + CollisionHeight * FRand() * vect(0,0,1.5)); U = spawn(class'UT_BloodBurst',,,Location); U.RemoteRole = Role_None; } else if (FRand() >= 0.80){ spawn(class'GibFight.FlyingHead',,,Location + FRand() * CollisionRadius*vect(1.5,1.5,0) + CollisionHeight * FRand() * vect(0,0,1.5)); U = spawn(class'UT_BloodBurst',,,Location); U.RemoteRole = Role_None; } } simulated function Landed( vector HitNormal ) { HitWall( HitNormal, None ); } simulated function Bump( actor Other ) { Other.TakeDamage(damage, instigator,Location, (MomentumTransfer * Normal(Velocity)), 'crushed' ); } singular function TakeDamage( int NDamage, Pawn instigatedBy, Vector hitlocation, vector momentum, name damageType ) { if (NDamage >= 40) Explosion(Location+Vect(0,0,1)*16); } simulated function HitWall( vector HitNormal, actor Wall ) { bCanHitOwner = True; Velocity = 1.05*(( Velocity dot HitNormal ) * HitNormal * (-2.0) + Velocity); // Reflect off Wall w/damping RandSpin(100000); speed = VSize(Velocity); if ( Level.NetMode != NM_DedicatedServer ) PlaySound(Sound'AmbAncient.sblockD1', SLOT_Misc, 1.5 ); if ( Velocity.Z > 400 ) Velocity.Z = 0.5 * (400 + Velocity.Z); else if ( speed < 30 ) { Explosion(Location+Vect(0,0,1)*16); } } /////////////////////////////////////////////////////// function BlowUp(vector HitLocation) { SpawnChunks(1); MakeNoise(1.0); } function SpawnChunks(int num) { local int NumChunks,i; local BigRock TempRock; local float scale; NumChunks = 1+Rand(num); scale = 12 * sqrt(0.52/NumChunks); speed = VSize(Velocity); TempRock = Spawn(class'Boulder1'); if (TempRock != None ) TempRock.SpawnChunks(1); } simulated function Explosion(vector HitLocation) { local UT_SpriteBallExplosion s; BlowUp(HitLocation); if ( Level.NetMode != NM_DedicatedServer ) { spawn(class'Botpack.BlastMark',,,,rot(16384,0,0)); s = spawn(class'UT_SpriteBallExplosion',,,HitLocation); s.RemoteRole = ROLE_None; } GibFightMut.CurrentStoneBallAmount--; Destroy(); } DGAc -' HyK-a!333??L= lDQ#!wa!>> A \a ף=' \CF=a![>>L= $ff@ NOPj[T"x 5&b? ` -( \R{ -' ZEWk-(-(-(Ca!a!?a$. }DQ#!wa!>> @@@nOyO`@OuOuOOOeOxO[ODOgN6uRWKOu@~OrOWO@WlOOOXOrOsOQOjO\}}*OEOCO@u|OQupQ&Otp7@SuVO%O[OZObOwOO tqOwt_OtWMpMO@augx O}uOatmpiWGOGO\tHOHOhxLWJx`twu|OsO^OMOMOPNOIu2OZGOPOfC4tmxZxCIxxxOZOQObxtktixNUuSxxbxWCCHtdx OUxMOBxCxKxt^x?x;x:xxOKxxDxxEx/OIO]uYtQO}uRtLxQNJxxuudx_ptQW@st]On@x`xeOGufO_PXntlxWuOdtP@DW}uOxNxX@YO1x`o@euTCFx|m@cOYttNOSxNxxO\xWxNxYO~tax<]OEtnOKOLOx{paO]xHx~@[\x uGOcOTOwt0pspAZOx\tqxlROIWvtkulBxZXPT[PT`tYxxuSx|ixtJuMRxUpCxx"pzp{xPCAtjx~Opx/ThOxOPOTOcOX@V@[Zx[zWxGu.EywF~VK<$bXd zEFT ST_FlAyX FORS_alRzeGvHTc\Hi{$gvh$c]W@VP`]EjVxVERy_VlAy FGdUc bcn V{iHw$}UVRf _gkjxVEySk `ZlKzhHCUibgoO|R I^qUS bPqn^r{UHfVzcIqODMIZVh^{ uy AOMe[ vizvODo$@RORn$f`m FvRD_Vmj$Y{OTl bvnD{oHDVP{cvp I}KqKvX"zem$Fss$|ybuP^BrOP\Ijh xPDPRV`PrnC{CHPp UCaCnI{nICWIdrrA RKRYPgRu nCKpQf^pkq xnDCRD_nlCzrGPT"bbfoIUK^c_pCkLCZjgntIBrPB]b krwl$lDi$opf$B_g$ral$KS#Z^!nkZx PEJ S R_Fim v VAbJ qJ }"WIAVNetpsFcFpo}$RJIW^d J qA}NLRYPfBitB]Nj T x_DoQ^s ^njJ wWCrPE^jikJ TF` rm#{Z^ PlJnzKhZvoD_Qo^AkNzAHnWx$id"| M BYFgFtNAP On[RiPw^EoRn_NlZzrHRVUcRr| JK/|UK/QQ8P";HQ5C_&xK_&^P5fD^Q(jKAR^QSP/}d iaiiJ jsEj]|GP CPUB^ aWmHx j@lj:SVP_&i^xO^ \GPAc:Sdow}$jf gP:Sw^/UJP r_m Q:S~lQ:S}rPGmB`$Jo^%y jWKCAL,D gpOfW/q}u,nGZyalZK rF/LxK@DlDPH>p^lnP@ZK @Z^_&ZK5f@KH>f"FD4dDD4hhD4jPD4jzed^xOrID4cA]D4cd^D4z2GD4O4AD4M4PD4AL]B^D4M4kD4x:xxFpN`vD4O4V Uae ICF NqI D4W~z EiQ M^z ;$X xR | [RMH B!U B"v BX }A v BB A ` B l @L L A i u A S "_ "A  c @A C ,!O ^p I} PK rY Vf Kt 4!B 4c A A *@M !M "n P A n z A X  d @D D A a m A K "W "y  [ ?${ R _ j4Z2k AEeR?$`R DC@PBPP")]RFK@SC@S`#S?$vR Z;$fKJR XEjdBNR\Pjv xC@DTDR Q4]A {w4nG~5ukjf4K