Shestak UI
Go Back   Shestak UI > Interface Forums > Russian Community > Technical Support

Technical Support Ask for help or find solutions about ShestakUI.

Advertising

 
Thread Tools
Old 08.07.2010, 18:18   #1
 Senior Member User Information

Obakol's Avatar
Прозрачность фреймов

Покумекал со знакомым, который лучше меня разбирается в программировании.

oUF_Shestak - oUF_Main

функция

Code [Select]:
local PostUpdateHealth = function(self, event, unit, bar, min, max)
if self:GetAttribute("unitsuffix") == "pet" then return end
	if(not UnitIsConnected(unit)) then
		bar:SetValue(0)
		bar.value:SetText("|cffD7BEA5"..L_UF_OFFLINE.."|r")
	elseif(UnitIsDead(unit)) then
		bar.value:SetText("")
		bar.value:SetText("|cffD7BEA5"..L_UF_DEAD.."|r")
	elseif(UnitIsGhost(unit)) then
		bar.value:SetText("")
		bar.value:SetText("|cffD7BEA5"..L_UF_GHOST.."|r")
	else
и так далее, как раз после этой строки добавляем.

Code [Select]:
if(min / max > 0.95) then self:SetAlpha(0.7) end
Еще нужна обратная проверка (пока не проверял ее работоспособность). НО!!! тут нет фильтра на то, какие именно фреймы делать прозрачными.

Code [Select]:
if( (min / max > 0.95) and (self:GetParent():Getname():match"oUF_Raid" or self:GetParent():GetName(): match"oUF_Party") ) then self:SetAlpha(0.5) end
Вот это не сработало.. появились артефакты.

Any advice?
Old 08.07.2010, 18:18   #1.5 - Disable Ads

Advertise on this site

Old 09.07.2010, 01:11   #2
Shestak
 Junior Member User Information

Shestak's Avatar
Этот
код вставить после вот
этого
кода.

Но!!! Он конфликтует с модулем range в oUF'е.
То есть, он как бы "ыть" и прозрачный, потом сразу обратно "ыть" и 100% альфа. Альфу "глушит" как раз модуль range. Если его отключить, то все работает идеально, как и задумывалось.

Добавлено через 16 минут
Вот такое решение нашел, не конфликтует с range модулем, и достигаем то, что и хотели:
Code [Select]:
if(self:GetParent():GetName():match"oUF_Raid" or self:GetParent():GetName():match"oUF_Party" or self:GetParent():GetName():match"oUF_MainTank") then
	if(min / max > 0.95) then 
		self.Health:SetAlpha(0.2)
		self.Power:SetAlpha(0.2)
		self.FrameBackdrop:SetAlpha(0.2)
	else
		self.Health:SetAlpha(1)
		self.Power:SetAlpha(1)
		self.FrameBackdrop:SetAlpha(1)
	end
end
Вставлять туда же.

Добавлено через 2 минуты
Можно еще в принципе это загнать в условие:
Code [Select]:
if (UnitIsConnected(unit)) and (not UnitIsDead(unit)) and (not UnitIsGhost(unit)) then
...
end
Добавлено через 11 минут
Выглядит так:

у кого полное хп и далеко - 0.2 альфа
у кого не полное хп и далеко - 0.5 альфа
у кого полное хп и близко - 0.2 альфа
у кого не полное хп и близко - 1 альфа

upd: в атаче с закомментированым условием на счет живой не живой, в сети не в сети.
Attached Files
File Type: rar oUF_Shestak.rar (24.1 KB, 13 views Who downloaded?)
Old 09.07.2010, 09:58   #3
Obakol
 Senior Member User Information

Obakol's Avatar
Еще, буквально 2 изменения И моя душа перфекциониста сможет успокоится. Заранее извиняюсь. Я очень не хочу нагружать Вас лишними проблемами.

Конечно, сейчас попробую разобраться сам.. но.

В общем.

