Custom Forms/pt: Difference between revisions

From DragonMineZ Wiki
Shokkoh (talk | contribs)
Translation sync from dragonminez-wiki repository
 
FuzzyBot (talk | contribs)
Updating to match new version of source page
Line 127: Line 127:
| <code>tintColor</code>, <code>tintIntensity</code> || Hex / Decimal || <code>#FF0000</code>, <code>0.0</code> || Tonalidade de cor sobre o jogador enquanto está transformado. <code>0</code> significa sem tonalidade.
| <code>tintColor</code>, <code>tintIntensity</code> || Hex / Decimal || <code>#FF0000</code>, <code>0.0</code> || Tonalidade de cor sobre o jogador enquanto está transformado. <code>0</code> significa sem tonalidade.
|-
|-
| <code>outlineShader</code> || Objeto || — || <code>enabled</code> (<code>false</code>), <code>primaryColor</code> (<code>#7FFFFF</code>), <code>secondaryColor</code>, <code>outlineThickness</code> (<code>1.5</code>).
| <code>outlineShader</code> || Objeto || — || <span class="mw-translate-fuzzy"><code>enabled</code> (<code>false</code>), <code>primaryColor</code> (<code>#7FFFFF</code>), <code>secondaryColor</code>, <code>outlineThickness</code> (<code>1.5</code>).</span>
|}
|}



Revision as of 01:06, 22 October 2026

As formas personalizadas são transformações que você adiciona ou altera com arquivos JSON. As formas podem ficar em dois lugares; ambos usam exatamente o mesmo esquema JSON e a mesma classe Java (FormConfig.java), e só a pasta em que estão muda o que elas significam:

