Diferencia entre revisiones de «Custom Races/pt»

De DragonMineZ Wiki
FuzzyBot (discusión | contribs.)
Updating to match new version of source page
Shokkoh (discusión | contribs.)
Translation sync from dragonminez-wiki repository
 
Línea 68: Línea 68:
| <code>customModel</code> || Texto || Chave do modelo. Vazia significa que a raça tem a aparência de um Humano. Uma chave embutida (por exemplo, <code>namekian</code>, <code>majin</code> ou <code>frostdemon</code>) reutiliza esse modelo e suas texturas; qualquer outra chave carrega seu próprio modelo. As chaves embutidas estão listadas em [[Special:MyLanguage/Custom Models and Assets#Built-in model keys|Modelos e recursos próprios]].
| <code>customModel</code> || Texto || Chave do modelo. Vazia significa que a raça tem a aparência de um Humano. Uma chave embutida (por exemplo, <code>namekian</code>, <code>majin</code> ou <code>frostdemon</code>) reutiliza esse modelo e suas texturas; qualquer outra chave carrega seu próprio modelo. As chaves embutidas estão listadas em [[Special:MyLanguage/Custom Models and Assets#Built-in model keys|Modelos e recursos próprios]].
|-
|-
| <code>isLayered</code> || Booleano || <span class="mw-translate-fuzzy"><code>true</code>: o corpo é desenhado com três camadas de textura tingíveis (cores de corpo 1, 2 e 3) e a raça usa suas próprias texturas de rosto. <code>false</code>: uma única textura de corpo simples e rostos emprestados do Humano.</span>
| <code>isLayered</code> || Booleano || <code>true</code>: o corpo é desenhado com três camadas de textura tingíveis (cores de corpo 1, 2 e 3) e a raça usa suas próprias texturas de rosto. <code>false</code>: uma única textura de corpo simples e rostos emprestados do Humano. Qualquer textura de corpo pode ter ao lado uma máscara opcional <code><texture>_shadow.png</code> (por exemplo, <code>..._layer1_shadow.png</code> junto de <code>..._layer1.png</code>): ela é desenhada em um tom de sombra da cor de corpo dessa textura (o mesmo matiz, com a saturação ajustada), assim o sombreamento acompanha as cores que o jogador escolhe.
|-
|-
| <code>headBones</code> || Lista de textos || Nomes de ossos que o jogador pode escolher na personalização do personagem (um por vez, mais uma opção "nenhum"), por exemplo orelhas, chifres ou antenas. Junte ossos com <code>+</code> para mostrar vários ao mesmo tempo (<code>"ears1+horns2"</code>). A entrada especial <code>"hair"</code> ativa o editor de cabelo para a raça. Os ossos são procurados primeiro em <code>geo/entity/raceparts.geo.json</code> e depois no modelo da raça.
| <code>headBones</code> || Lista de textos || Nomes de ossos que o jogador pode escolher na personalização do personagem (um por vez, mais uma opção "nenhum"), por exemplo orelhas, chifres ou antenas. Junte ossos com <code>+</code> para mostrar vários ao mesmo tempo (<code>"ears1+horns2"</code>). A entrada especial <code>"hair"</code> ativa o editor de cabelo para a raça. Os ossos são procurados primeiro em <code>geo/entity/raceparts.geo.json</code> e depois no modelo da raça.
Línea 74: Línea 74:
| <code>racialSkill</code> || Texto || Qual habilidade racial a raça usa: <code>human</code>, <code>saiyan</code>, <code>namekian</code>, <code>frostdemon</code>, <code>bioandroid</code>, <code>majin</code> ou <code>glind</code>. Uma raça personalizada usa o mesmo ajuste da raça de onde a pega emprestada (<code>general-server.json</code> → <code>racialSkills.<skill></code>). Veja [[Special:MyLanguage/Racial Skills|Habilidades raciais]].
| <code>racialSkill</code> || Texto || Qual habilidade racial a raça usa: <code>human</code>, <code>saiyan</code>, <code>namekian</code>, <code>frostdemon</code>, <code>bioandroid</code>, <code>majin</code> ou <code>glind</code>. Uma raça personalizada usa o mesmo ajuste da raça de onde a pega emprestada (<code>general-server.json</code> → <code>racialSkills.<skill></code>). Veja [[Special:MyLanguage/Racial Skills|Habilidades raciais]].
|-
|-
| <code>hasSaiyanTail</code> || Booleano || <span class="mw-translate-fuzzy">Dá à raça uma cauda Saiyajin.</span>
| <code>hasSaiyanTail</code> || Booleano || Dá à raça uma cauda Saiyajin. Ao escondê-la ou mostrá-la, toca a mesma animação dos Saiyajins, que enrola a cauda na cintura.
|-
|-
| <code>auraType</code> || Texto || Conjunto de sprites da aura 2D: <code>kakarot</code> ou <code>god</code>.
| <code>auraType</code> || Texto || Conjunto de sprites da aura 2D: <code>kakarot</code> ou <code>god</code>.
Línea 97: Línea 97:
Origem do esquema: <code>src/main/java/com/dragonminez/common/config/RaceCharacterConfig.java</code>.
Origem do esquema: <code>src/main/java/com/dragonminez/common/config/RaceCharacterConfig.java</code>.


{{Note|type=info|title=<span lang="en" dir="ltr" class="mw-content-ltr">Resource packs</span>|text=<span lang="en" dir="ltr" class="mw-content-ltr">In 2.2 the built-in <code>humansaiyan</code> body shading textures were renamed from <code>bodytype_*_layer2.png</code> to <code>bodytype_*_layer1_shadow.png</code> (in <code>textures/entity/races/humansaiyan/</code>). A resource pack that replaced the old files must rename them.</span>}}
{{Note|type=info|title=Pacotes de recursos|text=Na 2.2, as texturas de sombreamento de corpo <code>humansaiyan</code> incluídas no mod mudaram de nome: de <code>bodytype_*_layer2.png</code> para <code>bodytype_*_layer1_shadow.png</code> (em <code>textures/entity/races/humansaiyan/</code>). Um pacote de recursos que substituía os arquivos antigos precisa renomeá-los.}}


<span id="Form_skill_prices"></span>
<span id="Form_skill_prices"></span>

Revisión actual - 01:15 22 oct 2026

As raças personalizadas são raças jogáveis que você adiciona ao DragonMineZ apenas com arquivos de configuração. Não é preciso código Java nem um jar de addon: uma pasta com alguns arquivos JSON define a aparência da raça, suas classes, sua habilidade racial e suas transformações, e a raça passa a aparecer na criação de personagem.

Como o DragonMineZ encontra as raças

O DragonMineZ carrega primeiro suas raças embutidas (human, saiyan, namekian, frostdemon, bioandroid, majin, glind) e depois examina as subpastas de config/dragonminez/races/. Qualquer outro nome de pasta ali é tratado como a chave de uma raça personalizada (use minúsculas). Cada pasta de raça contém:

config/dragonminez/races/<race_key>/
  character.json      # appearance, model, racial skill, form skill prices
  stats.json          # per-class base stats and scaling
  forms/*.json        # the race's transformation groups

Se você criar uma pasta vazia, o DragonMineZ gera um character.json e um stats.json com valores neutros na próxima vez que a configuração for carregada. Ele não gera nenhuma forma para uma raça personalizada: você mesmo as adiciona (veja o passo 3).

Um bom ponto de partida é copiar a pasta de uma raça existente (por exemplo, races/saiyan/), renomeá-la e ajustar os valores dentro dela.

Código-fonte: src/main/java/com/dragonminez/common/config/ConfigManager.java (loadAllRaces, createOrLoadRace).

Versão da configuração Todo arquivo traz um texto "configVersion" (atualmente "2.2.0"). Um arquivo personalizado com uma versão anterior 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 nunca é sobrescrito: ele é relatado e ignorado até você corrigi-lo. Veja Como usar JSON e Recarregar e atualizar mudanças.

Passo 1: configure o personagem

character.json define a aparência, o modelo, a habilidade racial e os preços das habilidades de forma da raça:

{
  "configVersion": "2.2.0",
  "hasGender": false,
  "useVanillaSkin": false,
  "customModel": "saibaman",
  "isLayered": true,
  "headBones": ["ears1"],
  "racialSkill": "namekian",
  "hasSaiyanTail": false,
  "auraType": "kakarot",
  "auraType3D": "userPreference",
  "defaultModelScaling": [0.9375, 0.9375, 0.9375],
  "defaultBodyType": 0,
  "slimBodyTypes": [],
  "defaultHairType": 0,
  "defaultEyesType": 0,
  "defaultNoseType": 0,
  "defaultMouthType": 0,
  "defaultTattooType": 0,
  "defaultBodyColor": "#3E8E2E",
  "defaultBodyColor2": "#2A5C20",
  "defaultBodyColor3": "#9BD36A",
  "defaultHairColor": "#222629",
  "defaultEye1Color": "#B40000",
  "defaultEye2Color": "#B40000",
  "defaultAuraColor": "#7FFF00",
  "formSkillsCosts": {
    "superforms": { "buyFromMaster": false, "prices": [20000, 45000, 80000] },
    "godforms": { "buyFromMaster": false, "prices": [] },
    "legendaryforms": { "buyFromMaster": false, "prices": [] }
  }
}
Campo Tipo O que faz
hasGender Booleano true dá à raça a escolha entre masculino/feminino. Modelos e texturas personalizados passam a usar os sufixos _male / _female (veja Modelos e recursos próprios).
useVanillaSkin Booleano Com true, o tipo corporal 0 mostra a própria skin de Minecraft do jogador; as texturas de corpo da raça começam no tipo corporal 1.
customModel Texto Chave do modelo. Vazia significa que a raça tem a aparência de um Humano. Uma chave embutida (por exemplo, namekian, majin ou frostdemon) reutiliza esse modelo e suas texturas; qualquer outra chave carrega seu próprio modelo. As chaves embutidas estão listadas em Modelos e recursos próprios.
isLayered Booleano true: o corpo é desenhado com três camadas de textura tingíveis (cores de corpo 1, 2 e 3) e a raça usa suas próprias texturas de rosto. false: uma única textura de corpo simples e rostos emprestados do Humano. Qualquer textura de corpo pode ter ao lado uma máscara opcional <texture>_shadow.png (por exemplo, ..._layer1_shadow.png junto de ..._layer1.png): ela é desenhada em um tom de sombra da cor de corpo dessa textura (o mesmo matiz, com a saturação ajustada), assim o sombreamento acompanha as cores que o jogador escolhe.
headBones Lista de textos Nomes de ossos que o jogador pode escolher na personalização do personagem (um por vez, mais uma opção "nenhum"), por exemplo orelhas, chifres ou antenas. Junte ossos com + para mostrar vários ao mesmo tempo ("ears1+horns2"). A entrada especial "hair" ativa o editor de cabelo para a raça. Os ossos são procurados primeiro em geo/entity/raceparts.geo.json e depois no modelo da raça.
racialSkill Texto Qual habilidade racial a raça usa: human, saiyan, namekian, frostdemon, bioandroid, majin ou glind. Uma raça personalizada usa o mesmo ajuste da raça de onde a pega emprestada (general-server.json → racialSkills.<skill>). Veja Habilidades raciais.
hasSaiyanTail Booleano Dá à raça uma cauda Saiyajin. Ao escondê-la ou mostrá-la, toca a mesma animação dos Saiyajins, que enrola a cauda na cintura.
auraType Texto Conjunto de sprites da aura 2D: kakarot ou god.
auraType3D Texto Estilo da aura 3D da forma base: smooth, sparking, god ou userPreference (segue a configuração de cada jogador).
aura3DStyle Objeto Ajuste fino do formato da aura 3D base. As chaves estão listadas em Formas personalizadas.
defaultModelScaling [x, y, z] Tamanho base do modelo.
defaultBodyType Inteiro Tipo corporal selecionado por padrão na criação de personagem.
slimBodyTypes Lista de inteiros Tipos corporais (além do 0) que usam braços finos. O tipo corporal 0 sempre segue o modelo de skin do jogador.
defaultHairType, defaultEyesType, defaultNoseType, defaultMouthType, defaultTattooType Inteiro Índices de personalização padrão.
defaultBodyColor, defaultBodyColor2, defaultBodyColor3, defaultHairColor, defaultEye1Color, defaultEye2Color, defaultAuraColor Texto hexadecimal Cores padrão na criação de personagem.
formSkillsCosts Objeto Uma entrada para cada habilidade de forma que a raça pode evoluir (veja abaixo).

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

Pacotes de recursos Na 2.2, as texturas de sombreamento de corpo humansaiyan incluídas no mod mudaram de nome: de bodytype_*_layer2.png para bodytype_*_layer1_shadow.png (em textures/entity/races/humansaiyan/). Um pacote de recursos que substituía os arquivos antigos precisa renomeá-los.

Preços das habilidades de forma

Cada chave de formSkillsCosts é uma habilidade de forma: superforms, legendaryforms, godforms ou androidforms. O valor é um array simples de preços ou um objeto com estes campos:

Campo Tipo O que faz
prices Lista de números Preço em TP de cada nível, em ordem. O número de entradas é o nível máximo da habilidade, então uma lista vazia significa que a raça não pode evoluir essa habilidade.
buyFromMaster Booleano true: o primeiro nível precisa ser comprado de um mestre antes que a habilidade possa ser evoluída pelo menu de Habilidades.

Uma forma é desbloqueada quando esta habilidade atinge o unlockOnSkillLevel da forma (veja o passo 3).

Upgrade androide para raças personalizadas

O upgrade androide do Dr. Gero é oferecido a qualquer raça cujo formSkillsCosts tenha pelo menos um preço em androidforms (por padrão, apenas os Humanos). O upgrade coloca o jogador na forma androidbase do grupo androidforms, então a raça também precisa de um grupo de formas androidforms na pasta forms/. O jeito mais fácil é copiar races/human/forms/androidforms.json para a pasta forms/ da sua raça. Veja Android para o upgrade em si.

Passo 2: configure as classes

stats.json contém um objeto classes com um bloco por classe. O DragonMineZ gera as oito classes padrão: warrior, spiritualist, martialartist, berserker, paladin, tank, cleric e unversed (veja Classes). Você pode adicionar sua própria classe duplicando um bloco com uma chave nova; ela aparece na criação de personagem dessa raça. Um jogador cuja classe não está no arquivo da raça usa os valores de warrior.

Dentro de cada bloco de classe:

Campo Tipo O que faz
baseStats Objeto Estatísticas iniciais: STR, SKP, RES, VIT, PWR, ENE.
statScaling Objeto STR_scaling, SKP_scaling, STM_scaling, DEF_scaling, VIT_scaling, PWR_scaling, ENE_scaling. Os opcionais VIT_scaling_max e DEF_scaling_max fazem o escalonamento crescer do valor normal até esse máximo conforme a estatística sobe (até o ponto de inflexão da curva definido no general-server.json); omita-os para um escalonamento fixo.
baseHp5, hp5VitScaling Número Vida regenerada a cada 5 segundos, mais uma parte da VIT.
baseEp5, ep5EneScaling Número Ki regenerado a cada 5 segundos, mais uma parte da ENE.
baseSp5, sp5StmScaling, sp5ResScaling Número Estâmina regenerada a cada 5 segundos, mais uma parte da VIT (sp5StmScaling, apesar do nome) e uma parte da RES (sp5ResScaling, 0 quando ausente).
tpCostMultiplier, tpGainMultiplier Número Multiplicadores da classe inteira sobre os custos e os ganhos de TP.
passive Objeto enabled mais um mapa values com o ajuste da passiva da classe (as chaves dependem da classe).

Origem do esquema: src/main/java/com/dragonminez/common/config/RaceStatsConfig.java. Veja Estatísticas e atributos para saber o que cada estatística faz.

Passo 3: adicione grupos de formas

Artigo principal: Formas personalizadas

Cada arquivo em races/<race_key>/forms/ define um grupo de formas. As formas de raça usam exatamente o mesmo esquema das formas acumuláveis, então a referência completa dos campos está em Formas personalizadas. Os campos mais importantes para um grupo de raça são:

  • groupName: a chave do grupo (em minúsculas). Os grupos são identificados por este valor, não pelo nome do arquivo.
  • formType: a habilidade de forma que desbloqueia o grupo: superforms, legendaryforms, godforms ou androidforms. A raça precisa de preços para essa habilidade em formSkillsCosts.
  • forms: as formas do grupo, em ordem de transformação. O unlockOnSkillLevel de cada forma é o nível de habilidade que a desbloqueia.
  • customModel: uma chave de modelo para a forma (procurada do mesmo jeito que o customModel da raça).

Arquivos cujo nome começa com old_ são ignorados. Veja Transformações para saber como as formas funcionam no jogo.

Passo 4: adicione chaves de tradução

Os nomes de raças e formas são traduzidos com estas chaves:

  • race.dragonminez.<race_key>: o nome da raça.
  • race.dragonminez.<race_key>.desc: uma descrição curta mostrada na criação de personagem.
  • race.dragonminez.<race_key>.group.<group_key>: o nome de um grupo de formas.
  • race.dragonminez.<race_key>.form.<group_key>.<form_key>: o nome de uma forma.

O arquivo de idioma padrão é src/main/resources/assets/dragonminez/lang/en_us.json. Fique à vontade para editar seu en_us.json ou criar um novo arquivo de idioma para sua raça personalizada. Você não precisa adicionar chaves de tradução para mais nada: o DragonMineZ combina automaticamente as traduções já feitas no Crowdin com as suas.

Passo 5: recarregue e valide

  1. Salve seus arquivos JSON.
  2. Execute /dmzreload config (veja Recarregar e atualizar mudanças).
  3. Abra a criação de personagem e confira se sua raça aparece.
  4. Verifique as formas, as cores e o escalonamento no jogo.