Shestak UI
Go Back   Shestak UI > Interface Forums > Russian Community > Modified Versions

Modified Versions Your modified version of ShestakUI.

Advertising

 
Thread Tools
Old 25.10.2012, 20:17   #1
 Assistant User Information

m2jest1c's Avatar
Post RangeDisplay (не путать с аддоном)

Простенький счетчик дальности до цели (<5, 5-8, 8-10, 10-15, 15-20, 20-25, 25-30, 30-35, 35-40, >40), будет полезно пристам (последний тир талантов) и не только.


Добавить в конец файла ShestakUI\Modules\Misc\Misc.lua:
lua Code [Select]:
----------------------------------------------------------------------------------------
--  RangeDisplay
----------------------------------------------------------------------------------------
local RangeDisplay = UIParent:CreateFontString(nil, "OVERLAY")
RangeDisplay:SetFont(C.media.pixel_font, C.media.pixel_font_size * 2, C.media.pixel_font_style)
RangeDisplay:SetPoint("CENTER", 0, -100)
local Items = {
["Friend"] = {
        37727-- 5
        34368-- 8
        32321-- 10
        1251,   -- 15
        21519-- 20
        31463-- 25
        1180,   -- 30
        18904-- 35
        34471-- 40
    },
    ["Enemy"] = {
        37727-- 5
        34368-- 8
        32321-- 10
        33069-- 15
        10645-- 20
        31463-- 25
        835,    -- 30
        18904-- 35
        28767-- 40
    },
}
local Colors = {
    {0.3, 0.3, 0.9},    -- 0-5
    {0.3, 0.9, 0.9},    -- 5-8
    {0.3, 0.9, 0.9},    -- 5-10
    {0.3, 0.9, 0.9},    -- 10-15
    {0.9, 0.9, 0.1},    -- 15-20
    {0.9, 0.9, 0.1},    -- 20-25
    {0.1, 0.9, 0.1},    -- 25-30
    {0.9, 0.9, 0.1},    -- 30-35
    {0.9, 0.9, 0.1},    -- 35-40
    {0.9, 0.1, 0.1},    -- >40
}

local timer = 0
local f = CreateFrame("Frame")
f:SetScript("OnUpdate", function(self, elapsed)
    timer = timer + elapsed
    if timer >= 0.2 then
        local distance = 0
        local target = nil
       
        if UnitCanAssist("player", "target") and UnitIsUnit("target", "player") == nil then
            target = Items.Friend
        elseif UnitCanAttack("player", "target") then
            target = Items.Enemy
        end
       
        if target ~= nil then
            RangeDisplay:Show()
            for key, item in pairs(target) do
                if IsItemInRange(item, "target") == 0 then
                    distance = key
                end
            end
            for key, color in pairs(Colors) do
                local r, g, b = unpack(color)
                if distance == key - 1 then
                    RangeDisplay:SetTextColor(r, g, b)
                end
            end
        else
            RangeDisplay:Hide()
        end
       
        if distance == 0 then
            RangeDisplay:SetText("< 5")
        elseif distance == 1 then
            RangeDisplay:SetText("5-8")
        elseif distance == 2 then
            RangeDisplay:SetText("8-10")
        elseif distance < 9 then
            local minDistance = distance * 5 - 5
            local maxDistance = distance * 5
            RangeDisplay:SetText(minDistance.."-"..maxDistance)
        else
            RangeDisplay:SetText("> 40")
        end
       
        timer = 0
    end
end)
Says Thank:
gilinho (25.10.2012), Oz (27.10.2012), Shestak (25.10.2012)
Old 25.10.2012, 20:17   #1.5 - Disable Ads

Advertise on this site

Old 27.10.2012, 03:32   #2
m2jest1c
 Assistant User Information

m2jest1c's Avatar
увеличил в 2 раза шрифт, расстояние теперь измеряется от < 5 до > 40.

Добавлено через 9 часов 58 минут
внес последние изменения (был кривой предмет для проверки 35 метров)
Says Thank:
gilinho (26.10.2012), Shestak (26.10.2012)
Old 31.10.2012, 18:36   #3
m2jest1c
 Assistant User Information

m2jest1c's Avatar
Обновил первое сообщение. Спасибо Oz за тестирование
Say Thank:
Shestak (31.10.2012)
Old 27.10.2013, 08:37   #4
Shestak
 Junior Member User Information

Shestak's Avatar
Wetxius, а нам такое не надо в сборку?
Old 27.10.2013, 10:30   #5
Wetxius
 Assistant User Information

Wetxius's Avatar
https://github.com/Shestak/ShestakUI...eBar.lua#L4-L6
А это что у нас тогда добавлено?
Say Thank:
Shestak (27.10.2013)
Old 27.10.2013, 10:52   #6
Shestak
 Junior Member User Information

Shestak's Avatar
Quote:
Originally Posted by Wetxius View Post
А это что у нас тогда добавлено?
Забыл уже про все
Old 27.10.2013, 11:20   #7
Wetxius
 Assistant User Information

Wetxius's Avatar
Тэг надо выставить "Встроен".
Old 27.10.2013, 11:23   #8
Shestak
 Junior Member User Information

Shestak's Avatar
Ну тут не совсем то, что у нас встроено. У нас полоска, а тут цифры.
Old 27.10.2013, 11:45   #9
Wetxius
 Assistant User Information

Wetxius's Avatar

Info Аналог данного кода встроен в основную сборку (в виде полосы для жрецов).

Says Thank:
Hoodoo (27.10.2013), Shestak (27.10.2013)
Old 20.12.2013, 01:36   #10
timberwolf
 Elder Member User Information

timberwolf's Avatar
Вот включил я этот Range Bar в настройках, а полоску на экране найти не могу. поможите, пожалуйста, люди добрые. Где её искать/как она выгладит?

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
[4.0] RangeDisplay (not same named addon) m2jest1c Modified Versions 1 31.10.2012 18:41


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