[TUTORIAL] Creación Razas Custom 3.3.5a TC PARTE 2/4 (DBCs)

Tuerny

Aprendiz de Desarrollo
Guardian
Desde
31 Oct 2020
Mensajes
322
Reacciones
419
Honor
82
En esta segunda parte vamos a ver qué dbcs necesitamos modificar necesariamente para hacer elegibles a nuestras razas.

¿De dónde saco los DBCs?

Para conseguir los dbcs correctos para nuestro server hemos de acudir a nuestro cliente y a sus parches oficiales. Siempre buscaremos los dbcs en los parches de mayor expansión a los de menor. Es decir, si tengo "patch-3.MPQ" y "patch-2.MPQ", extraigo del mayor (patch-3.MPQ) y, si en ese parche no lo encontráis vais bajando: patch-2.MPQ ... patch.MPQ ...

Deciros que los encontraréis casi todos entre los parches "patch-esES-3" y "patch-esES-2" (mi cliente es español)

Bien, ahora os nombraré los dbcs que deberéis extraer antes de empezar:

ChrRaces.dbc
CharBaseInfo.dbc
CharStartOutfit.dbc
SkillLineAbility.dbc
SkillRaceClassInfo.dbc
CreatureModelData.dbc
CreatureDisplayInfo.dbc
CreatureDisplayInfoExtra.dbc
CharSections.dbc
CharacterFacialHairStyles.dbc
CharHairGeosets.dbc


Os voy a ir explicando lo que hay que ir haciendo en cada dbc para que lo entendáis mejor:

ChrRaces.dbc

En esta dbc se define a las razas como jugables, el ID que le asignamos en el precompilado, la facción, el display, etc... para entenderla mejor aun visitad ChrRaces.dbc
Cogeremos las líneas del Goblin y del Fel_Orc y las modificaremos así:

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Y añadiremos las razas custom que declaramos en la parte 1 del tutorial:

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

CharBaseInfo.dbc

Esta dbc se encarga de relacionar ID de raza con ID de clase. Con lo cual deberemos añadir las razas custom (en este caso sólo haremos el warrior) y asignarles una clase. Así que hacemos lo siguiente, añadimos esto:

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

CharStartOutfit.dbc

