[Setup] Product=inf_dm_map_pack1a Version=100 Archive=inf_dm_map_pack1a.umod SrcPath=. MasterPath=.. Group=SetupGroup Group=SystemGroup Group=TexturesGroup Group=MapsGroup Group=umodIncludeFilesGroup [SetupGroup] Copy=(Src=System\Manifest.ini,Master=System\Manifest.ini,Size=1178,Flags=3) Copy=(Src=System\Manifest.int,Master=System\Manifest.int,Size=292,Flags=3) [SystemGroup] File=(Src=System\RealWorld.u,Size=11773) File=(Src=System\NBDeco.u,Size=8425) File=(Src=System\NBSpecials.u,Size=288711) File=(Src=System\NBTeamGame.int,Size=211) File=(Src=System\NBTeamGame.u,Size=4944) File=(Src=System\NBCRM.u,Size=55253) [TexturesGroup] File=(Src=Textures\TSigns.utx,Size=182949) File=(Src=Textures\MWorld.utx,Size=826189) File=(Src=Textures\NBShip.utx,Size=912253) File=(Src=Textures\NBSpecialT.utx,Size=252753) File=(Src=Textures\NWorld.utx,Size=1772090) File=(Src=Textures\rwTP_A.utx,Size=89016) File=(Src=Textures\DieH.utx,Size=893029) [MapsGroup] File=(Src=Maps\DM-Terrain.unr,Size=2884333) File=(Src=Maps\DM-BlackWings.unr,Size=962572) File=(Src=Maps\DM-Pstation.txt,Size=1289) File=(Src=Maps\DM-Pstation.unr,Size=1294738) File=(Src=Maps\DM-RealWorldGoneBad.txt,Size=3636) File=(Src=Maps\DM-RealWorldGoneBad.unr,Size=1383700) File=(Src=Maps\DM-SniperAlley.txt,Size=1473) File=(Src=Maps\DM-SniperAlley.unr,Size=1135173) File=(Src=Maps\DM-Terrain.txt,Size=4927) File=(Src=Maps\DM-BlackWings.txt,Size=2895) [umodIncludeFilesGroup] File=(Src=readme.txt,Size=1931) [Setup] LocalProduct=inf_dm_map_pack1a ReadMe=readme.txt SetupWindowTitle=inf_dm_map_pack1a AutoplayWindowTitle=inf_dm_map_pack1a Options ProductURL=www.planetunreal.com/realmaps VersionURL=www.planetunreal.com/realmaps Developer=Real Maps DeveloperURL=www.planetunreal.com/realmaps *D@*v+V(1Q;*None SpriteAnim RealWorld DrawScaleTick RemoteRoleCoreEnginePostBeginPlay explodedSystemSkinBlowUp LightRadius LightTypeExplode MakeSoundArmedbCorona UnrealShare LightEffect LifeSpan ZoneChangeTimer BeginStateDamageTexturerwSpriteBallExplosion rwRocketrwSpriteBallChild AmbientSoundMesh NumFramesDeathMatchGamebUnlit EffectSound1ExplosionDecal ImpactSound SpawnSoundMomentumTransfer MyDamageType LightHue bHighDetailspeed AmbientGlow SoundVolume DrawType MaxSpeedPause ProcessTouchFlying SoundRadiusLightBrightness AnimSequenceStyle RocketDeathStillLightSaturationbBounceState TextBufferPackageVectorEffectsFireS ScriptTextClass ProjectileObject FunctionbHighDetailModeW DeltaTimeOther HitLocationStructNewZone HitNormal Acceleration VelocityGameRegion Instigator HurtRadiusBStart bDropDetail FireTextureActorRStructProperty RotationRoleLodMesh LevelInfo GameInfo Location ZoneInfo bWaterZoneLevelObjectProperty PointRegionFloatProperty BoolPropertyZoneAnimSpriteEffectSpriteSmokePuff IntPropertyIgnite ExploSoundRingExplosion EightballRingExplosion3Rocket WaterRingGeneral ExplosionPal GrenadeFloor bHitWater SmokeRateRocketM Effect16 fireeffect16Brufly1Seeking MagnitudeVel InitialDirbRing bWaterStartNumExtraRocketsExplo1 ExpCount MasterChunkChunk4Chunk2Chunk1Chunk3BotpackCount BlastMarkUT_Explosions exp1_a00 Exp4_a00 Exp5_a00 Exp6_a00 Exp7_a00 MissCount BytePropertyUnrealISoundNetMode)xbhWRRRRRR  "0$L=#$333?.6 $? 4)9G  S"  *~Oxb *$L?  ::$A-,::$--aL= #=($ %&"ԙ_ xbtERkWxWx  R!t"ڔ!t"څR +$D/$ E$B'"8(7&%$$@5 $ #<,`"3 - :\B//============================================================================= // rwRocket. //============================================================================= class rwrocket extends Projectile; #exec MESH IMPORT MESH=RocketM ANIVFILE=MODELS\rocket_a.3D DATAFILE=MODELS\rocket_d.3D LODSTYLE=2 LODFRAME=3 #exec MESH LODPARAMS MESH=RocketM STRENGTH=0.2 #exec MESH ORIGIN MESH=RocketM X=0 Y=-240 Z=0 YAW=-64 #exec MESH SEQUENCE MESH=RocketM SEQ=All STARTFRAME=0 NUMFRAMES=6 #exec MESH SEQUENCE MESH=RocketM SEQ=Still STARTFRAME=0 NUMFRAMES=1 #exec MESH SEQUENCE MESH=RocketM SEQ=WingIn STARTFRAME=1 NUMFRAMES=1 #exec MESH SEQUENCE MESH=RocketM SEQ=Armed STARTFRAME=1 NUMFRAMES=3 #exec MESH SEQUENCE MESH=RocketM SEQ=SpinCCW STARTFRAME=4 NUMFRAMES=1 #exec MESH SEQUENCE MESH=RocketM SEQ=SpinCW STARTFRAME=5 NUMFRAMES=1 #exec TEXTURE IMPORT NAME=JRocket1 FILE=MODELS\rocket.PCX #exec OBJ LOAD FILE=Textures\fireeffect16.utx PACKAGE=UnrealShare.Effect16 #exec MESHMAP SCALE MESHMAP=rocketM X=0.5 Y=0.5 Z=1.0 YAW=128 #exec MESHMAP SETTEXTURE MESHMAP=rocketM NUM=1 TEXTURE=Jrocket1 TLOD=50 #exec AUDIO IMPORT FILE="Sounds\EightBal\Ignite.WAV" NAME="Ignite" GROUP="Eightball" #exec AUDIO IMPORT FILE="Sounds\EightBal\grenflor.wav" NAME="GrenadeFloor" GROUP="Eightball" #exec AUDIO IMPORT FILE="Sounds\General\brufly1.WAV" NAME="Brufly1" GROUP="General" var Actor Seeking; var float MagnitudeVel,Count,SmokeRate; var vector InitialDir; var bool bRing,bHitWater,bWaterStart; var int NumExtraRockets; simulated function PostBeginPlay() { Count = -0.1; if (Level.bHighDetailMode) SmokeRate = 0.015; else SmokeRate = 0.05; } simulated function Tick(float DeltaTime) { local SpriteSmokePuff b; if (bHitWater) { Disable('Tick'); Return; } Count += DeltaTime; // if ( (Count>(SmokeRate+FRand()*(SmokeRate+NumExtraRockets*0.035))) && (Level.NetMode!=NM_DedicatedServer) ) // { // b = Spawn(class'SpriteSmokePuff'); // b.RemoteRole = ROLE_None; // Count=0.0; // } } auto state Flying { simulated function ZoneChange( Zoneinfo NewZone ) { local waterring w; if (!NewZone.bWaterZone || bHitWater) Return; bHitWater = True; Disable('Tick'); if ( Level.NetMode != NM_DedicatedServer ) { w = Spawn(class'WaterRing',,,,rot(16384,0,0)); w.DrawScale = 0.2; w.RemoteRole = ROLE_None; PlayAnim( 'Still', 3.0 ); } Velocity=0.6*Velocity; } simulated function ProcessTouch (Actor Other, Vector HitLocation) { if ((Other != instigator) && (Rocket(Other) == none)) Explode(HitLocation,Normal(HitLocation-Other.Location)); } function BlowUp(vector HitLocation, RingExplosion r) { if ( Level.Game.IsA('DeathMatchGame') ) //bigger damage radius HurtRadius(0.9 * Damage,240.0, 'exploded', MomentumTransfer, HitLocation ); else HurtRadius(Damage,200.0, 'exploded', MomentumTransfer, HitLocation ); MakeNoise(1.0); if ( r != None ) r.PlaySound(r.ExploSound,,6); } simulated function Explode(vector HitLocation, vector HitNormal) { local rwSpriteBallExplosion s; local RingExplosion3 r; local vector start; s = spawn(class'rwSpriteBallExplosion',,,HitLocation + HitNormal*16); s.RemoteRole = ROLE_None; HurtRadius(damage, 150, 'exploded', MomentumTransfer, HitLocation); start = HitLocation + 10 * HitNormal; // Spawn( class'FlameExplosion',,,Start); Spawn(class 'MasterChunk',,,Start); Spawn( class 'Chunk2',, '', Start); Spawn( class 'Chunk3',, '', Start); Spawn( class 'Chunk4',, '', Start); Spawn( class 'Chunk1',, '', Start); Spawn( class 'Chunk2',, '', Start); if (bRing) { r = Spawn(class'RingExplosion3',,,HitLocation + HitNormal*16,rotator(HitNormal)); r.RemoteRole = ROLE_None; } BlowUp(HitLocation, r); Destroy(); } function BeginState() { initialDir = vector(Rotation); if ( Role == ROLE_Authority ) Velocity = speed*initialDir; Acceleration = initialDir*50; PlaySound(SpawnSound, SLOT_None, 2.3); PlayAnim( 'Armed', 0.2 ); if (Region.Zone.bWaterZone) { bHitWater = True; Velocity=0.6*Velocity; } } } ! X Ga/!!fff?pC! ?gHC! ?b?w * a  @ h -a  ?,$C! ??, a  a !a  !a  !a  !a !-a ?,P$ a W//============================================================================= // rwSpriteBallExplosion. //============================================================================= class rwSpriteBallExplosion extends AnimSpriteEffect; #exec TEXTURE IMPORT NAME=ExplosionPal FILE=..\unrealshare\textures\exppal.pcx GROUP=Effects #exec OBJ LOAD FILE=textures\UT_Explosion.utx PACKAGE=Botpack.UT_Explosions var int ExpCount, MissCount; simulated function PostBeginPlay() { if ( Level.NetMode != NM_Client ) MakeSound(); if ( !Level.bDropDetail ) Texture = SpriteAnim[Rand(3)]; if ( (Level.NetMode!=NM_DedicatedServer) && Level.bHighDetailMode && !Level.bDropDetail ) SetTimer(0.05+FRand()*0.04,False); else LightRadius = 6; Super.PostBeginPlay(); } simulated Function Timer() { if ( Level.bDropDetail ) return; if ( FRand() < 0.4 + (MissCount - 1.5 * ExpCount) * 0.25 ) { ExpCount++; Spawn(class'rwSpriteBallChild',Self, '', Location + (20 + 20 * FRand()) * (VRand() + Vect(0,0,0.5)) ); } else MissCount++; if ( (ExpCount < 3) && (LifeSpan > 0.45) ) SetTimer(0.05+FRand()*0.05,False); } function MakeSound() { PlaySound(EffectSound1,,12.0,,2200); } ', -v!   J//============================================================================= // rwSpriteBallChild. //============================================================================= class rwSpriteBallChild extends rwSpriteBallExplosion; simulated function PostBeginPlay() { Texture = SpriteAnim[int(FRand()*5)]; // DrawScale = FRand()*0.5+0.9; DrawScale = FRand()*0.25+0.45; } # 1R ECw r. *    B!-- -'v!::$a "@L>$a!8@@? l9,::$?,2a$33@a!L>6--'?  $2#O8 ̽+- u<6 L= ;- |>??? > a !ծ?,?,#? , ff>aL=L=( (*a @A  E ,D?,>ff> ==CY=C_CDCFCEed=JCe=MC[=UL>Cb[PCoCjCsCgC<CCTWChClgCqhWFTl'FTghc[ae=tRNQhG=peCG[RC?e&eSeiFe#T F1T]eQ[O[\LfenFguCkVCCrVvVm^y=z@X{V|FCHFCICFCEC`CLC;Fg+=?POV u#K B$WO$w f'N r'#H 'Z L( Y(Z f(D s(!J (K L)x X)K d)A q)S ~)!K J*#M W*zd*U^,I s.@ .} K/eX/B4gB}3& Bdv&LfxB4br{-TB4UAUVB d&1DpA t&U@&vU~ K2)WB@oB,q<]*D~@,eC2#!63,~None NBDecorationTickBeginAnimateMyFrag DropStuffTrigger DestroyedWaitForRespawnEngineCoredroppedbCollideWorld Fragsize DrawType EndPushSoundDropDecoration PushSound bPushableEffectWhenDestroyedbStaticCollisionRadiusbCollideActorsCollisionHeightSkinSystemDamageHealthReSpawnEffectNBDecoMesh CalcVelocity FragClass TimeToSleep FragChunks bBlockActorsbBlockPlayers TakeDamagePickup DamageRadius PreBeginPlayAiLodMeshZTextureES LevelInfoPackageClassProperty UnrealShareObject ZoneInfo Inventory DecorationStateLevelActor FragmentPawnSound NameProperty RemoteRoleVectorEventClass Momentum HitLocation DeltaTimeStructPropertyRegionBase InstigatorZoneOwner bDestructive TextBuffer bStartup instigatedBybHidden FunctionbOnlyTriggerable bBobbing DamageType contents content2 content3Struct tempClass FragTypeDSize NumFragsToucher VelocitycarriedDecorationObjectPropertyEffects DrawScaleReSpawnSpriteBallExplosionWoodFragmentsGeneral ObjectPushEndpushNDamage steelbarrelMJsteelbarrel1SkinsoHealth LocationFloatProperty BoolProperty IntProperty ByteProperty PointRegion bProjTarget HurtRadiusbCAbPTbBAbBPbCWtTimeReSp  ,  * ($~m  !# E T-'-(-(a(((-(-(u! D   3w*a-(Dv!---- a--- -- --q!  %&o) % +w*b?-(g%o$6zDo< &F - O!/a0 N .10k6-a w*a?%!%Gaw* ?333?} v!q! !a +{T?w.*r..w*-w* >w* >a$o$-'w.*. q!'! R!/a0 Q *10 +"B'Ϯ2jPzx2?d06H18zx2zx2zx2/zx2 "#"$?"$pA!$B($CS$`A$A $%)" )JU?--- ---- ---  M8//============================================================================= // NBDecoration. // // script by N.Bogenrieder (Beppo) // (C) 1999 //============================================================================= class NBDecoration expands Decoration; var() int Health; var() int FragChunks; var() Float Fragsize; var() float TimeToSleep; var() Class FragClass; var() float Damage, DamageRadius; var() Class ReSpawnEffect; var float tTime, oHealth; var bool bBA, bBP, bCA, bCW, bPT; var effects ReSp; function PreBeginPlay() { Super.PreBeginPlay(); oHealth = Health; bBA = bBlockActors; bBP = bBlockPlayers; bCA = bCollideActors; bCW = bCollideWorld; bPT = bProjTarget; } function Destroyed() { } Auto State Animate { function DropStuff() { local actor dropped, A; local class tempClass; if( (Pawn(Base) != None) && (Pawn(Base).CarriedDecoration == self) ) Pawn(Base).DropDecoration(); if( (Contents!=None) && !Level.bStartup ) { tempClass = Contents; if (Content2!=None && FRand()<0.3) tempClass = Content2; if (Content3!=None && FRand()<0.3) tempClass = Content3; dropped = Spawn(tempClass); dropped.RemoteRole = ROLE_DumbProxy; dropped.SetPhysics(PHYS_Falling); dropped.bCollideWorld = true; if ( inventory(dropped) != None ) inventory(dropped).GotoState('Pickup', 'Dropped'); } if( Event != '' ) foreach AllActors( class 'Actor', A, Event ) A.Trigger( Self, None ); } function MyFrag(class FragType, vector Momentum, float DSize, int NumFrags) { local int i; local actor A, Toucher; local Fragment s; local Actor e; if ( bOnlyTriggerable ) return; if (Event!='') foreach AllActors( class 'Actor', A, Event ) A.Trigger( Toucher, pawn(Toucher) ); if ( Region.Zone.bDestructive ) { Destroy(); return; } if ( EffectWhenDestroyed != None) e = spawn(EffectWhenDestroyed); if (Damage > 0) HurtRadius(Damage, DamageRadius, 'destroyed', 0, Location); for (i=0 ; i 0.0) { Disable( 'Tick' ); tTime = 0.0; GotoState ( 'WaitForRespawn', 'Begin' ); } else { Destroy(); } } function TakeDamage( int NDamage, Pawn instigatedBy, Vector hitlocation, Vector momentum, name damageType) { Instigator = InstigatedBy; if (Health<0) Return; if ( Instigator != None ) MakeNoise(1.0); bBobbing = false; Health -= NDamage; if (Health <0) MyFrag(FragClass,Momentum,FragSize,FragChunks); else { SetPhysics(PHYS_Falling); Momentum.Z = 1000; Velocity=Momentum*0.016; } } Begin: } state WaitForRespawn { function Tick (float DeltaTime) { if ( tTime >= TimeToSleep ) { tTime = 0.0; if (ReSpawnEffect != None) ReSp = spawn(ReSpawnEffect); bHidden = False; Health = oHealth; disable( 'Tick' ); bBlockActors = bBA; bBlockPlayers = bBP; SetCollision(bCA, bBA, bBP); bCollideWorld = bCW; bProjTarget = bPT; GotoState ( 'Animate' ); } else { tTime += DeltaTime; } } Begin: bHidden = True; bBlockActors = False; bBlockPlayers = False; SetCollision(False, False, False); bCollideWorld = False; bProjTarget = False; tTime = 0.0; enable ( 'Tick' ); }  2 C; 2 C8 Ca Cp C= 24 C< CR C5 Cr Cq CC ?B q C3 YA C7 CG qu q% q$ a aI C9 C6 qQ C1 aJ 2g R) 3 3X Cb 3W 3V GH Rv q pc s@ Go G_ R& a` R qO qT qS CN R aL aK a: p- qM C? Ce 2m Yt >h >i Cf Cd ,k .l&  R'| _' k&Zw%0 E%+ R$D ^'y k'z w&* C%* P'" ]'{ i'w u' A 'x M 'n Y 'e %\ s %^  $P L!%/ Y!%[f!' t!'# @"'} L"'( Y"$j e"%D q"%] ~"'!J##F X#'6d#' aZ$"@{%!&v{'!Nq)!x-$hw1'_6')Gz6$E A84X8N8$U fp*D@P͝3NoneTickTriggerBeginEngine NBSpecialsCoreSystem UnTriggerSpecialCannonControlWeaponPostBeginPlayTouchControlRotatingMoverPickupTimer OutTriggerCannonBumpSpecialInstantHitClientMessageShoot PlayerPawnSpecialControlCannon AirStrikeTexture InvSpawnerTurnOFF TraceFireSetViewOfPlayerCollisionRadiusPlayerControl SpecialMineControlEventsResetViewOfPlayerMesh TakeDamageControlInstantHitCollisionHeight DrawType DeActivateThrowIt BeginStateElevatorTriggerGradual ShakeView TeamGameActivateCannonTurnON InitialStateDispatcherUnDispatcher BoomBoomElevatorButton StopPlayerCloseMoverEncroachTypeBringUp ViewSpotProcessTraceHitDoClose AlarmSpot ReActivateTwoStateElevatorTriggerResetVarsAndEnd MoveKeyframePickupMessageDoOpenElevatorBotInfoWaiting InitSpecials EnterZone AmbientGlow RespawnTime UnrealShare PickUpMoverDispatcherPlus ExitZoneFinishedOpeningRotatorRotatingCameraStartSpecialEventRotatingMover2FindInventoryTypebCollideWorld TweenDownActiveResetMultipliedYawProjectileFireEndSpecialEvent bDirectionalbCollideActors UnDispatcherTriggerEndControl DoNothing RadarTextureSpecialProjectileCheckcControlerPawnFiresBI2ControlWeaponStartActivateMessage ByeByeAnimNBDefaultInventorySettingsAltFire UnDispatchControlWeaponEndAirStrikePointKillItOpen ChangeFrameHealthbHiddenSkinFinishedClosingHandlePickupQueryPickupViewMesh DropFromExplode Activateshot DownWeapon SetRespawnEndZoom Dispatch PostRender EndEvent BeginPlay ItemName TurnOffInResetTriggeredMoversbBlockPlayers FireEffect bBlockActors ClearKeys WarnTargetInstantHitAccuracyCarcass BeginEvent ChecktActor ProjectileOtherHitEffect FireRate bProjTarget RadarHUD WarnTargetsCheckMaxTargetsFlyingHitWall NextItemOpenCloseDoorReactivateWait ActivatedTriggerIfDestroyed ResetKeysMaxDesireabilityInstantHitDamagebStatic BigRocketAngle2WallHitEffectTurnOnElevIntern DrawScaleDeleteInventory RotationRatesBIAngle0MassAirStrikeSpecial SleepNow ActTimer EndMovementbDynamicLightMover MoveTime LookAnim bActivatableTriggerUnTriggerbDisplayableInv DoDeactivateIcon PickupSoundBots FireSound bCanActivatebCanHaveMultipleCopiesCringe ClientShake FinishNotifyCheckTouchList LifeSpan bIsItemGoalCheckVisibility ProcessTouchCamera PreBeginPlayInterpolateEndDiedIsValid HandleDoorPutDownAmmo ZoneChangeAddAmmo IsRelevant TrackingRateTurnOffAllOtherEventsActivateSound MinMaxRoll bAmbientGlowMineBox AltFireSoundAltReloadSoundReactivateAirStrike ControlGroupBotNali ScriptedPawnBruteSkaarjWarriorDropHumanTT_Pawn HumanBotWarLord TT_ClassHitIt DrawRadarMoverGlideTypeStillTouchingCheckPawnFireModeKrallTitanEndOfAirStrike skinnedFrag GetTargetSpecialEventsAltFire_ProjectileClassDamage MinMaxPitch CallBotsResetMultipliedPlayerRotation TT_Player Proj_DefaultTurnOffInIntern MinMaxYaw Proj_ClassControlGroupEndMinMaxCorrectionReActivateMessage StartControlTriggerStartControlDeActivateTagged IHM_AltFireDrawRadarBlipsDrawRadarBackgroundEndIt ResetMovers TurnOffElevDoSpecialsWithHitOne TouchType IHM_FireNBDefaultWeaponInfo ResetHitOneStartItFire_ProjectileClass IsAMPActiveControlBowingDuck ReturnToShakeItFAngle2 Mercenary BumpTypeAngle4AltInstantHitAccuracyAngle1ControlSpecialFireGetInv sPaletteIHM_Fire_and_AltFire TurnOnElevInv20 AltFireRateZoomItMoveItCheckTriggers ExplodeSoundPlayThrowingSoundFAngle3 SampleTimeFAngle4StartMovementTT_Any SkaarjPlayerSkaarjPlayerBotFAngle1 naliplayerSkaarjTrooperFAngle0Angle3DefaultWeaponRadius bOwnerNoSee bWarnTarget DelayTime ToggleZoom M_SelectedbInitiallyActiveClientInstantFlash OtherTimeNumKeys shakemag shaketime shakevert M_Activated bCanThrowSuggestDefenseStyleSuggestAttackStyle UseCharge MaxSpeedAltRefireRate AdjustTossbUseTriggeredLineOfSightTo RefireRatebSlaveEncroachingOnspeed bRotateFireRotateFireAltFireDeActivateMessageAutoActivateMessagebDontPlayActivateAnimAltRotateRatebControlPitchInventoryItem ElevatorInfoSpecialBowyKnifec_ByeByeTime_cPickupAmmoCountBotInventorySpotbActivateIfDamagedAA_ClassProximitybOwnsCrosshairPlayAlarmSoundd_BombingTime_d AlarmMessageZM_Nonex_dont_use_it_xDamagedByTargetTypeElevatorMoverInsideButtons UTMoveTime c_ByeByeTime FloatingMineZM_Fire_AND_ProjectileAlarmingActorsAmountControlMovementbMoveUpTargetPawnClass bAutomaticZM_FireInventoryZone IsIgnoreTeam CameraFOVAmplifierCharge DestroyAfter KeyMoveTime ZM_Both_BTNsViewFOVReActivateTime b_LookTime_bNoWeaponNoFire bControlYawNOWeaponAtAll IsTarget bUseActorAA_PawnProximity BombingRatebElevatorMoverDeathMatchGameActivateIfDamagedMessageSleep b_LookTimeprayMaxAutoTargetse_EndAlarmTime BowyKnifea_AlarmTime_aBlowUp UnrealHUD StillLookLookingbUseSpawnEffect hairflipTGotoKeyframeProjectileType SetMoverInfo DetonatedAA_AnyProximity DisplayMenuminYaw MineAmountIgnite CHARGEUPFirePositionOffsetWaveLLookLZM_AltFire_AND_ProjectileLook SpecialArrow TMoveTime StopZoom ZM_AltFireMaleFemaleTriggerTeleporterEndEventAfterElevatorDoorsZM_Both_BTNs_NoFireControlRocketSeekingControlRocketd_BombingTimeIsDamageTarget ShldTestIsInstigatorOrTeamSizeRocketVelocity RotateYaw RotateRatebDeactivateOutOfSight AlarmSoundRotatingCamera2 ReloadSound InTriggers ActorEntered ActorLeaving AIRatingBotDesireability a_AlarmTimeAA_PlayerProximity TargetTypef_ReactivateTimeTriggerDesireabilitySpecialPickUpMinePlayEndAlarmSoundmaxYaw TIGrenade DarkMatchKingOfTheHill TSnif001User RateSelf AnimSequence DecorationSetRollbRotatingPickup InventoryLaughbNetTemporary SleepTime SoundVolume DeathMessagebFixedRotationDirPoint SoundRadiusHandleTriggerDoorDeactivateDistance CalcVelocityUnrealI NeckCrakTChestbAlwaysRelevantGameNetMode bBehindView ClosingSound jump1fem NewVelocityVictimsValueSkinsViewer bWaterZone PhysAlpha bAltFire instigatedByItemKeyPos bEnabledBSpotMJump2 InitialDir S_CorpseMoveDirectionMoveTimeInterval bMoveKey Fragment StartTraceEMtActCannonM JCannon1 CannonShot bNoInventoryCannonExplodecTargetHealthMinv2rndDamKrasht2perock FlakShellClosestDistance thisDistGuidedVelocityOldGuiderRotationGuidedRotation DeltaYaw DeltaPitchYawDiff PitchDiffbStasisPhysicsEliteKrallBoltElevatorMoverEffectsF CannonBolt DamageType SpecialEventNumExtraRocketsABDYXWbRing bHitWater MagnitudeVel SmokeRateRandRotsrocketKnifeM SKPJump1 NextKeyNum newMoveTimeAmpWeapon LevelInfo GameInfo ZoneInfo Teleporter Keypoint MoverTags TriggersHUDCannonActivatePlayerReplicationInfoInfoCanvasLevelMoverActorPaletteCountSoundBlackHealth2 RemoteRoleRoleTagEventClassPackageConst EightAltFire ShotsFiredbShoot ClosestPawn TextBufferObjectEnum FunctionStateColorVectorStructTransA3 StrPropertyStructPropertyClassProperty NamePropertyObjectPropertyFloatProperty BoolProperty IntProperty BytePropertyOwnerZoneTarget InstigatorRegion TimePassed HeadRegion RealRotation ViewTarget bDelayingmyHUDBaseRotBasePosKeyRotMoveAmbientSound ClosedSound OpenedSound OpeningSound ReturnGroupnumTriggerEvents SavedTrigger DrawIconbTriggerOnceOnlyPrev PrevKeyNumKeyNumInv shaketimer maxshake verttimerM S_CameraSetPosNewRotOther DeltaTimeEventInstigator HitNormalNewZone EndTracevertmag Velocity HitLocationPshake Momentum bZoomingLocStart bShowMenu bPressedJump maxPitchLocDiffTeam DesiredFOV IntelligenceCalcDrawOffset aimerror DrawColorSoundDampeningInterpolateTo Crosshair6NDamageLodMeshPickupsStyle Visibility bOpening RealPositionDotRocket BlackSmoke WaterRingSpriteBallExplosionReSpawn Acceleration S_DispatcherLightWallHitEffect Fragment1PitchArrowRingExplosionZArc Amplifier OutEvents ReturnValueLoading OutDelaysS_SpecialEventSpriteSmokePuffDesiredRotationSRbRotateToDesiredSkaarjbBounce AltTeamColor S_Inventory Rotationt NewKeyNumBIbUpkIcons EightballAutoMagPendingWeapon SelectedItem ViewRotationClipYClipXbFeigningDeath TeamNameWall SpawnSoundMomentumTransfer EPhysics AmmoAmountS_AmmobFirebIsPawnYaw HurtRadius NumCopies Accuracy ProjClass AdjustedAim Misc2Sound Misc1Sound PointRegion bIsPlayerProjectileClass FireOffsetbChangeWeapon bWeaponUp bInstantHit S_WeaponStartLocation bUseAltMode AmbientSound TouchingbActive LocationCharge OldKeyNum AnimFrameiRollRollMagbWaitAltFireRelease MultDamagezAxisCorrectionReactivateModeReActivateHealthbIgnoreDamageInstigatorbDontTrackInstigatorsIfIgnorebIgnoreDamageInstigatorTeam NBSpecialTbFloatingMinesMine IconMine IconKnife S_AirStrike ETouchType IgnoreTeamTTDeactivateTargetHealth ETargetTypeTargetTypeClassDamagedByTypeClassbIgnoreInstigatorEventIfDestroyedEProjectileTypebIgnoreInstigatorTeamInitiallyIgnoreTeamPDamage PMaxSpeedPMomentumTransferPSpeedDeactivateTagtTag ActMessage bAutoRun cAutoTarget cTempTargetbDeactivateNowoHealth TimeToCheckReactivateRotation oInstigator dInstigator DestroyedByTempInstigatorPProjoRot RotDiff_YawHitOneIsHitHitOneDuckModeDuckVaroDamage DamageModifytmpVectmpRot bDestroyable cControlercWeapon NoWeaponbSwitchWeaponFModepp GrenadeBox S_AirStrike0FMine IconGrenadepPawnfBoom bFoundTarget bFoundASPASP oLocation ReMessage TimeLeftxyzpryposnegTouchTypeClassLooping AmbModernsonar2alarm1tActor bControlRollbReversePitch bReverseRoll bReverseYaw revPitchrevRollrevYaw bControlFireminRoll minPitchmaxRoll bChkMinMaxbChkYaw bChkRoll bChkPitchtmpLoc bLetItMovebNoEncroachingEndControlEventbReturnToOriginalRotation ReturnTime bReactivate bReturnTobCanUseAmplifier bShakeViewEndControlUnTriggerEventUTGotoKeyframe UnOutTrigger UnOutDelays UnOutEventsbStopIfFeignDeathDefAmbientGlowDefbFixedRotationDirDefbAmbientGlowoInstbUseitbRotClockwiseoFOVTurnOnOffEventInvAmbientGlowInvbAmbientGlowInvbFixedRotationDir InvRotation InvPhysicsbRotateAltFireEAlarmingActorsAlarmingClassbSendUntriggerToAlltMoverHitPawnRelLocCenterYCenterXblipRadarYRadarXoHUDrHUD RadarDotMasked RocketRadarRocketRadarBlueRocketRadarGreRocketRadarYeloActorbSwitchToBehindViewbBlockViewYawMinMaxbWaitFireReleasebMisc1bMisc2 bCheckTeamoKeyRotoKeyPosEB oBaseRot oBasePosbUseKeyFramesCount2DoorDoorTagElevatorInfoTagEInfo OutTriggers ElevatorTagEMIBIgnorebUpDown bUseUpDownoMaxDesireabilityPawnHitEffect EZoomMode ZoomModebFireIH bAltFireIHEIHModeInstantHitModebtActIsPlayer UseInventoryoLoczAxisCorForBotInvSpotBISoKeyNumbDeleteALLInventoryAddInv DeleteInvbDeleteALLInventoryE DeleteInvEAddInvE ESpecialStartEventAfterStartControlEventStartControlUnTriggerEventoAnim LeftRight NewOffset bDoubleFire bCanHitInst tmpPitchtmpRolltmpYawLr 2do [Lzx2zx2zx2H18;aƒW}zx2zx2zx2l$Bp$L>j$?Bn"OS@]You trapped on a mine !s}Sp#F@$A&$ARDBNf$ A{}B:,YU[jjjjjjjjjjjjjM4 4 4 4 4 4 4 4 4 4 4 4 4 MXXXXXXXXXXXXXMbbbbbbbbbbbbbMrZbL$A{$?YX 3 @b@ㅆB%0zx2@ 0<@ 0<YYYYYYYYzx2zx2@7@7YYYYYYYYzx2zx2@B<@B<YYYYYYYYzx2zx2@2k@2kYYYYYYYYzx2zx2@@YYYYYYYYzx2zx2@ B>@ B>YYYYYYYYzx2zx2@Pi@PiیYYYYYYYYzx2zx2@;@;ÌYYYYYYYYzx2zx2@ a@ aYYYYYYYYzx2zx2@d@dیYYYYYYYYzx2zx2@!@!YYYYYYYYzx2zx2@#@#YYYYYYYYzx2zx2@aKl)@aKl)YYYYYYYYzx2zx2@wtI@wtIYYYYYYYYzx2zx2@uI@uIYYYYYYYYzx2zx2@ҿ@ҿYYYYYYYYzx2zx2@1@1ˌYYYYYYYYzx2zx2@O@OYYYYYYYYzx2zx2@@x@@xYYYYYYYYzx2zx2@%@%YYYYYYYYzx2zx2@-@-YYYYYYYYzx2zx2@M@MYYYYYYYYzx2{f6bPE03- mnT2b/HSZ$?'X$@&$@YS^VZt2 =uNzx2 xxxxxxo{Su$?D$>@$>N]%o was killed by %kOS@]You have no weapon G$o}S'Fn$&$YSfs^ @jMYB%0zx2@ֶֶֶֶֶֶ@ㅆB%0zx2@llllll@ㅆB%0zx2@JrJrJrJrJrJr@ㅆB%0zx2@h)hh)hh)hh)hh)hh)h@ㅆB%0zx2@@ㅆB%0zx2@h)hh)hh)hh)hh)hh)h@ㅆB%0zx2@``````@ㅆB%0zx2@_=x_=x_=x_=x_=x_=x@ㅆB%0zx2@ϷS ϷS ϷS ϷS ϷS ϷS @ㅆB%0zx2@ĦHvĦHvĦHvĦHvĦHvĦHv@ㅆB%0zx2@݂h݂h݂h݂h݂h݂h@ㅆB%0zx2@޾;޾;޾;޾;޾;޾;@ㅆB%0zx2@@ㅆB%0zx2@X`1X`1X`1X`1X`1X`1@ㅆB%0zx2@˛@˛@˛@˛@˛@˛@@ㅆB%0zx2@@ㅆB%0zx2@ʔʔʔʔʔʔ@ㅆB%0zx2@r"7r"7r"7r"7r"7r"7@ㅆB%0zx2@!!!!!!@ㅆB%0zx2@ZZZZZZ@ㅆB%0zx2@dddddd@ㅆB%0zx2@@ㅆB%0zx2@Xë Xë Xë Xë Xë Xë @ㅆB%0zx2@{cR{cR{cR{cR{cR{cR@ㅆB%0zx2@yWyWyWyWyWyW@ㅆB%0zx2@4G4G4G4G4G4G@ㅆB%0zx2@ZZZZZZ@ㅆB%0zx2@%i%i%i%i%i%i@ㅆB%0zx2@aaaaaa@ㅆB%0zx2@B1NB1NB1NB1NB1NB1N@ㅆB%0zx2@cccccc@ㅆB%0zx2@IngIngIngIngIngIng@ㅆB%0zx2@UM)UM)UM)UM)UM)UM)@ㅆB%0zx2@------@ㅆB%0zx2@3Dz83Dz83Dz83Dz83Dz83Dz8@ㅆB%0zx2@,Y,Y,Y,Y,Y,Y@U6l$@0+}Vj +chDm$CgQMx aoFTUC"  fFϩ+H18;a›H18;a›H18;a›H18;aH|$ B#Of$ Ac:Meknlbigd G LhoE*\ ^I } ::$ @2B `UB%0zx2 zx2 pE|.^ zx2 pE|.^ zx2zx2 W}uN= H18H18H18 zx2 zx2zx2zx2zx2zx2zx2zx2zx2zx2zx2zx2ʊw[Lʊwʊwzx2zx2zx2zx2zx2[Lzx2zx2zx2zx2 `U `U `U `U `U `U `UuNuN==uN==uNuNzx2 zx2H18NuuQGkZ$L?M$L?RqU$Bd]You control the ...m$ Bw$Cx$=y$@o$@C_[$ALG$=R$L?6vl$ ףaoKS'y bSt@Z~ U O6$51 zx2xH18;aƒ,9xW}zx2zx2xxxxH18;a¤x W}xxx ,9xHC]]]][?{LMhs Lv^kFU IY Wu}zOb"sX`j\+M]FQ SB jWp9JDEDl_ D @dm MoPtqyVt~KWp hUda gf(`` L&Te]X Y Y u @BD lV uZ W e4X Nzt)Yv  1gu 8pE|.^U[ڄzx2 zx2 q$BXa$L?i^8Rff  BQ\F_ EqfAm` TffITKqnggzwO IO{NfN#h^Fe c V_gxn YuN H@Ggz~ jW up  y0\z sTl !H  T!ElTN^!KlQ BPY[IgT !z R_} C Lpd HI !_D eYorUW [_@ Itau!skiwg 3NM_]jJ`%;GSPZ y B` Z" Fϩ+Kƃjo8jo8jo8jo8jo8jo8jo8jo8q6ƽjo8jo8jo8jo8jo8jo8Hc `i})T;-~  r`o-t r`d'RPa/!-wo*-m z.o.`'(Mwd*-G  z.d.`'(MK-XFzM.`'H(M(R( ML)2H[L/////////d"npQqe' ::$"%IOBfb?d06zx2H182?d06H18!t"!t"ڋ 5151ԋ ,951ԋ HG$B$Cl$4C|$E#a$ @|m a2 JA$do ?d06!t"!t"ڃ?d06JA$ҵ?d06Bn"pRSDSBS`nN @ KB%0zx2 l$zE~$GQ$=l$B6k0Xs@wr!#r@*@-(B j$@-w.@*.@- $@-w.@*:.@:$ $a@| $'  XOD.rp G$O-w.O*.O- $O-w.O*:.O:$ $aOz  $'  V^m  KjxH!El`]\CX=S V !Kli1TXqv QJ} P6vM qACK q aT%YE v@jH DsRY\u%CT] @ ibp :D6"Q.-' btp`i OS^u Ii[ JT{n%/~@v {c%| EF HM^O}%\ZBaz|qr L S3mVUnm a YPAYe,bp\_dPc S jgM [k@TpacJ@ 1N^[@lXdsyh  R ')F%FFUF w!~xbU%~N)ujA [Sx?[[-'-(6%6D?6%6D?6@?6D?6@?6D?6@??,-(o$u! q! D )/? Je oHbLRgD##rR*R-(c V$w.R*.R- $w.R*:.R:$ $aRj  $'  J rDC G$r-w.r*.r- $r-w.r*:.r:$ $'  hz?e" - cJz: z%z:j Uz:F?:q!+!m:&F?:q!+!m O ~# wTw*)VqV~1-_'Vw.%J*u%a/!Uv! B6 6Qk6 6Q=kkXXkkvBBBB_66"BB% _% _@ _@6"BLL_% _ _6"B6"k9"?~C;D^Q a+PP~Q?)\=::$pa p$u.uw* DAQ2nklc@[LGzx2GG8Vzx28V8VZzx2ZZzx2Džqzx2DžqDžqzx2q,zx2q,q,zx2fzx2ffwvnp@]You picked up a BowyKnifeG$ Assr#F@$A&$AU i_ X j)%@>-tDjojl>L-Zb-Z3] m3\ 7{3w.j*.j-j 3/a6 b?,65w.*.- wj 310q!. ^L @q(v!-+(* UdA BWndb-+2w*Ba/!".Bbw*u!-+' { K RKc)"CN $ ]?% ,w*b?]?N ]?%aE $@a  #?Z"@f?% v?%Xq!<h  L ?,aX-Nd-tDg3C {3w.*.- 3/a6 b?,w.*.- w 310q!. D2PrxyVOT  X f  =r ~tc  }u{ h| P|!EIOO f@ B k iADJy\!@ SPdS@ @ Y Z[|;wwW D =K %@ j 8UNx @aq 1<O {%{c { @;[X ^  lm jZ hj  GId 1MA k=UQa/!-Q{cQz.A c'( y wB|k w  ]o[PSP @fMp\_d]o !R"Z r%(B(a(*-(** D Bp  F t b gJC @ W  Q f~xoRqt_1EX3^ K\  A ZQm!{ 1F@}b!DZ U l|j{lt \=G WC{j~ @ ~=GdK[i]bXpcb Z!CU!pM i64-+r.M "v!-+( ZmNR VVO  i c WC{!K~gNZ@@ qb P| k0Eo$a@a  GP| }ayeI ]BOQ 8_ fqG  ^a z  R bAIp x Vic ^;yJPPs }qtP B H*6#DSq-U7?6{-X(T?6T-X'q-X6#?a+a<a#B  l E d( om-[E m[ov!-'a  W#??,:F/ @wHa!w--E -E'Da  "@DL>D$?-'-(-(6%6%6%6%6%6%o$u! q! Qo !5Fo a q!{ O e XK e q!h yucC q! ` d 820-W rJd J*v!-W( B[ e pG[ ~DfGP{xWpppx S~ seconds!nGf-d'v! j ^ J520-R r%^ v! %*-R( G] M5*v-Za/!] &-Y-Y wc*w.*.a/!8.p.,p@m.,p@m.,p@m ,-M-M wZ*w.*.a/!8.p.,p@m.,p@m.,p@m  c Z rD^\-u %\ ,R-Z -6t  '6H '  Q y F--[(y  ^D L1(_> dD dI%:. % -O %:. % -k-_'v! @ 7 .a #<'7&7,7O77@77#7"7g4o&y&j&-H o-w y-xj%"%#U{?%{?-m(-f(-@(-A(-K_V-yaY-CDX_?% V?%-f'D?% X?%-@'>a?% Y?%-A'e-f-@-A-m'-6(-[(A?A?-Y(-M(-h d $-Y'-M' $-Y' $-M' ::$c*-Y($::$Z*-M(-}' L [ O -0.-+r.O v!-+( NJ $~Ch?% ,w*b?B-W h?J |h?%ab$@h  K?,a R~w?/a0   a   /a6   Va  `4 G!6.  6.  1010?/a0    *a   /a6   Va  `4 m :N:$O :g:$W 1010*o?u! @/a0   a   /a6   Va  `4 m e :N:$O :g:$W 1010*{?u!+@@/a0   a    a $/a6   Va  `4 e :N:$O :g:$W 1010*X ?u!aP '`@I,ZI%I6K?, ?I6K?, ?I6K?/a0  ~ a   -L(/a6   Va  `-L'4 e ~a    K?,"@~33???,10~-L6K?u6u6K?, 6u6K?, 6u6K?,6u B ~a  u"@~33???,10@/a0   a   /a6   Va  `4 1:N:$O J:g:$W ~a    #??,"@~33???, C*!  1010q!g dzA q!h IZJ d"EW 3 IO H18 uN uN uN uN uN uN uN uN uN uN uN uNH182W} W} uN uN 5151ԋ H18;a‹ uN uNHgl C$)l C S7C y q!k Kk\ p @Z 3Kp_ }  75-+.} 5w*u!-+' nS @5`(v!-+(* LUD ::$] @jU[ڛH18;al] z R]1/-z rz v!"-z( IHPE*/a6 E  10NrE*a(u!a'''q!!\ j vyB0XT! w*/a0 vK WVwvv.10D! w*/a0 vUwvv.10 EA]Ba #jPk$Cn$pA\SX'#a$@$ B 2T/a0 NM:% #<10a mn X(=;!/a0 Q:Q n 10 wb Md 4U[چB%0B%0B%0N nZ|Mnn&3::$av $@h-Y\?e-C\wc*Vc?-CVc%::$ap$@-Mc?-Cc%%wZ*VZ?%-CVZBn&ap $@QaW $@jn&L^ uLu?-}(u! OH;r^Wq9&#?<b\qիH?^?իH?W?r9b\?'rDapm\q'9Dpmr^W U k _#0k .*?v! Z dt GdEda/!da/!tK.d k [AW/a0 [Q[k [--_ [--Q 10a M x I-6-mi7-S0-a**v!Lu-I a($$$Zq!Lw?%q!V[*-6(q!!5%x |I Pi fk NU[ڇ///W?7db-dRaEX[v!/a0 tvZt X10q!< B n $K" W F% Fn .F%q!2Uo$6WzDWo< } OD_O]-SOa/!-['TOO. G e D$a(.a(.Z?%-'aAa-L}. xv!-}'a'ya(:a-q*-Sq!c \5Il>~Fb l CJ*(-d'n] @bz :[ p-(-({%:&{X:={a$ NK &h|,#]"U*-i(!%\ 96KD?,?,d6KD?,?,d6KD?,?,daKa$@ \Z:--(-(f-W -UYZZ=%:&kEa$!/a0 ZZ 10 jP`^wP-_r.P*J.PuwwP  H },piK6jf 6jB}6jByyj fw <b=`-'Ka&!e>eJf-9(u!aL>' PUt<,et*eJ-9'v! ]kiDgqPGx*wBwu# /a8 kC-r3:k:tk tqxkqt10 JY|gw.*+r.* R.-PY B |YaYD?Y?,@, V MOl UrM* G! /a0 LGRLM.M10 lwPw*?u]6uDU?6 l ,~WW!K%~WW!J%~WW!x%!% !,!&<C!&!,<CC!, !%!&6l= ><!,6l<a la+uAq!k @ { `X-i'666o$a #<' He[4aYeB9?,d#?ZngBի[?Y?ի[?e?a9ng?'ata{egB'9t{eaYe p L 6,*q!` P WuswPP-6Pa/!F MPP-`=q!2  \ C C @v /-L(-`(Yaw.v*.v-v g/a0   -`'a   /a6   Va  `-L'. -'10 H 10--`q!2 ro™2bD DfjPzx2ʊwuNG^zx2zx2zx2zx2zx2uNuNG^G^uNG^G^uNuNzx2 zx2ʊwuNՏ,zx2zx2zx2zx2zx2uNuNՏ,Տ,uNՏ,Տ,uNuNzx2 zx2ʊwuNN0g+zx2zx2zx2zx2zx2uNuNN0g+N0g+uNN0g+N0g+uNuNzx2 zx2ʊwuN&_zx2zx2zx2zx2zx2uNuN&_&_uN&_&_uNuNzx2 zx2ʊwuND[zx2zx2zx2zx2zx2uNuND[D[uND[D[uNuNzx2 zx2ʊwuNg浃zx2zx2zx2zx2zx2uNuNgg浃uNg浃g浃uNuNzx2 zx2ʊwuNM5wzx2zx2zx2zx2zx2uNuNM5wM5wuNM5wM5wuNuNzx2 zx2ʊwuNrzx2zx2zx2zx2zx2uNuNrruNrruNuNzx2 zx2ʊwuN \Ãzx2zx2zx2zx2zx2uNuN \ \ÃuN \Ã \ÃuNuNzx2 zx2ʊwuN=zx2zx2zx2zx2zx2uNuN==uN==uNuNzx2 a$L>K"@Z$pBn$BuQM^LGkd]You control the cannon !Z$L?M$>R[$AC_LG$>R$L?\S'#$0B&$0BYRNc:MPapy M?%MB.n?%n?MM?,d!N@~a  #??,"@~M?,d>?na%ga,[a [%T#???,d[[?333?[o$a}_?%q!<a e E 2 4`?%`>a`( $~ VcAMT}6TIb.TsaI9{II6TT6Ts6Ta]a IKw]*].K-l HBR ~A'B?]]B ^ ^yb5?]6^V #<6^]D6^V #<6^] #<6^| S ̌] B _ cza?'  t PU91dK%bK, XwKQ*PaKQ WPK TrEFrq J%JC!r" _J q-}?J ?L%:.% -O%:.% -L-}'v! $N $ % ,-6P $6U $a  6X $6U $w6U $Uw6U $ /a0 NV 10 % ,6H 'a  6Y  '6H 'w6H 'Uw6H '6H 'a*N -u(`:N po7Z-'P-O%PO,FwO* OO-( s Hsb !s -- -'::$}a  "@}L>}$?^?^ qN `@ @P /\ g u,og -[(/a0 elkweke-6e-[(e q!!~10 E .~|JE % r|w|*`r%*% a|$|% a|$ dFC)!~_b.C CC?, N?^?Ed. ADCD?'(a  Cdw.*.t̾#"DC>C HJS 2T Q-Hzx2zx2 zx2zx2zx2zx2zx2wv@]You picked up some grenades] GrenadeG$ AsZ$=srz]  thrownr= activatedp#F@$A&$Ar \ETQ\&O\,\#\"\ Y c4] :c:$.c-'.c-(c #co$cq!'( G h"::$r.h* M::$.h- u::$h?,  8hh.hq!3!l i c3v!)?%-'aAa-LH-q!R-v!:a-qu!/ 5RlvtA@Y ۆPB%0B%0B%0suN?!/a0 >?cD 10L-\a( I }`P %7 ,6H '/  % ,x-6P $6U $/ >6U}$ bw T}*w /a0 lwll-6Y-[l-['ll q!!F10 rA@-^\-zAa/!2w*".A\w*u!-z' h^ 8Z(v!*-z( lQ }a)&_> .}&au$@=a$@h6a!j>6a!b>6`a!`>60a!N>a!g>&Bl-S :~:$Yiwy*ay 9&#?<~ $qa  9&#?< $}&%-yY"wy*ay 9&#?<rwP*qaP 9&#?<qa  9&#?<-\Z  wy*ay 9&#?<\wl*qal 9&#?<qa  9&#?< q. }&aw$@aa$@}&Ih IFd-_(u! A _ .3v!-_''-la!v?ar $@D-laaR'6jo$ pysJCr.s%({ I$w.s*.s- z$w.s*:.s:$ $as^ $'  qL]6;/a0 L87LL{10 M v@@-a-v HG a| '%MG%B Gq!2 m d e @9SsD0#sA>L= } woP7-w?6. Vw?64w?*w?64w?V6. Dw g n+9ki}6iANLq{9{{{6iN6iL6iq[t{իn?L?իn?q?N9[t?'NNatTt{'9NtTNLqiw^*a^ { s jBD!mX:%::m=:&k::&::m=:&k P |[".XT! w*/a0 |TWVw||.10D! w*/a0 |Dw||.10 y A}/YA?h?|A$a/!-A.:.J?A%J?A$A?h,?|,r Ka I @6l |B%0jjj҄zx2zx2///j4 4 4 фzx2zx2///4 XXXzx2zx2///Xbbbzx2zx2///b6bPl$0DSBSLG$mq!{ \|\-\:?\?,?\?,\$\ ?\$ } ]97N>r];wJ*aJ Ff?, PfLLw] w] w]*]a/!`]a/!Hwq*aq Ff?, Pfwc*ac Ff?, PfRDi ?,L>D?,]*$R*Fի?RCD!w a G3'xPa 6x1a+x c CLx3FD-o /a0 CCBwCC10 _TYcT&KT,TTOTT@Tg4 zSs;cK-Sa/!IrS*S #< SSa/!Sa/!tE.S y{Zt VPq6ƽq6ƽk B|A`I` ,@`~,@a[w.*a./a6 GB?,>a wGaG-G%1pB6R i pa/!-pGa/!tGa/!pBa/!FB:G.BHa G I?6a @= 6C?hfI?,I@e6Hf6HfH6Hf6Hfe?,dH?,de?I&H?`&BeHB @@10 e] P @v ZB%0zx2m:M'M:M@H6k0Xn { S]*D*@ ?u!a<' @4Z$ wJ*K:.J&-Ga+a<a_ Z:.J&-| a+a<ab Z v(HFw.v*.v-v C JKJ@z Pzx2zx2zx2zx2"xY`})h`kD*CpppP  Sk seconds!f*?v! B g 2f`$D*b ?u!a<' @4]E8DR] h A9C<>rA;wU*aU ^g?, PgwA wA wA*Aa/!`Aa/!Hwu*au ^g?, Pgw{*a{ ^g?, Pg:Aa/!W L>.AF.CEbDn?,cL>E?,A3$b.^ի?bCE!w e`o-Do*(6 a_$@[6a!b@6`a!`@60a!N@6 a!g@a!j@--T K *wK*aK 9?,d#?ZS y$Ca  9?,d#?Z  $wO*CaO 9?,d#?ZCa  9?,d#?Z  ,V?%CVLa?%CalM?%CMN%CNV?%CVoJ~ e-9(u!aL=' v d .lK@-t#-sa!v?aw$@@-sakh h!hv!-9'au'6m o$ @f ;9u >r;;wy*ay Mn?, Pnw; w; w;*;a/!`;a/!Hwv*av Mn?, Pnwj*aj Mn?, Pn:;a/!W L>.;F. C@sDT?,cL>@?,;3$s. Mի?sC@!w P lV@Lw?-S(u!a ף<' 0[),?[*?L-S'v! K:rr:}-`.!:a: @:y-::.!:a @:y'r*( r: IW~|-Q WScmw. *. -  r q!.-Q' G>r!or>}-h.!>a> @>y->>.!>a @>y'r*( r> x fE5&::$f-(f( r= ;^=&=,=X==e ==#="=  Y N Rqx L R=rq = K 3QPPYYK"[$@_$@jOi8 w*0w.]%J*u::$^:&:&i wx*r r-'a$*bxF9ppx pO?,a+P r r-(a$*%a/!Uv! 06 6Qb6 6Qbbbb0000W66"0[0%XW% W@ W@6"0W% W W6"06"b9"?OC;D^Q a+PPO?)\=::$la l$.w* n iRF-6-6'iB-. iqyw*Iw.*.- Y-mcq!!l D6?,PD q VLq a$!-r/a0 ///q!+-g /&?:/&//&?:/&/10/a0 VV 10z o kL@LZ?-H(u!a ף<' 0R,?R*?L-H'v! nf ;2 R AdU[ڄzx2 zx2zx2Z]Enemy in vicinity !!!co$BYHI1S E-Pq6ƽq6ƽq6ƽq6ƽ"X~ 2T Z2ͼGɄzx2zx2////////bzx2WW///Or$Aw]Item available inIo'u raj ,}rU`|rU` IH|2z V [LH18;aW}zx2zx2/////////XvH18;aXvW}XvXvXvXvXvXvzx2XvXvXvXvXvXvXvzx2/////////=v.QH18;a=v.QW}=v.Q=v.Q=v.Q=v.Q=v.Q=v.Qzx2=v.Q=v.Q=v.Q=v.Q=v.Q=v.Q=v.Qzx2/////////ƛH18;aƃW}Ƅzx2Ƅzx2/////////2-H18;a2-W}2-2-2-2-2-2-zx22-2-2-2-2-2-2-zx2/////////6GH18;a6GW}6G6G6G6G6G6Gzx26G6G6G6G6G6G6Gzx2/////////msTH18;amsTW}msTmsTmsTmsTmsTmsTzx2msTmsTmsTmsTmsTmsTmsTzx2/////////H18;aW}zx2zx2///////// ACH18;a ACW} AC AC AC AC AC ACzx2 AC AC AC AC AC AC ACzx2/////////@H18;a@W}@@@@@@zx2@@@@@@@zx2/////////]l#H18;a]l#W}]l#]l#]l#]l#]l#]l#zx2]l#]l#]l#]l#]l#]l#]l#zx2/////////!H18;a!W}!!!!!!zx2!!!!!!!zx2/////////zg̻H18;azg̻W}zg̻zg̻zg̻zg̻zg̻zg̻zx2zg̻zg̻zg̻zg̻zg̻zg̻zg̻zx2///////// ÛH18;a ÃW}      Äzx2       Äzx2/////////7H18;a7W}777777zx27777777zx2/////////h@H18;ah@W}h@h@h@h@h@h@zx2h@h@h@h@h@h@h@zx2/////////dH18;adW}ddddddzx2dddddddzx2/////////w>`H18;aw>`W}w>`w>`w>`w>`w>`w>`zx2w>`w>`w>`w>`w>`w>`w>`zx2/////////do H18;ado W}do do do do do do zx2do do do do do do do zx2/////////R"wvnp@]You picked up a Mine PackG$ AsZ$L>srp#F@$A&$ARf$ Azm+Ha/![a/!]a!W333?L>a/!ea/!fa/!ia/!Ya!H333?L>a/!Va/!ha!@333?L>6a/!ea!Y333?L>ha/!Oa!V333?L>a/!Xa!G333?L>a/!fa!B?L>a/!^a!P?L> FGGJq!h W eDHa/![a/!]a!V?L>a/!ea/!fa/!ia!h?L>a/!Ya!J?L> a/!Va/!ha!x?L>ha/!ea/!^a!J?L>a/!Oa!T?L>a/!Xa!~?L>a/!fa!W?L> s EEJU rE* -HEw*ktE ak*k**%!,w6)T**EQ6)Tw*tE a%S,Iw6)z**EQ6)zr*.-a6)z E   E a!aIIa/!G.I.( h IK U rI* -V Iw*ntI an*n**%!,w6)^**IQ6)^w*tI a%S,Iw6)|**IQ6)|r*.-a6)| I   I a!aIIa/!G.I.( z xWu Urx* G! /a0 ]GR]x.x10 cK I>f(v!J*-W( N[ j2v ::$@`2/^ 23@?d06/////[L/////&}&}zx2zx2/////[L/////&}&}zx2zx2zx2zx2zx2A N 6#DSq-U7?6{-X(T?6T-X'q-X6#?a+a<a#N  x B/Q=;-WBa/!`JBu!-W' hF r 0-'v!F/  ? rFc KRw2*2@P!/a0 FOFv!10 ` mHa2aR*p. Q Fw.p*R.p]R-'_(  s e0K,es *eJ-9'v! nm B26e nnjPzx2zx2ʊwʊwʊwʊwʊwzx2zx2zx2zx2zx2zx2zx2H18;aƒW}W}W}W}W}zx2zx2zx2zx2zx2zx2zx2zx2zx2zx2zx2S$Da$L>K" NZ$pBn$BuM^nhA"Uy]d]Cannon activated !J]Cannon deactivated !K]Automatic cannon activated !}]Cannon targets threat !M$?L[$AC_LG$>\S'#$0B&$0BYRNc:MPa M ;R(v! %*-R(  b Hj.|w*}P!/a0 HOHu!10zw2*:%::&2-u':%2@(2@'2-u(2 X:** ijU KI:\!/a0 j:\Hj 10 k z/hf!f-r/a0 Y>Yu!10/a0 zezq!+10 R G=XMK-RGa/!%.GKw%*u! -R' O Qhf!f-r/a0 X>Xv!10/a0 QeQq!\10 v TINL-Lhv-([u!AUF rG p )R"| o g4'/a0  BA  V10*x ?u!a<' @x]t &0t .*?v! c_S3V?__-'-(6%6D?6%6D?6@?6D?6@?6D?6@?T?,-E-(A-E6%6%6%6%6%6%o$Fo$u! q! Z w&<N?!/a0 R>R?~ 10L-\a( WYvJ Qu %OW-'oOQO?%o%QsA?%A%QFa  W#?u FUA w $ v! dv R| u! {U Pk  W I -' q U<47/--J6646~6646J66~66/--%"%#$$$o o_,//============================================================================= // RadarHUD. // // script by N.Bogenrieder (Beppo) // original radar script by // Chris "Catalyst" Robbers // // this HUD can be used for projectiles or other //============================================================================= class RadarHUD expands UnrealHUD; struct sPalette { var() color Black; }; const Dot = Texture'nbspecialt.radardot'; var() texture RadarTexture[4]; var() sPalette Palette; var HUD oHUD; simulated function PostRender( canvas Canvas ) { // oHUD.PostRender(Canvas); if ( PlayerPawn(Owner) != None ) { if ( PlayerPawn(Owner).PlayerReplicationInfo == None ) return; if ( PlayerPawn(Owner).bShowMenu ) { DisplayMenu(Canvas); return; } else { // DrawRadar(Canvas, Canvas.ClipX - 128, 16); // DrawRadar(Canvas, 0.5 * Canvas.ClipX - 64, 0.5 * Canvas.ClipY - 64); oHUD.PostRender(Canvas); DrawRadar(Canvas, 0.5 * Canvas.ClipX - 64, 16); } } } simulated function DrawRadarBackground(Canvas canvas, int X, int Y) { Canvas.SetPos(X,Y); Canvas.Style = ERenderStyle.STY_Translucent; if (Level.Game.IsA('TeamGame')) Canvas.DrawIcon(RadarTexture[PlayerPawn(Owner).PlayerReplicationInfo.Team], 1.0); else Canvas.DrawIcon(RadarTexture[0], 1.0); Canvas.Style = ERenderStyle.STY_Normal; Canvas.SetPos(X + 2, Y + 114); } simulated function DrawRadarBlips(Canvas canvas, int RadarX, int RadarY) { local pawn blip; local int CenterX, CenterY; local vector RelLoc; local float d, x, y, arc; local actor Viewer; CenterX = RadarX + 64; CenterY = RadarY + 64; Viewer = Owner; if (PlayerPawn(Owner).ViewTarget != none) Viewer = PlayerPawn(Owner).ViewTarget; // mark pawn blips foreach RadiusActors(class'pawn', blip, 100 * 62, Viewer.Location) if (blip != Viewer) { if ( blip.bHidden || blip.Health <= 0) continue; else { Canvas.DrawColor = Palette.Black; if (Level.Game.IsA('TeamGame')) if ( (blip.IsA('Bots')) || (blip.IsA('PlayerPawn')) ) if (oHUD.IsA('UnrealHUD')) Canvas.DrawColor = UnrealHUD(oHUD).default.AltTeamColor[blip.PlayerReplicationInfo.Team]; } // calculate the corresponding 3D pos. on a 2D area // WARNING: heavy math ahead! RelLoc = Viewer.Location - blip.Location; arc = (Viewer.Rotation.Yaw - 16384) / 182.04 / 360; d = arc * 2 * PI; x = RelLoc.X * cos(d) + RelLoc.Y * sin(d); y = -RelLoc.X * sin(d) + RelLoc.Y * cos(d); x /= 100; y /= 100; x += CenterX - 1; y += CenterY - 1; Canvas.SetPos(x,y); Canvas.DrawIcon(Dot, 3.0); } } simulated function DrawRadar(canvas Canvas, int X, int Y) { DrawRadarBackground(canvas, X, Y); DrawRadarBlips(canvas, X, Y); } T c>-x(1a  w. 1o. 1a . S. 1. 1. 7-x'. $. $< a/!. z n Ha! @Gg"   Z@MK-dDv!/a0 tvCt E10q!C Fwv2C9U&uNzx2 S"2W@]You have no weapon]NoWeaponAtAllG$o'Ea r-//============================================================================= // NOWeaponAtAll. // // script by N.Bogenrieder (Beppo) // // YOU CAN USE THIS WEAPON AS A DEFAULT WEAPON !!! // SO YOU HAVE NO WEAPON AT THE START OF THE GAME !!! // //============================================================================= class NOWeaponAtAll expands Weapon; //const Pen = Texture'Pen'; function Fire( float Value ) {} function AltFire( float Value ) {} function BringUp() { if ( Owner.IsA('PlayerPawn') ) PlayerPawn(Owner).EndZoom(); bWeaponUp = false; GotoState('Active'); } /*simulated function PostRender( canvas Canvas ) { Super.PostRender(Canvas); PlayerPawn(Owner).MyHud.DrawCrossHair(Canvas, 0.5 * Canvas.ClipX - 8, 0.5 * Canvas.ClipY - 8); DrawRadar(Canvas, Canvas.ClipX - 128, 16); } simulated function DrawRadarBackground(Canvas canvas, int X, int Y) { Canvas.SetPos(X,Y); Canvas.Style = ERenderStyle.STY_Translucent; Canvas.DrawIcon(Texture'radar', 1.0); Canvas.Style = ERenderStyle.STY_Normal; Canvas.SetPos(X + 2, Y + 114); } simulated function DrawRadarBlips(Canvas canvas, int RadarX, int RadarY) { local actor blip; local int CenterX, CenterY; local vector RelLoc; local float d, x, y, arc; local actor Viewer; local UnrealHUD UHUD; CenterX = RadarX + 64; CenterY = RadarY + 64; Viewer = Owner; if (PlayerPawn(Owner).ViewTarget != none) Viewer = PlayerPawn(Owner).ViewTarget; // mark pawn blips foreach RadiusActors(class'actor', blip, 100 * 62, Viewer.Location) if (blip != Viewer) { if (blip.IsA('ControlRocket')) Canvas.DrawColor = UHUD.AltTeamColor[1]; else if (blip.IsA('Pawn')) { if ( Pawn(blip).bHidden || Pawn(blip).Health <= 0) continue; else Canvas.DrawColor = UHUD.TeamColor[Pawn(blip).PlayerReplicationInfo.Team]; } else continue; // calculate the corresponding 3D pos. on a 2D area // WARNING: heavy math ahead! RelLoc = Viewer.Location - blip.Location; arc = (Viewer.Rotation.Yaw - 16384) / 182.04 / 360; d = arc * 2 * PI; x = RelLoc.X * cos(d) + RelLoc.Y * sin(d); y = -RelLoc.X * sin(d) + RelLoc.Y * cos(d); x /= 100; y /= 100; x += CenterX - 1; y += CenterY - 1; Canvas.SetPos(x,y); Canvas.DrawIcon(Pen, 3.0); Canvas.DrawColor = UHUD.AltTeamColor[3]; } } simulated function DrawRadar(canvas Canvas, int X, int Y) { DrawRadarBackground(canvas, X, Y); DrawRadarBlips(canvas, X, Y); }*/ state Active { function Fire(float F) { } function AltFire(float F) { } function bool PutDown() { if ( bWeaponUp ) GotoState('DownWeapon'); else bChangeWeapon = true; return True; } function BeginState() { bChangeWeapon = false; } Begin: if ( bChangeWeapon ) GotoState('DownWeapon'); bWeaponUp = True; } Jk\8 q!2 mw>#!hoq!z  )oKe F _<$-'a_(  pWJ//============================================================================= // SpecialMine. // // script by N.Bogenrieder (Beppo) // //============================================================================= class SpecialMine expands Pickup; #exec AUDIO IMPORT FILE="Sounds\Pickups\HEALTH2.WAV" NAME="Health2" GROUP="Pickups" #exec TEXTURE IMPORT NAME=I_Health FILE=TEXTURES\HUD\i_Health.PCX GROUP="Icons" MIPS=OFF #exec MESH IMPORT MESH=HealthM ANIVFILE=MODELS\aniv38.3D DATAFILE=MODELS\data38.3D X=0 Y=0 Z=0 #exec MESH ORIGIN MESH=HealthM X=0 Y=0 Z=0 YAW=0 #exec MESH SEQUENCE MESH=HealthM SEQ=All STARTFRAME=0 NUMFRAMES=1 #exec TEXTURE IMPORT NAME=Jhealth1 FILE=MODELS\health.PCX GROUP="Skins" FLAGS=2 #exec MESHMAP SCALE MESHMAP=HealthM X=0.02 Y=0.02 Z=0.04 #exec MESHMAP SETTEXTURE MESHMAP=HealthM NUM=0 TEXTURE=Jhealth1 var(SpecialMine) float Damage; var(SpecialMine) float DelayTime; var(SpecialMine) float Size; var(SpecialMine) enum ETouchType // select a specific type of touchers { TT_Player, // Toucher is player proximity. TT_Pawn, // Toucher is any pawn's proximity TT_Class, // Toucher is actor of that class only TT_Any, // Toucher is any actor in proximity. } TouchType; var(SpecialMine) class TouchTypeClass; // if tt_class than this is it for touching var(SpecialMine) localized string IgnoreTeam; var(SpecialMine) float ReActivateTime; var(SpecialMine) int Health; var int oHealth; function PostBeginPlay() { Super.PostBeginPlay(); if (Health <= 0) Health = default.Health; oHealth = Health; } final function bool IsValid( actor TT ) { switch( TouchType ) { case TT_Player: return TT.bIsPawn && Pawn(TT)!=None && Pawn(TT).bIsPlayer; case TT_Pawn: return TT.bIsPawn && Pawn(TT)!=None && ( Pawn(TT).Intelligence > BRAINS_None ); case TT_Class: return ClassIsChildOf(TT.Class, TouchTypeClass); case TT_Any: return true; } } final function bool IsIgnoreTeam(actor Other) { if ( Level.Game.IsA('TeamGame') ) { if ( IgnoreTeam != "" ) { if ( Pawn(Other).PlayerReplicationInfo.TeamName == IgnoreTeam ) return true; } } return false; } simulated function TakeDamage( int NDamage, Pawn instigatedBy, Vector hitlocation, Vector momentum, name damageType) { if (Health <0) return; Health -= NDamage; if (Health <0) GotoState('BoomBoom'); else { SetPhysics(PHYS_Falling); Momentum.Z = 1000; Velocity = Momentum*0.016; } } auto state Pickup { function Trigger( actor Other, pawn EventInstigator ) { GotoState('BoomBoom'); } function Touch( actor Other ) { if ( IsValid(Other) ) if ( !IsIgnoreTeam (Other) ) GotoState('BoomBoom'); } } state BoomBoom { simulated function Timer () { local int i; local Fragment s; local float MomentumTransfer; local SpriteBallExplosion f; if (Damage <= 0) Damage = 100; if (Size <= 0) Size = 1; HurtRadius(damage, Damage+100, 'Detonated', MomentumTransfer, Location); f = spawn(class'SpriteBallExplosion',,,Location + vect(0,0,1)*16,rot(16384,0,0)); f.DrawScale = (Damage/100+0.4+FRand()*0.5)*Size; for (i=0 ; i<8 ; i++) { s = Spawn( class'Fragment1', Owner); s.CalcVelocity(Vect(0,0,1)*900/100,0); s.Skin = Skin; s.DrawScale = DrawScale*0.5+0.7*DrawScale*FRand(); s.SetPhysics(PHYS_Falling); } if ( ReActivateTime > 0 ) GotoState ('Reactivate'); else Destroy(); } Begin: if (DelayTime <= 0) DelayTime = 0.3; SetTimer(DelayTime, False); } state ReActivate { simulated function Timer() { Spawn(class'Respawn',,,Location + vect(0,0,1)*8); bHidden = False; Health = oHealth; GotoState ('Pickup'); } Begin: bHidden = True; SetTimer(ReActivateTime,False); } state ThrowIt { simulated function Touch( actor Other ) { if ( Other != instigator && !Other.bHidden && ( Other.IsA('Decoration') || IsValid(Other) || Other.bProjTarget ) ) { DelayTime = 0.1; GotoState( 'BoomBoom' ); return; } } simulated function HitWall( vector HitNormal, actor Wall ) { Velocity = 0.6*(( Velocity dot HitNormal ) * HitNormal * (-2.0) + Velocity); // Reflect off Wall w/damping bRotatetoDesired=True; bFixedRotationDir=False; DesiredRotation.Pitch=0; DesiredRotation.Yaw=FRand()*65536; DesiredRotation.Roll=0; RotationRate.Yaw = RotationRate.Yaw*0.75; RotationRate.Roll = RotationRate.Roll*0.75; RotationRate.Pitch = RotationRate.Pitch*0.75; If (VSize(Velocity) < 5) { bBounce = False; SetPhysics(PHYS_None); Enable('Touch'); GotoState('PickUp'); } } }  ]W//============================================================================= // AirStrike. // // script by N.Bogenrieder (Beppo) // //============================================================================= class AirStrike expands Effects; var() sound PlayAlarmSound; var() float a_AlarmTime; //10.0 var() float b_LookTime; //3.0 var() float c_ByeByeTime; //1.8 var() float d_BombingTime; //4.0 var() localized string[80] ActivateMessage; // if activated send this message to Instigator var() float e_EndAlarmTime; //4.0 var() sound PlayEndAlarmSound; var() float f_ReactivateTime; //30.0 var() localized string[80] ReActivateMessage; // if activated during Reactivation var() float BombingRate; //0.2 var(AirStrikeSpecial) enum ESpecial { a_AlarmTime_a, b_LookTime_b, c_ByeByeTime_c, d_BombingTime_d, x_dont_use_it_x, } StartEventAfter, EndEventAfter; var(AirStrikeSpecial) name SpecialEvent; var float TimePassed, TimeToCheck; var pawn pPawn; var float fBoom; var bool bFoundTarget, bFoundASP; var AirStrikePoint ASP; var actor A; var vector oLocation; var localized string[100] ReMessage; var int TimeLeft; function LookAnim (pawn Other) { if ( (Other.IsA('Human')) || (Other.IsA('HumanBot'))) Other.LoopAnim('LookL',0.7,0.2); else if ( (Other.IsA('SkaarjPlayer')) || (Other.IsA('SkaarjPlayerBot')) || (Other.IsA('SkaarjTrooper')) || (Other.IsA('SkaarjWarrior'))) Other.LoopAnim('Looking',0.7,0.2); else if ( (Other.IsA('Nali')) || (Other.IsA('NaliPlayer'))) Other.LoopAnim('Pray',0.7,0.2); else if (Other.IsA('Krall')) Other.LoopAnim('Look',0.7,0.2); else if (Other.IsA('Mercenary')) Other.LoopAnim('NeckCrak',0.7,0.2); else if (Other.IsA('Brute')) Other.LoopAnim('StillLook',0.7,0.2); else if (Other.IsA('Titan')) Other.LoopAnim('TSnif001',0.5,0.2); else if (Other.IsA('Warlord')) Other.LoopAnim('Point',0.5,0.2); } function ByeByeAnim (pawn Other) { if ( (Other.IsA('Human')) || (Other.IsA('HumanBot'))) Other.PlayAnim('WaveL',0.5,0.2); else if ( (Other.IsA('SkaarjPlayer')) || (Other.IsA('SkaarjPlayerBot')) || (Other.IsA('SkaarjTrooper'))) Other.PlayAnim('ShldTest',0.5,0.2); else if (Other.IsA('SkaarjWarrior')) Other.PlayAnim('hairflip',0.5,0.2); else if ( (Other.IsA('Nali')) || (Other.IsA('NaliPlayer'))) Other.PlayAnim('Cringe',0.5,0.2); else if ( (Other.IsA('Krall')) || (Other.IsA('Warlord'))) Other.PlayAnim('Laugh',0.5,0.2); else if (Other.IsA('Mercenary')) Other.PlayAnim('CHARGEUP',0.5,0.2); else if (Other.IsA('Brute')) Other.PlayAnim('Sleep',0.5,0.2); else if (Other.IsA('Titan')) Other.PlayAnim('TChest',0.5,0.2); } function bool StopPlayer ( pawn pPawn ) { if ( pPawn.Physics != PHYS_None ) { PlayerPawn(pPawn).bBehindview = True; PlayerPawn(pPawn).bPressedJump = False; pPawn.Velocity = Vect(0,0,0); pPawn.SetPhysics(PHYS_Falling); pPawn.GotoState(''); return True; } return False; } function StartSpecialEvent( actor pP) { local actor a; if (pP == None || SpecialEvent == '') return; foreach allactors (class'Actor', a, SpecialEvent) a.Trigger(pP, Pawn(pP)); } function EndSpecialEvent( actor pP) { local actor a; if (pP == None || SpecialEvent == '') return; foreach allactors (class'Actor', a, SpecialEvent) a.UnTrigger(pP, Pawn(pP)); } auto state Waiting { function Trigger ( actor Other, pawn EventInstigator ) { bFoundTarget = False; bFoundASP = False; oLocation = Location; if ( Pawn(Other)!=None && Pawn(Other).bIsPlayer ) Other.Instigator.ClientMessage( ActivateMessage ); foreach allactors (class'AirStrikePoint',ASP) { if ( ASP.Tag == Self.Tag ) { bFoundASP = True; SetLocation(ASP.Location); foreach radiusactors (class'Pawn', pPawn, ASP.Radius) { if ( ClassIsChildOf(pPawn.Class, ASP.TargetPawnClass) ) { bFoundTarget = True; // 1st go into the Behindview-mode PlayerPawn(pPawn).bBehindview = True; } } // and sound the alarm ASP.AmbientSound = PlayAlarmSound; } } if (bFoundASP) { GotoState('BoomBoom'); } } Begin: } state BoomBoom { function Trigger ( actor Other, pawn EventInstigator ) {} function Timer() { local SpriteBallExplosion f; local vector xyz, tmpvec; local rotator pry; local int posneg; if (fBoom > 1.0) { foreach allactors (class'AirStrikePoint',ASP) { if ( ASP.Tag == Self.Tag ) { SetLocation(ASP.Location); foreach radiusactors (class'Pawn', pPawn, ASP.Radius) { if ( ClassIsChildOf(pPawn.Class, ASP.TargetPawnClass) ) { StopPlayer(pPawn); if (SpecialEvent == '') { PlayerPawn(pPawn).ViewRotation.Pitch = 56000; PlayerPawn(pPawn).ViewRotation.Yaw += 1000; } } } } } } // 2nd let Pawns stop moving, cut players control, // play Look-Around-Anim, and stop playing the alarm sound if (fBoom == 1.0) { foreach allactors (class'AirStrikePoint',ASP) { if ( ASP.Tag == Self.Tag ) { ASP.AmbientSound = None; SetLocation(ASP.Location); foreach radiusactors (class'Pawn', pPawn, ASP.Radius) { if ( ClassIsChildOf(pPawn.Class, ASP.TargetPawnClass) ) { StopPlayer(pPawn); LookAnim(pPawn); if (StartEventAfter == a_AlarmTime_a) StartSpecialEvent(pPawn); if (EndEventAfter == a_AlarmTime_a) EndSpecialEvent(pPawn); } } } } TimePassed = 0.0; TimeToCheck = b_LookTime; fBoom += 0.5; Enable('Tick'); } // 3rd play ByeBye-Animation if (fBoom == 2.0) { foreach allactors (class'AirStrikePoint',ASP) { if ( ASP.Tag == Self.Tag ) { SetLocation(ASP.Location); foreach radiusactors (class'Pawn', pPawn, ASP.Radius) { if ( ClassIsChildOf(pPawn.Class, ASP.TargetPawnClass) ) { if ( StopPlayer(pPawn) ) LookAnim(pPawn); else ByeByeAnim(pPawn); if (StartEventAfter == b_LookTime_b) StartSpecialEvent(pPawn); if (EndEventAfter == b_LookTime_b) EndSpecialEvent(pPawn); } } } } TimePassed = 0.0; TimeToCheck = c_ByeByeTime; fBoom += 0.5; Enable('Tick'); } // 4th play Iginition-Sound if (fBoom == 3.0) { foreach allactors (class'AirStrikePoint',ASP) { if ( ASP.Tag == Self.Tag ) { SetLocation(ASP.Location); ASP.PlaySound(Sound'UnrealShare.Eightball.Ignite',Slot_None); foreach radiusactors (class'Pawn', pPawn, ASP.Radius) { if ( ClassIsChildOf(pPawn.Class, ASP.TargetPawnClass) ) { StopPlayer(pPawn); ByeByeAnim(pPawn); if (StartEventAfter == c_ByeByeTime_c) StartSpecialEvent(pPawn); if (EndEventAfter == c_ByeByeTime_c) EndSpecialEvent(pPawn); } } } } TimePassed = 0.0; TimeToCheck = d_BombingTime; fBoom += 0.5; Enable('Tick'); SetTimer(BombingRate,True); } // 5th spawn explosions around pawns if (fBoom == 3.5) { posneg = Rand(2); if (posneg == 0) posneg = -1; xyz.x = FRand()*10*posneg; xyz.y = FRand()*10*posneg; xyz.z = 1; foreach allactors (class'AirStrikePoint',ASP) { if ( ASP.Tag == Self.Tag ) { SetLocation(ASP.Location); bFoundTarget = False; foreach radiusactors (class'Pawn', pPawn, ASP.Radius) { if ( ClassIsChildOf(pPawn.Class, ASP.TargetPawnClass) ) { bFoundTarget = True; StopPlayer(pPawn); ByeByeAnim(pPawn); f = spawn(class'SpriteBallExplosion',,,pPawn.Location + xyz*Rand(16),rot(16384,0,0)); f.DrawScale = (1.4+FRand()*0.5)*4; } } if ( !bFoundTarget ) { xyz.z = 0.5; tmpvec = Location; tmpvec.X += xyz.X * Rand(32); tmpvec.Y += xyz.Y * Rand(32); tmpvec.Z += xyz.Z * Rand(16); tmpvec.Z += ASP.zAxisCorrection; f = spawn(class'SpriteBallExplosion',,,tmpvec,rot(16384,0,0)); f.DrawScale = (1.4+FRand()*0.5)*4; } } } } // 6th let the last explosion hit the pawn // so... the pawn is dead! if (fBoom == 4.0) { foreach allactors (class'AirStrikePoint',ASP) { if ( ASP.Tag == Self.Tag ) { SetLocation(ASP.Location); foreach radiusactors (class'Pawn', pPawn, ASP.Radius) { if ( ClassIsChildOf(pPawn.Class, ASP.TargetPawnClass) ) { StopPlayer(pPawn); if (StartEventAfter == d_BombingTime_d) StartSpecialEvent(pPawn); if (EndEventAfter == d_BombingTime_d) EndSpecialEvent(pPawn); f = spawn(class'SpriteBallExplosion',,,pPawn.Location + vect(0,0,1)*16,rot(16384,0,0)); f.DrawScale = (1.4+FRand()*0.5)*4; pPawn.Died( None, '', pPawn.Location ); } } } } GotoState('EndOfAirStrike'); } } function Tick( float DeltaTime ) { TimePassed += DeltaTime; if (TimePassed > TimeToCheck) { fBoom += 0.5; Disable('Tick'); } } Begin: TimePassed = 0.0; TimeToCheck = a_AlarmTime; fBoom = 0.5; Enable('Tick'); SetTimer(0.03,True); } state EndOfAirStrike { function Trigger ( actor Other, pawn EventInstigator ) {} function Timer() { if (fBoom == 1.0) { foreach allactors (class'AirStrikePoint',ASP) { if ( ASP.Tag == Self.Tag ) { ASP.AmbientSound = None; } } if (Event!='') foreach AllActors( class 'Actor', A, Event ) A.Trigger( Self, None ); SetLocation(oLocation); GotoState('ReactivateAirStrike'); } } function Tick( float DeltaTime ) { TimePassed += DeltaTime; if (TimePassed > TimeToCheck) { fBoom += 0.5; Disable('Tick'); } } Begin: foreach allactors (class'AirStrikePoint',ASP) { if ( ASP.Tag == Self.Tag ) { ASP.AmbientSound = PlayEndAlarmSound; } } TimePassed = 0.0; TimeToCheck = e_EndAlarmTime; fBoom = 0.5; Enable('Tick'); SetTimer(0.03,True); } state ReactivateAirStrike { function Trigger ( actor Other, pawn EventInstigator ) { if ( Pawn(Other)!=None && Pawn(Other).bIsPlayer ) Other.Instigator.ClientMessage( ReMessage ); } function Timer() { if (fBoom == 1.0) { GotoState('Waiting'); } } function Tick( float DeltaTime ) { TimePassed += DeltaTime; TimeLeft = TimeToCheck - TimePassed; ReMessage = ReactivateMessage $ " " $ string(TimeLeft) $ " seconds!"; if (TimePassed > TimeToCheck) { fBoom += 0.5; Disable('Tick'); } } Begin: TimePassed = 0.0; TimeToCheck = f_ReactivateTime; fBoom = 0.5; Enable('Tick'); SetTimer(0.03,True); } Qp(% VS ZW;VT-9-9(]va!^>aw$@Mz%q!.Tq! s`$; y )?q!C @ ](MQA-Z Pc -j-t'aL='Gq!/a0 .10 iMi ##_> .  666a&!e>6a&!Q>6`a&!k>60a&!^>a&!S>-'Mw. 1> -_z:. &&:. &,aR' Z?a  #??,-(FUq! abcdhqz32Do*d*-t(a(@-sa&!v@@Ma&e?{@/a6 b?,w.*.- @10 o gTn:p[-XDo*d*Q[-Z Pc -j-t'aL=' `X:i jQq1#!c%Pc&-j( GiK.bP/a6 b*Lb-kG -kPq!.10bP*-j' y\zNhqF!/a0 E.10V-Xq! X:z//============================================================================= // SpecialCannon. // // script by N.Bogenrieder (Beppo) // //============================================================================= class SpecialCannon expands Decoration; // Author: Norbert Bogenrieder (Beppo) // The normal Cannon can only shoot on non 'living' Actors such as movers. // This Cannon tracks the actor who activates it until he has reached the // deactivate-health or the deactivate-distance and when he's matching the // target type specified! // In addition it can be used as an automated cannon that finds and destroyes // its targets !!! // Added variables: // DeactivateHealth = deactivate cannon if targets health drops under this entry // TargetType = activate only if target matches this type // TargetTypeClass = if TT_Class is selected check if this class matches targets