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

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

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

Тема: Player BAR в %

  1. #1
    Новичок
    Регистрация
    09.01.2020
    Сообщений
    20
    Поблагодарил(а)
    4
    Получено благодарностей: 0 (сообщений: 0).
    Репутация: 0

    Player BAR в %

    Screenshot_1.png
    Вообщем сделал себе(player) такую рамку хп и маны. Хотелось бы справа добавить ХП и ману в %. Чтобы было так:
    Screenshot_2.png

    Может кто-то помочь с этим(чтобы просто можно было менять scale шрифта и координаты)?

    P/s Это не неймплэйты, а хп обычный хп бар, как этот:
    Screenshot_3.png

  2. #2
    Гуру Аватар для Екзорцист
    Регистрация
    27.03.2016
    Сообщений
    329
    Поблагодарил(а)
    131
    Получено благодарностей: 69 (сообщений: 54).
    Репутация: 69
    как портрет убрал если не секрет?

  3. #3
    Активист Аватар для Onlykight
    Регистрация
    04.08.2016
    Адрес
    Челябинск
    Сообщений
    40
    Поблагодарил(а)
    9
    Получено благодарностей: 7 (сообщений: 6).
    Репутация: 7
    Цитата Сообщение от westcost Посмотреть сообщение
    Screenshot_1.png
    Вообщем сделал себе(player) такую рамку хп и маны. Хотелось бы справа добавить ХП и ману в %. Чтобы было так:
    Screenshot_2.png

    Может кто-то помочь с этим(чтобы просто можно было менять scale шрифта и координаты)?

    P/s Это не неймплэйты, а хп обычный хп бар, как этот:
    Screenshot_3.png
    А не проще поставить SimpleUnitFrames?

  4. #4
    Активист
    Регистрация
    08.12.2016
    Сообщений
    56
    Поблагодарил(а)
    1
    Получено благодарностей: 8 (сообщений: 8).
    Репутация: 8
    насчёт хп и маны в % - попробуй аддон simplepercent

  5. #5
    Новичок
    Регистрация
    09.01.2020
    Сообщений
    20
    Поблагодарил(а)
    4
    Получено благодарностей: 0 (сообщений: 0).
    Репутация: 0
    Цитата Сообщение от Екзорцист Посмотреть сообщение
    как портрет убрал если не секрет?
    при помощи аддона MoveAnything. Вручную прописал в lua файл, который в папке WTF (т.к. по дефолту в игре нельзя убрать)

    - - - Updated - - -

    Цитата Сообщение от Onlykight Посмотреть сообщение
    А не проще поставить SimpleUnitFrames?
    мне только для player бара нужно. Разве там можно только для player?

    - - - Updated - - -

    Цитата Сообщение от grom877 Посмотреть сообщение
    насчёт хп и маны в % - попробуй аддон simplepercent
    спасибо) это уже что-то, только эти % привязаны к портрету, который я вынес за пределы экрана. Не знаю как убрать привязку player хп и маны к портрету.

    - - - Updated - - -

    Что нужно поменять или удалить, чтобы % ХП и маны игрока(player) были привязаны только к координатам, которые я сам укажу? Т.к. я удалил (вынес за пределы экрана) портрет player, не вижу эти % на экране, т.к. они где-то за пределами экрана привязаны к модельки портрета

    PHP код:
    --Made By Frugle

    local OnTargetChange 
    CreateFrame("FRAME""OnTargetChange")
    OnTargetChange:RegisterEvent("PLAYER_TARGET_CHANGED")
    local function targetHandler(selfevent, ...)
        
    UpdateHealth("target""t")
        
    UpdateMana("target""t")
    end
    OnTargetChange
    :SetScript("OnEvent"targetHandler)

    local hpHandlerFrame CreateFrame("FRAME""hpHandlerFrame")
    hpHandlerFrame:RegisterEvent("UNIT_HEALTH")
    local function hpHandler(selfevent, ...)
        
    local unitid = ...
        if 
    unitid == "target" then
            UpdateHealth
    (unitid"t")
        
    end
        
    if unitid == "player" then
            UpdateHealth
    (unitid"s")
        
    end
    end
    hpHandlerFrame
    :SetScript("OnEvent"hpHandler)

    local powerHandlerFrame CreateFrame("FRAME""energyHandlerFrame")
    powerHandlerFrame:RegisterEvent("UNIT_MANA")
    powerHandlerFrame:RegisterEvent("UNIT_RAGE")
    powerHandlerFrame:RegisterEvent("UNIT_FOCUS")
    powerHandlerFrame:RegisterEvent("UNIT_ENERGY")
    powerHandlerFrame:RegisterEvent("UNIT_RUNIC_POWER")
    local function powerHandler(selfevent, ...)
        
    local unitid = ...
        if 
    unitid == "target" then
            UpdateMana
    (unitid"t")
        
    end
        
    if unitid == "player" then
            UpdateMana
    (unitid"s")
        
    end
    end
    powerHandlerFrame
    :SetScript("OnEvent"powerHandler)

    function 
    UpdateHealth(unitidwho)
        if 
    who == "t" then
            
    if SimplePercent["tarhp"] == false then
                ChangeFrame
    (hpFramefalse)
                return
            
    end
            
            
    if not hpFrame:IsShown() then return end
            local hp 
    UnitHealth(unitid)
            
    local maxhp UnitHealthMax(unitid)
            
            
    local finalhp
            
    if hp == or UnitIsDeadOrGhost(unitidthen
                perhp 
    0
                finalhp 
    0
            
    elseif hp == maxhp then
                finalhp 
    100
            
    else
                
    local floatper hp maxhp
                local perhp 
    floatper 100
                finalhp 
    math.ceil(perhp)
            
    end
            
            
    if hpFrame.OldFinalHp == finalhp then return end
            hpFrame
    .OldFinalHp finalhp
            
            local finalhpstring 
    tostring(finalhp) .. "%"

            
    hpFrame:SetText(finalhpstring)
            
            
    local stringwidth hpFrame:GetStringWidth(finalhpstring)
            
    hpFrame.PointXos = (stringwidth) * -1
            hpFrame
    :SetPoint("LEFT"TargetFrame"LEFT"hpFrame.PointXoshpFrame.PointYos)
        elseif 
    who == "s" then
            
    if SimplePercent["plyhp"] == false then
                ChangeFrame
    (selfhpFramefalse)
                return
            
    end
            
            
    if not selfhpFrame:IsShown() then return end
            local hp 
    UnitHealth(unitid)
            
    local maxhp UnitHealthMax(unitid)
            
            
    local finalhp
            
    if hp == or UnitIsDeadOrGhost(unitidthen
                perhp 
    0
                finalhp 
    0
            
    elseif hp == maxhp then
                finalhp 
    100
            
    else
                
    local floatper hp maxhp
                local perhp 
    floatper 100
                finalhp 
    math.ceil(perhp)
            
    end
            
            
    if selfhpFrame.OldFinalHp == finalhp then return end
            selfhpFrame
    .OldFinalHp finalhp
            
            local finalhpstring 
    tostring(finalhp) .. "%"

            
    selfhpFrame:SetText(finalhpstring)
            
            
    local stringwidth selfhpFrame:GetStringWidth(finalhpstring)
            
    selfhpFrame.PointXos 0
            selfhpFrame
    :SetPoint("LEFT"PlayerFrame"RIGHT"selfhpFrame.PointXosselfhpFrame.PointYos)
        
    end
    end

    function UpdateMana(unitidwho)
        if 
    who == "t" then
            
    if SimplePercent["tarmana"] == false then
                ChangeFrame
    (manaFramefalse)
                return
            
    end
            
            
    if not manaFrame:IsShown() then return end
            local mana 
    UnitPower(unitid)
            
    local maxmana UnitPowerMax(unitid)
            
            
    local finalmana
            
    if mana == or UnitIsDeadOrGhost(unitidthen
                permana 
    0
                finalmana 
    0
            
    elseif mana == maxmana then
                finalmana 
    100
            
    elseif maxmana == 100 then
                finalmana 
    mana
            
    else
                
    local floatper mana maxmana
                local permana 
    floatper 100
                finalmana 
    math.ceil(permana)
            
    end
            
            
    if manaFrame.OldFinalHp == finalmana then return end
            manaFrame
    .OldFinalHp finalmana
            
            local finalmanastring 
    tostring(finalmana) .. "%"

            
    manaFrame:SetText(finalmanastring)
            
            
    local stringwidth manaFrame:GetStringWidth(finalmanastring)
            
    manaFrame.PointXos = (stringwidth) * -1
            manaFrame
    :SetPoint("LEFT"TargetFrame"LEFT"manaFrame.PointXosmanaFrame.PointYos)
        elseif 
    who == "s" then
            
    if SimplePercent["plymana"] == false then
                ChangeFrame
    (selfmanaFramefalse)
                return
            
    end
            
            
    if not selfmanaFrame:IsShown() then return end
            local mana 
    UnitPower(unitid)
            
    local maxmana UnitPowerMax(unitid)
            
            
    local finalmana
            
    if mana == or UnitIsDeadOrGhost(unitidthen
                permana 
    0
                finalmana 
    0
            
    elseif mana == maxmana then
                finalmana 
    100
            
    elseif maxmana == 100 then
                finalmana 
    mana
            
    else
                
    local floatper mana maxmana
                local permana 
    floatper 100
                finalmana 
    math.ceil(permana)
            
    end
            
            
    if selfmanaFrame.OldFinalHp == finalmana then return end
            selfmanaFrame
    .OldFinalHp finalmana
            
            local finalmanastring 
    tostring(finalmana) .. "%"
            
            
    selfmanaFrame:SetText(finalmanastring)
            
            
    local stringwidth selfmanaFrame:GetStringWidth(finalmanastring)
            
    selfmanaFrame.PointXos 0
            selfmanaFrame
    :SetPoint("LEFT"PlayerFrame"RIGHT"selfmanaFrame.PointXosselfmanaFrame.PointYos)
        
    end
    end

    local stringwidth

    local hpFrame 
    TargetFrame:CreateFontString("hpFrame""OVERLAY")
    hpFrame:SetFontObject(PlayerFrameHealthBarText:GetFontObject())
    hpFrame:SetText("100%")
    hpFrame:SetJustifyH("LEFT")
    hpFrame:SetJustifyV("TOP")
    hpFrame.PointXos 0
    hpFrame
    .PointYos 5
    stringwidth 
    hpFrame:GetStringWidth(hpFrame:GetText())
    hpFrame.PointXos = (stringwidth) * -1
    hpFrame
    :SetPoint("LEFT"TargetFrame"LEFT"hpFrame.PointXoshpFrame.PointYos)

    local selfhpFrame PlayerFrame:CreateFontString("selfhpFrame""OVERLAY")
    selfhpFrame:SetFontObject(PlayerFrameHealthBarText:GetFontObject())
    selfhpFrame:SetText("100%")
    selfhpFrame:SetJustifyH("RIGHT")
    selfhpFrame:SetJustifyV("TOP")
    selfhpFrame.PointXos 0
    selfhpFrame
    .PointYos 5
    stringwidth 
    selfhpFrame:GetStringWidth(selfhpFrame:GetText())
    selfhpFrame.PointXos 0
    selfhpFrame
    :SetPoint("LEFT"PlayerFrame"RIGHT"selfhpFrame.PointXosselfhpFrame.PointYos)

    local manaFrame TargetFrame:CreateFontString("manaFrame""OVERLAY")
    manaFrame:SetFontObject(PlayerFrameHealthBarText:GetFontObject())
    manaFrame:SetText("100%")
    manaFrame:SetJustifyH("LEFT")
    manaFrame:SetJustifyV("TOP")
    manaFrame.PointXos 0
    manaFrame
    .PointYos = -8
    stringwidth 
    manaFrame:GetStringWidth(manaFrame:GetText())
    manaFrame.PointXos = (stringwidth) * -1
    manaFrame
    :SetPoint("LEFT"TargetFrame"LEFT"manaFrame.PointXosmanaFrame.PointYos)

    local selfmanaFrame PlayerFrame:CreateFontString("selfmanaFrame""OVERLAY")
    selfmanaFrame:SetFontObject(PlayerFrameHealthBarText:GetFontObject())
    selfmanaFrame:SetText("100%")
    selfmanaFrame:SetJustifyH("RIGHT")
    selfmanaFrame:SetJustifyV("TOP")
    selfmanaFrame.PointXos 0
    selfmanaFrame
    .PointYos = -8
    stringwidth 
    selfmanaFrame:GetStringWidth(selfmanaFrame:GetText())
    selfmanaFrame.PointXos =  0
    selfmanaFrame
    :SetPoint("LEFT"PlayerFrame"RIGHT"selfmanaFrame.PointXosselfmanaFrame.PointYos)

    stringwidth nil

    function ChangeFrame(framewhat)
        if 
    what == false then
            
    if frame:IsVisible() then
                frame
    :Hide()
            
    end
        
    else
            if 
    not frame:IsVisible() then
                frame
    :Show()
            
    end
        end
    end

    SLASH_CHANGESHIT1 
    "/sp"
    SLASH_CHANGESHIT2 "/simplepercent"
    local function handler(msgeditbox)
        if 
    msg == "player health" then
            
    if SimplePercent["plyhp"] == false then
                SimplePercent
    ["plyhp"] = true
                ChangeFrame
    (selfhpFrametrue)
                print(
    "Player health percent is now visible.")
            else
                
    SimplePercent["plyhp"] = false
                ChangeFrame
    (selfhpFramefalse)
                print(
    "Player health percent is now hidden.")
            
    end
        
    elseif msg == "player mana" then
            
    if SimplePercent["plymana"] == false then
                SimplePercent
    ["plymana"] = true
                ChangeFrame
    (selfmanaFrametrue)
                print(
    "Player mana percent is now visible.")
            else
                
    SimplePercent["plymana"] = false
                ChangeFrame
    (selfmanaFramefalse)
                print(
    "Player mana percent is now hidden.")
            
    end
        
    elseif msg == "target health" then
            
    if SimplePercent["tarhp"] == false then
                SimplePercent
    ["tarhp"] = true
                ChangeFrame
    (hpFrametrue)
                print(
    "Target health percent is now visible.")
            else
                
    SimplePercent["tarhp"] = false
                ChangeFrame
    (hpFramefalse)
                print(
    "Target health percent is now hidden.")
            
    end
        
    elseif msg == "target mana" then
            
    if SimplePercent["tarmana"] == false then
                SimplePercent
    ["tarmana"] = true
                ChangeFrame
    (manaFrametrue)
                print(
    "Target mana percent is now visible.")
            else
                
    SimplePercent["tarmana"] = false
                ChangeFrame
    (manaFramefalse)
                print(
    "Target mana percent is now hidden.")
            
    end
        
    else
            print(
    "You can toggle percent visiblity with this command")
            print(
    "Syntax: /sp <player or target> <health or mana> | Example: /sp target health")
        
    end
    end
    SlashCmdList
    ["CHANGESHIT"] = handler

    local AddonLoadedHandler 
    CreateFrame("FRAME""AddonLoadedHandler")
    AddonLoadedHandler:RegisterEvent("ADDON_LOADED")
    local function AddonLoaded(selfevent, ...)
        
    local addon = ...
        if 
    addon == "SimplePercent" then
            
    if SimplePercent == nil then
                SimplePercent 
    = {}
                
    SimplePercent["plyhp"] = true
                SimplePercent
    ["plymana"] = true
                SimplePercent
    ["tarhp"] = true
                SimplePercent
    ["tarmana"] = true
            
    else
                
    ChangeFrame(selfhpFrameSimplePercent["plyhp"])
                
    ChangeFrame(selfmanaFrameSimplePercent["plymana"])
            
                
    ChangeFrame(hpFrameSimplePercent["tarhp"])
                
    ChangeFrame(manaFrameSimplePercent["tarmana"])
            
    end
        end
    end
    AddonLoadedHandler
    :SetScript("OnEvent"AddonLoaded

  6. #6
    Активист Аватар для Onlykight
    Регистрация
    04.08.2016
    Адрес
    Челябинск
    Сообщений
    40
    Поблагодарил(а)
    9
    Получено благодарностей: 7 (сообщений: 6).
    Репутация: 7
    Цитата Сообщение от westcost Посмотреть сообщение
    при помощи аддона MoveAnything. Вручную прописал в lua файл, который в папке WTF (т.к. по дефолту в игре нельзя убрать)

    - - - Updated - - -



    мне только для player бара нужно. Разве там можно только для player?
    [/PHP]
    Screenshot_1.jpg
    Есть там такая возможность.

  7. #7
    Новичок
    Регистрация
    09.01.2020
    Сообщений
    20
    Поблагодарил(а)
    4
    Получено благодарностей: 0 (сообщений: 0).
    Репутация: 0
    Цитата Сообщение от Onlykight Посмотреть сообщение
    Screenshot_1.jpg
    Есть там такая возможность.
    Какая? Сделать две полоски (хп и маны) только для player ? Без всяких других текстур?

    - - - Updated - - -

    Хелпаните, пожалуйста, кто шарит в луа. Что нужно поменять или удалить, чтобы % ХП и маны игрока(player) были привязаны только к координатам, которые я сам укажу? Т.к. я удалил (вынес за пределы экрана) портрет player, не вижу эти % на экране, т.к. они где-то за пределами экрана привязаны к модельки портрета

    PHP код:
    --Made By Frugle

    local OnTargetChange 
    CreateFrame("FRAME""OnTargetChange")
    OnTargetChange:RegisterEvent("PLAYER_TARGET_CHANGED")
    local function targetHandler(selfevent, ...)
        
    UpdateHealth("target""t")
        
    UpdateMana("target""t")
    end
    OnTargetChange
    :SetScript("OnEvent"targetHandler)

    local hpHandlerFrame CreateFrame("FRAME""hpHandlerFrame")
    hpHandlerFrame:RegisterEvent("UNIT_HEALTH")
    local function hpHandler(selfevent, ...)
        
    local unitid = ...
        if 
    unitid == "target" then
            UpdateHealth
    (unitid"t")
        
    end
        
    if unitid == "player" then
            UpdateHealth
    (unitid"s")
        
    end
    end
    hpHandlerFrame
    :SetScript("OnEvent"hpHandler)

    local powerHandlerFrame CreateFrame("FRAME""energyHandlerFrame")
    powerHandlerFrame:RegisterEvent("UNIT_MANA")
    powerHandlerFrame:RegisterEvent("UNIT_RAGE")
    powerHandlerFrame:RegisterEvent("UNIT_FOCUS")
    powerHandlerFrame:RegisterEvent("UNIT_ENERGY")
    powerHandlerFrame:RegisterEvent("UNIT_RUNIC_POWER")
    local function powerHandler(selfevent, ...)
        
    local unitid = ...
        if 
    unitid == "target" then
            UpdateMana
    (unitid"t")
        
    end
        
    if unitid == "player" then
            UpdateMana
    (unitid"s")
        
    end
    end
    powerHandlerFrame
    :SetScript("OnEvent"powerHandler)

    function 
    UpdateHealth(unitidwho)
        if 
    who == "t" then
            
    if SimplePercent["tarhp"] == false then
                ChangeFrame
    (hpFramefalse)
                return
            
    end
            
            
    if not hpFrame:IsShown() then return end
            local hp 
    UnitHealth(unitid)
            
    local maxhp UnitHealthMax(unitid)
            
            
    local finalhp
            
    if hp == or UnitIsDeadOrGhost(unitidthen
                perhp 
    0
                finalhp 
    0
            
    elseif hp == maxhp then
                finalhp 
    100
            
    else
                
    local floatper hp maxhp
                local perhp 
    floatper 100
                finalhp 
    math.ceil(perhp)
            
    end
            
            
    if hpFrame.OldFinalHp == finalhp then return end
            hpFrame
    .OldFinalHp finalhp
            
            local finalhpstring 
    tostring(finalhp) .. "%"

            
    hpFrame:SetText(finalhpstring)
            
            
    local stringwidth hpFrame:GetStringWidth(finalhpstring)
            
    hpFrame.PointXos = (stringwidth) * -1
            hpFrame
    :SetPoint("LEFT"TargetFrame"LEFT"hpFrame.PointXoshpFrame.PointYos)
        elseif 
    who == "s" then
            
    if SimplePercent["plyhp"] == false then
                ChangeFrame
    (selfhpFramefalse)
                return
            
    end
            
            
    if not selfhpFrame:IsShown() then return end
            local hp 
    UnitHealth(unitid)
            
    local maxhp UnitHealthMax(unitid)
            
            
    local finalhp
            
    if hp == or UnitIsDeadOrGhost(unitidthen
                perhp 
    0
                finalhp 
    0
            
    elseif hp == maxhp then
                finalhp 
    100
            
    else
                
    local floatper hp maxhp
                local perhp 
    floatper 100
                finalhp 
    math.ceil(perhp)
            
    end
            
            
    if selfhpFrame.OldFinalHp == finalhp then return end
            selfhpFrame
    .OldFinalHp finalhp
            
            local finalhpstring 
    tostring(finalhp) .. "%"

            
    selfhpFrame:SetText(finalhpstring)
            
            
    local stringwidth selfhpFrame:GetStringWidth(finalhpstring)
            
    selfhpFrame.PointXos 0
            selfhpFrame
    :SetPoint("LEFT"PlayerFrame"RIGHT"selfhpFrame.PointXosselfhpFrame.PointYos)
        
    end
    end

    function UpdateMana(unitidwho)
        if 
    who == "t" then
            
    if SimplePercent["tarmana"] == false then
                ChangeFrame
    (manaFramefalse)
                return
            
    end
            
            
    if not manaFrame:IsShown() then return end
            local mana 
    UnitPower(unitid)
            
    local maxmana UnitPowerMax(unitid)
            
            
    local finalmana
            
    if mana == or UnitIsDeadOrGhost(unitidthen
                permana 
    0
                finalmana 
    0
            
    elseif mana == maxmana then
                finalmana 
    100
            
    elseif maxmana == 100 then
                finalmana 
    mana
            
    else
                
    local floatper mana maxmana
                local permana 
    floatper 100
                finalmana 
    math.ceil(permana)
            
    end
            
            
    if manaFrame.OldFinalHp == finalmana then return end
            manaFrame
    .OldFinalHp finalmana
            
            local finalmanastring 
    tostring(finalmana) .. "%"

            
    manaFrame:SetText(finalmanastring)
            
            
    local stringwidth manaFrame:GetStringWidth(finalmanastring)
            
    manaFrame.PointXos = (stringwidth) * -1
            manaFrame
    :SetPoint("LEFT"TargetFrame"LEFT"manaFrame.PointXosmanaFrame.PointYos)
        elseif 
    who == "s" then
            
    if SimplePercent["plymana"] == false then
                ChangeFrame
    (selfmanaFramefalse)
                return
            
    end
            
            
    if not selfmanaFrame:IsShown() then return end
            local mana 
    UnitPower(unitid)
            
    local maxmana UnitPowerMax(unitid)
            
            
    local finalmana
            
    if mana == or UnitIsDeadOrGhost(unitidthen
                permana 
    0
                finalmana 
    0
            
    elseif mana == maxmana then
                finalmana 
    100
            
    elseif maxmana == 100 then
                finalmana 
    mana
            
    else
                
    local floatper mana maxmana
                local permana 
    floatper 100
                finalmana 
    math.ceil(permana)
            
    end
            
            
    if selfmanaFrame.OldFinalHp == finalmana then return end
            selfmanaFrame
    .OldFinalHp finalmana
            
            local finalmanastring 
    tostring(finalmana) .. "%"
            
            
    selfmanaFrame:SetText(finalmanastring)
            
            
    local stringwidth selfmanaFrame:GetStringWidth(finalmanastring)
            
    selfmanaFrame.PointXos 0
            selfmanaFrame
    :SetPoint("LEFT"PlayerFrame"RIGHT"selfmanaFrame.PointXosselfmanaFrame.PointYos)
        
    end
    end

    local stringwidth

    local hpFrame 
    TargetFrame:CreateFontString("hpFrame""OVERLAY")
    hpFrame:SetFontObject(PlayerFrameHealthBarText:GetFontObject())
    hpFrame:SetText("100%")
    hpFrame:SetJustifyH("LEFT")
    hpFrame:SetJustifyV("TOP")
    hpFrame.PointXos 0
    hpFrame
    .PointYos 5
    stringwidth 
    hpFrame:GetStringWidth(hpFrame:GetText())
    hpFrame.PointXos = (stringwidth) * -1
    hpFrame
    :SetPoint("LEFT"TargetFrame"LEFT"hpFrame.PointXoshpFrame.PointYos)

    local selfhpFrame PlayerFrame:CreateFontString("selfhpFrame""OVERLAY")
    selfhpFrame:SetFontObject(PlayerFrameHealthBarText:GetFontObject())
    selfhpFrame:SetText("100%")
    selfhpFrame:SetJustifyH("RIGHT")
    selfhpFrame:SetJustifyV("TOP")
    selfhpFrame.PointXos 0
    selfhpFrame
    .PointYos 5
    stringwidth 
    selfhpFrame:GetStringWidth(selfhpFrame:GetText())
    selfhpFrame.PointXos 0
    selfhpFrame
    :SetPoint("LEFT"PlayerFrame"RIGHT"selfhpFrame.PointXosselfhpFrame.PointYos)

    local manaFrame TargetFrame:CreateFontString("manaFrame""OVERLAY")
    manaFrame:SetFontObject(PlayerFrameHealthBarText:GetFontObject())
    manaFrame:SetText("100%")
    manaFrame:SetJustifyH("LEFT")
    manaFrame:SetJustifyV("TOP")
    manaFrame.PointXos 0
    manaFrame
    .PointYos = -8
    stringwidth 
    manaFrame:GetStringWidth(manaFrame:GetText())
    manaFrame.PointXos = (stringwidth) * -1
    manaFrame
    :SetPoint("LEFT"TargetFrame"LEFT"manaFrame.PointXosmanaFrame.PointYos)

    local selfmanaFrame PlayerFrame:CreateFontString("selfmanaFrame""OVERLAY")
    selfmanaFrame:SetFontObject(PlayerFrameHealthBarText:GetFontObject())
    selfmanaFrame:SetText("100%")
    selfmanaFrame:SetJustifyH("RIGHT")
    selfmanaFrame:SetJustifyV("TOP")
    selfmanaFrame.PointXos 0
    selfmanaFrame
    .PointYos = -8
    stringwidth 
    selfmanaFrame:GetStringWidth(selfmanaFrame:GetText())
    selfmanaFrame.PointXos =  0
    selfmanaFrame
    :SetPoint("LEFT"PlayerFrame"RIGHT"selfmanaFrame.PointXosselfmanaFrame.PointYos)

    stringwidth nil

    function ChangeFrame(framewhat)
        if 
    what == false then
            
    if frame:IsVisible() then
                frame
    :Hide()
            
    end
        
    else
            if 
    not frame:IsVisible() then
                frame
    :Show()
            
    end
        end
    end

    SLASH_CHANGESHIT1 
    "/sp"
    SLASH_CHANGESHIT2 "/simplepercent"
    local function handler(msgeditbox)
        if 
    msg == "player health" then
            
    if SimplePercent["plyhp"] == false then
                SimplePercent
    ["plyhp"] = true
                ChangeFrame
    (selfhpFrametrue)
                print(
    "Player health percent is now visible.")
            else
                
    SimplePercent["plyhp"] = false
                ChangeFrame
    (selfhpFramefalse)
                print(
    "Player health percent is now hidden.")
            
    end
        
    elseif msg == "player mana" then
            
    if SimplePercent["plymana"] == false then
                SimplePercent
    ["plymana"] = true
                ChangeFrame
    (selfmanaFrametrue)
                print(
    "Player mana percent is now visible.")
            else
                
    SimplePercent["plymana"] = false
                ChangeFrame
    (selfmanaFramefalse)
                print(
    "Player mana percent is now hidden.")
            
    end
        
    elseif msg == "target health" then
            
    if SimplePercent["tarhp"] == false then
                SimplePercent
    ["tarhp"] = true
                ChangeFrame
    (hpFrametrue)
                print(
    "Target health percent is now visible.")
            else
                
    SimplePercent["tarhp"] = false
                ChangeFrame
    (hpFramefalse)
                print(
    "Target health percent is now hidden.")
            
    end
        
    elseif msg == "target mana" then
            
    if SimplePercent["tarmana"] == false then
                SimplePercent
    ["tarmana"] = true
                ChangeFrame
    (manaFrametrue)
                print(
    "Target mana percent is now visible.")
            else
                
    SimplePercent["tarmana"] = false
                ChangeFrame
    (manaFramefalse)
                print(
    "Target mana percent is now hidden.")
            
    end
        
    else
            print(
    "You can toggle percent visiblity with this command")
            print(
    "Syntax: /sp <player or target> <health or mana> | Example: /sp target health")
        
    end
    end
    SlashCmdList
    ["CHANGESHIT"] = handler

    local AddonLoadedHandler 
    CreateFrame("FRAME""AddonLoadedHandler")
    AddonLoadedHandler:RegisterEvent("ADDON_LOADED")
    local function AddonLoaded(selfevent, ...)
        
    local addon = ...
        if 
    addon == "SimplePercent" then
            
    if SimplePercent == nil then
                SimplePercent 
    = {}
                
    SimplePercent["plyhp"] = true
                SimplePercent
    ["plymana"] = true
                SimplePercent
    ["tarhp"] = true
                SimplePercent
    ["tarmana"] = true
            
    else
                
    ChangeFrame(selfhpFrameSimplePercent["plyhp"])
                
    ChangeFrame(selfmanaFrameSimplePercent["plymana"])
            
                
    ChangeFrame(hpFrameSimplePercent["tarhp"])
                
    ChangeFrame(manaFrameSimplePercent["tarmana"])
            
    end
        end
    end
    AddonLoadedHandler
    :SetScript("OnEvent"AddonLoaded

  8. #8
    Активист Аватар для Onlykight
    Регистрация
    04.08.2016
    Адрес
    Челябинск
    Сообщений
    40
    Поблагодарил(а)
    9
    Получено благодарностей: 7 (сообщений: 6).
    Репутация: 7
    Цитата Сообщение от westcost Посмотреть сообщение
    Какая? Сделать две полоски (хп и маны) только для player ? Без всяких других текстур?

    - - - Updated - - -

    Хелпаните, пожалуйста, кто шарит в луа. Что нужно поменять или удалить, чтобы % ХП и маны игрока(player) были привязаны только к координатам, которые я сам укажу? Т.к. я удалил (вынес за пределы экрана) портрет player, не вижу эти % на экране, т.к. они где-то за пределами экрана привязаны к модельки портрета

    PHP код:
    --Made By Frugle

    local OnTargetChange 
    CreateFrame("FRAME""OnTargetChange")
    OnTargetChange:RegisterEvent("PLAYER_TARGET_CHANGED")
    local function targetHandler(selfevent, ...)
        
    UpdateHealth("target""t")
        
    UpdateMana("target""t")
    end
    OnTargetChange
    :SetScript("OnEvent"targetHandler)

    local hpHandlerFrame CreateFrame("FRAME""hpHandlerFrame")
    hpHandlerFrame:RegisterEvent("UNIT_HEALTH")
    local function hpHandler(selfevent, ...)
        
    local unitid = ...
        if 
    unitid == "target" then
            UpdateHealth
    (unitid"t")
        
    end
        
    if unitid == "player" then
            UpdateHealth
    (unitid"s")
        
    end
    end
    hpHandlerFrame
    :SetScript("OnEvent"hpHandler)

    local powerHandlerFrame CreateFrame("FRAME""energyHandlerFrame")
    powerHandlerFrame:RegisterEvent("UNIT_MANA")
    powerHandlerFrame:RegisterEvent("UNIT_RAGE")
    powerHandlerFrame:RegisterEvent("UNIT_FOCUS")
    powerHandlerFrame:RegisterEvent("UNIT_ENERGY")
    powerHandlerFrame:RegisterEvent("UNIT_RUNIC_POWER")
    local function powerHandler(selfevent, ...)
        
    local unitid = ...
        if 
    unitid == "target" then
            UpdateMana
    (unitid"t")
        
    end
        
    if unitid == "player" then
            UpdateMana
    (unitid"s")
        
    end
    end
    powerHandlerFrame
    :SetScript("OnEvent"powerHandler)

    function 
    UpdateHealth(unitidwho)
        if 
    who == "t" then
            
    if SimplePercent["tarhp"] == false then
                ChangeFrame
    (hpFramefalse)
                return
            
    end
            
            
    if not hpFrame:IsShown() then return end
            local hp 
    UnitHealth(unitid)
            
    local maxhp UnitHealthMax(unitid)
            
            
    local finalhp
            
    if hp == or UnitIsDeadOrGhost(unitidthen
                perhp 
    0
                finalhp 
    0
            
    elseif hp == maxhp then
                finalhp 
    100
            
    else
                
    local floatper hp maxhp
                local perhp 
    floatper 100
                finalhp 
    math.ceil(perhp)
            
    end
            
            
    if hpFrame.OldFinalHp == finalhp then return end
            hpFrame
    .OldFinalHp finalhp
            
            local finalhpstring 
    tostring(finalhp) .. "%"

            
    hpFrame:SetText(finalhpstring)
            
            
    local stringwidth hpFrame:GetStringWidth(finalhpstring)
            
    hpFrame.PointXos = (stringwidth) * -1
            hpFrame
    :SetPoint("LEFT"TargetFrame"LEFT"hpFrame.PointXoshpFrame.PointYos)
        elseif 
    who == "s" then
            
    if SimplePercent["plyhp"] == false then
                ChangeFrame
    (selfhpFramefalse)
                return
            
    end
            
            
    if not selfhpFrame:IsShown() then return end
            local hp 
    UnitHealth(unitid)
            
    local maxhp UnitHealthMax(unitid)
            
            
    local finalhp
            
    if hp == or UnitIsDeadOrGhost(unitidthen
                perhp 
    0
                finalhp 
    0
            
    elseif hp == maxhp then
                finalhp 
    100
            
    else
                
    local floatper hp maxhp
                local perhp 
    floatper 100
                finalhp 
    math.ceil(perhp)
            
    end
            
            
    if selfhpFrame.OldFinalHp == finalhp then return end
            selfhpFrame
    .OldFinalHp finalhp
            
            local finalhpstring 
    tostring(finalhp) .. "%"

            
    selfhpFrame:SetText(finalhpstring)
            
            
    local stringwidth selfhpFrame:GetStringWidth(finalhpstring)
            
    selfhpFrame.PointXos 0
            selfhpFrame
    :SetPoint("LEFT"PlayerFrame"RIGHT"selfhpFrame.PointXosselfhpFrame.PointYos)
        
    end
    end

    function UpdateMana(unitidwho)
        if 
    who == "t" then
            
    if SimplePercent["tarmana"] == false then
                ChangeFrame
    (manaFramefalse)
                return
            
    end
            
            
    if not manaFrame:IsShown() then return end
            local mana 
    UnitPower(unitid)
            
    local maxmana UnitPowerMax(unitid)
            
            
    local finalmana
            
    if mana == or UnitIsDeadOrGhost(unitidthen
                permana 
    0
                finalmana 
    0
            
    elseif mana == maxmana then
                finalmana 
    100
            
    elseif maxmana == 100 then
                finalmana 
    mana
            
    else
                
    local floatper mana maxmana
                local permana 
    floatper 100
                finalmana 
    math.ceil(permana)
            
    end
            
            
    if manaFrame.OldFinalHp == finalmana then return end
            manaFrame
    .OldFinalHp finalmana
            
            local finalmanastring 
    tostring(finalmana) .. "%"

            
    manaFrame:SetText(finalmanastring)
            
            
    local stringwidth manaFrame:GetStringWidth(finalmanastring)
            
    manaFrame.PointXos = (stringwidth) * -1
            manaFrame
    :SetPoint("LEFT"TargetFrame"LEFT"manaFrame.PointXosmanaFrame.PointYos)
        elseif 
    who == "s" then
            
    if SimplePercent["plymana"] == false then
                ChangeFrame
    (selfmanaFramefalse)
                return
            
    end
            
            
    if not selfmanaFrame:IsShown() then return end
            local mana 
    UnitPower(unitid)
            
    local maxmana UnitPowerMax(unitid)
            
            
    local finalmana
            
    if mana == or UnitIsDeadOrGhost(unitidthen
                permana 
    0
                finalmana 
    0
            
    elseif mana == maxmana then
                finalmana 
    100
            
    elseif maxmana == 100 then
                finalmana 
    mana
            
    else
                
    local floatper mana maxmana
                local permana 
    floatper 100
                finalmana 
    math.ceil(permana)
            
    end
            
            
    if selfmanaFrame.OldFinalHp == finalmana then return end
            selfmanaFrame
    .OldFinalHp finalmana
            
            local finalmanastring 
    tostring(finalmana) .. "%"
            
            
    selfmanaFrame:SetText(finalmanastring)
            
            
    local stringwidth selfmanaFrame:GetStringWidth(finalmanastring)
            
    selfmanaFrame.PointXos 0
            selfmanaFrame
    :SetPoint("LEFT"PlayerFrame"RIGHT"selfmanaFrame.PointXosselfmanaFrame.PointYos)
        
    end
    end

    local stringwidth

    local hpFrame 
    TargetFrame:CreateFontString("hpFrame""OVERLAY")
    hpFrame:SetFontObject(PlayerFrameHealthBarText:GetFontObject())
    hpFrame:SetText("100%")
    hpFrame:SetJustifyH("LEFT")
    hpFrame:SetJustifyV("TOP")
    hpFrame.PointXos 0
    hpFrame
    .PointYos 5
    stringwidth 
    hpFrame:GetStringWidth(hpFrame:GetText())
    hpFrame.PointXos = (stringwidth) * -1
    hpFrame
    :SetPoint("LEFT"TargetFrame"LEFT"hpFrame.PointXoshpFrame.PointYos)

    local selfhpFrame PlayerFrame:CreateFontString("selfhpFrame""OVERLAY")
    selfhpFrame:SetFontObject(PlayerFrameHealthBarText:GetFontObject())
    selfhpFrame:SetText("100%")
    selfhpFrame:SetJustifyH("RIGHT")
    selfhpFrame:SetJustifyV("TOP")
    selfhpFrame.PointXos 0
    selfhpFrame
    .PointYos 5
    stringwidth 
    selfhpFrame:GetStringWidth(selfhpFrame:GetText())
    selfhpFrame.PointXos 0
    selfhpFrame
    :SetPoint("LEFT"PlayerFrame"RIGHT"selfhpFrame.PointXosselfhpFrame.PointYos)

    local manaFrame TargetFrame:CreateFontString("manaFrame""OVERLAY")
    manaFrame:SetFontObject(PlayerFrameHealthBarText:GetFontObject())
    manaFrame:SetText("100%")
    manaFrame:SetJustifyH("LEFT")
    manaFrame:SetJustifyV("TOP")
    manaFrame.PointXos 0
    manaFrame
    .PointYos = -8
    stringwidth 
    manaFrame:GetStringWidth(manaFrame:GetText())
    manaFrame.PointXos = (stringwidth) * -1
    manaFrame
    :SetPoint("LEFT"TargetFrame"LEFT"manaFrame.PointXosmanaFrame.PointYos)

    local selfmanaFrame PlayerFrame:CreateFontString("selfmanaFrame""OVERLAY")
    selfmanaFrame:SetFontObject(PlayerFrameHealthBarText:GetFontObject())
    selfmanaFrame:SetText("100%")
    selfmanaFrame:SetJustifyH("RIGHT")
    selfmanaFrame:SetJustifyV("TOP")
    selfmanaFrame.PointXos 0
    selfmanaFrame
    .PointYos = -8
    stringwidth 
    selfmanaFrame:GetStringWidth(selfmanaFrame:GetText())
    selfmanaFrame.PointXos =  0
    selfmanaFrame
    :SetPoint("LEFT"PlayerFrame"RIGHT"selfmanaFrame.PointXosselfmanaFrame.PointYos)

    stringwidth nil

    function ChangeFrame(framewhat)
        if 
    what == false then
            
    if frame:IsVisible() then
                frame
    :Hide()
            
    end
        
    else
            if 
    not frame:IsVisible() then
                frame
    :Show()
            
    end
        end
    end

    SLASH_CHANGESHIT1 
    "/sp"
    SLASH_CHANGESHIT2 "/simplepercent"
    local function handler(msgeditbox)
        if 
    msg == "player health" then
            
    if SimplePercent["plyhp"] == false then
                SimplePercent
    ["plyhp"] = true
                ChangeFrame
    (selfhpFrametrue)
                print(
    "Player health percent is now visible.")
            else
                
    SimplePercent["plyhp"] = false
                ChangeFrame
    (selfhpFramefalse)
                print(
    "Player health percent is now hidden.")
            
    end
        
    elseif msg == "player mana" then
            
    if SimplePercent["plymana"] == false then
                SimplePercent
    ["plymana"] = true
                ChangeFrame
    (selfmanaFrametrue)
                print(
    "Player mana percent is now visible.")
            else
                
    SimplePercent["plymana"] = false
                ChangeFrame
    (selfmanaFramefalse)
                print(
    "Player mana percent is now hidden.")
            
    end
        
    elseif msg == "target health" then
            
    if SimplePercent["tarhp"] == false then
                SimplePercent
    ["tarhp"] = true
                ChangeFrame
    (hpFrametrue)
                print(
    "Target health percent is now visible.")
            else
                
    SimplePercent["tarhp"] = false
                ChangeFrame
    (hpFramefalse)
                print(
    "Target health percent is now hidden.")
            
    end
        
    elseif msg == "target mana" then
            
    if SimplePercent["tarmana"] == false then
                SimplePercent
    ["tarmana"] = true
                ChangeFrame
    (manaFrametrue)
                print(
    "Target mana percent is now visible.")
            else
                
    SimplePercent["tarmana"] = false
                ChangeFrame
    (manaFramefalse)
                print(
    "Target mana percent is now hidden.")
            
    end
        
    else
            print(
    "You can toggle percent visiblity with this command")
            print(
    "Syntax: /sp <player or target> <health or mana> | Example: /sp target health")
        
    end
    end
    SlashCmdList
    ["CHANGESHIT"] = handler

    local AddonLoadedHandler 
    CreateFrame("FRAME""AddonLoadedHandler")
    AddonLoadedHandler:RegisterEvent("ADDON_LOADED")
    local function AddonLoaded(selfevent, ...)
        
    local addon = ...
        if 
    addon == "SimplePercent" then
            
    if SimplePercent == nil then
                SimplePercent 
    = {}
                
    SimplePercent["plyhp"] = true
                SimplePercent
    ["plymana"] = true
                SimplePercent
    ["tarhp"] = true
                SimplePercent
    ["tarmana"] = true
            
    else
                
    ChangeFrame(selfhpFrameSimplePercent["plyhp"])
                
    ChangeFrame(selfmanaFrameSimplePercent["plymana"])
            
                
    ChangeFrame(hpFrameSimplePercent["tarhp"])
                
    ChangeFrame(manaFrameSimplePercent["tarmana"])
            
    end
        end
    end
    AddonLoadedHandler
    :SetScript("OnEvent"AddonLoaded
    Ты спросил как добавить % только к Player BAR, я тебе написал название аддона, который тебе их будет отображать не изменяя бар. Также показал скрин где ты спокойно можешь убрать отображение % везде где нужно.

  9. #9
    Новичок
    Регистрация
    09.01.2020
    Сообщений
    20
    Поблагодарил(а)
    4
    Получено благодарностей: 0 (сообщений: 0).
    Репутация: 0
    Цитата Сообщение от Onlykight Посмотреть сообщение
    Ты спросил как добавить % только к Player BAR, я тебе написал название аддона, который тебе их будет отображать не изменяя бар. Также показал скрин где ты спокойно можешь убрать отображение % везде где нужно.
    Так я же не просто так менял свой бар, чтобы обратно его вернуть к дефолтному)) Этот аддон не подходит

  10. #10
    Старожил Аватар для Wbtest2
    Регистрация
    21.02.2015
    Адрес
    Minsk
    Сообщений
    180
    Поблагодарил(а)
    46
    Получено благодарностей: 114 (сообщений: 60).
    Репутация: 114
    Цитата Сообщение от westcost Посмотреть сообщение
    спасибо) это уже что-то, только эти % привязаны к портрету, который я вынес за пределы экрана. Не знаю как убрать привязку player хп и маны к портрету.
    PHP код:
    PlayerFrameHealthBarText:SetPoint("CENTER"PlayerFrame00);
    PlayerFrameManaBarText:SetPoint("TOP"PlayerFrameHealthBarText"BOTTOM"00); 

    Цитата Сообщение от westcost Посмотреть сообщение
    Вообщем сделал себе(player) такую рамку хп и маны. Хотелось бы справа добавить ХП и ману в %. Чтобы было так:
    PHP код:
    local FrameList = {
        [
    "PlayerFrameHealthBar"] = true,
        [
    "PlayerFrameManaBar"] = true,    
    };
    hooksecurefunc("TextStatusBar_UpdateTextString",function(self)
        if 
    not FrameList[self:GetName()] then return; end;
        
    local Text self.TextString;
        
    local Value self:GetValue();
        if 
    Value and Value and Text then
            local _
    MaxValue self:GetMinMaxValues();
            
    local HealthPercent math.ceil((Value MaxValue)*100);
            
    Text:SetFormattedText("%u%%"HealthPercent);
        
    end;
    end

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

    westcost (22.01.2020)

  12. #11
    Новичок
    Регистрация
    09.01.2020
    Сообщений
    20
    Поблагодарил(а)
    4
    Получено благодарностей: 0 (сообщений: 0).
    Репутация: 0
    Цитата Сообщение от Wbtest2 Посмотреть сообщение
    PHP код:
    PlayerFrameHealthBarText:SetPoint("CENTER"PlayerFrame00);
    PlayerFrameManaBarText:SetPoint("TOP"PlayerFrameHealthBarText"BOTTOM"00); 



    PHP код:
    local FrameList = {
        [
    "PlayerFrameHealthBar"] = true,
        [
    "PlayerFrameManaBar"] = true,    
    };
    hooksecurefunc("TextStatusBar_UpdateTextString",function(self)
        if 
    not FrameList[self:GetName()] then return; end;
        
    local Text self.TextString;
        
    local Value self:GetValue();
        if 
    Value and Value and Text then
            local _
    MaxValue self:GetMinMaxValues();
            
    local HealthPercent math.ceil((Value MaxValue)*100);
            
    Text:SetFormattedText("%u%%"HealthPercent);
        
    end;
    end
    Большое спасибо))) Помогло

Похожие темы

  1. Player(s) versus player(s)
    от MArilyka3 в разделе Корзина
    Ответов: 34
    Последнее сообщение: 19.07.2018, 14:49
  2. old player
    от volumeexpress! в разделе WoW Circle 3.3.5a x100
    Ответов: 2
    Последнее сообщение: 15.02.2018, 19:46
  3. Top PVP player
    от Chuxnblx в разделе Корзина
    Ответов: 21
    Последнее сообщение: 03.10.2013, 13:09
  4. Player: Мания 4.3.4 х1
    от leshak в разделе Корзина
    Ответов: 0
    Последнее сообщение: 31.05.2013, 23:44

Ваши права

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