Advertisement
Guest User

Untitled

a guest
Nov 13th, 2017
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*******************************************************************************
  2.  * GPLLIProj_FieldMedic generated by Eliot.UELib using UE Explorer.
  3.  * Eliot.UELib © 2009-2015 Eliot van Uytfanghe. All rights reserved.
  4.  * http://eliotvu.com
  5.  *
  6.  * All rights belong to their respective owners.
  7.  *******************************************************************************/
  8. class GPLLIProj_FieldMedic extends ROBallisticProjectile;
  9.  
  10. var() Vector ShakeRotMag;
  11. var() Vector ShakeRotRate;
  12. var() float ShakeRotTime;
  13. var() Vector ShakeOffsetMag;
  14. var() Vector ShakeOffsetRate;
  15. var() float ShakeOffsetTime;
  16. var() Vector RotMag;
  17. var() Vector RotRate;
  18. var() float RotTime;
  19. var() Vector OffsetMag;
  20. var() Vector OffsetRate;
  21. var() float OffsetTime;
  22. var PanzerfaustTrail SmokeTrail;
  23. var Vector Dir;
  24. var bool bRing;
  25. var bool bHitWater;
  26. var bool bWaterStart;
  27. var() Sound ExplosionSound;
  28. var bool bDisintegrated;
  29. var() Sound DisintegrateSound;
  30. var bool bDud;
  31. var() float ArmDistSquared;
  32. var class<DamageType> ImpactDamageType;
  33. var int ImpactDamage;
  34. var() float StraightFlightTime;
  35. var float TotalFlightTime;
  36. var bool bOutOfPropellant;
  37. var Vector OuttaPropLocation;
  38. var bool bHasExploded;
  39. var string StaticMeshRef;
  40. var string ExplosionSoundRef;
  41. var string DisintegrateSoundRef;
  42. var float HealthBoost;
  43. var float ArmorBoost;
  44.  
  45. replication
  46. {
  47.     // Pos:0x000
  48.     reliable if(Role == ROLE_Authority)
  49.         bDud
  50. }
  51.  
  52. static function PreloadAssets()
  53. {
  54.     default.ExplosionSound = Sound(DynamicLoadObject(default.ExplosionSoundRef, class'Sound', true));
  55.     default.DisintegrateSound = Sound(DynamicLoadObject(default.DisintegrateSoundRef, class'Sound', true));
  56.     UpdateDefaultStaticMesh(StaticMesh(DynamicLoadObject(default.StaticMeshRef, class'StaticMesh', true)));
  57.     //return;    
  58. }
  59.  
  60. static function bool UnloadAssets()
  61. {
  62.     default.ExplosionSound = none;
  63.     default.DisintegrateSound = none;
  64.     UpdateDefaultStaticMesh(none);
  65.     return true;
  66.     //return;    
  67. }
  68.  
  69. simulated function PostNetReceive()
  70. {
  71.     // End:0x2E
  72.     if(bHidden && !bDisintegrated)
  73.     {
  74.         Disintegrate(Location, vect(0.0, 0.0, 1.0));
  75.     }
  76.     //return;    
  77. }
  78.  
  79. function Timer()
  80. {
  81.     Destroy();
  82.     //return;    
  83. }
  84.  
  85. function ShakeView()
  86. {
  87.     local Controller C;
  88.     local PlayerController PC;
  89.     local float dist, Scale;
  90.  
  91.     C = Level.ControllerList;
  92.     J0x14:
  93.     // End:0x11B [Loop If]
  94.     if(C != none)
  95.     {
  96.         PC = PlayerController(C);
  97.         // End:0x104
  98.         if((PC != none) && PC.ViewTarget != none)
  99.         {
  100.             dist = VSize(Location - PC.ViewTarget.Location);
  101.             // End:0x104
  102.             if(dist < (DamageRadius * 2.0))
  103.             {
  104.                 // End:0xA9
  105.                 if(dist < DamageRadius)
  106.                 {
  107.                     Scale = 1.0;
  108.                 }
  109.                 // End:0xC9
  110.                 else
  111.                 {
  112.                     Scale = ((DamageRadius * 2.0) - dist) / DamageRadius;
  113.                 }
  114.                 C.ShakeView(ShakeRotMag * Scale, ShakeRotRate, ShakeRotTime, ShakeOffsetMag * Scale, ShakeOffsetRate, ShakeOffsetTime);
  115.             }
  116.         }
  117.         C = C.nextController;
  118.         // [Loop Continue]
  119.         goto J0x14;
  120.     }
  121.     //return;    
  122. }
  123.  
  124. simulated function HitWall(Vector HitNormal, Actor Wall)
  125. {
  126.     // End:0x1F
  127.     if(Instigator != none)
  128.     {
  129.         OrigLoc = Instigator.Location;
  130.     }
  131.     // End:0x8C
  132.     if(!bDud && (VSizeSquared(Location - OrigLoc) < ArmDistSquared) || OrigLoc == vect(0.0, 0.0, 0.0))
  133.     {
  134.         bDud = true;
  135.         LifeSpan = 1.0;
  136.         Velocity = vect(0.0, 0.0, 0.0);
  137.         SetPhysics(2);
  138.     }
  139.     // End:0xA7
  140.     if(!bDud)
  141.     {
  142.         super(Projectile).HitWall(HitNormal, Wall);
  143.     }
  144.     //return;    
  145. }
  146.  
  147. simulated function Explode(Vector HitLocation, Vector HitNormal)
  148. {
  149.     local Controller C;
  150.     local PlayerController LocalPlayer;
  151.  
  152.     bHasExploded = true;
  153.     // End:0x34
  154.     if(bDud)
  155.     {
  156.         Velocity = vect(0.0, 0.0, 0.0);
  157.         LifeSpan = 1.0;
  158.         SetPhysics(2);
  159.     }
  160.     UnresolvedNativeFunction_97(ExplosionSound,, 2.0);
  161.     // End:0x74
  162.     if(EffectIsRelevant(Location, false))
  163.     {
  164.         UnresolvedNativeFunction_97(class'EXhealingFX',,, HitLocation + (HitNormal * float(20)), rotator(HitNormal));
  165.     }
  166.     BlowUp(HitLocation);
  167.     Destroy();
  168.     LocalPlayer = Level.GetLocalPlayerController();
  169.     // End:0xFB
  170.     if((LocalPlayer != none) && VSize(Location - LocalPlayer.ViewTarget.Location) < DamageRadius)
  171.     {
  172.         LocalPlayer.ShakeView(RotMag, RotRate, RotTime, OffsetMag, OffsetRate, OffsetTime);
  173.     }
  174.     C = Level.ControllerList;
  175.     J0x10F:
  176.     // End:0x1B0 [Loop If]
  177.     if(C != none)
  178.     {
  179.         // End:0x199
  180.         if(((PlayerController(C) != none) && C != LocalPlayer) && VSize(Location - PlayerController(C).ViewTarget.Location) < DamageRadius)
  181.         {
  182.             C.ShakeView(RotMag, RotRate, RotTime, OffsetMag, OffsetRate, OffsetTime);
  183.         }
  184.         C = C.nextController;
  185.         // [Loop Continue]
  186.         goto J0x10F;
  187.     }
  188.     //return;    
  189. }
  190.  
  191. simulated function Disintegrate(Vector HitLocation, Vector HitNormal)
  192. {
  193.     bDisintegrated = true;
  194.     bHidden = true;
  195.     // End:0x42
  196.     if(Role == ROLE_Authority)
  197.     {
  198.         SetTimer(0.10, false);
  199.         NetUpdateTime = Level.TimeSeconds - float(1);
  200.     }
  201.     UnresolvedNativeFunction_97(DisintegrateSound,, 2.0);
  202.     // End:0x7D
  203.     if(EffectIsRelevant(Location, false))
  204.     {
  205.         UnresolvedNativeFunction_97(class'SirenNadeDeflect',,, HitLocation, rotator(vect(0.0, 0.0, 1.0)));
  206.     }
  207.     //return;    
  208. }
  209.  
  210. simulated function PostBeginPlay()
  211. {
  212.     local Rotator SmokeRotation;
  213.  
  214.     BCInverse = 1.0 / BallisticCoefficient;
  215.     // End:0x6B
  216.     if(Level.NetMode != NM_DedicatedServer)
  217.     {
  218.         SmokeTrail = UnresolvedNativeFunction_97(class'PanzerfaustTrail', self);
  219.         SmokeTrail.SetBase(self);
  220.         SmokeRotation.Pitch = 32768;
  221.         SmokeTrail.SetRelativeRotation(SmokeRotation);
  222.     }
  223.     OrigLoc = Location;
  224.     // End:0xA0
  225.     if(!bDud)
  226.     {
  227.         Dir = vector(Rotation);
  228.         Velocity = Speed * Dir;
  229.     }
  230.     // End:0xCC
  231.     if(PhysicsVolume.bWaterVolume)
  232.     {
  233.         bHitWater = true;
  234.         Velocity = 0.60 * Velocity;
  235.     }
  236.     super(Projectile).PostBeginPlay();
  237.     //return;    
  238. }
  239.  
  240. function TakeDamage(int Damage, Pawn instigatedBy, Vector HitLocation, Vector Momentum, class<DamageType> DamageType, optional int HitIndex)
  241. {
  242.     // End:0x2A
  243.     if(DamageType == class'SirenScreamDamage')
  244.     {
  245.         Disintegrate(HitLocation, vect(0.0, 0.0, 1.0));
  246.     }
  247.     // End:0x4D
  248.     else
  249.     {
  250.         // End:0x4D
  251.         if(!bDud)
  252.         {
  253.             Explode(HitLocation, vect(0.0, 0.0, 0.0));
  254.         }
  255.     }
  256.     //return;    
  257. }
  258.  
  259. simulated function Destroyed()
  260. {
  261.     // End:0x1A
  262.     if(SmokeTrail != none)
  263.     {
  264.         SmokeTrail.HandleOwnerDestroyed();
  265.     }
  266.     // End:0x57
  267.     if((!bHasExploded && !bHidden) && !bDud)
  268.     {
  269.         Explode(Location, vect(0.0, 0.0, 1.0));
  270.     }
  271.     // End:0x85
  272.     if(bHidden && !bDisintegrated)
  273.     {
  274.         Disintegrate(Location, vect(0.0, 0.0, 1.0));
  275.     }
  276.     super(Actor).Destroyed();
  277.     //return;    
  278. }
  279.  
  280. simulated function HurtRadius(float DamageAmount, float DamageRadius, class<DamageType> DamageType, float Momentum, Vector HitLocation)
  281. {
  282.     local Actor Victims;
  283.     local float damageScale, dist;
  284.     local Vector dirs;
  285.     local int NumKilled;
  286.     local KFMonster KFMonsterVictim;
  287.     local Pawn P;
  288.     local KFPawn KFP;
  289.     local array<Pawn> CheckedPawns;
  290.     local int i;
  291.     local bool bAlreadyChecked;
  292.  
  293.     // End:0x0B
  294.     if(bHurtEntry)
  295.     {
  296.         return;
  297.     }
  298.     bHurtEntry = true;
  299.     // End:0x3BE
  300.     foreach CollidingActors(class'Actor', Victims, DamageRadius, HitLocation)
  301.     {
  302.         // End:0x3BD
  303.         if(((((Victims != self) && HurtWall != Victims) && Victims.Role == ROLE_Authority) && !Victims.UnresolvedNativeFunction_97('FluidSurfaceInfo')) && ExtendedZCollision(Victims) == none)
  304.         {
  305.             dirs = Victims.Location - HitLocation;
  306.             dist = FMax(1.0, VSize(dirs));
  307.             dirs = dirs / dist;
  308.             damageScale = 1.0 - FMax(0.0, (dist - Victims.CollisionRadius) / DamageRadius);
  309.             // End:0x134
  310.             if((Instigator == none) || Instigator.Controller == none)
  311.             {
  312.                 Victims.SetDelayedDamageInstigatorController(InstigatorController);
  313.             }
  314.             // End:0x14A
  315.             if(Victims == LastTouched)
  316.             {
  317.                 LastTouched = none;
  318.             }
  319.             P = Pawn(Victims);
  320.             // End:0x28D
  321.             if(P != none)
  322.             {
  323.                 i = 0;
  324.                 J0x16C:
  325.                 // End:0x1A6 [Loop If]
  326.                 if(i < CheckedPawns.Length)
  327.                 {
  328.                     // End:0x19C
  329.                     if(CheckedPawns[i] == P)
  330.                     {
  331.                         bAlreadyChecked = true;
  332.                         // [Explicit Break]
  333.                         goto J0x1A6;
  334.                     }
  335.                     ++ i;
  336.                     J0x1A6:
  337.                     // [Loop Continue]
  338.                     goto J0x16C;
  339.                 }
  340.                 // End:0x1C2
  341.                 if(bAlreadyChecked)
  342.                 {
  343.                     bAlreadyChecked = false;
  344.                     P = none;
  345.                     continue;                    
  346.                 }
  347.                 KFMonsterVictim = KFMonster(Victims);
  348.                 // End:0x1FA
  349.                 if((KFMonsterVictim != none) && KFMonsterVictim.Health <= 0)
  350.                 {
  351.                     KFMonsterVictim = none;
  352.                 }
  353.                 KFP = KFPawn(Victims);
  354.                 // End:0x233
  355.                 if(KFMonsterVictim != none)
  356.                 {
  357.                     damageScale *= KFMonsterVictim.GetExposureTo(HitLocation);
  358.                 }
  359.                 // End:0x259
  360.                 else
  361.                 {
  362.                     // End:0x259
  363.                     if(KFP != none)
  364.                     {
  365.                         damageScale *= KFP.GetExposureTo(HitLocation);
  366.                     }
  367.                 }
  368.                 CheckedPawns[CheckedPawns.Length] = P;
  369.                 // End:0x286
  370.                 if(damageScale <= float(0))
  371.                 {
  372.                     P = none;
  373.                     continue;                    
  374.                 }
  375.                 // End:0x28D
  376.                 else
  377.                 {
  378.                     P = none;
  379.                 }
  380.             }
  381.             // End:0x2B0
  382.             if(KFPawn(Victims) != none)
  383.             {
  384.                 AfflictTarget(Victims, damageScale);
  385.             }
  386.             // End:0x326
  387.             else
  388.             {
  389.                 Victims.TakeDamage(int(damageScale * DamageAmount), Instigator, Victims.Location - ((0.50 * (Victims.CollisionHeight + Victims.CollisionRadius)) * dirs), (damageScale * Momentum) * dirs, DamageType);
  390.             }
  391.             // End:0x383
  392.             if((Vehicle(Victims) != none) && Vehicle(Victims).Health > 0)
  393.             {
  394.                 Vehicle(Victims).DriverRadiusDamage(DamageAmount, DamageRadius, InstigatorController, DamageType, Momentum, HitLocation);
  395.             }
  396.             // End:0x3BD
  397.             if(((Role == ROLE_Authority) && KFMonsterVictim != none) && KFMonsterVictim.Health <= 0)
  398.             {
  399.                 ++ NumKilled;
  400.             }
  401.         }        
  402.     }    
  403.     // End:0x5E8
  404.     if((((LastTouched != none) && LastTouched != self) && LastTouched.Role == ROLE_Authority) && !LastTouched.UnresolvedNativeFunction_97('FluidSurfaceInfo'))
  405.     {
  406.         Victims = LastTouched;
  407.         LastTouched = none;
  408.         dirs = Victims.Location - HitLocation;
  409.         dist = FMax(1.0, VSize(dirs));
  410.         dirs = dirs / dist;
  411.         damageScale = FMax(Victims.CollisionRadius / (Victims.CollisionRadius + Victims.CollisionHeight), 1.0 - FMax(0.0, (dist - Victims.CollisionRadius) / DamageRadius));
  412.         // End:0x4F2
  413.         if((Instigator == none) || Instigator.Controller == none)
  414.         {
  415.             Victims.SetDelayedDamageInstigatorController(InstigatorController);
  416.         }
  417.         // End:0x515
  418.         if(KFPawn(Victims) != none)
  419.         {
  420.             AfflictTarget(Victims, damageScale);
  421.         }
  422.         // End:0x58B
  423.         else
  424.         {
  425.             Victims.TakeDamage(int(damageScale * DamageAmount), Instigator, Victims.Location - ((0.50 * (Victims.CollisionHeight + Victims.CollisionRadius)) * dirs), (damageScale * Momentum) * dirs, DamageType);
  426.         }
  427.         // End:0x5E8
  428.         if((Vehicle(Victims) != none) && Vehicle(Victims).Health > 0)
  429.         {
  430.             Vehicle(Victims).DriverRadiusDamage(DamageAmount, DamageRadius, InstigatorController, DamageType, Momentum, HitLocation);
  431.         }
  432.     }
  433.     // End:0x657
  434.     if(Role == ROLE_Authority)
  435.     {
  436.         // End:0x629
  437.         if(NumKilled >= 4)
  438.         {
  439.             KFGameType(Level.Game).DramaticEvent(0.050);
  440.         }
  441.         // End:0x657
  442.         else
  443.         {
  444.             // End:0x657
  445.             if(NumKilled >= 2)
  446.             {
  447.                 KFGameType(Level.Game).DramaticEvent(0.030);
  448.             }
  449.         }
  450.     }
  451.     bHurtEntry = false;
  452.     //return;    
  453. }
  454.  
  455. simulated function ProcessTouch(Actor Other, Vector HitLocation)
  456. {
  457.     // End:0x38
  458.     if(((Other == none) || Other == Instigator) || Other.Base == Instigator)
  459.     {
  460.         return;
  461.     }
  462.     // End:0x4A
  463.     if(KFBulletWhipAttachment(Other) != none)
  464.     {
  465.         return;
  466.     }
  467.     // End:0xB5
  468.     if(((KFHumanPawn(Other) != none) && Instigator != none) && KFHumanPawn(Other).PlayerReplicationInfo.Team.TeamIndex == Instigator.PlayerReplicationInfo.Team.TeamIndex)
  469.     {
  470.         return;
  471.     }
  472.     // End:0xD4
  473.     if(Instigator != none)
  474.     {
  475.         OrigLoc = Instigator.Location;
  476.     }
  477.     // End:0x190
  478.     if(!bDud && (VSizeSquared(Location - OrigLoc) < ArmDistSquared) || OrigLoc == vect(0.0, 0.0, 0.0))
  479.     {
  480.         // End:0x165
  481.         if(Role == ROLE_Authority)
  482.         {
  483.             AmbientSound = none;
  484.             UnresolvedNativeFunction_97(sound'PTRD_deflect04',, 2.0);
  485.             Other.TakeDamage(ImpactDamage, Instigator, HitLocation, Normal(Velocity), ImpactDamageType);
  486.         }
  487.         bDud = true;
  488.         Velocity = vect(0.0, 0.0, 0.0);
  489.         LifeSpan = 1.0;
  490.         SetPhysics(2);
  491.     }
  492.     // End:0x1BD
  493.     if(!bDud)
  494.     {
  495.         Explode(HitLocation, Normal(HitLocation - Other.Location));
  496.     }
  497.     //return;    
  498. }
  499.  
  500. simulated function Tick(float DeltaTime)
  501. {
  502.     SetRotation(rotator(Normal(Velocity)));
  503.     // End:0x48
  504.     if(!bOutOfPropellant)
  505.     {
  506.         // End:0x35
  507.         if(TotalFlightTime <= StraightFlightTime)
  508.         {
  509.             TotalFlightTime += DeltaTime;
  510.         }
  511.         // End:0x48
  512.         else
  513.         {
  514.             OuttaPropLocation = Location;
  515.             bOutOfPropellant = true;
  516.         }
  517.     }
  518.     // End:0x68
  519.     if(bOutOfPropellant && Physics != 2)
  520.     {
  521.         SetPhysics(2);
  522.     }
  523.     //return;    
  524. }
  525.  
  526. simulated function Landed(Vector HitNormal)
  527. {
  528.     SetPhysics(0);
  529.     // End:0x23
  530.     if(!bDud)
  531.     {
  532.         Explode(Location, HitNormal);
  533.     }
  534.     // End:0x26
  535.     else
  536.     {
  537.         Destroy();
  538.     }
  539.     //return;    
  540. }
  541.  
  542. function AfflictTarget(Actor Victims, float Scale)
  543. {
  544.     local KFHumanPawn targ;
  545.     local int MedicReward;
  546.     local KFPlayerReplicationInfo PRI;
  547.     local float HealSum;
  548.  
  549.     targ = KFHumanPawn(Victims);
  550.     // End:0x22
  551.     if(Role != ROLE_Authority)
  552.     {
  553.         return;
  554.     }
  555.     // End:0x2B8
  556.     if(float(targ.Health) < targ.HealthMax)
  557.     {
  558.         MedicReward = int(HealthBoost * Scale);
  559.         PRI = KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo);
  560.         // End:0xB7
  561.         if((PRI != none) && PRI.ClientVeteranSkill != none)
  562.         {
  563.             MedicReward *= PRI.ClientVeteranSkill.static.GetHealPotency(PRI);
  564.         }
  565.         HealSum = float(MedicReward);
  566.         // End:0x14A
  567.         if(((float(targ.Health) + targ.healthToGive) + float(MedicReward)) > targ.HealthMax)
  568.         {
  569.             MedicReward = int(targ.HealthMax - (float(targ.Health) + targ.healthToGive));
  570.             // End:0x14A
  571.             if(MedicReward < 0)
  572.             {
  573.                 MedicReward = 0;
  574.             }
  575.         }
  576.         targ.GiveHealth(int(HealSum), int(targ.HealthMax));
  577.         // End:0x2B8
  578.         if(PRI != none)
  579.         {
  580.             // End:0x1C4
  581.             if((MedicReward > 0) && KFSteamStatsAndAchievements(PRI.SteamStatsAndAchievements) != none)
  582.             {
  583.                 KFSteamStatsAndAchievements(PRI.SteamStatsAndAchievements).AddDamageHealed(MedicReward, true);
  584.             }
  585.             MedicReward = int((FMin(float(MedicReward), targ.HealthMax) / targ.HealthMax) * float(60));
  586.             PRI.Score += float(MedicReward);
  587.             PRI.ThreeSecondScore += MedicReward;
  588.             PRI.Team.Score += float(MedicReward);
  589.             // End:0x26B
  590.             if(KFHumanPawn(Instigator) != none)
  591.             {
  592.                 KFHumanPawn(Instigator).AlphaAmount = 255;
  593.             }
  594.             // End:0x2B8
  595.             if(GrenadePistolLLI(Instigator.Weapon) != none)
  596.             {
  597.                 GrenadePistolLLI(Instigator.Weapon).ClientSuccessfulHeal(targ.PlayerReplicationInfo.PlayerName);
  598.             }
  599.         }
  600.     }
  601.     // End:0x302
  602.     if(targ.ShieldStrength < float(100))
  603.     {
  604.         targ.ShieldStrength = float(Min(int(targ.ShieldStrength + (ArmorBoost * Scale)), 100));
  605.     }
  606.     //return;    
  607. }
  608.  
  609. defaultproperties
  610. {
  611.     ShakeRotMag=(X=600.0,Y=600.0,Z=600.0)
  612.     ShakeRotRate=(X=12500.0,Y=12500.0,Z=12500.0)
  613.     ShakeRotTime=6.0
  614.     ShakeOffsetMag=(X=5.0,Y=10.0,Z=5.0)
  615.     ShakeOffsetRate=(X=300.0,Y=300.0,Z=300.0)
  616.     ShakeOffsetTime=3.50
  617.     RotMag=(X=700.0,Y=700.0,Z=700.0)
  618.     RotRate=(X=12500.0,Y=12500.0,Z=12500.0)
  619.     RotTime=6.0
  620.     OffsetMag=(X=5.0,Y=10.0,Z=7.0)
  621.     OffsetRate=(X=300.0,Y=300.0,Z=300.0)
  622.     OffsetTime=3.50
  623.     ExplosionSound=SoundGroup'KF_MP7Snd.Dart.MP7_DartImpact'
  624.     ImpactDamageType=Class'KFMod.DamTypeRocketImpact'
  625.     StraightFlightTime=0.250
  626.     HealthBoost=20.0
  627.     ArmorBoost=30.0
  628.     AmbientVolumeScale=5.0
  629.     Speed=3000.0
  630.     MaxSpeed=4000.0
  631.     Damage=50.0
  632.     DamageRadius=400.0
  633.     MomentumTransfer=5000.0
  634.     MyDamageType=Class'KFMod.DamTypeM79Grenade'
  635.     ExplosionDecal=Class'KFMod.KFScorchMark'
  636.     DrawType=8
  637.     StaticMesh=StaticMesh'GrenadePistolLLI_A.GrenadePistolLLI_gren_st'
  638.     bUpdateSimulatedPosition=true
  639.     LifeSpan=10.0
  640.     Skins(0)=Texture'GrenadePistolLLI_A.GrenadePistolLLI_T.GrenadePistolLLI_st_med'
  641.     bUnlit=false
  642.     SoundVolume=255
  643.     SoundRadius=250.0
  644.     TransientSoundVolume=2.0
  645.     TransientSoundRadius=500.0
  646.     bNetNotify=true
  647.     bBlockHitPointTraces=false
  648.     ForceRadius=300.0
  649.     ForceScale=10.0
  650. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement