Pular para o conteúdo principal

MMOItems

Entregue, conte e acompanhe itens do MMOItems em missões, com dicas de itens dinâmicas e paginadas.

Pagasv2.4RPG e progressão

Visão geral​

A extensão MMOItems conecta o plugin MMOItems ao TypeWriter. Você escolhe um item pelo tipo (por exemplo SWORD) e pelo id no MMOItems, e o TypeWriter pode entregá-lo, retirá-lo, contá-lo ou reagir quando um jogador o fabrica, usa, equipa ou encaixa uma gema nele.

A extensão também traz um Advanced Tooltip System. Ele reescreve a lore dos itens do MMOItems em tempo real, como pacotes enviados ao jogador, de modo que um mesmo item pode mostrar várias páginas, uma marca ao vivo de "requisitos atendidos" e uma comparação de stats com outro item. O item armazenado nunca é alterado.

Tudo é configurado no painel web: os tipos e ids de itens são sugeridos a partir da sua configuração do MMOItems.

Recursos​

  • Dar e remover itens — entregue ou retire itens do MMOItems, para um jogador ou um grupo inteiro, a partir de uma lista ou de um fact.
  • Contagem de itens — um fact conta os itens correspondentes no inventário (armadura, mão secundária e cursor incluídos) e/ou na mão principal.
  • Evento e objective de uso — reaja ao clique direito ou ao consumo de um item do MMOItems.
  • Evento e objective de fabricação — reaja a itens feitos em uma bancada de fabricação do MMOItems, com um filtro opcional de bancada.
  • Evento e objective de gema — reaja a uma gema aplicada a um item, filtrada por item de destino e gema.
  • Objective de equipar — conte peças do MMOItems vestidas em um slot de armadura.
  • Objective de lançamento de habilidade — conte os lançamentos de uma habilidade do MMOItems.
  • Objective de posse de itens — conclua quando o jogador possui uma quantidade suficiente de itens selecionados, com modifiers de conclusão.
  • Variável de item — use um item do MMOItems em qualquer lugar onde um item é esperado.
  • Tooltips avançados — lore de várias páginas, marcas de requisitos, comparação de stats e ícones de categoria.

Instalação​

  1. Instale o MMOItems e sua biblioteca MythicLib. Instale também o MMOCore se quiser que as marcas de requisitos do sistema de tooltips verifiquem classe, nível e profissões.
  2. Instale a extensão oficial Quest do TypeWriter (os objectives precisam dela).
  3. Obtenha a extensão nas lojas (veja os botões no painel de resumo acima) e coloque o JAR em plugins/Typewriter/extensions/.
  4. Reinicie o servidor. O TypeWriter 0.9 depende do PacketEvents, que o sistema de tooltips usa para reescrever a lore dos itens.

Primeiros passos​

Recompense os jogadores com uma espada quando fabricarem uma poção em uma bancada de alquimia:

  1. No painel web do TypeWriter, abra uma página de sequence e adicione uma action Give MMOItem.
  2. Deixe items vazio. Defina item com um type (por exemplo SWORD) e um id (por exemplo STEEL_BLADE), e amount como 1.
  3. Abra uma página static e adicione um Craft Objective. Preencha quest, display, amount e um fact persistente em fact para armazenar o progresso.
  4. Em items, adicione o item fabricado do MMOItems (vazio significa qualquer item) e, se necessário, stationIds com o id da bancada no MMOItems.
  5. Defina onComplete como a action Give MMOItem e publique.

Para apenas reagir uma vez, sem acompanhar o progresso, use o Craft Event e vincule a action Give em seus triggers.

Modo Criativo

Os eventos e tooltips ignoram jogadores em modo Criativo. Teste com um jogador em Sobrevivência ou Aventura.

Como funciona​

A correspondência de itens compara o tipo e o id do MMOItems, ignorando maiúsculas e minúsculas. Um tipo e um id vazios correspondem a qualquer item do MMOItems. Os itens que não são do MMOItems nunca correspondem.

Os objectives baseados no campo fact (fabricar, usar, equipar, gema, lançamento de habilidade, abrir bancada de criação) gravam seu progresso em um fact persistente (armazenável em cache) e disparam onComplete uma vez quando amount é atingido.

Tooltips avançados​

Adicione uma entry Advanced Tooltip System em uma página de manifest e publique. Ela se aplica a todo item do MMOItems no inventário, na hotbar e em contêineres, para todos os jogadores fora do modo Criativo.

Somente sobrevivência e aventura

A paginação e o lore avançado só se aplicam em sobrevivência e aventura. No criativo, o lore original do MMOItems é exibido como está, tags incluídas, porque o cliente criativo devolve os itens como os exibe e reescrever o lore alteraria o item real de forma permanente.

Se o sistema estiver desativado, overrideDefaultLore estiver desativado ou nenhuma entrada estiver publicada, as tags são removidas e todo o lore fica em uma só página.

Edite a lore dos seus itens do MMOItems (no editor de itens do MMOItems ou em sua configuração) e adicione estas tags:

