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

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

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

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

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

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

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

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

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

Подробнее

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

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

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

dmnrmr

Пользователь
  • Постов

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

  • Посещение

Сообщения, опубликованные dmnrmr

  1. Видимо моих знаний недостаточно, чтобы понять как это всё работает. В любом случае спасибо за аддон и уделённое время.

    P.S.

    Если на досуге нечем заняться, предлагаю реализовать нижеприведённый вариант интерфейса. Лично для меня он кажется интуитивно понятным и даёт обширные возможности по настройки аддона "под себя".

    Untitled-1.jpg
  2. Нужна помощь людей, понимающих в lua. Хочется, чтобы твой дпс дублировался над полоской каста (например как в DDStats [не устраивает как аддон подсчитывает дпс]).

    Небольшое наглядный пример: http://hostingkartinok.com/image/01201111/d346872e418c600a7a8b60f08147e50d.jpg

    Я примерно понимаю, что это не очень сложно, но к сожалению не силён в программировании.

  3. Для ленивых:

    1) идёте в папочку с аддоном (\Аллоды Онлайн\data\Mods\Addons\AutoDeleteMail)

    2) открываете файл AutoDeleteMail.lua (блокнотом)

    3) копируете туда следующий код (уже с исправлениями):

    Code:

    -- AutoDeleteMail.lua

    -- GLOBALS VARS FOR DELETING

    Global( "mailList", {} )

    Global( "mailCounter", 0 )

    Global( "mailsSize", 0)

    -- BUTTONS

    Global("CollectButton", nil)

    Global("WaitButton", nil)

    -- LOCALIZATION

    Global( "localization", "eng" )

    --------------------------------------------------------------------------------

    -- USER PROCEDURES

    --------------------------------------------------------------------------------

    -- Deleting the letter, if there is no items/money attachments left.

    function OnExtract( params, extractType )

    if params.sysResult == "ENUM_MailServiceReply_Succeeded" then

    local info = mailBox.RequestMailInfo(params.mailId)

    local body = info.body

    local itemsCount = 0

    if body.itemSlotCount > 0 then

    for i = 0, body.itemSlotCount - 1 do

    if body.items   then

    itemsCount = itemsCount + 1

    end

    end

    end

    if extractType == "money" then

    if itemsCount == 0 then

    mailBox.DeleteMail( params.mailId ) -- Deleting the empty letter.

    end

    else

    if itemsCount == 0 then

    if body.money == 0 then

    mailBox.DeleteMail( params.mailId ) -- Deleting the empty letter.

    end

    end

    end

    end

    end

    -- AO game Localization detection by SLA. Version 2011-02-10.

    function GetGameLocalization()

    local B = cartographer.GetMapBlocks()

    local T = { rus="\203\232\227\224", eng="Holy Land", ger="Heiliges Land",

    fra="Terre Sacr\233e", br="Terra Sagrada", jpn="\131\74\131\106\131\65" }

    for b in B do for l,t in T do

    if userMods.FromWString( cartographer.GetMapBlockInfo(B  ).name ) == t

    then return l end end end return "eng"

    end

    --------------------------------------------------------------------------------

    -- EVENT HANDLERS

    --------------------------------------------------------------------------------

    --EVENT_MAILBOX_ACTIVATED

    function OnMailBoxActivated ()

    CollectButton:Show(true)

    WaitButton:Show(false)

    end

    --EVENT_MAILBOX_CLOSED

    function OnMailBoxClosed ()

    CollectButton:Show(false)

    WaitButton:Show(false)

    mailList = {}

    mailCounter = 0

    mailsSize = 0

    common.UnRegisterEventHandler( OnMailsChanged, "EVENT_MAILS_CHANGED" )

    end

    --EVENT_MAIL_EXTRACT_ITEMS_RESULT

    function OnExtractItems (params)

    OnExtract(params, "items")

    end

    --EVENT_MAIL_EXTRACT_MONEY_RESULT

    function OnExtractMoney (params)

    OnExtract(params, "money")

    end

    --EVENT_MAILS_CHANGED

    function OnMailsChanged ()

    if GetTableSize(mailList) > 0 then

    local info = mailBox.RequestMailInfo(mailList  [mailcounter]  )

    local isExtracted = true

    if GetTableSize(info) == 0 then

    return 0

    end

    if info.mailTemplate then

    if info.body.money == 0 then

    if info.header.hasItems == false then

    if mailBox.IsReady() then

    mailBox.DeleteMail( mailList [mailCounter]  ) -- Deleting the empty letter.

    else

    return 0

    end

    end

    -- TODO: WTF? How about extracting items as well?

    else

    mailBox.ExtractMailMoney( mailList [mailCounter]  )

    isExtracted = false

    end

    end

    mailCounter = mailCounter + 1

    --local fl = mailCounter / mailsSize

    --WaitButton:SetClassVal( "value", common.FormatFloat( fl, "%.1f" ) )

    if mailCounter >= mailsSize then

    mailList = {}

    mailCounter = 0

    mailsSize = 0

    common.UnRegisterEventHandler( OnMailsChanged, "EVENT_MAILS_CHANGED" )

    CollectButton:Show(true)

    WaitButton:Show(false)

    return 0

    end

    if isExtracted then

    userMods.SendEvent( "EVENT_MAILS_CHANGED", {} )

    end

    end

    end

    -- Cleaning up the mailbox.

    function OnCollectButtonReaction ()

    local mailTempList = {}

    if mailBox.IsReady() then

    mailTempList = mailBox.RequestMailIds()

    end

    if GetTableSize( mailTempList ) > 0 then

    if mailCounter == 0 then

    mailList = mailTempList

    mailsSize = GetTableSize( mailList )

    CollectButton:Show(false)

    WaitButton:Show(true)

    common.RegisterEventHandler( OnMailsChanged, "EVENT_MAILS_CHANGED" )

    userMods.SendEvent( "EVENT_MAILS_CHANGED", {} )

    end

    end

    end

    -- SCRIPT_ADDON_INFO_REQUEST

    function OnAMAddonInfoRequest( params )

    if params.target == common.GetAddonName() then

    userMods.SendEvent( "SCRIPT_ADDON_INFO_RESPONSE", {

    sender = params.target,

    desc = userMods.FromWString( common.GetAddonRelatedTextGroup( localization ):GetText( "Description" ) ),

    } )

    end

    end

    -- SCRIPT_ADDON_MEM_REQUEST

    function OnAMAddonMemoryRequest( params )

    if params.target == common.GetAddonName() then

    userMods.SendEvent( "SCRIPT_ADDON_MEM_RESPONSE", { sender = params.target, memUsage = gcinfo() } )

    end

    end

    --SCRIPT_TOGGLE_UI

    function OnToggleUI( params )

    mainForm:Show( params.visible )

    end

    --------------------------------------------------------------------------------

    -- INITIALIZATION

    --------------------------------------------------------------------------------

    function Init()

    -- BUTTONS

    CollectButton = mainForm:GetChildChecked("CollectButton", false)

    WaitButton = mainForm:GetChildChecked("WaitButton", false)

    -- EVENT HANDLERS

    common.RegisterEventHandler( PostInit, "EVENT_AVATAR_CREATED" ) -- Second part of initialization.

    common.RegisterEventHandler( OnMailBoxActivated, "EVENT_MAILBOX_ACTIVATED" )

    common.RegisterEventHandler( OnMailBoxClosed, "EVENT_MAILBOX_CLOSED" )

    common.RegisterEventHandler( OnExtractItems, "EVENT_MAIL_EXTRACT_ITEMS_RESULT" )

    common.RegisterEventHandler( OnExtractMoney, "EVENT_MAIL_EXTRACT_MONEY_RESULT" )

    common.RegisterEventHandler( OnAMAddonInfoRequest, "SCRIPT_ADDON_INFO_REQUEST" )

    common.RegisterEventHandler( OnAMAddonMemoryRequest, "SCRIPT_ADDON_MEM_REQUEST" )

    common.RegisterEventHandler( OnToggleUI, "SCRIPT_TOGGLE_UI" )

    -- REACTION HANDLERS

    common.RegisterReactionHandler(OnCollectButtonReaction, "CollectButtonReaction")

    -- Backward compatibility with pre-1.1.04 versions:

    if not social.GetFriendInfo then

    mainForm:SetPriority( 2000 )

    end

    -- P.S. In AO 2.0.03, priority changed from 4501 to 4701.

    -- Continue now (or later)?

    if avatar.IsExist() then

    PostInit()

    end

    end

    function PostInit()

    -- LOCALIZATION

    localization = GetGameLocalization()

    if not common.GetAddonRelatedTextGroup( localization ) then

    localization = "eng"

    end

    CollectButton:SetVal( "button_label", common.GetAddonRelatedTextGroup( localization ):GetText( "CollectButton" ) )

    WaitButton:SetVal( "button_label", common.GetAddonRelatedTextGroup( localization ):GetText( "WaitButton" ) )

    OnAMAddonInfoRequest( { target = common.GetAddonName() } )

    -- Show the button now?

    if mailBox.IsReady() then

    OnMailBoxActivated()

    end

    end

    --------------------------------------------------------------------------------

    Init()

    --------------------------------------------------------------------------------

    4) сохраняете и идёте в игру играть

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

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

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