WoWInterface

WoWInterface (https://www.wowinterface.com/forums/index.php)
-   AddOn Help/Support (https://www.wowinterface.com/forums/forumdisplay.php?f=3)
-   -   Stuf + Threat (https://www.wowinterface.com/forums/showthread.php?t=40448)

Lily.Petal 06-09-11 01:08 PM

Stuf + Threat + Power Text
 
I am currently wanting to make a small threat meter using Stuf's custom LUA text option.

All I want it to do is just show My current Threat% (without the % sign please) on my target, the color being Stuf's HP Red Color.

If someone could offer assistance, I would appreciate it greatly!

*~Lily.Petal~*

===============

For anyone who happens to search for similar effects for their own layouts, code will be listed below.

Link for other lua codes(provided by Cantises): Lua Stuf examples

This code makes your power into a percent(without the %); if you are using energy/mana, the text will only show if you are under 100% (otherwise hidden). If you use RunicPower or Rage, the text will not show up unless you are above 1%.
Code:

function(unit)
        local pCur, pMax = UnitPower(unit), UnitPowerMax(unit)
        if pMax > 0 then
                local _, pToken = UnitPowerType(unit)
                if pToken == "RAGE" or pToken == "RUNIC_POWER" then
                        -- Warrior / Teddy Bear Druid / DK
                        if pCur > 0 then
                                return "%d", pCur
                        end
                elseif pToken == "ENERGY" then
                        -- Rogue / Kitty Druid
                        if pCur < pMax then
                                return "%d", pCur
                        end
                else
                        -- Everything else
                        local pPer = ceil((pCur / pMax)*100)
                        if pPer < 100 then
                                return "%d", pPer
                        end
                end
        end
end

Colored by powertype:
Code:

function(unit)
        local pCur, pMax, mCur, mMax = UnitPower(unit), UnitPowerMax(unit), UnitPower(unit, 0), UnitPowerMax(unit, 0)
        if pMax > 0 then
                local pType, pToken = UnitPowerType(unit)
                local pColor = PowerBarColor[pType]
                if ( (pToken ~= "MANA") and (mMax > 0) ) then        -- Druid in Bear/Cat form
                        local mColor = PowerBarColor[0]
                        local mPer = ceil((mCur / mMax)*100)
                        local ShowPower, ShowMana
                        if ((pToken == "RAGE") and (pCur > 0)) or ((pToken == "ENERGY") and (pCur < pMax)) then
                                ShowPower = true
                        end
                        if mPer < 100 then
                                ShowMana = true
                        end
                        if ShowPower and ShowMana then
                                return "|cff%02x%02x%02x%s|r |cff%02x%02x%02x%s|r", pColor.r * 255, pColor.g * 255, pColor.b * 255, pCur, mColor.r * 255, mColor.g * 255, mColor.b * 255, mPer
                        elseif ShowPower then
                                return "|cff%02x%02x%02x%s|r", pColor.r * 255, pColor.g * 255, pColor.b * 255, pCur
                        elseif ShowMana then
                                return "|cff%02x%02x%02x%s|r", mColor.r * 255, mColor.g * 255, mColor.b * 255, mPer
                        end
                elseif pToken == "RAGE" or pToken == "RUNIC_POWER" then                -- Warrior / DK
                        if pCur > 0 then
                                return "|cff%02x%02x%02x%s|r", pColor.r * 255, pColor.g * 255, pColor.b * 255, pCur
                        end
                elseif pToken == "ENERGY" then        -- Rogue
                        if pCur < pMax then
                                return "|cff%02x%02x%02x%s|r", pColor.r * 255, pColor.g * 255, pColor.b * 255, pCur
                        end
                else        -- Everything else
                        local pPer = ceil((pCur / pMax)*100)
                        if pPer < 100 then
                                return "|cff%02x%02x%02x%s|r", pColor.r * 255, pColor.g * 255, pColor.b * 255, pPer
                        end
                end
        end
end


Nibelheim 06-09-11 03:57 PM

Quote:

Originally Posted by Lily.Petal (Post 239082)
I am currently wanting to make a small threat meter using Stuf's custom LUA text option.

All I want it to do is just show My current Threat% (without the % sign please) on my target, the color being Stuf's HP Red Color.

If someone could offer assistance, I would appreciate it greatly!

*~Lily.Petal~*

To get an accurate % reading may be out of the scope of Lua Text, as you'd want a timer to keep threat information updated. There's a few threat events you can watch out for, but they only fire on major threat changes making them somewhat useless for watching threat closely. It may be possible to utilize Stufs own Target frame from within the Lua Text itself. A crude example being:

Code:

self.ttelapsed = 0
self:SetScript("OnUpdate", function(self, elapsed)
  self.ttelapsed = self.ttelapsed + elapsed
  if self.ttelapsed >= 0.5 then
    local _, _, threatpct, _, threatvalue = UnitDetailedThreatSituation(unitid, mobunitid)
    if threatvalue then
      return "|cffff0000%d|r", floor(threatpct)
    else
      return ""
    end
    self.ttelapsed = 0
  end
end)


Lily.Petal 06-09-11 05:09 PM

Quote:

Originally Posted by Nibelheim (Post 239093)
To get an accurate % reading may be out of the scope of Lua Text, as you'd want a timer to keep threat information updated. There's a few threat events you can watch out for, but they only fire on major threat changes making them somewhat useless for watching threat closely. It may be possible to utilize Stufs own Target frame from within the Lua Text itself. A crude example being:

SNIP

Thank you nib, I will have to try it out soon ^^

Nibelheim 06-09-11 07:29 PM

Quote:

Originally Posted by Lily.Petal (Post 239096)
Thank you nib, I will have to try it out soon ^^

Well, it probably won't work, due to the way Lua Text functions operate. What may be best is to just make a kgPanel with appropriate events and OnUpdate routines, and set it's text to your threat %.

Seerah 06-09-11 07:46 PM

LuaTexts can be set to run (a slightly throttled, iirc) OnUpdate if you check the "frequent updates" box.

Nibelheim 06-09-11 07:47 PM

Quote:

Originally Posted by Seerah (Post 239100)
LuaTexts can be set to run (a slightly throttled, iirc) OnUpdate if you check the "frequent updates" box.

Ohh, nice. In that case, it's just a simple matter of:

Code:

local _, _, threatpct, _, threatvalue = UnitDetailedThreatSituation(unitid, mobunitid)
if threatvalue then
  return "|cffff0000%d|r", floor(threatpct)
else
  return ""
end


Lily.Petal 06-09-11 09:44 PM

Quote:

Originally Posted by Nibelheim (Post 239101)
Ohh, nice. In that case, it's just a simple matter of:

Code:

local _, _, threatpct, _, threatvalue = UnitDetailedThreatSituation(unitid, mobunitid)
if threatvalue then
  return "|cffff0000%d|r", floor(threatpct)
else
  return ""
end


hm.. I might need an explanation on how to put this in.

Do I need to change unitid to player?

Nibelheim 06-09-11 10:14 PM

Quote:

Originally Posted by Lily.Petal (Post 239105)
hm.. I might need an explanation on how to put this in.

Do I need to change unitid to player?

Yep.

unitid = "player"
mobunitid = "target"

Seerah 06-09-11 10:56 PM

If you put it in as a LuaText for your player frame, it will pass your "player" unitid to the function as the first(?) argument.

Lily.Petal 06-10-11 03:46 AM

Thank you Nib and Seerah, was great help!

Hm having a different problem now, with all my classes I use:
Quote:

[solid_if_mp99:Percmp]
For all my power bars; which isn't a problem, it works as intended for every class... But DK's & Warriors

Is there someway that I can have it show
Quote:

[solid_if_mp99:Percmp] -- For all Classes but DK&Warriors
Quote:

[solid_ifnot_mp99:Percmp] -- For only DK&Warriors

Nibelheim 06-10-11 04:05 AM

Quote:

Originally Posted by Lily.Petal (Post 239110)
Thank you Nib and Seerah, was great help!

Hm having a different problem now, with all my classes I use:

For all my power bars; which isn't a problem, it works as intended for every class... But DK's & Warriors

Is there someway that I can have it show

I've never used Stuf, so I'm unfamiliar with those particular clauses or where they're used, however a simple if-then-else usually works for segregating different functionality for different classes. In this case, though, it may be better to determine what power type the unit is using.

Code:

local _, power_token = UnitPowerType(unit)  -- Lua Texts usually pass the unit arg, so leaving unit as is should work
if power_token == "RAGE" or power_token == "RUNIC_POWER" then
  -- Warrior / Teddy Bear Druid / DK
else
  -- Everything else
end


Lily.Petal 06-10-11 04:20 AM

Quote:

Originally Posted by Nibelheim (Post 239114)
Code:

local _, power_token = UnitPowerType(unit)  -- Lua Texts usually pass the unit arg, so leaving unit as is should work
if power_token == "RAGE" or power_token == "RUNIC_POWER" then
  -- Warrior / Teddy Bear Druid / DK
else
  -- Everything else
end


I really need to learn LUA, time for me to use google to learn to put in the text :>

Quote:

return ceil(Percent(MP(unit)))
hm...

Lily.Petal 06-10-11 04:37 AM

Hm, using stuf it says when I switch to LUA:
Quote:

Lua Code must have this format:
function(unit, cache, textframe) <some text> return 'text', ... end where 'cache' may be used as cache.infotag (see pattern help or core.lua) and "..." are optional arguments to SetFormattedText.

Quote:

function(unit, cache, textframe) return 'text' end

Nibelheim 06-10-11 04:40 AM

What is it you're trying to achieve, exactly? Just showing the Power in standard format?

Lily.Petal 06-10-11 04:45 AM

Quote:

Originally Posted by Nibelheim (Post 239120)
What is it you're trying to achieve, exactly? Just showing the Power in standard format?

What I am trying to do is so that If I am any class that uses anything but Rage/RunicPower that it shows the MP value in CurMP% when it goes below 100%, but hides when greater than 99%(without the % sign).
And the opposite if they do use said powertypes, where if it's at 0% said text will hide.

Basically:
if power≤99% show if not DK/Bear/Warrior as CurMP%

and

if power≥1% show if DK/Bear/Warrior as CurMP%

Does this help? :<

EDIT: it's just REALLY annoying when I'm playing my DK/Warrior that I see a 0 in the middle of my power bar when I have no power at all.

Nibelheim 06-10-11 04:53 AM

Quote:

Originally Posted by Lily.Petal (Post 239121)
What I am trying to do is so that If I am any class that uses anything but Rage/RunicPower that when I am at 100% Mana/Energy, the text doesn't show, and I would like it to be a Percent(without the % sign).

Basically:
if power≤99% show if not DK/Bear/Warrior as CurMP%

And basically the opposite if I am a DK/Bear/Warrior
if power≥1% show if DK/Bear/Warrior as CurMP%

Does this help? :<

Ahh. :) I like doing my Lua Texts with pure Lua. Some of my UI users reported strange power display issues when using Lua Text abbreviations.

Barebones:
Code:

local _, pToken = UnitPowerType(unit)
local pCur, pMax = Power(unit), MaxPower(unit)
if pMax > 0 then
        if pToken == "RAGE" or pToken == "RUNIC_POWER" then
                -- Warrior / Teddy Bear Druid / DK
                if pCur > 0 then
                        return "%d", pCur
                end
        else
                -- Everything else
                local pPer = ceil(pCur / pMax)
                if pPer < 100 then
                        return "%d", pPer
                end
        end
end


Lily.Petal 06-10-11 04:57 AM

Do I still need to do something with:
Quote:

Lua Code must have this format:
function(unit, cache, textframe) <some text> return 'text', ... end where 'cache' may be used as cache.infotag (see pattern help or core.lua) and "..." are optional arguments to SetFormattedText.

Quote:

function(unit, cache, textframe) return 'text' end
By any chance? I entered it into the options and saved, put it on fast update and reloaded and is still not working. Gonna go insane :<

EDIT: let me try changing unit to "player"
EDIT2: ugh Dx darn you stuf... darn you... (didn't work)

Nibelheim 06-10-11 05:08 AM

Hmm, same error again? It must behave different to Pitbull's Lua Text. Maybe it needs an extra return.


Code:

local _, pToken = UnitPowerType(unit)
local pCur, pMax = Power(unit), MaxPower(unit)
if pMax > 0 then
        if pToken == "RAGE" or pToken == "RUNIC_POWER" then
                -- Warrior / Teddy Bear Druid / DK
                if pCur > 0 then
                        return "%d", pCur
                end
        else
                -- Everything else
                local pPer = ceil(pCur / pMax)
                if pPer < 100 then
                        return "%d", pPer
                end
        end
else
        return ""
end


Lily.Petal 06-10-11 05:18 AM

Well it's not giving me an error, it's just not showing up at all. I don't really understand it.

Nibelheim 06-10-11 05:22 AM

Quote:

Originally Posted by Lily.Petal (Post 239126)
Well it's not giving me an error, it's just not showing up at all. I don't really understand it.

Debug time! Hmm, I wonder if print works in Lua Text :p Is fast update ticked?

Code:

local _, pToken = UnitPowerType(unit)
local pCur, pMax = Power(unit), MaxPower(unit)

print(unit)
print(pCur)
print(pMax)

if pMax > 0 then
        if pToken == "RAGE" or pToken == "RUNIC_POWER" then
                -- Warrior / Teddy Bear Druid / DK
                if pCur > 0 then
                        return "%d", pCur
                end
        else
                -- Everything else
                local pPer = ceil(pCur / pMax)
                if pPer < 100 then
                        return "%d", pPer
                end
        end
else
        return ""
end


Lily.Petal 06-10-11 05:25 AM

Quote:

Originally Posted by Nibelheim (Post 239127)
Debug time! Hmm, I wonder if print works in Lua Text :p Is fast update ticked?

Still nothing, and yes it is... Idk whats' going on. I never attempted to do this before, so I have no idea what needs to be done for it to work... BEH!

Nibelheim 06-10-11 05:30 AM

Quote:

Originally Posted by Lily.Petal (Post 239128)
Still nothing, and yes it is... Idk whats' going on. I never attempted to do this before, so I have no idea what needs to be done for it to work... BEH!

May be something wrong with the setup of that particular Lua Text. Missing events, settings... something. Hopefully the answer comes along soon :) Wish I knew more about Stuf to help more.

What if you try just:
Code:

return "Hello World"
Get any text appear?


As for me, I'm late for an appointment with my bed :p

Lily.Petal 06-10-11 05:36 AM

Quote:

Originally Posted by Nibelheim (Post 239129)
May be something wrong with the setup of that particular Lua Text. Missing events, settings... something. Hopefully the answer comes along soon :) Wish I knew more about Stuf to help more.

What if you try just:
Code:

return "Hello World"
Get any text appear?


As for me, I'm late for an appointment with my bed :p

Nope, not at all. Sorry for keeping you up Nib :<

Canities 06-10-11 06:59 AM

Cant remember where i got this from but it might help with the showing of power/mana issue for stuf...

Code:

local pType, pTypeStr = UnitPowerType(unit)
local pPower = UnitPower(unit, pType)
if pType == 1 || pType == 3 || pType == 6 then
  -- Rage, Energy, RP
  if pPower > 0 then
    -- do whatever here for displaying
  end
else
  -- energy is mana etc
  if pPower < UnitMaxPower(unit, pType) then
    -- show mana etc stuff here
  end
end

Actually i found where i got that peice of cade, its on another thread on the forum: Stuf Unit LUA help which has a load more custom LUA for stUF for anyone thats intrested.

Seerah 06-10-11 08:20 PM

It's because you're not using a function. Just an if statement. ;)

