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

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

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

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

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

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

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

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

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

Подробнее

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

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

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

Использование биндов.


Scinoob

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

Прочитал, что можно использовать свои бинды для аддонов, создав файл personal/input.cfg.

Допустим, я создал его и внес туда

commonbindsection
bind some_action 'CTRL' + 'F'

Видимо, вопрос совсем нубский, но я не могу понять, как обработать это событие в аддоне? Помогите, пожалуйста >_<

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

Добавить, например, в описатель формы:

<bindSections>
<Item>
<bindSection>common</bindSection>
<bindedReactions>
<Item>some_action</Item>
</bindedReactions>
</Item>
</bindSections>

В скрипте подписать обработчик на реакцию:

common.RegisterReactionHandler(
function()
common.LogInfo( '', 'Btooom!!!11' )
end,
'some_action'
)

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

Пробовал по-разному, но все равно не выходит.

Попробую описать все свои шаги и буду рад, если кто-нибудь укажет мне на ошибку =)

1. Создаю файл personal/input.cfg

commonbindsection
bind my_button 'CTRL'+'F'

2. Создаю файл Allods Online\data\Mods\Addons\My_Button\My_Button.lua

-- EVENT HANDLERS
function OnMem( params )
userMods.SendEvent( "U_EVENT_ADDON_MEM_USAGE_RESPONSE", { sender = common.GetAddonName(), memUsage = gcinfo() } )
end
function OnAMAddonInfoRequest( params )
if params.target == common.GetAddonName() then
userMods.SendEvent( "SCRIPT_ADDON_INFO_RESPONSE", {
	 sender = common.GetAddonName(),
	 desc = "My_Button",
 } )
end
end
-- REACTION HANDLERS
function onReactionMyButton()
common.LogInfo( '', 'Btooom!!!11' )
end

-- INITIALIZATION
function Init()
common.RegisterEventHandler(OnAMAddonInfoRequest, "SCRIPT_ADDON_INFO_REQUEST")
common.RegisterEventHandler(OnMem, "U_EVENT_ADDON_MEM_USAGE_REQUEST")
common.RegisterReactionHandler(onReactionMyButton, "my_button")
end
Init()

3. Создаю файл Allods Online\data\Mods\Addons\My_Button\AddonDesc.(UIAddon).xdb

<?xml version="1.0" encoding="UTF-8" ?>
<UIAddon>
<AutoStart>true</AutoStart>
<Name>My_Button</Name>
<ScriptFileRefs>
<Item href="/Mods/SampleCommon/SampleAddonBase.lua" />
<Item href="My_Button.lua" />
</ScriptFileRefs>
<bindSections>
<Item>
<bindSection>common</bindSection>
<bindedReactions>
<Item>my_button</Item>
</bindedReactions>
</Item>
</bindSections>
</UIAddon>

4. Захожу в игру, включаю аддон. Жму CTRL+F и ничего не происходит (ни в чате, ни в mods.txt нет надписей Btoom!)

Честно говоря, не очень понимаю весь смысл этих заморочек с Mem и Info (тупо взял их из другого аддона), но вряд ли они могут давать сбой в работе?

Заранее спасибо за дельные советы =)

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

1. Создаю файл personal/input.cfg

commonbindsection
bind my_button 'CTRL'+'F'

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

3. Создаю файл Allods Online\data\Mods\Addons\My_Button\AddonDesc.(UIAddon).xdb

UIAddon - это основной (корневой) описатель аддона. Блок параметров bindSections нужно вставлять в описатель виджета. Например, WidgetForm или WidgetPanel.

upd.

Честно говоря, не очень понимаю весь смысл этих заморочек с Mem и Info (тупо взял их из другого аддона), но вряд ли они могут давать сбой в работе?

Не могут. Эти заморочки нужны, если есть желание передавать информацию в AddonManager, целесообразность использования которого сейчас под вопросом. :)

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

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

К сожалению, не помогло.

Может быть есть несложный аддон с открытым кодом, где используются бинды, чтобы использовать в качестве образца?

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

Может быть есть несложный аддон с открытым кодом, где используются бинды, чтобы использовать в качестве образца?

Test.zip

input.zip

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

раньше мне это нужно было для ЕАР а сейчас уже настолько привыкла что вижу что мой вариант НАМНОГО удобней чем - какуюто левую кнопку на клавиатуре искать

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

раньше мне это нужно было для ЕАР а сейчас уже настолько привыкла что вижу что мой вариант НАМНОГО удобней чем - какуюто левую кнопку на клавиатуре искать

Согласен. Искать левую кнопку на клавиатуре - большая проблема. Например у меня все кнопки на клавиатуре - правые, а также на ней нету апу кеу. Отнимать две кнопки с панели действий куда как лучше, ведь если аддон на расширение панели действий, то пусть он хоть все кнопки отнимет.

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

играть только мышкой!, вы что? какая клава, какие бинды, в аддоне привык тыкать 3 кнопки, вместо одной на клаве

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

сарказм я вижу непонятен)

Прочитал как "сарказм ежу непонятен".

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

Прикрепленные файлы

Спасибо, это работает. Попробую разобраться, в чем разница...мой вариант был явно нерабочий, а принципиальной разницы на первый взгляд нет.

Оффтоп: никто не разобрался, как грамотно убить навязанный в последней обнове GameCenter? Полная блокировка в firewall приводит к невозможности запуска самого клиента =/

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

Прикрепленные файлы

Опять же нубский вопрос, но должен ли этот аддон выводить значение счетчика где-то на экране? Или в чем суть созданного виджета?

У меня только пишет в лог при нажатии CTRL+F и при удалении файла Test.(WidgetForm).xdb и записи про него в AddonDesc.(UIAddon).xdb - аддон перестает писать в лог. Видимо, этот виджет по каким-то причинам необходим, вот только не могу понять, для чего =(

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

Нет, не должен.

В примере виджет нужен только для того, чтобы внести в него информацию о реакции, на которую в скрипте подписывается обработчик.

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

Не могу сказать, что я понял, зачем нужен этот виджет. Но для моих целей будет достаточно использовать это "как есть", спасибо. =)

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

Оффтоп: никто не разобрался, как грамотно убить навязанный в последней обнове GameCenter? Полная блокировка в firewall приводит к невозможности запуска самого клиента =/

Я остановился на этом:

if FileExists ( "GameCenterLight\[email protected]" ) Then
   FileMove ( "GameCenterLight\[email protected]", "GameCenterLight\[email protected]" )
EndIf
Run("Launcher.exe")
WinWaitActive("[CLASS:NIVAL_MMO_ENGINE]")
FileMove ( "GameCenterLight\[email protected]", "GameCenterLight\[email protected]" )
ProcessClose("[email protected]")

Запуск - http://www.autoitscr...om/site/autoit/

Он умеет делать и экзешники.

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

Почему может не работать элементарный код (предполагается, что при нажатии забинденой комбинации клавиш аватар должен взять себя в таргет)

common.RegisterReactionHandler(
function()
 avatar.SelectTarget( avatar.GetId() )
end,
'test'
)

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

Из документации:

avatar.SelectTarget( unitId )

Попытка аватара сделать указанного юнита своей целью.

ВНИМАНИЕ! В пользовательских аддонах есть ограничение: этот метод будет работать только в обработчиках реакции на действия (не перемещение) мыши. То есть на нажатие кнопки

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

Видимо, это ограничение ввели в осенне-зимних обновах? Раньше не сталкивался...

То есть теперь можно только нажатием мыши на "кнопку" на экране можно выделить цель? И никак не обойти это ограничение?

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

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

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

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

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

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

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

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

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

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