Ramzesgool Posted January 18, 2014 Share Posted January 18, 2014 Существует такой аддон AutoSellGrey(продажа серого лута вендору). Вот его код: ---------------------------------------------------------------------------------- EVENT HANDLERS---------------------------------------------------------------------------------- Событие обновления списка вещей у тогровца, список обновляется в том числе при выкупе серых вещей:function OnVendorListUpdated()local currentBagSize = avatar.InventoryGetBaseBagSlotCount()for slotIndex = 0, currentBagSize - 1 dolocal itemId = avatar.GetInventoryItemId( slotIndex )if itemId thenlocal itemQuality = itemLib.GetQuality( itemId )local quality = itemQuality and itemQuality.qualityif quality and quality == ITEM_QUALITY_JUNK and avatar.SellItemToVendor thenavatar.SellItemToVendor( itemId ) -- for AO 2.0.09+endendend-- Повторный вызов не нужен, иначе не получится выкупить нужные серые вещи:common.UnRegisterEventHandler(OnVendorListUpdated, "EVENT_VENDOR_LIST_UPDATED")end-- Событие начала разговора с NPC, который может быть торговцем:function OnTalkStarted()-- common.LogInfo( "common", common.FormatInt( guild.GetEnableTime( ).d, "%d" ) )-- common.LogInfo( "common", common.FormatInt( guild.GetEnableTime( ).m, "%d" ) )-- common.LogInfo( "common", common.FormatInt( guild.GetEnableTime( ).y, "%d" ) )-- Теперь можно начать следить за обновлением списка вещей у торговца:common.RegisterEventHandler(OnVendorListUpdated, "EVENT_VENDOR_LIST_UPDATED")end-- Событие окончания разговора с NPC, который может быть торговцем:function OnTalkStopped()-- Теперь нужно прекратить следить за обновлением списка вещей у торговца, на всякий случай:common.UnRegisterEventHandler(OnVendorListUpdated, "EVENT_VENDOR_LIST_UPDATED")end---------------------------------------------------------------------------------- INITIALIZATION--------------------------------------------------------------------------------function Init()-- События:common.RegisterEventHandler(OnTalkStarted, "EVENT_TALK_STARTED")common.RegisterEventHandler(OnTalkStopped, "EVENT_TALK_STOPPED")end--------------------------------------------------------------------------------Init()-------------------------------------------------------------------------------- Как я полный дуб в Lua, мне требуется помощь). У автора аддона нет свободного времени и он не может помочь. Что мне бы хотелось увидеть: например: открыт у меня диалог с вендором, в сумке появляется серый лут, он тут же продается, т.е. мне не придется закрыть и открыть диалог заново. Автор сказал, что это возможно. Жду помощи, заранее премного благодарен! Quote Link to comment Share on other sites More sharing options...
xxxgoes Posted January 19, 2014 Share Posted January 19, 2014 А можно поинтересоваться, зачем это нужно? Quote Link to comment Share on other sites More sharing options...
Ramzesgool Posted January 20, 2014 Author Share Posted January 20, 2014 ap Quote Link to comment Share on other sites More sharing options...
Setras Posted January 20, 2014 Share Posted January 20, 2014 Надо OnVendorListUpdated() делать при EVENT_CONTAINER_ITEM_ADDED если контейнер ITEM_CONT_INVENTORY. Quote Link to comment Share on other sites More sharing options...
Ramzesgool Posted January 21, 2014 Author Share Posted January 21, 2014 Огромное спасибо). Если надо, темку можете закрыть. Quote Link to comment Share on other sites More sharing options...
Setras Posted January 21, 2014 Share Posted January 21, 2014 Огромное спасибо). Если надо, темку можете закрыть. Я бы советовал еще проверять ведется ли взаимодействие с НПЦ (т.е. в начало функции вставить проверку) чтобы она не отрабатывала с ошибками когда ты просто бегаешь и подбираешь лут не торгуя с НПЦ. Quote Link to comment Share on other sites More sharing options...
Recommended Posts