I'm working on a game and I've run into a problem scripting the motion of the forks of a forklift. I've got the model done, but no matter what I try in my script using CFrame and other API calls, I cannot change the position of the forks relative to the beam that holds them. If I break the joint between the forks and the beam, then I can move them, but then of course they don't work as a fork lift.
Here is the script I've tried most recently: -- ************************************************************************************
-- In this function we will process the received events from the EventServer, fired by -- key press events handled by the Local Script. This function must -- * parse the sending player -- * parse the event "type" sent in arg1 -- * Confirm the player has a vehicle created of the correct type
game.Workspace.LiftTruckOperControlEvent.OnServerEvent:connect(function(player, arg1) -- define the function that will be called when the event is fired
if (player ~= nil) then local vehicleName = player.Name.."ContainerLiftTruck" if ( game.Workspace:FindFirstChild(vehicleName) and (player.VehicleTag.Value == "ContainerLiftTruck") ) then local playersTruck = game.Workspace:FindFirstChild(vehicleName) local truckNetworkOwner = playersTruck.VehicleSeat:GetNetworkOwner() -- lets make sure the networkowner is the one in the seat if (truckNetworkOwner.Name == player.Name) then -- network owner is in the driver's seat if (arg1 == "up") then print (vehicleName.." Going Up!") local startingCFrame = playersTruck.GrabberAssembly:GetPrimaryPartCFrame() local newCFrame = startingCFrame + Vector3.new(0, 5, 0) print("Start: ",startingCFrame) print("New: ", newCFrame) --playersTruck.ContainerGrabAssembly:SetPrimaryPartCFrame(newCFrame) --playersTruck.ContainerGrabAssembly.LiftTraveller.CFrame = newCFrame --playersTruck.ContainerGrabAssembly:TranslateBy(Vector3.new(0, 5, 0)) print(playersTruck.GrabberAssembly:GetPrimaryPartCFrame()) elseif (arg1 == "down") then print (vehicleName.." Going Down!") else print (vehicleName.." Arg1 not what I expected") end else -- someone other than the owner is in the seat end end else print ("No Vehicle Found by that name") end
end)
In order for the new CFRAME to take effect, do I need to break the joint between the grabber assembly and the beam, then remake it after its done moving?
If anyone can help me with this scripting issue I would really appreciate it. Thanks!