ダメージ床。床の上を歩くとダメージを受けるようにします。触るとダメージを受けるので、ダメージ壁としても使用できます。

  1. Workspace に Part を1つ追加します。
  2. Part に Script を追加します。

床(Part) の上を歩くと、ライフが1ずつ減っていきます。止まった場合はダメージを受けません。

local part = script.Parent

local function onTouch(hit)
    local character = hit.Parent
    local humanoid = character:FindFirstChild("Humanoid")
 
    if humanoid then
        humanoid.Health = humanoid.Health - 1    -- 数字を大きくすると沢山ダメージを受けます
    end
end
 
part.Touched:Connect(onTouch)    -- Touched イベントの設定

Humanoid の TakeDamage というメソッドを使用することもできます。

    if humanoid then
        humanoid:TakeDamage(1)    -- 数字を大きくすると沢山ダメージを受けます
    end

イベントの解除

パーツそのものは消去せず、イベントだけを解除する方法です。

connection = script.Parent.Touched:Connect(function(hit)
    local character = hit.Parent
    local humanoid = character:FindFirstChild("Humanoid")
 
    if humanoid then
        connection:Disconnect()    -- イベント解除
        humanoid:TakeDamage(50)
    end
end)

パーツに乗っている間中ダメージを受ける

プレイヤーがパーツの上に乗るとタッチイベントが発生しますが、微動だにせずにいるとタッチイベントは発生しません。パーツの上に乗っている間ずっとダメージを与えたい場合は次のようにプログラムするのが簡単でしょう。
一度イベントを解除して、再接続することにより再びイベントが発生するようになります。

local part = script.Parent

local function onTouch(hit)
    local humanoid = hit.Parent:FindFirstChild(“Humanoid”)
    if humanoid then
        connect:Disconnect()
        humanoid:TakeDamage(5)
        wait(1)
        connect = part.Touched:Connect(onTouch)
    end
end

connect = part.Touched:Connect(onTouch)

By schilverberch

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

コメントを残す