using a previous forum I noticed this system of a helicopter like the jailbreak that has a problem … what happens is that the system does not release the movement of the player after having vacated the seat, I tried to fix it but I do not know much programming I tried but I could not. anyone could help me?
here is system:
TestPlace.rbxl (23.2 KB)
SCRIPT
--Script
local driverseat = script.Parent
local main = script.Parent.Parent.Main
local plane = script.Parent.Parent
driverseat.Changed:connect(function(property)
if property == "Occupant" then
--Sitz ist belegt
if driverseat.Occupant then
--Get the sitting player
local player = game.Players:GetPlayerFromCharacter(driverseat.Occupant.Parent)
if player then
--Sets ownership to player
driverseat:SetNetworkOwner(player)
print(player.Name.." has Networkownership")
local localCarScript = script.playerScriptPlane:Clone()
localCarScript.Parent = player.PlayerGui
localCarScript.Obj.Value = plane
print("Localscript was inserted")
end
end
end
end)
LOCALSCRIPT
--Localscript
local ContextActionService = game:GetService("ContextActionService")
local player = game.Players.LocalPlayer
local mouse = player:GetMouse()
local plane = script.Obj.Value
local RunService = game:GetService("RunService")
local height = 0
local turn = 0
local moving = 0
local Tilt = 0
local MoveRightKeyDown = false
local MovetLeftKeyDown =false
local vel = plane.Main.BodyVelocity
local tru = plane.Main.BodyForce
local BodyGyro = plane.Main.BodyGyro
local speed = 20
function MoveUp(action_name, action_state)
if action_state == Enum.UserInputState.Begin then
height = 50
end
if action_state == Enum.UserInputState.End then
height = 0
end
end
function MoveDown(action_name, action_state)
if action_state == Enum.UserInputState.Begin then
height = -50
end
if action_state == Enum.UserInputState.End then
height = 0
end
end
function MoveLeft(action_name, action_state)
MovetLeftKeyDown = false
if action_state == Enum.UserInputState.Begin then
MovetLeftKeyDown = true
while MovetLeftKeyDown do
wait(0.1)
turn = turn + 5
end
elseif action_state == Enum.UserInputState.End then
MovetLeftKeyDown = false
end
end
function MoveRight(action_name, action_state)
MoveRightKeyDown = false
if action_state == Enum.UserInputState.Begin then
MoveRightKeyDown = true
while MoveRightKeyDown do
wait(0.1)
turn = turn - 5
end
elseif action_state == Enum.UserInputState.End then
MoveRightKeyDown = false
end
end
function MoveForward(action_name, action_state)
if action_state == Enum.UserInputState.Begin then
moving = -5000
Tilt = -10
end
if action_state == Enum.UserInputState.End then
moving = 0
Tilt = 0
end
end
function MoveBackwards(action_name, action_state)
if action_state == Enum.UserInputState.Begin then
moving = 5000
Tilt = 10
end
if action_state == Enum.UserInputState.End then
moving = 0
Tilt = 0
end
end
RunService:BindToRenderStep("Update", Enum.RenderPriority.Input.Value, function()
BodyGyro.CFrame = CFrame.Angles(0, math.rad(turn), 0) * CFrame.Angles(math.rad(Tilt), 0, 0)
tru.Force = plane.Main.CFrame.LookVector * (-moving * 2 )
vel.Velocity = Vector3.new(0,height,0)
end)
ContextActionService:BindAction("Down", MoveDown, false, "q")
ContextActionService:BindAction("Up", MoveUp, false, "e")
ContextActionService:BindAction("Left", MoveLeft, false, "a")
ContextActionService:BindAction("Right", MoveRight, false, "d")
ContextActionService:BindAction("Forward", MoveForward, false, "w")
ContextActionService:BindAction("Backwards", MoveBackwards, false, "s")