Localização O que é
config/dragonminez/races/<race>/forms/*.json As formas de raça pertencem a uma única raça (por exemplo, o Super Saiyajin só existe para os Saiyajins). Veja Raças personalizadas.
config/dragonminez/forms/*.json As formas acumuláveis são compartilhadas por todas as raças e feitas para se somar por cima da forma de raça que já estiver ativa.

Esta página trata do segundo tipo, as formas acumuláveis, mas a referência de campos abaixo também vale para as formas de raça.

Carregador: ConfigManager.createOrLoadStackForms() lê todos os arquivos de config/dragonminez/forms/ (ConfigLoader.loadStackForms). Arquivos cujo nome começa com old_ são ignorados.

O que é uma forma acumulável

Artigo principal: Transformações

Uma forma acumulável não substitui sua transformação atual: ela soma seus multiplicadores por cima dela. O exemplo mais claro é o Kaioken: um Saiyajin pode estar na forma base ou em Super Saiyajin e também estar em Kaioken x2 ao mesmo tempo, multiplicando a forma em que já estiver. Os grupos de formas acumuláveis incluídos são kaioken (x2, x3, x4, x10, x20) e ultimate (StackForms.java).

Um grupo acumulável é desbloqueado pela habilidade acumulável indicada no seu formType: kaioken ou ultimate. Uma forma do grupo fica disponível quando essa habilidade atinge o unlockOnSkillLevel da forma.

Estrutura do arquivo

Há um arquivo por grupo, por exemplo config/dragonminez/forms/kaioken.json (resumido):

{
  "configVersion": "2.2.0",
  "groupName": "kaioken",
  "formType": "kaioken",
  "forms": {
    "x2": {
      "name": "x2",
      "unlockOnSkillLevel": 1,
      "keepBaseFormHeadBones": true,
      "strMultiplier": 1.1,
      "skpMultiplier": 1.1,
      "defMultiplier": 1.125,
      "pwrMultiplier": 1.1,
      "speedMultiplier": 1.1,
      "healthDrain": 0.03,
      "attackSpeed": 1.1,
      "tintColor": "#FF0000",
      "tintIntensity": 0.1,
      "auraColor": "#DB182C",
      "auraLayer": 1,
      "formStackable": true,
      "stackDrainMultiplier": 1.0,
      "incompatibleWith": ["ultimate.ultimate"],
      "shareMasteryWith": ["kaioken.x3"],
      "shareMasteryMultiplier": 0.25
    }
  }
}

groupName é a chave do grupo (em minúsculas); os grupos são identificados por ela, não pelo nome do arquivo. Tudo o que está aninhado dentro de forms é uma entrada de forma, identificada pelo seu próprio name. Qualquer campo que você omitir recebe o valor padrão mostrado abaixo.

Versão da configuração Use "configVersion": "2.2.0". Um arquivo de forma personalizada com versão mais antiga ou sem versão ganha um backup em config/dragonminez/oldBackup/ e é salvo de novo com a versão atual; seus valores são mantidos. Um arquivo com sintaxe JSON quebrada é ignorado e reportado até você corrigi-lo.

Referência de campos

Origem do esquema: src/main/java/com/dragonminez/common/config/FormConfig.java.

Desbloqueio e requisitos

Configurado em: Configuração do servidorgameplay
Campo Tipo Padrão O que faz
name Texto "" Chave da forma dentro do grupo (por exemplo x2, x3 ou ultimate).
unlockOnSkillLevel Inteiro 0 Nível da habilidade de forma do grupo que desbloqueia esta forma.
formRequisite Texto "" Outras formas que precisam ser dominadas primeiro, como "group.form". Separe várias com vírgulas.
formRequisiteType Texto all all: todas as formas listadas precisam do domínio. any: basta uma.
unlockOnMastery Decimal 0.0 Domínio que as formas de formRequisite precisam ter. 0 desativa o requisito.
levelRequisite Inteiro 0 Nível de jogador necessário. Até alcançá-lo, a habilidade de forma não pode subir de nível até esta forma. Ativado por levelFormRequisiteEnabled em general-server.json → gameplay.
sagaRequisite Texto "" Missão de saga que precisa ser concluída primeiro, como "sagaId:questId" (por exemplo "frieza_saga:10"). Até concluí-la, a habilidade de forma não pode subir de nível até esta forma. É ignorado se o modo história estiver desativado ou se a missão não existir. Ativado por sagaFormRequisiteEnabled em general-server.json → gameplay.

Aparência

Campo Tipo Padrão O que faz
customModel Texto "" Chave de modelo da forma. É procurada como um modelo de raça: chaves incluídas ou seu próprio geo/entity/races/<key>.geo.json (veja Modelos e recursos próprios). O modelo de uma forma acumulável tem prioridade sobre o da forma de raça.
keepBaseFormHeadBones Booleano false Mantém visível nesta forma o osso de cabeça escolhido pelo jogador (orelhas, chifres etc.).
hideTail Booleano false Esconde a cauda Saiyajin enquanto estiver nesta forma.
transformationAnimation Texto transf.generic Animação reproduzida enquanto você carrega esta forma. Valores incluídos: transf.generic, transf.ssj, transf.ssj3, transf.ssg2, transf.ozaru, transf.absorb, transf.berserker, transf.freezer, transf.freezer2, transf.janemba, transf.daima. Qualquer nome de animação dos arquivos de animação do jogador (assets/dragonminez/animations/entity/races/*.animation.json) funciona, então um pacote de recursos pode adicionar as suas. Vazio significa a animação genérica.
bodyColor1, bodyColor2, bodyColor3, hairColor, eye1Color, eye2Color Texto hex "" Cores que substituem as do jogador. Vazio mantém a cor do jogador. As cores vão se misturando durante a carga.
furUsesHairColor Booleano false Nos modelos SSJ4 (um customModel que contém ssj4gt ou ssj4d), colore os pelos do corpo com a cor do cabelo.
hairType Texto "" Qual dos penteados do jogador mostrar: base, ssj, ssj2, ssj3 ou ssj4.
forcedHairCode Texto "" Um código de cabelo (do editor de cabelo) forçado enquanto estiver nesta forma.
extraFormLayer, extraFormColor Texto / Hex "" Textura extra desenhada sobre o corpo, tingida com extraFormColor (branca se estiver vazio). Use um namespace:path completo ou um caminho dentro do namespace dragonminez, por exemplo textures/entity/races/my_overlay.png.
auraType Texto kakarot Conjunto de sprites da aura 2D: kakarot ou god.
auraType3D Texto userPreference Estilo da aura 3D: smooth, sparking, god ou userPreference (a configuração de cada jogador). Uma forma que indica god o mostra em qualquer raça; como preferência do jogador, é exclusivo dos Glind.
auraColor Texto hex "" Cor da aura. Vazio mantém a cor de aura do jogador.
auraLayer Inteiro 0 Camada da aura. Formas em camadas diferentes mostram auras separadas ao mesmo tempo (as formas Kaioken usam a camada 1).
aura3DStyle Objeto Veja abaixo Formato da aura 3D (veja Formato da aura 3D).
extraAuraType, extraAuraType3D, extraAuraColor, extraAuraLayer, extraAura3DStyle — kakarot, userPreference, #FFFFFF, -1, valores padrão Uma segunda aura. extraAuraLayer precisa ser de 1 a 6 para aparecer; -1 significa nenhuma.
hasLightnings, lightningColor Booleano / Hex false, "" Raios ao redor do jogador.
modelScaling Decimais [x, y, z] [0.9375, 0.9375, 0.9375] Fatores de escala do modelo.
tintColor, tintIntensity Hex / Decimal #FF0000, 0.0 Tonalidade de cor sobre o jogador enquanto está transformado. 0 significa sem tonalidade.
outlineShader Objeto — enabled (false), primaryColor (#7FFFFF), secondaryColor, outlineThickness (1.5).

Formato da aura 3D

Estas chaves ficam dentro de aura3DStyle e extraAura3DStyle (e dentro do aura3DStyle de uma raça em character.json). Todas as chaves são opcionais; uma chave ausente usa o valor padrão.

Chave Padrão O que faz
size [1.10, 1.17, 1.02] Largura, altura e profundidade da casca da aura.
flamePeaks 12 Número de línguas de fogo ao redor da casca (1–64). Só no estilo smooth.
waveFrequency, waveSpeed, waveAmplitude 2.0, 5.0, 0.75 Ondas das chamas. No estilo sparking, waveAmplitude é o alcance das pontas e waveSpeed é a velocidade das explosões.
noiseDetail, upwardBias 0.10, 0.54 Turbulência das chamas e com que força elas sobem.
coreAlpha, rimAlpha, rimPower, rimThreshold 0.05, 1.0, 4.0, 0.05 Opacidade do centro e da borda.
coreColor, rimColor, noiseColor "" Cores hex. Vazio significa que são derivadas da cor da aura.
secondBorderColor "" Cor hex de uma franja externa ao redor da borda. Só no estilo sparking; vazio significa sem franja.
bloomIntensity 1.0 Intensidade do brilho.
spikeDensity, spikeBurstRate, spikeRarity, bandStart 32, 3.0, 3.0, 0.50 Só no estilo sparking: colunas de pontas (4–32), frequência das explosões, quão raras são as pontas e onde começa a faixa do contorno.

Estatísticas e consumos

Campo Tipo Padrão O que faz
strMultiplier, skpMultiplier, stmMultiplier, defMultiplier, vitMultiplier, pwrMultiplier, eneMultiplier, speedMultiplier Decimal 1.0 Multiplicadores de estatísticas. RES usa a média de defMultiplier e stmMultiplier. Uma forma de raça e uma forma acumulável somam seus bônus, ou os multiplicam se multiplicationInsteadOfAdditionForMultipliers estiver ativado em general-server.json.
attackSpeed Decimal 1.0 Multiplicador de velocidade de ataque.
energyDrain, staminaDrain, healthDrain Decimal 0.0 Consumo enquanto estiver transformado (também usado para o custo de se transformar). Valores abaixo de 0 são tratados como 0.
staminaDrainMultiplier Decimal 1.0 Multiplicador da estâmina que cada ataque custa enquanto estiver transformado.
otherworldTimeDrain, otherworldTimeDrainMastered Decimal 1.0, 1.0 Com que rapidez esta forma consome o temporizador de revivência temporária da Vovó Uranai, com 0 de domínio e com domínio completo (interpolado entre os dois). Veja Outro Mundo.

Domínio

Campo Tipo Padrão O que faz
maxMastery Decimal 100.0 Domínio máximo (0 significa que não há progresso de domínio).
masteryPerHitDealt, masteryPerHitReceived Decimal 0.01 Domínio ganho por golpe.
passiveMasteryEveryFiveSeconds Decimal 0.001 Domínio passivo ganho a cada 5 segundos na forma.
maxStatsMultiplier Decimal 1.25 Com domínio completo, os multiplicadores de estatísticas acima de 1 são multiplicados por este valor (cresce de forma linear com o domínio).
maxCostMultiplier Decimal 0.5 Com domínio completo, os consumos da forma são multiplicados por este valor (escala de forma linear com o domínio).
stackOnMastery Decimal 0.0 Domínio que esta forma precisa antes de poder ser combinada com uma forma acumulável (ou, no caso de uma forma acumulável, com uma forma de raça).
instantTransformOnMastery Decimal 40.0 Domínio que esta forma precisa para a transformação instantânea (sem carga, custa ki).
allowFreeTransformOnMastery Decimal 50.0 Domínio que esta forma precisa antes que você possa se transformar diretamente nela em vez de passar pelo grupo em ordem. A primeira forma desbloqueada do grupo nunca precisa dele.
shareMasteryWith, shareMasteryMultiplier Lista / Decimal [], 1.0 Sempre que esta forma ganha domínio, cada forma listada ("group.form") ganha essa quantidade × shareMasteryMultiplier. As formas Kaioken padrão compartilham 25% com a seguinte.

Comportamento de acúmulo

Campo Tipo Padrão O que faz
formStackable Booleano true Tanto a forma de raça quanto a forma acumulável precisam permitir o acúmulo.
stackDrainMultiplier Decimal 2.0 Enquanto uma forma de raça e uma forma acumulável estão combinadas, os consumos das duas formas são multiplicados pelo stackDrainMultiplier das duas formas.
incompatibleWith Lista de "group.form" ["ultimate.ultimate"] Formas que não podem estar ativas ao mesmo tempo que esta (verificado nos dois sentidos). Em uma forma de raça, listar ultimate.ultimate também impede que a forma Ultimate a copie como sua melhor forma; as formas do próprio DragonMineZ só a listam no nível mais alto de cada raça.
formCombo Texto "" Id de atributos de arma usado nos combos corpo a corpo nesta forma, por exemplo dragonminez:giant para as formas gigantes. Um nome sem namespace é procurado em dragonminez: e depois em minecraft:. Veja Atributos de armas.

Custos e efeitos

Campo Tipo O que faz
triggerItemCosts Lista de { itemId ou itemTag, nbt, count, consume } Itens necessários para se transformar. As entradas são alternativas: é usada a primeira que o jogador puder pagar. count vale 1 por padrão e consume, true. itemTag é um id de tag sem #. Jogadores no modo criativo ignoram isso.
durationItemCosts Lista de { itemId ou itemTag, nbt, durationSeconds } Itens que mantêm a forma ativa: cada item compra durationSeconds (padrão 1) de tempo de forma. Quando não sobra nenhum, a forma termina.
mobEffects Lista de { effectId, amplifier, durationTicks, ambient, visible, showIcon } Efeitos de poção aplicados enquanto estiver transformado. durationTicks -1 (o padrão) significa enquanto a forma durar.

Chaves de tradução

Os grupos de formas acumuláveis e suas formas são nomeados com estas chaves:

race.dragonminez.stack.group.<groupName>       # e.g. "race.dragonminez.stack.group.kaioken" -> "Kaioken"
race.dragonminez.stack.form.<groupName>.<name>  # e.g. "race.dragonminez.stack.form.kaioken.x2" -> "x2"

Adicione-as ao seu en_us.json ou ao seu próprio arquivo de idioma. As traduções personalizadas se combinam com as do Crowdin do mesmo jeito que nas raças personalizadas.

Recarregar e validar

  1. Salve seu arquivo em config/dragonminez/forms/.
  2. Valide a sintaxe JSON (veja Como usar JSON).
  3. Execute /dmzreload config (veja Recarregar e atualizar mudanças).
  4. Transforme-se no jogo e confira se as estatísticas, os consumos, a aparência e o acúmulo funcionam como esperado.