Jump to content
Alloder.pro: about Allods with love
Search In
  • More options...
Find results that contain...
Find results in...

New program for writers

We turn from quantity to quality and tell you how we will supplement the Allods Team program with rewards in rubles.

More

The new Updater

Let us to introduce the new addon updater software and to share the details

Read more

Alloder 2.0

We have started the process of project evolve, and this relates not only, and not even primarily of the site's view

Read more

Всплыващие подсказки


Guest wander
 Share

Recommended Posts

Guest wander

Подскажите, что за событие отвечает за всплывающие подсказки при наведении на предметы?

Большое спасибо.

Link to comment
Share on other sites

Посмотри в аддонах AOSimpleCoords и LootInfo. Примерно, так:

В XDB-файле виджета, над которым должна всплывать подсказка:

Code:
<reactionOnPointing>tooltip</reactionOnPointing>

В инициализации скрипта:

Code:
common.RegisterReactionHandler( OnReactionTooltip, "tooltip" )

И, затем, функция, формирующая и показывающая этот тултип. (Впрочем, если он статичный, то лучше заготовить его один раз, ещё при инициализации скрипта, сохранив в глобальную переменную, а из этой функции только показывать его). Выдрано из "AOSimpleCoords":

Code:
function OnReactionTooltip()

local tooltip = {

tooltip = SIMPLE_DESC,

name = common.GetAddonRelatedText( "MyTooltip" ),

desc = common.GetAddonRelatedText( "Tooltip" ),

rect = wtMainPanel:GetRealRect() }

common.SendEvent( "SCRIPT_REQUEST_CONTEXT_TOOLTIP", tooltip ) -- Показывает тултип.

end

Ну и дальше, нужно заготовить эти самые RelatedText, для текстов тултипа...

Примерно, так.

Link to comment
Share on other sites

Guest wander

Спасибо, это все очень познавательно и пригодится. Но мой вопрос немного о другом. Когда пользователь наводит мышкой на какой-либо предмет всплывает подсказка. Мне надо повесить свой обработчик на это действие.

Нашел в справке EVENT_SHOW_ITEMS_INFO, но похоже это не то. Так как при наведении оно не срабатывает.

Link to comment
Share on other sites

SCRIPT_REQUEST_CONTEXT_TOOLTIP с проверкой на params.tooltip == TOOLTIP_ITEM.

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

Link to comment
Share on other sites

Guest wander

Вот спасибо! То, что нужно! :)

PS. Как же ж в Lua после строго типизированных языков непривычно :)

Link to comment
Share on other sites

LUA - страна чудес. Мало того, что он не делает разницы между int и float (для меня это было шоком), так в нём ещё и НЕ существует названий переменных -- после интерпретации, они все преврящаются в безымянные ссылки. Вычитал где-то на просторах интернета. EDIT: В том смысле, что нет возможности получить ИМЯ переменной.

Link to comment
Share on other sites

Guest wander

А можно сразу вопрос? Где посмотреть справку по SCRIPT_REQUEST_CONTEXT_TOOLTIP?

кроме поля tooltip какие еще поля есть?

Link to comment
Share on other sites

Guest Valltron

Вообще эта реакция есть только у панельки и кнопки.

и у меня панель не отзывалась на reactionOnPointing. пришлось юзать кнопку, только там

<reactionOnPointing>REACTION_NAME</reactionOnPointing> нужно вкладывать внутрь <Variants>, получится примерно следующее:

Code:
<Variants>

<Item>

<ReactionOnPointing>tooltip</ReactionOnPointing>

</Item>

</Variants>

далее уже как писалось выше - регистрируем реакцию и пишем обработчик.

минимум это:

Code:
onReaction [ "tooltip" ]  = function( reaction )

    if reaction.active then

        common.SendEvent( "SCRIPT_REQUEST_CONTEXT_TOOLTIP", FillItemsTooltip( reaction.sender ) )

    else

        common.SendEvent( "SCRIPT_HIDE_CONTEXT_TOOLTIP", {} )

    end

end

где FillItemsTooltip( reaction.sender ) это отдельная функция, где задается что писать в тултипе.

А как у тебя панелька срабатывала? куда нужно <reactionOnPointing> записывать?

Link to comment
Share on other sites

ДА! :)) Оно самое! :)

Это полная коллекция всех скриптов игры, до того, как Нивал скомпилировал их в версии 1.0.04, чтобы помешать нам делать наши модификации :)

Link to comment
Share on other sites

Для панели, как я понимаю, <reactionOnPointing> пишется ПРЯМО в <WidgetPanel>.

Code:
<WidgetPanel>

...

...

<reactionOnPointing>tooltip</reactionOnPointing>

</WidgetPanel>

Вот и разобрались, и с кнопками, и с панелями =)

Link to comment
Share on other sites

Guest Valltron

именно так и делал, но реакции на реакцию не было :( буду пробовать, значит.

Кстати, еще различия: для кнопки <ReactionOnPointing>

для панельки: <reactionOnPointing>

Link to comment
Share on other sites

Quote:
LUA - страна чудес. Мало того, что он не делает разницы между int и float (для меня это было шоком), так в нём ещё и НЕ существует названий переменных -- после интерпретации, они все преврящаются в безымянные ссылки. Вычитал где-то на просторах интернета. EDIT: В том смысле, что нет возможности получить ИМЯ переменной.

это верно только для локальных переменных, не для глобальных.
а разницы между int & float нет, потому что движок приводит их к double - и работает соотвественно...
Link to comment
Share on other sites

Вот пример.

Code:
<?xml version="1.0" encoding="UTF-8" ?>

<WidgetPanel>

<Priority>100</Priority>

<Name>SpellInfo1Bar</Name>

<Children>

</Children>

<BackLayer href="Bar1.(WidgetLayerTiledTexture).xdb#xpointer(/WidgetLayerTiledTexture)" />

<Placement>

<X>

<Align>WIDGET_ALIGN_LOW</Align>

<Size>242</Size>

<Pos>7</Pos>

</X>

<Y>

<Align>WIDGET_ALIGN_LOW</Align>

<Size>18</Size>

<Pos>7</Pos>

</Y>

</Placement>

<reactionOnPointing>GGG1</reactionOnPointing>

</WidgetPanel>

Далее все так же регестрация, common.RegisterReactionHandler( OnDarkDPSMeter_GGG1, "GGG1" ), ну и все тоже самое с вызовом тултипа.

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.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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.

 Share

×
×
  • Create New...

Important Information

By using our site you agree to the Terms of Use