Go Back   Shestak UI > Interface Forums > Russian Community > Spell/Item Filters

Spell/Item Filters Обсуждение различных списков/фильтров ShestakUI

Advertising

 
Thread Tools
Old 05.09.2012, 17:30   #11
Erratic
 Assistant User Information

Erratic's Avatar
могу подсобить тестом бота, у меня два инженера)
Say Thank:
Shestak (05.09.2012)
Old 05.09.2012, 17:30   #1.5 - Disable Ads

Advertise on this site

Old 05.09.2012, 17:34   #12
Wetxius
 Assistant User Information

Wetxius's Avatar
На бота SPELL_SUMMON идет.
Локовские камни SPELL_CREATE
Say Thank:
Shestak (05.09.2012)
Old 05.09.2012, 17:40   #13
Shestak
 Junior Member User Information

Shestak's Avatar
Quote:
Originally Posted by Wetxius View Post
На бота SPELL_SUMMON идет.
Локовские камни SPELL_CREATE
Итого вот так:
lua Code [Select]:
local feasts = {
    58474-- Small Feast
    58465-- Gigantic Feast
    57301-- Great Feast
    66476-- Bountiful Feast (Pilgrim's Bounty World Event)
    57426-- Fish Feast (WOTLK)
    87643-- Broiled Dragon Feast
    87915-- Goblin BBQ Feast
    87644   -- Seafood Magnifique Feast
}

local cauldrons = {
    92649-- Cauldron of Battle
    92712   -- Big Cauldron of Battle
}

local repairBots = {
    67826-- Jeeves
    22700-- Field Repair Bot 74A
    44389-- Field Repair Bot 110G
    54711   -- Scrapbot
}

local function CanRaidWarning()
    if GetNumGroupMembers() == 0 or not GetNumGroupMembers() then return false end
    return (UnitIsGroupLeader("player") or UnitIsRaidOfficer("player")) and true or false
end

local function InArray(array, needle)
    if #array == 0 then return false end
    for _, value in pairs(array) do
        if needle == value then return true end
    end
    return false
end

local function GetChat()
    if GetNumGroupMembers() > 0 then
        return CanRaidWarning() and "RAID_WARNING" or "RAID"
    elseif GetNumSubgroupMembers() > 0 then
        return "PARTY"
    end
    return "SAY"
end

local function InGroup()
    return (GetNumSubgroupMembers() > 0 or GetNumGroupMembers() > 0) and true or false
end

local frame = CreateFrame("Frame")
frame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
frame:SetScript("OnEvent", function(self, event, _, subEvent, _, _, srcName, _, _, _, _, _, _, spellID, spellName, ...)
    --if not InGroup() or InCombatLockdown() or not subEvent or not spellID or not srcName or not spellName then return end
    --if not UnitInRaid(srcName) and not UnitInParty(srcName) then return end

    if subEvent == "SPELL_CAST_START" then
        -- Feasts/Cauldrons
        if InArray(feasts, spellID) or InArray(cauldrons, spellID) then
            SendChatMessage(string.format("%s has prepared a %s.", srcName, GetSpellLink(spellID)), GetChat())
        end
    elseif subEvent == "SPELL_SUMMON" then
        -- Repair bots
        if InArray(repairBots, spellID) then
            SendChatMessage(string.format("%s has put down a %s.", srcName, GetSpellLink(spellID)), GetChat())
        end
    elseif subEvent == "SPELL_CREATE" then
        -- Ritual of Souls
        if spellID == 29893 then
            SendChatMessage(string.format("%s has put down a %s.", srcName, GetSpellLink(spellID)), GetChat())
        end
    elseif subEvent == "SPELL_CAST_SUCCESS" then
        -- Refreshment table
        if spellID == 43987 then
            SendChatMessage(string.format("%s has put down a %s.", srcName, GetSpellLink(spellID)), GetChat())
        -- Ritual of Summoning
        elseif spellID == 698 then
            SendChatMessage(string.format("%s is casting %s. Click!", srcName, GetSpellLink(spellID)), GetChat())
        end
    end
end)

Маговский стол еще бы определить.
Old 05.09.2012, 17:52   #14
Wetxius
 Assistant User Information

Wetxius's Avatar
Боты каст идет?
Может даже подойдет SPELL_CAST_SUCCESS
Он же для всех видов ритуалов (маговские столы, вызов лока)
Подсмотрел в Flump. (Не точно)
Устарело

Добавлено через 6 минут
SPELL_CAST_START попробуй для стола мага/вызова. Они теперь не требует клика со стороны группы, просто каст идет.

Добавлено через 1 минуту
Если не это, то точно SPELL_CREATE
Old 07.09.2012, 03:56   #15
Shestak
 Junior Member User Information

Shestak's Avatar
Quote:
Originally Posted by Wetxius View Post
SPELL_CAST_START попробуй для стола мага/вызова. Они теперь не требует клика со стороны группы, просто каст идет.
Об этом я выше писал, для маговского стола не пойдет(оно работает), так как можно стопнуть каст, а анонс уже прошел. Нужно именно на конец каста.

Добавлено через 33 часа 42 минуты
Продолжаем. Получилось вот так:
lua Code [Select]:
local T, C, L, _ = unpack(select(2, ...))

----------------------------------------------------------------------------------------
--  Temporary stuff
----------------------------------------------------------------------------------------
local haste = {
    [90355] = true-- Ancient Hysteria
    [80353] = true-- Time Warp
    [2825] = true-- Bloodlust
    [32182] = true-- Heroism
}

local feasts = {
    [87643] = true-- Broiled Dragon Feast
    [57426] = true-- Fish Feast
    [57301] = true-- Great Feast
    [58474] = true-- Small Feast
    [58465] = true-- Gigantic Feast
    [87644] = true-- Seafood Magnifique Feast
    [87915] = true-- Goblin Barbecue Feast
    [66476] = true-- Bountiful Feast
}

local cauldrons = {
    [92712] = true-- Big Cauldron of Battle
    [92649] = true-- Cauldron of Battle
}

local bots = {
    [22700] = true-- Field Repair Bot 74A
    [44389] = true-- Field Repair Bot 110G
    [67826] = true-- Jeeves
    [54711] = true-- Scrapbot
    [54710] = true-- MOLL-E
}

local toys = {
    [61031] = true-- Toy Train Set
    [49844] = true-- Direbrew's Remote
}

local portals = {
    [11419] = true-- Portal: Darnassus (Alliance)
    [32266] = true-- Portal: Exodar (Alliance)
    [11416] = true-- Portal: Ironforge (Alliance)
    [33691] = true-- Portal: Shattrath (Alliance)
    [10059] = true-- Portal: Stormwind (Alliance)
    [49360] = true-- Portal: Theramore (Alliance)
    [88345] = true-- Portal: Tol Barad (Alliance)
    [53142] = true-- Portal: Dalaran (Alliance/Horde)
    [11417] = true-- Portal: Orgrimmar (Horde)
    [35717] = true-- Portal: Shattrath (Horde)
    [32267] = true-- Portal: Silvermoon (Horde)
    [49361] = true-- Portal: Stonard (Horde)
    [11420] = true-- Portal: Thunder Bluff (Horde)
    [88346] = true-- Portal: Tol Barad (Horde)
    [11418] = true-- Portal: Undercity (Horde)
}

local function CanRaidWarning()
    if GetNumGroupMembers() == 0 or not GetNumGroupMembers() then return false end
    return (UnitIsGroupLeader("player") or UnitIsRaidOfficer("player")) and true or false
end

local function GetChat()
    if GetNumGroupMembers() > 0 then
        return CanRaidWarning() and "RAID_WARNING" or "RAID"
    elseif GetNumSubgroupMembers() > 0 then
        return "PARTY"
    end
    return "SAY"
end

local function InGroup()
    return (GetNumSubgroupMembers() > 0 or GetNumGroupMembers() > 0) and true or false
end

local frame = CreateFrame("Frame")
frame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
frame:SetScript("OnEvent", function(self, event, _, subEvent, _, _, srcName, _, _, _, _, _, _, spellID, ...)
    --if not InGroup() or InCombatLockdown() or not subEvent or not spellID or not srcName then return end
    --if not UnitInRaid(srcName) and not UnitInParty(srcName) then return end

    if subEvent == "SPELL_CAST_START" then
        -- Feasts/Cauldrons (работает)
        if feasts[spellID] or cauldrons[spellID] then
            SendChatMessage(string.format("%s has prepared a %s.", srcName, GetSpellLink(spellID)), GetChat())
        end
    elseif subEvent == "SPELL_SUMMON" then
        -- Repair bots (не проверено)
        if bots[spellID] then
            SendChatMessage(string.format("%s has put down a %s.", srcName, GetSpellLink(spellID)), GetChat())
        end
    elseif subEvent == "SPELL_CREATE" then
        -- Ritual of Souls (работает)
        if spellID == 29893 then
            SendChatMessage(string.format("%s has put down a %s.", srcName, GetSpellLink(spellID)), GetChat())
        -- Toys (работает)
        elseif toys[spellID] then
            SendChatMessage(string.format("%s has put down a %s.", srcName, GetSpellLink(spellID)), GetChat())
        -- Portals (работает)
        elseif portals[spellID] then
            SendChatMessage(string.format("%s has put down a %s.", srcName, GetSpellLink(spellID)), GetChat())
        end
    elseif subEvent == "SPELL_CAST_SUCCESS" then
        -- Haste (работает)
        if haste[spellID] then
            SendChatMessage(string.format("%s has put down a %s.", srcName, GetSpellLink(spellID)), GetChat())
        -- Refreshment table (не проверено)
        elseif spellID == 43987 then
            SendChatMessage(string.format("%s has put down a %s.", srcName, GetSpellLink(spellID)), GetChat())
        -- Ritual of Summoning (работает)
        elseif spellID == 698 then
            SendChatMessage(string.format("%s is casting %s. Click!", srcName, GetSpellLink(spellID)), GetChat())
        end
    end
end)

Не проверено боты, а маговский стол не подходит ни к одному(кроме SPELL_CAST_START, его обсуждали выше) эвенту О_о.
Old 07.09.2012, 09:15   #16
Wetxius
 Assistant User Information

Wetxius's Avatar
Героизм можно убрать, у нас же есть иконка в филгере.

Quote:
Originally Posted by Shestak View Post
маговский стол не подходит ни к одному
Вот, в других аддонах сделан так, поставлен задержка после каста стола, чтобы анонс прошел к его окончанию (естесно, если прервать каст, анонс пройдет).
У нас на пиры и котлы такой же эвент, и так же можно зафейлить.
Old 07.09.2012, 09:17   #17
Shestak
 Junior Member User Information

Shestak's Avatar
Quote:
Originally Posted by Wetxius View Post
У нас на пиры
Пир, если он аналог барбекюшницы, то зафейлить каст нельзя, нажал - полюбак поставится. Косяк только у магавского стола.
Old 07.09.2012, 09:24   #18
Wetxius
 Assistant User Information

Wetxius's Avatar
Если эвент один, то мы уже никак не исправим, либо ставить с фейлом, либо убирать.
Old 07.09.2012, 09:26   #19
Shestak
 Junior Member User Information

Shestak's Avatar
Не, поставить, поставим, но блин, должен же быть "завершающий" эвент именно для хавки мага.

П.С.: Близы вечно все к верх тормашками сделают
Old 07.09.2012, 09:36   #20
Wetxius
 Assistant User Information

Wetxius's Avatar
А нельзя сделать проверку на 3 секунды, если после SPELL_CAST_START нет SPELL_INTERRUPT, то писать в чат?
Или там SPELL_FAILED, если сам прервал.

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Fixed] Announcements\FeastsAndPortals.lua error leg883 Bugs Reports 4 05.10.2012 07:33


Mobile Style Русский English Deutsch Italian Chinese