duvo
-
Постов
202 -
Зарегистрирован
-
Посещение
Тип контента
Загрузки
Форумы
Статьи и объявления
Гардероб
Маунты
Сообщения Allods Team
Трекер ошибок
Магазин
Галерея
Сообщения, опубликованные duvo
-
-
Да, все верно. В этот файл заносятся UISingleTexture (кстати, <name><name /> следует исправить на <name></name>), затем путь до UIRelatedTextures прописывается в AddonDesc, например, в <textures href="" />.
-
Пока нигде. Ее еще допиливать и допиливать.
-
Для подключения текстур используются другие тэги:
Code:<textures href="" />или
Code:<texturesGroups><Item>
<groupName />
<textures href="" />
</Item>
</texturesGroups>
Кроме того, в UIRelatedTextures прописываются только UISingleTexture, по-моему.
-
Эм, приоритет главной формы? Не знаю, с чем это может быть связано, честно говоря.
-
Идея понятна и уже реализована в тестовой версии. АМ при старте отправляет событие SCRIPT_ADDON_INFO_REQUEST { target = addonName }. Если ваш аддон принимает событие, он может скрыть свою кнопку вызова настроек и отправить ответ SCRIPT_ADDON_INFO_RESPONSE {
target [string] -- название аддона (common.GetAddonName() );desc [string/wstring] {optional} -- описание аддона;showDNDButton [boolean] {optional} -- показать кнопку переключения состояния DnD? Если да, то при нажатии кнопки будет отправляться событие SCRIPT_TOGGLE_DND { target = addonName };showHideButton [boolean] {optional} -- показать кнопку переключения видимости аддона/элементов_аддона? Если да, то при нажатии кнопки будет отправляться событие SCRIPT_TOGGLE_VISIBILITY { target = addonName };showSettingsButton [boolean] {optional} -- показать кнопку вызова настроек? Если да, то при нажатии кнопки будет отправляться событие SCRIPT_SHOW_SETTINGS { target = addonName };list [table] {optional} -- массив, элементы -- названия аддонов, которые необходимо включить, при отключении целевого аддона.}
Пока все в таком виде о_0
-
Code:t = {}
t ["d"] =1
t ["a"] =2
t ["z"] =0
local function Sort( tab, dir )
local t = {}
for k in pairs( tab ) do table.insert( t, k ) end
if dir then table.sort( t, function( a, b ) return a > b end ) else table.sort( t ) end
--table.sort( t, function( a, b ) return dir and a > b or a < b end )
for _, v in ipairs( t ) do LogInfo( tab [ v ] ) end
end
Sort( t )
upd: Commented line was replaced by a common if-else statement, because, in this case, using and-or construction with existing "dir" breaks the sort function. -
Quote:тултипы это просто еще один скрипт... тобишь аддон... И именно его я собираюсь сделать сейчас. наработки уже есть небольшие, но пока все застопорилось... из за отсутствия времени
Ситуация один в один XD -
Да, об этому уже раньше писалось, пока в работе.
-
2icreator
В теме Интерфейсные аддоны (Инструкция) Ciuine писал:
Quote:By the way the list in the NA version is not as pretty as just saying "LagMeter"... 90% of our MainForm's are named.. MainForm.Видимо, во всех non-ru версиях имеется эта проблема, поэтому получать ссылки на виджеты придется перебором.
-
Пока никак. Нужно писать аддон-движок для подсказок и, по-хорошему, контекстного меню.
Базу первого сделал, но нужно добавить несколько шаблонов.
-
Quote:информация о предмете
В последней версии это добавлено. -
I've added some functional, which represents links on items as valuedObject (like you did it with the "name"), but you could use it only, if the "EVENT_CHAT_MESSAGE_WITH_OBJECTS" exists in your version.
Also added a very simple function to concatenate zero and the time vars, if those values less then ten.
Oh, and has replaced "Гильдии" on "Гильдия", because the first variant is the plural.
File: WhisperWindow.zip -
В общем, LibTiogan у меня не дал никакого эффекта: ни в составе WW/CTT, ни будучи добавленным в другой аддон. Странно, да
В обкатываемую версию АМ пока включил следующий код, вроде, работает о_0 Решил зацепиться за состояния формы/панели главного меню. Все-таки вероятность его отключения заметно ниже, чем у чата, т.е. более устойчивый маркер.
Code:----------------------------------------------------------------------------------------------------- SCRIPT_TOGGLE_UI
---------------------------------------------------------------------------------------------------
do
Global( "check", {} )
for _, v in ipairs( stateMainForm:GetNamedChildren() ) do
local widget = v
if next( check ) then break end
for _, v2 in pairs( v:GetNamedChildren() ) do
if next( check ) then break end
for _, v3 in pairs( v2:GetNamedChildren() ) do
if v3:GetName() == "CurrentShard" then
table.insert( check, widget )
table.insert( check, widget:GetChildChecked( "MainPanel", false ) )
break
end
end
end
end
end
---------------------------------------------------------------------------------------------------
common.RegisterEventHandler(
function()
local isVisible = check [ 1 ] :IsVisible() and not check [ 2 ] :IsVisible()
if check [ 3 ] ~= isVisible then userMods.SendEvent( "SCRIPT_TOGGLE_UI", { visible = isVisible } ); check [ 3 ] = isVisible; end
end,
"EVENT_SECOND_TIMER"
)
---------------------------------------------------------------------------------------------------
Не флудит событием, кнопку "Скрыть все" можно выкинуть.
-
Полагаю, если имя НИПа сохранять непосредственно (без перевода в string для конкатенации), в .cfg будет вполне корректная запись L"Имя_НИПа".
-
Посмотрел код по диагонали: проблема с aospider решается, во-первых, отказом от преобразований to-/fromWString; во-вторых, заменой кириллических имен полей латинскими или вовсе использованием массива. Это потребует, видимо, несколько изменить структуру данных, чтобы аддон продолжал выполнять свою функцию, но иного пути достижения совместимости "малой кровью" не вижу. Разумеется, имхо.
Если же говорить о локализации в общем, от relatedtext никуда не деться. Все-таки, хранить строки в скрипте и преобразовывать -- это не вариант, как бы удобно ни было.
p.s. В аддонах ВоВ строки хранятся прямо в скрипте. Хм...
-
На данный момент это невозможно, информация о текущем действии игрока/монстра недоступна.
-
Вроде, нет, получить никак. Зачем запихивать результат в WString? Для чего это нужно? Может, возможно как-то иначе все реализовать.
-
At P.S. he wrote: "Add a raid window, if it's not difficult."
-
Quote:кнопок нет
2Ciuine
In this case, more correct translation of "say" is "Разговор", because "Разговор" is a noun, and "Говорят" is a verb. -
Видимо, остается только играться форматами. Например,
Code:local format = userMods.ToWString( "<body><r name='name'/> [<r name='level'/>] </body>" )
wtTextView:SetFormat( format )
wtTextView:SetVal( "name", object.GetName( avatar.GetId() ) )
wtTextView:SetVal( "level", common.FormatInt( unit.GetLevel( avatar.GetId() ), "%d" ) )
-
Да, разумеется, можно и так все организовать. Но в таком случае понадобится, чтобы каждый пользователь, желающий, чтобы аддоны прятались, должен будет устанавливать АМ, который, может быть, ему и не нужен вовсе о_0 Не хотелось бы что-то навязывать.
Кроме того, нужно как-то решить проблему одноименности форм в NA версии. Можно, конечно, перебирать детей каждой формы и искать совпадение, но это как-то "топорно".
-
Вопрос:
Quote:Вот тема. Хотелось бы получить официальный комментарий. Интересует, разумеется, правомерность модификаций таким образом. Не противоречит ли это пользовательскому соглашению?Ответ Коммандора:
Quote:С нашей стороны в этом никакого криминала нет. Хотите работать с позиционированием и текстурами окон - пожалуйста. Но если благие намерения приведут к чему-нибудь зловредному и разрушающему игру, вы вынудите нас отреагировать. -
Кстати, состояние видимости какой-нибудь стандартной формы/панели можно использовать в качестве маркера отключения интерфейса/перехода в главное меню. Правда, отслеживать это состояние возможно лишь по EVENT_SECOND_TIMER, я так понимаю. Это не есть хорошо.
-
Это, конечно, здорово, но меня смущает вот это из пользовательского соглашения:
Quote:Ограничения для Пользователей Игры:
18. Пользователям запрещен взлом/попытка взлома программных компонентов и/или перехват данных, поступающих к серверу или от сервера. Любое модифицирование, изменение, декомпиляция, продажа, распространение модифицированных материалов Игры целиком либо по частям. Использование программных ошибок, изменения программного кода, получение несанкционированного доступа к серверу и базе данных Игры. В отдельных случаях Оператор имеет право немедленно приостановить доступ Пользователя к Игре и обратиться в органы внутренних дел для рассмотрения в действиях нарушителя наличия или отсутствия состава преступлений, предусмотренных Уголовным Кодексом Российской Федерации или иными аналогичными законами стран — мест пребывания нарушителя.
Не уверен, подпадет ли
Quote:Вы хотели поменять текстуры стандартного интерфейса? Скрыть ненужные текстовые строки\кнопки стандартного аддона из своего? Или вы хотели переместить какие-либо элементы?под этот пункт.
RuneCalc
в Техподдержка
Опубликовано
Я-то? Не, ни разу не против. Это скорее надо у мыло.ру интересоваться XD