プレイヤーの健康を減少させるトラップは、コンディショナルステートを使用してコードできる楽しいゲームプレイ要素です。プレイヤーの健康を 0 に設定するパーツを作成することで、コンディショナルステートを使用できます。
トラップのセットアップ
トラップは、オービーなど、移動ベースのチャレンジを含むエクスペリエンスで特にうまく機能します。これらのステップは、必要な変数と関数を設定することから始まります。コードボックスを最初に見ることなく、できるだけ多くのことをすることをお勧めします。
トラップのパーツを作成し、名前を付けます。スクリプトをパーツに挿入します。
スクリプトで説明コメントを追加し、変数を使用してスクリプトの親を参照します。
-- プレイヤーがこの部分に触れると、彼らの健康を 0 に設定しますlocal trapPart = script.Parentパラメーターの名前が otherPart の「onTouch」関数を作成します。
-- プレイヤーがこの部分に触れると、彼らの健康を 0 に設定しますlocal trapPart = script.Parentlocal function onTouch(otherPart)end機能をトラップの部分の Touched イベントに接続して、部品に何かが触れるときに実行するようにします。
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.Touched:Connect(onTouch)
プレイヤーのタッチをチェック中
覚えておきなさい、パラメータ otherPart は、トラップ部分に触れるものを記録し、プレイヤーの一部か基本プレートの一部かもしれません。
トラップがプレイヤーを破壊しないでランダムな装飾アイテムを破壊しないようにするには、if/then 文を使用して、otherPart にある人形オブジェクトを含むかどうかをチェックします。
特定のオブジェクトを見つける
関数 FindFirstChildWhichIsA() は、人形型オブジェクトを検索するために使用できます。これは便利です、人形型オブジェクトを検索しているのは、アバターの一部だけなので、トラップに触れるだけです。プレイヤーはアバターの一部だけを触っているので、親のアバターを見つけるために変数を設定する必要があります
In onTouch() で、 local character = otherPart.Parent をタイプします。
local trapPart = script.Parentlocal function onTouch(otherPart)-- 他のパートの親オブジェクトを見つけるlocal character = otherPart.ParentendtrapPart.Touched:Connect(onTouch)Check to see if character has a Humanoid by typing:
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")endtrapPart.Touched:Connect(onTouch)
if 文を使用してチェック
ヒューマノイドが見つかった場合、ヒューマノイドの健康を 0 に設定します。
if 文を使用して、local humanoid にヒューマノイドが正しく割り当てられているかどうかをチェックします。
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- ヒューマノイドが見つかったかどうか評価しますif humanoid thenendendtrapPart.Touched:Connect(onTouch)プリントステートメントを追加し、コードをここまでチェックします。
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- ヒューマノイドが見つかったかどうか評価しますif humanoid thenprint("Found a Humanoid")endendtrapPart.Touched:Connect(onTouch)コードを実行し、プレイヤーがパーツに触れるたびに出力を見ることができるかどうかを確認します。
プレイヤーの体力を変更する
式が正解である場合、同じヒューマノイド変数を使用してプレイヤーの健康を 0 に設定できます。
end と end の間、humanoid.Health = 0 をタイプします。
スクリプト完了local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- ヒューマノイドが見つかったかどうか評価しますif humanoid thenprint("Found a Humanoid")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)トラップをテストします。
概要
このトラップ部は、ヒューマノイドのパーツを検出し、ヒューマノイドの健康を 0 に設定するためにコンディションを使用しました。このスクリプトは、以前のトラップスクリプトの改善で、何でもタッチするオブジェクトを破壊しました。
しかし、まだいくつかの欠点があります。ヒューマノイドはプレイヤーにのみ存在しません。ヒューマノイドは非プレイヤーキャラクターにも存在します。スクリプトは、プレイヤーの健康をゼロに設定するのにのみ役立ちます。あなたは、プレイヤーの健康を減少する小さな量を実