Приветствуем вас на форуме проекта WoW Circle. Если вы читаете это, значит не зарегистрировались у нас. Для того, чтобы получить доступ к расширенным возможностям нашего форума нажмите сюда и пройди регистрацию, которая не займет у вас много времени. После регистрации будут доступны новые, более расширенные, возможности.
Кастбар напарника с условием

Упомянутые в теме пользователи:

Показано с 1 по 9 из 9
  1. #1
    Новичок
    Регистрация
    21.05.2015
    Сообщений
    18
    Поблагодарил(а)
    2
    Получено благодарностей: 1 (сообщений: 1).
    Репутация: 1

    Lightbulb Кастбар напарника с условием

    Здраввствуйте. Существует ли аддон, показывающий кастбар напарника, когда он меня хилит? То есть ситуация такая: когда я использую хилящее заклинание у моего напарника отображается мой кастбар.
    Если нет 100% информации по такому аддону, то вопрос к знающим, не могли бы Вы поделиться кодом кастбара тригером которого был бы хилящий каст исходящий от party1 -> player. Интересует сам графический фрейм и место с предусловием для его отображения.
    Заранее спасибо.

  2. #2
    Инопланетянин
    Регистрация
    20.03.2012
    Сообщений
    4,194
    Поблагодарил(а)
    362
    Получено благодарностей: 1,439 (сообщений: 839).
    Репутация: 2399
    Цитата Сообщение от Mitradir Посмотреть сообщение
    Здраввствуйте. Существует ли аддон, показывающий кастбар напарника, когда он меня хилит? То есть ситуация такая: когда я использую хилящее заклинание у моего напарника отображается мой кастбар.
    Если нет 100% информации по такому аддону, то вопрос к знающим, не могли бы Вы поделиться кодом кастбара тригером которого был бы хилящий каст исходящий от party1 -> player. Интересует сам графический фрейм и место с предусловием для его отображения.
    Заранее спасибо.
    Не хочу рушить надежду , но такое сделать не возможно. На это 3 причины -
    1) COMBAT_LOG_EVEN не передает в кого начался каст
    2) UNIT_SPELLCAST_START не передает в кого начался каст
    3) UnitCastingInfo не возвращает в кого начался каст

    Другими словами - я знаю что он кастует , но не знаю в кого ... и узнать это не возможно. Можно только если он всегда будет деражать тебя в таргете , но если он тебя по фокусу хилит или через хилбот или через /party1 и тд то ты не узнаешь в кого идет каст, кроме того такой аддон будет вводить в заблуждение еслиу него в таргете будет враг , а он тебя будет хилить по маусоверу и тд.

  3. #3
    Новичок
    Регистрация
    21.05.2015
    Сообщений
    18
    Поблагодарил(а)
    2
    Получено благодарностей: 1 (сообщений: 1).
    Репутация: 1
    Да, есть такая проблема, по этому есть несколько идей для самого напа, который бы понял по кому идет хил. По этому нужно чтобы просто отображался кастбар по party1, если произносится исцеляющее заклинание (неважно кто в таргете). Сложность для меня заключается в том, как создать этот фрейм кастбара party1
    Предположительно как это должно выглядеть:

    [функция фрейма кастбара party1]

    local healid = {
    [id]
    }
    for k,v in ipairs(healid) do
    if UnitCastingInfo("party1") == GetSpellInfo(v) then
    [вызов фрейма кастбара party1]
    end end
    Последний раз редактировалось Mitradir; 20.07.2015 в 02:26.

  4. #4
    Старожил Аватар для Wbtest2
    Регистрация
    21.02.2015
    Адрес
    Minsk
    Сообщений
    180
    Поблагодарил(а)
    46
    Получено благодарностей: 114 (сообщений: 60).
    Репутация: 114
    Набросал по быстрому:

    Ну как то так

    PHP код:
    local CastBar CreateFrame("StatusBar"nilUIParent);
    CastBar:SetPoint("CENTER"UIParent0, -150);
    CastBar:SetSize(16025);
    CastBar:SetStatusBarTexture("Interface\\TARGETINGFRAME\\UI-StatusBar");
    CastBar:SetStatusBarColor(1165/2550);
    CastBar:Hide();

    CastBar.bg CastBar:CreateTexture(nil"BACKGROUND");
    CastBar.bg:SetTexture("Interface\\TARGETINGFRAME\\UI-StatusBar");
    CastBar.bg:SetAllPoints();
    CastBar.bg:SetVertexColor(0001);

    CastBar.Text CastBar:CreateFontString(nil"OVERLAY");
    CastBar.Text:SetPoint("TOPLEFT",CastBar,"TOPLEFT"2, -5);
    CastBar.Text:SetPoint("BOTTOMRIGHT",CastBar,"BOTTOMRIGHT"06);
    CastBar.Text:SetFont("Fonts\\FRIZQT__.TTF"9"OUTLINE");
    CastBar.Text:SetJustifyH("LEFT");
    CastBar.Text:SetShadowOffset(1, -1);
    CastBar.Text:SetTextColor(111);

    CastBar.SpellIcon CreateFrame("Frame"nilCastBar);
    CastBar.SpellIcon:SetPoint("TOPRIGHT"CastBar"TOPLEFT"03);
    CastBar.SpellIcon:SetSize(CastBar:GetHeight()+6CastBar:GetHeight()+6);
    CastBar.SpellIcon:SetFrameStrata("HIGH");
    CastBar.SpellIcon.Texture CastBar.SpellIcon:CreateTexture(nil"ARTWORK");
    CastBar.SpellIcon.Texture:SetAllPoints();



    local SpellList = {
        
    48447,    -- Tranquility;
        
    48378,    -- Healing Touch;
    }

    CastBar:RegisterEvent("UNIT_SPELLCAST_START");
    CastBar:RegisterEvent("UNIT_SPELLCAST_CHANNEL_START");
    CastBar:SetScript("OnEvent", function(selfeventUnitIDSpell)
        if 
    UnitID ~= "party1" then return; end;
        
    local Exit = true;
        for 
    indexvalue in ipairs(SpellList) do
            if 
    Spell == GetSpellInfo(valuethen Exit = falseend;
        
    end;
        if Exit == 
    true then return; end;
        
        
    local CastingInfo;
        if        
    event == "UNIT_SPELLCAST_START"         then CastingInfo UnitCastingInfo;
        elseif    
    event == "UNIT_SPELLCAST_CHANNEL_START" then CastingInfo UnitChannelInfo;
        
    end;
        
        
    self:Show();
        
    self.Text:SetText(Spell);
        
    self.SpellIcon.Texture:SetTexture(select(4CastingInfo(UnitID)));
        
        
    local endTime select(6CastingInfo(UnitID)) / 1e3;
        
    local startTime select(5CastingInfo(UnitID)) / 1e3;
        
    local Max endTime startTime;
        
        
    self:SetMinMaxValues(0Max);
        
    self:SetValue(0);
        
        
    self:SetScript('OnUpdate', function(self)
            if 
    not CastingInfo(UnitIDthen self:SetScript('OnUpdate'nil); self:Hide() return; end
            
    self:SetValue(GetTime() - startTime);
        
    end)
    end); 
    [свернуть]
    Последний раз редактировалось Wbtest2; 20.07.2015 в 13:30.

  5. 1 пользователь сказал cпасибо Wbtest2 за это полезное сообщение:

    Mitradir (20.07.2015)

  6. #5
    Новичок
    Регистрация
    21.05.2015
    Сообщений
    18
    Поблагодарил(а)
    2
    Получено благодарностей: 1 (сообщений: 1).
    Репутация: 1
    Цитата Сообщение от Wbtest2 Посмотреть сообщение
    Набросал по быстрому:

    Ну как то так

    PHP код:
    local CastBar CreateFrame("StatusBar"nilUIParent);
    CastBar:SetPoint("CENTER"UIParent0, -150);
    CastBar:SetSize(16025);
    CastBar:SetStatusBarTexture("Interface\\TARGETINGFRAME\\UI-StatusBar");
    CastBar:SetStatusBarColor(1165/2550);
    CastBar:Hide();

    CastBar.bg CastBar:CreateTexture(nil"BACKGROUND");
    CastBar.bg:SetTexture("Interface\\TARGETINGFRAME\\UI-StatusBar");
    CastBar.bg:SetAllPoints();
    CastBar.bg:SetVertexColor(0001);

    CastBar.Text CastBar:CreateFontString(nil"OVERLAY");
    CastBar.Text:SetPoint("TOPLEFT",CastBar,"TOPLEFT"2, -5);
    CastBar.Text:SetPoint("BOTTOMRIGHT",CastBar,"BOTTOMRIGHT"06);
    CastBar.Text:SetFont("Fonts\\FRIZQT__.TTF"9"OUTLINE");
    CastBar.Text:SetJustifyH("LEFT");
    CastBar.Text:SetShadowOffset(1, -1);
    CastBar.Text:SetTextColor(111);

    CastBar.SpellIcon CreateFrame("Frame"nilCastBar);
    CastBar.SpellIcon:SetPoint("TOPRIGHT"CastBar"TOPLEFT"03);
    CastBar.SpellIcon:SetSize(CastBar:GetHeight()+6CastBar:GetHeight()+6);
    CastBar.SpellIcon:SetFrameStrata("HIGH");
    CastBar.SpellIcon.Texture CastBar.SpellIcon:CreateTexture(nil"ARTWORK");
    CastBar.SpellIcon.Texture:SetAllPoints();



    local SpellList = {
        
    48447,    -- Tranquility;
        
    48378,    -- Healing Touch;
    }

    CastBar:RegisterEvent("UNIT_SPELLCAST_START");
    CastBar:RegisterEvent("UNIT_SPELLCAST_CHANNEL_START");
    CastBar:SetScript("OnEvent", function(selfeventUnitIDSpell)
        if 
    UnitID ~= "party1" then return; end;
        
    local Exit = true;
        for 
    indexvalue in ipairs(SpellList) do
            if 
    Spell == GetSpellInfo(valuethen Exit = falseend;
        
    end;
        if Exit == 
    true then return; end;
        
        
    local CastingInfo;
        if        
    event == "UNIT_SPELLCAST_START"         then CastingInfo UnitCastingInfo;
        elseif    
    event == "UNIT_SPELLCAST_CHANNEL_START" then CastingInfo UnitChannelInfo;
        
    end;
        
        
    self:Show();
        
    self.Text:SetText(Spell);
        
    self.SpellIcon.Texture:SetTexture(select(4CastingInfo(UnitID)));
        
        
    local endTime select(6CastingInfo(UnitID)) / 1e3;
        
    local startTime select(5CastingInfo(UnitID)) / 1e3;
        
    local Max endTime startTime;
        
        
    self:SetMinMaxValues(0Max);
        
    self:SetValue(0);
        
        
    self:SetScript('OnUpdate', function(self)
            if 
    not CastingInfo(UnitIDthen self:SetScript('OnUpdate'nil); self:Hide() return; end
            
    self:SetValue(GetTime() - startTime);
        
    end)
    end); 
    [свернуть]
    Отлично. Спасибо) Пытаюсь приделать проверку на мое здоровье и напарника по типу
    local playerHP = UnitHealth("player") / UnitHealthMax("player") * 100
    local party1HP = UnitHealth("party1") / UnitHealthMax("party1") * 100
    if playerHP < party1HP then self:Show(); end;
    но не выходит почему то
    Последний раз редактировалось Mitradir; 20.07.2015 в 16:13.

  7. #6
    Старожил Аватар для Wbtest2
    Регистрация
    21.02.2015
    Адрес
    Minsk
    Сообщений
    180
    Поблагодарил(а)
    46
    Получено благодарностей: 114 (сообщений: 60).
    Репутация: 114
    Цитата Сообщение от Mitradir Посмотреть сообщение
    Отлично. Спасибо) Пытаюсь приделать проверку на мое здоровье и напарника по типу
    Для чего? Чтоб запускать кастбар только если у тебя хп(%) меньше чем у тимейта?
    Последний раз редактировалось Wbtest2; 20.07.2015 в 16:06.

  8. #7
    Новичок
    Регистрация
    21.05.2015
    Сообщений
    18
    Поблагодарил(а)
    2
    Получено благодарностей: 1 (сообщений: 1).
    Репутация: 1
    Цитата Сообщение от Wbtest2 Посмотреть сообщение
    Для чего? Чтоб запускать кастбар только если у тебя хп(%) меньше чем у тимейта?
    Да) Сделал так

    self:SetScript('OnUpdate', function(self)
    local playerHP = UnitHealth("player") / UnitHealthMax("player") * 100;
    local party1HP = UnitHealth("party1") / UnitHealthMax("party1") * 100;
    if not CastingInfo(UnitID) or playerHP > party1HP then self:SetScript('OnUpdate', nil); self:Hide() return; end;
    self:SetValue(GetTime() - startTime);
    Вроде работает)

  9. #8
    Старожил Аватар для Wbtest2
    Регистрация
    21.02.2015
    Адрес
    Minsk
    Сообщений
    180
    Поблагодарил(а)
    46
    Получено благодарностей: 114 (сообщений: 60).
    Репутация: 114
    ну лучше после строчки[38] "if UnitID ~= "party1" then return; end;"
    добавить:
    PHP код:
        local PlayerHP math.floor(UnitHealth("player")/UnitHealthMax("player")*100);
        
    local TeammateHP math.floor(UnitHealth(UnitID)/UnitHealthMax(UnitID)*100);
        if 
    PlayerHP >= TeammateHP then return; end
    Последний раз редактировалось Wbtest2; 20.07.2015 в 16:25.

  10. 1 пользователь сказал cпасибо Wbtest2 за это полезное сообщение:

    Mitradir (20.07.2015)

  11. #9
    Новичок
    Регистрация
    21.05.2015
    Сообщений
    18
    Поблагодарил(а)
    2
    Получено благодарностей: 1 (сообщений: 1).
    Репутация: 1
    Благодарю)

Похожие темы

  1. Редактирование тем.
    от LIS в разделе Предложения по форуму
    Ответов: 3
    Последнее сообщение: 06.01.2014, 16:41
  2. Всем, кто увлечен рисованием
    от lexyyo в разделе Творчество
    Ответов: 5
    Последнее сообщение: 20.08.2013, 16:20
  3. Нарушение пользователю Привет всем: Оскорбления пользователей
    от Аннuхuлэйтuх в разделе Нарушители форума
    Ответов: 1
    Последнее сообщение: 25.05.2013, 21:05
  4. Кража гильдии с использованием бага
    от Immanuil в разделе Корзина
    Ответов: 2
    Последнее сообщение: 05.02.2012, 11:26

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •