Hi! :)
This is what i want the script to do: I have a for loop with a CFrame lerp in it going to one part, when the lerp is finished, it'll go from the part it went to, to another part then end.
This is the problem: In the loop, i cant catch when its reached the first part, -or when the lerp finished- then tell the script to go to the other part. Instead of going to the other part, it just stops in place and does nothing. Help!?
(If you are confused with my question, go to my question before this)
My code:
local model = script.Parent
local dest = workspace.Solar_System.ToChoosePlanet1.Position --tweak this when in real in-game script
local reDirect = script.ReDirect --tweak this when in real in-game script
local StartCF = CFrame.new(model.PrimaryPart.Position,dest) --point model to destination
local EndCF = StartCF - StartCF.p + dest --keep direction for destination, but use new destination position
local function getRedirect()
--[[
The reDirect is when if a ship is going to another planet and it noclips throught the sun,
it will go to one part to avoid the sun, then when it reaches the redirect part, it heds off
to the planet of its choosen destination.
--]]
if dest == workspace.Solar_System.ToChoosePlanet1.Position then --Put in many more of these if then state.s in real script
reDirect.Value = workspace.Solar_System.ShipReDirect4
local StartCF = CFrame.new(model.PrimaryPart.Position,reDirect.Value.Position)
local EndCF = StartCF - StartCF.p + reDirect.Value.Position --keep direction for destination, but use new destination position
end
end
getRedirect()
for i = 0,1,0.001 do --adding more 0s infront of the 1 will make the ship travel slower
wait(0.001)
model:SetPrimaryPartCFrame(StartCF:lerp(EndCF,i))
if dest == workspace.Solar_System.ToChoosePlanet1.Position then --Put in an else if instead of end if its another planet
reDirect.Value = workspace.Solar_System.ShipReDirect4
dest = reDirect.Value.Position
StartCF = CFrame.new(model.PrimaryPart.Position,reDirect.Value.Position)
EndCF = StartCF - StartCF.p + reDirect.Value.Position --keep direction for destination, but use new destination position
end
if i == 1 then
dest = workspace.Solar_System.ToChoosePlanet1.Position --tweak this when in real in-game script
StartCF = CFrame.new(model.PrimaryPart.Position,dest)
EndCF = StartCF - StartCF.p + dest --keep direction for destination, but use new destination position
for i = 0,1,0.001 do
wait(0.001)
model:SetPrimaryPartCFrame(StartCF:lerp(EndCF,i))
end
break
end
end
That's the code! If you need help or need more information please do not hesitate to ask for it, I will definitely include some more! Thank you so much! ~Chez_Guy :)