Nibelheim 06-10-11 08:28 PM

Quote:

Originally Posted by Seerah (Post 239156)
It's because you're not using a function. Just an if statement. ;)

Hmm, shouldn't need to wrap the code in a function. Would be very odd if that's the case. Then again, I've only used Pitbull's Lua Text, which may be entirely different to Stuf's implementation. :)

Seerah 06-10-11 08:29 PM

Quote:

Originally Posted by Lily.Petal (Post 239119)
Hm, using stuf it says when I switch to LUA:
Quote:

Lua Code must have this format:
function(unit, cache, textframe) <some text> return 'text', ... end where 'cache' may be used as cache.infotag (see pattern help or core.lua) and "..." are optional arguments to SetFormattedText.

Quote:

function(unit, cache, textframe) return 'text' end

Yep. These are the instructions/example. ^^

Nibelheim 06-10-11 08:40 PM

Omoshiroi. In that case:

Code:

function(unit)
        local _, pToken = UnitPowerType(unit)
        local pCur, pMax = Power(unit), MaxPower(unit)
        if pMax > 0 then
                if pToken == "RAGE" or pToken == "RUNIC_POWER" then
                        -- Warrior / Teddy Bear Druid / DK
                        if pCur > 0 then
                                return "%d", pCur
                        end
                elseif pToken == "ENERGY" then
                        -- Rogue / Kitty Druid
                        if pCur < pMax then
                                return "%d", pCur
                        end
                else
                        -- Everything else
                        local pPer = ceil(pCur / pMax)
                        if pPer < 100 then
                                return "%d", pPer
                        end
                end
        end
