Fortnite UEFN VERSE

【VERSE】「レッスン 7:練習の時間です!」をフォートナイトに例えて解説


初心者

レッスン7の意味はわかったけど...

練習問題のほうはわからない、、、

誰かわかりやすく教えてください

当サイトでは、フォートナイトに例えて発信しています!

とーや


今回は、前回のレッスン7の続きである【レッスン 7:練習の時間です!】を解説していきます。


名前の関数を作成


「CalculateDamage()」という特別な関数を作ります。

この関数の中には、プレイヤーの最小の体力「MinHealth」が1.0、そしてポーションで受けるダメージ量「PotionDamageAmount」が80.0という2つの特別な数字が入ってる。

さらに、「PlayerHealth」という名前のカバンを用意して、その中に100.0という数字を入れておく。

これはプレイヤーの初めの体力を示しています

これを使うと、フォートナイトの中でプレイヤーがどれくらいのダメージを受けるか、またはどれくらいの体力が回復するかを計算が可能です。


3つの値の1つを返す


フォートナイトで、特別なポーションを飲んだときの効果を考えてみよう。

このポーションは、あなたの体力に応じて違う効果が出ます。


ポーション効果

  • 体力がポーションのダメージ量よりも多いとき
    → ポーションが強すぎて、ポーションのダメージだけ受けることになる
  • 体力がポーションのダメージより少なく、最小の体力より多いとき
    → ポーションが強すぎて、体力を最小の体力まで落とすが、ゼロにはならない
  • 体力が最小の体力と同じとき
    → ポーションで全ての体力がなくなる


つまり、このポーションは、あなたの体力によっていろんな効果があるということ。


結果を格納する


フォートナイトで新しいアイテム、ダメージポーションを作ったと想像してみてみましょう。

このポーションを使うと、どれだけダメージを受けるかを計算する「CalculateDamage()」というものがある。

この結果を保存して、次にどれだけのダメージを受けるかを知るための「DamageToDo」という箱を用意します。

バトルロイヤルの中で、最初のプレイヤーがこのポーションを拾ったとする。

このポーションを使うと、上で作った「CalculateDamage()」がどれだけのダメージをするかを計算します。

その結果「DamageToDo」という箱に保存されて、プレイヤーはその分のダメージを受けることになるというわけです。

ただ、今の例ではポーションを使ったときに50のダメージを受けるようになっていますが、この数字は「CalculateDamage()」で計算した結果に変えられます。


結果を使用


フォートナイトで新しいアイテム、ダメージポーションを使って遊ぶとき、どれだけのダメージを受けるかが気になるかと思います。

その答えを知るために「CalculateDamage()」があって、これでダメージの量を計算する。

バトルロイヤルの中で、プレイヤーがこのポーションを使う時、最初にこれを使ってダメージの量を調べる。

その答えは「DamageToDo」という名前の箱に入れておく。


ダメージの量がわかったら、次は「そのダメージを実際にプレイヤーに与えるターン!」でも、その前に、どれだけのダメージを与えるかを画面に表示してみましょう。

それで、「DamageToDo: 〇〇」というメッセージが表示され〇〇の部分はダメージの量のこと。


最後に、「表示されたダメージを実際にプレイヤーに与えることができる!」これで、ダメージポーションを使うときの関数が完成しました。


完全なスクリプト


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):

# 実行中のゲームで仕掛けが開始されたときに実行します
OnBegin<override>()<suspends>:void=

HurtPlayer()
Print("Player Hurt")

CalculateDamage() : float =
MaxHealth : float = 100.0
MinHealth : float = 1.0
PotionDamageAmount: float = 80.0
var PlayerHealth : float = 100.0

# ダメージ量によってプレイヤーが倒れない場合は、そのダメージ量を実行します
if (PlayerHealth > PotionDamageAmount):
return PotionDamageAmount
else if (PlayerHealth > MinHealth):
# プレイヤーのヘルス値が低い場合は、もう一度チャンスを与えます
return PlayerHealth - MinHealth
else:
# プレイヤーを倒します
return PlayerHealth

HurtPlayer() : void =
Playspace: fort_playspace = GetPlayspace()
AllPlayers: []player = Playspace.GetPlayers()
if (FirstPlayer : player = AllPlayers[0]):
if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]):
DamageToDo: float = CalculateDamage()
Print("DamageToDo: {DamageToDo}")
FortniteCharacter.Damage(DamageToDo)


終わりに


今回は、前回のレッスン7の続きである【レッスン 7:練習の時間です!】を解説しました。


もし、質問やわからないことがございましたらDMやコメントをお願い致します!


最後までお読みいただきありがとうございました(@^^)/~~~

とーや


-Fortnite, UEFN, VERSE
-, , ,