Sistema de tiendas
EliteMobs incluye un sistema de tiendas integrado que permite a los jugadores gastar y ganar Monedas Élite (la moneda de EliteMobs) en equipo y flechas de EliteMobs. A las tiendas se accede normalmente a través de los NPC Herrero y mercaderes del Gremio de Aventureros, pero también se pueden abrir con comandos.
Mantén enableEconomy: true en EconomySettings.yml para el uso normal de las tiendas. Los menús de entrada de las tiendas Dinámica y Personalizada comprueban este ajuste, pero los comandos administrativos directos y los NPC de Venta y Flechas no aplican la misma comprobación. No es un control de acceso universal. Con una integración con Vault funcional, los saldos usan el proveedor de Vault en lugar de la base de datos de EliteMobs.
Moneda
La moneda por defecto se llama Monedas Élite (currencyName en EconomySettings.yml). Los jugadores la ganan principalmente matando élites (lluvias de moneda) y vendiendo botín de EliteMobs. Los saldos se pueden consultar y pagar usando los comandos de dinero estándar:
/em money check– comprueba tu saldo (no existe el comando/em wallet; algunos comentarios de la configuración todavía lo mencionan con ese nombre antiguo)/em pay <player> <amount>– paga a otro jugador (sujeto aplayerToPlayerPaymentTaxes)
Los administradores pueden gestionar los saldos con /em money add|remove|set y derivados.
Las tiendas
Tienda dinámica (equipo generado procedimentalmente)
Usa /em shop dynamic o habla con el NPC Herrero (elitemobs.shop.dynamic.npc). El comando del jugador redirige al Gremio cuando agTeleport está activo, el Gremio está instalado y el jugador tiene elitemobs.adventurersguild.teleport; en caso contrario abre el menú de comprar o vender. El NPC abre ese menú directamente.
La Tienda Dinámica usa las ranuras de stock configuradas de un menú de 54 ranuras para armas y armaduras procedimentales de EliteMobs. Los niveles siguen tu nivel de habilidad para ese tipo de objeto: cada objeto se genera entre (skillLevel - 5) y skillLevel, dentro de 1–100. A partir del nivel de habilidad 105, todas las ofertas de esa habilidad son de nivel 100. Los materiales sin una habilidad asociada usan el nivel derivado de tu XP media entre todos los tipos de habilidad.
- Haz clic en un objeto para comprarlo por su valor calculado. Necesitas fondos suficientes, una ranura de almacenamiento vacía y cumplir el requisito de habilidad para equiparlo que corresponda. La comprobación respeta el ajuste de restricciones de equipo y sus excepciones, incluidos los objetos de nivel 20 o inferior.
- Usa el botón de volver a sortear para refrescar el stock ofrecido (enfriamiento corto de 2 segundos).
- Comprar un objeto también renueva el stock.
Tienda personalizada (objetos especiales)
Usa /em shop custom o habla con el NPC Herrero Especial (elitemobs.shop.custom.npc). El comando del jugador sigue la misma regla de redirección al Gremio que la Tienda Dinámica; el NPC abre directamente el menú de comprar o vender.
La Tienda Personalizada elige entradas aleatorias de su conjunto de Objetos Personalizados válidos. itemType: CUSTOM es admisible; UNIQUE, DROPPABLE y CLASS_LOOT quedan excluidos. Las copias ofrecidas se vinculan al alma del comprador si el vínculo está habilitado. Mantén al menos un objeto válido: el selector actual no puede llenar la tienda desde un conjunto vacío.
Las compras requieren fondos suficientes y una ranura de almacenamiento vacía. Este menú no aplica la comprobación de habilidad de la Tienda Dinámica, por lo que comprar un objeto no demuestra que puedas equiparlo. El botón de volver a sortear tiene un enfriamiento de 2 segundos; las compras también renuevan el stock.
Vender objetos
A la venta se accede a través de la opción Vender del menú de comprar o vender (después de abrir la Tienda Dinámica o Personalizada), o directamente por un administrador con /em shop sell <player> (elitemobs.shop.sell.other). El NPC Herrero de Venta de objetos usa el permiso elitemobs.shop.sell.npc.
En el menú de venta:
- Haz clic en objetos EliteMobs de tu inventario para mover sus pilas a las ranuras de venta. Los objetos vanilla se rechazan. Se aceptan los objetos EliteMobs no vinculados y los vinculados a ti. Los vinculados a otra persona se rechazan, salvo que la comprobación de vínculo esté desactivada o tengas permiso para omitirla.
- El botón de confirmar muestra el total acumulado. Haz clic en él para venderlo todo y recibir Monedas Élite.
- El valor de reventa es una fracción del valor almacenado del objeto, o de su valor calculado si no tiene uno almacenado. Se define con
itemResaleValueenEconomySettings.yml(por defecto 5%). La cantidad de la pila multiplica el pago. - Los ingresos de venta pagan primero las deudas de juego pendientes; solo el resto aumenta el saldo disponible.
- Cada pila se abona por separado. Si el proveedor de economía rechaza un abono, esa pila te vuelve, la venta se detiene y se muestra
shopTransactionFailedMessage. Las pilas abonadas antes de ese momento siguen vendidas.
Tienda de flechas
Se abre hablando con el NPC de la Tienda de Flechas (elitemobs.shop.arrow.npc).
La Tienda de Flechas vende munición por Monedas Élite. El stock por defecto incluye:
- Flechas normales (un montón pequeño y un montón grande)
- Flechas espectrales
- Flechas con punta de Veneno, Lentitud, Debilidad, Daño y Curación
La cantidad y el precio se configuran en menus/arrow_shop_menu.yml. Haz clic en una flecha para comprarla; necesitas fondos suficientes y una ranura vacía, aunque las flechas pudieran apilarse en otra ranura. Las posiciones del stock están fijadas en la implementación. Reinicia después de cambiar precios, cantidades o nombres de artículos: el catálogo se guarda en caché al cargar por primera vez la clase del menú.
Comandos y permisos
| Comando | Permiso | Por defecto | Descripción |
|---|---|---|---|
/em shop dynamic | elitemobs.shop.dynamic | true | Abre el menú de entrada de la tienda dinámica o solicita el teletransporte al Gremio |
/em shop procedural <player> | elitemobs.* | op | Abre la tienda dinámica (procedimental) para otro jugador |
/em shop custom | elitemobs.shop.command | Solo en el código | Abre el menú de entrada de la tienda personalizada o solicita el teletransporte al Gremio; concede este nodo real cuando sea necesario, en lugar del permiso declarado pero sin uso elitemobs.shop.custom |
/em shop custom <player> | elitemobs.shop.custom.other | op | Abre la tienda personalizada para otro jugador |
/em shop sell <player> | elitemobs.shop.sell.other | op | Abre el menú de venta para otro jugador |
Permisos de interacción con NPC (concedidos a los jugadores por defecto mediante el paquete elitemobs.user):
| Permiso | NPC |
|---|---|
elitemobs.shop.dynamic.npc | Herrero (tienda dinámica) |
elitemobs.shop.custom.npc | Herrero Especial (tienda personalizada) |
elitemobs.shop.sell.npc | Venta de objetos |
elitemobs.shop.arrow.npc | Tienda de Flechas |
Configuración
La economía de la tienda se configura en EconomySettings.yml. Claves destacadas:
| Clave | Por defecto | Efecto |
|---|---|---|
enableEconomy | true | Habilita las entradas normales de la economía; no bloquea todas las rutas directas a tiendas |
currencyName | Elite Coins | Nombre visible de la moneda |
useVault | false | Enrutar los saldos a través de Vault en lugar de la base de datos de EliteMobs |
itemResaleValue | 5 | Porcentaje del valor total del objeto que se paga al vender |
playerToPlayerPaymentTaxes | 0.2 | Tasa de impuesto (0.0–1.0) aplicada a las transferencias de /em pay (0.2 = 20%) |
enableCurrencyShower | true | Determina si los élites sueltan monedas al morir |
currencyShowerTierMultiplier | 1.0 | Multiplicador de la moneda soltada (2.0 = el doble) |
materialWorth.defaultMaterialWorth | 1 | Valor usado para cualquier material sin su propia entrada materialWorth.<MATERIAL> |
Las entradas materialWorth.<MATERIAL> usan valores predeterminados fijos según los materiales del plugin: netherita 18, diamante y tridente 17, hierro 16, piedra y cota de malla 15, y oro, madera y cuero 13. Estos niveles son constantes del código, no opciones de configuración. Modifica las entradas individuales de materialWorth en EconomySettings.yml para establecer los precios de la tienda.
Los diseños de los menús (ranuras, iconos de objetos, nombres y mensajes) de cada tienda viven en los archivos de configuración de menús de EliteMobs (por ejemplo, las configuraciones de los menús de comprar o vender, tienda personalizada, tienda procedimental, venta y tienda de flechas).
El valor calculado de compra combina material, encantamientos y efectos de poción, con un valor base de 1. Por tanto, los valores de reventa ya almacenados pueden diferir de los nuevos precios calculados después de cambiar los ajustes de precios.
Cada compra retira primero el precio y solo entrega el objeto después de que el proveedor de economía acepte el pago. Si el proveedor rechaza el pago, el jugador recibe el mensaje de fondos insuficientes y no se entrega nada. Si la transacción falla a mitad, el jugador ve shopTransactionFailedMessage y el registro del servidor anota el precio, si se aceptó el cargo y el objeto, para que un administrador pueda resolverlo.
Páginas relacionadas
- Mundo del Gremio de Aventureros — donde viven los NPC de las tiendas
- Vínculo de Alma — comprobaciones de propiedad y excepciones
- Sistema de habilidades — cómo los niveles de habilidad restringen el equipo y escalan la tienda dinámica
- Integración con Vault — usar una economía para todo el servidor
- Crear objetos — añadir objetos personalizados a la tienda personalizada