I have successfully made a plot selection system for my game with the help of this subreddit. I am now trying to make the player teleport to the selected plots but I have no idea what to do. This is my code so far.
local TweenService = game:GetService("TweenService")
local player = game.Players.LocalPlayer
local Camera = game.Workspace.Camera
local PlotSelect = script.Parent:WaitForChild("PlotSelect")
local Frame = PlotSelect:WaitForChild("Frame")
local Left = Frame:WaitForChild("Left")
local Right = Frame:WaitForChild("Right")
local Select = Frame:WaitForChild("Select")
local SelectedPlot = Frame:WaitForChild("SelectedPlot")
local Menu = script.Parent:WaitForChild("MainMenuGui")
local Menubg = Menu:WaitForChild("MainMenuBackground")
local Playbutton = Menubg:WaitForChild("PlayButton")
local player = game.Players.LocalPlayer
local character = game.Players.LocalPlayer.Character
local humanoid = character:WaitForChild("Humanoid")
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
continuescript = false
local Plots = game.Workspace.Plots
local Spawns = game.Workspace.Spawns
Camera.CameraType = Enum.CameraType.Scriptable
local function findUnoccupiedPlots()
local availablePlots = {}
for i, plot in pairs(Plots:GetChildren()) do
if plot.Occupant.Value == nil then
table.insert(availablePlots,plot)
end
end
return availablePlots
end
local TI = TweenInfo.new(
0.5,
Enum.EasingStyle.Quint,
Enum.EasingDirection.InOut,
0,
false,
0
)
local tweenInfo1 = TweenInfo.new(
1.5,
Enum.EasingStyle.Back,
Enum.EasingDirection.InOut
)
local tween1 = TweenService:Create(Frame, tweenInfo1, {Position = UDim2.new(0.5, 0, 0.8, 0)})
local tween2 = TweenService:Create(Frame, tweenInfo1, {Position = UDim2.new(1.5, 0, 0.8, 0)})
Playbutton.MouseButton1Click:Connect(function()
wait(3)
continuescript = true
end)
repeat
wait()
until continuescript == true
tween1:Play()
local function camTween(plot)
local cf = CFrame.new(plot.Position+Vector3.new(0,230,0),plot.Position)
local tween = TweenService:Create(game.Workspace.Camera,TI,{CFrame = cf})
tween:Play()
end
local plotsTable = findUnoccupiedPlots()
local index = 1
SelectedPlot.Value = plotsTable[index]
camTween(SelectedPlot.Value)
Left.MouseButton1Click:Connect(function()
if Plots:FindFirstChild("Plot"..index-1) then
index -= 1
else
index = 12
end
SelectedPlot.Value = plotsTable[index]
camTween(plotsTable[index])
end)
Right.MouseButton1Click:Connect(function()
if Plots:FindFirstChild("Plot"..index+1) then
index += 1
else
index = 1
end
SelectedPlot.Value = plotsTable[index]
camTween(plotsTable[index])
end)
Select.MouseButton1Click:Connect(function()
local result = game.ReplicatedStorage.RequestPlot:InvokeServer(plotsTable[index])
if result then
Select.Text = ("Success")
else
Select.Text = ("Error")
end
tween2:Play()
Camera.CameraType = Enum.CameraType.Custom
PlotSelect.Enabled = false
SelectedPlot.Value = nil
end)
game.Players.PlayerRemoving:Connect(function(player)
end)
The spawns are parts that I put at the centre of the plots. Please help me as I have no idea what to do.
question from:
https://stackoverflow.com/questions/65517653/how-do-i-make-the-players-teleport-to-their-selected-plots 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…