Menu
CoddyTech

Téléporter les joueurs

Leçon 6 sur 20 du cours Jeu Roblox : Survivre aux catastrophes de Coddy.

Une île sur laquelle personne ne se tient n'est pas un jeu. Quand une manche commence, chaque joueur va au Spawn de la carte, et quand elle se termine, retourne au lobby.

Players:GetPlayers() répertorie tout le monde dans le jeu, et le corps d'un joueur est player.Character, un Model. Model:PivotTo(cframe) déplace tout un modèle d'un coup, chaque partie gardant sa place. Un CFrame est une position plus une rotation, et l'ajout d'un Vector3 le déplace :

local function teleport(player, target)
	local character = player.Character
	if character then
		character:PivotTo(target.CFrame + Vector3.new(0, 4, 0))
	end
end

Les 4 studs vers le haut font apparaître le joueur un peu au-dessus de la cible au lieu de le faire apparaître à l'intérieur. player.Character est nil pendant un instant après avoir rejoint la partie ou être mort, d'où le if.

challenge icon

Défi

Moyen

Envoie les joueurs sur l’île et ramène-les.

  1. Écris teleport(player, target) : si player.Character existe, utilise PivotTo(target.CFrame + Vector3.new(0, 4, 0)).
  2. Juste après le chargement de la carte, téléporte chaque joueur vers map.Spawn.
  3. À la fin du compte à rebours de la manche, téléporte tout le monde vers lobbySpawn, avant la destruction de la carte.

Appuie sur « Jouer » : tu atterris sur l’île au début de la manche, puis tu retournes dans le lobby lorsqu’elle se termine. Ensuite, appuie sur « Vérifier ».

Essayez vous-même

local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local Settings = require(game.ReplicatedStorage.Settings)

print("Rounds last " .. Settings.RoundLength .. " seconds")

-- Chaque joueur reçoit Wins dans le classement
Players.PlayerAdded:Connect(function(player)
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player

	local wins = Instance.new("IntValue")
	wins.Name = "Wins"
	wins.Parent = leaderstats
end)

-- Le panneau d’état dans le hall
local gui = Instance.new("SurfaceGui")
gui.Parent = workspace.StatusBoard

local status = Instance.new("TextLabel")
status.Name = "Status"
status.Size = UDim2.fromScale(1, 1)
status.BackgroundColor3 = Color3.fromRGB(25, 25, 35)
status.TextColor3 = Color3.fromRGB(255, 255, 255)
status.TextScaled = true
status.Text = "Welcome to Disaster Survival!"
status.Parent = gui

local function setStatus(text)
	status.Text = text
end

-- Leçon 6 : Teleport Players va ici

-- La boucle des manches
while true do
	for seconds = Settings.Intermission, 1, -1 do
		setStatus("Intermission: " .. seconds)
		task.wait(1)
	end

	local map = ServerStorage.Maps.Island:Clone()
	map.Name = "Map"
	map.Parent = workspace

	for seconds = Settings.RoundLength, 1, -1 do
		setStatus("Time left: " .. seconds)
		task.wait(1)
	end

	map:Destroy()
end

Toutes les leçons de Jeu Roblox : Survivre aux catastrophes

Entraînez-vous par vous-même : Playground Roblox