Itens personalizados e armas mágicas
O FMM regista itens para segurar na mão a partir de ficheiros YAML em plugins/FreeMinecraftModels/models/. Um modelo pode ter um ficheiro .yml com o mesmo nome base, na mesma pasta. Os itens também podem usar a apresentação normal do Minecraft sem um ficheiro .bbmodel.
Itens personalizados
Exemplo 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"
Recarregue o FMM e execute /fmm giveitem flame_blade. Este comando exige freeminecraftmodels.admin. O ID do item é o nome base do ficheiro em minúsculas, não o nome apresentado ao jogador. Use nomes base únicos, mesmo entre subpastas.
Para tingir armaduras de couro, acrescente uma cor RGB hexadecimal após o material, sem #, tal como no equipamento do EliteMobs: material: LEATHER_CHESTPLATE:ff8800. O sufixo só funciona em materiais LEATHER_. Os itens que já estão nos inventários mantêm a cor antiga.
Um item mantém o modelo de apresentação que tinha quando foi criado. O FMM acrescenta o modelo de apresentação registado aos itens FMM que não tenham nenhum: a todos esses itens no inventário de um jogador quando este entra, e aos itens nas suas mãos depois de mudar de posição na barra, trocar de mão ou apanhar algo. Isto corrige itens entregues antes de o seu modelo existir, como varinhas que apareciam como simples varas de blaze. Os itens que já indicam um modelo não são alterados.
Os encantamentos devem usar cadeias em minúsculas no formato namespace:id,level, com um nível inteiro positivo. Use minecraft: para encantamentos nativos, freeminecraftmodels: para efeitos do FMM e elitemobs: para efeitos fornecidos pelo EliteMobs. O fornecedor tem de estar instalado e a definição disponível. Consulte Criação de encantamentos. Um item com um encantamento de conjunto de itens mostra as peças do conjunto na linha de lore que contém $itemSet, ou depois da sua lore quando nenhuma linha o contém.
As listas scripts: de itens equipados e as entradas sem espaço de nomes, como SHARPNESS,3, foram removidas. O FMM ignora essas definições de itens, regista o motivo e mantém os ficheiros intactos. Também ignora itens cujo material não existe na versão do servidor. Estes casos não impedem o carregamento do restante conteúdo.
Os scripts de elementos decorativos continuam a usar scripts:. Os efeitos de itens usam enchantments:. Não adicione um script antigo de item a uma nova definição de arma.
Varinha e cajado incluídos
O FMM instala os ficheiros predefinidos em falta em models/fmm_default_magic/. Se uma definição existente da varinha ou do cajado incluídos não tiver weapon.type, o FMM acrescenta a declaração WAND ou STAFF correspondente e preserva as restantes configurações:
| ID do item | Material | Controlos |
|---|---|---|
fmm_default_arcane_wand | BLAZE_ROD | Clique esquerdo dispara um projétil com assistência de mira |
fmm_default_arcane_staff | WOODEN_SPEAR | Clique esquerdo executa um golpe corpo a corpo fraco; clique direito lança uma bola de fogo com dano em área |
Obtenha-os com /fmm giveitem <id>. Uma vara de blaze ou lança normal não se transforma numa arma mágica. O cajado exige uma versão do servidor com WOODEN_SPEAR; as definições com materiais indisponíveis são ignoradas.
Ambas as armas incluem o seu próprio modelo e o JSON do modelo de apresentação. A varinha inclui também fmm_default_arcane_wand_particles.particle.json e a respetiva textura: a sua animação held repete um efeito de brilho à volta da gema enquanto a varinha está em qualquer das mãos. Consulte Partículas. O FMM só copia os ficheiros em falta, pelo que um servidor que já tenha um .yml incluído editado mantém-no e recebe os novos ficheiros de modelo.
A varinha procura um alvo à frente e lança um projétil que percorre o trajeto até ele. Encontrar o alvo não garante um acerto: o projétil tem de o alcançar e pode colidir com blocos. Os cajados lançam bolas de fogo mais lentas, com um raio de impacto.
Os disparos da varinha aplicam Lentidão I durante 20 ticks, sem substituir um efeito de lentidão existente mais forte ou mais longo. O dano da varinha suprime o seu próprio empurrão nativo. A entidade atingida por uma bola de fogo do cajado sofre o dano total da bola de fogo. Os outros alvos na explosão precisam de linha de visão para o ponto de impacto e sofrem menos dano quanto mais longe o seu centro estiver dele: do dano total no ponto de impacto até 35% no limite. Só é aplicado fogo após dano aceite, respeitando o evento de combustão.
Os golpes mágicos ignoram o tempo de recuperação de dano do jogo vanilla, por isso um disparo de varinha, um golpe de cajado ou uma bola de fogo ainda acerta num alvo que foi atingido momentos antes, por exemplo pela espada de um membro do grupo. Depois, o FMM repõe o tempo de recuperação do alvo; é a recarga da própria arma que limita a frequência com que os golpes mágicos acertam.
Atingir diretamente um mob com uma varinha ou um cajado conta como o ataque de clique esquerdo: o FMM cancela o golpe corpo a corpo normal e executa, em vez dele, o ataque de clique esquerdo da arma. O dano que um plugin aplica em nome do jogador através do caminho de dano explícito do MagmaCore enquanto este segura uma varinha ou um cajado, como o dano de encantamentos do EliteMobs, não é alterado e não provoca um feitiço. Clicar enquanto o ataque está em tempo de recarga reproduz um clique discreto e não faz mais nada.
Os tempos de recarga começam após o lançamento bem-sucedido de um feitiço ou ataque corpo a corpo. O recarregamento de conteúdo suspende novos lançamentos enquanto reconstrói as definições; os projéteis já lançados mantêm a arma e os modificadores capturados. Remover o processador de combate registado cancela os projéteis pendentes, impedindo que mudem de regras de combate durante o trajeto.
Definir uma arma mágica
Adicione uma secção weapon a uma definição normal de item:
isEnabled: true
material: BLAZE_ROD
name: "&dArcane Wand"
weapon:
type: WAND
enchantments:
- "freeminecraftmodels:multicast,1"
type tem de ser WAND ou STAFF. Os campos omitidos usam estas predefinições:
| Opção | Varinha | Cajado |
|---|---|---|
projectileSpeed | 0.72 | 0.48 |
range | 18 | 28 |
travelTicks | 24 | 74 |
impactRadius | 0 | 2.75 |
aimAssistDegrees | 45 | 0 |
O cone de deteção predefinido da varinha estende-se 45 graus para cada lado da direção em frente. aimAssistDegrees aceita valores de 0 a 180. O raio pode ser zero; a velocidade e o alcance devem ser números finitos positivos, e a duração em ticks deve ser um inteiro positivo.
| Ataque | basePower | reloadTicks |
|---|---|---|
WAND_MISSILE | 0.672 | 11 |
STAFF_MELEE | 0.45 | 12 |
STAFF_FIREBALL | 1.25 | 40 |
A secção opcional weapon.attacks deve conter exatamente as chaves de ataque do tipo de arma, com ambos os campos em cada ataque:
weapon:
type: STAFF
attacks:
STAFF_MELEE:
basePower: 0.45
reloadTicks: 12
STAFF_FIREBALL:
basePower: 1.25
reloadTicks: 40
Os campos desconhecidos e os valores inválidos são rejeitados. basePower é um fator de dano interpretado pelo processador de combate; não garante essa quantidade de dano em pontos de vida.
Encantamentos mágicos
| ID | Finalidade |
|---|---|
freeminecraftmodels:multicast | Projéteis adicionais, com ajuste do dano de cada projétil |
freeminecraftmodels:blast_radius | Modificador do raio de impacto da bola de fogo do cajado |
freeminecraftmodels:ignition | Incendeia os alvos sobreviventes à bola de fogo de um cajado |
Os respetivos ficheiros YAML e Lua ficam em plugins/FreeMinecraftModels/enchantments/. O catálogo incluído também contém efeitos para itens de conteúdo personalizado. Instalar a definição de um efeito não entrega o item correspondente aos jogadores nem instala o pacote de modelos.
Os conjuntos de itens que o lançador veste também funcionam com varinhas e cajados enquanto todas as peças estão vestidas. Os modificadores de lançamento de um conjunto contam uma vez por lançamento. Quando um golpe mágico acerta, o hook on_attack_entity do conjunto é executado num golpe de cajado e o seu hook on_projectile_hit num disparo de varinha ou numa bola de fogo.
Integração com EliteMobs
Quando instalado, o EliteMobs gere a escala de combate de elites e a atribuição de habilidades. O FMM gere a identidade da arma, os controlos, o trajeto do projétil e o pedido de impacto. O EliteMobs pode recusar um lançamento ou impacto se a arma ou o estado de combate forem inválidos.
O [Alpha] Advanced Combat System usa cajados e varinhas do FMM para a classe Spellcaster. As habilidades de classe e os ataques de armas mágicas têm controlos separados. Consumir uma seleção de habilidade com a tecla F não deve também disparar a arma na mão.
Para distribuir o pacote, regenere a saída do FMM e deixe o ResourcePackManager combiná-la e servi-la. O registo de uma arma não confirma, por si só, que o cliente descarregou o respetivo modelo.