Criando Quests
Exemplo de Quest
EliteMobs vem com um test_quest.yml pré-configurado, que será analisado aqui como um formato simples de quest a seguir.
Quests personalizadas ficam na pasta ~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!"

Se a interface da sua quest não se parecer com isso, você pode alterá-la para corresponder usando /em alt.
Esta quest de exemplo dará aos jogadores a tarefa de matar 1 test_boss.yml. (O nome real do boss exibido no rastreador de quests será o name: definido em test_boss.yml.) E como recompensa por completar a quest, eles serão recompensados com 1 Palito de Dente do Magmaguy.
Criando Quests Personalizadas
customObjectives
Define os objetivos da quest.
| Key | Values | Default |
|---|---|---|
customObjectives | Special [1] | none |
Nota: Se você estiver usando um boss multifásico como seu objetivo, então o objetivo deve estar usando a primeira fase como alvo.
Examples
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

Special [1]
Expand Table
Objetivos personalizados são construídos usando os seguintes valores:
| Key | Description |
|---|---|
KILL_CUSTOM / FETCH_ITEM / DIALOG | Usado para definir o tipo de objetivo que isso representa. KILL_CUSTOM indica que a quest envolve matar um Boss Personalizado específico, FETCH_ITEM indica que a quest envolve obter um Item Personalizado específico e DIALOG indica que a quest envolve conversar com um NPC. |
filename | Usado para definir o nome do arquivo do Boss Personalizado, do Item Personalizado que o jogador tem que matar / obter ou do NPC com quem eles têm que conversar. |
amount | Usado para definir a quantidade de Bosses Personalizados que devem ser mortos ou itens que devem ser obtidos. |
dialog | Usado para definir o diálogo do NPC com quem o jogador conversa. |
name | Usado para definir o nome do objetivo da quest, seja um NPC ou um item personalizado. Apenas para fins visuais. |
itemName | Usado apenas com FETCH_ITEM – Esta configuração altera como o nome do item aparece no rastreador de quests. Permite exibir um nome personalizado que é diferente do nome real do item no jogo. |
Observe que cada campo de Objetivo Personalizado é separado por : !
customRewards
Define as recompensas da quest.
| Key | Values | Default |
|---|---|---|
customRewards | Universal EliteMobs loot format | none |
Example
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

questAcceptPermission
Define a permissão que o jogador deve ter para aceitar a quest.
| Key | Values | Default |
|---|---|---|
questAcceptPermission | String | none |
Example
questAcceptPermission: elitequest.my_permission
questAcceptPermissions
Define as permissões que o jogador deve ter para aceitar a quest.
| Key | Values | Default |
|---|---|---|
questAcceptPermissions | String List | none |
Example
questAcceptPermissions:
- elitequest.my_previous_quest_one.yml
- elitequest.my_previous_quest_two.yml
questLockoutPermission
Define a permissão que o jogador receberá ao completar a quest, o que os impedirá de fazer a quest novamente (Geralmente o Filename da quest que você está editando).
| Key | Values | Default |
|---|---|---|
questLockoutPermission | String | none |
Example
questLockoutPermission: elitequest.my_quest.yml
questLockoutMinutes
Define quanto tempo, em minutos, o jogador terá que esperar antes de poder fazer a quest novamente (funciona removendo a permissão de bloqueio da quest).
| Key | Values | Default |
|---|---|---|
questLockoutMinutes | Integer | -1(nunca repetirá) |
Example
questLockoutMinutes: 60
name
Define o nome da quest. Aceita Color Codes.
| Key | Values | Default |
|---|---|---|
name | String | none |
Example
name: "&aMy Great Quest Name"
questLore
Define o lore da quest que aparecerá no menu de quests do jogo.
| Key | Values | Default |
|---|---|---|
questLore | String List | none |
Example
questLore:
- "Interesting lore sentence."
- "Yet another interesting lore sentence."

