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

Iniciado por Nuzak, Abr 20, 2025, 02:29 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Todos los créditos a Tuerny por su publicación original en WoWCreador


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.lua


Una vez los tengamos empezamos las modificaciones.

CharacterCreate.lua

Aquí estableceremos el número máximo de razas disponibles.

Cambiaremos esta línea:




      Codigo:
   

MAX_RACES = 10;



Por esta otra (añadiendo 2 razas más):




      Codigo:
   

MAX_RACES = 12;



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 You are not allowed to view links. Register or Login. 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"

You are not allowed to view links. Register or Login

You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
  •