Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
1

How can i make my Space Ship with BodyThrust Stop???

Asked by
NexeusX 137
7 years ago
Edited 7 years ago

So i made a space ship, which uses a script to find the Throttle of a Vehicle Seat...anyway i put a Part called "Engine", with a BodyThrust inside of it. So it works fine but, i cannot get it to stop, even if i anchor/unanchor the Ship, here is the script...How i can i fix it to make it stop when the throttle hits Zero???

Seat = script.Parent.VehicleSeat
Engine = script.Parent.Engine

script.Parent.VehicleSeat.Changed:connect(function()
    if script.Parent.VehicleSeat.Throttle == 1 then
        script.Parent.Engine.BodyThrust.Force = Vector3.new(0,0,-9999110.09)--The Ship is really big so i need lots of Force to even move
    end
end)

script.Parent.VehicleSeat.Changed:connect(function() --This is the function where it should be stopping.
    if script.Parent.VehicleSeat.Throttle == 0 then 
        script.Parent.Engine.BodyThrust.Force = Vector3.new(0,0,0)--So how can i make the ship stop moving?
    end
end)

script.Parent.VehicleSeat.Changed:connect(function()
    if script.Parent.VehicleSeat.Throttle == -1 then
        script.Parent.Engine.BodyThrust.Force = Vector3.new(0,0,9999110.09)--The Ship is really big so i need lots of Force to even move
    end
end)
2
You don't have to have three different changed event connections to use the if statements. You can put all the if statements in the same event connection. Then you could use elseif, too. GoldenPhysics 474 — 7y

1 answer

Log in to vote
0
Answered by 7 years ago

Try this:

Seat = script.Parent.VehicleSeat
Engine = script.Parent.Engine
BrakeSpeed = 10 --Change this to brake faster/slower
MoveSpeed = 9999110.09 --The Ship is really big so it needs lots of Force to even move

if not Engine:FindFirstChild("BodyVelocity") then
    BodyVelocity = Instance.new("BodyVelocity", Engine)
    BodyVelocity.MaxForce = Vector3.new(0, 0, 0)
    BodyVelocity.Velocity = Vector3.new(0,0,0)
else
    BodyVelocity = Engine:FindFirstChild("BodyVelocity")
end

script.Parent.VehicleSeat.Changed:connect(function()
    if script.Parent.VehicleSeat.Throttle == 1 then
        BodyVelocity.MaxForce = Vector3.new(0, 0, 0)
        Engine.BodyThrust.Force = Vector3.new(0, 0, -MoveSpeed)
    elseif script.Parent.VehicleSeat.Throttle == 0 then 
        BodyVelocity.MaxForce = Vector3.new(BrakeSpeed, BrakeSpeed, BrakeSpeed)
        Engine.BodyThrust.Force = Vector3.new(0,0,0)
    elseif script.Parent.VehicleSeat.Throttle == -1 then
        BodyVelocity.MaxForce = Vector3.new(0, 0, 0)
        Engine.BodyThrust.Force = Vector3.new(0, 0, MoveSpeed)
    end
end)
0
You should mark this answer as correct or state why it isn't correct shadownetwork 233 — 7y
Ad

Answer this question