*~@'p'@=% U,VGj-N'NoneEngineAdvancedEngineCore BDClaymoreSystem DOTZEngineMesh PickupClassLocalRandSpinClaymoreWeaponHitWall StaticMeshSpawnProjectileClaymoreAmmunitionLanded BeginPlayPostBeginPlay BounceSoundNotify_SpawnProjectile SpawnDelayClaymoreAttachmentUserClaymorePickupVectorExplosionEmitterbCanDamageSelf WeaponModeClaymoreProjectile ClaymoreFire HitAnimNameCrouchIdleAnimNameStandIdleAnimName FireAnimName MultiTimer ClaymoreHitGrenadeAmmunitionClassSpawnProjectileEx OfficialName HitSpreadFullAmmoMessageActionPickupMessageClaymoreStandIdle ItemNameCollisionRadius DrawTypeCollisionHeightGetViewRotation SoundVolumePhysicsExplodeDamagebFixedRotationDirMomentumTransfer GetFireStart ProcessTouch LifeSpanAttachmentClass MyDamageTypeClaymoreCrouchIdleProjectileFire FireOffset DamageRadiusbRotateToDesired ReloadCountAutoSwitchPriorityInventoryGroupPickupAmmoCountInventoryTypePawnAnimationPackageMaxAmmoProjectileClass FireSound AmmoName aimerror AmmoTypebBounceDesiredRotation AdjustedAimSpeed AdjustAim spinRateDirStart HitLocation RotationRate HitNormalOther InstigatorOwnerWall ScriptTextAdvancedWeaponXYZ LocationAdvancedWeaponAttachmenttimerID Rotation VelocityWeapon ProjectilePawn SkeletalMeshActorYawStaticReticuleRollRangedPitchDOTZGrenadeWeaponDOTZProjectileBaseDOTZGrenadePickupDOTZBulletDamageDOTZAmmunitionBase BBParticles DOTZXWeaponsBBPGrenadeImpactRangedGrenadeBounceMixdownMixdownRangedGrenadeShootSoundClassPackageConst SpawnDir SpawnLocnSPAWN_DELAY_TIMER GRENADEIDBounced TextBufferObject FunctionRotatorStructStructProperty ClaymoreMine3PClayObjectPropertyFloatProperty BoolProperty IntProperty 3pClaymore$2Zƽ(]! Can't carry more Claymore Mines$ )]('Press Action to take the Claymore MineD #2 ?+F"G:    I¨)6H!%*x8~}eb3$C>$HD5$ȯG1- 4?8$C0,$A.$ A 2gРw̃ebL9L9+$?E]3PClay.3PClayAnim! *;#'$&]Claymore MineI C"@A"=:C AB9 +]Claymore Mined)//Braindead@UndeadGames.com class ClaymoreProjectile extends DOTZProjectileBase; const GRENADEID = 223232; var int Bounced; var sound BounceSound; /***************************************************************** * PostBeginPlay * Give your newly spawned projectile a velocity ***************************************************************** */ function PostBeginPlay() { local vector Dir; //Give your projectile a velocity Dir = vector(Rotation); velocity = (speed * Dir) + owner.velocity; LocalRandSpin(12000); if (abs(RotationRate.Pitch)<10000){RotationRate.Pitch=10000;} if (abs(RotationRate.Roll)<10000) {RotationRate.Roll=10000;} SetMultiTimer(GRENADEID, 3, false); Super.PostBeginPlay(); } /***************************************************************** * RandSpin ***************************************************************** */ function LocalRandSpin(float spinRate) { DesiredRotation = RotRand(); RotationRate.Yaw = spinRate * 2 *FRand() - spinRate; RotationRate.Pitch = spinRate * 2 *FRand() - spinRate; RotationRate.Roll = spinRate * 2 *FRand() - spinRate; } /***************************************************************** * MultiTimer * Grenades explode after 3 seconds ***************************************************************** */ function MultiTimer(int timerID){ // if (timerID == GRENADEID) { // Explode(Location, vect(0,0,1)); // } // else super.MultiTimer( timerID ); } /***************************************************************** * Landed ***************************************************************** */ simulated function Landed( vector HitNormal ){ HitWall( HitNormal, None ); } /***************************************************************** * HitWall ***************************************************************** */ simulated function HitWall(vector HitNormal, actor Wall){ Velocity = 0.4*((Velocity dot HitNormal) * HitNormal * -2 + Velocity); speed = VSize(Velocity); //PlaySound(ImpactSound, SLOT_Misc, 1.5,,150,,true); if ( Velocity.Z > 400 ) Velocity.Z = 0.5 * (400 + Velocity.Z); else if ( speed < 20 ) { bBounce = False; SetPhysics(PHYS_None); } PlaySound(BounceSound); } /** */ function ProcessTouch(Actor Other, Vector HitLocation) { Explode(Location, vect(0,0,1)); } //=========================================================================== // DefaultProperties //===========================================================================  Kb? /6 9D  .%   `//Braindead@UndeadGames.com class ClaymorePickup extends DOTZGrenadePickup placeable; //=========================================================================== // DefaultProperties //=========================================================================== <0a ( :  **   438299  ;Fd9?69?'6'9?69?'6'ah@@( T//Braindead@UndeadGames.com class ClaymoreAttachment extends AdvancedWeaponAttachment; //=========================================================================== // DefaultProperties //===========================================================================  #ta@69D9?,69D9?,69D9?, y//Braindead@UndeadGames.com class ClaymoreWeapon extends DOTZGrenadeWeapon config(user); // Manually tune to be in-synch w/ throw anim. See also FireOffset. var() float SpawnDelay; // internal... var private Rotator SpawnDir; var private Vector SpawnLocn; const SPAWN_DELAY_TIMER = 4382; /** * A quick hack, since the default props don't seem to be sticking. */ function BeginPlay() { super.BeginPlay(); default.staticReticule = none; StaticReticule = none; } /** */ function SpawnProjectile(){ local Vector Start, X,Y,Z; Owner.MakeNoise(1.0); GetAxes(Instigator.GetViewRotation(),X,Y,Z); Start = GetFireStart(X,Y,Z); AdjustedAim = Instigator.AdjustAim(AmmoType, Start, AimError); // all timer for the animation to get to the release point before // spawning... SpawnDir = AdjustedAim; SpawnLocn = start; DOTZAmmunitionBase(AmmoType).SpawnProjectileEx( SpawnLocn, SpawnDir ,Instigator); } /** * Replaces default weapon behaviour so that projectile is spawned * during the fire animation (instead of before). */ function ProjectileFire() { SetMultiTimer( SPAWN_DELAY_TIMER, spawnDelay, false ); } /***************************************************************** * Notify_SpawnProjectile * Called from the animation to let us know the best point to release the grenade ***************************************************************** */ function Notify_SpawnProjectile(){ SpawnProjectile(); } //=========================================================================== // DefaultProperties //=========================================================================== "4 < *  223232  E>9?{69?6?9?69?,-(o$a P//Braindead@UndeadGames.com class ClaymoreAmmunition extends DOTZAmmunitionBase; //=========================================================================== // DefaultProperties //=========================================================================== "&7V 2#? '||{i{DG|{H{EHdGFHU{{|{C{f{e{sOn{gOlM_LXMO{\{L{q JLYEE{p{o{M|u|K|ILKHNLk{a{}{OE7E MJE<EP|tHME"ENL{rHc|mzw{v|xzyH`Oj{zhPhIQ D'S P'"V ]'R j'sw'_ j*^ w*] D+kQ+ |,~ I- V-`b- B/ V O/_\/ J{1[4o)E6 vt_[4kja<'Uf|f'[gB Bh@ NhKXh [4_cj gBo[4Dip"mb I"UA w JC [4[M"Z h7.u%W c%T p