duvo
-
Постов
202 -
Зарегистрирован
-
Посещение
Тип контента
Загрузки
Форумы
Статьи и объявления
Гардероб
Маунты
Сообщения Allods Team
Трекер ошибок
Магазин
Галерея
Сообщения, опубликованные duvo
-
-
Процесс как-то не идет, мотивация на 0 Надо доделать подсказки, меню, но пока что-то никак.
-
Почитал тему, занятно
Сам ковырялся в прошлом году с <Sizing> и Ко, но не так умело (не использовал GetPlacementPlain()), а тупо методом проб и ошибок
Что касается WIDGET_SIZING_CHILDREN. В описатель панельки заголовка wtTitle.(WidgetPanel).xdb нужно добавить два параметра: <sizingWidget> и <Sizing>, и все будет шоколадно ^____^
Code:<?xml version="1.0" encoding="UTF-8" ?><WidgetPanel>
<Name>wtTitle</Name>
<Priority>1</Priority>
<Children>
<Item href="Texts/labTitle.(WidgetTextView).xdb#xpointer(/WidgetTextView)" />
</Children>
<BackLayer href="Textures/MinimapTitle.(WidgetLayerTiledTexture).xdb#xpointer(/WidgetLayerTiledTexture)" />
<Placement>
<sizingWidget href="Texts/labTitle.(WidgetTextView).xdb#xpointer(/WidgetTextView)" />
<X>
<Align>WIDGET_ALIGN_HIGH</Align>
<Sizing>WIDGET_SIZING_CHILDREN</Sizing>
<HighPos>134</HighPos>
<Size>300</Size>
</X>
<Y>
<Align>WIDGET_ALIGN_LOW</Align>
<Pos>23</Pos>
<Size>63</Size>
</Y>
</Placement>
<clipContent>true</clipContent>
</WidgetPanel>
-
Чудеса какие-то. Удалил АМ, скачал аттач, распаковал, вставил в LightDPS
Code:common.RegisterEventHandler(function( params )
if params.target == common.GetAddonName() then
userMods.SendEvent( "SCRIPT_ADDON_INFO_RESPONSE", {
sender = params.target,
desc = "pew-pew!!!11oneone",
--showDNDButton = true,
--showHideButton
showSettingsButton = true,
--addonsBlocked = { "ContextDamageVisualization" }
} )
end
end,
"SCRIPT_ADDON_INFO_REQUEST"
)
Появилась одна кнопка. Раскомментировал showDNDButton и showHideButton, перезагрузил в АМ'e, появились еще 2 кнопки.
Да, после того, как закомментировал их вновь, перезагрузил, они никуда не исчезли.
Попробуй заменить в AddonManager.lua на
Code:addon.handlers [ "SCRIPT_ADDON_INFO_RESPONSE" ] = function( event )...
if event.showDNDButton then
item.isLocked = addon.config.avatar and addon.config.avatar [ sender ] and addon.config.avatar [ sender ] .isLocked or false
W( "ButtonToggleDND", item.w ):SetVariant( item.isLocked and 1 or 0 )
userMods.SendEvent( "SCRIPT_TOGGLE_DND", { target = event.sender, state = item.isLocked } )
end
W( "ButtonToggleDND", item.w ):Show( event.showDNDButton or false )
W( "ButtonShowHide", item.w ):Show( event.showHideButton or false )
W( "ButtonSettings", item.w ):Show( event.showSettingsButton or false )
...
end
-
Quote:...отвечу на любые вопросы касательно виджетов...
Имеется WidgetTextView с <Sizing>WIDGET_SIZING_INTERNAL</Sizing> и <maxWidth>256</maxWidth>. Вставляю строку, состоящую из 100500 символов. Как ограничить высоту виджета, например, 5 линиями-строками? Т.е., чтобы его размер был:
256 X { ( 2 + 4 ) * lineSpacing + 5 * fontsize }.
Значение тэга <size> в Placement'е не будет этим самым ограничителем, или при Sizing = WIDGET_SIZING_INTERNAL игнорируется <size>? -
1. Исправил, но не залил.
Quote:я могу навыделять кучу аддонов на первой заклаадке, затем, на кучу аддонов на второй закладке, затем нажму "Выгрузить все" - и выгрузит с обоих закладок?Нет. "Выгрузить все" - выгружает только _все пользовательские_, а вот "Выгр. Выбранные" - выгружает выбранные пользовательские и стандартные.
-
Quote:ЗЫЫ. С кнопками траблы какие то. У меня появляется только крайняя правая, и потом никак исчезать не хочет до перезапуска менеджера (перезаход)
Странно. Ни с CT_Total, ни с GuildGui нет никаких проблем. Или кнопка не пропадает при отключении аддона? Если да, она и не должна Просто дизэйблится. -
1. Исправил.
2. Не знаю А кто-то будет считать? Ну, пусть будет 256 +/- 16 о_0
3. Исправил, но не залил.
4. Хм. Надо DnDLib -> ContextDragNDrop
5. Ок, выкинул.
6. Исправил, но не залил.
7. Свернуть SCRIPT_TOGGLE_UI в функцию и отправлять по EVENT_AVATAR_CREATED?
8, 9. GetGameLocalization() -> addon GameLoc. На SCRIPT_GET_GAME_LOCALIZATION { sender = common.GetAddonName() } отвечать SCRIPT_GAME_LOCALIZATION { target = "", localization = }. Т.е. выделить аддоны ContextDragNDrop, GameLoc (а дальнейшем Tooltip, Popup и т.п. ) в отдельную группу, ммм, "системных" аддонов, не?
Quote:А для чего там 3 узких колонки справа (в окне AddonManager)?Там кнопки, которые по умолчанию скрыты: днд, скрыть, настройки. Их видимость определяется в SCRIPT_ADDON_INFO_RESPONSE.
-
Quote:Дефолтные значения какие?
false/nil o_0Quote:"/am" уже не работает?
Пока закомментировал, дуамю, добавить в настройки editline, чтоб каждый забивал команду(-ы) по вкусу.Quote:U_EVENT_ADDON_MEM_USAGE_REQUEST не будет?
Будет посылаться один раз вызове подсказки. -
1. Хорошо, не вопрос.
2. Да, ошибка. Должен быть sender, исправил.
3. В CT_Total MainPanel -- это виджет с кнопкой, нажатие которой открывает панель с настройками. Виджет скрываю, т.к. настройки вызываются из АМ.
-
Quote:а лучше, чтобы он просил аддон выключиться самостоятельно
А если при выполнении скрипта возникнет критическая ошибка? Как его отключить/перезагрузить при таком подходе? -
Тестовая версия. В общем, она практически финальная (осталось добавить подсказки и контекстное меню ), я надеюсь, но нужна проверка перед релизом о_0.
ВАЖНО! Данная версия НЕ для пользователей, а для разработчиков. Если вы это прочли и проигнорировали, "сами буратины".
Отличия от r1:
-- добавлена кнопка для вызова главного окна;
-- убрана кнопка "Скрыть все". Теперь должно скрываться самостоятельно (спасибо Setras'у за идею с таймером) при открытии главного меню игры/отключении интерфейса (отправляется событие SCRIPT_TOGGLE_UI);
-- немного изменены названия событий и добавлены новые:
SCRIPT_ADDON_INFO_RESPONSE {
sender (string) -- название аддона (common.GetAddonName() ); desc (string) {optional [/default: addonname] } -- описание аддона;showDNDButton (boolean) {optional [/default: false] } -- показать кнопку переключения состояния DnD? Если да, то при нажатии кнопки будет отправляться событие SCRIPT_TOGGLE_DND { target = addonName }; showHideButton (boolean) {optional [/default: false] } -- показать кнопку переключения видимости аддона/элементов_аддона? Если да, то при нажатии кнопки будет отправляться событие SCRIPT_TOGGLE_VISIBILITY { target = addonName }; showSettingsButton (boolean) {optional [/default: false] } -- показать кнопку вызова настроек? Если да, то при нажатии кнопки будет отправляться событие SCRIPT_SHOW_SETTINGS { target = addonName }; addonsBlocked (table) {optional [/default: nil] } -- массив, элементы -- названия аддонов, которые необходимо включить, при отключении целевого аддона. }-- изменен механизм сохранения. В глобальную секцию записываются только комментарии, положения кнопки и окна (пока не реализовано). В секцию аватара состояние аддона и его "пристегнут ость";
-- небольшой ре-дизайн.
Перед пробой лучше сделать резервную копию user.cfg.
Взаимодействия проверял с CT_Total, добавив в CT.lua:
Code:function SCRIPT_ADDON_INFO_REQUEST( params )if params.target == common.GetAddonName() then
MainPanel:Show( false )
userMods.SendEvent( "SCRIPT_ADDON_INFO_RESPONSE", {
sender = params.target,
desc = "desc-desc! pew-pew!!!11oneone",
showDNDButton = true,
--showHideButton
showSettingsButton = true,
addonsBlocked = { "ContextDamageVisualization" }
} )
end
end
function SCRIPT_SHOW_SETTINGS( params )
if params.target == common.GetAddonName() then
Options:Show( true )
end
end
common.RegisterEventHandler( SCRIPT_ADDON_INFO_REQUEST, "SCRIPT_ADDON_INFO_REQUEST" )
common.RegisterEventHandler( SCRIPT_SHOW_SETTINGS, "SCRIPT_SHOW_SETTINGS" )
Несколько сумбурно, но голова уже не варит. Все, ушел спать
upd: Исправлена досадная ошибка при добавлении комментария в процессе создания элемента.
File: yQvTCrOG7cX7RSw.zip -
SLA, вот поэтому лучше избегать какой-то конкретики: как только, так сразу.
-
Quote:создавая любую переменную Global мы можем через нее передавать данные между разными аддонами... так?
Нет. Для каждого аддона создается своя "песочница". Обмен осуществляется с помощью событий.
LibDnD давно пора перевести в аддон. Это уже предлагалась, как минимум, тут. -
Стандартные -> UpgradeMetaItem -> Включить -> Сохранить
-
Думаю, заметили, но для написания и тестирования такого аддона, разумеется, требуется время, которого, видимо, пока ни у кого нет
-
В каком виде нужно показывать мп и хп?
-
Да, можно. Если есть какой-то виджет с уникальным именем, не встречающимся в других аддонах, достаточно воспользоваться рекурсивным поиском
Code:stateMainForm:GetChildChecked( "UniqueName", true )Затем "подняться" до, например, mainFrame с помощью :GetParent().
Каким образом виджеты Item'a в логе оказались связаны с ContextRuneCombiner2, я, честно говоря, не знаю.
-
Из доков:
Quote:unit.GetTrioInfo( unitId )-- параметры:
unitId: ObjectId ( not nil ) -- идентификатор игрока
Когда цели нет
Code:targetId = nilСледовательноCode:unit.GetTrioInfo( targetId )вызовет ошибку. Избавиться от нее просто:Code:local Gibberling = targetId and unit.GetTrioInfo( targetId ) -
Может, следует вопрос задавать в существующей теме, а не создавать новую?
-
1-ый код -- это дети Item.(WidgetPanel) менеджера аддонов
-
Code:[ "Raid" ] = "Отряд",
[ "Emote" ] = "Эмоция",
[ "World" ] = "Мир",
[ "Shout" ] = "Крик",
[ "Officer" ] = "Офицеры",
[ "System" ] = "Система" or "Уведомления"
[ "Telepathy" ] = "Мистик",
[ "Online" ] = "заходит в мир.",
[ "Offline" ] = "выходит из мира.", -
Упс, моя недоработка
Попробуй заменить в WhisperWindow.lua строки 124 и 125:
Code:local quality = avatar.GetItemInfo( v.item:GetId() ).qualityfragments [ i + 1 ] :SetClassVal( "quality", IQColor [quality] )
на
Code:local info = avatar.GetItemInfo( v.item:GetId() )fragments [ i + 1 ] :SetClassVal( "quality", IQColor [info.quality] .. ( info.isCursed and "Cursed" or "" ) )
-
По-моему, такая функция попадалась, но зачем это нужно? о_0
-
Это невозможно, как минимум, по двум причинам: во-первых, нам не доступна работа с горячими клавишами; во-вторых, нет возможности из скрипта запускать заклинание/использовать предмет.
AddonManager
в Техподдержка
Опубликовано
Ага, видел, пробовал. Ловить нажатия клавиш мы не можем. Ребинд доступен в настройках, свои бинды создавать нельзя. Для чего этот функционал нужен, не понимаю.