Menu
CoddyTech

チェックポイント

CoddyのLuaジャーニー「Robloxゲームのスクリプティング」セクションの一部。レッスン 22/24。

プレイヤーが倒されると、Robloxは5秒(Players.RespawnTime)待ってから、SpawnLocationに新しいキャラクターを出現させます。場所に複数のSpawnLocationがある場合、Robloxはランダムに1つを選ぶため、チェックポイントが誤ってスタート地点になることがあります。

各プレイヤーにはRespawnLocationプロパティがあります。これをSpawnLocationに設定すると、そのプレイヤーは常にそこにリスポーンします。Obbyではこれを2回使います。プレイヤーが参加したときはスタート地点を指定し、チェックポイントに到達したときはチェックポイントに変更します。

local Players = game:GetService("Players")
local camp = workspace.Camp
camp.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	if player then
		player.RespawnLocation = camp
	end
end)

RespawnLocationは各プレイヤーに属するため、1人のプレイヤーがキャンプに到達しても、ほかのプレイヤーの設定は変わりません。

challenge icon

チャレンジ

中級

灰色のパッドはworkspace.Startで、青く光るパッドはチェックポイントです(どちらもSpawnLocationsです)。このスクリプトはチェックポイントの中にあります。

  1. プレイヤーが参加したら、そのプレイヤーのRespawnLocationをworkspace.Startに設定します。
  2. プレイヤーがチェックポイントに触れたら、そのプレイヤーのRespawnLocationをチェックポイントに設定し、緑色にします:Color3.fromRGB(0, 255, 0)。

Playを押し、チェックポイントに乗ってから、奥にある溶岩に入ります。チェックポイントに戻ってくるはずです。その後、Checkを押します。

自分で試してみよう

local Players = game:GetService("Players")
local checkpoint = script.Parent

Players.PlayerAdded:Connect(function(player)
	-- すべてのプレイヤーをworkspace.Startから開始させる
end)

checkpoint.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	if player then
		-- 今後、このプレイヤーをここでリスポーンさせる

		-- checkpointを緑色にする
	end
end)
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Robloxゲームのスクリプティングのすべてのレッスン

自分で練習してみよう: Luaオンラインコンパイラ