Aquí es donde vamos a declarar los items que van a usar nuestras razas custom cuando las creemos. Lo que tenemos que hacer es añadir las siguientes líneas (recordad que es para warrior): (Más info de la tabla CharStartOutfit.dbc

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

SkillLineAbility.dbc

Esta dbc es la encargada de asignar las skills a los personajes. Por ejemplo, para hacer que hablen idioma común, orco etc. Y eso es lo que vamos a hacer con nuestras nuevas razas, ya que sin esto no podréis hablar.
Vamos a asignarle la Skill, 98 que es el idioma común, al Worgen. Vamos a necesitar un conversor de binario a decimal y viceversa. Yo utilizo esta web
Buscamos la skill 98 (las ids de las skills son las de la segunda columna) y veremos esto:

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Si pasamos el 1101 (que es a qué razas se les permite usarlas) a binario con el conversor obtendremos 10001001101. Qué significa esto. Coged como referencia 1=ON, 0=OFF. Y el orden en el que hemos declarado las razas en la parte 1 del tutorial segun sus IDs. Oséase:
WORGEN | DRAENEI | BLOODELF | GOBLIN | TROLL | GNOME | TAUREN | UNDEAD_PLAYER | NIGHTELF | DWARF | ORC | HUMAN

Así que si activamos el lenguaje común para las razas de la alianza incluidos los worgen con ID 12 haremos lo siguiente:
1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1

El número binario que obtenemos es 110001001101
Ahora lo pasamos a decimal con el conversor y nos daría 3149

Con lo cual cambiamos la cuarta columna de la skill 98 de la siguiente manera:

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Esto también os vale para el tema de asignar skills de mallas, hachas de 2 manos, etc. Sólo buscad el id del skill en wowhead y modificarlo como os he dicho arriba para permitirlas en las razas que queráis.

SkillRaceClassInfo.dbc

En esta tabla se asigna la información a la skill para las razas y clases que se quiera. Yo sólo voy a tocar la tercera columna que es la relativa a las razas, al igual que en la anterior dbc. La cuarta columna es la relativa a las clases, pero lo dejaré por defecto.

Buscamos la siguiente línea de la skill 98:

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Y para cambiarlo necesitamos hacer lo mismo de antes de convertir a binario y luego a decimal. Pero ya sabemos el valor, acordaros que nos dio 3149, por tanto lo cambiamos de la siguiente manera:

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Hacemos lo mismo con esta otra línea para los Goblin, buscamos:

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Y le cambiamos el valor de las razas (tercera columna):

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Con esto vuestro pjs ya podrán hablar correctamente. Al igual que cuando cambiamos valores en "SkillRaceAbility.dbc" deberemos cambiarlos también en esta dbc.

Cuando tengáis varias líneas en una skill como habréis comprobado con la 98 y con la 109 mirad la quinta columna, el valor 0x80 significa disponible para aprender.

Podéis entender mejor esta dbc en este enlace SkillRaceClassInfo.dbc

CreatureModelData.dbc

En esta dbc vamos a asignar el archivo .mdx de nuestra raza tanto al macho como a la hembra en las razas que estemos implementando. Lo hacemos de la siguiente manera añadiendo líneas nuevas:

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Para saber qué es cada columna visitad CreatureModelData.dbc

CreatureDisplayInfo.dbc

En esta dbc vamos a asignar un DisplayID a nuestro modelo de razas custom. Para ello pondremos lo siguiente:

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

A groso modo esto viene a decir que creamos la DisplayID 40029 para la CreatureModelData 5005 (WorgenMale) y con el CreatureDisplayInfoExtra 25017 que veremos ahora. Hacemos eso para cada uno de los displays que queramos declarar, por eso hay 4 líneas, que equivalen al Worgen Macho, al Worgen Hembra, al Goblin Macho y al Goblin Hembra.

Más info de la tabla en CreatureDisplayInfo.dbc

CreatureDisplayInfoExtra.dbc

En esta dbc vamos a asignar skines y demás extras que tengamos de la raza. Para este ejemplo pondremos lo siguiente en unas líneas nuevas:

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

CharSections.dbc

En esta dbc se establecen las rutas a los archivos blp que tenemos de las razas custom. Es muy fácil, sólo tenéis que coger las líneas de un pj como por ejemplo el Tauren, que es el que va relacionado con la colocación de skines mas parecido al Worgen. Las pegamos en un editor de texto como notepad. Y vamos renombrando las líneas con valores altos de ID y con la ruta al blp que queremos declarar.

Aquí os dejo en un txt las líneas que tenéis que añadir a la dbc DESCARGA

CharacterFacialHairStyles.dbc

Aquí asignaremos los valores de las barbas y vellos faciales que tengamos de las razas. En este caso lo primero sería cambiar los valores que ya vienen de los GoblinOld que acordaros que por defecto era el ID=9, por el valor ID=23 que es el que le dimos antes y, el de los Fel_Orcs que por defecto es el 12 y lo cambiamos por 24. Una vez hecho esto añadimos las siguientes líneas:

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Más info de esta dbc en CharacterFacialHairStyles.dbc

CharHairGeosets.dbc

Aquí estableceremos los geosets de nuestras razas custom. Como hicimos anteriormente, primero sustituiremos de la segunda columna todos los valores 9 por 23 y, los valores 12 por 24. Después añadiremos las siguientes líneas:

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Con esto ya tendremos completadas nuestras dbcs para las razas custom que queremos abrir.

Para descargar los BLPs que os he comentado podéis decargarlo de aquí: DESCARGA BLPs
En ellos podréis encontrar los blps necesarios para Goblin macho y hembra y para worgen macho y hembra.

Por último metemos todas las dbcs modificadas en un parche (para eso hay guías en el foro) y las copiamos después también a la carpeta "dbc" de nuestro release.

Si os pensáis que hemos acabado... os diré que no, aun nos queda configurar la base de datos por SQL y, eso lo explicaré en la parte 3.

Tutorial Parte 1 (Core)
Tutorial Parte 3 (SQL)
Tutorial Parte 4 (Interface)
 
Última edición:

Michiko

Capataz
Desde
9 Mar 2021
Mensajes
36
Reacciones
53
Honor
37
Gracias por responder, mira como esta en mi dbc.
スクリーンショット(278).png
 

Tuerny

Aprendiz de Desarrollo
Guardian
Desde
31 Oct 2020
Mensajes
322
Reacciones
419
Honor
82
Gracias por responder, mira como esta en mi dbc.
View attachment 2075
Descarga esta herramienta : DBCUtil

Arrastra la dbc al archivo exe, lo convertirá a CSV. Edita el csv con NotePad++ u otro programa. Vuelve a arrastrar ahora el csv que has modificado al exe nuevamente para convertirlo a dbc. Y listo. No todos los programas de dbcs valen para todas las dbcs, pero siempre hay otras alternativas.
 

Math

Guardian
Desde
30 Sep 2020
Mensajes
360
Reacciones
489
Honor
82
Descarga esta herramienta : DBCUtil

Arrastra la dbc al archivo exe, lo convertirá a CSV. Edita el csv con NotePad++ u otro programa. Vuelve a arrastrar ahora el csv que has modificado al exe nuevamente para convertirlo a dbc. Y listo. No todos los programas de dbcs valen para todas las dbcs, pero siempre hay otras alternativas.
Mejor usen este: https://model-changing.net/files/file/82-wdbx-editor/
Les mostrará una visión más completa de las columnas de los DBC, sin contar que te permite abrir estos mismos en diferentes expansiones.
Aunque es un poco más complejo visualmente XD
 

Michiko

Capataz
Desde
9 Mar 2021
Mensajes
36
Reacciones
53
Honor
37
Ambos métodos funcionan muy bien, hice algunos descubrimientos hasta que logré resolver algunos problemas "Todas las clases para todas las razas" el elfo guerrero no puede usar el hacha de dos manos y pude resolverlo.

¡Muchas gracias!
 

Aequus

Capataz
Desde
24 Mar 2020
Mensajes
85
Reacciones
47
Honor
52
Interesante...gracias por el aporte @Tuerny .
Le eche un vistazo y calculo que en el dbc de CreatureModelData es donde tengo que buscar para cambiar el tamaño de las armas,hombreras y cascos individualmente,pero al no estar seguro dejo en tus manos esta duda a ver si me podes guiar un poco por favor.
 

Tuerny

Aprendiz de Desarrollo
Guardian
Desde
31 Oct 2020
Mensajes
322
Reacciones
419
Honor
82
Interesante...gracias por el aporte @Tuerny .
Le eche un vistazo y calculo que en el dbc de CreatureModelData es donde tengo que buscar para cambiar el tamaño de las armas,hombreras y cascos individualmente,pero al no estar seguro dejo en tus manos esta duda a ver si me podes guiar un poco por favor.
El CreatureModelData es para criaturas, no para items... si cambias el valor de la columna 5 en esa dbc lo haces al npc, creature... para el item se hace en otra dbc. Para no desvirtuar este tema te sugiero que abras un post preguntando por ello. Un saludo figura!
 

Aequus

Capataz
Desde
24 Mar 2020
Mensajes
85
Reacciones
47
Honor
52
El CreatureModelData es para criaturas, no para items... si cambias el valor de la columna 5 en esa dbc lo haces al npc, creature... para el item se hace en otra dbc. Para no desvirtuar este tema te sugiero que abras un post preguntando por ello. Un saludo figura!
Gracias,eso voy a hacer.
 

Reiner

Explorador
Desde
23 Dec 2020
Mensajes
20
Reacciones
15
Honor
17
Papu, me sale error al momento de abrir el wow, es sobre la interfaz "Se produjo un error con el inicio de sesión de interfaz del juego, intenta reinstalar el juego."
 

Tuerny

Aprendiz de Desarrollo
Guardian
Desde
31 Oct 2020
Mensajes
322
Reacciones
419
Honor
82
Papu, me sale error al momento de abrir el wow, es sobre la interfaz "Se produjo un error con el inicio de sesión de interfaz del juego, intenta reinstalar el juego."
Eso puede ser ocasionado por múltiples motivos. Si pudieras pegar el log...
 

Reiner

Explorador
Desde
23 Dec 2020
Mensajes
20
Reacciones
15
Honor
17
Tranquilo bro, ya lo he solucionado. El problema era que mi wow.exe era "original" y no permitía tener parches custom y ahora le he colocado otro wow.exe y está funcionando correctamente. Muchas gracias por el tutorial! :)
 