end


Lily.Petal 06-10-11 08:48 PM

Quote:

Originally Posted by Nibelheim (Post 239159)
Omoshiroi. In that case:

*SNIP*

Ill go test this right meow~

EDIT: Still didn't work or show up :<

Going to try the one Canites posted real fast

EDIT2: Tried the link (s)he gave:

Code:

function(unit)
  local name, level = UnitName(unit), UnitLevel(unit)
  local clcolor = RAID_CLASS_COLORS[select(2, UnitClass(unit))]
  if (name and string.len(name) > 10) then
    name = string.gsub(name, "([^%s]+) ", function(s) return string.sub(s,1,1) .. "." end)
  end
  return "%s |cff%02x%02x%02x%s|r", level, clcolor.r*255, clcolor.g*255, clcolor.b*255, name
end

This worked as intended. So I know it's not from my side.

Lily.Petal 06-10-11 09:01 PM

Quote:

Originally Posted by Taryble (Post 223740)
Well, it's mostly for doing things that StUF's (fairly limited) tag system won't handle.

...

Here's a more interesting text that I use (my "Power" text).
Code:

function(unit, cache, textframe)
  local powtype, maxmp, curmp = UnitPowerType(unit), UnitPowerMax(unit), UnitPower(unit)
  local cc = PowerBarColor[powtype]
  local permp = 100*curmp/maxmp
  if (powtype == 1 or powtype == 3) then
    local _, class = UnitClass(unit)
    if (class == "DRUID" and unit == "player") then
      local maxdmp, curdmp, ccd = UnitPowerMax(unit,0), UnitPower(unit,0), PowerBarColor[0]
      if curdmp ~= maxdmp then
        return "|cff%02x%02x%02x%.0f|r%% | |cff%02x%02x%02x%s|r",ccd.r*255,ccd.g*255,ccd.b*255,100*curdmp/maxdmp,cc.r*255,cc.g*255,cc.b*255,curmp
      else
        return "|cff%02x%02x%02x%s|r",cc.r*255,cc.g*255,cc.b*255,curmp
      end
    else       
      return "|cff%02x%02x%02x%s|r",cc.r*255,cc.g*255,cc.b*255,curmp
    end
  elseif curmp ~= maxmp then
    return "|cff%02x%02x%02x%.0f|r%%",cc.r*255,cc.g*255,cc.b*255,permp
  elseif powtype == 0 then
    return "|cff%02x%02x%02x%s|r",cc.r*255,cc.g*255,cc.b*255,maxmp
  end
