関数の構造が把握できたので、独自の関数を作成しましょう。独自の関数を 2 つ作成します。
前回の演習では、フォートナイトのプレイヤー キャラクターにダメージを与えるのに必要なコードの行について学習しました。 コードが必要なときに、これらの同じ行を毎回入力しなくてすむと良いでしょう。
HurtPlayer()という名前の関数を宣言します。 この関数の戻り値の型はvoidです。つまり、戻り値がありません。 Verse ファイルの最後に関数の宣言を配置します。 関数の本体は、「レッスン 5:練習の時間です!」と同じコードであるため、おさらいが必要であればそちらで確認してください。VerseHurtPlayer() : void = Playspace: fort_playspace = GetPlayspace() AllPlayers: []player = Playspace.GetPlayers() if (FirstPlayer : player = AllPlayers[0]): if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]): FortniteCharacter.Damage(50.0)別の関数の内部に関数を定義することはできません。そのため、すべての関数を
OnBegin()と同じレベルにインデントするようにします。これで、キャラクターにいつでもダメージを与えられる関数ができました。 しかし、関数の宣言では、関数のボディは実行されません。 関数のボディを実行するには、その関数を呼び出す必要があります。 これらの関数は、必ず
OnBegin()内に呼び出します。VerseHurtPlayer() Print("Player Hurt")すでにお気づきかもしれませんが、キャラクターを回復させるメソッドもあります。 そのメソッドの名前は
Heal()です。また、このメソッドは、Damage()を呼び出すのとまったく同じ方法で呼び出すことができます。 このコードを使用し、Verse ファイルの最後にHealPlayer()関数の宣言を作成します。VerseHealPlayer() : void = Playspace: fort_playspace = GetPlayspace() AllPlayers: []player = Playspace.GetPlayers() if (FirstPlayer : player = AllPlayers[0]): if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]): FortniteCharacter.Heal(20.0)次に、
HealPlayer()の呼び出しを、OnBegin()のボディ内の関数呼び出しに追加します。VerseHurtPlayer() Print("Player Hurt") Sleep(5.0) HealPlayer() Print("Player Healed")
Sleep() 関数の新しい呼び出しがあることに気づかれたかもしれません。 基本的に、Sleep() は、後続のコード実行を続行する前にプログラムを待機させます。 待機時間は、Sleep() にパスするパラメータ (秒で表現) によって決定されます。 (パラメータについては、以降のレッスンで詳細を学習します。)ここに Sleep() がない場合、HealPlayer() は HurtPlayer() の直後に実行されるため、2 つの関数呼び出しが行われたことに気づかないでしょう。
完全なスクリプト
using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Playspaces }
using { /Verse.org/Simulation }
using { /Verse.org/Verse }
hello_world_device := class(creative_device):
# Runs when the device is started in a running game
OnBegin<override>()<suspends>:void=