generic image
Processing...
  • Games
  • Catalog
  • Develop
  • Robux
  • Search in Players
  • Search in Games
  • Search in Catalog
  • Search in Groups
  • Search in Library
  • Log In
  • Sign Up
  • Games
  • Catalog
  • Develop
  • Robux
   
ROBLOX Forum » Game Creation and Development » Scripting Helpers
Home Search
 

Re: Taxiing with planes

Previous Thread :: Next Thread 
Superspeed500 is not online. Superspeed500
Joined: 22 Oct 2009
Total Posts: 452
29 Apr 2012 11:49 AM
Can anybody help me with creating a taxi script for planes using BodyGyro?
Report Abuse
sircfenner is not online. sircfenner
Joined: 29 Aug 2008
Total Posts: 2430
29 Apr 2012 12:02 PM
Title fix.

I think the best step would be to post whatever script you are using to make the planes fly, then we could help you to add a mode (perhaps triggered by pressing "t") for taxiing, where speed would be limited and you couldn't take off.
Report Abuse
Superspeed500 is not online. Superspeed500
Joined: 22 Oct 2009
Total Posts: 452
29 Apr 2012 01:09 PM
Ok. Thank you. Here:

bin = script.Parent
plane = nil
hold = false
local debounce = false
local planedebounce = false
local stuntdebounce = false
local controlling = false
local currentspeed = 0
local turn = nil
local CanShoot = true
fly = false

function computeDirection(vec)
local lenSquared = vec.magnitude * vec.magnitude
local invSqrt = 1 / math.sqrt(lenSquared)
return Vector3.new(vec.x * invSqrt, vec.y * invSqrt, vec.z * invSqrt)
end

function move(point, engine)
local origincframe = engine:findFirstChild("Direction").cframe
size = engine.Size

target = engine.Position+((point - engine.Position).unit*100)
local dir = (target - engine.Position).unit
local spawnPos = engine.Position
left = engine.CFrame*CFrame.new(-size.x/2, 0, 0).p
right = engine.CFrame*CFrame.new(size.x/2, 0, 0).p
md = (target - engine.Position).magnitude

foebmd = engine.CFrame*CFrame.new(0, 0, -md).p
toleft = (target -left).magnitude
toright = (target -right).magnitude
rot = ((foebmd - target).magnitude/10)
local pos = spawnPos + (dir * 1)
turn = math.rad((rot/10)*engine.TiltFactor.Value)
if turn > math.rad(89) then
turn = math.rad(89)
end
if toleft< toright and toleft >rot then
engine:findFirstChild("Direction").cframe = CFrame.new(pos, pos + dir)*CFrame.fromEulerAnglesXYZ(0, 0, turn)
elseif toleft > toright and toright >rot then
engine:findFirstChild("Direction").cframe = CFrame.new(pos, pos + dir)*CFrame.fromEulerAnglesXYZ(0, 0, -turn)
else
engine:findFirstChild("Direction").cframe = CFrame.new(pos, pos + dir)
end
if engine:findFirstChild("Direction").maxTorque == Vector3.new(4e3,0,4e3) then
engine:findFirstChild("Direction").maxTorque = Vector3.new(4e3,4e3,4e3)
end
engine:findFirstChild("Direction").P = engine.TurnSpeed.Value
end

function findPlane(player)
local list = player.Character:GetChildren()
for x = 1, #list do
if (list[x].Name == "AircraftSeat") then
return list[x]
end
end
return nil
end

function onButton1Down(mouse)
local vehicle = findPlane(script.Parent.Parent.Parent)
if vehicle ~= nil and debounce == false and planedebounce == false then
if fly == false and taxi == false then return end
debounce = true

controlling = true

while true do
wait()
local engine = vehicle
local position = mouse.Hit
local target = position.p
move(target, engine)
if planedebounce == true or
controlling == false then break end
end
wait(0.1)
debounce = false
end
end

function onButton1Up(mouse)
controlling = false
end

function onSelected(mouse)
mouse.Icon = "http://www.roblox.com/asset/?id=7419350"
game.Workspace.CurrentCamera.CameraSubject = bin.Parent.Parent.Character.Head
game.Workspace.CurrentCamera.CameraType = "Track"
mouse.Button1Down:connect(function() onButton1Down(mouse) end)
mouse.Button1Up:connect(function() onButton1Up(mouse) end)
mouse.KeyDown:connect(onKeyDown)
mouse.KeyUp:connect(onKeyUp)
mouse.Move:connect(function() Fly(mouse) end)
mouse.Idle:connect(function() Fly(mouse) end)
end

function onDeselected(mouse)
game.Workspace.CurrentCamera.CameraSubject = bin.Parent.Parent.Character.Humanoid
game.Workspace.CurrentCamera.CameraType = "Custom"
end

function Fly(mouse)
local vehicle = findPlane(script.Parent.Parent.Parent)
if (vehicle==nil) then return end
vehicle.Thrust.velocity = (vehicle.CFrame.lookVector * currentspeed) + Vector3.new(0,vehicle.LiftTrim.Value/100,0)
end

