Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

Hello Allods - простой аддон


Tarabas

Рекомендуемые сообщения

Добрый день!
Помогите разобраться в принципах создания аддонов. Просмотрел документацию на сайте, вложенную в папку игры и предоставленные примеры аддонов. Образовалась информационная "каша". То ли сильно стали отличаться старые версии аддонов, то ли я не замечаю элементарных вещей в коде... Вообщем прошу помощи специалистов на примере создания простейших аддонов, разобраться с ньюансами кода.
 
Как во всех уроках программирования  - хотелось бы разобрать аддон по типу "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?

 

Заранее большое спасибо всем ответившим!

Изменено пользователем Tarabas
Ссылка на комментарий
Поделиться на другие сайты

EVENT_INVENTORY_CHANGED

Нельзя редактировать содержимое файлов

function LogToChat(text)
	if not wtChat then ---- 2.0.06.13 [26.05.2011]
		wtChat = stateMainForm:GetChildUnchecked("ChatLog", false)
		wtChat = wtChat:GetChildUnchecked("Container", true)
		local formatVT = "<html fontname='AllodsFantasy' fontsize='14' shadow='1'><rs class='color'><r name='addon'/><r name='text'/></rs></html>"
		valuedText:SetFormat(toWS(formatVT))
	end
	if wtChat and wtChat.PushFrontValuedText then
		if not common.IsWString(text) then text = toWS(text) end
		valuedText:ClearValues()
		valuedText:SetClassVal( "color", "LogColorYellow" )
		valuedText:SetVal( "text", text )
		valuedText:SetVal( "addon", toWS(common.GetAddonName()) )
		wtChat:PushFrontValuedText( valuedText )
	end
end
Ссылка на комментарий
Поделиться на другие сайты

Можно разжевать, как правильно пользоваться этой функцией?как ее инициализировать? 

Она аналогична хранящейся "/Mods/Addons/AddonsTools/Script/ScriptLIB.lua"?

Изменено пользователем Tarabas
Ссылка на комментарий
Поделиться на другие сайты

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования