If/然 Traps 練習

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

プレイヤーの健康を減少させるトラップは、コンディショナルステートを使用してコードできる楽しいゲームプレイ要素です。プレイヤーの健康を 0 に設定するパーツを作成することで、コンディショナルステートを使用できます。

トラップのセットアップ

トラップは、オービーなど、移動ベースのチャレンジを含むエクスペリエンスで特にうまく機能します。これらのステップは、必要な変数と関数を設定することから始まります。コードボックスを最初に見ることなく、できるだけ多くのことをすることをお勧めします。

  1. トラップのパーツを作成し、名前を付けます。スクリプトをパーツに挿入します。

  2. スクリプトで説明コメントを追加し、変数を使用してスクリプトの親を参照します。


    -- プレイヤーがこの部分に触れると、彼らの健康を 0 に設定します
    local trapPart = script.Parent
  3. パラメーターの名前が otherPart の「onTouch」関数を作成します。


    -- プレイヤーがこの部分に触れると、彼らの健康を 0 に設定します
    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
  4. 機能をトラップの部分の Touched イベントに接続して、部品に何かが触れるときに実行するようにします。


    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
    trapPart.Touched:Connect(onTouch)

プレイヤーのタッチをチェック中

覚えておきなさい、パラメータ otherPart は、トラップ部分に触れるものを記録し、プレイヤーの一部か基本プレートの一部かもしれません。

トラップがプレイヤーを破壊しないでランダムな装飾アイテムを破壊しないようにするには、if/then 文を使用して、otherPart にある人形オブジェクトを含むかどうかをチェックします。

特定のオブジェクトを見つける

関数 FindFirstChildWhichIsA() は、人形型オブジェクトを検索するために使用できます。これは便利です、人形型オブジェクトを検索しているのは、アバターの一部だけなので、トラップに触れるだけです。プレイヤーはアバターの一部だけを触っているので、親のアバターを見つけるために変数を設定する必要があります

  1. In onTouch() で、 local character = otherPart.Parent をタイプします。


    local trapPart = script.Parent
    local function onTouch(otherPart)
    -- 他のパートの親オブジェクトを見つける
    local character = otherPart.Parent
    end
    trapPart.Touched:Connect(onTouch)
  2. Check to see if character has a Humanoid by typing:

    local humanoid = character:FindFirstChildWhichIsA("Humanoid")


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    end
    trapPart.Touched:Connect(onTouch)

if 文を使用してチェック

ヒューマノイドが見つかった場合、ヒューマノイドの健康を 0 に設定します。

  1. if 文を使用して、local humanoid にヒューマノイドが正しく割り当てられているかどうかをチェックします。


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- ヒューマノイドが見つかったかどうか評価します
    if humanoid then
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. プリントステートメントを追加し、コードをここまでチェックします。


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- ヒューマノイドが見つかったかどうか評価します
    if humanoid then
    print("Found a Humanoid")
    end
    end
    trapPart.Touched:Connect(onTouch)
  3. コードを実行し、プレイヤーがパーツに触れるたびに出力を見ることができるかどうかを確認します。

プレイヤーの体力を変更する

式が正解である場合、同じヒューマノイド変数を使用してプレイヤーの健康を 0 に設定できます。

  1. end と end の間、humanoid.Health = 0 をタイプします。

    スクリプト完了

    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- ヒューマノイドが見つかったかどうか評価します
    if humanoid then
    print("Found a Humanoid")
    humanoid.Health = 0
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. トラップをテストします。

概要

このトラップ部は、ヒューマノイドのパーツを検出し、ヒューマノイドの健康を 0 に設定するためにコンディションを使用しました。このスクリプトは、以前のトラップスクリプトの改善で、何でもタッチするオブジェクトを破壊しました。

しかし、まだいくつかの欠点があります。ヒューマノイドはプレイヤーにのみ存在しません。ヒューマノイドは非プレイヤーキャラクターにも存在します。スクリプトは、プレイヤーの健康をゼロに設定するのにのみ役立ちます。あなたは、プレイヤーの健康を減少する小さな量を実