テレポート場所が3か所あり、A→B→C→A という具合に移動できるようにしたいと思います。もちろん、さらに多くても構いません。

  1. Part を3つ設置します。名前は、PartA、PartB、PartC にします。
  2. それぞれ3つの Part に、ObjectValue を入れ、名前をGoalにします。
  3. そのプロパティ Value に移動先のパーツを設定します。例)PartAならPartBを
  4. 各Part にScriptを追加し、以下のプログラムを入力します。各パーツに入れるプログラム内容はすべて同じものになります。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local part = script.Parent
local goal = part.Goal.Value

part.Touched:Connect(function(hit)
    -- キャラクターモデルとゴール先のパーツをパラメータにする
    ReplicatedStorage.MoveEvent:Fire(hit.Parent,goal)
end)
  1. ReplicatedStorage に BindableEvent を追加し、名前を MoveEvent にします。
  2. ServerScriptService に Script を追加し、以下のプログラムを入力します。
local ReplicatedStorage = game:GetService("ReplicatedStorage")

ReplicatedStorage.MoveEvent.Event:Connect(function(character,to)
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    if humanoid and to.Script.Enabled == true then
        to.Script.Enabled = false
        game:GetService("RunService").Stepped:wait()
        local hrp = character.PrimaryPart
        hrp.CFrame = to.CFrame + Vector3.new(0,3,0)
        wait(2)  -- 2秒間はタッチイベントを発生させない
        to.Script.Enabled = true
    end
end)

By schilverberch

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

コメントを残す