Como fazer teleporte no Roblox Studio

Como fazer Teleport no Roblox Studio

Se você quer aprender como fazer teleport no Roblox Studio, chegou ao lugar certo! Neste tutorial, a Prof. Fernanda vai te ensinar a criar um sistema de teletransporte no seu jogo, permitindo que os jogadores acessem ilhas secretas apenas se comprarem uma Gamepass com Robux. Além disso, vamos garantir que a compra seja salva no DataStore, para que o jogador não perca o acesso mesmo ao sair do jogo.

Acompanhe o vídeo abaixo e confira os scripts da aula logo depois para implementar esse recurso incrível no seu jogo! Vamos juntos transformar seu game em uma verdadeira experiência premium no Roblox! 🚀🔥

Como fazer Teleport no Roblox Studio

Script do Server

				
					local MarketPlace = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RemoteEvent= ReplicatedStorage.RemoteEvent
local Destino = game.Workspace.Destino
local SpawnLocation = game.Workspace.SpawnLocation

local DataStoreService = game:GetService("DataStoreService")
local MapDataStore = DataStoreService:GetDataStore("MapDataStore")

local PlayerData={}

local productIlha2 = 2736192007
local function teleport(player:Player, destino)
	local character = player.Character
	local HumanoidRootPart = character:FindFirstChild("HumanoidRootPart")
	
	if HumanoidRootPart then
		if destino=="ilha1" then
				--HumanoidRootPart.CFrame = Destino.CFrame
				HumanoidRootPart.CFrame = CFrame.new(Destino.Position + Vector3.new(0,5,0))
		end
		if destino=="ilha2" then
			HumanoidRootPart.CFrame = CFrame.new(SpawnLocation.Position + Vector3.new(0,5,0) ) 
		end
		
	end
	
	
end


local function addPlayerData(player:Player)
	local playerId= player.UserId
	
	if not PlayerData[playerId] then
		PlayerData[playerId]={
			player = playerId,
			inventory={ coins=0},
			velocity = 16,
			access = false,
		}
		
		local dataStore = MapDataStore:GetAsync(playerId)
		if dataStore then
			PlayerData[playerId] = dataStore
		end
	end
	print(PlayerData)
end



RemoteEvent.OnServerEvent:Connect(function(player, data)
	print(data)
	if data=="ilha1" then
		print("precisa teleportar o player para a ilha 2")
		if not PlayerData[player.UserId].access then
			MarketPlace:PromptProductPurchase(player,productIlha2)
		else
			teleport(player,"ilha1")
		end
		
	end
	if data=="ilha2" then
		teleport(player, "ilha2")
	end
end)
local function processReceipt(receipt)
	print(receipt)
	local player = game.Players:GetPlayerByUserId(receipt.PlayerId)
	
	if not player then
		return Enum.ProductPurchaseDecision.NotProcessedYet
	end
	if receipt.ProductId == productIlha2 then
		PlayerData[receipt.PlayerId].access= true
		teleport(player, "ilha1")
		return Enum.ProductPurchaseDecision.PurchaseGranted
	end
end

MarketPlace.ProcessReceipt = processReceipt

Players.PlayerAdded:Connect(function(player:Player)
	addPlayerData(player)
end)

Players.PlayerRemoving:Connect(function(player)
	--PlayerData[player.UserId].access=false
	MapDataStore:SetAsync(player.UserId, PlayerData[player.UserId])
end)

				
			

LocalScript

				
					local Players = game:GetService("Players")
local player = Players.LocalPlayer
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RemoteEvent= ReplicatedStorage.RemoteEvent
local ProximityPrompt  = game:GetService("ProximityPromptService")



ProximityPrompt.PromptTriggered:Connect(function(prompt, player)
	print("Chamei")
	print(prompt.Name)
	if prompt.Name=="ilha1" then
		print("teleportar o player para a ilha 2")
		RemoteEvent:FireServer("ilha1")
	end
	if prompt.Name=="ilha2" then
		print("ilha2")
		RemoteEvent:FireServer("ilha2")
	end
	
end)
				
			

🚀 Venha Aprender Programação de Forma Divertida na Programação for Kids! 🎮👩‍💻

Já imaginou criar seus próprios jogos no Roblox Studio ou desenvolver aplicativos incríveis? Com os cursos da Programação for Kids, crianças e adolescentes aprendem programação de maneira prática e divertida, sem complicação!

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *