Advertisement
Guest User

sates

a guest
Dec 5th, 2013
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.75 KB | None | 0 0
  1. //audio
  2. datablock AudioProfile(HotShotLasgunFireSound)
  3. {
  4. filename = "./Hotshot_shot.wav";
  5. description = AudioClose3d;
  6. preload = true;
  7. };
  8.  
  9. datablock ParticleData(RED_HotShotLasgunTrailParticle)
  10. {
  11. dragCoefficient = 0.0;
  12. windCoefficient = 0.0;
  13. gravityCoefficient = 0.0;
  14. inheritedVelFactor = 0.0625;
  15. constantAcceleration = 0.0;
  16. lifetimeMS = 360;
  17. lifetimeVarianceMS = 0;
  18. spinSpeed = 10.0;
  19. spinRandomMin = -50.0;
  20. spinRandomMax = 50.0;
  21. useInvAlpha = false;
  22. animateTexture = false;
  23. //framesPerSec = 1;
  24.  
  25. textureName = "base/data/particles/dot";
  26. //animTexName = "~/data/particles/dot";
  27.  
  28. // Interpolation variables
  29. colors[0] = "1 0.0 0 1";
  30. colors[1] = "1 0.25 0.25 1";
  31. sizes[0] = 0.2;
  32. sizes[1] = 0.15;
  33. times[0] = 0.0;
  34. times[1] = 1.0;
  35. };
  36.  
  37. datablock ParticleEmitterData(RED_HotShotLasgunTrailEmitter)
  38. {
  39. ejectionPeriodMS = 1;
  40. periodVarianceMS = 0;
  41.  
  42. ejectionVelocity = 0; //0.25;
  43. velocityVariance = 0; //0.10;
  44.  
  45. ejectionOffset = 0;
  46.  
  47. thetaMin = 0.0;
  48. thetaMax = 90.0;
  49.  
  50. particles = RED_HotShotLasgunTrailParticle;
  51.  
  52. useEmitterColors = true;
  53. };
  54. datablock ParticleData(BLU_HotShotLasgunTrailParticle : RED_HotShotLasgunTrailParticle)
  55. {
  56. colors[0] = "0 0.0 1 1";
  57. colors[1] = "0.25 0.25 1 1";
  58. };
  59.  
  60. datablock ParticleEmitterData(BLU_HotShotLasgunTrailEmitter : RED_HotShotLasgunTrailEmitter)
  61. {
  62. particles = BLU_HotShotLasgunTrailParticle;
  63. };
  64. datablock ProjectileData(RED_HotShotLasgunTracerProjectile)
  65. {
  66. directDamage = 5;
  67. directDamageType = $DamageType::Gun;
  68. radiusDamageType = $DamageType::Gun;
  69.  
  70. brickExplosionRadius = 0;
  71. brickExplosionImpact = true; //destroy a brick if we hit it directly?
  72. brickExplosionForce = 10;
  73. brickExplosionMaxVolume = 1; //max volume of bricks that we can destroy
  74. brickExplosionMaxVolumeFloating = 2; //max volume of bricks that we can destroy if they aren't connected to the ground
  75.  
  76. impactImpulse = 100;
  77. verticalImpulse = 50;
  78. //explosion = gunExplosion;
  79. particleEmitter = "RED_HotShotLasgunTrailEmitter";
  80.  
  81. muzzleVelocity = 200;
  82. velInheritFactor = 0;
  83.  
  84. armingDelay = 0;
  85. lifetime = 1000;
  86. fadeDelay = 700;
  87. bounceElasticity = 0.5;
  88. bounceFriction = 0.10;
  89. isBallistic = true;
  90. gravityMod = 0.0;
  91.  
  92. hasLight = false;
  93. lightRadius = 3.0;
  94. lightColor = "0 0 0.5";
  95. };
  96. datablock ProjectileData(BLU_HotShotLasgunTracerProjectile : RED_HotShotLasgunTracerProjectile)
  97. {
  98. particleEmitter = "BLU_HotShotLasgunTrailEmitter";
  99. };
  100.  
  101. datablock ParticleData(RED_HotShotLasgunExplosionParticle)
  102. {
  103. dragCoefficient = 4;
  104. gravityCoefficient = 0;
  105. inheritedVelFactor = 0.2;
  106. constantAcceleration = 0.0;
  107. lifetimeMS = 250;
  108. lifetimeVarianceMS = 125;
  109. textureName = "base/data/particles/dot";
  110. spinSpeed = 10.0;
  111. spinRandomMin = -50.0;
  112. spinRandomMax = 50.0;
  113. colors[0] = "1.0 0.25 0.25 1";
  114. colors[1] = "1.0 0.75 0.75 0.0";
  115. sizes[0] = 1;
  116. sizes[1] = 0.25;
  117.  
  118. useInvAlpha = false;
  119. };
  120. datablock ParticleEmitterData(RED_HotShotLasgunExplosionEmitter)
  121. {
  122. ejectionPeriodMS = 4;
  123. periodVarianceMS = 0;
  124. ejectionVelocity = 4;
  125. velocityVariance = 1.0;
  126. ejectionOffset = 0.0;
  127. thetaMin = 89;
  128. thetaMax = 90;
  129. phiReferenceVel = 0;
  130. phiVariance = 360;
  131. overrideAdvance = false;
  132. particles = "RED_HotShotLasgunExplosionParticle";
  133.  
  134. useEmitterColors = false;
  135. uiName = "";
  136. };
  137.  
  138. datablock ParticleData(BLU_HotShotLasgunExplosionParticle : RED_HotShotLasgunExplosionParticle)
  139. {
  140. dragCoefficient = 4;
  141. gravityCoefficient = 0;
  142. inheritedVelFactor = 0.2;
  143. constantAcceleration = 0.0;
  144. lifetimeMS = 250;
  145. lifetimeVarianceMS = 125;
  146. textureName = "base/data/particles/dot";
  147. spinSpeed = 10.0;
  148. spinRandomMin = -50.0;
  149. spinRandomMax = 50.0;
  150. colors[0] = "0.25 0.25 1 1";
  151. colors[1] = "0.75 0.75 1 0.0";
  152. sizes[0] = 1;
  153. sizes[1] = 0.25;
  154.  
  155. useInvAlpha = false;
  156. };
  157. datablock ParticleEmitterData(BLU_HotShotLasgunExplosionEmitter : RED_HotShotLasgunExplosionEmitter)
  158. {
  159. particles = "BLU_HotShotLasgunExplosionParticle";
  160. };
  161.  
  162. datablock ParticleData(RED_HotShotLasgunExplosionRingParticle)
  163. {
  164. dragCoefficient = 8;
  165. gravityCoefficient = 0;
  166. inheritedVelFactor = 0.2;
  167. constantAcceleration = 0.0;
  168. lifetimeMS = 100;
  169. lifetimeVarianceMS = 50;
  170. textureName = "base/data/particles/dot";
  171. spinSpeed = 500.0;
  172. spinRandomMin = -500.0;
  173. spinRandomMax = 500.0;
  174. colors[0] = "1.0 0.25 0.25 1";
  175. colors[1] = "1.0 0.5 0.5 0.0";
  176. sizes[0] = 1.5;
  177. sizes[1] = 3;
  178.  
  179. useInvAlpha = false;
  180. };
  181. datablock ParticleEmitterData(RED_HotShotLasgunExplosionRingEmitter)
  182. {
  183. lifeTimeMS = 200;
  184.  
  185. ejectionPeriodMS = 12;
  186. periodVarianceMS = 0;
  187. ejectionVelocity = 0;
  188. velocityVariance = 0.0;
  189. ejectionOffset = 0.0;
  190. thetaMin = 89;
  191. thetaMax = 90;
  192. phiReferenceVel = 0;
  193. phiVariance = 360;
  194. overrideAdvance = false;
  195. particles = "RED_HotShotLasgunExplosionRingParticle";
  196.  
  197. useEmitterColors = true;
  198. uiName = "";
  199. };
  200.  
  201. datablock ParticleData(BLU_HotShotLasgunExplosionRingParticle : RED_HotShotLasgunExplosionRingParticle)
  202. {
  203. colors[0] = "0.25 0.25 1 1";
  204. colors[1] = "0.5 0.5 1 0.0";
  205. };
  206. datablock ParticleEmitterData(BLU_HotShotLasgunExplosionRingEmitter : RED_HotShotLasgunExplosionRingEmitter)
  207. {
  208. particles = "BLU_HotShotLasgunExplosionRingParticle";
  209. };
  210.  
  211. datablock ExplosionData(RED_HotShotLasgunExplosion)
  212. {
  213. //explosionShape = "";
  214. soundProfile = bulletHitSound;
  215.  
  216. lifeTimeMS = 100;
  217.  
  218. particleEmitter = RED_HotShotLasgunExplosionEmitter;
  219. particleDensity = 5;
  220. particleRadius = 0.2;
  221.  
  222. emitter[0] = RED_HotShotLasgunExplosionRingEmitter;
  223.  
  224. faceViewer = true;
  225. explosionScale = "1 1 1";
  226.  
  227. shakeCamera = true;
  228. camShakeFreq = "1.0 1.0 1.0";
  229. camShakeAmp = "1.0 1.0 1.0";
  230. camShakeDuration = 0.25;
  231. camShakeRadius = 1.25;
  232.  
  233. // Dynamic light
  234. lightStartRadius = 4;
  235. lightEndRadius = 0;
  236. lightStartColor = "1.0 0.25 0.25";
  237. lightEndColor = "0 0 0";
  238. };
  239. datablock ExplosionData(BLU_HotShotLasgunExplosion : RED_HotShotLasgunExplosion)
  240. {
  241. particleEmitter = BLU_HotShotLasgunExplosionEmitter;
  242. emitter[0] = BLU_HotShotLasgunExplosionRingEmitter;
  243. lightStartColor = "0.25 0.25 1";
  244. };
  245.  
  246. datablock ProjectileData(RED_HotShotLasgunExplosionProjectile)
  247. {
  248. directDamage = 0;
  249. directDamageType = $DamageType::Gun;
  250. radiusDamageType = $DamageType::Gun;
  251.  
  252. brickExplosionRadius = 0;
  253. brickExplosionImpact = true; //destroy a brick if we hit it directly?
  254. brickExplosionForce = 10;
  255. brickExplosionMaxVolume = 1; //max volume of bricks that we can destroy
  256. brickExplosionMaxVolumeFloating = 2; //max volume of bricks that we can destroy if they aren't connected to the ground
  257.  
  258. impactImpulse = 100;
  259. verticalImpulse = 50;
  260. explosion = RED_HotShotLasgunExplosion;
  261. particleEmitter = "RED_HotShotLasgunExplosionRingEmitter";
  262.  
  263. muzzleVelocity = 200;
  264. velInheritFactor = 0;
  265.  
  266. armingDelay = 0;
  267. lifetime = 1000;
  268. fadeDelay = 700;
  269. bounceElasticity = 0.5;
  270. bounceFriction = 0.10;
  271. isBallistic = true;
  272. gravityMod = 0.0;
  273.  
  274. hasLight = false;
  275. lightRadius = 3.0;
  276. lightColor = "0 0 0.5";
  277. };
  278.  
  279. datablock ProjectileData(BLU_HotShotLasgunExplosionProjectile : RED_HotShotLasgunExplosionProjectile)
  280. {
  281. explosion = BLU_HotShotLasgunExplosion;
  282. particleEmitter = "BLU_HotShotLasgunExplosionRingEmitter";
  283. };
  284.  
  285. //////////
  286. // item //
  287. //////////
  288. datablock ItemData(RED_HotShotLasgunItem)
  289. {
  290. category = "Weapon"; // Mission editor category
  291. className = "Weapon"; // For inventory system
  292.  
  293. // Basic Item Properties
  294. shapeFile = "./HotShotLasgun.dts";
  295. rotate = false;
  296. mass = 1;
  297. density = 0.2;
  298. elasticity = 0.2;
  299. friction = 0.6;
  300. emap = true;
  301.  
  302. //gui stuff
  303. uiName = "Hot-shot Lasgun R";
  304. iconName = "./HotshotLasgun";
  305. doColorShift = false;
  306. colorShiftColor = "1 1 1 1.000";
  307.  
  308. // Dynamic properties defined by the scripts
  309. image = RED_HotShotLasgunImage;
  310. canDrop = true;
  311.  
  312. //Ammo Guns Parameters
  313. maxmag = 18;
  314. ammotype = "rifle";
  315. reload = true;
  316. };
  317. datablock ItemData(BLU_HotShotLasgunItem : RED_HotShotLasgunItem)
  318. {
  319. uiName = "Hot-shot Lasgun B";
  320. image = BLU_HotShotLasgunImage;
  321. };
  322.  
  323. AddDamageType("HotShotLasgun", '<bitmap:add-ons/Weapon_RedvBlu40kV3/CI_HotshotLasgun> %1', '%2 <bitmap:add-ons/Weapon_RedvBlu40kV3/CI_HotshotLasgun> %1',0.75,1);
  324.  
  325. ////////////////
  326. //weapon image//
  327. ////////////////
  328. datablock ShapeBaseImageData(RED_HotShotLasgunImage)
  329. {
  330.  
  331. // Basic Item properties
  332. shapeFile = "./HotShotLasgun.dts";
  333. emap = true;
  334.  
  335. // Specify mount point & offset for 3rd person, and eye offset
  336. // for first person rendering.
  337. mountPoint = 0;
  338. offset = "0 0 0";
  339. eyeOffset = 0; //"0.7 1.2 -0.5";
  340. rotation = eulerToMatrix( "0 0 0" );
  341.  
  342. // When firing from a point offset from the eye, muzzle correction
  343. // will adjust the muzzle vector to point to the eye LOS point.
  344. // Since this weapon doesn't actually fire from the muzzle point,
  345. // we need to turn this off.
  346. correctMuzzleVector = true;
  347.  
  348. // Add the WeaponImage namespace as a parent, WeaponImage namespace
  349. // provides some hooks into the inventory system.
  350. className = "WeaponImage";
  351.  
  352. // Projectile && Ammo.
  353. item = RED_HotShotLasgunItem;
  354. ammo = " ";
  355. projectile = RED_HotShotLasgunTracerProjectile;
  356. projectileType = Projectile;
  357.  
  358. casing = GunShellDebris;
  359. shellExitDir = "1.0 0.1 1.0";
  360. shellExitOffset = "0 0 0";
  361. shellExitVariance = 10.0;
  362. shellVelocity = 5.0;
  363.  
  364. //melee particles shoot from eye node for consistancy
  365. melee = false;
  366. //raise your arm up or not
  367. armReady = true;
  368.  
  369. doColorShift = true;
  370. colorShiftColor = RED_HotShotLasgunItem.colorShiftColor;
  371.  
  372. // Images have a state system which controls how the animations
  373. // are run, which sounds are played, script callbacks, etc. This
  374. // state system is downloaded to the client so that clients can
  375. // predict state changes and animate accordingly. The following
  376. // system supports basic ready->fire->reload transitions as
  377. // well as a no-ammo->dryfire idle state.
  378. raycastWeaponRange = 100; //varies
  379. raycastWeaponTargets =
  380. $TypeMasks::PlayerObjectType | //AI/Players
  381. $TypeMasks::StaticObjectType | //Static Shapes
  382. $TypeMasks::TerrainObjectType | //Terrain
  383. $TypeMasks::VehicleObjectType | //Terrain
  384. $TypeMasks::FXBrickObjectType; //Bricks
  385. raycastExplosionProjectile = RED_HotShotLasgunExplosionProjectile;
  386. raycastExplosionBrickSound = bulletHitSound;
  387. raycastExplosionPlayerSound = bulletHitSound;
  388. raycastDirectDamage = 15; //10
  389. raycastDirectDamageType = $DamageType::HotShotLasgun;
  390. raycastSpreadAmt = 0.0012; //varies
  391. raycastSpreadCount = 1;
  392. raycastTracerProjectile = RED_HotShotLasgunTracerProjectile;
  393. raycastFromMuzzle = true;
  394.  
  395. // Initial start up state
  396. stateName[0] = "Activate";
  397. stateTimeoutValue[0] = 0.15;
  398. stateTransitionOnTimeout[0] = "AmmoCheck";
  399. stateScript[0] = "onActivate";
  400. stateSound[0] = "";
  401.  
  402. stateName[1] = "Ready";
  403. stateTransitionOnTriggerDown[1] = "Fire";
  404. stateTransitionOnNoAmmo[1] = "Empty";
  405. stateAllowImageChange[1] = true;
  406. stateSequence[1] = "root";
  407. stateScript[1] = "onReady";
  408.  
  409. stateName[2] = "Fire";
  410. stateTransitionOnTimeOut[2] = "AmmoCheck";
  411. stateTimeoutValue[2] = 0.07;
  412. stateFire[2] = true;
  413. stateAllowImageChange[2] = false;
  414. stateSequence[2] = "Fire";
  415. stateScript[2] = "onFire";
  416. stateWaitForTimeout[2] = true;
  417. stateEmitter[2] = gunFlashEmitter;
  418. stateSound[2] = HotShotLasgunFireSound;
  419. stateEmitterTime[2] = 0.05;
  420. stateEmitterNode[2] = "muzzleNode";
  421. stateEjectShell[2] = true;
  422.  
  423. stateName[3] = "AmmoCheck";
  424. stateTimeoutValue[3] = 0.04;
  425. stateTransitionOnTimeout[3] = "Fire";
  426. stateTransitionOnTriggerUp[3] = "Ready";
  427. stateTransitionOnNoAmmo[3] = "Empty";
  428. stateAllowImageChange[3] = true;
  429. //stateSequence[3] = "Empty";
  430. stateScript[3] = "onAmmoCheck";
  431.  
  432. stateName[4] = "Reload";
  433. stateTransitionOnTimeout[4] = "ReloadReady";
  434. stateTimeoutValue[4] = 1.3;
  435. stateAllowImageChange[4] = true;
  436. stateSound[4] = LAS_magin;
  437. stateSequence[4] = "Arm";
  438. stateScript[4] = "onReloadStart";
  439.  
  440. stateName[5] = "ReloadReady";
  441. stateTransitionOnTimeout[5] = "CheckChamber";
  442. stateTimeoutValue[5] = 0.5;
  443. stateAllowImageChange[5] = true;
  444. stateSound[5] = LAS_magout;
  445. stateSequence[5] = "Reload";
  446. stateScript[5] = "onReload";
  447.  
  448. stateName[6] = "Empty";
  449. stateTransitionOnTriggerDown[6] = "EmptyFire";
  450. stateAllowImageChange[6] = true;
  451. stateTransitionOnAmmo[6] = "Reload";
  452. stateSequence[6] = "Empty";
  453. stateScript[6] = "Empty";
  454.  
  455. stateName[7] = "EmptyFire";
  456. stateTransitionOnTriggerUp[7] = "AmmoCheck";
  457. stateScript[7] = "onEmpty";
  458. stateTimeoutValue[7] = 0.13;
  459. stateAllowImageChange[7] = false;
  460. stateWaitForTimeout[7] = true;
  461. stateSound[7] = LAS_empty;
  462. stateSequence[7] = "Empty";
  463.  
  464. stateName[8] = "CheckChamber";
  465. stateTransitionOnTimeOut[8] = "Ready";
  466. stateTransitionOnNoAmmo[8] = "Cocking";
  467. stateAllowImageChange[8] = true;
  468. stateScript[8] = "CheckChamber";
  469.  
  470. stateName[9] = "Cocking";
  471. stateTransitionOnTimeOut[9] = "Ready";
  472. stateTimeoutValue[9] = 0.1;
  473. stateAllowImageChange[9] = true;
  474. stateWaitForTimeout[9] = true;
  475. stateSound[9] = "";
  476. stateScript[9] = "onCock";
  477.  
  478.  
  479. };
  480.  
  481. // //
  482. // //
  483. // //
  484. //RED //
  485. // //
  486. // //
  487. // //
  488. function RED_HotShotLasgunImage::onActivate( %this, %obj, %slot )
  489. {
  490. announce("activated");
  491. }
  492. function RED_HotShotLasgunImage::onReloadStart( %this, %obj, %slot )
  493. {
  494. %obj.playThread(2,shiftleft);
  495. announce("onReloadStart");
  496. LAS_DisplayAmmo(%this,%obj,%slot);
  497. serverPlay3d( RED_HotShotLasgunReloadSound, %obj.getHackPosition() );
  498. }
  499.  
  500. function RED_HotShotLasgunImage::onAmmoCheck( %this, %obj, %slot )
  501. {
  502. announce("onAmmoCheck");
  503. LAS_AmmoCheck(%this,%obj,%slot);
  504. LAS_DisplayAmmo(%this,%obj,%slot);
  505. }
  506.  
  507. function RED_HotShotLasgunImage::onReload( %this, %obj, %slot )
  508. {
  509. announce("onReload");
  510. %obj.playThread(2,plant);
  511. LAS_AmmoOnReload(%this,%obj,%slot);
  512. LAS_DisplayAmmo(%this,%obj,%slot);
  513. %rnd = getRandom(1,2);
  514.  
  515. }
  516.  
  517. function RED_HotShotLasgunImage::onCock( %this, %obj, %slot )
  518. {
  519. //%obj.playThread(2,shiftLeft);
  520. %obj.setImageAmmo(0,1);
  521. announce("onCock");
  522. }
  523.  
  524. function RED_HotShotLasgunImage::onMount( %this, %obj, %slot )
  525. {
  526. parent::onMount(%this,%obj,%slot);
  527. announce("mounted");
  528. LAS_DisplayAmmo(%this,%obj,%slot,0);
  529. %obj.lastFireTime = getSimTime() - 500;
  530. }
  531. function RED_HotShotLasgunImage::onUnMount( %this, %obj, %slot )
  532. {
  533. parent::onUnMount(%this,%obj,%slot);
  534. announce("unMounted");
  535. LAS_DisplayAmmo(%this,%obj,%slot,-1);
  536. %obj.lastFireTime = getSimTime() - 500;
  537. }
  538.  
  539. function RED_HotShotLasgunImage::onEmpty(%this,%obj,%slot)
  540. {
  541. announce("onEmpty");
  542. if( $LAS_Weapons::Ammo && %obj.toolAmmo[%this.item.ammotype] < 1 )
  543. {
  544. return;
  545. }
  546.  
  547. if(%obj.toolMag[%obj.currTool] < 1)
  548. {
  549. serverCmdLight(%obj.client);
  550. }
  551. }
  552.  
  553. function RED_HotShotLasgunImage::Empty(%this,%obj,%slot)
  554. {
  555. announce("empty");
  556. //serverCmdLight(%obj.client);
  557. }
  558.  
  559. function RED_HotShotLasgunImage::onReady(%this,%obj,%slot)
  560. {
  561. announce("ready");
  562. }
  563.  
  564. function RED_HotShotLasgunImage::CheckChamber(%this,%obj,%slot)
  565. {
  566. announce("CheckChamber");
  567. }
  568.  
  569. function RED_HotShotLasgunImage::onFire(%this,%obj,%slot)
  570. {
  571. %obj.spawnExplosion(TTRecoilProjectile,"1 1 1");
  572. if(%obj.getDamagePercent() >= 1.0)
  573. return;
  574.  
  575. if(vectorLen(%obj.getVelocity()) > 0.1)
  576. {
  577. %this.raycastSpreadAmt = 0.0018;
  578. %this.raycastWeaponRange = 300;
  579. }
  580. else
  581. {
  582. %this.raycastSpreadAmt = 0.0018;
  583. %this.raycastWeaponRange = 300;
  584. }
  585. %obj.playThread(2, plant);
  586. if($LAS_Weapons::ammoSystem)
  587. {
  588. %obj.toolMag[%obj.currTool] -= 1;
  589.  
  590. if(%obj.toolMag[%obj.currTool] < 1)
  591. {
  592. %obj.toolMag[%obj.currTool] = 0;
  593. %obj.setImageAmmo(0,0);
  594. }
  595. LAS_DisplayAmmo(%this,%obj,%slot);
  596. }
  597. Parent::onFire(%this,%obj,%slot);
  598. }
  599. // //
  600. // //
  601. // //
  602. //BLU //
  603. // //
  604. // //
  605. // //
  606. datablock ShapeBaseImageData(BLU_HotShotLasgunImage : RED_HotShotLasgunImage)
  607. {
  608.  
  609. item = BLU_HotShotLasgunItem;
  610. projectile = BLU_HotShotLasgunTracerProjectile;
  611. colorShiftColor = BLU_HotShotLasgunItem.colorShiftColor;
  612. raycastExplosionProjectile = BLU_HotShotLasgunExplosionProjectile;
  613. raycastTracerProjectile = BLU_HotShotLasgunTracerProjectile;
  614. };
  615. function BLU_HotShotLasgunImage::onFire(%this,%obj,%slot)
  616. {
  617. %obj.spawnExplosion(TTRecoilProjectile,"1 1 1");
  618. if(%obj.getDamagePercent() >= 1.0)
  619. return;
  620.  
  621. if(vectorLen(%obj.getVelocity()) > 0.1)
  622. {
  623. %this.raycastSpreadAmt = 0.0018;
  624. %this.raycastWeaponRange = 300;
  625. }
  626. else
  627. {
  628. %this.raycastSpreadAmt = 0.0018;
  629. %this.raycastWeaponRange = 300;
  630. }
  631.  
  632. %obj.playThread(2, plant);
  633. Parent::onFire(%this,%obj,%slot);
  634. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement