レイズについて

レイズは白魔導士のスキルの1つであり、さらにネザーアスレでのリスポーン処理にも用いられているスキルであるが、処理が非常に煩雑であるのでここにまとめる。

(ネザーアスレでのリスポーン処理にも用いられているということは、最も使用されたスキルである可能性があるかも?)

Raise系タグ、スコアのについて

Raise系のタグやスコアは多くあり、混乱しやすいので軽くまとめる。なお、RaiseEndN系のタグについては後にまとめる。

Raise系タグ(プレイヤー用)

CastRaise

レイズを唱えたとき、もしくは死亡したプレイヤーがReRaiseを持っていた時、付与されるタグ。レイズ実行を実行するために必要であり、そこでCastingRaiseに置き換えられる。また、KeepInventory確認毎tick実行するコマンド群10で付与される。

CastingRaise

レイズを実行したプレイヤーに与えられるタグ。レイズ実行で付与される。

ReRaise

リレイズの効果を受けるプレイヤーに付与されるタグ。レイズ実行で付与され、KeepInventory確認満腹度修正で削除されることがある。

NeedRaise

レイズの対象となる予定のプレイヤーに付与するタグ。レイズ実行で用いられ、諸々の設定の終了後、Raiseに置き換えられる。

Raise

レイズの対象となるプレイヤーに付与されるタグ。レイズ実行KeepInventory確認で付与され、プレイヤーの死亡後満腹度修正RaiseEndに置き換えられる。

Raise系タグ(エンティティ用)

RaisePoint

レイズによって復活するときにリスポーン地点となるアンカーとして設置されているRaisePointに付与されているタグ。レイズ実行で召喚され、31秒後に消滅する。

RaiseTPMarker

RaiseSyncCountにより、RaisePointとプレイヤーとの同期ができた時に召喚されるRaiseTPMarkerに付与されているタグ。レイズリスポーン処理で召喚される。

Raise系スコア

RaiseSyncCount

レイズによるリスポーン地点の同期を行うためのスコア。RaisePointNeedRaiseを持つプレイヤーに与えられ、プレイヤーはRaiseSyncCountの同じRaisePointにリスポーンする。また、最新のRaiseSyncCount#RaisePointCountRaiseSyncCountで管理され、レイズを実行するごとに、0から1ずつ増えていく。RaisePointとプレイヤーにはレイズ実行で付与され、#RaisePointCountRaiseSyncCountの宣言は初期化処理で、カウントアップはレイズ実行でそれぞれ行われる。

RaisedArea

レイズが付与されたときに、プレイヤーがいるディメンションを記録するスコア。レイズ実行で設定される。

ネザーアスレでのリスポーンについて

KeepInventory確認にてネザーアスレ内で死亡した場合、Raiseを付与し、RaisedAreaをネザーアスレに設定する事によって、レイズリスポーン処理の処理を用いてネザーアスレのリスポーン地点に移動させている。

レイズリスポーン処理について

レイズリスポーン処理では、RaiseEndN系のタグに沿って処理が行われるので、ここでもそれに従う。

RaiseEndN系のタグはRaiseEndRaiseEnd2RaiseEnd3RaiseEnd4とあり、レイズによるリスポーン時の処理に用いられる。また、RaiseEndRaiseEnd2RaiseEnd3RaiseEnd4へと遷移しながら処理を行う。詳しくはレイズリスポーン処理にて。

まずプレイヤーが死亡した際、満腹度修正にてRaiseEndRaiseと置き換えられる。これによって、レイズリスポーン処理が実行される。

RaiseEnd

RaiseEndを付与された段階では、プレイヤーは通常世界のリスポーン地点にいるのでネザーやエンドにRaisedAreaがある場合は、プレイヤーをそれぞれのディメンションへと送る必要がある。

  • RaisedAreaがジ・エンドを示しているプレイヤーは通常世界のエンドポータル内に移動
  • RaisedAreaがネザーを示しているプレイヤーは通常世界のネザーポータル内に移動

RaiseEnd2

エンドポータルは触れただけで即ワープされるが、ネザーポータルはサバイバルやアドベンチャーモードではワープまでに時間がある。これを解決するために、RaisedAreaがネザーを指しているプレイヤーはクリエイティブに変更させ、即ネザーにワープできるようにする。

(時々、ネザーアスレへのリスポーン時にクリエイティブのまま担ってしまうプレイヤーがいるが、ここが原因。かといって、ネザーポータル内でワープされるまでプレイヤーを待機させるわけにもいかないので、致し方ない。1.13以降はexecuteの登場によりこれは解決できるので、次期バージョンでは無くなるだろう)

RaiseEnd3

前述した通り、ネザーポータルでのワープには時間がかかるので、プレイヤーがポータル内にいるときはRaiseEnd2に戻る。
他のプレイヤーは、スペクテイターモードに変更し、ネザーもしくはエンド内にいる場合は指定の位置に移動する。

RaiseEnd4

RaiseAreaがネザーアスレを示しているとき、ネザーアスレリスポーン地点に移動させる。それ以外のときは、RaisePointRaiseSyncCountとプレイヤーのRaiseSyncCountが等しい場所にプレイヤーを移動させ、RaiseSyncCountが一致しないプレイヤーは「復帰地点が見つからなかった!」とのメッセージを表示。
最後にプレイヤーをアドベンチャーモードに変更して終了する。