職業を追加する
THE DUNGEONでは幾つかのスコア(scoreboard)を参照することで職業を実装しています。
スコアの詳しい使い方は以下のページなどを参考にして頂くものとしてここでは扱いません。
また、一部、executeコマンドを使用している部分があります。
そちらについても別サイトの解説をご参考ください。
なぁぽんのマイクラ -【コマンド解説】executeコマンドで色んな仕掛けを作ろう 【Minecraft】
プレイヤーに対してメッセージを送信するtellrawコマンドを作成する場合、以下のサイトが便利です。
スコア名一覧
THE DUNGEONで扱われているスコア名の一覧です。
先頭に付いている文字はスコアの種類です。(D:dummy T:trigger S:stat(詳細は文中))
(D)LvStep:下位職業、上位職業の選択状態を記録するスコアです。
Lv5未満のとき0、Lv5以上で下位職業を未選択のとき1、Lv5以上で下位職業を選択済みのとき2
Lv10以上で上位職業を未選択のとき3、Lv10以上で上位職業を選択済みのとき4、というように遷移させます。
(T)Lv5choice:選択した下位職業の番号です。
デフォルトでは戦士が1、僧侶が2、弓使いが3、盗賊が4、特殊が5になっています。
(T)Lv10choice:選択した上位職業の番号です。
1~3が戦士の上位職、4~6が僧侶、7~9が弓使い、10~12が盗賊、13以降が特殊になっています。
(D)hasSpecial:ショップで購入した《特殊》の上位職の数を記録するスコアです。
下位職業の選択メニューのアルゴリズム
まず始めに以下のコマンドで「Lvが5以上かつ、LvStepが0(=さっきまでLv5未満だった)プレイヤー」に
対して「Lv5choice」の編集権限を与えます。
/scoreboard players enable @a[lm=5,score_LvStep_min=0,score_LvStep=0] Lv5choice
次に、同じ条件のプレイヤーに対して、tellrawで職業選択メニューを表示させます。
/tellraw @a[lm=5,score_LvStep_min=0,score_LvStep=0]
["",
{"text":"Lv5に到達しました!","color":"yellow"},
{"text":"\n好きなクラスを選択してください\n"},
{"text":"[戦士]","color":"red","clickEvent":{"action":"run_command","value":"/trigger Lv5choice set 1"}},
{"text":"\n"},
{"text":"[僧侶]","color":"blue","clickEvent":{"action":"run_command","value":"/trigger Lv5choice set 2"}},
{"text":"\n"},
{"text":"[弓使い]","color":"green","clickEvent":{"action":"run_command","value":"/trigger Lv5choice set 3"}},
{"text":"\n"},
{"text":"[盗賊]","color":"yellow","clickEvent":{"action":"run_command","value":"/trigger Lv5choice set 4"}}]
次に、《特殊》の上位職を一体以上持っている(score_hasSpecial_min=1)プレイヤーに対して、
《特殊》を選択するためのメニューを表示します。
/tellraw @a[lm=5,score_LvStep_min=0,score_LvStep=0,score_hasSpecial_min=1]
["",{"text":"[特殊]","color":"light_purple","clickEvent":{"action":"run_command","value":"/trigger Lv5choice set 5"}}]
最後にLvStepの値を1(Lv5以上で職業を未選択)に変更して終了です。
/scoreboard players add @a[lm=5,score_LvStep_min=0,score_LvStep=0] LvStep 1