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

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

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

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

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

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

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

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

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

Подробнее

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

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

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

knight_rider

Разработчик аддонов
  • Постов

    147
  • Зарегистрирован

  • Посещение

Весь контент knight_rider

  1. Странно, сейчас такого не наблюдаю.
  2. Можно в АМ реализовать кнопку вызова настроек аддона. Рассмотрю реализацию на примере AOChatExtension. У аддона есть кнопка, которая занимает пространство на экране, при этом я ей пользовался пару раз, в ознакомительных целях. И так излагаю мыслю. В списке аддонов добавить кнопку [Параметры], по нажатию на которую аддону будет посылаться событие. В ответ на это событие аддон будет отображать свое окно настроек. Это приведет к навязыванию АМ. Чтобы этого небыло предлагаю еще одно событие. Через какое-то время N после инициализации АМ посылает всем аддонам событие, которым сообщает о том, что он установлен в игре. Так же сообшение посылать аддонам, которые были загружены (только что поставлена галочка) в АМ. Вам спросите: "Зачем это надо?". Отвечаю на примере все того же AOChatExtension. При инициализации аддон по умолчанию отрисовывает свою кнопку настроек на экране. После получения события о том что АМ установлен, аддон понимает что настройки можно вызвать из АМ и скрывает свою кнопку с экрана.
  3. Заметил баг при написании аддона. Если выгрузить аддон, а потом загрузить, меняется его приоритет.
  4. knight_rider

    RuneCalc

    Версия 11

    38 505 раз скачали

    Автор исходной версии аддона: Knight_Rider При объединении Рун, помогает выставить правильное соотношение пыли и крошки, основываясь на их стоимости. Для корректного вычисления необходимо обрабатываемую руну, перед соединением, переместить в свободный слот сумки. When you Combine Runes, helps set the correct ratio of Gold Dust, and Crystal Chips, based on their price. For the correct calculation you must move treated rune into a free slot bags before joining.
    Бесплатный
  5. Отличный аддон, спасибо автор. Я его немного переделал под себя. Когда находит корону и у игрока нет цели, то берет корону в цель. Это позволило избавится от кнопки и ускорить время переключения на корону. К сожалению автор скомпилировал r9, поэтому моя модификация основана на r8 File: Y8qUlaeM4qR5En2.zip
  6. RuneCalc Просмотр файла Автор исходной версии аддона: Knight_Rider При объединении Рун, помогает выставить правильное соотношение пыли и крошки, основываясь на их стоимости. Для корректного вычисления необходимо обрабатываемую руну, перед соединением, переместить в свободный слот сумки. When you Combine Runes, helps set the correct ratio of Gold Dust, and Crystal Chips, based on their price. For the correct calculation you must move treated rune into a free slot bags before joining. Добавил knight_rider Добавлено 31.01.2011 Категория Аддоны  
  7. knight_rider

    RuneCalc

    Нажмите здесь, чтобы скачать файл Высказывайте свои предложения, пожелания и рекомендации.
  8. можно сказать предрелизная версия. Сделано: - окно конфига, в котором задается стоимость компрнентов с сохранением параметров в глобальную секцию user.cfg. - поправил вывод числовых значений Недостатки: - Для корректного определения руны, которая обрабатывается, ее необходимо переместить в свободную ячейку. - Нет защиты "от дурака" ToDo List: - по возможности API при начале создания руны автоматически выбирать самый выгодный вариант - ElitLine выровняна по левому краю, надо сделать по правому. Пока не понял как. - Навести порядок в переменных и коде На зарубежных серверах не играл, поэтому не в курсе, актуален аддон для них или нет. При необходимости сделаю его мультиязычным. SLA и Skillcoder уже не появлялись. К кому обращаться по поводу публикации на главной? UPD перезалил 27.01.11 в 13.00 по киеву. при старте игры теперь аддон не отображается File: RuneCalc.pak
  9. Желательно сделать событие, которое будет оповещать аддону о том, что его сейчас выгрузят. Нужно для того, чтоб он мог исправить мелкие пакости. Помнится как-то поставил миникарту и выключил ее в АМ, при этом сохранив этот статус. В результате при загрузке миникарта инициализировалась и выключала компас. После этого АМ ее выгружал и получалось что ни миникарты ни компаса небыло. Если б было это событие, то миникарта могла бы вновь вызвать компас перед выгрузкой
  10. You need delete string Code: locales.de = locales.en from Locales.lua
  11. Сырая альфа версия. Для установки поместить pak файл в папку addons Недостатки: - Стоимость крошки в кристаллах и курс кристалов в игровой валюте пока заданы в коде. - Для корректного определения руны, которая обрабатывается, ее необходимо переместить в свободную ячейку. - Кривовато выводятся цифровые значения - Нет защиты "от дурака" ToDo List: - создать окно конфига, в котором будет задаваться их стоимость с возможностью сохранения. - по возможности при начале создания руны автоматически выбирать самый выгодный вариант
  12. их вытянуть можно, но не пользовательскими функциями. Вот выдержки из манула Code: -- классTextViewSafe -- семантика function GetValuedText( self ) -- входные параметры отсутствуют -- возвращаемое значение ValuedText - текст -- пример local text = wtTextView:GetValuedText() LogInfo( debugCommon.FromValuedText( text, false ) )
  13. Code: local itemValObj = wtRuneCounter:GetValuedText( ) local wString = itemValObj:GetId() LogInfo( "itemValObj = ", wString) выдало в лог Code: Error: addon RuneCalc: Error while running the chunk Error: addon RuneCalc: [string "Mods/Addons/RuneCalc/RuneCalc.lua"] attempt to call method `GetId' (a nil value) Error: addon RuneCalc: func: GetId, method, line: -1, defined: C, line: -1, [C] Error: addon RuneCalc: func: OnTimer, global, line: 65, defined: Lua, line: 48, [string "Mods/Addons/RuneCalc/RuneCalc.lua"] проанализировал itemValObj найденой на форуме функцией Code: researchObj("itemValObj",itemValObj) Вот что получил. В обьекте нет таких функций Code: Info: addon RuneCalc: itemValObj SetFormat:=function: 0BA55860 Info: addon RuneCalc: itemValObj SetClassVal:=function: 08B27FF8 Info: addon RuneCalc: itemValObj __gc:=function: 2132BC18 Info: addon RuneCalc: itemValObj SetVal:=function: 13D38B78 Info: addon RuneCalc: itemValObj CreateCopy:=function: 1EB73230 Info: addon RuneCalc: itemValObj __index:=table: 1E62D2D0 Info: addon RuneCalc: itemValObj ClearValues:=function: 13D38B30 Info: addon RuneCalc: itemValObj _:=userdata: 0E400B58{userdata} Вот код того, что есть. Сейчас работаю над GUI. Code: --------------------------------------------------------------------------------- -- GLOBALS --------------------------------------------------------------------------------- -- Панели ---------------------------- Global( "wtMainPanel", nil ) Global( "wtgoldDust", nil ) Global( "wtcrystalCrumb", nil ) Global( "wtruneName", nil ) Global( "wtContextRuneCombiner2", nil ) Global( "wtSlider", nil ) Global( "wtRuneCounter", nil ) -- Other --------------------------- Global( "visible", false ) Global( "ItemId", nil ) --- Идентификатор последней активной ячейки Global( "RuneId", nil ) --- Идентификатор руны Global( "RuneName", nil ) --- Идентификатор руны Global( "PriseOf10kGoldenDust", 90000 ) --- Цена 1000 золотой пыли в деньгах Global( "PriseOf1CrystalCrumb", 3 ) --- Цена 1 кристаллической крошки в кристаллах Global( "PriseOf1Crystal", 80000 ) --- Цена 1 кристалла в деньгах Global( "goldDust", nil ) --- стоимость требуемой золотой пыльцы в деньгах Global( "crystalCrumb", nil ) --- стоимость требуемой кристалической крошки в деньгах Global( "totalPrice", nil ) --- Идентификатор руны --------------------------------------------------------------------------------- -- EVENT HANDLERS --------------------------------------------------------------------------------- function ToWS( str ) if str then return userMods.ToWString( str ) else return userMods.ToWString( "Not String" ) end end function ToMoney( value ) local result={Gold,Silver,Copper} result.Gold = math.floor(value / 10000) value =value - result.Gold result.Silver = math.floor(value / 100) value = value - result.Silver result.Copper = value end -- Каждую секунду function OnTimer( params ) if wtContextRuneCombiner2:IsVisible() == true and visible == false then visible = true LogInfo("Открылось окно") end if wtContextRuneCombiner2:IsVisible() == false and visible == true then visible = false end if wtContextRuneCombiner2:IsVisible() == true and visible == true then local count = wtSlider:GetPos() if RuneId then local itemValObj = wtRuneCounter:GetValuedText( ) researchObj("itemValObj",itemValObj) local price = avatar.GetCombineRunesPrice( RuneId, count - 7, 1 ) --LogInfo( "gold dust = ", price.goldDust, " crystal crumb = ", price.crystalCrumb, " slide = ", count ) goldDust = price.goldDust * ( PriseOf10kGoldenDust / 1000 ) crystalCrumb = price.crystalCrumb * ( PriseOf1CrystalCrumb * PriseOf1Crystal ) totalPrice = goldDust + crystalCrumb wtgoldDust:SetVal( "value", common.FormatInt( goldDust , "%d" ) ) wtcrystalCrumb:SetVal( "value", common.FormatInt( crystalCrumb , "%d" ) ) --LogInfo( "count = ", goldDust," crystalCrumb = ", crystalCrumb," totalPrice = ", totalPrice ) end end end -- При скрытии интерфейса (ALT+Z) function OnToggleUI( params ) mainForm:Show( params.visible ) end -- Запрос используемой памяти от "AddonManager" function OnAMMemUsageRequest( params ) userMods.SendEvent( "U_EVENT_ADDON_MEM_USAGE_RESPONSE", { sender = common.GetAddonName(), memUsage = gcinfo() } ) end -- Реакция на перемещение предмета в сумке function OnInventory ( params ) ItemId = avatar.GetInventoryItemId( params.slot ) local itemInfo = avatar.GetItemInfo( ItemId ) if itemInfo.runeInfo then RuneId = ItemId RuneName = itemInfo.name end end --------------------------------------------------------------------------------- -- INITIALIZATION --------------------------------------------------------------------------------- function Init() wtMainPanel = mainForm:GetChildChecked( "MainPanel" , false ) wtContextRuneCombiner2 = stateMainForm:GetChildChecked("ContextRuneCombiner2", false ) wtContextRuneCombiner2 = wtContextRuneCombiner2:GetChildChecked("MainPanel", false ) wtSlider = wtContextRuneCombiner2:GetChildChecked("Slider", true ) wtRuneCounter = wtContextRuneCombiner2:GetChildChecked("HigherRune", false ) wtRuneCounter = wtRuneCounter:GetChildChecked("Need", false ) common.RegisterEventHandler( OnTimer, "EVENT_SECOND_TIMER" ) common.RegisterEventHandler( OnInventory , "EVENT_INVENTORY_ITEM_CHANGED" ) -- Скрывать по "ALT+Z" common.RegisterEventHandler( OnToggleUI, "SCRIPT_TOGGLE_UI" ) -- События "AddonManager" common.RegisterEventHandler( OnAMMemUsageRequest, "U_EVENT_ADDON_MEM_USAGE_REQUEST" ) end --------------------------------------------------------------------------------- Init() ---------------------------------------------------------------------------------
  14. Code: local itemValObj = wtRuneCounter:GetValuedText( ) local wString = itemValObj:GetText() local result1 = common.GetIntFromWString( wString ) wtRuneCounter - виджет, из которого необходимо получить строку. получаю в log Code: Error: addon RuneCalc: Error while running the chunk Error: addon RuneCalc: [string "Mods/Addons/RuneCalc/RuneCalc.lua"] attempt to call method `GetText' (a nil value) Error: addon RuneCalc: func: GetText, method, line: -1, defined: C, line: -1, [C] Error: addon RuneCalc: func: OnTimer, global, line: 56, defined: Lua, line: 39, [string "Mods/Addons/RuneCalc/RuneCalc.lua"] Может выполняю не правильную последовательность действыи? GetValuedText возвращает переменную типа userdata, может из-за этого не получается
  15. Хотел получить числовове значение из строги при помощи GetValuedText( ). Полазив по форуму понял, что разрабы не доработали API и эта функция безполезна. Перешел к варианту avatar.GetCombineRunesPrice( runeId, crystalCrumbBonus, count ) crystalCrumbBonus - значение слайдера, удалось получить на легке; count - количество создаваемых рун, получить не получилось по причине все того-же GetValuedText( ); runeId - id предмета в сумке. Получаю по методу, описанному в аддоне AucEDSman. Для использования предмета в аддоне его придварительно надо перетащи в свободную ячейку. Может кто-нибуть знает способ получть индекс слота в инвентаре, который находится под мышкой, по возможности в момент надатия левой клавиши? Читал это, но ничего нового не нашел upd: Идеально было бы извлечь объект из ContextRuneCombiner2, но достучатся до переменных виджета не удалось
  16. Спасибо, буду изучать Code: Info: addon RuneCalc: :MainPanelInfo: addon RuneCalc: :MainPanel:CrystalTube Info: addon RuneCalc: :MainPanel:CrystalTube:FlowHighlight Info: addon RuneCalc: :MainPanel:GoldTube Info: addon RuneCalc: :MainPanel:GoldTube:FlowHighlight Info: addon RuneCalc: :MainPanel:GoldenCorner Info: addon RuneCalc: :MainPanel:GoldenCorner:CornerCross Info: addon RuneCalc: :MainPanel:Reset Info: addon RuneCalc: :MainPanel:WindowHeader Info: addon RuneCalc: :MainPanel:WindowHeader:HeaderText Info: addon RuneCalc: :MainPanel:Combine Info: addon RuneCalc: :MainPanel:GoldenDust Info: addon RuneCalc: :MainPanel:GoldenDust:Need Info: addon RuneCalc: :MainPanel:GoldenDust:ItemTexture Info: addon RuneCalc: :MainPanel:GoldenDust:Have Info: addon RuneCalc: :MainPanel:LesserRune Info: addon RuneCalc: :MainPanel:LesserRune:RuneLevel Info: addon RuneCalc: :MainPanel:LesserRune:Need Info: addon RuneCalc: :MainPanel:LesserRune:ItemTexture Info: addon RuneCalc: :MainPanel:LesserRune:RuneGlow Info: addon RuneCalc: :MainPanel:LesserRune:Have Info: addon RuneCalc: :MainPanel:CrystalDust Info: addon RuneCalc: :MainPanel:CrystalDust:Need Info: addon RuneCalc: :MainPanel:CrystalDust:ItemTexture Info: addon RuneCalc: :MainPanel:CrystalDust:Have Info: addon RuneCalc: :MainPanel:HigherRune Info: addon RuneCalc: :MainPanel:HigherRune:ButtonScrollLeft Info: addon RuneCalc: :MainPanel:HigherRune:ButtonScrollRight Info: addon RuneCalc: :MainPanel:HigherRune:RuneLevel Info: addon RuneCalc: :MainPanel:HigherRune:ItemTexture Info: addon RuneCalc: :MainPanel:HigherRune:RuneGlow Info: addon RuneCalc: :MainPanel:HigherRune:Need Info: addon RuneCalc: :MainPanel:Chamber Info: addon RuneCalc: :MainPanel:Chamber:ChamberOverlay Info: addon RuneCalc: :MainPanel:Chamber:ChamberOverlay:ChamberGlow Info: addon RuneCalc: :MainPanel:Chamber:ChamberOverlay:FlowHighlight Info: addon RuneCalc: :MainPanel:Chamber:Slider Info: addon RuneCalc: :MainPanel:Chamber:ChamberMixed Info: addon RuneCalc: :MainPanel:Chamber:ChamberMixed:MixedCrystal Info: addon RuneCalc: :MainPanel:Chamber:ChamberMixed:MixedBoth Info: addon RuneCalc: :MainPanel:Chamber:ChamberMixed:MixedGold По сути мне необходимо GoldenDust:Need и CrystalDust:Need. Теперь буду копать дальше
  17. Пробовал покурить гугл, безуспешно. Полазив по форуму получил от виджета следующее Code: Info: addon RuneCalc: ContextRuneCombiner2: GetBackgroundColor:=function: 1366ED80Info: addon RuneCalc: ContextRuneCombiner2: Enable:=function: 1366F2A0 Info: addon RuneCalc: ContextRuneCombiner2: SetFocus:=function: 1366F300 Info: addon RuneCalc: ContextRuneCombiner2: SetBackgroundTexture:=function: 1366EDE0 Info: addon RuneCalc: ContextRuneCombiner2: IsFocused:=function: 1366F2E8 Info: addon RuneCalc: ContextRuneCombiner2: GetNamedChildren:=function: 1366F348 Info: addon RuneCalc: ContextRuneCombiner2: GetFade:=function: 1366F258 Info: addon RuneCalc: ContextRuneCombiner2: SetForegroundClearMaskEffect:=function: 1366EE88 Info: addon RuneCalc: ContextRuneCombiner2: SetForegroundColor:=function: 1366EDC8 Info: addon RuneCalc: ContextRuneCombiner2: SetPriority:=function: 1366F2D0 Info: addon RuneCalc: ContextRuneCombiner2: GetParent:=function: 1366F360 Info: addon RuneCalc: ContextRuneCombiner2: GetName:=function: 1366EF70 Info: addon RuneCalc: ContextRuneCombiner2: Show:=function: 1366EFB8 Info: addon RuneCalc: ContextRuneCombiner2: GetRealRect:=function: 1366EEA0 Info: addon RuneCalc: ContextRuneCombiner2: AddChild:=function: 1366EE10 Info: addon RuneCalc: ContextRuneCombiner2: IsEnabled:=function: 1366F288 Info: addon RuneCalc: ContextRuneCombiner2: SetBackgroundColor:=function: 1366ED98 Info: addon RuneCalc: ContextRuneCombiner2: GetPriority:=function: 1366F2B8 Info: addon RuneCalc: ContextRuneCombiner2: PlayResizeEffect:=function: 1366F3A8 Info: addon RuneCalc: ContextRuneCombiner2: SetBackgroundClearMaskEffect:=function: 1366EE70 Info: addon RuneCalc: ContextRuneCombiner2: FinishMoveEffect:=function: 1366ED10 Info: addon RuneCalc: ContextRuneCombiner2: SetPlacementPlain:=function: 1366F390 Info: addon RuneCalc: ContextRuneCombiner2: FinishFadeEffect:=function: 1366ED68 Info: addon RuneCalc: ContextRuneCombiner2: SetBackgroundBlendEffect:=function: 1366EE40 Info: addon RuneCalc: ContextRuneCombiner2: CreateWidgetByDesc:=function: 1366EF40 Info: addon RuneCalc: ContextRuneCombiner2: __index:=table: 1366ECB8 Info: addon RuneCalc: ContextRuneCombiner2: GetInstanceId:=function: 1366EEE8 Info: addon RuneCalc: ContextRuneCombiner2: DestroyWidget:=function: 1366EED0 Info: addon RuneCalc: ContextRuneCombiner2: IsVisible:=function: 1366EFA0 Info: addon RuneCalc: ContextRuneCombiner2: GetForegroundColor:=function: 1366EDB0 Info: addon RuneCalc: ContextRuneCombiner2: SetForegroundBlendEffect:=function: 1366EE58 Info: addon RuneCalc: ContextRuneCombiner2: GetChildUnchecked:=function: 1366F330 Info: addon RuneCalc: ContextRuneCombiner2: SetForegroundTexture:=function: 1366EE28 Info: addon RuneCalc: ContextRuneCombiner2: IsEqual:=function: 1366EDF8 Info: addon RuneCalc: ContextRuneCombiner2: GetChildChecked:=function: 1366F318 Info: addon RuneCalc: ContextRuneCombiner2: PlayMoveEffect:=function: 1366ECF8 Info: addon RuneCalc: ContextRuneCombiner2: SetFade:=function: 1366F270 Info: addon RuneCalc: ContextRuneCombiner2: GetWidgetDesc:=function: 1366EEB8 Info: addon RuneCalc: ContextRuneCombiner2: GetPlacementPlain:=function: 1366F378 Info: addon RuneCalc: ContextRuneCombiner2: __gc:=function: 1366EF00 Info: addon RuneCalc: ContextRuneCombiner2: SetName:=function: 1366EF88 Info: addon RuneCalc: ContextRuneCombiner2: FinishResizeEffect:=function: 1366ECE0 Info: addon RuneCalc: ContextRuneCombiner2: PlayFadeEffect:=function: 1366ED50 Info: addon RuneCalc: ContextRuneCombiner2: _:=userdata: 1367A578{userdata} Можете направть меня в нужное русло? Что почитать? Есть ли из работающих аддоны, которые получают ссылки на эелементы другого виджета? Ну в общем без примера не обойтись :-( P.S. я только начал открывать для себя Lua
  18. Спасибо. Теперь осталось разобраться, как от этого виджета получить информацию о состоянии полей или информацию RuneID и текущее значение ползунка.
  19. Доброго времени суток. Созрела мысль написания внутриигрового калькулятора рун. Заодно решил изучить LUA. И так вот моя задумка. При открытии окна соединения рун рядышком отображать окно аддона. Аддон читает количество необходимой пыльци, умножает на стоимость одной, считает количество крошки и умножает на стоимость 1й. После этого он суммирует оба значения и мы получаем стомость новой руны в золоте. При смене позиции ползунка аддон доджен пересчитывать значение. Так же хотел добавить editbox для ввода нынешнего курса кристаллов. После поанировки перешел к реализации. Открыл манул для разрабртчикав и начал искать event, который отвечает за открытие окна соединения рун. Таким образом моя первоначальная задумка рассыпалась прахом. Единсивенное что я нашел avatar.GetCombineRunesPrice( runeId, crystalCrumbBonus, count ), который, как я понял, работает с номером ячейки из сумки. Т.е. с его помощью можно выделив руну посчитать стоимость руны полгнав ее со значением crystalCrumbBonus в диапазоне [-7,+7]. Но тут возник другой вопрос, на какой event реагирует сумка? Но мне все же хотелось бы попробовать реализовать с окном соединения, есть какие-нибуть идеи, как это можно реализовать?
  20. Аддон собирает деньги только с 1го сообщения. Остальные помечаются как прочитанные, но деньги в них остаються
  21. Т.е ты говоришь что по средством аддона можно реализовать передачу сообщений игрокам противоположной фракции? Если это так, то можно дописать аддон-чат с империей/лигой, хотя б в приват.
  22. доброго времени суток. помню что были проблемы с чтением клавиш, не знаю как сейчас. в общем, уж сильно хочется аддончик который, как в командной строке, кнопками(будь то клавиатура, что желательнее, или кнопки интерфейса) вверх и вниз листал бы отправленные сообщения в поле ввода текста.
  23. можно аддоном реализовать отображение всех членов отряда на карте?
  24. предлагаю в русской локализации заменить [П]риват на [Ш]епот, [О]тряд на [Р]ейд и [Г]руппа на [П]ати. Это позволит избежать повторения.
  25. Предлагаю для кнопок добавить поле справа от ящика. Связано это с тем, что текущая кнопка закрывает кнопки при отправке сообщений. Ну или убирать при смене вкладок.
×
×
  • Создать...

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

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