TagEfeito
<page_break>Inicia uma nova página. Páginas vazias são descartadas.
<category_image>Substituída pelo ícone definido em categoryImages para o tipo do item.
<pagination_indicator>Substituída por paginationIndicator.
<comparison_indicator>Substituída por comparisonIndicator.
<requirement_met> e <requirement_not_met>Apenas uma das duas aparece, usando requirementMetSymbol ou requirementNotMetSymbol.
<comparison_value> e <comparison_sign>A diferença de stats em relação ao item base de comparação e um + quando positiva.

As páginas e a comparação são controladas por teclas, definidas com paginationKeybind (padrão SWAP_OFFHAND, a tecla F) e comparisonKeybind (padrão SNEAK). Os valores aceitos são SWAP_OFFHAND, DROP, SNEAK, SHIFT_LEFT, SHIFT_RIGHT, LEFT_CLICK, RIGHT_CLICK e MIDDLE_CLICK.

  • Pressionar a tecla de paginação em um item do MMOItems sempre cancela a ação vanilla (trocar, soltar, clicar) para evitar acidentes, mesmo em itens de página única. As páginas voltam à página 1 ao chegar ao fim, com um breve cooldown entre os pressionamentos.
  • Pressionar a tecla de comparação em um item o define como a base de comparação. Pressioná-la novamente no mesmo item a limpa. Apenas itens do mesmo tipo do MMOItems são comparados, e a base é limpa quando o inventário fecha.
  • Os requisitos são verificados com os dados do MMOCore: nível, classe, nível de profissão e permissão. Se algum requisito falhar, todo <requirement_not_met> é exibido.

Formato de exibição de objetivos​

A linha de um objetivo no rastreador de quests não é fixa no código. Ela é lida de snippets do TypeWriter, editados em plugins/Typewriter/snippets.yml. Placeholders: <display> (o campo display do objetivo), <current> e <required>; os placeholders do PlaceholderAPI também são processados.

SnippetUsado porPadrão
advancedQuest.displayObjetivos Craft, Use, Equip, Gem Stone, Ability Cast e Open Crafting Table, enquanto em andamento<display> (<current>/<required>), em tons de cinza
advancedQuest.completedOs mesmos objetivos, quando amount é atingido✔, depois o <display> riscado e o progresso
mmoitems.countObjective.displayMmoitems Count Objective, enquanto em andamento<display> (<current>/<required>), em tons de cinza
mmoitems.countObjective.completedO mesmo objetivo, quando amount é atingido<display> riscado em verde, depois o progresso

As duas chaves advancedQuest.* são compartilhadas com as outras extensões de objetivos da BTC: uma edição muda o estilo de todas.

Entries​

16 entradas, geradas a partir do código-fonte da extensão.

Ações3
Eventos3
Objetivos7
Fatos1
Variáveis1
Manifestos1

Solução de problemas​

A lista de tipos ou ids de itens está vazia no painel. As listas vêm da configuração do MMOItems do servidor em execução. Confirme que o MMOItems está carregado e tem pelo menos um modelo desse tipo, e depois reabra a página no painel.

O Give MMOItem não faz nada. A action executa mmoitems give <type> <id> <player> <amount> pelo console. Um type desconhecido ignora o item silenciosamente, então verifique a grafia do tipo. Se fact estiver definido, apenas os itens fornecidos por esse fact (e correspondentes a item / items quando preenchidos) são entregues, com o amount da action.

O Remove MMOItem não retira nada. Por padrão, apenas o inventário é verificado (checkInventory está ativado, checkHand está desativado). A verificação do inventário inclui armadura, mão secundária e cursor. Ative checkHand para retirar primeiro da mão principal.

Um objective de fabricação nunca avança. Por padrão, apenas receitas instantâneas e a fila de fabricação são contadas. detectUpgradeRecipe existe, mas os resultados de upgrade nunca são contados pelo código atual. Verifique também o id da bancada (stationIds, combinado com o stationId legado) e se um fact persistente está vinculado em fact.

Os eventos e objectives não disparam no Criativo. Os eventos de uso, fabricação e gema retornam cedo para jogadores no Criativo, e o sistema de tooltips é desativado para eles. Teste em Sobrevivência.

As tags do tooltip aparecem como texto, ou as páginas não mudam. Verifique primeiro se o jogador não está no criativo, onde o lore é deixado como está. As páginas só mudam quando uma entrada Advanced Tooltip System está publicada com isEnabled e overrideDefaultLore ativados; caso contrário, as tags são removidas e o lore fica em uma só página. Se a tecla F padrão entrar em conflito com outro plugin, escolha outra tecla em paginationKeybind.

As marcas de requisitos sempre aparecem como atendidas. A verificação lê os dados de jogador do MMOCore. Sem o MMOCore (ou para um jogador sem perfil), a verificação recorre a "atendido".

Extensões relacionadas​

  • MMOCore — classes, profissões e habilidades da mesma suíte de RPG da Phoenix Development.
  • MMO Inventory — integração com o MMOInventory, utilizável como fact fornecedor de itens para as actions Give e Remove.