MMO Inventory
Visão geral
O MMO Inventory conecta o MMOInventory ao TypeWriter. O MMOInventory adiciona slots de equipamento personalizados (acessórios, capas, artefatos e assim por diante) que ficam fora do inventário vanilla. O TypeWriter não consegue enxergá-los por conta própria: esta extensão preenche essa lacuna.
Ela oferece um único fact legível. O fact responde a uma pergunta: este jogador possui, neste momento, os MMOItems que você listou em um dos seus inventários personalizados do MMOInventory? Você pode então usar o fact como criteria em diálogos, quests, audiences ou qualquer outra entry que aceite criteria, por exemplo para liberar uma opção de diálogo apenas para jogadores que vestem um determinado artefato.
Apenas MMOItems são reconhecidos. Um item é identificado pelo tipo e pelo ID no MMOItems, não pelo nome nem pelo material.
Recursos
- Reconhecimento de slots personalizados — lê os itens guardados em um inventário personalizado nomeado do MMOInventory, não no inventário vanilla.
- Correspondência por tipo e ID — identifica MMOItems pelo par
TYPE:ID, por exemploACCESSORY:RING_OF_FIRE. - Quantidades de itens — cada item pode exigir uma quantidade mínima, escrita como
TYPE:ID:amount. - Vários itens de uma vez — liste quantos itens quiser, separados por vírgulas.
- Qualquer um ou todos —
requireAllItemsdefine se uma correspondência basta ou se todos os itens listados são exigidos. - Utilizável como condição — o fact retorna
1ou0, pronto para uso em qualquer criteria.
Instalação
- Instale o MMOInventory, o MMOItems e sua biblioteca obrigatória MythicLib no servidor.
- Confirme que a extensão oficial
Questdo TypeWriter está instalada: o MMO Inventory depende dela. - Coloque o JAR do MMO Inventory em
plugins/Typewriter/extensions/. - Reinicie o servidor.
- Defina seus inventários personalizados na configuração do MMOInventory. O nome que você dá a um inventário lá é o que você usará no painel.
Primeiros passos
Libere uma opção de diálogo apenas para jogadores que usam um anel específico no inventário accessories:
- No painel web do TypeWriter, abra uma página static e adicione uma entry Check Item Fact.
- Defina
inventoryNamecom o nome do inventário personalizado no MMOInventory, por exemploaccessories. - Defina
itemsToCheckcomoACCESSORY:RING_OF_FIRE. Para vários itens, separe-os por vírgulas:ACCESSORY:RING_OF_FIRE, ACCESSORY:AMULET:2. - Deixe
requireAllItemsdesativado se uma correspondência bastar, ou ative-o para exigir todos os itens listados. - Na opção de diálogo (ou em qualquer entry com criteria), adicione um criteria que use este fact com o valor
1. - Clique em Publish e teste com um jogador que tenha o item equipado nesse inventário.
Cada token é TYPE:ID (quantidade 1) ou TYPE:ID:amount. Tipo e ID não diferenciam maiúsculas de minúsculas. Um token que não segue esse formato é ignorado silenciosamente; se nenhum token válido restar, o fact retorna 0.
Como funciona
A extensão lê o plugin MMOInventory em tempo de execução. Apenas os itens que carregam dados do MMOItems são contados, e as pilhas do mesmo item são somadas antes de serem comparadas com a quantidade solicitada.
Entries
1 entradas, geradas a partir do código-fonte da extensão.
Fatos1
- Mmoinventory Check Item FactCheck if player has specific MMOItem(s) in a MMOInventory
Solução de problemas
O fact é sempre 0. A extensão retorna 0 assim que algo está faltando: inventoryName ou itemsToCheck vazio, o plugin MMOInventory não carregado ou o inventário vazio. Verifique cada um nessa ordem.
O log diz "Inventory 'x' not found". O nome em inventoryName não corresponde a um inventário personalizado definido no MMOInventory. Copie o nome exatamente como aparece na configuração do MMOInventory.
"Error accessing MMOInventory" aparece no console. A extensão se comunica com o MMOInventory por meio de sua API em tempo de execução. Esse erro significa que a versão instalada do MMOInventory não expõe os métodos esperados. Atualize o MMOInventory e informe o stack trace completo se o problema persistir.
Um item vanilla ou que não é do MMOItems nunca é contado. Somente os itens que têm um tipo e um ID do MMOItems são considerados. Crie o item com o MMOItems ou use outra extensão para verificar outros tipos de itens.
A verificação passa com apenas um dos meus itens. requireAllItems está desativado, então qualquer correspondência isolada basta. Ative-o para exigir todos os itens da lista.
Uma quantidade é ignorada. Verifique o formato: a quantidade deve ser a terceira parte do token (TYPE:ID:3) e deve ser um número inteiro. Um token como TYPE:ID:three é descartado.