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

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

Advertising

 
Thread Tools
Old 19.09.2012, 16:45   #41
Shestak
 Junior Member User Information

Shestak's Avatar
Давай другим путем пойдем. Чего ты хочешь исправить?

Добавлено через 17 секунд
Ррребят, я просто не в курсе
Old 19.09.2012, 16:45   #1.5 - Disable Ads

Advertise on this site

Old 19.09.2012, 16:58   #42
Wetxius
 Assistant User Information

Wetxius's Avatar
Quote:
Originally Posted by Shestak View Post
Давай другим путем пойдем. Чего ты хочешь исправить?
Суть следующая. Анонс еды и настоя работает в групповых подземельях, работает, если ты в группе, но вне подземелья.
До моего фикса, он работал в рейд, только вне рейдового подземелья, а теперь наоборот, работает внутри, но не работает снаружи. Не так критично. Короче, анонс фласок в рейде я поправил, тк он реально не работал. Именно внутри

Добавлено через 2 минуты
Потому что у нас идет проверка: если ты внутри, возврат значения, на основе сложности подземелья. А если ты снаружи: возврат на основе сложности установленной в настройке персонажа. И там идет вывод разных параметров.
Say Thank:
Shestak (19.09.2012)
Old 19.09.2012, 17:19   #43
Shestak
 Junior Member User Information

Shestak's Avatar
Quote:
Originally Posted by Wetxius View Post
Короче, анонс фласок в рейде я поправил, тк он реально не работал
Так, а что не работает?
Old 19.09.2012, 17:29   #44
Wetxius
 Assistant User Information

Wetxius's Avatar
Не правильно работает проверка вне рейдового подземелья, если находишься в рейдовой группе, как-то так. Там пишет: у всех всё есть. Понятно, что чекать в шторме не будут) Но мало ли...
Old 19.09.2012, 17:36   #45
Shestak
 Junior Member User Information

Shestak's Avatar
Я сейчас сижу, и думаю. А зачем городить такой огород для рейда? Почему бы просто сделать чек рейда по онлайности "if online then local unit = checkType..i". Или я опять не понял сути?

Добавлено через 4 минуты
Если находится далеко от рейда, то апи вова нам не отдает таймер баффа/дебаффа, но сам бафф/дебафф присутствует(т.е. то, что мы и проверяем). Тогда и условие сделать можно проще, как и везде(изРейд, изПати).
Old 19.09.2012, 17:41   #46
Wetxius
 Assistant User Information

Wetxius's Avatar
Если это будет работать, во всех случаях, то я только за
Old 19.09.2012, 17:56   #47
Shestak
 Junior Member User Information

Shestak's Avatar
lua Code [Select]:
local T, C, L, _ = unpack(select(2, ...))
if C.announcements.flask_food ~= true then return end

----------------------------------------------------------------------------------------
--  Checks the usage of flasks and food of your party/raid members(ffCheck by Silverwind)
----------------------------------------------------------------------------------------
local noFood, noFlask, unitBuffs = {}, {}, {}
local foods = T.ReminderBuffs["Food"]
local flasks = T.ReminderBuffs["Flask"]

local function scan(unit)
    table.wipe(unitBuffs)
    local i = 1
    while true do
        local name = UnitAura(unit, i, "HELPFUL")
        if not name then return end
        unitBuffs[name] = true
        i = i + 1
    end
end

local function checkFood(unit)
    scan(unit)
    for _, id in pairs(foods) do
        if unitBuffs[GetSpellInfo(id)] then
            return true
        end
    end
end

local function checkFlask(unit)
    scan(unit)
    for _, id in pairs(flasks) do
        if unitBuffs[GetSpellInfo(id)] then
            return true
        end
    end
end

