мои замечания.
Файлы с расширением .xdb и .lua - обычные текстовые. Желательно их редактировать в обычном NotePad(Блокнот) - так чтобы кодировка осталась та же. Я например долго мучилась, редактируя .xdb в XML NotePad - он переворачивал текст в кодировку виндовскую что ли, и эти файлы переставали работать.
Файлы .xdb содержат описание графического интерфейса, .lua - содержат программы обработки.
Для начала можно скопировать похожий на ваш будущий аддон уже существующий в новую паку (с названием вашего аддона) и переправить там некоторые названия в .xdb - просматривая все что вложено по тегу <Children>
Code:
<Children>
<Item href="GUI/MainPanel.(WidgetPanel).xdb#xpointer(/WidgetPanel)" />
</Children>
начиная с MainForm.(WidgetForm).xdb
так например в файле MainPanel.(WidgetPanel).xdb написать в <Children>:
<Item href="InputMyName.(WidgetEditLine).xdb#xpointer(/WidgetEditLine)" />
Заметьте, что типВиджета в строке: (ТипВиджета).xdb#xpointer(ТипВиджета) - должны совпадать
затем переименовать файл Input1.(WidgetEditLine).xdb в InputMyName.(WidgetEditLine).xdb
Затем в этом файле поменять тег имени:
<Name>Input1</Name>
на
<Name>InputMyName</Name>
И тоже самое сделать в программе - редактируя .lua - вставить новые имена в инициализации:
Code:
function Init()
wtButton1 = wtMainPanel:GetChildChecked( "InputMyName" , false )
...
затем загрузите игру и убедитесь что графический интерфейс виден - значит файлы .xdb без ошибок. Если некоторые из них не видны проверьте теги
<Visible>true</Visible>
<Enabled>true</Enabled>
а так же в скриптах (файлы .lua) чтобы эти виджеты не гасились, например так:
Code:
wtMainPanel:Show(PanelShow)
все ненужные строки в скрипте закомментируйте тремя минусами:
Code:
--- wtMainPanel:Show(PanelShow)
дальше все просто - программа-клиент (игра ОА) будет посылать вашему скрипту события - надо их отловить и обработать, и возможно послать события другие обратно. Для этого надо объявить какие события будет обрабатывать какая ваша функция:
Code:
function OnProba()
--- напишем это в логФайл
LogInfo("Hello World!")
end
function Init()
common.RegisterEventHandler( OnProba, "EVENT_INVENTORY_ITEM_CHANGED" )
end
--------------------------------------------------------------------------------
Init()
--------------------------------------------------------------------------------