Saltar para o conteúdo principal

Sistema de Lojas

O EliteMobs vem com um sistema de lojas integrado que permite aos jogadores gastar e ganhar Elite Coins (a moeda do EliteMobs) em equipamento e flechas do EliteMobs. Normalmente, as lojas são acedidas através dos NPCs Ferreiro e mercadores na Guilda dos Aventureiros, mas também podem ser abertas com comandos.

Definições da economia

Mantenha enableEconomy: true no EconomySettings.yml para a utilização normal das lojas. Os menus de entrada das lojas Dinâmica e Personalizada verificam esta definição, mas os comandos administrativos diretos e os NPCs de Venda e Flechas não aplicam a mesma verificação. Não é um controlo de acesso universal. Com uma integração com o Vault funcional, os saldos usam o fornecedor Vault em vez da base de dados de moeda do EliteMobs.

Moeda​

A moeda por padrão chama-se Elite Coins (currencyName no EconomySettings.yml). Os jogadores ganham-na principalmente ao matar elites (chuvas de moeda) e ao vender saque do EliteMobs. Os saldos podem ser consultados e pagos usando os comandos de dinheiro padrão:

  • /em money check – consultar o seu saldo (não existe o comando /em wallet; alguns comentários de configuração ainda usam esse nome antigo)
  • /em pay <player> <amount> – pagar a outro jogador (sujeito a playerToPlayerPaymentTaxes)

Os admins podem gerir os saldos com /em money add|remove|set e afins.

As lojas​

Loja Dinâmica (equipamento gerado proceduralmente)​

Use /em shop dynamic ou fale com o NPC Ferreiro (elitemobs.shop.dynamic.npc). O comando do jogador redireciona para a Guilda quando agTeleport está ativo, a Guilda está instalada e o jogador tem elitemobs.adventurersguild.teleport; caso contrário, abre o menu de comprar-ou-vender. O NPC abre esse menu diretamente.

A Loja Dinâmica usa os espaços de stock configurados de um menu de 54 espaços para armas e armaduras procedurais do EliteMobs. Os níveis seguem o seu nível de habilidade para esse tipo de item: cada item é sorteado entre (skillLevel - 5) e skillLevel, dentro de 1–100. A partir do nível de habilidade 105, todas as ofertas dessa habilidade são de nível 100. Os materiais sem habilidade correspondente usam o nível derivado da sua XP média entre todos os tipos de habilidade.

  • Clique num item para o comprar pelo valor calculado. Precisa de fundos suficientes, um espaço de armazenamento vazio e de cumprir o requisito de habilidade para equipar o item aplicável. A verificação respeita a definição de restrições de equipamento e as suas exceções, incluindo itens de nível 20 ou inferior.
  • Use o botão de reroll para renovar o stock oferecido (cooldown curto de 2 segundos).
  • Comprar um item também renova o stock.

Loja Personalizada (itens especiais)​

Use /em shop custom ou fale com o NPC Ferreiro Especial (elitemobs.shop.custom.npc). O comando do jogador segue a mesma regra de redirecionamento para a Guilda que a Loja Dinâmica; o NPC abre diretamente o menu de comprar-ou-vender.

A Loja Personalizada escolhe entradas aleatórias do conjunto de Itens Personalizados elegíveis. itemType: CUSTOM é elegível; UNIQUE, DROPPABLE e CLASS_LOOT são excluídos. As cópias oferecidas são vinculadas à alma do comprador quando o vínculo está ativo. Mantenha pelo menos um item elegível: o seletor atual não consegue preencher a loja a partir de um conjunto vazio.

As compras exigem fundos suficientes e um espaço de armazenamento vazio. Este menu não aplica a verificação de habilidade da Loja Dinâmica; comprar um item não garante que o jogador o consiga equipar. O botão de reroll tem um cooldown de 2 segundos; as compras também renovam o stock.

Vender itens​

A venda é acedida através da opção Vender do menu de comprar-ou-vender (depois de abrir a Loja Dinâmica ou Personalizada), ou diretamente por um admin com /em shop sell <player> (elitemobs.shop.sell.other). O NPC Ferreiro de Venda de itens usa a permissão elitemobs.shop.sell.npc.

