Advertisement
Guest User

Untitled

a guest
Nov 20th, 2016
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.49 KB | None | 0 0
  1. actor f22
  2. {
  3.  
  4. +nogravity
  5. +nointeraction
  6. +noblockmap
  7. speed 1
  8. mass 2
  9. var int user_speed;
  10. var int user_fakeroll; //goes from 0(-90 degrees) to 180(+90 degrees)!!
  11. var int user_desired_turn_angle;
  12. var int user_desired_turn_tics;
  13. var int user_turn_timer;
  14. var int user_tics_to_target;
  15. var int user_spawn_timer;
  16. var int user_has_fired;
  17. states
  18. {
  19. spawn:
  20. Tnt1 A 0
  21. TNT1 A 0 A_SetUserVar("user_fakeroll",90) //level flight
  22. tnt1 A 0 A_SetUserVar("user_speed",15)
  23. tnt1 A 0 A_SetUserVar("user_tics_to_target",35*3)
  24. tnt1 A 0 A_SetUserVar("user_has_fired",0)
  25. TNT1 A 0 A_setUservar("user_desired_turn_tics",1) //no divide by zero
  26.  
  27. goto fly
  28.  
  29. fly:
  30.  
  31. TNT1 A 0 A_SpawnItemEx("planetrail",-25,(sin(-user_fakeroll)*50)+(cos(-user_fakeroll)*8), (cos(user_fakeroll)*-50) + (sin(-user_fakeroll)*8))
  32. TNT1 A 0 A_SpawnItemEx("planetrail",-25,(sin(user_fakeroll)*50) +(cos(user_fakeroll)*-8), (cos(user_fakeroll)*50) + (sin(user_fakeroll)*-8))
  33.  
  34. TNT1 A 0 A_ChangeVelocity(cos(pitch) * user_speed,0,sin(pitch) * user_speed,CVF_Relative|CVF_Replace)
  35. goto ChooseFrame
  36.  
  37. decide:
  38. TNT1 A 0 A_setUserVar("user_spawn_timer",user_spawn_timer+1)
  39.  
  40. //||||||||||||||||||||||||||| counts down the turn timer if it's above 0
  41. decide1:
  42. TNT1 A 0 A_jumpif(user_turn_timer > 0,"turntimer_countdown")
  43. goto decide2
  44.  
  45. turntimer_countdown:
  46. TNT1 A 0 A_SetUserVar("user_turn_timer",user_turn_timer -1)
  47. goto decide2
  48. //||||||||||||||||||||||||||| turns if the turn timer is above 0
  49.  
  50. decide2:
  51. TNT1 A 0 A_jumpif(user_turn_timer > 0,"turn")
  52. TNT1 A 0 A_jumpif(user_fakeroll > 90,"deroll_left")
  53. TNT1 A 0 A_jumpif(user_fakeroll < 90,"deroll_right")
  54. goto decide3
  55.  
  56. turn:
  57. TNT1 A 0 A_SetAngle(angle + (user_desired_turn_angle / user_desired_turn_tics))
  58. TNT1 A 0 A_SetUserVar("user_fakeroll", user_fakeroll - (user_desired_turn_angle / user_desired_turn_tics) )
  59. goto decide3
  60.  
  61. deroll_left:
  62. TNT1 A 0 A_SetUserVar("user_fakeroll", user_fakeroll -2 )
  63. goto decide3
  64.  
  65. deroll_right:
  66. TNT1 A 0 A_SetUserVar("user_fakeroll", user_fakeroll +2 )
  67. goto decide3
  68.  
  69. decide3:
  70. TNT1 A 0
  71. goto decide_49
  72.  
  73. //||||||||||||||||||||||||||| shoots missiles!
  74. decide_49:
  75. TNT1 A 0 A_JumpIf((user_has_fired == 0) && (user_spawn_timer == user_tics_to_target),"shoot")
  76. goto fly
  77.  
  78. shoot:
  79. TNT1 A 0 A_CustomMissile("rocket",0,-20,0,CMF_AIMDIRECTION,-45)
  80. TNT1 A 0 A_CustomMissile("rocket",0,20,0,CMF_AIMDIRECTION,-45)
  81. TNT1 A 0 A_SetUserVar("user_has_fired",1)
  82. TNT1 A 0 A_SetUserVar("user_desired_turn_angle",90)
  83. TNT1 A 0 A_SetUserVar("user_desired_turn_tics",70)
  84. TNT1 A 0 A_SetUserVar("user_turn_timer",70)
  85. goto decide_49
  86. //|||||||||||||||||||||||||||
  87.  
  88. Chooseframe:
  89. TNT1 A 0 A_JumpIf(user_fakeroll < 10,"roll0") //-90
  90. TNT1 A 0 A_JumpIf(user_fakeroll >= 10 && user_fakeroll < 20 ,"roll10") //-80
  91. TNT1 A 0 A_JumpIf(user_fakeroll >= 20 && user_fakeroll < 30 ,"roll20") //-70
  92. TNT1 A 0 A_JumpIf(user_fakeroll >= 30 && user_fakeroll < 40 ,"roll30") //-60
  93. TNT1 A 0 A_JumpIf(user_fakeroll >= 40 && user_fakeroll < 50 ,"roll40") //-50
  94. TNT1 A 0 A_JumpIf(user_fakeroll >= 50 && user_fakeroll < 60 ,"roll50") //-40
  95. TNT1 A 0 A_JumpIf(user_fakeroll >= 60 && user_fakeroll < 70 ,"roll60") //-30
  96. TNT1 A 0 A_JumpIf(user_fakeroll >= 70 && user_fakeroll < 80 ,"roll70") //-20
  97. TNT1 A 0 A_JumpIf(user_fakeroll >= 80 && user_fakeroll < 88 ,"roll80") //-10
  98.  
  99. TNT1 A 0 A_JumpIf(user_fakeroll >= 88 && user_fakeroll <= 92,"roll90") // level
  100.  
  101. TNT1 A 0 A_JumpIf(user_fakeroll <= 100 && user_fakeroll > 92 ,"roll100") //+10
  102. TNT1 A 0 A_JumpIf(user_fakeroll <= 110 && user_fakeroll > 100 ,"roll110")//+20
  103. TNT1 A 0 A_JumpIf(user_fakeroll <= 120 && user_fakeroll > 110 ,"roll120")//+30
  104. TNT1 A 0 A_JumpIf(user_fakeroll <= 130 && user_fakeroll > 120 ,"roll130")//+40
  105. TNT1 A 0 A_JumpIf(user_fakeroll <= 140 && user_fakeroll > 130 ,"roll140")//+50
  106. TNT1 A 0 A_JumpIf(user_fakeroll <= 150 && user_fakeroll > 140 ,"roll150")//+60
  107. TNT1 A 0 A_JumpIf(user_fakeroll <= 160 && user_fakeroll > 150 ,"roll160")//+70
  108. TNT1 A 0 A_JumpIf(user_fakeroll <= 170 && user_fakeroll > 160,"roll170")//+80
  109. TNT1 A 0 A_JumpIf(user_fakeroll > 180,"roll180")//+90
  110. TNT1 A 0 Acs_namedexecute("logroll",0,user_fakeroll)
  111. TNT1 A 0 A_log("Chooseframe error!")
  112. bal1 A 20
  113. goto fly
  114.  
  115.  
  116.  
  117. Roll0:
  118. F22A A 1
  119. goto decide
  120.  
  121. Roll10:
  122. F22A B 1
  123. goto decide
  124.  
  125. Roll20:
  126. F22A C 1
  127. goto decide
  128.  
  129. Roll30:
  130. F22A D 1
  131. goto decide
  132.  
  133. Roll40:
  134. F22A E 1
  135. goto decide
  136.  
  137. Roll50:
  138. F22A F 1
  139. goto decide
  140.  
  141. Roll60:
  142. F22A G 1
  143. goto decide
  144.  
  145. Roll70:
  146. F22A H 1
  147. goto decide
  148.  
  149. Roll80:
  150. F22A I 1
  151. goto decide
  152.  
  153.  
  154.  
  155. Roll90:
  156. F22A J 1
  157. goto decide
  158.  
  159.  
  160.  
  161. Roll100:
  162. F22A K 1
  163. goto decide
  164.  
  165. Roll110:
  166. F22A L 1
  167. goto decide
  168.  
  169. Roll120:
  170. F22A M 1
  171. goto decide
  172.  
  173. Roll130:
  174. F22A N 1
  175. goto decide
  176.  
  177. Roll140:
  178. F22A O 1
  179. goto decide
  180.  
  181. Roll150:
  182. F22A P 1
  183. goto decide
  184.  
  185. Roll160:
  186. F22A Q 1
  187. goto decide
  188.  
  189. Roll170:
  190. F22A R 1
  191. goto decide
  192.  
  193. Roll180:
  194. F22A S 1
  195. goto decide
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. death:
  203. tnt1 A 0
  204. stop
  205. }
  206. }
  207.  
  208. actor planetrail: fastprojectile
  209. {
  210. +FORCEXYBILLBOARD
  211.  
  212. +nogravity
  213. +nointeraction
  214. +noblockmap
  215. alpha 0.2
  216. renderstyle "add"
  217. scale 0.2
  218. mass 1
  219. states
  220. {
  221. spawn:
  222. TNT1 A 0
  223. TNT1 A 0 A_jump(125,"sprite2")
  224. goto sprite1
  225.  
  226. sprite1:
  227. SMOK A 1
  228. goto fade1
  229.  
  230. sprite2:
  231. SMOK B 1
  232. goto fade2
  233.  
  234. fade1:
  235. SMOK A 1
  236. TNT1 A 0 A_fadeout(0.0005)
  237. TNT1 A 0 A_setscale(scalex+0.001)
  238. loop
  239.  
  240. fade2:
  241. SMOK B 1
  242. TNT1 A 0 A_fadeout(0.0005)
  243. TNT1 A 0 A_setscale(scalex+0.001)
  244. loop
  245.  
  246. }
  247. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement