レイズについて
レイズは白魔導士のスキルの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
レイズによるリスポーン地点の同期を行うためのスコア。RaisePointとNeedRaise
を持つプレイヤーに与えられ、プレイヤーはRaiseSyncCount
の同じRaisePointにリスポーンする。また、最新のRaiseSyncCount
は#RaisePointCount
のRaiseSyncCount
で管理され、レイズを実行するごとに、0から1ずつ増えていく。RaisePointとプレイヤーにはレイズ実行で付与され、#RaisePointCount
のRaiseSyncCount
の宣言は初期化処理で、カウントアップはレイズ実行でそれぞれ行われる。
RaisedArea
レイズが付与されたときに、プレイヤーがいるディメンションを記録するスコア。レイズ実行で設定される。
ネザーアスレでのリスポーンについて
KeepInventory確認にてネザーアスレ内で死亡した場合、Raise
を付与し、RaisedArea
をネザーアスレに設定する事によって、レイズリスポーン処理の処理を用いてネザーアスレのリスポーン地点に移動させている。
レイズリスポーン処理について
レイズリスポーン処理では、RaiseEndN
系のタグに沿って処理が行われるので、ここでもそれに従う。
RaiseEndN
系のタグはRaiseEnd
、RaiseEnd2
、RaiseEnd3
、RaiseEnd4
とあり、レイズによるリスポーン時の処理に用いられる。また、RaiseEnd
→ RaiseEnd2
→ RaiseEnd3
→ RaiseEnd4
へと遷移しながら処理を行う。詳しくはレイズリスポーン処理にて。
まずプレイヤーが死亡した際、満腹度修正にてRaiseEnd
がRaise
と置き換えられる。これによって、レイズリスポーン処理が実行される。
RaiseEnd
RaiseEnd
を付与された段階では、プレイヤーは通常世界のリスポーン地点にいるのでネザーやエンドにRaisedArea
がある場合は、プレイヤーをそれぞれのディメンションへと送る必要がある。
RaisedArea
がジ・エンドを示しているプレイヤーは通常世界のエンドポータル内に移動RaisedArea
がネザーを示しているプレイヤーは通常世界のネザーポータル内に移動
RaiseEnd2
エンドポータルは触れただけで即ワープされるが、ネザーポータルはサバイバルやアドベンチャーモードではワープまでに時間がある。これを解決するために、RaisedArea
がネザーを指しているプレイヤーはクリエイティブに変更させ、即ネザーにワープできるようにする。
(時々、ネザーアスレへのリスポーン時にクリエイティブのまま担ってしまうプレイヤーがいるが、ここが原因。かといって、ネザーポータル内でワープされるまでプレイヤーを待機させるわけにもいかないので、致し方ない。1.13以降はexecuteの登場によりこれは解決できるので、次期バージョンでは無くなるだろう)
RaiseEnd3
前述した通り、ネザーポータルでのワープには時間がかかるので、プレイヤーがポータル内にいるときはRaiseEnd2
に戻る。
他のプレイヤーは、スペクテイターモードに変更し、ネザーもしくはエンド内にいる場合は指定の位置に移動する。
RaiseEnd4
RaiseArea
がネザーアスレを示しているとき、ネザーアスレリスポーン地点に移動させる。それ以外のときは、RaisePointのRaiseSyncCount
とプレイヤーのRaiseSyncCount
が等しい場所にプレイヤーを移動させ、RaiseSyncCount
が一致しないプレイヤーは「復帰地点が見つからなかった!」とのメッセージを表示。
最後にプレイヤーをアドベンチャーモードに変更して終了する。