temporaryPermissions
Define as permissões atribuídas ao jogador até que ele entregue a quest.
Se você estiver usando esta configuração para garantir que um item só seja dropado quando os jogadores tiverem uma quest específica ativa, você também precisará configurar a Same Permission no arquivo de configuração do item.
| Key | Values | Default |
|---|---|---|
temporaryPermissions | String List | none |
Example
temporaryPermissions:
- elitequest.item_that_should_drop_only_during_quest.yml
questAcceptDialog
Define o diálogo que aparece no chat ao aceitar a quest.
| Key | Values | Default |
|---|---|---|
questAcceptDialog | String List | none |
Example
questAcceptDialog:
- "My hero! You are so helpful!"
- "I wish you the best of luck!"

questCompleteMessage
Define o diálogo que aparece no chat ao completar a quest.
| Key | Values | Default |
|---|---|---|
questCompleteMessage | String List | none |
Example
questCompleteMessage:
- "My hero! You have completed my difficult quest!"
- "As a reward you can have this loaf of bread!"

questCompleteCommands
Define os comandos que serão executados ao completar a quest.
| Key | Values | Default |
|---|---|---|
questCompleteCommands | String List | none |
Example
questCompleteCommands:
- say $player has finished a quest!
![]()
turnInNPC
Define o nome do arquivo do NPC com quem os jogadores precisam conversar/interagir para completar a quest. Este não precisa ser o mesmo NPC que deu a quest.
| Key | Values | Default |
|---|---|---|
turnInNPC | Filename | none |
Example
turnInNPC: my_cool_quest_npc.yml
trackable
Define se a quest usará o rastreador de quests.
| Key | Values | Default |
|---|---|---|
trackable | Boolean | true |
Example
trackable: true
questLevel
Define o nível da quest. Isto é apenas um guia visual para que os jogadores possam saber o quão desafiadora a quest será. Isto não modifica de forma alguma os níveis de boss, item ou outros.
| Key | Values | Default |
|---|---|---|
questLevel | Integer | 0 |
Example
questLevel: 10

questAcceptSound
Define o som que toca quando uma quest é aceita. É possível tanto tocar sons do Minecraft quanto tocar sons de um resource pack.
| Key | Values | Default |
|---|---|---|
questAcceptSound | String | none |
Example
questAcceptSound: entity.experience_orb.pickup

questCompleteSound
Define o som que toca quando uma quest é completada (entregue). É possível tanto tocar sons do Minecraft quanto tocar sons de um resource pack.
| Key | Values | Default |
|---|---|---|
questCompleteSound | String | none |
Example
questCompleteSound: entity.player.levelup

Permissions
Como mencionado nas tabelas acima, permissões geralmente são Strings ou String Lists. Mas vamos entrar em mais detalhes sobre como você usará estas para bloquear e desbloquear quests.
Digamos que você está criando quest_3 em uma série de quests que você planejou e não quer que os jogadores possam pegar quest_3 antes de terminarem quest_2. Configuramos o arquivo de quest assim:
questAcceptPermission: elitequest.quest_2.yml
questLockoutPermission: elitequest.quest_3.yml
Ao definir questAcceptPermissions como elitequest.quest_2.yml, agora impedimos os jogadores de pegar quest_3.yml antes de terminarem quest_2.yml.
Ao definir questLockoutPermission como elitequest.quest_3.yml, impedimos os jogadores de poderem receber aquela quest enquanto já tiverem aquela quest em seu rastreador ou se já tiverem terminado aquela quest. Isso impede que os jogadores possam repetir a quest.
Se você quiser fazer uma quest que só se torna disponível depois que os jogadores completarem uma série de quests, então você configuraria o arquivo de quest assim:
questAcceptPermissions:
- elitequest.quest_2.yml
- elitequest.quest_3.yml
- elitequest.quest_4.yml
Se você quiser que os jogadores só possam saquear certos itens quando tiverem a quest correta ativa, então podemos fazer isso usando temporaryPermissions. Criaríamos uma permissão no arquivo de quest usando temporaryPermissions e depois faríamos uma permission correspondente no arquivo de item usando permission.
Por exemplo, abriríamos nosso arquivo de quest e adicionaríamos o seguinte:
temporaryPermissions:
- elitequest.my_cool_item.yml
Então abriríamos o arquivo de item, no nosso caso my_cool_item.yml, e adicionaríamos o seguinte:
permission: elitequest.my_cool_item.yml
Ambos os arquivos agora têm permissões correspondentes, o que agora deve fazer nosso item só dropar quando os jogadores tiverem a quest correta ativa.