end

This one is rather fun. Basically, if you're a druid in shapeshift form, it shows your rage/energy - and if you're below full mana, it shows your mana as a percentage (separated by a pipe character). If you're a Warrior or Rogue, it just shows your rage/energy.

If you're anything else, it shows your percentage of power - but if you're at full power, it just shows your maximum power. (ie, 99% OR 78532, for example).

And, yes, all you Lua coders out there, please feel free to take a look at it and give me advice on how to make it better.

I haven't really done any programming since 1997, and Lua wasn't very common back then, so this is all sorta tossed together with half-remembered scraps of programming theory and style. :)

Maybe this may be of some help?

Nibelheim 06-10-11 09:01 PM

Woops, my bad, I left some Pitbull code in my examples :(

Code:

function(unit)
        local pCur, pMax = UnitPower(unit), UnitPowerMax(unit)
        if pMax > 0 then
                local _, pToken = UnitPowerType(unit)
                if pToken == "RAGE" or pToken == "RUNIC_POWER" then
                        -- Warrior / Teddy Bear Druid / DK
                        if pCur > 0 then
                                return "%d", pCur
                        end
                elseif pToken == "ENERGY" then
                        -- Rogue / Kitty Druid
                        if pCur < pMax then
                                return "%d", pCur
                        end
                else
                        -- Everything else
                        local pPer = ceil(pCur / pMax)
                        if pPer < 100 then
                                return "%d", pPer
                        end
                end
        end
end


Lily.Petal 06-10-11 09:06 PM

You. Are. Simply. Amazing.

Thank you for all your hard work everyone; Nib, Seerah, Canities.

I will make sure to edit my 1st post to show the correct examples as well as a link that Canities posted for anyone who searches for this :)

