パーツに触れたら別のゲームに移動させる方法です。

  1. Workspace に Part を1つ追加します。
  2. Part に Script を追加します。
local Players = game:GetService("Players")
local TeleportService = game:GetService("TeleportService")
local part = script.Parent

local placeId = 移動先のゲーム番号

part.Touched:Connect(function(hit)
    local player = Players:GetPlayerFromCharacter(hit.Parent)
    if player then
        TeleportService:Teleport(placeId, player)
    end
end)

他プレースへの移動

ゲーム内の異なる場所(プレース)へ複数人のプレイヤーを移動する方法です。TeleportAsync を使用します。
以下のプログラムはRoblox公式(https://create.roblox.com/docs/ja-jp/projects/teleporting)から引用させていただきました。

SafeTeleportのパラメータ

  • placeId プレースのID
  • players 転送したいプレイヤー({ Player1,Player2,Player3…} と配列で指定)
  • options 渡したいデータ(テーブルで指定)
local TeleportService = game:GetService("TeleportService")

local ATTEMPT_LIMIT = 5
local RETRY_DELAY = 1
local FLOOD_DELAY = 15

local function SafeTeleport(placeId, players, options)
    local attemptIndex = 0
    local success, result -- define pcall results outside of loop so results can be reported later on

    repeat
        success, result = pcall(function()
            return TeleportService:TeleportAsync(placeId, players, options) -- teleport the user in a protected call to prevent erroring
        end)
        attemptIndex += 1
        if not success then
            task.wait(RETRY_DELAY)
        end
    until success or attemptIndex == ATTEMPT_LIMIT -- stop trying to teleport if call was successful, or if retry limit has been reached

    if not success then
        warn(result) -- print the failure reason to output
    end

    return success, result
end

local function handleFailedTeleport(player, teleportResult, errorMessage, targetPlaceId, teleportOptions)
    if teleportResult == Enum.TeleportResult.Flooded then
        task.wait(FLOOD_DELAY)
    elseif teleportResult == Enum.TeleportResult.Failure then
        task.wait(RETRY_DELAY)
    else
        -- if the teleport is invalid, report the error instead of retrying
        error(("Invalid teleport [%s]: %s"):format(teleportResult.Name, errorMessage))
    end

    SafeTeleport(targetPlaceId, {player}, teleportOptions)
end

TeleportService.TeleportInitFailed:Connect(handleFailedTeleport)

return SafeTeleport

By schilverberch

ROBLOXでゲームを作ろう! 一緒にプログラミングを学びましょう。

コメントを残す