Aller au contenu principal

Système de Boutique

EliteMobs est livré avec un système de boutique intégré qui permet aux joueurs de dépenser et de gagner des Elite Coins (la monnaie d'EliteMobs) sur de l'équipement et des flèches EliteMobs. Les boutiques sont normalement accessibles via les PNJ Forgeron et marchands dans la Guilde des Aventuriers, mais elles peuvent aussi être ouvertes par des commandes.

Réglages de l'économie

Gardez enableEconomy: true dans EconomySettings.yml pour l'utilisation normale des boutiques. Les menus d'entrée des boutiques dynamique et personnalisée vérifient ce réglage, mais les commandes administratives directes et les PNJ de vente et de flèches n'appliquent pas la même vérification. Ce n'est pas un contrôle d'accès universel. Avec une intégration Vault fonctionnelle, les soldes passent par le fournisseur Vault au lieu de la base de données d'EliteMobs.

Monnaie​

La monnaie par défaut s'appelle les Elite Coins (currencyName dans EconomySettings.yml). Les joueurs la gagnent principalement en tuant des élites (pluies de monnaie) et en vendant du butin EliteMobs. Les soldes peuvent être consultés et payés à l'aide des commandes de monnaie standard :

  • /em money check – consulter votre solde (la commande /em wallet n'existe pas ; certains commentaires de configuration emploient encore cet ancien nom)
  • /em pay <player> <amount> – payer un autre joueur (soumis à playerToPlayerPaymentTaxes)

Les administrateurs peuvent gérer les soldes avec /em money add|remove|set et compagnie.

Les boutiques​

Boutique dynamique (équipement généré procéduralement)​

Utilisez /em shop dynamic ou parlez au PNJ Forgeron (elitemobs.shop.dynamic.npc). La commande du joueur redirige vers la Guilde si agTeleport est activé, si la Guilde est installée et si le joueur possède elitemobs.adventurersguild.teleport ; sinon, elle ouvre le menu acheter-ou-vendre. Le PNJ ouvre ce menu directement.

La Boutique Dynamique utilise les emplacements de stock configurés d'un menu de 54 emplacements pour proposer des armes et armures procédurales EliteMobs. Les niveaux suivent votre niveau de compétence pour ce type d'objet : chaque objet est tiré entre (skillLevel - 5) et skillLevel, dans la plage 1–100. À partir du niveau de compétence 105, toutes les offres de cette compétence sont de niveau 100. Les matériaux sans compétence correspondante utilisent le niveau dérivé de votre XP moyenne sur tous les types de compétences.

  • Cliquez sur un objet pour l'acheter à sa valeur calculée. Il faut suffisamment de fonds, un emplacement de stockage vide et satisfaire à l'exigence de compétence pour équiper l'objet applicable. Cette vérification respecte le réglage des restrictions d'équipement et ses exceptions, notamment les objets de niveau 20 ou inférieur.
  • Utilisez le bouton relancer (reroll) pour rafraîchir le stock proposé (court délai de 2 secondes).
  • Un achat renouvelle également le stock.

Boutique personnalisée (objets spéciaux)​

Utilisez /em shop custom ou parlez au PNJ Forgeron Spécial (elitemobs.shop.custom.npc). La commande du joueur suit la même règle de redirection vers la Guilde que la Boutique Dynamique ; le PNJ ouvre directement le menu acheter-ou-vendre.

La Boutique Personnalisée tire des entrées aléatoires parmi les Objets Personnalisés admissibles. itemType: CUSTOM est admissible ; UNIQUE, DROPPABLE et CLASS_LOOT sont exclus. Les copies proposées sont liées à l'âme de l'acheteur lorsque cette fonction est activée. Gardez au moins un objet admissible : le sélecteur actuel ne peut pas remplir la boutique à partir d'un ensemble vide.

Les achats nécessitent suffisamment de fonds et un emplacement de stockage vide. Ce menu n'applique pas la vérification de compétence de la Boutique Dynamique : pouvoir acheter un objet ne garantit donc pas de pouvoir l'équiper. Le bouton relancer (reroll) a un délai de 2 secondes ; les achats renouvellent aussi le stock.

Vendre des objets​

La vente se fait via l'option Vendre du menu acheter-ou-vendre (après avoir ouvert la Boutique Dynamique ou Personnalisée), ou directement par un administrateur avec /em shop sell <player> (elitemobs.shop.sell.other). Le PNJ Forgeron Vente d'objets utilise la permission elitemobs.shop.sell.npc.

Dans le menu de Vente :

  • Cliquez sur les objets EliteMobs de votre inventaire pour déplacer leurs piles vers les emplacements de vente. Les objets vanilla sont refusés. Les objets EliteMobs sans lien d'âme et ceux liés à vous sont acceptés. Les objets liés à un autre joueur sont refusés, sauf si la vérification du lien d'âme est désactivée ou si vous disposez de sa permission de contournement.
  • Le bouton de confirmation affiche le total en cours. Cliquez dessus pour tout vendre et recevoir des Elite Coins.
  • La valeur de revente est une fraction de la valeur enregistrée de l'objet, ou de sa valeur calculée si aucune valeur n'est enregistrée, définie par itemResaleValue dans EconomySettings.yml (par défaut 5 %). La taille de la pile multiplie le paiement.
  • Les recettes remboursent d'abord les dettes de jeu ; seul le reste augmente le solde disponible.
  • Chaque pile est créditée séparément. Si le fournisseur d'économie refuse un crédit, cette pile vous est rendue, la vente s'arrête et shopTransactionFailedMessage s'affiche. Les piles créditées avant ce moment restent vendues.

Boutique de Flèches​

Ouverte en parlant au PNJ Boutique de Flèches (elitemobs.shop.arrow.npc).

La Boutique de Flèches vend des munitions contre des Elite Coins. Le stock par défaut comprend :

  • Des flèches ordinaires (un petit lot et un grand lot)
  • Des flèches spectrales
  • Des flèches à effet de Poison, Lenteur, Faiblesse, Dégâts et Soin

La quantité et le prix de chaque entrée se configurent dans menus/arrow_shop_menu.yml. Cliquez sur une flèche pour l'acheter ; il faut suffisamment de fonds et un emplacement vide, même si les flèches pourraient s'empiler ailleurs. Les emplacements du stock sont fixes dans l'implémentation. Redémarrez après avoir changé les prix, quantités ou noms des articles : le catalogue est mis en cache au premier chargement de la classe du menu.

Commandes et permissions​

CommandePermissionPar défautDescription
/em shop dynamicelitemobs.shop.dynamictrueOuvre le menu d'entrée de la boutique dynamique ou demande une téléportation vers la Guilde
/em shop procedural <player>elitemobs.*opOuvre la boutique dynamique (procédurale) pour un autre joueur
/em shop customelitemobs.shop.commanddans le code uniquementOuvre le menu d'entrée de la boutique personnalisée ou demande une téléportation vers la Guilde ; accordez ce nœud réel si nécessaire, plutôt que le nœud déclaré mais inutilisé elitemobs.shop.custom
/em shop custom <player>elitemobs.shop.custom.otheropOuvre la boutique personnalisée pour un autre joueur
/em shop sell <player>elitemobs.shop.sell.otheropOuvre le menu de vente pour un autre joueur

Permissions d'interaction avec les PNJ (accordées aux joueurs par défaut via le bundle elitemobs.user) :

PermissionPNJ
elitemobs.shop.dynamic.npcForgeron (boutique dynamique)
elitemobs.shop.custom.npcForgeron Spécial (boutique personnalisée)
elitemobs.shop.sell.npcVente d'objets
elitemobs.shop.arrow.npcBoutique de Flèches

Configuration​

L'économie de la boutique est configurée dans EconomySettings.yml. Clés notables :

CléPar défautEffet
enableEconomytrueActive les entrées normales de l'économie ; ne bloque pas tous les accès directs aux boutiques
currencyNameElite CoinsNom d'affichage de la monnaie
useVaultfalseAcheminer les soldes via Vault au lieu de la base de données d'EliteMobs
itemResaleValue5Pourcentage de la valeur totale de l'objet payé lors de la vente
playerToPlayerPaymentTaxes0.2Taux de taxe (0.0–1.0) appliqué aux transferts /em pay (0.2 = 20 %)
enableCurrencyShowertrueDétermine si les élites laissent tomber des pièces à leur mort
currencyShowerTierMultiplier1.0Multiplicateur de la monnaie lâchée (2.0 = double)
materialWorth.defaultMaterialWorth1Valeur utilisée pour tout matériau sans entrée materialWorth.<MATERIAL> propre

Les entrées materialWorth.<MATERIAL> utilisent des valeurs fixes issues des paliers de matériaux du plugin : netherite 18, diamant et trident 17, fer 16, pierre et mailles 15, et or, bois et cuir 13. Ces paliers sont des constantes du code, pas des paramètres de configuration. Modifiez les entrées individuelles de materialWorth dans EconomySettings.yml pour fixer les prix de la boutique.

Les agencements de menu (emplacements, icônes d'objet, noms et messages) de chaque boutique se trouvent dans les fichiers de configuration de menu d'EliteMobs (par exemple les configs de menu acheter-ou-vendre, boutique personnalisée, boutique procédurale, vente et boutique de flèches).

La valeur d'achat calculée combine matériau, enchantements et effets de potion, avec une valeur de base de 1. Les valeurs de revente déjà enregistrées peuvent donc différer des nouveaux prix calculés après une modification des réglages de prix.

Chaque achat retire d'abord le prix et ne remet l'objet qu'une fois le paiement accepté par le fournisseur d'économie. Si le fournisseur refuse le paiement, le joueur reçoit le message de fonds insuffisants et rien n'est remis. Si la transaction échoue en cours de route, le joueur voit shopTransactionFailedMessage et le journal du serveur enregistre le prix, si le débit a été accepté et l'objet, afin qu'un administrateur puisse régulariser la situation.