EDIT: I forgot about my Threat bar! ROFL :>

Nibelheim 06-10-11 09:29 PM

Or for some extra features:

Code:

function(unit)
        local pCur, pMax, mCur, mMax = UnitPower(unit), UnitPowerMax(unit), UnitPower(unit, 0), UnitPowerMax(unit, 0)
        if pMax > 0 then
                local pType, pToken = UnitPowerType(unit)
                local pColor = PowerBarColor[pType]
                if ( (pToken ~= "MANA") and (mMax > 0) ) then        -- Druid in Bear/Cat form
                        local mColor = PowerBarColor[0]
                        local mPer = ceil(mCur / mMax)
                        local ShowPower, ShowMana
                        if ((pToken == "RAGE") and (pCur > 0)) or ((pToken == "ENERGY") and (pCur < pMax)) then
                                ShowPower = true
                        end
                        if mPer < 100 then
                                ShowMana = true
                        end
                        if ShowPower and ShowMana then
                                return "|cff%02x%02x%02x%s|r |cff%02x%02x%02x%s|r", pColor.r * 255, pColor.g * 255, pColor.b * 255, pCur, mColor.r * 255, mColor.g * 255, mColor.b * 255, mPer
                        elseif ShowPower then
                                return "|cff%02x%02x%02x%s|r", pColor.r * 255, pColor.g * 255, pColor.b * 255, pCur
                        elseif ShowMana then
                                return "|cff%02x%02x%02x%s|r", mColor.r * 255, mColor.g * 255, mColor.b * 255, mPer
                        end
                elseif pToken == "RAGE" or pToken == "RUNIC_POWER" then                -- Warrior / DK
                        if pCur > 0 then
                                return "|cff%02x%02x%02x%s|r", pColor.r * 255, pColor.g * 255, pColor.b * 255, pCur
                        end
                elseif pToken == "ENERGY" then        -- Rogue
                        if pCur < pMax then
                                return "|cff%02x%02x%02x%s|r", pColor.r * 255, pColor.g * 255, pColor.b * 255, pCur
                        end
                else        -- Everything else
                        local pPer = ceil(pCur / pMax)
                        if pPer < 100 then
                                return "|cff%02x%02x%02x%s|r", pColor.r * 255, pColor.g * 255, pColor.b * 255, pPer
                        end
                end
        end