No menu de Venda:

  • Clique nos itens EliteMobs do seu inventário para mover as suas pilhas para os espaços de venda. Os itens vanilla são rejeitados. São aceites itens EliteMobs sem vínculo e vinculados a si. Os vinculados a outro jogador são rejeitados, exceto se a verificação de vínculo estiver desativada ou tiver permissão para a contornar.
  • O botão de confirmação mostra o total acumulado. Clique nele para vender tudo e receber Elite Coins.
  • O valor de revenda é uma fração do valor guardado do item, ou do valor calculado se não houver um valor guardado, definida por itemResaleValue no EconomySettings.yml (padrão 5%). O tamanho da pilha multiplica o pagamento.
  • Os rendimentos da venda pagam primeiro as dívidas de jogo pendentes; só o restante aumenta o saldo disponível.
  • Cada pilha é creditada separadamente. Se o fornecedor de economia rejeitar um crédito, essa pilha é-lhe devolvida, a venda para e é mostrada a mensagem shopTransactionFailedMessage. As pilhas creditadas antes desse ponto continuam vendidas.

Loja de Flechas​

Aberta falando com o NPC da Loja de Flechas (elitemobs.shop.arrow.npc).

A Loja de Flechas vende munições por Elite Coins. O stock por padrão inclui:

  • Flechas normais (uma pilha pequena e uma pilha grande)
  • Flechas espectrais
  • Flechas com ponta de Veneno, Lentidão, Fraqueza, Dano e Cura

A quantidade e o preço de cada entrada configuram-se em menus/arrow_shop_menu.yml. Clique numa flecha para a comprar; precisa de fundos suficientes e um espaço vazio, mesmo que as flechas pudessem empilhar-se noutro espaço. Os espaços de stock estão fixos na implementação. Reinicie após alterar preços, quantidades ou nomes de artigos: o catálogo é guardado em cache quando a classe do menu é carregada pela primeira vez.

Comandos e permissões​

ComandoPermissãoPadrãoDescrição
/em shop dynamicelitemobs.shop.dynamictrueAbre o menu de entrada da loja dinâmica ou solicita teletransporte para a Guilda
/em shop procedural <player>elitemobs.*opAbre a loja dinâmica (procedural) para outro jogador
/em shop customelitemobs.shop.commandapenas no códigoAbre o menu de entrada da loja personalizada ou solicita teletransporte para a Guilda; conceda este nó real quando necessário, em vez do nó declarado mas não utilizado elitemobs.shop.custom
/em shop custom <player>elitemobs.shop.custom.otheropAbre a loja personalizada para outro jogador
/em shop sell <player>elitemobs.shop.sell.otheropAbre o menu de venda para outro jogador

Permissões de interação com NPCs (concedidas aos jogadores por padrão através do conjunto elitemobs.user):

PermissãoNPC
elitemobs.shop.dynamic.npcFerreiro (loja dinâmica)
elitemobs.shop.custom.npcFerreiro Especial (loja personalizada)
elitemobs.shop.sell.npcVenda de itens
elitemobs.shop.arrow.npcLoja de Flechas

Configuração​

A economia das lojas é configurada no EconomySettings.yml. Chaves notáveis:

ChavePadrãoEfeito
enableEconomytrueAtiva os acessos normais à economia; não bloqueia todos os acessos diretos às lojas
currencyNameElite CoinsNome de exibição da moeda
useVaultfalseEncaminhar os saldos através do Vault em vez da base de dados do EliteMobs
itemResaleValue5Percentagem do valor total do item paga ao vender
playerToPlayerPaymentTaxes0.2Taxa de imposto (0.0–1.0) aplicada às transferências /em pay (0.2 = 20%)
enableCurrencyShowertrueDefine se os elites largam moedas ao morrer
currencyShowerTierMultiplier1.0Multiplicador da moeda largada (2.0 = dobro)
materialWorth.defaultMaterialWorth1Valor usado para qualquer material sem entrada materialWorth.<MATERIAL> própria

As entradas materialWorth.<MATERIAL> usam valores padrão fixos dos patamares de materiais do plugin: netherite 18, diamante e tridente 17, ferro 16, pedra e cota de malha 15, e ouro, madeira e couro 13. Esses patamares são constantes do código, não opções de configuração. Altere as entradas individuais de materialWorth em EconomySettings.yml para definir os preços da loja.

As disposições dos menus (slots, ícones de itens, nomes e mensagens) de cada loja vivem nos ficheiros de configuração de menus do EliteMobs (por exemplo, as configurações de menu de comprar-ou-vender, loja personalizada, loja procedural, venda e loja de flechas).

O valor de compra calculado combina material, encantamentos e efeitos de poção, com um valor base de 1. Os valores de revenda já guardados podem, por isso, diferir dos novos preços calculados após alterar as definições de preços.

Cada compra retira primeiro o preço e só entrega o item depois de o fornecedor de economia aceitar o pagamento. Se o fornecedor rejeitar o pagamento, o jogador recebe a mensagem de fundos insuficientes e nada é entregue. Se a transação falhar a meio, o jogador vê shopTransactionFailedMessage e o registo do servidor guarda o preço, se o débito foi aceite e o item, para que um administrador possa resolver a situação.