Добрый день! Помогите разобраться в принципах создания аддонов. Просмотрел документацию на сайте, вложенную в папку игры и предоставленные примеры аддонов. Образовалась информационная "каша". То ли сильно стали отличаться старые версии аддонов, то ли я не замечаю элементарных вещей в коде... Вообщем прошу помощи специалистов на примере создания простейших аддонов, разобраться с ньюансами кода. Как во всех уроках программирования - хотелось бы разобрать аддон по типу "Hello World' В старой ветке форума нашел от icreator такой код:
function OnProba()
--- напишем это в логФайл
LogInfo("Hello World!")
end
function Init()
common.RegisterEventHandler( OnProba, "EVENT_INVENTORY_ITEM_CHANGED" )
end
--------------------------------------------------------------------------------
Init()
Перетаскивал итемы в сумке - не работал... даже ошибки не выдавал Сменил
"EVENT_INVENTORY_ITEM_CHANGED"
на
"EVENT_AVATAR_CLIENT_ZONE_CHANGED"
здесь хотя бы начал выдавать ошибку:
Error: addon Test: Syntax error during pre-compilation
Error: addon Test: [string "Mods/Addons/Test/Test.lua"]:4: `=' expected near `function'
Error: addon Test: Can't execute script for addon: Mods/Addons/Test/AddonDesc.(UIAddon).xdb
Что неправильно я делаю? Второй вопрос В папке с примерами есть аддон SampleReactionHandler
]--------------------------------------------------------------------------------
-- GLOBALS
--------------------------------------------------------------------------------
Global( "wtMainPanel", nil )
Global( "delta", 10 )
Global( "COUNTER_LIMIT", 5 )
Global( "counter", COUNTER_LIMIT )
--------------------------------------------------------------------------------
-- REACTION HANDLERS
--------------------------------------------------------------------------------
-- "execute"
function OnReactionExecute( params )
LogInfo( "counter: ", counter )
counter = counter - 1
if counter < 0 then
counter = COUNTER_LIMIT
delta = -delta
end
local place = wtMainPanel:GetPlacementPlain()
place.posX = place.posX + delta
wtMainPanel:SetPlacementPlain( place )
end
--------------------------------------------------------------------------------
-- INITIALIZATION
--------------------------------------------------------------------------------
function Init()
LogInfo( "Reaction handler sample" )
common.RegisterReactionHandler( OnReactionExecute, "execute" )
wtMainPanel = mainForm:GetChildChecked( "MainPanel", false )
end
--------------------------------------------------------------------------------
Init()
--------------------------------------------------------------------------------
Как можно модифицировать код, чтобы при нажатии на клавишу содержимое, например text файла выводилось в новое окно отображения или редактировало содержимое самого файла.(Клик по кнопке - "Hello Allods" в новом виджете). И немного отвлеченно - в аддонах от icreator есть функция LogtoChat, она реализован в одной из библиотек Addons tools?
Заранее большое спасибо всем ответившим!