end

Dry coded, so may not work :p

Edit: I wonder if Stuf supports MouseOver. In Pitbull you can just say If IsMouseOver() then and do cool things, like showing different values on mouseover.

Lily.Petal 06-10-11 09:50 PM

Quote:

Originally Posted by Nibelheim (Post 239167)
Or for some extra features:

*SNIPE*

Dry coded, so may not work :p

Edit: I wonder if Stuf supports MouseOver. In Pitbull you can just say If IsMouseOver() then and do cool things, like showing different values on mouseover.

OOH looks lovely, and Stuf has a toggle option if MouseOvers, it's pretty cool!

Gonna see if I can get your threat bar to work now :>

Lily.Petal 06-12-11 08:27 PM

2 Attachment(s)
Something seemed odd earlier today when I was in a group...

My party members definitely did not have 1% mana lol :P
Even after mana went down (2nd image) the text didn't change.

Same thing with Hunter Focus :<

Nibelheim 06-12-11 09:58 PM

Sounds like I forgot a *100. xPer lines need to read: xPer = ceil((xCur / xMax) * 100)

Code:

function(unit)
        local pCur, pMax, mCur, mMax = UnitPower(unit), UnitPowerMax(unit), UnitPower(unit, 0), UnitPowerMax(unit, 0)
        if pMax > 0 then
                local pType, pToken = UnitPowerType(unit)
                local pColor = PowerBarColor[pType]
                if ( (pToken ~= "MANA") and (mMax > 0) ) then        -- Druid in Bear/Cat form
                        local mColor = PowerBarColor[0]
                        local mPer = ceil((mCur / mMax)*100)
                        local ShowPower, ShowMana
                        if ((pToken == "RAGE") and (pCur > 0)) or ((pToken == "ENERGY") and (pCur < pMax)) then
                                ShowPower = true
                        end
                        if mPer < 100 then
                                ShowMana = true
                        end
                        if ShowPower and ShowMana then
                                return "|cff%02x%02x%02x%s|r |cff%02x%02x%02x%s|r", pColor.r * 255, pColor.g * 255, pColor.b * 255, pCur, mColor.r * 255, mColor.g * 255, mColor.b * 255, mPer
                        elseif ShowPower then
                                return "|cff%02x%02x%02x%s|r", pColor.r * 255, pColor.g * 255, pColor.b * 255, pCur
                        elseif ShowMana then
                                return "|cff%02x%02x%02x%s|r", mColor.r * 255, mColor.g * 255, mColor.b * 255, mPer
                        end
                elseif pToken == "RAGE" or pToken == "RUNIC_POWER" then                -- Warrior / DK
                        if pCur > 0 then
                                return "|cff%02x%02x%02x%s|r", pColor.r * 255, pColor.g * 255, pColor.b * 255, pCur
                        end
                elseif pToken == "ENERGY" then        -- Rogue
                        if pCur < pMax then
                                return "|cff%02x%02x%02x%s|r", pColor.r * 255, pColor.g * 255, pColor.b * 255, pCur
                        end
                else        -- Everything else
                        local pPer = ceil((pCur / pMax)*100)
                        if pPer < 100 then
                                return "|cff%02x%02x%02x%s|r", pColor.r * 255, pColor.g * 255, pColor.b * 255, pPer
                        end
                end
        end
