MMOItems
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
- 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.
- Instale a extensão oficial Quest do TypeWriter (os objectives precisam dela).
- Obtenha a extensão nas lojas (veja os botões no painel de resumo acima) e coloque o JAR em
plugins/Typewriter/extensions/. - 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:
- No painel web do TypeWriter, abra uma página de sequence e adicione uma action Give MMOItem.
- Deixe
itemsvazio. Definaitemcom umtype(por exemploSWORD) e umid(por exemploSTEEL_BLADE), eamountcomo1. - Abra uma página static e adicione um Craft Objective. Preencha
quest,display,amounte um fact persistente emfactpara armazenar o progresso. - Em
items, adicione o item fabricado do MMOItems (vazio significa qualquer item) e, se necessário,stationIdscom o id da bancada no MMOItems. - Defina
onCompletecomo 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.
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.
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:
| Tag | Efeito |
|---|---|
<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.
| Snippet | Usado por | Padrão |
|---|---|---|
advancedQuest.display | Objetivos Craft, Use, Equip, Gem Stone, Ability Cast e Open Crafting Table, enquanto em andamento | <display> (<current>/<required>), em tons de cinza |
advancedQuest.completed | Os mesmos objetivos, quando amount é atingido | ✔, depois o <display> riscado e o progresso |
mmoitems.countObjective.display | Mmoitems Count Objective, enquanto em andamento | <display> (<current>/<required>), em tons de cinza |
mmoitems.countObjective.completed | O 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
- Give Mmoitem ActionGive MMOItem
- Open Crafting Table ActionOpen Crafting Table
- Remove Mmoitem ActionRemove MMOItem
Eventos3
- Mmoitems Gem Stone Apply EventMMOItems Gem Stone Apply Event
- Mmoitems Item Craft EventMMOItems Item Craft Event
- Use Mmoitem EventUse MMOItem Event
Objetivos7
- Mmoitems Ability Cast ObjectiveCast MMOItems abilities
- Mmoitems Count ObjectiveIdentify and count specific MMOItems from a fact
- Mmoitems Gem Stone Apply ObjectiveMMOItems Gem Stone Apply Objective
- Mmoitems Item Craft ObjectiveMMOItems Item Craft Objective
- Mmoitems Item Equip ObjectiveEquip MMOItems
- Open Crafting Table ObjectiveOpen Crafting Table Objective
- Use Mmoitem ObjectiveUse MMOItem Objective
Fatos1
- Mmoitems Count FactCount MMOItems in player's inventory or hand
Variáveis1
- Mmoitem VariableMMOItem Identifier
Manifestos1
- Advanced Tooltip ConfigAdvanced Tooltip System
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.