Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.75 KB | None | 0 0
  1. // this is a file called lazerbeam.txt, there is another files for the monster below.
  2.  
  3. class DSH_TraceBeam : actor
  4. {
  5. color col;
  6. vector3 endPoint;
  7. vector3 actorOffset;
  8. int lifeTime;
  9. bool TrackHitPoint;
  10. Default
  11. {
  12. radius 0;
  13. height 0;
  14. +NOBLOCKMAP;
  15. +NOGRAVITY;
  16. +NOINTERACTION;
  17. +NOTELEPORT;
  18. +CANNOTPUSH;
  19. +NODAMAGETHRUST;
  20. RenderStyle "AddShaded";
  21. StencilColor "AAFFFF";
  22. }
  23.  
  24. vector2 AnglesFromVec3 (vector3 vec)
  25. {
  26. Vector3 vecUnit = vec.unit();
  27. double angle = atan2(vecUnit.y, vecUnit.x);
  28. double pitch = asin(-vecUnit.z);
  29. return (angle,pitch);
  30. }
  31.  
  32. void VectorBeam (vector3 startpos, vector3 endpos, class<actor> beamclass, double width)
  33. {
  34. actor act = actor.spawn(beamclass,startpos,NO_REPLACE);
  35. if(act)
  36. {
  37. vector3 dif = startpos - endpos;
  38. vector2 angs = AnglesFromVec3(dif);
  39. act.angle = angs.x;
  40. act.pitch = angs.y;
  41. act.scale.x = width;
  42. act.scale.y = (startpos-endpos).length();
  43. }
  44. }
  45.  
  46. override void PostBeginPlay()
  47. {
  48. A_SetPitch(pitch+90);
  49. SetShade(col);
  50. Super.PostBeginPlay();
  51. }
  52.  
  53. override void Tick(void)
  54. {
  55. Super.Tick();
  56. if(target)
  57. {
  58. if(!TrackHitPoint)
  59. {
  60. A_SetAngle(Target.Angle+DeltaAngle(target.angle,self.angle), SPF_INTERPOLATE);
  61. A_SetPitch(Target.Pitch+DeltaAngle(target.pitch,self.pitch-90.0)+90.0, SPF_INTERPOLATE);
  62. //A_SetAngle(Target.Angle, SPF_INTERPOLATE);
  63. //A_SetPitch(Target.Pitch-90.0, SPF_INTERPOLATE);
  64.  
  65. /* this is some insane magic shit*/
  66. double oldAngle = Target.Angle; // Doing this because it's way more precise to do this than to decrement
  67. Target.A_SetAngle (Target.angle + 0.001, SPF_INTERPOLATE);
  68. Target.A_SetAngle (oldAngle, SPF_INTERPOLATE);
  69. /* insanity ends*/
  70. }
  71.  
  72. //moves the actor
  73. SetOrigin(target.Vec3Offset(actorOffset.x, actorOffset.y,(target.height * 0.5 - Target.Pos.Z)+actorOffset.z, FALSE),TRUE);
  74. if(TrackHitPoint)
  75. {
  76. vector3 dif = self.pos - endpoint;
  77. vector2 angs = AnglesFromVec3(dif);
  78. A_SetAngle(angs.x, SPF_INTERPOLATE);
  79. A_SetPitch(angs.y+90, SPF_INTERPOLATE);
  80. scale.y = (self.pos-endpoint).length();
  81. }
  82. }
  83. }
  84.  
  85. States
  86. {
  87. Spawn:
  88. MODL A 0 nodelay;
  89. MODL A 1 bright nodelay A_SetTics(lifeTime);
  90.  
  91. stop;
  92. }
  93. }
  94.  
  95. // this is in another file called SniperGuy.txt
  96.  
  97. Class Sniper : actor
  98. {
  99. Default
  100. {
  101. Health 40;
  102. Radius 20;
  103. Height 56;
  104. Mass 100;
  105. Speed 8;
  106. PainChance 170;
  107. Monster;
  108. +FLOORCLIP;
  109. SeeSound "Marine1/See";
  110. AttackSound "shotguy/attack";
  111. PainSound "Marine1/Pain";
  112. DeathSound "Marine1/Death";
  113. ActiveSound "Marine1/Active";
  114. Obituary "$OB_SHOTGUY";
  115. DropItem "ShotgunguyDrop";
  116. Species "Zombie";
  117. Translation "112:127=#[255,255,0]:[200,200,0]";
  118. }
  119.  
  120. vector2 AnglesFromVec3 (vector3 vec)
  121. {
  122. Vector3 vecUnit = vec.unit();
  123. double _angle = atan2(vecUnit.y, vecUnit.x);
  124. double _pitch = asin(-vecUnit.z);
  125. return (_angle,_pitch);
  126. }
  127.  
  128.  
  129. action actor VectorBeam (vector3 startpos, vector3 endpos, double rad)
  130. {
  131. actor act = actor.spawn("DSH_TraceBeam",startpos,NO_REPLACE);
  132. let a = DSH_TraceBeam(act);
  133. if(a)
  134. {
  135. vector3 dif = startpos - endpos;
  136. vector2 angs = AnglesFromVec3();
  137. a._angle = angs.x;
  138. a._pitch = angs.y;
  139. a.scale.y = (startpos-endpos).length();
  140. a.scale.x = rad;
  141. }
  142. return act;
  143. }
  144.  
  145. States
  146. {
  147. Spawn:
  148. AL17 AB 10 A_Look;
  149. Loop;
  150. See:
  151. AL17 AABBCCDD 3 A_Chase;
  152. Loop;
  153. Missile:
  154. AL17 E 5 A_FaceTarget;
  155. AL17 E 3 A_FaceTarget(20,20);
  156. AL17 F 0 BRIGHT A_SpawnProjectile("VectorBeam",32,0,frandom(-0.1, 0.1), CMF_AIMDIRECTION | CMF_OFFSETPITCH, pitch + frandom(-0.1,0.1));
  157. AL17 E 3 A_FaceTarget(20,20);
  158. AL17 F 0 BRIGHT A_SpawnProjectile("VectorBeam",32,0,frandom(-0.1, 0.1), CMF_AIMDIRECTION | CMF_OFFSETPITCH, pitch + frandom(-0.1,0.1));
  159. AL17 E 3 A_FaceTarget(20,20);
  160. AL17 F 0 BRIGHT A_SpawnProjectile("VectorBeam",32,0,frandom(-0.1, 0.1), CMF_AIMDIRECTION | CMF_OFFSETPITCH, pitch + frandom(-0.1,0.1));
  161. AL17 E 3 A_FaceTarget(20,20);
  162. AL17 F 0 BRIGHT A_SpawnProjectile("VectorBeam",32,0,frandom(-0.1, 0.1), CMF_AIMDIRECTION | CMF_OFFSETPITCH, pitch + frandom(-0.1,0.1));
  163. AL17 E 3 A_FaceTarget(20,20);
  164. AL17 F 0 BRIGHT A_SpawnProjectile("VectorBeam",32,0,frandom(-0.1, 0.1), CMF_AIMDIRECTION | CMF_OFFSETPITCH, pitch + frandom(-0.1,0.1));
  165. AL17 E 3 A_FaceTarget(20,20);
  166. AL17 F 0 BRIGHT A_SpawnProjectile("VectorBeam",32,0,frandom(-0.1, 0.1), CMF_AIMDIRECTION | CMF_OFFSETPITCH, pitch + frandom(-0.1,0.1));
  167. AL17 E 3 A_FaceTarget(20,20);
  168. AL17 F 0 BRIGHT A_SpawnProjectile("VectorBeam",32,0,frandom(-0.1, 0.1), CMF_AIMDIRECTION | CMF_OFFSETPITCH, pitch + frandom(-0.1,0.1));
  169. AL17 E 3 A_FaceTarget(10,10);
  170. AL17 F 0 BRIGHT A_SpawnProjectile("VectorBeam",32,0,frandom(-0.1, 0.1), CMF_AIMDIRECTION | CMF_OFFSETPITCH, pitch + frandom(-0.1,0.1));
  171. AL17 E 3 A_FaceTarget(10,10);
  172. AL17 F 0 BRIGHT A_SpawnProjectile("VectorBeam",32,0,frandom(-0.1, 0.1), CMF_AIMDIRECTION | CMF_OFFSETPITCH, pitch + frandom(-0.1,0.1));
  173. AL17 E 3 A_FaceTarget(10,10);
  174. AL17 F 0 BRIGHT A_SpawnProjectile("VectorBeam",32,0,frandom(-0.1, 0.1), CMF_AIMDIRECTION | CMF_OFFSETPITCH, pitch + frandom(-0.1,0.1));
  175. AL17 E 3 A_FaceTarget(10,10);
  176. AL17 F 0 BRIGHT A_SpawnProjectile("VectorBeam",32,0,frandom(-0.1, 0.1), CMF_AIMDIRECTION | CMF_OFFSETPITCH, pitch + frandom(-0.1,0.1));
  177. AL17 E 3 A_FaceTarget(5,5);
  178. AL17 F 0 BRIGHT A_SpawnProjectile("VectorBeam",32,0,frandom(-0.1, 0.1), CMF_AIMDIRECTION | CMF_OFFSETPITCH, pitch + frandom(-0.1,0.1));
  179. AL17 E 3 A_FaceTarget(5,5);
  180. AL17 F 0 BRIGHT A_SpawnProjectile("VectorBeam",32,0,frandom(-0.1, 0.1), CMF_AIMDIRECTION | CMF_OFFSETPITCH, pitch + frandom(-0.1,0.1));
  181. AL17 E 3 A_FaceTarget(5,5);
  182. AL17 F 0 BRIGHT A_SpawnProjectile("VectorBeam",32,0,frandom(-0.1, 0.1), CMF_AIMDIRECTION | CMF_OFFSETPITCH, pitch + frandom(-0.1,0.1));
  183. AL17 E 3 A_FaceTarget(5,5);
  184. AL17 F 0 BRIGHT A_SpawnProjectile("VectorBeam",32,0,frandom(-0.1, 0.1), CMF_AIMDIRECTION | CMF_OFFSETPITCH, pitch + frandom(-0.1,0.1));
  185. AL17 E 3 A_FaceTarget(5,5);
  186. AL17 F 0 BRIGHT A_SpawnProjectile("VectorBeam",32,0,frandom(-0.1, 0.1), CMF_AIMDIRECTION | CMF_OFFSETPITCH, pitch + frandom(-0.1,0.1));
  187. AL17 E 3 A_FaceTarget(5,5);
  188. AL17 F 0 BRIGHT A_SpawnProjectile("VectorBeam",32,0,frandom(-0.1, 0.1), CMF_AIMDIRECTION | CMF_OFFSETPITCH, pitch + frandom(-0.1,0.1));
  189. AL17 E 3 A_FaceTarget(5,5);
  190. AL17 F 0 BRIGHT A_SpawnProjectile("VectorBeam",32,0,frandom(-0.1, 0.1), CMF_AIMDIRECTION | CMF_OFFSETPITCH, pitch + frandom(-0.1,0.1));
  191.  
  192. AL17 E 3 A_FaceTarget(5,5);
  193. TNT1 A 0 A_PlaySound("Weapons/DMRFire");
  194. AL17 F 2 BRIGHT A_SpawnProjectile("SniperShot",32,0,frandom(-1, 1), CMF_AIMDIRECTION | CMF_OFFSETPITCH, pitch + frandom(-1,1));
  195. AL17 E 35;
  196. Goto See;
  197. Pain:
  198. AL17 G 3;
  199. AL17 G 3 A_Pain;
  200. Goto See;
  201. Death:
  202. AL17 H 5;
  203. AL17 I 5 A_Scream;
  204. AL17 J 5 A_NoBlocking;
  205. AL17 K 5;
  206. AL17 L -1;
  207. Stop;
  208. XDeath:
  209. TNT1 A 0;
  210. TNT1 A 1 A_SpawnItemEx ("MarineXDeath", 0, 0, 0, 0 ,0 ,0 , 0, SXF_TRANSFERTRANSLATION);
  211. TNT1 A 0 A_NoBlocking;
  212. Stop;
  213. Raise:
  214. AL17 L 5;
  215. AL17 KJIH 5;
  216. Goto See;
  217. }
  218. }
  219.  
  220. Class SniperShot : actor
  221. {
  222. default
  223. {
  224. Radius 2;
  225. Height 2;
  226. damage (20);
  227. Speed 40;
  228. RenderStyle "Add";
  229. PROJECTILE;
  230. +BLOODSPLATTER;
  231. Obituary "%o Was rushed down by a Shotgunner";
  232. Scale 0.3;
  233. Decal "BulletChip";
  234. DeathSound "BulletPing";
  235. +THRUSPECIES;
  236. Species "Zombie";
  237. }
  238. States
  239. {
  240. Spawn:
  241. TRAC A 1 BRIGHT;
  242. Loop;
  243.  
  244. Death:
  245. Crash:
  246. TNT1 A 0 A_PlaySound("ricochet",CHAN_AUTO);
  247. TNT1 AAA 0 A_CustomMissile("RicochetSparks",0,0,random(0,360),2,random(10,60));
  248. Stop;
  249. }
  250. }
  251. /*
  252. Class SniperLaser
  253. {
  254.  
  255. Radius 2
  256. Height 2
  257. damage (0)
  258. Speed 100
  259. PROJECTILE
  260. renderstyle add
  261. Obituary "%o Was rushed down by a Shotgunner"
  262. Scale 1
  263. States
  264. {
  265. Spawn:
  266. LASR A 3 A_SpawnItemEx ("SniperLaserTrailSpawner")
  267. Loop
  268.  
  269. Death:
  270. Crash:
  271. Stop
  272. }
  273. }
  274.  
  275. ACTOR SniperLaserTrailSpawner
  276. {
  277. +NoGravity
  278. +NoClip
  279. States
  280. {
  281. Spawn:
  282. TNT1 A 0
  283. TNT1 A 3 A_SpawnItemEx ("SniperLaserTrail")
  284. stop
  285. }
  286. }
  287.  
  288. ACTOR SniperLaserTrail
  289. {
  290. Radius 2
  291. Height 2
  292. Scale 1
  293. renderstyle add
  294. +NOINTERACTION
  295. States
  296. {
  297. Spawn:
  298. LASR A 1
  299. stop
  300. }
  301. }
  302.  
  303. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement