Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @name Hoverking mk2
- @inputs Pod:wirelink
- @outputs TEST1 TEST2
- @persist Mass Height HoverForceMult Tilt HeightShutoff MomentumStopMult Active HoverForceMult2
- @persist RotationStopMult ThrustForwardMult TForward TRight Yaw ThrustTurnMult MaxTurnSharpness
- @persist Craft:entity Ang:angle Corner:array
- @persist [Forward V1 V2 V3 V4]:vector
- @model models/hunter/plates/plate1x2.mdl
- interval(10)
- if(first()|dupefinished()){
- #Variables that can be altered to change performance
- Height = 50 #Change hover height
- HoverForceMult = 2 #Change if ship is wobbly or for tiny tweeks
- HoverForceMult2 = 1.6 #Change to alter amount of upward force, Less = MORE FORCE, 1.6 is average
- HeightShutoff = 0 #More is higher before velocity slowdown shuts off
- MomentumStopMult = 8 #Less is more auto-stop power
- RotationStopMult = 0.9 #Less is more auto-stop power
- ThrustForwardMult = 100 #More is more thrust (More = higher speed)
- ThrustTurnMult = 10 #More is more turn
- MaxTurnSharpness = 11 #More is a sharper turn, don't go much higher than 15 or so
- #A bunch of settings which should not be tampered with
- Craft=entity()
- Craft:setMass(3000)
- Craft:setAlpha(255)#######################################
- Mass=0
- Props=Craft:getConstraints()
- for(A=1, Props:count()) {Props[A,entity]:setMass(2) Mass=Mass+2}
- Mass=Mass+Craft:mass()
- TForward=0
- TRight=0
- Tilt=0
- rangerPersist(1)
- rangerHitWater(1)
- rangerFilter(Props)
- rangerFilter(Craft)
- rangerFilter(players())
- findExcludePlayer(owner())
- timer("RangerUpdate",30000)
- }
- C1=Craft:toWorld(vec( 24,-47, 0))
- C2=Craft:toWorld(vec(-24,-47, 0))
- C3=Craft:toWorld(vec( 24, 47, 0))
- C4=Craft:toWorld(vec(-24, 47, 0))
- Forward = Craft:right()
- CraftPos = Craft:pos()
- CraftAng = Craft:angles()
- if(inrange(CraftAng,ang(-90,-180,-90),ang(90,180,90))){
- #Ranger bundle
- R1=rangerOffset(20000,C1,vec(0,0,-1))
- D1=R1:distance()
- R2=rangerOffset(20000,C2,vec(0,0,-1))
- D2=R2:distance()
- R3=rangerOffset(20000,C3,vec(0,0,-1))
- D3=R3:distance()
- R4=rangerOffset(20000,C4,vec(0,0,-1))
- D4=R4:distance()
- AverageHeight=(D1+D2+D3+D4)/4
- ###Hover Code
- if(D1<Height){
- V1=(vec(0,0,Height-D1+Tilt))*Mass/HoverForceMult2
- Craft:applyOffsetForce(V1+$V1*HoverForceMult,C1)
- }
- if(D2<Height){
- V2=(vec(0,0,Height-D2-Tilt))*Mass/HoverForceMult2
- Craft:applyOffsetForce(V2+$V2*HoverForceMult,C2)
- }
- if(D3<Height){
- V3=(vec(0,0,Height-D3+Tilt))*Mass/HoverForceMult2
- Craft:applyOffsetForce(V3+$V3*HoverForceMult,C3)
- }
- if(D4<Height){
- V4=(vec(0,0,Height-D4-Tilt))*Mass/HoverForceMult2
- Craft:applyOffsetForce(V4+$V4*HoverForceMult,C4)
- }
- if(Craft:isUnderWater()){
- V100 = vec(0,0,40) * Mass
- Craft:applyForce(V100)
- }
- ##Slowdown code
- if(AverageHeight<Height+HeightShutoff){
- V5 = (( CraftPos - Craft:vel()/2 ) - CraftPos) * Mass/MomentumStopMult
- Craft:applyForce(V5)
- }
- ##Stop Spin code
- A1 = (( CraftAng - Craft:angVel()/RotationStopMult) - CraftAng) * Mass
- Craft:applyAngForce(A1)
- ##Begin pod controller shit
- Active = Pod["Active",number]
- if(Active) {
- W = Pod["W",number]
- A = Pod["A",number]
- S = Pod["S",number]
- D = Pod["D",number]
- R = Pod["R",number]
- Light = Pod["Light",number]
- Space = Pod["Space",number]
- Shift = Pod["Shift",number]
- Alt = Pod["Alt",number]
- Mouse1 = Pod["Mouse1",number]
- Mouse2 = Pod["Mouse2",number]
- PrevWeapon = Pod["PrevWeapon",number]
- NextWeapon = Pod["NextWeapon",number]
- if(AverageHeight<Height+HeightShutoff){
- if(Shift){
- if(W){
- V6 = ((CraftPos + Forward*1000) - CraftPos) * Mass/1000 * ThrustForwardMult * 2
- Craft:applyForce(V6)
- if(TForward<45){TForward=TForward+2} else{}
- }
- elseif(S){
- V6 = ((CraftPos - Forward*1000) - CraftPos) * Mass/1000 * ThrustForwardMult * 2
- Craft:applyForce(V6)
- if (TForward>-45) {TForward=TForward-2} else{}
- }
- else{
- if(TForward>0){TForward = TForward - 2}
- if(TForward<0){TForward = TForward + 2}
- }
- }
- else{
- if(W){
- V6 = ((CraftPos + Forward*1000) - CraftPos) * Mass/1000 * ThrustForwardMult
- Craft:applyForce(V6)
- if(TForward<30){TForward=TForward+2}
- elseif(TForward>31) {TForward=TForward-2}
- else{}
- }
- elseif(S){
- V6 = ((CraftPos - Forward*1000) - CraftPos) * Mass/1000 * ThrustForwardMult
- Craft:applyForce(V6)
- if (TForward>-30) {TForward=TForward-2}
- elseif(TForward<-31) {TForward=TForward+2}
- else{}
- }
- else{
- if(TForward>0){TForward = TForward - 2}
- if(TForward<0){TForward = TForward + 2}
- }
- }
- }
- #Turning code, which includes turningtilt
- if(A & S){
- if(Yaw >-MaxTurnSharpness){Yaw--}
- if(Tilt>-4){Tilt=Tilt - 0.2}
- }
- elseif(D & S){
- if(Yaw < MaxTurnSharpness){Yaw++}
- if(Tilt<4) {Tilt=Tilt + 0.2}
- }
- elseif(A){
- if(Yaw < MaxTurnSharpness){Yaw++}
- if(Tilt>-4){Tilt=Tilt - 0.2}
- }
- elseif(D){
- if(Yaw >-MaxTurnSharpness){Yaw--}
- if(Tilt<4) {Tilt=Tilt + 0.2}
- }
- else{
- if(Yaw > 0) {Yaw--}
- if(Yaw < 0) {Yaw++}
- if(Tilt > 0) {Tilt=Tilt-0.2}
- if(Tilt < 0) {Tilt=Tilt+0.2}
- if(inrange(Tilt, -0.5, 0.5)){Tilt=0}
- }
- if(Yaw!=0){
- Ang = (CraftAng:setYaw(CraftAng:yaw() + Yaw) - CraftAng) * Mass * ThrustTurnMult
- Craft:applyAngForce(Ang + $Ang * 5)
- }
- }
- elseif($Active){Yaw=0 Tilt=0 TForward=0}
- }
- else{
- TForward=0
- }
- if(clk("RangerUpdate")){
- rangerFilter(players())
- timer("RangerUpdate",30000)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement