Téléporter les joueurs
Leçon 6 sur 18 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
endLes 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.
Défi
MoyenDéplace les joueurs :
- Près du début, conserve le point d’apparition du lobby :
local lobbySpawn = workspace.LobbySpawn. - Écris
teleport(player, target)comme dans la leçon. - Juste après le chargement de la carte, téléporte chaque joueur vers
map.Spawn. - Quand le compte à rebours de la manche se termine, téléporte chaque joueur vers
lobbySpawn, avant que la carte soit détruite.
Appuie sur Play et suis l’action, puis sur Check.
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 des 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
-- 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
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Jeu Roblox : Survivre aux catastrophes
2Cartes et joueurs
Charger une carte