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

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

Показано с 1 по 9 из 9

Комбинированный просмотр

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

    Ну как то так

    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.

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

    Mitradir (20.07.2015)

  3. #2
    Новичок
    Регистрация
    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.

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

  5. #4
    Новичок
    Регистрация
    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);
    Вроде работает)

Похожие темы

  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

Ваши права

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