local function checkUnit(unit)
    local name = UnitName(unit)
    if not checkFood(unit) then
        noFood[#noFood + 1] = name
    end
    if not checkFlask(unit) then
        noFlask[#noFlask + 1] = name
    end
end

local function print(text)
    _G.print("|cffffff00"..text.."|r")
end

-- The Main function to run a check
local function run(autoreport)
    local num = GetNumGroupMembers()
    local checkType = "raid"
    local output

    if C.announcements.flask_food_auto == true then C.announcements.flask_food_raid = true end

    table.wipe(noFood)
    table.wipe(noFlask)

    if not UnitInRaid("player") then
        if num > 0 and num <= 4 then
            checkType = "party"
        end
        checkUnit("player")
    end

    for i = 1, num do
        if checkType == "raid" then
            local online = select(8, GetRaidRosterInfo(i))
            if online then
                local unit = checkType..i
                checkUnit(unit)
            end
        else
            local unit = checkType..i
            if UnitIsConnected(unit) then
                checkUnit(unit)
            end
        end
    end

    if #noFlask > 0 then
        table.sort(noFlask)
        output = L_ANNOUNCE_FF_NOFLASK..table.concat(noFlask, ", ")
        if C.announcements.flask_food_raid then
            SendChatMessage(output, checkType)
        else
            print(output)
        end
    end

    if #noFood > 0 then
        table.sort(noFood)
        output = L_ANNOUNCE_FF_NOFOOD..table.concat(noFood, ", ")
        if C.announcements.flask_food_raid then
            SendChatMessage(output, checkType)
        else
            print(output)
        end
    end

    if #noFood == 0 and #noFlask == 0 then
        if C.announcements.flask_food_raid then
            SendChatMessage(L_ANNOUNCE_FF_ALLBUFFED, checkType)
        else
            print(L_ANNOUNCE_FF_ALLBUFFED)
        end
    end
end

-- Event Handler
local frame = CreateFrame("Frame")
frame:RegisterEvent("READY_CHECK")
frame:SetScript("OnEvent", function(self, event, ...)
    if C.announcements.flask_food_auto then
        run(true)
    end
end)

-- Slash command
SlashCmdList.FFCHECK = run
SLASH_FFCHECK1 = "/ffcheck"
SLASH_FFCHECK2 = "/аасрусл"

-- Check button
if C.misc.raid_tools == true then
    RaidUtilityPanel:Height(168)

    local button = CreateFrame("Button", "FoodFlaskCheckButton", RaidUtilityPanel, "UIPanelButtonTemplate")
    button:Width(RaidUtilityRoleButton:GetWidth())
    button:Height(18)
    button:Point("TOP", RaidUtilityRaidControlButton, "BOTTOM", 0, -5)
    if IsAddOnLoaded("Aurora") then
        local F = unpack(Aurora)
        F.Reskin(button)
    else
        button:SkinButton()
    end
    button:EnableMouse(true)
    button:SetScript("OnMouseUp", function(self) run() end)

    local t = button:CreateFontString(nil, "OVERLAY", button)
    t:SetFont(C.media.pixel_font, C.media.pixel_font_size, C.media.pixel_font_style)
    t:SetPoint("CENTER")
    t:SetJustifyH("CENTER")
    t:SetText(L_ANNOUNCE_FF_CHECK_BUTTON)
end

Добавлено через 15 секунд
lua Code [Select]:
local T, C, L, _ = unpack(select(2, ...))
if C.announcements.flask_food ~= true then return end

----------------------------------------------------------------------------------------
--  Checks the usage of flasks and food of your party/raid members(ffCheck by Silverwind)
----------------------------------------------------------------------------------------
local noFood, noFlask, unitBuffs = {}, {}, {}
local foods = T.ReminderBuffs["Food"]
local flasks = T.ReminderBuffs["Flask"]

local function scan(unit)
    table.wipe(unitBuffs)
    local i = 1
    while true do
        local name = UnitAura(unit, i, "HELPFUL")
        if not name then return end
        unitBuffs[name] = true
        i = i + 1
    end
end

local function checkFood(unit)
    scan(unit)
    for _, id in pairs(foods) do
        if unitBuffs[GetSpellInfo(id)] then
            return true
        end
    end
end

local function checkFlask(unit)
    scan(unit)
    for _, id in pairs(flasks) do
        if unitBuffs[GetSpellInfo(id)] then
            return true
        end
    end
end

local function checkUnit(unit)
    local name = UnitName(unit)
    if not checkFood(unit) then
        noFood[#noFood + 1] = name
    end
    if not checkFlask(unit) then
        noFlask[#noFlask + 1] = name
    end
end

local function print(text)
    _G.print("|cffffff00"..text.."|r")
end

-- The Main function to run a check
local function run(autoreport)
    local num = GetNumGroupMembers()
    local checkType = "raid"
    local output

    if C.announcements.flask_food_auto == true then C.announcements.flask_food_raid = true end

    table.wipe(noFood)
    table.wipe(noFlask)

    if not UnitInRaid("player") then
        if num > 0 and num <= 4 then
            checkType = "party"
        end
        checkUnit("player")
    end

    for i = 1, num do
        if checkType == "raid" then
            local online = select(8, GetRaidRosterInfo(i))
            if online then
                local unit = checkType..i
                checkUnit(unit)
            end
        else
            local unit = checkType..i
            if UnitIsConnected(unit) then
                checkUnit(unit)
            end
        end
    end

    if #noFlask > 0 then
        table.sort(noFlask)
        output = L_ANNOUNCE_FF_NOFLASK..table.concat(noFlask, ", ")
        if C.announcements.flask_food_raid then
            SendChatMessage(output, checkType)
        else
            print(output)
        end
    end

    if #noFood > 0 then
        table.sort(noFood)
        output = L_ANNOUNCE_FF_NOFOOD..table.concat(noFood, ", ")
        if C.announcements.flask_food_raid then
            SendChatMessage(output, checkType)
        else
            print(output)
        end
    end

    if #noFood == 0 and #noFlask == 0 then
        if C.announcements.flask_food_raid then
            SendChatMessage(L_ANNOUNCE_FF_ALLBUFFED, checkType)
        else
            print(L_ANNOUNCE_FF_ALLBUFFED)
        end
    end
end

-- Event Handler
local frame = CreateFrame("Frame")
frame:RegisterEvent("READY_CHECK")
frame:SetScript("OnEvent", function(self, event, ...)
    if C.announcements.flask_food_auto then
        run(true)
    end
end)

-- Slash command
SlashCmdList.FFCHECK = run
SLASH_FFCHECK1 = "/ffcheck"
SLASH_FFCHECK2 = "/аасрусл"

-- Check button
if C.misc.raid_tools == true then
    RaidUtilityPanel:Height(168)

    local button = CreateFrame("Button", "FoodFlaskCheckButton", RaidUtilityPanel, "UIPanelButtonTemplate")
    button:Width(RaidUtilityRoleButton:GetWidth())
    button:Height(18)
    button:Point("TOP", RaidUtilityRaidControlButton, "BOTTOM", 0, -5)
    if IsAddOnLoaded("Aurora") then
        local F = unpack(Aurora)
        F.Reskin(button)
    else
        button:SkinButton()
    end
    button:EnableMouse(true)
    button:SetScript("OnMouseUp", function(self) run() end)

    local t = button:CreateFontString(nil, "OVERLAY", button)
    t:SetFont(C.media.pixel_font, C.media.pixel_font_size, C.media.pixel_font_style)
    t:SetPoint("CENTER")
    t:SetJustifyH("CENTER")
    t:SetText(L_ANNOUNCE_FF_CHECK_BUTTON)
end
Old 19.09.2012, 18:27   #48
Wetxius
 Assistant User Information

Wetxius's Avatar
Работает вроде.
Можно ещё так скукожить:
Code [Select]:
local T, C, L, _ = unpack(select(2, ...))
if C.announcements.flask_food ~= true then return end

----------------------------------------------------------------------------------------
--  Checks the usage of flasks and food of your party/raid members(ffCheck by Silverwind)
----------------------------------------------------------------------------------------
local noFood, noFlask, unitBuffs = {}, {}, {}
local foods = T.ReminderBuffs["Food"]
local flasks = T.ReminderBuffs["Flask"]

local function scan(unit)
    table.wipe(unitBuffs)
    local i = 1
    while true do
        local name = UnitAura(unit, i, "HELPFUL")
        if not name then return end
        unitBuffs[name] = true
        i = i + 1
    end
end

local function checkFood(unit)
    scan(unit)
    for _, id in pairs(foods) do
        if unitBuffs[GetSpellInfo(id)] then
            return true
        end
    end
end

local function checkFlask(unit)
    scan(unit)
    for _, id in pairs(flasks) do
        if unitBuffs[GetSpellInfo(id)] then
            return true
        end
    end
end

local function checkUnit(unit)
    local name = UnitName(unit)
    if not checkFood(unit) then
        noFood[#noFood + 1] = name
    end
    if not checkFlask(unit) then
        noFlask[#noFlask + 1] = name
    end
end

local function print(text)
    _G.print("|cffffff00"..text.."|r")
end

-- The Main function to run a check
local function run(autoreport)
    local checkType
    local output

    if C.announcements.flask_food_auto == true then C.announcements.flask_food_raid = true end

    table.wipe(noFood)
    table.wipe(noFlask)

    if UnitInRaid("player") then
		checkType = "raid"
	else
		checkType = "party"
		checkUnit("player")
    end

    for i = 1, GetNumGroupMembers() do
        if checkType == "raid" then
            local online = select(8, GetRaidRosterInfo(i))
            if online then
                local unit = checkType..i
                checkUnit(unit)
            end
        else
            local unit = checkType..i
            if UnitIsConnected(unit) then
                checkUnit(unit)
            end
        end
    end

    if #noFlask > 0 then
        table.sort(noFlask)
        output = L_ANNOUNCE_FF_NOFLASK..table.concat(noFlask, ", ")
        if C.announcements.flask_food_raid then
            SendChatMessage(output, checkType)
        else
            print(output)
        end
    end

    if #noFood > 0 then
        table.sort(noFood)
        output = L_ANNOUNCE_FF_NOFOOD..table.concat(noFood, ", ")
        if C.announcements.flask_food_raid then
            SendChatMessage(output, checkType)
        else
            print(output)
        end
    end

    if #noFood == 0 and #noFlask == 0 then
        if C.announcements.flask_food_raid then
            SendChatMessage(L_ANNOUNCE_FF_ALLBUFFED, checkType)
        else
            print(L_ANNOUNCE_FF_ALLBUFFED)
        end
    end
end

-- Event Handler
local frame = CreateFrame("Frame")
frame:RegisterEvent("READY_CHECK")
frame:SetScript("OnEvent", function(self, event, ...)
    if C.announcements.flask_food_auto then
        run(true)
    end
end)

-- Slash command
SlashCmdList.FFCHECK = run
SLASH_FFCHECK1 = "/ffcheck"
SLASH_FFCHECK2 = "/аасрусл"

-- Check button
if C.misc.raid_tools == true then
    RaidUtilityPanel:Height(168)

    local button = CreateFrame("Button", "FoodFlaskCheckButton", RaidUtilityPanel, "UIPanelButtonTemplate")
    button:Width(RaidUtilityRoleButton:GetWidth())
    button:Height(18)
    button:Point("TOP", RaidUtilityRaidControlButton, "BOTTOM", 0, -5)
    if IsAddOnLoaded("Aurora") then
        local F = unpack(Aurora)
        F.Reskin(button)
    else
        button:SkinButton()
    end
    button:EnableMouse(true)
    button:SetScript("OnMouseUp", function(self) run() end)

    local t = button:CreateFontString(nil, "OVERLAY", button)
    t:SetFont(C.media.pixel_font, C.media.pixel_font_size, C.media.pixel_font_style)
    t:SetPoint("CENTER")
    t:SetJustifyH("CENTER")
    t:SetText(L_ANNOUNCE_FF_CHECK_BUTTON)
end
Добавлено через 1 минуту
Смотри ещё, там вместо табуляций, пробелами нафигачены отступы )
Old 19.09.2012, 18:30   #49
Shestak
 Junior Member User Information

Shestak's Avatar
Quote:
Originally Posted by Wetxius View Post
Можно ещё так скукожить:
Ну если и так работает, то да.

Добавлено через 50 секунд
https://github.com/Shestak/ShestakUI...c1b9c7bc784862
Old 23.09.2012, 12:24   #50
Wetxius
 Assistant User Information

Wetxius's Avatar
Erratic, а ты не можешь потестить почту?
[54710] = true, -- MOLL-E
При такое ид (а возможно и эвент другой на вызов), когда я был в рейде, не хотелось писаться в чат. При наведении на уже поставленную почту писалось "Переносной почтовой ящик"

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