メインコンテンツまでスキップ

クエストの作成

webapp_banner.jpg

クエスト例

EliteMobsにはtest_quest.ymlが事前にパッケージされており、ここでは従うべきシンプルなクエスト形式として分析されます。

カスタムクエストは~plugins/EliteMobs/customquestsフォルダにあります!

test_quest.yml

isEnabled: true
customObjectives:
Objective1:
amount: '1'
filename: test_boss.yml
objectiveType: KILL_CUSTOM
customRewards:
- filename=magmaguys_toothpick.yml:amount=1:chance=1
name: "&aKill the Test Boss"
questLore:
- "&cEnd the test boss'' reign of terror!"

create_quest_quest.jpg

クエストUIがこのように表示されない場合は、/em altを使用して一致させることができます。

この例のクエストは、プレイヤーに1体のtest_boss.ymlを倒すタスクを与えます。(クエストトラッカーに表示される実際のボス名は、test_boss.ymlで設定されたname:になります。) そして、クエストを完了した報酬として、1本のMagmaguy's Toothpickが与えられます。

カスタムクエストの作成

customObjectives

クエストの目標を設定します。

KeyValuesDefault
customObjectivesSpecial [1]none

注意:マルチフェーズボスを目標として使用している場合、目標は最初のフェーズをターゲットとして使用する必要があります。

KILL_CUSTOM:

customObjectives:
Objective1:
amount: '1'
filename: my_cool_boss.yml
objectiveType: KILL_CUSTOM

DIALOG:

customObjectives:
Objective1:
dialog:
- "&a[Dialog NPC] &fCome here often?"
- "&7&oI should eat more apples."
filename: dialog_npc.yml
npcName: Dialog NPC
location: at dialog location.
objectiveType: DIALOG

FETCH_ITEM:

customObjectives:
Objective1:
amount: '99'
itemName: Red Apples
filename: my_quest_item_red_apples.yml
objectiveType: FETCH_ITEM

create_quest_objective.jpg

Special [1]

テーブルを展開

カスタム目標は以下の値を使用して構築されます:

KeyDescription
KILL_CUSTOM / FETCH_ITEM / DIALOGこれが表す目標のタイプを設定するために使用されます。KILL_CUSTOMは特定のCustom Bossを倒すことを含むクエストを示し、FETCH_ITEMは特定のCustom Itemを取得することを含むクエストを示し、DIALOGはNPCと話すことを含むクエストを示します。
filenameプレイヤーが倒す/取得する必要があるCustom Boss、Custom Item、または話しかける必要があるNPCのファイル名を設定するために使用されます。
amount倒さなければならないCustom Bossの数または取得しなければならないアイテムの数を設定するために使用されます。
dialogプレイヤーが話しかけるNPCのダイアログを設定するために使用されます。
nameNPCまたはカスタムアイテムである、クエスト目標の名前を設定するために使用されます。視覚的な目的のみです。
itemNameFETCH_ITEMでのみ使用 – この設定は、アイテムの名前がクエストトラッカーにどのように表示されるかを変更します。実際のゲーム内のアイテム名とは異なるカスタム名を表示することができます。

すべてのCustom Objectiveフィールドは:で区切られていることに注意してください!


customRewards

クエストの報酬を設定します。

KeyValuesDefault
customRewardsUniversal EliteMobs loot formatnone
customRewards:
- currencyAmount=50:amount=1:chance=0.05
- material=COOKED_COD:amount=3:chance=1.0
- filename=magmaguys_toothpick.yml:amount=1:chance=1.0

create_quest_rewards.jpg


questAcceptPermission

クエストを受諾するためにプレイヤーが持っている必要がある権限を設定します。

KeyValuesDefault
questAcceptPermissionStringnone
questAcceptPermission: elitequest.my_permission

questAcceptPermissions

クエストを受諾するためにプレイヤーが持っている必要がある権限を設定します。

KeyValuesDefault
questAcceptPermissionsString Listnone
questAcceptPermissions:
- elitequest.my_previous_quest_one.yml
- elitequest.my_previous_quest_two.yml

questLockoutPermission

クエストを完了したときにプレイヤーが取得する権限を設定し、クエストを再度実行できないようにロックアウトします(通常は編集しているクエストのFilenameです)。

KeyValuesDefault
questLockoutPermissionStringnone
questLockoutPermission: elitequest.my_quest.yml

questLockoutMinutes

クエストを再度実行できるようになるまでに、プレイヤーが待機する必要がある時間を分単位で設定します(クエストロックアウト権限を削除することで機能します)。

KeyValuesDefault
questLockoutMinutesInteger-1(繰り返されません)
questLockoutMinutes: 60

name

クエスト名を設定します。Color Codesを受け入れます。

KeyValuesDefault
nameStringnone
name: "&aMy Great Quest Name"