Aequus

Capataz
Desde
24 Mar 2020
Mensajes
85
Reacciones
47
Honor
52
Hola de nuevo, leí con detenimiento lo que explicabas pero me costo mucho entender el punto de relación de algunas tablas con otras. Mi duda es la siguiente: ¿Es posible que una raza tenga 3 modelos masculinos según las clases, utilizando las DBCs? si es posible ¿me podrías explicar como se hace por favor? desde ya muchas gracias.

Editado:
Ya entendí que primero se declara el modelo en CreatureModelData (las ids son 185 y 186 en caso del trol macho y hembra), después esas ids se utilizan en CreatureDisplayInfo en Field1 y finalmente se utiliza los ids de estas (1478 y 1479 en este caso) en ChrRaces en Field 4 y Field 5.
Como se puede ver el limite es de 2 modelos, así que por lo que veo la única opción que me queda es usar morph dentro del juego, perdón por las molestias.
 
Última edición:

Tuerny

Aprendiz de Desarrollo
Guardian
Desde
31 Oct 2020
Mensajes
322
Reacciones
419
Honor
82
Hola de nuevo, leí con detenimiento lo que explicabas pero me costo mucho entender el punto de relación de algunas tablas con otras. Mi duda es la siguiente: ¿Es posible que una raza tenga 3 modelos masculinos según las clases, utilizando las DBCs? si es posible ¿me podrías explicar como se hace por favor? desde ya muchas gracias.
Claro que es posible si te refieres con modelos masculinos a texturas específicas para una clase. De hecho si te fijas en la dbc "charsections.dbc" al final de las líneas hace referencia a un valor de flags... esas flags son las que determinan la propiedad de la skin:

