Menu
CoddyTech

基地に到達する

Coddyの「Robloxゲーム:タワーディフェンス」コースのレッスン 3/18。

経路の終点に到達した敵は拠点にダメージを与えます。拠点の体力はサーバー上で管理する必要がありますが、すべてのプレイヤーの画面に表示されるため、ワークスペースの属性として保持しましょう。サーバーで設定した属性は、すべてのクライアントから見えます。

workspace:SetAttribute("BaseHealth", Settings.BaseHealth)
print(workspace:GetAttribute("BaseHealth")) --> 20

damageBase(amount)は体力を減らしますが、0未満にはなりません(math.max)。最後のウェイポイントを通過した後、敵はこれを呼び出し、Destroyでゲームから退出します。

challenge icon

チャレンジ

簡単
  1. ウェイポイントを並べ替えた後、workspace属性のBaseHealthをSettings.BaseHealthに設定します。
  2. damageBase(amount)を記述します。これはBaseHealthをamountだけ減らし、0未満にはしません。
  3. walkPathの最後のウェイポイントの後に、damageBase(1)を呼び出して敵を破壊します。

Playを押してから、Checkを押します。

自分で試してみよう

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

local enemies = workspace.Enemies

print("The base can take " .. Settings.BaseHealth .. " hits")

-- 順番に並んだwaypoints(名前は1, 2, 3...)
local waypoints = workspace.Path.Waypoints:GetChildren()
table.sort(waypoints, function(a, b)
	return tonumber(a.Name) < tonumber(b.Name)
end)

-- すべてのプレイヤーにleaderboard上でMoneyを付与する
Players.PlayerAdded:Connect(function(player)
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player

	local money = Instance.new("IntValue")
	money.Name = "Money"
	money.Value = Settings.StartMoney
	money.Parent = leaderstats
end)

-- 敵をpathに沿って移動させる。MoveToは8秒後に諦め、そのことを通知する
-- (MoveToFinishedがfalseになる)ため、遅い敵には到着するまで再び移動を指示する。
local function walkPath(enemy)
	local humanoid = enemy.Humanoid
	for i = 2, #waypoints do
		repeat
			humanoid:MoveTo(waypoints[i].Position)
		until humanoid.MoveToFinished:Wait() or not enemy.Parent
		if not enemy.Parent then
			return
		end
	end
end

-- ゲートに現れ、pathを進む新しい敵
local function spawnEnemy(kind)
	local enemy = ServerStorage.Enemies[kind]:Clone()
	-- 最初のwaypointの真上に配置する
	enemy:PivotTo(waypoints[1].CFrame + Vector3.new(0, 5, 0))
	enemy.Parent = enemies
	task.spawn(walkPath, enemy)
	return enemy
end

-- 今のところ敵は1体だけ
spawnEnemy("Zombie")
quiz icon腕試し

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

Robloxゲーム:タワーディフェンスのすべてのレッスン