-
Постов
103 -
Зарегистрирован
-
Посещение
Тип контента
Загрузки
Форумы
Статьи и объявления
Гардероб
Маунты
Сообщения Allods Team
Трекер ошибок
Магазин
Галерея
Сообщения, опубликованные Anfet
-
-
Да. Забыл что отключил вертикальный рост.
С вопросами подумаю
-
Подправил. Вроде теперь только одна версия.
Это мой первый выложенный аддон, так что пока учусь
По поводу списка подумаю завтра.
-
Выложил. Тестите.
-
Можно попробовать так.
'Настойка "Капитан"'
т.е. вместо " ставить '
Сегодня выложу апдейт. Он уже сортирует вещи и берет части названий.
-
Что касается клавиатурных реакций... Я могу попробовать, но это нужно самому настраивать бинды. Это создание файла прописывание биндов.
Оно не в папке аддона, поэтому это все делает сам юзер (
Поэтому и не добавил.
-
Открываете settings.lua и вписываете все вещи что душе угодно.
Только нужно вписывать строго имя вещи как есть, включай Заглавные буквы и ЕЁ и т.д.
Я продумаю сортировку и частичные вещи (это когда сильное зелье магической силы и астральное будет считаться одним и тем же)
-
Вопросики такого плана.
1. Представим что я хочу добавить какой-то свой произвольный параметр, скажем, в кнопку. Как этого достигнуть? Как получить потом этот параметр?
2. Если кнопку сделать disabled, ей нужно давать отдельную текстуру или можно как-то оттенить то серого варианта?
-
Спасибо большое.
Еще вопрос.
Как правильно инициализировать персонажа?
При загрузке частенько avatar.getid выдает nil.
По аватар создан тоже не вариант.
Как делать?
-
Еще вопрос. Как отресетить виджет.
Ну или переместить его в нужное место?
-
Спасибо.
А как же юзеру это объяснять. Это ж убиться можно....
-
Спс за ответ.
Еще вопрос.
Можно ли на свою кнопку прописать сочетание клавиш?
-
Увидел. Спасибо.
Бомбардирую просто вопросами.
Вот еще один.
Если у меня есть майн панель в которую нужно проставить еще панели где будет находится текстура + текст.
Текстура игровая. Панели должны добавлятся динамически.
План такой.
Главная панель ---------------------
Текстура - текст
Текстура - текст
---
конец панели-------------
В связи с этим 2 вопроса.
1) как создавать динамически списки виджетов
2) как рисовать текстуру из игры?
Спасибо.
-
Спасибо огромное. Наконец-то сделал аддон для сдачи СО.
Ещё вопрос.
Чем можно узнать информацию о камнях?
Вроде как getItemInfo, но там что-то пусто.
-
Еще вопрос. Нам что-то дали с работой по календарю? Тот же СО...
-
Еще вопрос. Можно ли через аддон писать что-то в файл (но не логовый)?
-
Такого нет.
Но есть вариант выкидывать серые вещи.
В теории развитие аддона должно быть примерно таким.
Зарегистрировать евент EVENT_AVATAR_ITEM_TAKEN.
В нем пройти по всему инвентарю и проделать следующее
avatar.GetInventoryItemId( от 0 до размера )
если не nil то берем тип вещи avatar.GetItemInfo( itemId )
если оно ITEM_QUALITY_JUNK
то удаляем avatar.InventoryDestroyItem( index )
Вообщем всё. У тебя в теории никогда не будет серый вещей в инвентаре.
-
Решил вопрос.
Duvodas помог. Не был указан TextRef, а также еще некоторые элементы )
-
Вопрос.
Из-за чего может не ставиться текст кнопки.
Кнопка взята из сэмплов. В игре видна, драгается, отвечает на клики, но попытка выставить хоть какой-то caption на него результатов не принесли.
Содержимое xbd
<?xml version="1.0" encoding="UTF-8" ?><WidgetButton>
<Name>wtFocus</Name>
<Priority>9000</Priority>
<Placement>
<X>
<Align>WIDGET_ALIGN_LOW</Align>
<Size>105</Size>
</X>
<Y>
<Align>WIDGET_ALIGN_LOW</Align>
<Size>30</Size>
</Y>
</Placement>
<IgnoreDblClick>true</IgnoreDblClick>
<TextTag>button_label</TextTag>
<Variants>
<Item>
<TextFileRef href="" />
<LayerHighlight href="ButtonRegularHighlighted.(WidgetLayerTiledTexture).xdb#xpointer(/WidgetLayerTiledTexture)" />
<PushedOffset x="-2" y="2" />
<StateNormal>
<LayerMain href="ButtonRegularNormal.(WidgetLayerTiledTexture).xdb#xpointer(/WidgetLayerTiledTexture)" />
<FormatFileRef href="ButtonFormatNormal.txt" />
</StateNormal>
<StatePushed>
<LayerMain href="ButtonRegularPressed.(WidgetLayerTiledTexture).xdb#xpointer(/WidgetLayerTiledTexture)" />
</StatePushed>
<StateDisabled>
<LayerMain href="ButtonRegularDisabled.(WidgetLayerTiledTexture).xdb#xpointer(/WidgetLayerTiledTexture)" />
<FormatFileRef href="ButtonFormatDisabled.txt" />
</StateDisabled>
<ReactionOnUp>true</ReactionOnUp>
<Reaction>FocusReaction</Reaction>
</Item>
</Variants>
<TextStyle>
<Align>ALIGNY_MIDDLE</Align>
</TextStyle>
</WidgetButton>
ButtonNormalFormat.txt
<button fontsize="14"><r name="button_label"/></button>Вот такой код
wtFocus:SetVal("button_label", userMods.ToWString("-") )ничего не дает. Кнопка так и остается пустой.
Может есть какая-то функция update которую я пропустил?
-
Всё. Разобрался спасибо.
-
Да.
Info: addon Test: Initialization sampleError: addon Test:
Error: addon Test:
Error: addon Test: func: ?, ?, line: -1, defined: C, line: -1, [C]
Error: addon Test: func: Init, global, line: 6, defined: Lua, line: 4, [string "Mods/Addons/Test/Test.lua"]
Error: addon Test: func: ?, ?, line: 9, defined: main, line: 0, [string "Mods/Addons/Test/Test.lua"]
Error: addon Test: Attempt to read from undeclared global variable: LogToChat
Error: addon Test: Error while running the chunk
Error: addon Test: [string "Mods/Addons/Test/Test.lua"]:6: attempt to call global `LogToChat' (a nil value)
Error: addon Test: func: LogToChat, global, line: -1, defined: C, line: -1, [C]
Error: addon Test: func: Init, global, line: 6, defined: Lua, line: 4, [string "Mods/Addons/Test/Test.lua"]
Error: addon Test: func: ?, ?, line: 9, defined: main, line: 0, [string "Mods/Addons/Test/Test.lua"]
Error: addon Test: Can't execute script for addon: Mods/Addons/Test/AddonDesc.(UIAddon).xdb
Если выставить просто функцию - то выходит такие ошибки.
-
Добрый день.
Задался вопросом написать хоть какой-то аддончик.
И конечно же сразу же наткнулся на проблему инициализации объектов.
Взял исходный код icreator для надписи сообщения в свой чат.
--------------------------------------------------------------------------------------
Global( "Chat", {} )
local wtChat = nil
local chatRows = 0 --- for clear buffer after show messages
function Chat:LogToChat(message, color, fontSize)
if not wtChat and not errMess.Chat then
---- если окно еще не искали и ошибки при этом не было. а если уже ошибка была то не искать
--- найдем окно чата
--- Chat..Chat
local w
w = stateMainForm:GetChildUnchecked("Chat", false)
if not w then
--- главня форма не найдена - найден по ребенку
w = stateMainForm:GetChildUnchecked("Chat", true)
else
w = w:GetChildUnchecked("Chat", true)
end
wtChat = w
end
if not wtChat or not wtChat.PushFrontValuedText then
if not errMess.Chat then
errMess.Chat = "can't find Chat window"
LogError(errMess.Chat)
end
return
end
local valuedText = common.CreateValuedText()
--- fontname=\"AllodsWest\"
local format = "<body alignx='left' fontname='AllodsSystem' fontsize='"..(fontSize or 14)
format = format.."' shadow='1' ><rs class='color'><r name='text'/></rs></body>"
valuedText:SetFormat(userMods.ToWString(format))
if color then
valuedText:SetClassVal( "color", color )
else
valuedText:SetClassVal( "color", "LogColorYellow" )
end
if not common.IsWString( message ) then message = userMods.ToWString(message) end
---message = ToWS(chatRows.. ":".. FromWS(message))
valuedText:SetVal( "text", message )
---wtChat:PopBack() --- ++
chatRows = chatRows + 1
wtChat:PushFrontValuedText( valuedText )
---wtChat:PushFrontRawText( message ) --- текст не видно ((
end
--- call by "EVENT_SECOND_TIMER" - for clear messages from chat
function Chat:ClearChat( size )
for i=1, size or math.ceil( chatRows / 30 ) + 1 do
if chatRows < 1 then break end
chatRows = chatRows - 1
wtChat:PopBack()
end
end
------------------------------------------------------------------------------------
Вроде как тут всё понятно.
Теперь сам test.lua
---------------------------------------------------------------------------------- INITIALIZATION
--------------------------------------------------------------------------------
function Init()
LogInfo( "Initialization sample" )
Chat:LogToChat({ text = "Привки ВСЕМ!", color = "LogColorGreen" })
end
--------------------------------------------------------------------------------
Init()
--------------------------------------------------------------------------------
Тоже всё ясно.
В AddonDesc следующие подключения:
<Item href="Chat.lua" /><Item href="Test.lua" />
Однако в логах выводится ошибка что Chat nil.
Я честно пытался искать как его заинициализировать, но тщетно. Тот же LibDND тоже используется одну глобу и после легко к ней обращается. Без какой-либо инициализации.
Если просто подключить функиции, то в логе идёт ошибка декларации LogToChat
Error: addon Test: Attempt to read from undeclared global variable: LogToChatПодскажите что я не догоняю? Как правильно подключать внешние Lua файлы чтобы исходник видел внутренние функции.
PvPItemPanel
в Техподдержка
Опубликовано
Попробую ответить по порядку.
- Вертикальной распределение будет чуть позже.
- Размер текста контролируется в файле Widgets\ButtonFormatNormal.txt параметр fontsize
- С кулдауном, стопками и текстом сложнее. Сейчас панель это панель и кнопки. Чтобы сделать сразу три надписи, их надо создавать отдельно писать и обновлять. А это стоит процессорного времени. А вот расположить что есть влево вправо можно.
- Названия. Если вы пишете полное название, например, Сильное зелье магической силы, то надо писать как есть. Но если написать просто зелье магической силы, то аддон подхватит как Астральное, так и Сильное, так и Обычное.