у кого полное хп и далеко - 0.2 альфа
у кого не полное хп и далеко - 0.4 альфа
у кого полное хп и близко - 0.7 альфа
у кого не полное хп и близко - 1 альфа
+
У кого есть что отдиспелить и близко - 1 (т.е надо доп. фильтр написать, на "тех кто фул хп и близко, если у них есть то, что можно диспелить (я видел, там есть отдельный код который определяет твой класс и что ты можешь диспелить) то афльфа все равно 1 (а еще я где-то, кажется, видел список важных пве и пвп дебафов, которые отображаются иконкой в самом фрейме не зависимо от того, можно ли его диспелить или нет. блин... мне кажется что эже "сломать голову" можно )

ПС. Я попробую это изменить сам. Но, у меня вряд ли получится.
Еще раз извиняюсь за лишний геморой. Все известные мне хил-фреймы изменяют альфу подобным образом, без этого очень тяжело

Posted in 36 minute
Чего-то я стал думать как свои слова в код обратить.. мозг встал раком. Думать надо осторожно

Posted in 38 minute
Сдается мне проще даже будет написать проверку на загруженный аддон и в отдельном аддоне одной функцией все описать.
Old 09.07.2010, 13:32   #4
Shestak
 Junior Member User Information

Shestak's Avatar
Quote:
Originally Posted by Obakol View Post
У кого есть что отдиспелить и близко - 1 (т.е надо доп. фильтр написать, на "тех кто фул хп и близко, если у них есть то, что можно диспелить (я видел, там есть отдельный код который определяет твой класс и что ты можешь диспелить) то афльфа все равно 1 (а еще я где-то, кажется, видел список важных пве и пвп дебафов, которые отображаются иконкой в самом фрейме не зависимо от того, можно ли его диспелить или нет. блин... мне кажется что эже "сломать голову" можно )
После этого запроса вообще не понимаю, зачем это(игра с альфами) нужно. Это все не дает никакой информации хилеру. Нужно знать только далеко ли человек, не более.

За дебафы отвечает self.DebuffHighlight. Сама альфа проставляется в том блоке, что описал выше и почти в самом конце файла:
self.inRangeAlpha = 1
self.outsideRangeAlpha = 0.5

Добавлено через 8 минут
И чем больше таких "условий, теб дольше времени в бою будем соображать - блин, а чего я там наделал, когда "гореть-то"(альфа1) будет, ну когда же. А человек будет потихоньку умирать, в этот момент будешь судорожно искать этого человека, и если раньше это был только лос, то теперь(ой, а какие же там были условия), и в итоге пока додумаешь, пока допридумаешь, человек и скопытится.
Я бы в рейд не пошел если честно с таким хилером

Добавлено через 31 минуту
Легче кстати отскинить хилбот(как я понял он юзается). Чем добавлять что-то в минималистичное, что в последствие от этого станет первым(хилботом).
ЮФ уже приближается к 1 мегабайту(если использовать oUF_AuraWatch и oUF_HealComm4 плюс все те настройки(опции, не фичи) которые вводились для пользователей).
Итого сборка почти без добавлений новых фич-возможностей потолстела ну если не в два раза, то около того.
Old 09.07.2010, 15:44   #5
Obakol
 Senior Member User Information

Obakol's Avatar
Чем больше условий обработается кодом,тем меньше условий необходимо обработать самому. И я, например, как хилер могу полностью понять, что происходит вокруг, глядя только на фреймы.

И суть как раз была в том, что если у тебя 25 человек не в лосе, то лучше, тех, что хилить не надо - затемнить альфой. Только сейчас получается, что люди "раненые" в лосе (далеко) более заметны, чем полные, но близко.

С дебафами, это уже как раз "личное".

Это простейший вопрос приорететов выбора фрема глазом - чем прозрачнее, тем менее значим. Повторюсь, по такому принципу работают все фремы для хилеров которые я видел.

Не важно, я не хотел утяжелять сборку. Хотел сделать ее удобной для себя и, возможно, кого-то еще. А хилбот, как минимум, не подходит под сборку по дизайну, да и весит много сам по себе.

Я буду очень признателен за подсказку, как реализовать
у кого полное хп и далеко - 0.2 альфа
у кого не полное хп и далеко - 0.4 альфа
у кого полное хп и близко - 0.7 альфа
у кого не полное хп и близко - 1 альфа

Вот такой порядок. Если, конечно, будет время.

Posted in 5 minute
ПС. А заскинить хилбот, я все равно не смогу

Posted in 31 minute
Не знаю как Но я это сделал.. Менял параметры руководствуясь 6-м чувством. По-этому четко объяснить не могу Но теперь у меня все работает как надо Ну, кроме дебафов, но с этим я попозже сам разберусь
Old 09.07.2010, 16:20   #6
Shestak
 Junior Member User Information

Shestak's Avatar
Quote:
Originally Posted by Obakol View Post
Повторюсь, по такому принципу работают все фремы для хилеров которые я видел.
Пример.

Quote:
Originally Posted by Obakol View Post
А хилбот, как минимум, не подходит под сборку по дизайну
Любые эдоны можно отскинить под любой внешний вид.
Quote:
Originally Posted by Obakol View Post
да и весит много сам по себе.
Вот про это я и говорю, я не говори лично за этот пример, а за общый ввод опций-фич-под_каждого-для-каждого = почти всегда все "это" разрастается.
Quote:
Originally Posted by Obakol View Post
И я, например, как хилер могу полностью понять, что происходит вокруг, глядя только на фреймы.
Никто и не спорит, потому что мы хилеры.
Quote:
Originally Posted by Obakol View Post
Чем больше условий обработается кодом,тем меньше условий необходимо обработать самому.
Тем больше вероятность ошибки не только человека, но и кода/компа(лаги, и прочее).
Quote:
Originally Posted by Obakol View Post
И суть как раз была в том, что если у тебя 25 человек не в лосе, то лучше, тех, что хилить не надо - затемнить альфой.
Отличие "квадратиков" от просто текста - именно сдвигающиеся полоски на уменьшение когда у них уходит здоровье. Это первый и приоритетный, и быстрый для понятия человеком происходящего, цифры уже идут на второй план, так же и затемнение(если он не только для лоса).
Quote:
Originally Posted by Obakol View Post
Я буду очень признателен за подсказку, как реализовать
Попробую, но пока только три условия(имеется ввиду значение альфы), а не четыре:
у кого полное хп и далеко - АЛЬФА_1
у кого не полное хп и далеко - АЛЬФА_2
у кого полное хп и близко - АЛЬФА_1 (тут должна быть АЛЬФА_4)
у кого не полное хп и близко - АЛЬФА_3

Добавлено через 1 минуту
Скинь сюда оуф(в аттач). Я сами условия понимаю, но как только обращаюсь к коду, у меня голова идет кругом от тех условий, что нужно сделать для корректного отображения.
Old 09.07.2010, 16:43   #7
Obakol
 Senior Member User Information

Obakol's Avatar
Не, я в итоге сделал 3 (а точнее просто понял правильно те условия, что Вы написали и проставил значения что бы получилось 3 уровня альфы). 2 для "в радиусе" и все остальное.

Я предлагаю не устраивать словесных баталий.

3 уровня - это отлично не менее, чем 4. Пока правда не получается и дебафами, но я все равно добью это дело
Old 09.07.2010, 16:46   #8
Shestak
 Junior Member User Information

Shestak's Avatar
Я никак не могу найти напарника для рейда что бы потестить(бг и оло не в счет, не люблю "личить").
Для дебаффов на вскидку в тот блок, но не проверял:
self.DebuffHighlightAlpha = ЗНАЧЕНИЕ
или
self.DebuffHighlight:SetAlpha(ЗНАЧЕНИЕ)
Quote:
Originally Posted by Obakol View Post
что Вы
лучше "ты"
Old 09.07.2010, 16:56   #9
Obakol
 Senior Member User Information

Obakol's Avatar
Основной мыслью было что бы по альфе фрейма можно было отличить кто рядом с тобой кто нет. И разделить тех кто рядом на 2 группы, кому нужен хил и кому нет. В итоге все сделано. (изначально я просто по глупости своей в голове ввел у себя 4-ю группу, но в итоге понял, что она абсолютно не нужна)

Posted in 1 minute
Да, напарник - это проблема Приходится отыгрывать БГ полностью.
Хм, спасибо,я пробовал другой оператор. Конечно - неправильный

Пойду пробовать.

Ок, на "ты"

Спасибо еще раз. Не вините сильно за уйму отнятого времени, пожалуйста

Posted in 7 minute
self.DebuffHighlight:SetAlpha(ЗНАЧЕНИЕ) - не работает.
self.DebuffHighlightAlpha = ЗНАЧЕНИЕ - уже присутсвует и стоит 1 - как я понял это альфа самого "подсвета".

Не берите пока это в голову. Это намного менее важно, чем то, что уже сделано. Главное - теперь я могу удалить хилбот Ибо теперь я вижу кто рядом. И легко отличаю глазом кому нужен хил.
Old 09.07.2010, 17:00   #10
Shestak
 Junior Member User Information

Shestak's Avatar
Какие значения были установлены тут:
Code [Select]:
if(self:GetParent():GetName():match"oUF_Raid" or self:GetParent():GetName():match"oUF_Party" or self:GetParent():GetName():match"oUF_MainTank") then
	if(min / max > 0.95) then 
		self.Health:SetAlpha(0.2)
		self.Power:SetAlpha(0.2)
		self.FrameBackdrop:SetAlpha(0.2)
	else
		self.Health:SetAlpha(1)
		self.Power:SetAlpha(1)
		self.FrameBackdrop:SetAlpha(1)
	end
end
И тут:
Code [Select]:
if (not unit and not(self:GetAttribute("unitsuffix") == "target") or unit == "pet") then
	if(IsAddOnLoaded("oUF_SpellRange")) then
		self.Range = false
		self.SpellRange = true
	else
		self.Range = true
		self.SpellRange = false
	end
        self.inRangeAlpha = 1 
        self.outsideRangeAlpha = 0.5
end
Добавлено через 1 минуту
Quote:
Originally Posted by Obakol View Post
self.DebuffHighlightAlpha = ЗНАЧЕНИЕ - уже присутсвует и стоит 1 - как я понял это альфа самого "подсвета".
Да. Так, что нужно с дебаффами-то? Точнее с какими и что именно?

Добавлено через 1 минуту
Quote:
Originally Posted by Obakol View Post
Не берите
Не берИ

Tags
ouf

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
Отключение встроенных фреймов Vendikto General Discussion 3 17.07.2011 00:51
Идеи для фреймов группы второй раскладки Shestak General Discussion 13 22.08.2010 22:33


Mobile Style Русский English Deutsch Italian Chinese