questLore

ゲーム内のクエストメニューに表示されるクエストの説明を設定します。

KeyValuesDefault
questLoreString Listnone
questLore:
- "Interesting lore sentence."
- "Yet another interesting lore sentence."

create_quest_lore.jpg


temporaryPermissions

クエストを提出するまでプレイヤーに割り当てられる権限を設定します。

この設定を使用して、プレイヤーが特定のクエストをアクティブにしているときにのみアイテムがドロップされるようにする場合は、アイテムの設定ファイルでSame Permissionも設定する必要があります。

KeyValuesDefault
temporaryPermissionsString Listnone
temporaryPermissions:
- elitequest.item_that_should_drop_only_during_quest.yml

questAcceptDialog

クエスト受諾時にチャットに表示されるダイアログを設定します。

KeyValuesDefault
questAcceptDialogString Listnone
questAcceptDialog:
- "My hero! You are so helpful!"
- "I wish you the best of luck!"

create_quest_accept.jpg


questCompleteMessage

クエスト完了時にチャットに表示されるダイアログを設定します。

KeyValuesDefault
questCompleteMessageString Listnone
questCompleteMessage:
- "My hero! You have completed my difficult quest!"
- "As a reward you can have this loaf of bread!"

create_quest_complete.jpg


questCompleteCommands

クエスト完了時に実行されるコマンドを設定します。

KeyValuesDefault
questCompleteCommandsString Listnone
questCompleteCommands:
- say $player has finished a quest!

create_quest_commands.jpg


turnInNPC

クエストを完了するためにプレイヤーが話しかける/対話する必要があるNPCのファイル名を設定します。これはクエストを配布したNPCと同じである必要はありません

KeyValuesDefault
turnInNPCFilenamenone
turnInNPC: my_cool_quest_npc.yml

trackable

クエストがクエストトラッカーを使用するかどうかを設定します。

KeyValuesDefault
trackableBooleantrue
trackable: true

questLevel

クエストのレベルを設定します。これはプレイヤーにクエストがどれほど困難かを伝えるための視覚的なガイドにすぎません。これはボス、アイテム、またはその他のレベルを一切変更しません

KeyValuesDefault
questLevelInteger0
questLevel: 10

create_quest_level.jpg


questAcceptSound

クエストが受諾されたときに再生されるサウンドを設定します。Minecraftのサウンドとリソースパックのサウンドの両方を再生できます。

KeyValuesDefault
questAcceptSoundStringnone
questAcceptSound: entity.experience_orb.pickup

create_quest_level.jpg


questCompleteSound

クエストが完了(提出)されたときに再生されるサウンドを設定します。Minecraftのサウンドとリソースパックのサウンドの両方を再生できます。

KeyValuesDefault
questCompleteSoundStringnone
questCompleteSound: entity.player.levelup

create_quest_level.jpg

Permissions

上記の表で述べたように、権限は通常StringsまたはString Listsです。しかし、クエストをロックおよびアンロックするためにこれらをどのように使用するかについて、さらに詳しく説明しましょう。

計画している一連のクエストでquest_3を作成していて、プレイヤーがquest_2を完了する前にquest_3を受けられないようにしたいとします。クエストファイルを次のように設定します:

questAcceptPermission: elitequest.quest_2.yml
questLockoutPermission: elitequest.quest_3.yml

questAcceptPermissionselitequest.quest_2.ymlに設定することで、プレイヤーがquest_2.ymlを完了する前にquest_3.ymlを受けることを防ぎました。
questLockoutPermissionelitequest.quest_3.ymlに設定することで、プレイヤーがすでにトラッカーにそのクエストを持っている限り、またはすでにそのクエストを完了している場合、そのクエストを受け取ることができないようにしました。これにより、プレイヤーがクエストを繰り返すことができなくなります。

プレイヤーが一連のクエストを完了した後にのみ利用可能になるクエストを作成したい場合は、クエストファイルを次のように設定します:

questAcceptPermissions:
- elitequest.quest_2.yml
- elitequest.quest_3.yml
- elitequest.quest_4.yml

プレイヤーが正しいクエストをアクティブにしているときにのみ特定のアイテムをルートできるようにしたい場合は、temporaryPermissionsを使用してそれを行うことができます。temporaryPermissionsを使用してクエストファイルで権限を作成し、次にアイテムファイルでpermissionを使用して一致するpermissionを作成します。

例えば、クエストファイルを開いて以下を追加します:

temporaryPermissions:
- elitequest.my_cool_item.yml

次に、アイテムファイル、この場合はmy_cool_item.ymlを開いて、以下を追加します:

permission: elitequest.my_cool_item.yml

両方のファイルが一致する権限を持っているため、プレイヤーが正しいクエストをアクティブにしているときにのみアイテムがドロップするようになりました。