function onKeyDown(key)
if (key~=nil) then
key = key:lower()
local vehicle = findPlane(script.Parent.Parent.Parent)
if (vehicle==nil) then return end
if key == "y" then
fly = true
vehicle.Direction.cframe = vehicle.CFrame
vehicle.Direction.maxTorque = Vector3.new(4e3,4e3,4e3)
vehicle.Thrust.maxForce = Vector3.new(9e20,9e20,9e20)
while fly == true do
if currentspeed < vehicle.Speed.Value then
currentspeed = currentspeed + 1
elseif currentspeed > vehicle.Speed.Value then
currentspeed = currentspeed - 1
end
if vehicle.Acceleration.Value > 1000 then vehicle.Acceleration.Value = 1000 end
if vehicle.EngineSound.Value > 0 then
vehicle["EngineSound".. vehicle.EngineSound.Value].Pitch = (currentspeed/240) + (vehicle["EngineSound".. vehicle.EngineSound.Value].BasePitch.Value/100)
end
wait((1-(vehicle.Acceleration.Value/1000))+0.01)
if fly == false then break end
end
end
if key == "x" then
fly = false
currentspeed = 0
vehicle.Direction.maxTorque = Vector3.new(0,0,0)
vehicle.Thrust.maxForce = Vector3.new(0,0,0)
if vehicle.EngineSound.Value > 0 then
vehicle["EngineSound".. vehicle.EngineSound.Value].Pitch = (currentspeed/240) + (vehicle["EngineSound".. vehicle.EngineSound.Value].BasePitch.Value/100)
end
end
--if key == "f" and CanShoot == true then
if key == "w" then
if vehicle.Speed.Value < vehicle.MaxSpeed.Value then
vehicle.Speed.Value = vehicle.Speed.Value + 10
end
end
if key == "s" then
if vehicle.Speed.Value > vehicle.MinSpeed.Value then
vehicle.Speed.Value = vehicle.Speed.Value - 10
end
end
if key == "p" then
vehicle.Speed.Value = vehicle.MaxSpeed.Value
end
if key == ";" then
vehicle.Speed.Value = 0
end
if (key=="'") and (bin.Locked.Value == false) then
local repl = script:clone()
repl.Parent = bin
wait(1)
script:remove()
end
if key == "l" and fly == true then
vehicle.Direction.maxTorque = Vector3.new(4e3,0,4e3)
local frame = vehicle:FindFirstChild("OriginCFrame")
if frame ~= nil then
vehicle.Direction.cframe = frame.Value
end
end
end
end

function onKeyUp(key)
if (key~=nil) then
key = key:lower()
local vehicle = findPlane(script.Parent.Parent.Parent)
if (vehicle==nil) then return end
end
end

bin.Selected:connect(onSelected)
bin.Deselected:connect(onDeselected)
-- Mark901


The script is made by Mark901. Its the newest version of his seat.
Report Abuse
crazyman32 is not online. crazyman32
Joined: 13 Apr 2008
Total Posts: 18027
29 Apr 2012 01:24 PM
if (Plane is on the ground AND speed is pretty low) then
-- taxi stuff
else
-- fly stuff
end


That's somewhat how I do it
Report Abuse
Superspeed500 is not online. Superspeed500
Joined: 22 Oct 2009
Total Posts: 452
29 Apr 2012 01:35 PM
Ok. Thx for helping. Btw, I orgiginaly used your plane, but it doesnt works for big planes. It had been very good if you could fix it:D Thank you!
Report Abuse
Superspeed500 is not online. Superspeed500
Joined: 22 Oct 2009
Total Posts: 452
29 Apr 2012 01:37 PM
More ideas on how to do this?
Report Abuse
Superspeed500 is not online. Superspeed500
Joined: 22 Oct 2009
Total Posts: 452
29 Apr 2012 02:59 PM
What should the taxi values be in the gyro?
Report Abuse
Superspeed500 is not online. Superspeed500
Joined: 22 Oct 2009
Total Posts: 452
29 Apr 2012 03:17 PM
I found out how to let the plane follow the ground, but I have not figured out how to steer on ground yet.
Report Abuse
Previous Thread :: Next Thread 
Page 1 of 1
 
 
ROBLOX Forum » Game Creation and Development » Scripting Helpers
   
 
   
  • About Us
  • Jobs
  • Blog
  • Parents
  • Help
  • Terms
  • Privacy

©2017 Roblox Corporation. Roblox, the Roblox logo, Robux, Bloxy, and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.



Progress
Starting Roblox...
Connecting to Players...
R R

Roblox is now loading. Get ready to play!

R R

You're moments away from getting into the game!

Click here for help

Check Remember my choice and click Launch Application in the dialog box above to join games faster in the future!

Gameplay sponsored by:
Loading 0% - Starting game...
Get more with Builders Club! Join Builders Club
Choose Your Avatar
I have an account
generic image