[1m[36mTodos los créditos a Tuerny por su publicación original en WoWCreador[0m
Esta será la última parte de la guía. Tras esto habréis conseguido implementar los Worgens y los Goblin en vuestro server. Bueno, realmente si ya habéis hecho las otras 3 partes del tutorial ya los tenéis implementados, pero aun no podéis acceder a crearlos desde vuestro cliente. Para eso lo que vamos a hacer es cambiar los archivos de la interface que hacen referencia a esto y los modificaremos para que aparezcan nuestras razas custom en la creación de personajes.
Vamos a necesitar para ello varios archivos, los cuales como ya expliqué en la parte 2 los cogeremos de los parches de mayor a menor. Los archivos a extraer de los MPQs originales son los siguientes:
CharacterCreate.lua
CharacterCreate.xml
GlueParent.lua
GlueStrings.luaUna vez los tengamos empezamos las modificaciones.
CharacterCreate.luaAquí estableceremos el número máximo de razas disponibles.
Cambiaremos esta línea:
Por esta otra (añadiendo 2 razas más):
Ahora estableceremos la posición de los iconos de las razas en sus correspondientes casillas.
Buscamos:
Codigo:
RACE_ICON_TCOORDS = {
["HUMAN_MALE"] = {0, 0.125, 0, 0.25},
["DWARF_MALE"] = {0.125, 0.25, 0, 0.25},
["GNOME_MALE"] = {0.25, 0.375, 0, 0.25},
["NIGHTELF_MALE"] = {0.375, 0.5, 0, 0.25},
["TAUREN_MALE"] = {0, 0.125, 0.25, 0.5},
["SCOURGE_MALE"] = {0.125, 0.25, 0.25, 0.5},
["TROLL_MALE"] = {0.25, 0.375, 0.25, 0.5},
["ORC_MALE"] = {0.375, 0.5, 0.25, 0.5},
["HUMAN_FEMALE"] = {0, 0.125, 0.5, 0.75},
["DWARF_FEMALE"] = {0.125, 0.25, 0.5, 0.75},
["GNOME_FEMALE"] = {0.25, 0.375, 0.5, 0.75},
["NIGHTELF_FEMALE"] = {0.375, 0.5, 0.5, 0.75},
["TAUREN_FEMALE"] = {0, 0.125, 0.75, 1.0},
["SCOURGE_FEMALE"] = {0.125, 0.25, 0.75, 1.0},
["TROLL_FEMALE"] = {0.25, 0.375, 0.75, 1.0},
["ORC_FEMALE"] = {0.375, 0.5, 0.75, 1.0},
["BLOODELF_MALE"] = {0.5, 0.625, 0.25, 0.5},
["BLOODELF_FEMALE"] = {0.5, 0.625, 0.75, 1.0},
["DRAENEI_MALE"] = {0.5, 0.625, 0, 0.25},
["DRAENEI_FEMALE"] = {0.5, 0.625, 0.5, 0.75},
};
Y añadimos debajo de los Draenei los iconos de nuestras nuevas razas:
Codigo:
RACE_ICON_TCOORDS = {
["HUMAN_MALE"] = {0, 0.125, 0, 0.25},
["DWARF_MALE"] = {0.125, 0.25, 0, 0.25},
["GNOME_MALE"] = {0.25, 0.375, 0, 0.25},
["NIGHTELF_MALE"] = {0.375, 0.5, 0, 0.25},
["TAUREN_MALE"] = {0, 0.125, 0.25, 0.5},
["SCOURGE_MALE"] = {0.125, 0.25, 0.25, 0.5},
["TROLL_MALE"] = {0.25, 0.375, 0.25, 0.5},
["ORC_MALE"] = {0.375, 0.5, 0.25, 0.5},
["HUMAN_FEMALE"] = {0, 0.125, 0.5, 0.75},
["DWARF_FEMALE"] = {0.125, 0.25, 0.5, 0.75},
["GNOME_FEMALE"] = {0.25, 0.375, 0.5, 0.75},
["NIGHTELF_FEMALE"] = {0.375, 0.5, 0.5, 0.75},
["TAUREN_FEMALE"] = {0, 0.125, 0.75, 1.0},
["SCOURGE_FEMALE"] = {0.125, 0.25, 0.75, 1.0},
["TROLL_FEMALE"] = {0.25, 0.375, 0.75, 1.0},
["ORC_FEMALE"] = {0.375, 0.5, 0.75, 1.0},
["BLOODELF_MALE"] = {0.5, 0.625, 0.25, 0.5},
["BLOODELF_FEMALE"] = {0.5, 0.625, 0.75, 1.0},
["DRAENEI_MALE"] = {0.5, 0.625, 0, 0.25},
["DRAENEI_FEMALE"] = {0.5, 0.625, 0.5, 0.75},
["GOBLIN_MALE"] = {0.625, 0.750, 0.25, 0.5},
["GOBLIN_FEMALE"] = {0.625, 0.750, 0.75, 1.0},
["WORGEN_MALE"] = {0.625, 0.750, 0, 0.25},
["WORGEN_FEMALE"] = {0.625, 0.750, 0.5, 0.75},
};
CharacterCreate.xml- Ahora vamos a configurar la posición de los iconos en sus respectivos botones y posiciones. Para ello tenemos que buscar la sección de los botones de las razas en CharacterCreate.xml , es algo así:
Codigo:
<CheckButton name="CharacterCreateRaceButton1" inherits="CharacterCreateRaceButtonTemplate" id="1">
<Anchors>
<Anchor point="TOP" relativePoint="TOP" x="-50" y="-61"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton2" inherits="CharacterCreateRaceButtonTemplate" id="2">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="CharacterCreateRaceButton1" relativePoint="BOTTOMLEFT" x="0" y="-21"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton3" inherits="CharacterCreateRaceButtonTemplate" id="3">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="CharacterCreateRaceButton2" relativePoint="BOTTOMLEFT" x="0" y="-21"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton4" inherits="CharacterCreateRaceButtonTemplate" id="4">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="CharacterCreateRaceButton3" relativePoint="BOTTOMLEFT" x="0" y="-21"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton5" inherits="CharacterCreateRaceButtonTemplate" id="5">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="CharacterCreateRaceButton4" relativePoint="BOTTOMLEFT" x="0" y="-21"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton6" inherits="CharacterCreateRaceButtonTemplate" id="6">
<Anchors>
<Anchor point="TOP" relativePoint="TOP" x="50" y="-61"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton7" inherits="CharacterCreateRaceButtonTemplate" id="7">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="CharacterCreateRaceButton6" relativePoint="BOTTOMLEFT" x="0" y="-21"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton8" inherits="CharacterCreateRaceButtonTemplate" id="8">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="CharacterCreateRaceButton7" relativePoint="BOTTOMLEFT" x="0" y="-21"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton9" inherits="CharacterCreateRaceButtonTemplate" id="9">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="CharacterCreateRaceButton8" relativePoint="BOTTOMLEFT" x="0" y="-21"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton10" inherits="CharacterCreateRaceButtonTemplate" id="10">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="CharacterCreateRaceButton9" relativePoint="BOTTOMLEFT" x="0" y="-21"/>
</Anchors>
</CheckButton>
Y lo sustituiremos así:
Codigo:
<CheckButton name="CharacterCreateRaceButton1" inherits="CharacterCreateRaceButtonTemplate" id="1">
<Anchors>
<Anchor point="TOP" relativePoint="TOP" x="-50" y="-50"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton2" inherits="CharacterCreateRaceButtonTemplate" id="2">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="CharacterCreateRaceButton1" relativePoint="BOTTOMLEFT" x="0" y="-10"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton3" inherits="CharacterCreateRaceButtonTemplate" id="3">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="CharacterCreateRaceButton2" relativePoint="BOTTOMLEFT" x="0" y="-10"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton4" inherits="CharacterCreateRaceButtonTemplate" id="4">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="CharacterCreateRaceButton3" relativePoint="BOTTOMLEFT" x="0" y="-10"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton5" inherits="CharacterCreateRaceButtonTemplate" id="5">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="CharacterCreateRaceButton4" relativePoint="BOTTOMLEFT" x="0" y="-10"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton8" inherits="CharacterCreateRaceButtonTemplate" id="8">
<Anchors>
<Anchor point="TOP" relativePoint="TOP" x="50" y="-50"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton9" inherits="CharacterCreateRaceButtonTemplate" id="9">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="CharacterCreateRaceButton8" relativePoint="BOTTOMLEFT" x="0" y="-10"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton10" inherits="CharacterCreateRaceButtonTemplate" id="10">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="CharacterCreateRaceButton9" relativePoint="BOTTOMLEFT" x="0" y="-10"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton11" inherits="CharacterCreateRaceButtonTemplate" id="11">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="CharacterCreateRaceButton10" relativePoint="BOTTOMLEFT" x="0" y="-10"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton12" inherits="CharacterCreateRaceButtonTemplate" id="12">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="CharacterCreateRaceButton11" relativePoint="BOTTOMLEFT" x="0" y="-10"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton7" inherits="CharacterCreateRaceButtonTemplate" id="7">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="CharacterCreateRaceButton12" relativePoint="BOTTOMLEFT" x="0" y="-10"/>
</Anchors>
</CheckButton>
<CheckButton name="CharacterCreateRaceButton6" inherits="CharacterCreateRaceButtonTemplate" id="6">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="CharacterCreateRaceButton5" relativePoint="BOTTOMLEFT" x="0" y="-10"/>
</Anchors>
</CheckButton>
GlueParent.lua- Aquí pondremos el track correspondiente a cada clase de la siguiente forma:
Buscamos:
Codigo:
GlueAmbienceTracks["CHARACTERSELECT"] = "GlueScreenIntro";
Y justo debajo añadimos:
Codigo:
GlueAmbienceTracks["WORGEN"] = "GlueScreenHuman";
GlueAmbienceTracks["GOBLIN"] = "GlueScreenOrcTroll";
En el siguiente apartado "racelights" deberemos añadir nuestras razas. Buscamos esto:
Codigo:
CHARACTERSELECT = {
{1, 0, 0.00000, 0.00000, -1.00000, 1.0, 0.15000, 0.15000, 0.15000, 1.0, 0.00000, 0.00000, 0.00000},
{1, 0, -0.74919, 0.35208, -0.56103, 1.0, 0.00000, 0.00000, 0.00000, 1.0, 0.44706, 0.54510, 0.73725},
{1, 0, 0.53162, -0.84340, 0.07780, 1.0, 0.00000, 0.00000, 0.00000, 2.0, 0.55, 0.338625, 0.148825},
Y debajo añadimos esto:
Codigo:
GOBLIN = {
{1, 0, 0.00000, 0.00000, -1.00000, 1.0, 0.15000, 0.15000, 0.15000, 1.0, 0.00000, 0.00000, 0.00000},
{1, 0, -0.74919, 0.35208, -0.56103, 1.0, 0.00000, 0.00000, 0.00000, 1.0, 0.44706, 0.54510, 0.73725},
{1, 0, 0.53162, -0.84340, 0.07780, 1.0, 0.00000, 0.00000, 0.00000, 2.0, 0.55, 0.338625, 0.148825},
},
WORGEN = {
{1, 0, 0.00000, 0.00000, -1.00000, 1.0, 0.15000, 0.15000, 0.15000, 1.0, 0.00000, 0.00000, 0.00000},
{1, 0, -0.74919, 0.35208, -0.56103, 1.0, 0.00000, 0.00000, 0.00000, 1.0, 0.44706, 0.54510, 0.73725},
{1, 0, 0.53162, -0.84340, 0.07780, 1.0, 0.00000, 0.00000, 0.00000, 2.0, 0.55, 0.338625, 0.148825},
Por último buscamos:
Codigo:
-- Function to set the background model for character select and create screens
function SetBackgroundModel(model, name)
local nameupper = strupper(name);
local path = "Interface\\Glues\\Models\\UI_"..name.."\\UI_"..name..".m2";
if ( model == CharacterCreate ) then
SetCharCustomizeBackground(path);
else
SetCharSelectBackground(path);
end
PlayGlueAmbience(GlueAmbienceTracks[nameupper], 4.0);
SetLighting(model, nameupper)
end
Y lo sustituimos por esto, lo cual nos dará el fondo de la pantalla de creación para nuestras razas custom:
Codigo:
-- Function to set the background model for character select and create screens
function SetBackgroundModel(model, name)
local nameupper = strupper(name);
if (name == "Goblin" or name == "GOBLIN") then
name = "Orc";
end
if (name == "Worgen" or name == "WORGEN") then
name = "HUMAN";
end
local path = "Interface\\Glues\\Models\\UI_"..name.."\\UI_"..name..".m2";
if ( model == CharacterCreate ) then
SetCharCustomizeBackground(path);
else
SetCharSelectBackground(path);
end
PlayGlueAmbience(GlueAmbienceTracks[nameupper], 4.0);
SetLighting(model, nameupper)
end
GlueStrings.lua- Este archivo es para definir la información relativa a los personajes. Nosotros vamos a cambiar varias cosas: la información de la raza y la información de las habilidades.
Buscamos esto:
Codigo:
ABILITY_INFO_BLOODELF1 = "- Habilidad en encantar aumentada.";
Y añadimos por encima de esa línea esto:
Codigo:
ABILITY_INFO_GOBLIN1 = "- Habilidades Goblins, linea 1";
ABILITY_INFO_GOBLIN2 = "- Habilidades Goblins, linea 2";
ABILITY_INFO_GOBLIN3 = "- Habilidades Goblins, linea 3";
ABILITY_INFO_GOBLIN4 = "- Habilidades Goblins, linea 4";
ABILITY_INFO_WORGEN1 = "- Habilidades Huargens, linea 1";
ABILITY_INFO_WORGEN2 = "- Habilidades Huargens, linea 2";
ABILITY_INFO_WORGEN3 = "- Habilidades Huargens, linea 3";
ABILITY_INFO_WORGEN4 = "- Habilidades Huargens, linea 4";
Ahora buscamos esto:
Codigo:
RACE_CHANGE_IN_PROGRESS = "Actualizando raza...";
Y a continuación añadimos:
Codigo:
RACE_INFO_GOBLIN = "Información acerca de los Goblins.";
RACE_INFO_GOBLIN_FEMALE = "Información acerca de las Goblins.";
RACE_INFO_WORGEN = "Información acerca de los Huargens.";
RACE_INFO_WORGEN_FEMALE = "Información acerca de las Huargens.";
Y por fín hemos acabado!!
Sólo nos quedaría descargar el siguiente archivo https://mega.nz/file/J5N1FCyT#jv_cVm9xky06l-Uoi3DSeaoiElELovZaXlDjsNE5a-4 (//%22https://mega.nz/file/J5N1FCyT#jv_cVm9xky06l-Uoi3DSeaoiElELovZaXlDjsNE5a-4%22). Esto se guarda en la ruta "Interface/Glues/CharacterCreate" dentro del parche. Lo mismo los iconos no coinciden con las coordenadas que hemos puesto en el tutorial puesto que este archivo lo hice mucho después de hacer este tuto y lleva muchos más iconos de más razas. Para que sí coincidan habria que usar el BLP del cliente de Cata.Los archivos .lua van dentro del parche en la ruta "Interface/GlueXML"https://wowcreador.com/threads/tutorial-creacion-razas-custom-3-3-5a-tc-parte-1-4-core.987/ (//%22https://wowcreador.com/threads/tutorial-creacion-razas-custom-3-3-5a-tc-parte-1-4-core.987/%22)
https://wowcreador.com/threads/tutorial-creacion-razas-custom-3-3-5a-tc-parte-2-4-dbcs.988/ (//%22https://wowcreador.com/threads/tutorial-creacion-razas-custom-3-3-5a-tc-parte-2-4-dbcs.988/%22)
https://wowcreador.com/threads/tutorial-creacion-razas-custom-3-3-5a-tc-parte-3-4-sqls.990/ (//%22https://wowcreador.com/threads/tutorial-creacion-razas-custom-3-3-5a-tc-parte-3-4-sqls.990/%22)