Objetos personalizados y armas mágicas
FMM registra objetos que se pueden sostener a partir de archivos YAML de plugins/FreeMinecraftModels/models/. Un modelo puede tener una definición .yml con el mismo nombre base junto a él. Los objetos también pueden usar la apariencia vanilla sin un archivo .bbmodel.
Objetos personalizados
Para flame_blade.yml:
isEnabled: true
material: DIAMOND_SWORD
name: "&6Flame Blade"
lore:
- "&7Burns enemies on hit"
enchantments:
- "minecraft:fire_aspect,2"
- "minecraft:unbreaking,3"
Recarga FMM y usa /fmm giveitem flame_blade. Este comando requiere freeminecraftmodels.admin. El ID del objeto es el nombre base del archivo en minúsculas, no su nombre visible. Usa nombres base únicos entre todas las subcarpetas.
Para teñir armaduras de cuero, añade un color RGB hexadecimal después del material, sin #, como en el equipamiento de EliteMobs: material: LEATHER_CHESTPLATE:ff8800. El sufijo solo funciona con materiales LEATHER_. Los objetos que ya están en los inventarios conservan su color anterior.
Un objeto conserva el modelo de visualización que tenía al crearse. FMM añade el modelo de visualización registrado a los objetos de FMM que no tienen ninguno: a todos los objetos así del inventario de un jugador cuando se conecta, y a los objetos de sus manos cuando cambia de ranura, intercambia de mano o recoge algo. Esto corrige objetos entregados antes de que existiera su modelo, como varitas que aparecían como simples varas de blaze. Los objetos que ya indican un modelo no se modifican.
Las entradas de encantamientos deben ser cadenas en minúsculas con el formato namespace:id,level y un nivel entero positivo. Usa minecraft: para encantamientos nativos, freeminecraftmodels: para efectos de FMM y elitemobs: para efectos de EliteMobs. El proveedor debe estar instalado y la definición disponible. Consulta encantamientos personalizados. Un objeto con un encantamiento de conjunto de objetos muestra las piezas del conjunto en la línea de lore que contiene $itemSet, o después de su lore cuando ninguna línea lo contiene.
Las listas scripts: de objetos equipados y las entradas sin espacio de nombres, como SHARPNESS,3, se han retirado. FMM omite esas definiciones, registra el motivo y deja los archivos intactos. También omite los objetos cuyo material no esté disponible en el servidor. Estos casos no impiden cargar el resto del contenido.
Los scripts de elementos decorativos siguen usando scripts:. Los efectos de objetos usan enchantments:. No añadas un script antiguo de objetos a una definición nueva de arma.
Varita y bastón incluidos
FMM instala las definiciones predeterminadas que falten en models/fmm_default_magic/. Si una definición existente de la varita o el bastón incluidos carece de weapon.type, FMM añade la declaración WAND o STAFF correspondiente y conserva los demás ajustes:
| ID del objeto | Material | Controles |
|---|---|---|
fmm_default_arcane_wand | BLAZE_ROD | El clic izquierdo dispara un proyectil con asistencia de apuntado |
fmm_default_arcane_staff | WOODEN_SPEAR | El clic izquierdo realiza un golpe cuerpo a cuerpo débil; el clic derecho lanza una bola de fuego de área |
Consíguelos con /fmm giveitem <id>. Una vara de blaze o lanza normal no se convierte en un arma mágica. El bastón requiere una versión del servidor que proporcione WOODEN_SPEAR; las definiciones con materiales no disponibles se omiten.
Ambas armas incluyen su propio modelo y su JSON de modelo de visualización. La varita incluye además fmm_default_arcane_wand_particles.particle.json y su textura: su animación held repite un efecto de destellos alrededor de la gema mientras la varita está en cualquiera de las dos manos. Consulta Partículas. FMM solo copia los archivos que faltan, así que un servidor que ya tenga un .yml incluido editado lo conserva y recibe los nuevos archivos del modelo.
La varita busca un objetivo por delante y después envía un proyectil que recorre la distancia. Adquirir un objetivo no garantiza el impacto: el proyectil debe alcanzarlo y puede chocar con bloques. Los bastones lanzan bolas de fuego más lentas con un radio de impacto.
Los lanzamientos de varita aplican brevemente Lentitud I durante 20 ticks sin reemplazar un efecto de lentitud existente más fuerte o duradero. El daño de varita suprime su propio retroceso nativo. La entidad que golpea una bola de fuego de bastón recibe el daño completo de la bola. Los demás objetivos de la explosión necesitan línea de visión hacia el impacto y reciben menos daño cuanto más lejos esté su centro de él: desde el daño completo en el punto de impacto hasta el 35 % en el borde. La ignición solo se aplica después de que se acepte el daño y respeta el evento de combustión.
Los golpes mágicos ignoran el enfriamiento de daño vanilla, así que un rayo de varita, un golpe de bastón o una bola de fuego siguen alcanzando a un objetivo que acaba de recibir otro golpe, por ejemplo de la espada de un miembro del grupo. Después, FMM restaura el enfriamiento del objetivo; la propia recarga del arma limita la frecuencia con la que aciertan los golpes mágicos.
Golpear directamente a un mob con una varita o un bastón cuenta como el ataque de clic izquierdo: FMM cancela el golpe cuerpo a cuerpo vanilla y ejecuta en su lugar el ataque de clic izquierdo del arma. El daño que un plugin aplica en nombre del jugador mediante la ruta de daño explícito de MagmaCore mientras sostiene una varita o un bastón, como el daño de los encantamientos de EliteMobs, no se toca y no provoca un lanzamiento. Hacer clic mientras el ataque está en tiempo de reutilización reproduce un clic suave y no hace nada más.
Los tiempos de reutilización empiezan cuando un lanzamiento o golpe cuerpo a cuerpo se inicia correctamente. Una recarga de contenido pausa los nuevos lanzamientos mientras se reconstruyen las definiciones; los proyectiles ya lanzados conservan el arma y los modificadores capturados. Eliminar el componente registrado que resuelve el combate cancela los proyectiles pendientes para que no cambien de reglas de combate durante el vuelo.
Definir un arma mágica
Añade una sección weapon a una definición normal de objeto:
isEnabled: true
material: BLAZE_ROD
name: "&dArcane Wand"
weapon:
type: WAND
enchantments:
- "freeminecraftmodels:multicast,1"
type debe ser WAND o STAFF. Si omites los campos de ajuste, se usan estos valores predeterminados:
| Ajuste | Varita | Bastón |
|---|---|---|
projectileSpeed | 0.72 | 0.48 |
range | 18 | 28 |
travelTicks | 24 | 74 |
impactRadius | 0 | 2.75 |
aimAssistDegrees | 45 | 0 |
El cono de adquisición predeterminado de la varita abarca 45 grados a cada lado de la dirección frontal. aimAssistDegrees acepta valores de 0 a 180. El radio puede ser cero; la velocidad y el alcance deben ser números positivos finitos, y los ticks de recorrido deben ser un entero positivo.
| Ataque | basePower | reloadTicks |
|---|---|---|
WAND_MISSILE | 0.672 | 11 |
STAFF_MELEE | 0.45 | 12 |
STAFF_FIREBALL | 1.25 | 40 |
La sección opcional weapon.attacks debe contener exactamente las claves de ataque del tipo de arma, con ambos campos para cada ataque:
weapon:
type: STAFF
attacks:
STAFF_MELEE:
basePower: 0.45
reloadTicks: 12
STAFF_FIREBALL:
basePower: 1.25
reloadTicks: 40
Se rechazan los campos desconocidos de arma y los valores mal formados. basePower es un factor de daño que interpreta el componente encargado de resolver el combate; no garantiza esa cantidad de puntos de vida de daño.
Encantamientos mágicos
| ID | Función |
|---|---|
freeminecraftmodels:multicast | Proyectiles adicionales con daño ajustado por proyectil |
freeminecraftmodels:blast_radius | Modificador del radio de impacto de las bolas de fuego del bastón |
freeminecraftmodels:ignition | Incendia a los objetivos que sobreviven a una bola de fuego del bastón |
Sus archivos YAML y Lua se guardan en plugins/FreeMinecraftModels/enchantments/. El catálogo incluido también contiene efectos para objetos de contenido personalizado. Instalar una definición de efecto no entrega por sí solo a los jugadores el objeto o paquete de modelos correspondiente.
Los conjuntos de objetos que lleva puestos quien lanza también funcionan con varitas y bastones mientras todas las piezas estén puestas. Los modificadores de lanzamiento de un conjunto cuentan una vez por lanzamiento. Cuando acierta un golpe mágico, se ejecuta el hook on_attack_entity del conjunto para un golpe de bastón y su hook on_projectile_hit para un rayo de varita o una bola de fuego.
Integración con EliteMobs
Cuando está instalado, EliteMobs controla el escalado del combate de élite y la atribución a habilidades. FMM controla la identidad del arma, los controles, el recorrido del proyectil y la solicitud de impacto. EliteMobs puede rechazar un lanzamiento o impacto si el arma o el estado de combate no son válidos.
El [Alpha] Advanced Combat System usa bastones y varitas de FMM para Spellcaster. Las habilidades de clase y los ataques de armas mágicas usan controles separados. Consumir una selección de habilidad de clase con la tecla F no debe lanzar también el arma sostenida.
Para distribuir el paquete, regenera la salida de FMM y deja que ResourcePackManager la fusione y la sirva. Que un arma esté registrada no demuestra por sí solo que el cliente haya descargado su modelo.