Автор | Сообщение |
---|---|
|
0
wit4er писал(а): А можно ли добавить 2 минутный таймер для БГ?
Можно это: Код: local function SafeQueue_Update() local queued for i=1, 11 do local status, _, _, _, _, _, registeredMatch = GetBattlefieldStatus(i) if registeredMatch == 1 then if status == "queued" then queued = true if not queueTime then queueTime = GetTime() end elseif status == "confirm" then if queueTime then SafeQueue_PrintTimeWaited() queueTime = nil end remaining = 0 queue = i end break end end if not queued and queueTime then queueTime = nil end end
Заменить на это: Код: local function SafeQueue_Update()
Но, во первых, если все-таки можно стать одновременно в 2 какие-то очереди, случайное бг и арена, или 2 обычных (не случайных бг), или может лфд сюда тоже считается, то будет не корректная работа, будет учитыватся только одна очередь (первая). А во вторых, сейчас потестил, почему-то у меня для рандом бг возвращало время инвайта 40 секунд, я специально подождал пока они пройдут и затем нажал войти - вошло. Хз, это близзы что-то не то намутили или с чем это связанно.
И еще важная штука, я когда пастил тебе все эти обрезанные версии забыл, что я под свою версию клиента убирал там функцию одну, тебе нужно в функции local function SafeQueue_Update() Заменить строку: for i=1, 11 do На: for i=1, GetMaxBattlefieldID() do
А может у меня показывало 40 секунд для рбг потому-что пиратка.. И вошло на него по истечении 40 секунд, потому-что пиратка. |
19 мар 2012, 16:41 |
|
<Имя Говорит Само за Себя> Сервер: Гордунни |
0
Можно вставать в 2 конкретных БГ или на одно случайное или на одну арену а лфд тут причем? Заменить строку:
Цитата: for i=1, 11 do
На: for i=1, GetMaxBattlefieldID() do Спасибо! Цитата: А может у меня показывало 40 секунд для рбг потому-что пиратка.. И вошло на него по истечении 40 секунд, потому-что пиратка.
На РБГ вроде как можно заходить в течение всего матча. |
19 мар 2012, 16:50 |
|
|
0
Ой фу, какое рбг, это я запарился. Случайное. Лфд тоже может считатся как одна из очередей, а может и не считатся, не знаю точно. |
19 мар 2012, 17:07 |
|
|
0
Есть вопрост по Scale объектов. Я не до конца понял как работает система скейла и координат в вове, читал две статьи, но пока не помогло: http://www.wowpedia.org/UI_Scale http://www.wowpedia.org/UI_Coordinates
Есть конкретная задача. На экране есть некоторый объект, и в данный момент меня устраивает его размер. Но затем возникает необходимость изменить parent этого объекта, а у этого парента другой скейл чем у предведущего парента, и отображаемый размер моего объекта изменяется, потому-что скейл наследуется от парента к чилдрену. Но наследуется он не путем назначения чилдрену такого-же значения скейла как у его парента, а как множитель, то есть скейл объекта в обоих случаях остается 1, но размер при этом разный. Вопрос, как рассчитать значения "компенсирующего" скейла, который я должен установить объекту, что-бы при новом паренте он был такого-же размера как и при старом.
Например: Скейл объекта = 1.1 Скейл парент1 = 1.2 Скейл парент2 = 2
На сколько нужно умножить/разделить скейл объекта, что-бы будучи чилдреном парент2 он имел такой-же реальный размер как если-бы был чилдреном парент1.
Возможно это очень простая задача для первоклассника, но я что-то сейчас туплю.
UPD Ага, дошло, что-бы отключить зависимость скейла объекта от парента нужно установить объекту скейл равный его скейлу деленому на скейл парента. Соответственно что-бы сделать то, что я хочу, нужно взять и установить объекту скейл, равный его скейлу деленному на скейл парент2 и умноженный на скейл парент1, и тогда его размер будет прежним. |
21 мар 2012, 00:29 |
|
<Имя Говорит Само за Себя> Сервер: Гордунни |
0
Возможно ли сделать универсальную функцию для выбора цвета текста на любом фрейме? Например смена цвета ника на юнит фреймах и цвета цифр в близзовском таймере? |
21 мар 2012, 01:09 |
|
|
0
Цвет текста на фрейме не имеет отношения к фрейму. Есть объект FontString, у него есть API где есть функция FontString:SetTextColor(red,green,blue,alpha) То есть что-бы изменить цвет какого-то текста, тебе нужно либо иметь ссылку на объект (FontString) являющийся этим текстом, либо знать его имя (если только он не безымянный).
То есть что-бы например поменять цвета текста на всех юнитфреймах нужно найти имена всех этих фонтстрингов, или-же найти способ нахождения ссылок на них.
Ну, а дальше, имея этот список объектов, составляем из него таблицу и итерацией по таблице устанавливаем всем объектам один цвет. |
21 мар 2012, 01:27 |
|
|
0
вот еще удобный вариант
|
21 мар 2012, 12:28 |
|
|
0
Привет. Интересует вопрос, можно ли получить доступ из LUA к вот этому тексту/фрейму: http://goo.gl/Sx7Ze ? Цвет там поменять, или функцию которая тригерится. |
29 мар 2012, 21:45 |
|
|
0
доброго времени суток! увожаемые зантоки подскажите пожалуйста как получить информацию о иконке по фрейм_бар возможно ли чтото вроде BT4Button1:ПоказатьПутьДоИко() ?
|
30 мар 2012, 06:11 |
|
|
0
Bers писал(а): доброго времени суток! увожаемые зантоки подскажите пожалуйста как получить информацию о иконке по фрейм_бар возможно ли чтото вроде BT4Button1:ПоказатьПутьДоИко() ?
Иконки спеллов можно найти на http://www.wowpedia.org/Portal:Main Например: спелл - Mind Control название иконки - Spell_shadow_shadowworddominate и путь соответственно Interface\\Icons\\Spell_shadow_shadowworddominate http://www.wowwiki.com/WoWWiki:WoW_Icons/Icon_List Оно ? |
30 мар 2012, 11:09 |
|
|
0
ну... тут нужно получить путь до иконки не для того чтобы насладится ею... а чтобы отследить изменение...
скажем в аддоне TellMeWhen
|
30 мар 2012, 13:00 |
|
|
0
RDIFB0 писал(а): Привет. Интересует вопрос, можно ли получить доступ из LUA к вот этому тексту/фрейму: http://goo.gl/Sx7Ze ? Цвет там поменять, или функцию которая тригерится.
Ты имеешь ввиду стандартный текст боя, который показывает нанесенный урон/исцеление? Точно уверен, что для него ты можешь поменять шрифт. Возможно еще добавить там обводку вокруг букв или тень.
Но запуск показывания этого текста, как и неймплеитов идет напрямую из движка игры, он не будет работать с чьими-то аддонами. С неймплеитами делают так - так-как они являются children от WorldFrame, то вешается функция которая много раз в секунду запрашивает количество children от WorldFrame и если оно изменилось (появился новый неймплеит), то мы получаем список этих чилдренов и по некоторым их свойствам (текстурка рамки неймплеита например), определяем что эта штука является именно фреймом неймплеита, а не каким-то другим рандом чилдреном, плюс при нахождении новых фреймов они кешируются в таблицу, что-бы в дальнейшем можно было по разному обрабатывать фреймы которые мы уже видели 1 раз, но они были скрыты и теперь показались, и которые только создались динамически. Теоретически, если этот текст является region от чего-то, то можно подобным образом пытатся поймать его, но так-как на данный момент не существует ни одного аддона работающего с стандартным текстом, то наверное там какие-то проблемы.
Bers писал(а): ну... тут нужно получить путь до иконки не для того чтобы насладится ею... а чтобы отследить изменение...
скажем в аддоне TellMeWhen
Что именно ты хочешь определять по изменению иконки, приведи пример.
Делается это через хуки функций установки текстуры к текстурам иконок данных фреймов, или через глобальный хук функции установки текстуры к текстуре (но это не ок), и без некоторого опыта программирования тут не обойтись.
Если тебе нужно отслеживать изменение условий использования какой-то абилки, то делается фрейм на которыйрегистрируется эвент "SPELL_UPDATE_USEABLE" (как-то так вроде), и вешается обработчик который будет проходить по списку интересующих абилок и проверять возможность их использования, и делать то, что тебе там нужно, если абилку стало можно юзать. |
30 мар 2012, 14:19 |
|
|
0
все гораздо сложнее :)
есть офгейм совтинка которая умеет читать API клиента и выводить полученные данные скажем в форме текста (в реальном времени) Грубо говаря нужна для своих разных целей
проблема в том что я хочу сделать простую логику (в моей софтинке) если в TellMeWhen_Group1_Icon1 находится к примеру(Interface\\Icons\\Spell_shadow_shadowworddominate) делай следующее действие: (вытаскивай из вова картинку-ложи в нужную папку и вноси в базу мускул путь) все что касается самого процеса проблем нет но как в API сказать выводи путь до иконки в определенном фрейме понять немогу
тоесть мне нужно чтото простое типо /run print(TellMeWhen_Group1_Icon1:ПутьДоИконки()); увы я неочень знаком с правелами этого языка, пока знаю тока такой метод вывода может быть есть чтото вроде ПутьДоИконки(TellMeWhen_Group1_Icon1) ? весь вики по API и LUA излазил так нечего ненашол ... только все связанное с координатами итдтп |
30 мар 2012, 18:47 |
|
|
0
Если тебя интересует просто получение пути к иконки в какой-то самим тобой установленный момент времени то нет никаких проблем.
Я думал тебе нужен механизм который будет вызывать какой-то твой обработчик каждый раз, когда в некоторых фреймах поменялась текстурка иконки.
На примере фреймов бартендера4, там каждый фрейм имеет такую структуру:
Level 1: BT4Button52 (CheckButton)
То есть что-бы, к примеру, получить текстурку установленную в кнопку бартендера, находящуюся под твоим курсором мышки можно использовать следующий скрипт:
/run print(select(1, GetMouseFocus():GetRegions()):GetTexture())
Если нужна текстура какой-то конкретной кнопки бартендера то вместо GetMouseFocus() пиши ее название или ссылку на нее.
Но это работает только для бартендера4.
Что-бы получать иконки от других фреймов, ты должен разобратся чьим region (какого фрейма) является объект texture в который установлена эта иконка, и на каком месте он стоит среди других регионов этого фрейма. Ах да, еще у texture может быть имя, тогда зная ее имя ты можешь обращатся к ней по этому имени, т.е. ИмяТекстуры:GetTexture() вернет тебе установленную в нее текстуру. Ну, а эта штука с регионами это просто способ получить ссылку на текстуру, но ее можно получить и по другому, например у текстуры может не быть имени, но на нее может быть ссылка в глобальном окружении используя которую можно делать все тоже, что и с именем. |
30 мар 2012, 18:59 |
|
|
0
Отрицание писал(а): запуск показывания этого текста, как и неймплеитов идет напрямую из движка игры, он не будет работать с чьими-то аддонами
Блин жаль, идея фикс тогда накрылась. Bers писал(а): тоесть мне нужно чтото простое типо /run print(TellMeWhen_Group1_Icon1:ПутьДоИконки());
Вродь как-то так /run print(TellMeWhen_Group1_Icon1Icon:GetTexture()) |
30 мар 2012, 19:06 |
|
|
0
Отрицание и RDIFB0 респект вам и уважуха!
2 недели гуглил именно это
ОГРОМНОЕ СПС!!! |
31 мар 2012, 02:50 |
|
|
0
Мне нужна штука, которая делала-бы из луа скриптов standalone .exe, нашел srlua, разбираюсь как и что с ним делается, кто-нибуть пробовал делать такое вообще? |
31 мар 2012, 14:55 |
|
|
0
Хмм, нашел еще несколько самодельных сборщиков, но какие-то они все стремные, походу нужно как-то делать это самому вижуал студию. |
31 мар 2012, 16:33 |
|
|
0
Разбираюсь с AceDB, не могу понять как делать дефолтовую дб. Вот у меня есть некоторая таблица
local DefaultDB = {
Где содержится дефолтный каркас по которому создавать все профили, в аддоне первой командой для создания дб используется:
DB = LibStub("AceDB-3.0"):New(AddonName..'DB', DefaultDB, true)
Но при первом запуске аддона (в смысле удалив файлики сейвед вариаблес из втф) профиль Default создается полностью пустой, ни одно из значений из таблицы в нем не сохраняется.
Так-же пробовал после этой первой команды юзать:
DB:RegisterDefaults(DefaultDB)
И все равно значения из моей DefaultDB таблицы не заносятся туда.
|
01 апр 2012, 01:49 |
|
|
0
MainMenuBarLeftEndCap:Hide();MainMenuBarRightEndCap:Hide() Всегда работало, создал аддон. Всегда все ок было, сегодня захожу с этим аддоном 10-15фпс. без него 45-60. Что сломалось? |
01 апр 2012, 02:00 |
|