Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.63 KB | None | 0 0
  1. @name Hoverking mk2
  2. @inputs Pod:wirelink
  3. @outputs TEST1 TEST2
  4. @persist Mass Height HoverForceMult Tilt HeightShutoff MomentumStopMult Active HoverForceMult2
  5. @persist RotationStopMult ThrustForwardMult TForward TRight Yaw ThrustTurnMult MaxTurnSharpness
  6. @persist Craft:entity Ang:angle Corner:array
  7. @persist [Forward V1 V2 V3 V4]:vector
  8. @model models/hunter/plates/plate1x2.mdl
  9.  
  10. interval(10)
  11.  
  12. if(first()|dupefinished()){
  13. #Variables that can be altered to change performance
  14. Height = 50 #Change hover height
  15. HoverForceMult = 2 #Change if ship is wobbly or for tiny tweeks
  16. HoverForceMult2 = 1.6 #Change to alter amount of upward force, Less = MORE FORCE, 1.6 is average
  17. HeightShutoff = 0 #More is higher before velocity slowdown shuts off
  18. MomentumStopMult = 8 #Less is more auto-stop power
  19. RotationStopMult = 0.9 #Less is more auto-stop power
  20. ThrustForwardMult = 100 #More is more thrust (More = higher speed)
  21. ThrustTurnMult = 10 #More is more turn
  22. MaxTurnSharpness = 11 #More is a sharper turn, don't go much higher than 15 or so
  23.  
  24. #A bunch of settings which should not be tampered with
  25. Craft=entity()
  26. Craft:setMass(3000)
  27. Craft:setAlpha(255)#######################################
  28. Mass=0
  29. Props=Craft:getConstraints()
  30. for(A=1, Props:count()) {Props[A,entity]:setMass(2) Mass=Mass+2}
  31. Mass=Mass+Craft:mass()
  32. TForward=0
  33. TRight=0
  34. Tilt=0
  35. rangerPersist(1)
  36. rangerHitWater(1)
  37. rangerFilter(Props)
  38. rangerFilter(Craft)
  39. rangerFilter(players())
  40. findExcludePlayer(owner())
  41.  
  42. timer("RangerUpdate",30000)
  43. }
  44.  
  45. C1=Craft:toWorld(vec( 24,-47, 0))
  46. C2=Craft:toWorld(vec(-24,-47, 0))
  47. C3=Craft:toWorld(vec( 24, 47, 0))
  48. C4=Craft:toWorld(vec(-24, 47, 0))
  49. Forward = Craft:right()
  50. CraftPos = Craft:pos()
  51. CraftAng = Craft:angles()
  52.  
  53. if(inrange(CraftAng,ang(-90,-180,-90),ang(90,180,90))){
  54. #Ranger bundle
  55. R1=rangerOffset(20000,C1,vec(0,0,-1))
  56. D1=R1:distance()
  57. R2=rangerOffset(20000,C2,vec(0,0,-1))
  58. D2=R2:distance()
  59. R3=rangerOffset(20000,C3,vec(0,0,-1))
  60. D3=R3:distance()
  61. R4=rangerOffset(20000,C4,vec(0,0,-1))
  62. D4=R4:distance()
  63. AverageHeight=(D1+D2+D3+D4)/4
  64.  
  65. ###Hover Code
  66. if(D1<Height){
  67. V1=(vec(0,0,Height-D1+Tilt))*Mass/HoverForceMult2
  68. Craft:applyOffsetForce(V1+$V1*HoverForceMult,C1)
  69. }
  70. if(D2<Height){
  71. V2=(vec(0,0,Height-D2-Tilt))*Mass/HoverForceMult2
  72. Craft:applyOffsetForce(V2+$V2*HoverForceMult,C2)
  73. }
  74. if(D3<Height){
  75. V3=(vec(0,0,Height-D3+Tilt))*Mass/HoverForceMult2
  76. Craft:applyOffsetForce(V3+$V3*HoverForceMult,C3)
  77. }
  78. if(D4<Height){
  79. V4=(vec(0,0,Height-D4-Tilt))*Mass/HoverForceMult2
  80. Craft:applyOffsetForce(V4+$V4*HoverForceMult,C4)
  81. }
  82. if(Craft:isUnderWater()){
  83. V100 = vec(0,0,40) * Mass
  84. Craft:applyForce(V100)
  85. }
  86.  
  87. ##Slowdown code
  88. if(AverageHeight<Height+HeightShutoff){
  89. V5 = (( CraftPos - Craft:vel()/2 ) - CraftPos) * Mass/MomentumStopMult
  90. Craft:applyForce(V5)
  91. }
  92.  
  93. ##Stop Spin code
  94. A1 = (( CraftAng - Craft:angVel()/RotationStopMult) - CraftAng) * Mass
  95. Craft:applyAngForce(A1)
  96.  
  97. ##Begin pod controller shit
  98. Active = Pod["Active",number]
  99. if(Active) {
  100. W = Pod["W",number]
  101. A = Pod["A",number]
  102. S = Pod["S",number]
  103. D = Pod["D",number]
  104. R = Pod["R",number]
  105. Light = Pod["Light",number]
  106. Space = Pod["Space",number]
  107. Shift = Pod["Shift",number]
  108. Alt = Pod["Alt",number]
  109. Mouse1 = Pod["Mouse1",number]
  110. Mouse2 = Pod["Mouse2",number]
  111. PrevWeapon = Pod["PrevWeapon",number]
  112. NextWeapon = Pod["NextWeapon",number]
  113.  
  114. if(AverageHeight<Height+HeightShutoff){
  115. if(Shift){
  116. if(W){
  117. V6 = ((CraftPos + Forward*1000) - CraftPos) * Mass/1000 * ThrustForwardMult * 2
  118. Craft:applyForce(V6)
  119. if(TForward<45){TForward=TForward+2} else{}
  120.  
  121. }
  122. elseif(S){
  123. V6 = ((CraftPos - Forward*1000) - CraftPos) * Mass/1000 * ThrustForwardMult * 2
  124. Craft:applyForce(V6)
  125. if (TForward>-45) {TForward=TForward-2} else{}
  126. }
  127. else{
  128. if(TForward>0){TForward = TForward - 2}
  129. if(TForward<0){TForward = TForward + 2}
  130. }
  131. }
  132. else{
  133. if(W){
  134. V6 = ((CraftPos + Forward*1000) - CraftPos) * Mass/1000 * ThrustForwardMult
  135. Craft:applyForce(V6)
  136. if(TForward<30){TForward=TForward+2}
  137. elseif(TForward>31) {TForward=TForward-2}
  138. else{}
  139. }
  140. elseif(S){
  141. V6 = ((CraftPos - Forward*1000) - CraftPos) * Mass/1000 * ThrustForwardMult
  142. Craft:applyForce(V6)
  143. if (TForward>-30) {TForward=TForward-2}
  144. elseif(TForward<-31) {TForward=TForward+2}
  145. else{}
  146. }
  147. else{
  148. if(TForward>0){TForward = TForward - 2}
  149. if(TForward<0){TForward = TForward + 2}
  150. }
  151. }
  152. }
  153.  
  154. #Turning code, which includes turningtilt
  155. if(A & S){
  156. if(Yaw >-MaxTurnSharpness){Yaw--}
  157. if(Tilt>-4){Tilt=Tilt - 0.2}
  158. }
  159. elseif(D & S){
  160. if(Yaw < MaxTurnSharpness){Yaw++}
  161. if(Tilt<4) {Tilt=Tilt + 0.2}
  162. }
  163. elseif(A){
  164. if(Yaw < MaxTurnSharpness){Yaw++}
  165. if(Tilt>-4){Tilt=Tilt - 0.2}
  166. }
  167. elseif(D){
  168. if(Yaw >-MaxTurnSharpness){Yaw--}
  169. if(Tilt<4) {Tilt=Tilt + 0.2}
  170. }
  171. else{
  172. if(Yaw > 0) {Yaw--}
  173. if(Yaw < 0) {Yaw++}
  174. if(Tilt > 0) {Tilt=Tilt-0.2}
  175. if(Tilt < 0) {Tilt=Tilt+0.2}
  176. if(inrange(Tilt, -0.5, 0.5)){Tilt=0}
  177. }
  178.  
  179. if(Yaw!=0){
  180. Ang = (CraftAng:setYaw(CraftAng:yaw() + Yaw) - CraftAng) * Mass * ThrustTurnMult
  181. Craft:applyAngForce(Ang + $Ang * 5)
  182. }
  183.  
  184. }
  185. elseif($Active){Yaw=0 Tilt=0 TForward=0}
  186. }
  187. else{
  188. TForward=0
  189.  
  190.  
  191. }
  192.  
  193. if(clk("RangerUpdate")){
  194. rangerFilter(players())
  195. timer("RangerUpdate",30000)
  196. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement