млин
лучше аддоном, чем через конфиг
Сори , но проще с 0 сделать , чем разобраться =)
Спавинишь так:
http://pastebin.ru/18BD8HH7
Функции для юнитов выглядят так:
И так же для пати , арены, босов и тд.PHP код:
function uf:CreatePlayer(self, unit)
if unit~="player" then return end
...
сюда пошел лайаут для игрока
...
end
А как мне тогда SetAttribute вписывать для пати? Вписать в 1 файл весь этот спаун юнитов, а в другой лейаут для юнитов/пати?
И еще пара вопрос. Для чего нужна строка local space = 4 и почему у меня в этом спавне нет setactivestyle
Message: ..\AddOns\oUF_zp\spawn.lua line 26:
attempt to call method 'CreatePlayer' (a nil value)
как-то так
и немного больше end в конце получилось
Последний раз редактировалось swagcat; 10.05.2015 в 15:27.
какие размеры хочешь для пати , таргета , фокуса , цели таргета и цели фокуса?
- - - Updated - - -
Вообщем разберешься , я так имел в виду...
http://rghost.ru/6tRwNG2Wc
\AddOns\oUF_zp2\spawn.lua line 6:
Attempted to use invalid tag [zph].
Смотри, я сделал отдельный файл с тагами (tags.lua. допустим, я очень оригинален) и у меня почему-то не хочет брать с него эти самые таги. Например вот этот, но т.к. он идет самым первым, то скорее всего не хочет брать все. shortval в том же файле (tags.lua) прописан
PHP код:
oUF.Tags['[zph]'] = function(u)
return shortval(UnitHealth(u))
end
oUF.TagEvents['[zph]'] = 'UNIT_HEALTH'
Последний раз редактировалось swagcat; 10.05.2015 в 22:26.
Нафига тебе тэги для получения хп? Тут либо OnValueChanged , либо PostUpdate , честно сказать вообще не видел получение хп\энергии через тэги .
oUFDemo.zip
PS делал на всякий случай тэг имени для "player".
мне теги будут нужны для пати/рейд фреймов, ну и лвл выводить тоже. пока что я не могу попробовать, но у меня еще почему-то фрейм пета не завелся. Вот такое в pet.lua123
PHP код:
local _, ns = ...
local oUF = ns.oUF or oUF
local mediaPath = "Interface\\AddOns\\oUF_zp2\\media\\"
local bartexture = mediaPath.."minimalist"
local font, fontsize, flags = mediaPath.."font.ttf", 10, "OUTLINE"
local backdrop = {
bgFile = [=[Interface\Buttons\WHITE8x8]=],
edgeFile = [=[Interface\Buttons\WHITE8x8]=], edgeSize = 1,
insets = {top = 0, bottom = 0, right = 0, left = 0}
}
local oUFMakeBG = function(parent)
local bg = CreateFrame("Frame", nil, parent)
bg:SetPoint('TOPLEFT', parent, 'TOPLEFT', -1, 1)
bg:SetPoint('BOTTOMRIGHT', parent, 'BOTTOMRIGHT', 1, -1)
bg:SetFrameLevel(parent:GetFrameLevel() - 1)
bg:SetBackdrop(backdrop)
bg:SetBackdropColor(0, 0, 0, 0.6)
bg:SetBackdropBorderColor(0, 0, 0, 1)
end
function oUF:CreatePet(self, unit)
if unit~="pet" then return end
self:RegisterForClicks("AnyUp")
self:SetWidth(100)
self:SetHeight(15)
local health = CreateFrame('StatusBar', nil, self)
health:SetStatusBarTexture(bartexture)
health:SetHeight(15)
health:SetPoint('TOPRIGHT', 0, -1.5)
health:SetPoint('TOPLEFT', 0, -1.5)
health.colorClass = true
health.colorTapping = true
health.colorReaction = true
health.bg = health:CreateTexture(nil, 'BORDER')
health.bg:SetAllPoints(health)
health.bg:SetTexture(bartexture)
health.bg:SetAlpha(0.4)
health.raid = health:CreateTexture(nil, 'OVERLAY')
health.raid:SetSize(16, 16)
health.raid:SetPoint('TOP', self, 0, 9)
self.Health = health
oUFMakeBG(health)
end
[свернуть]
и вот такое в спавнеPHP код:
local pet = self:Spawn('pet', 'pet')
pet:SetPoint('TOPRIGHT', oUF.units.player, 'TOPLEFT', 0, -27)
Последний раз редактировалось swagcat; 11.05.2015 в 13:51.
вообще не советую такое делать... лучше создать пространство имен или фрейму - это будет твой мудуль , потом уже в этом пространстве писать . Да текста выйдет чучуть больше , но в 1 м файлике с дуру можно и Х поломать ) Как в народе говорят - черт ногу сломит.
Это будет как минимум куча условий типа if unit=="player" then ... elseif unit =="target".... then ... end ну и так для каждого юнита , тех юнитов что спавнятся (типа рейда пати арены арена петов патитетов и тд придется через unit:mach('party%d') отсеивать от остальных фреймов и все это будет огромное условеи для каждого юнита...