Įƒ*žDy@.W-Hō*cß“gæEµÓlńČõ¶¬.yNone AttachPawn BoulderDashRockOn DetachPawn TakeDamageSystemCoreEngineUnrealIAltFire AltFiring ScriptedPawnCrushedBeginNali AdjustAimClientAttachPawn ShakeViewCheckVisibilityPawnFlyingClientInstantFlash SpawnChunks ItemNameBoulderDashNCTextureTickHitWall Destroyed ProcessTouchPickupMessagebMeshEnviroMapPhysicsPickupAmmoCountPostBeginPlay BoulderGun MakeSound LifeSpan DeathMessagebCollideActorsCollisionHeight FlockPawnFireBYX NetPriorityRoll ScriptTextZPitchWeapon Projectile InventoryMoverActor DrawScale PlayerPawn Location BoolPropertySoundDampeningRole aimerrorClassAltProjectileSpeedCalcDrawOffset shakemag shakevert shaketimePackageDamage bWarnTargetStartP HitLocation HitNormal DeltaTimeOther TextBufferbDamageTriggeredBase Instigator bNetInitialOwnerValuespeed VelocityObject bPointing FireOffset AltFireSound Misc1Sound AdjustedAimMomentumTransfer ImpactSoundWall Function FlakCannonStateRotatorVectorStruct hitdamage WeaponLightRealHitNormal UnrealShareBigRock Boulder1AncientA_bsa IntPropertyStructPropertyBoardAdjustederAim CrazyMoron TempLocation BytePropertyObjectPropertyFloatPropertyHealth  „•Ē!‚š:œ:$-Ćš:œ:$"’’’’’’’’’’×ŌU­•sĀ’„Ņ”õ‚zx2›‚zx2›‚zx2›™Bž%0‚zx2›‚zx2›„Ņ”õ‚zx2›‚zx2›‚zx2›‚zx2›‚zx2›„Ņ”õ„Ņ”õ„Ņ”õ„Ņ”õ„Ņ”õ„Ņ”õ„Ņ”õ„Ņ”õ˜ŠŪ Ķū †!&$)$ĄA,€‚€‚ ˆˆ ””ˆˆˆ€„€„ˆˆ ˆˆ“#)ˆ  ’’ ’’’’’’’’-.’’’’’’’’"’’’’’’’’’’Œ@ˆå×ŌU­ †(S€€ˆ!ö64‚w* r* Ā#s© Š©Ä +”+)‚w* r* Āq4//============================================================================= // BoulderDash // // A flying boulder that players can ride on. Simulated to be perfectly // smooth and not too laggy online. (Fire these with the BoulderGun.) // // By Missileguy //============================================================================= class BoulderDash expands Boulder1; var Pawn CrazyMoron; var vector TempLocation; replication { reliable if ( Role == ROLE_Authority && bNetInitial ) CrazyMoron; reliable if ( Role == ROLE_Authority ) ClientAttachPawn; } function PostBeginPlay() { NetPriority = class'PlayerPawn'.default.NetPriority; Super(Projectile).PostBeginPlay(); } function AttachPawn(Pawn P) { if ( P != None && CrazyMoron == None ) { CrazyMoron = P; RockOn(); ClientAttachPawn(P); } } simulated function ClientAttachPawn(Pawn P) { if ( P != None && CrazyMoron == None ) { CrazyMoron = P; RockOn(); } } simulated function DetachPawn() { if ( CrazyMoron != None ) { CrazyMoron.SetBase(None); CrazyMoron.SetPhysics(PHYS_Falling); CrazyMoron = None; } } simulated function Destroyed() { DetachPawn(); Super.Destroyed(); } simulated function Tick(float DeltaTime) { Super.Tick(DeltaTime); if ( CrazyMoron != None && (CrazyMoron.Health < 1 || VSize(Location - CrazyMoron.Location) > 500) ) DetachPawn(); else if ( CrazyMoron != None ) RockOn(); } // Put the player on the rock and attach him/her/it to it. // This is done on both the server and the client(s) for (seemingly) // lag-free use online!!! :D simulated function RockOn() { TempLocation = Location; TempLocation.Z += (CollisionHeight + CrazyMoron.CollisionHeight); CrazyMoron.SetLocation(TempLocation); CrazyMoron.Velocity = Velocity; CrazyMoron.SetBase(Self); } auto state Flying { function ProcessTouch(Actor Other, Vector HitLocation) { local int hitdamage; if ( Other == None || Other == CrazyMoron ) return; if ( (CrazyMoron != None && CrazyMoron.Health > 0) || !Other.IsA('Pawn') || (Other.IsA('ScriptedPawn') && !Other.IsA('Nali')) || Other.IsA('FlockPawn') ) { PlaySound(ImpactSound, SLOT_Interact, DrawScale/10); Hitdamage = Damage * 0.00002 * (DrawScale**3) * speed; Other.TakeDamage(hitdamage, instigator,HitLocation, (35000.0 * Normal(Velocity)), 'crushed' ); } else { AttachPawn(Pawn(Other)); } } simulated function HitWall(vector HitNormal, actor Wall) { local vector RealHitNormal; local int hitdamage; if ( (CrazyMoron == None || CrazyMoron.Health <= 0) && Wall.IsA('Pawn') && (!Wall.IsA('ScriptedPawn') || Wall.IsA('Nali')) ) AttachPawn(Pawn(Wall)); else { MakeSound(); PlaySound(ImpactSound, SLOT_Interact, DrawScale/10); if ( (Role == ROLE_Authority) && (Mover(Wall) != None) && Mover(Wall).bDamageTriggered ) Wall.TakeDamage( Damage, instigator, Location, MomentumTransfer * Normal(Velocity), ''); if ( Pawn(Wall) != None ) { Hitdamage = Damage * 0.00002 * (DrawScale**3) * speed; Wall.TakeDamage(hitdamage, instigator, Location, (35000.0 * Normal(Velocity)), 'crushed' ); } //speed = VSize(velocity); // er... SpawnChunks(4); Destroy(); } } Begin: //Gravity is a myth. } 4/-w*a**o‚$* Ŗ>µŖ „ El„Y‚w*6„–ž& ±įŲ ?ōjjw* €!R“` ø6Ÿ ®¢¢a   ‘‘a* Ą'" 886'-Ø'ׇ §‡w.Š‡*.Š‡ĶĢĢ¾#€"DįC>C.Š‡±°²‡b.„‡“Ž.„‡ ®DÆ'-µåŽŽ6«%6¦%a ŗ !×Ō?,"×××Õ6¤’Õ6£’Õ6Ÿ’ a  !  ‘Ō9Ž —a! ff¦?ĶĢL=‡$aø$«š™?.„‡“‡$a·$«.„‡“€@q!  Į_Ė„r* r  „„„‚w*—ž%a/!*‚a/! a/!a/!*a³$¬–?, D«««”¬Å§7Ŗ–?,—(šÕøGā‘! .„ €¾ &+'nl'w * a-Ø'ׇ §žw.Š‡*.Š‡ĶĢĢ¾#€"DįC>C.Š‡±°²‡b.„‡“Ž.„‡ ®DÆ'-µåŽ  Ž6« %6¦ %a ŗ !×Ō ?,"×××Õ6¤’ Õ6£’Õ6Ÿ’a  !  ‘Ō9Ž— š a! ff¦?ĶĢL=‡$aø$«š™?.„‡“‡$a·$«.„‡“€@q!  T(class BoulderGun expands FlakCannon; var BoulderDash Board; #exec obj load file=..\Textures\Ancient.utx // Fire chunks function Fire( float Value ) { local Vector Start, X,Y,Z; local BoulderDash B; local rotator AdjustederAim; //bFireMem = false; //bAltFireMem = false; if (true) { if ( Board != None ) Board.Destroy(); CheckVisibility(); bPointing=True; Start = Owner.Location + CalcDrawOffset(); if ( PlayerPawn(Owner) != None ) { PlayerPawn(Owner).ClientInstantFlash( -0.4, vect(650, 450, 190)); PlayerPawn(Owner).ShakeView(ShakeTime, ShakeMag, ShakeVert); } Owner.MakeNoise(Pawn(Owner).SoundDampening); AdjustedAim = pawn(owner).AdjustAim(AltProjectileSpeed, Start, AimError, True, bWarnTarget); GetAxes(AdjustedAim,X,Y,Z); AdjustederAim = AdjustedAim; AdjustederAim.Roll = 0; AdjustederAim.Pitch = 0; Spawn(class'WeaponLight',,'',Start+X*20,rot(0,0,0)); Start = Start + FireOffset.X * X + FireOffset.Y * Y + FireOffset.Z * Z; B = Spawn( class 'BoulderDash',, '', Start, AdjustederAim); B.Velocity = Vector(AdjustedAim) * B.speed; B.AttachPawn(Instigator); Board = B; PlayAnim('AltFire', 1.3, 0.05); Owner.PlaySound(Misc1Sound, SLOT_None, 0.6*Pawn(Owner).SoundDampening); Owner.PlaySound(AltFireSound, SLOT_None,Pawn(Owner).SoundDampening*4.0); GoToState('AltFiring'); } } function AltFire( float Value ) { local Vector Start, X,Y,Z; local BoulderDash B; local rotator AdjustederAim; //bFireMem = false; //bAltFireMem = false; if (true) { CheckVisibility(); bPointing=True; Start = Owner.Location + CalcDrawOffset(); if ( PlayerPawn(Owner) != None ) { PlayerPawn(Owner).ClientInstantFlash( -0.4, vect(650, 450, 190)); PlayerPawn(Owner).ShakeView(ShakeTime, ShakeMag, ShakeVert); } Owner.MakeNoise(Pawn(Owner).SoundDampening); AdjustedAim = pawn(owner).AdjustAim(AltProjectileSpeed, Start, AimError, True, bWarnTarget); GetAxes(AdjustedAim,X,Y,Z); AdjustederAim = AdjustedAim; AdjustederAim.Roll = 0; AdjustederAim.Pitch = 0; Spawn(class'WeaponLight',,'',Start+X*20,rot(0,0,0)); Start = Start + FireOffset.X * X + FireOffset.Y * Y + FireOffset.Z * Z; B = Spawn( class 'BoulderDashNC',, '', Start, AdjustederAim); B.Velocity = Vector(AdjustedAim) * B.speed; PlayAnim('AltFire', 1.3, 0.05); Owner.PlaySound(Misc1Sound, SLOT_None, 0.6*Pawn(Owner).SoundDampening); Owner.PlaySound(AltFireSound, SLOT_None,Pawn(Owner).SoundDampening*4.0); GoToState('AltFiring'); } } Å%*t8 rx‚‚„r*˜ž%a/!*„a/! a/!.„p%a³$¬–?, ž‚‚š:œ:$w.™*.™-½*D”šÕ?¼ā‘!ew.„*D«««”¬Å§7Ŗ–?,—(šÕøGā‘! ,a €ˆ›($$’’’’’’’’€’’’’’’’’’’2+5Ķį†›ĢS‘n‚zx2›ŠŪ ĶūŠŪ Ķū‚zx2›„Ņ”õ„Ņ”õ×ŌU­×ŌU­‚zx2›„Ņ”õ‚zx2›„Ņ”õ×ŌU­‚zx2›ŠŪ ĶūŠŪ Ķū‚zx2›„Ņ”õ„Ņ”õ×ŌU­×ŌU­×ŌU­‚zx2›„Ņ”õ‚zx2›„Ņ”õ †""9']:9%o was pulverized by %k's antigravity boulder surfboard.]-,You got the Boulder Boarder. Aim carefully.]Boulder BoarderČ Óˆclass BoulderDashNC expands BoulderDash; auto state Flying { Begin: sleep(0.1); SetCollision(True,True,True); } C aĶĢĢ=a''' ’’ ’’’’’’’’F@’’’’8F@’’’’@’’’’4@ż’’’Xvž’’’Tfś’’’e@ż’’’p@’’’’:@ż’’’a@’’’’5F pū’’’]@ż’’’vpž’’’;pž’’’Wpū’’’Zwü’’’=fś’’’d@ó’’’lwž’’’9wō’’’V@ż’’’@@’’’’7vž’’’R@ó’’’buž’’’>@ż’’’Ooü’’’xwų’’’2@ż’’’wwō’’’Gwž’’’)wų’’’-wų’’’.až’’’oģ’’’3aÓ’’’B<ū’’’Ywž’’’/až’’’oģ’’’0@ż’’’o@’’’’6wū’’’Awū’’’?wū’’’Cwū’’’Ewū’’’Dvō’’’_cė’’’<ū’’’H@ó’’’kvū’’’[vū’’’\Fj@Ē’’’h@ż’’’coō’’’^<ē’’’Paå’’’+cŹ’’’aå’’’ aĮ’’’aŹ’’’#<ž’’’Saž’’’#aĢ’’’FmFŗ’’’Q¹’’’nsv•ME)` R"%N _"‰'I l"‰$I y"', F#‰$r S#‰'r `#‰'. m#$, z#‰t G$+q T$‰$. a$J n$J {$¬)g H%‰'- T%¬%g a%‰$- m%‰$2 z%‰'2 G&»“6T&YJ' !M c(‰%K o(‹:|(‹Ā#+v)‹7a*14|4X+‹