I’m currently writing a script that tweens a player’s camera in different locations but when I want the looping between locations to stop, the script keeps running the loop even if the script is destroyed using :Destroy().
Here is my script:
while Player.Play.Value == false do
wait(12)
while Player.PlayerGui.HomeScreen.Fade.Transparency > 0 do
Player.PlayerGui.HomeScreen.Fade.Transparency = Player.PlayerGui.HomeScreen.Fade.Transparency - .05
wait(.05)
end
tweenInfo = TweenInfo.new(
20,
Enum.EasingStyle.Linear,
Enum.EasingDirection.Out,
0,
false,
0
)
tween(game.Workspace.CameraTownA, game.Workspace.CameraTownB)
wait(1)
while Player.PlayerGui.HomeScreen.Fade.Transparency < 1 do
Player.PlayerGui.HomeScreen.Fade.Transparency = Player.PlayerGui.HomeScreen.Fade.Transparency + .05
wait(.05)
end
wait(17)
while Player.PlayerGui.HomeScreen.Fade.Transparency > 0 do
Player.PlayerGui.HomeScreen.Fade.Transparency = Player.PlayerGui.HomeScreen.Fade.Transparency - .05
wait(.05)
end
tween(game.Workspace.CameraMuseumA, game.Workspace.CameraMuseumB)
wait(1)
while Player.PlayerGui.HomeScreen.Fade.Transparency < 1 do
Player.PlayerGui.HomeScreen.Fade.Transparency = Player.PlayerGui.HomeScreen.Fade.Transparency + .05
wait(.05)
end
wait(12)
while Player.PlayerGui.HomeScreen.Fade.Transparency > 0 do
Player.PlayerGui.HomeScreen.Fade.Transparency = Player.PlayerGui.HomeScreen.Fade.Transparency - .05
wait(.05)
end
tweenInfo = TweenInfo.new(
45,
Enum.EasingStyle.Linear,
Enum.EasingDirection.Out,
0,
false,
0
)
tween(game.Workspace.CameraLakeA, game.Workspace.CameraLakeB)
wait(1)
while Player.PlayerGui.HomeScreen.Fade.Transparency < 1 do
Player.PlayerGui.HomeScreen.Fade.Transparency = Player.PlayerGui.HomeScreen.Fade.Transparency + .05
wait(.05)
end
wait(42)
while Player.PlayerGui.HomeScreen.Fade.Transparency > 0 do
Player.PlayerGui.HomeScreen.Fade.Transparency = Player.PlayerGui.HomeScreen.Fade.Transparency - .05
wait(.05)
end
tweenInfo = TweenInfo.new(
15,
Enum.EasingStyle.Linear,
Enum.EasingDirection.Out,
0,
false,
0
)
tween(game.Workspace.CameraFossilA, game.Workspace.CameraFossilB)
wait(1)
while Player.PlayerGui.HomeScreen.Fade.Transparency < 1 do
Player.PlayerGui.HomeScreen.Fade.Transparency = Player.PlayerGui.HomeScreen.Fade.Transparency + .05
wait(.05)
end
end
I tried destroying the script and even adding while do to the waits yet the script doesn't seem to stop.