0x1Playable (probably)/CharacterCreate
0x2Barbershop
0x4Death Knight texture
0x8NPC skin (e.g. the necromancer human skins with facial marking etc)
0x10Seems to be regular, mundane skins
0x20Demon Hunter texture
0x40Demon Hunter face (unsure why these have a separate flag)
0x80Something to do with a couple of Demon Hunter blindfolds?
0x100Silhouette (black) texture
0x200Void Elf - Entropic Embrace (dark purple) texture
0x400Night Elf - Black eyes
(Por tanto según esta tabla si quieres que una skin quede en un personaje jugable de la clase caballero de la muerte tendrías que aplicar el valor "0x1 + 0x4 = 0x5" y si además quisieras que fuera aplicable en la barbershop, entonces le sumas 0x2)

Te apunto algo más... Imagínate que quieres declarar una clase que no tiene ninguna flag creada en el cpp. En trinitycore, existe la posibilidad de declarar una nueva flag y asignarla a una clase específica, en Azerothcore busqué esa posibilidad y no la encontré (seguramente porque no están declaradas estas flags del mismo modo que en trinitycore)
 

Aequus

Capataz
Desde
24 Mar 2020
Mensajes
85
Reacciones
47
Honor
52
Claro que es posible si te refieres con modelos masculinos a texturas específicas para una clase. De hecho si te fijas en la dbc "charsections.dbc" al final de las líneas hace referencia a un valor de flags... esas flags son las que determinan la propiedad de la skin:

0x1Playable (probably)/CharacterCreate
0x2Barbershop
0x4Death Knight texture
0x8NPC skin (e.g. the necromancer human skins with facial marking etc)
0x10Seems to be regular, mundane skins
0x20Demon Hunter texture
0x40Demon Hunter face (unsure why these have a separate flag)
0x80Something to do with a couple of Demon Hunter blindfolds?
0x100Silhouette (black) texture
0x200Void Elf - Entropic Embrace (dark purple) texture
0x400Night Elf - Black eyes
(Por tanto según esta tabla si quieres que una skin quede en un personaje jugable de la clase caballero de la muerte tendrías que aplicar el valor "0x1 + 0x4 = 0x5" y si además quisieras que fuera aplicable en la barbershop, entonces le sumas 0x2)

Te apunto algo más... Imagínate que quieres declarar una clase que no tiene ninguna flag creada en el cpp. En trinitycore, existe la posibilidad de declarar una nueva flag y asignarla a una clase específica, en Azerothcore busqué esa posibilidad y no la encontré (seguramente porque no están declaradas estas flags del mismo modo que en trinitycore)
Gracias por responder tan rápido, mi pregunta era si se podía usar 3 mdx (o m2) diferentes para un genero de una sola raza que no creo, pero probablemente use esa información que me diste mas adelante así que gracias denuevo.
 

Tuerny

Aprendiz de Desarrollo
Guardian
Desde
31 Oct 2020
Mensajes
322
Reacciones
419
Honor
82
Gracias por responder tan rápido, mi pregunta era si se podía usar 3 mdx (o m2) diferentes para un genero de una sola raza que no creo, pero probablemente use esa información que me diste mas adelante así que gracias denuevo.
No, usar varios M2 implica declarar más razas, pero cada raza sólo puede llevar 1 M2. Básicamente porque no se podrían repetir el mismo ID de raza para 2 M2 distintos.
 

Aequus

Capataz
Desde
24 Mar 2020
Mensajes
85
Reacciones
47
Honor
52
Siguiendo este excelente tutorial ,Intente crear dos morph de nuevas characters (en las que se visualizan las texturas del equipamiento y las armas, cascos, hombreras, etc) estableciéndolas en los siguientes archivos:

CharacterFacialHairStyles.DBC
CharHairGeosets.DBC
CharSections.DBC
CreatureDisplayInfo.DBC
CreatureDisplayInfoExtra.DBC
CreatureModelData.DBC

Pero al momento de probarlas, exceptuando las texturas del equipamiento, las texturas del cuerpo y cara se ven negras.
¿En que me puede haber equivocado o que me falto hacer?
 

Crea una cuenta o inicia sesión para comentar

Debes ser usuario para poder dejar un comentario.

¡Regístrate!

Crea una cuenta en nuestra comunidad. ¡Es fácil!

Acceder

¿Ya tienes una cuenta? Accede aquí

3,968Temas
26,016Mensajes
15,894Usuarios
val3ntin12Último usuario
Top