¿Cómo configurar el complemento OUF de avatar de World of Warcraft?
Introducción oUF es un complemento de avatar altamente personalizado.... El diseño se logra definiendo su propio archivo de diseño. Sin configuración de comando, adecuado para jugadores intermedios y avanzados, por supuesto, aquellos que no lo harán. modificarlo también puede pasar directamente Descargar diseños de otras personas para disfrutarlo ^ ^
La versión 0611PM23:41 de la fuente apunta al directorio raíz de World of Warcraft "Fonts\\ZYhei.ttf". ¡No es necesario instalar la fuente repetidamente! Si la fuente predeterminada no se ha cambiado, instale la carpeta Fuentes y Zyhei.ttf en el directorio raíz de Warcraft 0611. Cambió el material, corrigió la proporción de visualización de HP, agregó PVP rest = marca, agregó objetivo de enfoque, otros. etc. aún no se han agregado,,,
======Tutorial simple=======
CENTRO punto central (centro de la pantalla) como ( "CENTER", -220, -260) es ¡El punto central de la pantalla es una configuración del desplazamiento de la forma base!
TOPLEFT El lado superior izquierdo de la pantalla
TOPRIGHT El lado superior derecho de la pantalla
BOTTOMLEFT El lado inferior izquierdo de la pantalla
BOTTOMRIGHT ¡La parte inferior derecha de la pantalla! Primero identifique la ubicación del formulario que desea modificar. ¡Luego descubre dónde quieres modificarlo!
Desplazamiento 0 (horizontal), 0 (vertical)
Por ejemplo: player:SetPoint("CENTER", -220, -260)
Player The form es el punto central de la pantalla en -220 horizontalmente y -260 verticalmente.
pettarget:SetPoint("TOPRIGHT", player, "BOTTOMRIGHT", 0, -20
El significado de esta oración es que la ventana de la mascota sigue la posición de la ventana del reproductor. 0-20 en la parte inferior derecha del formulario del reproductor es un desplazamiento basado en el formulario del reproductor. Si modifico el enfoque, la versión original no seguirá, pero la modifiqué a
focus:SetPoint(" TOPLEFT", player, "TOPLEFT", 0, 50) se convierte en el foco y sigue la esquina superior izquierda de la ventana del reproductor
-- Genera los fotogramas que queremos
local player = oUF: Spawn"player"
player:SetPoint("CENTER", -220, -260) Configuración de la ventana del reproductor
player:SetHeight(30) height
player:SetWidth(220) ancho
objetivo local = oUF:Spawn"target"
objetivo:SetPoint("CENTER", 220, -260) formulario de destino
objetivo:SetHeight(30)
objetivo:SetWidth(220)
mascota local = oUF:Spawn"pet"
mascota:SetPoint( "TOPLEFT", jugador, "BOTTOMLEFT", 0, -20) forma de mascota
pet:SetHeight(22)
pet:SetWidth(145)
local pettarget = oUF:Spawn"pettarget"
pettarget:SetPoint("TOPRIGHT", player, "BOTTOMRIGHT", 0, -20) objetivo de mascota
pettarget:SetHeight(22)
pettarget:SetWidth(145)
local tot = oUF:Spawn"targettarget"
tot:SetPoint("CENTER", 0, -260) Objetivo objetivo
tot:SetHeight(10)
tot:SetWidth(160)
enfoque local = oUF:Spawn"enfoque" foco
focus:SetPoint("TOPLEFT", player, "TOPLEFT", 0, 50)
focus:SetHeight(10)
focus:SetWidth(140)
------------------------------
Configuración de compañeros de equipo
-- -- ------------------------
grupo local = oUF:Spawn("grupo")
grupo :SetPoint("TOPLEFT", UIParent, "TOPLEFT", 15, -200) información de posición y desplazamiento
party:SetManyAttributes("showParty", true, "yOffset", -50) Si el espaciado y dirección de extensión mostrar el equipo
party:SetAttribute("showRaid", false) mostrará el equipo y el equipo juntos...
Es decir, cuando verdadero es un equipo, el módulo de equipo se agrega incrementalmente detrás del equipo... ¡false solo muestra el equipo pero no el equipo!
local party1target = oUF:Spawn("party1target") El equipo 1 está por debajo del objetivo, 2 3 4
party1target:SetPoint("LEFT", oUF_PartyUnitButton1, "RIGHT", 10, 1)
party1target:SetHeight(10) p>
party1target:SetWidth(80 )
local party2target = oUF:Spawn("party2target")
party2target:SetPoint("IZQUIERDA", oUF_PartyUnitButton1, "DERECHA", 10, -76)
party2target:SetHeight(10)
party2target:SetWidth(80)
party3target local = oUF:Spawn("party3target")
party3target:SetPoint( "IZQUIERDA", oUF_PartyUnitButton1, "DERECHA", 10, -151)
party3target:SetHeight(10)
party3target:SetWidth(80 )
local party4target = oUF:Spawn("party4target")
party4target:SetPoint("IZQUIERDA", oUF_PartyUnitButton1, "DERECHA", 10, -226)
party4target:SetHeight(10)
p>party4target:SetWidth(80)
Simplemente no cambie parte del código proporcionado. . .
¡Gracias juntos, camaradas!
Agregue avatares 3D para usted y el objetivo de OUF, abra layout.lua y agregue este código al final:
--avatar 2D
local retrato = self:CreateTexture(nil, "OVERLAY")
portrait.type = "2D"
retrato:SetTexCoord(0.14644660941, 0.85355339059, 0.14644660941, 0.85355339059)
portrait:SetWidth(35) -- El ancho del avatar
portrait:SetHeight(35) -- La altura del avatar
if (unit == "target" ) luego --- Aquí está el marco donde se debe agregar el avatar a la derecha
portrait:SetPoint("RIGHT", 36, 0) --la posición del avatar
elseif (unit == "player" or self:GetParent():GetName() == "oUF_Party") entonces -- Este es el marco donde se debe agregar el avatar a la izquierda
retrato:SetPoint("LEFT", -36, 0) -- La posición del avatar
end
self.Portrait = retrato
--3D avatar
retrato local = CreateFrame("PlayerModel", nil, self)
retrato:SetFrameStrata"MEDIUM"
portrait.type = "3D" p>
retrato:SetLight(1, 0, 0, -0.707, -0.707, 0.7, 1.0, 1.0, 1.0, 0.8, 1.0, 1.0, 0.8)
retrato:SetWidth(35) -- Alto
retrato:SetHeight(35) - - ancho
if (unidad == "objetivo") entonces --- Aquí está el marco donde se debe agregar el avatar a la derecha
retrato:SetPoint("RIGHT", 36, 0 ) --Position
elseif (unidad == "jugador" o self:GetParent():GetName() == "oUF_Party") entonces -- Aquí está el marco donde se debe agregar el avatar a la izquierda p>
retrato:SetPoint("LEFT", -36, 0) -- posición
end
self.Portrait = retrato
-- Configuración de fondo del avatar
retrato localbg = retrato:CreateTexture(nil, "BORDER") p>
portraitbg:SetAllPoints(retrato)
portraitbg:SetTexture(tex)
portraitbg:SetTexture(0, 0, 0, 1)
------------------------ Yo Es la legendaria línea divisoria------------- ---
O cópielo todo y agregue un juicio, que requiere modificación 2D o 3D. Solo una palabra es suficiente, el código es el siguiente:
--Agregar.
Ingrese el criterio del avatar---
local viewtype = "2D" -- 2D: el avatar se muestra en modo 2D, 3D: el avatar se muestra en modo 3D.
-- Modo 3D
si viewtype == "3D" entonces
retrato local = CreateFrame("PlayerModel", nil, self)
retrato:SetFrameStrata "MEDIUM"
portrait.type = "3D"
retrato:SetLight(1, 0, 0, -0.707, -0.707, 0.7, 1.0, 1.0, 1.0, 0.8, 1.0, 1.0 , 0,8) p>
retrato:SetWidth(40)
retrato:SetHeight(40)
si (unidad == "objetivo") entonces
retrato: SetPoint("RIGHT", 40, 0)
elseif (unidad == "jugador" o unidad == "mascota" o unidad == "enfoque" o self:GetParent() :GetName() = = "oUF_Party") luego -- Más avatares de mascotas que el código anterior
portrait:SetPoint("LEFT", -40, 0)
end p>
self.Portrait = retrato
--Fondo de avatar
retrato localbg = retrato:CreateTexture(nil, "BORDER")
retratobg: SetAllPoints(retrato)
portraitbg:SetTexture(tex)
portraitbg:SetTexture(0, 0, 0, 1)
-- Modo 2D
elseif viewtype == "2D" entonces
retrato local = self:CreateTexture(nil, "OVERLAY")
portrait.type = "2D"
retrato:SetTexCoord(0.14644660941, 0.85355339059, 0.14644660941, 0.85355339059)
retrato:SetWidth(40)
retrato:SetHeight(40)
if ( unidad == "objetivo") entonces
retrato:SetPoint("RIGHT", 40, 0)
elseif (unidad == "jugador" o unidad == "mascota" o unit == "focus" o self:GetParent():GetName() == "oUF_Party") entonces -- más avatares de mascotas que el código anterior
portrait:SetPoint("LEFT", -40, 0 )
end
self.Portrait = retrato
-- Fondo de avatar
retrato localbg = self:CreateTexture(nil, " BOR
DER")
portraitbg:SetAllPoints(retrato)
portraitbg:SetTexture(tex)
portraitbg:SetTexture(0, 0, 0, 1) p> p>
end
Si desea mover la posición del avatar (mientras mantiene presionado SHIFT+ALT y arrastra), agregue este párrafo:
DefindedFrames = { p>
["oUF_Player"] = {isLock = nil},
["oUF_Target"] = {isLock = nil},
["oUF_TargetTarget"] = { isLock = nil },
["oUF_TargetTargetTarget"] = {isLock = nil},
["oUF_Focus"] = {isLock = nil},
["oUF_Focustarget "] = {isLock = nil},
["oUF_Party"] = {isLock = nil},
}
función SetFrameMovable(frameName ) p>
local f = getglobal(frameName);
si f entonces
si no f:IsMovable() entonces
f: SetMovable(true );
end
f:RegisterForDrag("LeftButton");
f:SetScript("OnDragStart",function()
si no es DefinedFrames[frameName].isLock entonces
si arg1 == "LeftButton" y IsAltKeyDown() y IsShiftKeyDown() entonces
esto:StartMoving();
fin
fin
fin);
f:SetScript("OnDragStop",función()
this:StopMovingOrSizing ();
end);
end
end;
para k,v en pares (DefindedFrames) haga
SetFrameMovable(k);
end
Si desea configurar el tamaño del avatar, agregue este párrafo:
local plSize = 1 - jugador, mascota, objetivo, objetivo de enfoque, objetivo del objetivo, proporción de objetivo del objetivo de enfoque
local ptSize = 1 - Compañero de equipo, mascota de compañero de equipo, proporción de objetivo de compañero de equipo
oUF_Player:SetScale (plSize);
oUF_Pet:SetScale(plSize);
oUF_Target:SetScale(plSize);
oUF_TargetTarget:SetScale(plSize);
oUF_Focus:SetScale(plSize);
oUF_Focustarget:SetScale(plSize);
oUF_Party:SetScale(plSize);<
/p>
para i=1, 4 haz
getglobal("oUF_Party"..i.."Target"):SetScale(ptSize);
getglobal(" oUF_PartyPet"..i):SetScale(ptSize);
end
----------------------- ---------------------
-- Muestra el grupo del jugador
actualización localPartyNum = function(self, event, unidad)
si self.unit ~= unidad entonces devuelve fin
local RaidPartyNum = self.RaidPartyNum
local numText, nombre, rango, subgrupo; p> p>
si ( GetNumRaidMembers() == 0 ) entonces
numText = " ";
else
local numRaidMembers = GetNumRaidMembers() ;
para i=1, MAX_RAID_MEMBERS hace
si (i <= numRaidMembers) entonces
nombre, rango, subgrupo = GetRaidRosterInfo(i); p>
-- Establece el indicador de número de grupo del jugador
if (name == UnitName(unit)) entonces
numText = " "..subgroup.."team" ;
fin
fin
fin
fin
RaidPartyNum:SetText(numText)
RaidPartyNum:SetTextColor(1, 1, 1)
fin
si self.RaidPartyNum entonces
actualizarPartyNum(self, evento, unidad) p>
end
-- La posición de visualización del equipo del jugador
RaidPartyNum local
RaidPartyNum = pp:CreateFontString(nil, "OVERLAY")
RaidPartyNum:SetPoint("TOP", retrato, "TOP", 0, 15) -- Lo configuré para que se muestre directamente encima del avatar
RaidPartyNum:SetFont(font, fontHeight)
RaidPartyNum:SetShadowColor(0, 0, 0)
RaidPartyNum:SetShadowOffset(0.8, -0.8)
self.RaidPartyNum = RaidPartyNum