end


Lily.Petal 06-12-11 10:32 PM

Thank you nib~

Lily.Petal 08-13-11 05:18 PM

Sorry about the necro threading, but the actual reason of this thread wasn't done :P While it's awesome to get my Power Text like this, my threat question wasn't finished ;D Any ideas?

Quote:

Originally Posted by Lily.Petal
I am currently wanting to make a small threat meter using Stuf's custom LUA text option.

All I want it to do is just show My current Threat% (without the % sign please) on my target, the color being Stuf's HP Red Color.

If someone could offer assistance, I would appreciate it greatly!

*~Lily.Petal~*


Nibelheim 08-13-11 05:27 PM

Code:

function(unit)
    local _, _, threatpct, _, threatvalue = UnitDetailedThreatSituation(unit, "target")
    if threatvalue then
        return "|cffff0000%d|r", floor(threatpct)
    else
        return ""
    end
end

If you make this a LuaText on the Player frame, and use Seerah's OnUpdate instructions, it should work.

Quote:

LuaTexts can be set to run (a slightly throttled, iirc) OnUpdate if you check the "frequent updates" box.
May have to adjust the |cffff0000 (format is |caarrggbb) if the red color is off. Or someone may know Stuf's Health Color variable.

Lily.Petal 08-13-11 05:33 PM

And you're still a God! Thank you Nib, I'll test this asap~

Quote:

Originally Posted by Nibelheim (Post 243138)
SNIP
If you make this a LuaText on the Player frame, and use Seerah's OnUpdate instructions, it should work.

May have to adjust the |cffff0000 (format is |caarrggbb) if the red color is off. Or someone may know Stuf's Health Color variable.


Nibelheim 08-13-11 05:37 PM

Or for threat colored text.

Code:

function(unit)
    local _, _, threatpct, _, threatvalue = UnitDetailedThreatSituation(unit, "target")
    local color = status and {GetThreatStatusColor(status)} or {GetThreatStatusColor(0)}
    if threatvalue then
        return "|cff%02x%02x%02x%d|r", color[1], color[2], color[3], floor(threatpct)
    else
        return ""
    end
end



All times are GMT -6. The time now is 04:53 PM.

vBulletin © 2018, Jelsoft Enterprises Ltd
© 2004 - 2017 MMOUI