Jump to content

Digest October-December

We talk about what was done and updated in the past month. We help keep abreast of events.

December November October

Servers monitoring and the Addons Editor

We present you two legends. All dreams come true.

Servers monitoring The Addons Editor

A statistics bot for Telegram

Convenient analytics right on your phone.

Read more

Game tooltips

Tooltips provide a way for 3rd party fansites and extensions to display detailed information on mouseover.

Read more

The Addons Updater

Let us to introduce the addons updating software and to share the details

Read more Download

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


Tarabas

Recommended Posts

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

 

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

Edited by Tarabas
Link to comment
Share on other sites

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
Link to comment
Share on other sites

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

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

Edited by Tarabas
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using our site you agree to the Terms of Use