Elitist Jerks
Register
Blogs
Chat
Forums
New Posts


Go Back   Elitist Jerks > Public Discussion > User Interface and AddOns

Reply
 
LinkBack (93) Thread Tools
Old 06/27/08, 7:47 AM   6 links from elsewhere to this Post. Click to view. #326 (permalink)
Glass Joe
 
Human Priest
 
Twilight's Hammer (EU)
buff filtering

I'm putting together a set of DogTags for my PitBull frame. Since I'm a healer it's imperative that I remove any unnecessary visual items from my screen. I've been with searching this thread for several weeks now and got some pretty neat tips. The basic idea was to make a buff filter system that allows conscious players to class independently (so it's not for healers only) check the most common group buffs and resistance auras (top priority in my opinion). So here is the buff concept I have put together for my PitBull frames:

1. If there is a ...
  • mage in the group/raid a blue "Int" text appears as long as the party/raid member lacks either Arcane Intellect or Arcane Brilliance. This should filter non-mana users (yeah, ferals too)
  • priest in the group/raid a white "F" text appears as long as the party/raid member lacks either Power Word: Fortitude or Prayer of Fortitude.
  • druid in the group/raid a purple "MW" text appears as long as the party/raid member lacks either Mark of the Wild or Gift of the Wild.

2. If your character is a ...
  • hunter, a green "Asp" text appears as long as you are not buffed with any aspect.
  • mage a lightblue "Armor" text appears as long as you lack an armor buff (Molten, Frost, Mage, Ice [for the children])
  • shaman, a lightblue "ES" text appears as long as you are not buffed with any elemental shield.
  • priest a yellow "IF" appears as long as you lack Inner Fire.

3. If a party/raid member is buffed with ...
  • Amplify Magic, a lightblue "Amp" text appears (I haven't includedDampen Magic, because it seems to be viable only soloing, although I'm up for a debate about it)
  • either Shadow Protection or Prayer of Shadow Protection, a purple "Sh" text appears.
  • Shadow Resistance Aura, a purple "A" text appears.
  • Fire Resistance Aura, a red "A" text appears.
  • Frost Resistance Aura, a white "A" text appears.
  • Fire Resistance Totem, a red "T" text appears.
  • Frost Resistance Totem, a white "T" text appears.
  • Nature Resistance Totem, a green "T" text appears.
  • Aspect of the Wild, a green "A" text appears.
  • Aspect of the Pack, a white "Pack" text appears.
  • Crusader Aura, a yellow "Cru" text appears.
  • Heroism, a red "H" text appears.
  • Thorns, a brown "Th" text appears (this concerns mostly tanks with aggro problems, or AoE mages).
  • Prayer of Mending, a yellow "+" text appears (this will help a group [no, not just the priest] utilize the effect of this truly gorgeous ability) [sidenote: this function may be bugged by the fact that PoM actually has got charges, that ougth to be tested (I know it's a problem with ag_UnitFrames)]
  • Fear Ward, a purple "FW" text appears.
  • Soulstone, an outlined purple "." text appears (I'd stick this line, next to the name text).

Now since I don't know much about DogTags, I'd like an expert's help with actually creating these tags
I also need help with the following problem. Talented buffs. For example: Divine Spirit, Omen of Clarity. Can the talent specs be scanned so a relation (if party has priest and has talent DS, then show "DS" until buffed, similar to Arcane Intellect, you know, filtering mana users) can be created?
Thanks for the help!
 
User is offline.
Reply With Quote
Old 06/27/08, 12:45 PM   #327 (permalink)
Glass Joe
 
Gnome Mage
 
Draenor
Been working on something similar and although it is still a work in progress, I can show you my codes for the following and hope that they help you.

Originally Posted by limesz View Post
2. If your character is a ...
  • hunter, a green "Asp" text appears as long as you are not buffed with any aspect.
  • mage a lightblue "Armor" text appears as long as you lack an armor buff (Molten, Frost, Mage, Ice [for the children])
  • shaman, a lightblue "ES" text appears as long as you are not buffed with any elemental shield.
  • priest a yellow "IF" appears as long as you lack Inner Fire.
I don't have a hunter or priest but I do have a mage and shaman and this is what I have for my player frame:

[Outline][(if (Class = "Mage") then
    (if HasAura("Molten Armor") then
        "Interface\Icons\Ability_Mage_MoltenArmor":Icon
    elseif HasAura("Ice Armor") then
        "Interface\Icons\Spell_Frost_FrostArmor02":Icon
    elseif HasAura("Mage Armor") then
        "Interface\Icons\Spell_MageArmor":Icon
    else
        "ARMOR ":Red
    end)
end) (if (Class = "Shaman") then
    (if HasAura("Water Shield") then
        "Interface\Icons\Ability_Shaman_WaterShield":Icon NumAura("Water Shield"):Hide(3):Yellow
    elseif HasAura("Earth Shield") then
        "Interface\Icons\Spell_Nature_SkinofEarth":Icon NumAura("Earth Shield"):Hide(6):Yellow
    elseif HasAura("Lightning Shield") then
        "Interface\Icons\Spell_Nature_LightningShield":Icon NumAura("Lightning Shield"):Hide(3):Yellow
    else        "SHIELD ":Red
    end)
end)]
Basically it shows in big red letters either "ARMOR" or "SHIELD" if my character is missing one of those buffs. Otherwise it will show the buff icon of the appropriate armor/shield and the number of charges left if not at max charges.
 
User is offline.
Reply With Quote
Old 06/28/08, 2:04 AM   #328 (permalink)
Glass Joe
 
livefastdiarrhea's Avatar
 
Human Mage
 
Kalecgos
This is probably the largest DogTag posted in this thread. I wanted to replace a mod called ControlFreak because it's an eyesore in my rather uniform UI (love the mod and Tekkub, tho!). I started with the DogTag located in the first page of this thread, so, credit to whoever wrote that since I didn't take note of who it was, but honestly, it's a whole new thing now.

Let me explain what I was going for before I post it. I wanted something first, with all the features of the Control Freak frame. And then I wanted to add a new functionality and clean up others. The new function is that my DogTag will not only tell you if the target (of the DogTag not of your character -- I recommend throwing this in a Focus Frame) is damaged, but it'll tell you if it's DoT'd! Before with ControlFreak, I used DaHud to make a buff panel for my focus and set the maximum to 5. Then, if I saw a few debuffs in the frame I'd assume it's dotted up (sometimes I recognize the icons, too, I guess). But now, I don't have to do that.

Anyway, here's the DogTag:
[(if (MinRange >=30) and ((CreatureType = "Beast") or (CreatureType = "Humanoid") or (CreatureType = "Critter")) and CanAttack and IsEnemy then
    "*"
end)
(if HasAura("Polymorph") and (AuraDuration("Polymorph") <= 5) and IsEnemy then
    ("Resheep NOW! " ((AuraDuration("Polymorph"):VeryShort) "s"):Paren):Yellow
end)
(if HasAura("Polymorph") and (AuraDuration("Polymorph") > 5) and (AuraDuration("Polymorph") <= 10) and IsEnemy then
    ("Breaking Soon! " ((AuraDuration("Polymorph"):VeryShort) "s"):Paren):Cyan
end)
(if HasAura("Polymorph") and (AuraDuration("Polymorph") > 10) and ~Dead and IsEnemy then
    ("Sheep Safe " ((AuraDuration("Polymorph"):VeryShort) "s"):Paren):Green
end)
(if HasAura("Polymorph") and ~Boolean(AuraDuration("Polymorph")) and ~Dead and IsEnemy then
    "Sheeped":Yellow
end)
(if ((CreatureType = "Beast") or (CreatureType = "Humanoid") or (CreatureType = "Critter")) and CanAttack and IsEnemy and ~HasAura("Polymorph") and InCombat(unit="player") and ~Dead and (HasAura("Serpent Sting") or HasAura("Fireball") or HasAura("Pyroblast") or HasAura("Ignite") or HasAura("Moonfire") or HasAura("Insect Swarm") or HasAura("Rip") or HasAura("Rake") or HasAura("Lacerate") or HasAura("Seal of Vengeance") or HasAura("Shadow Word: Pain") or HasAura("Vampiric Touch") or HasAura("Devouring Plague") or HasAura("Starshards") or HasAura("Deadly Poison") or HasAura("Garrote") or HasAura("Rupture") or HasAura("Flame Shock") or HasAura("Rend") or HasAura("Deep Wound") or HasAura("Immolate") or HasAura("Corruption") or HasAura("Curse of Agony") or HasAura("Curse of Doom") or HasAura("Siphon Life") or HasAura("Seed of Corruption") or HasAura("Unstable Affliction")) then
    "DOT'd!":Red elseif ((CreatureType = "Beast") or (CreatureType = "Humanoid") or (CreatureType = "Critter")) and CanAttack IsEnemy and ~HasAura("Polymorph") and InCombat(unit="player") and ~Dead and IsMaxHP then
    "Broken!":Red elseif ((CreatureType = "Beast") or (CreatureType = "Humanoid") or (CreatureType = "Critter")) and CanAttack IsEnemy and ~HasAura("Polymorph") and InCombat(unit="player") and ~Dead and ~IsMaxHP then
    "Damaged!":Red
end)
(if ((CreatureType = "Beast") or (CreatureType = "Humanoid") or (CreatureType = "Critter")) and CanAttack and ~IsUnit("player") and ~HasAura("Polymorph") and ~InCombat(unit="player") and IsEnemy and ~Dead then
    "Ready":Green
end)
(if ~Dead and (~((CreatureType = "Beast") or (CreatureType = "Humanoid") or (CreatureType = "Critter")) or ~CanAttack or ~IsEnemy) then
    "Invalid":Gray
end)
(if Dead and IsEnemy then
    "Dead":Gray
end)
(if (MinRange >=30) and ((CreatureType = "Beast") or (CreatureType = "Humanoid") or (CreatureType = "Critter")) and CanAttack and IsEnemy then
    "*"
end)]
I need someone to look this over and help test it out, though. I've tested everything but having another mage sheep my focus (in such a case it's supposed to display "Sheeped" in yellow) and all those DOTs. I've tested atleast Fireball and Ignite. Someone has to help me to see that I didn't forget any damage over time debuffs and that I didn't misspell any of them or add some that don't work for some reason or another.

I've tested this baby in DaHud but I assume it'd work in Pitbull and some other addons that use the lib. Most likely not all since I was surprised that even DaHud accepted such a long DogTag...

By the way, this took a few hours and alot of trial and error. I'm not a programmer and this is my first DogTag. If there are things that should be changed for this reason or that, let me know.

Future PvP tweaked version will check for Ice Block, Divine Shield, Cyclone and the various druid forms that are immune to sheep, mounted on a flying mount or anything else that I can thing of that'd make someone Immune to Polymorph. I might also either make alternate versions for other CCs or make the DogTag universal. If anyone else wants to do any of that, feel free! Less work for me.


EDIT: I recommend using this DogTag in a text field for your focus with this macro:
/cast [target=focus,exists,nodead,harm] Polymorph
/stopmacro [target=focus,exists,nodead,harm]
/cast [combat,harm,exists,nodead] Polymorph
/focus [exists,harm,nodead] target
/clearfocus [target=focus, dead]

Last edited by livefastdiarrhea : 06/28/08 at 2:20 AM.
 
User is offline.
Reply With Quote
Old 06/28/08, 5:43 AM   #329 (permalink)
King Hippo
 
Daboran's Avatar
 
Tauren Druid
 
Twisting Nether (EU)
Originally Posted by bimmian View Post
Trying to make a simple range check for my hunter. If I am in range, it shows a "+", if I am out of range, it shows a "-". So far I have this:

[if Range <= 35 then
    '+'
else
    '-'
end]
It is acting weird though.

From 0-8 yards it works properly, showing a +.
From 9-28 yards it shows a -.
From 29-35 it shows a +.
From 35+ it shows a -.

What is it about the 9-28 yard range would cause it to show a -?
I'm not sure, but I recall there not actually being a lua expression for certain ranges thus they are deduced from whether spells with those ranges can be cast or not.

The workaround was to do something like "if range > 9 yards and range < 29 yards then....."
 
User is offline.
Reply With Quote
Old 06/28/08, 11:17 AM   #330 (permalink)
Glass Joe
 
livefastdiarrhea's Avatar
 
Human Mage
 
Kalecgos
Originally Posted by Daboran View Post
I'm not sure, but I recall there not actually being a lua expression for certain ranges thus they are deduced from whether spells with those ranges can be cast or not.

The workaround was to do something like "if range > 9 yards and range < 29 yards then....."
I put a range check in the DogTag I just posted. I used if (MinRange >= XX)
 
User is offline.
Reply With Quote
Old 06/28/08, 1:58 PM   #331 (permalink)
Von Kaiser
 
FAME's Avatar
 
Fame
Night Elf Druid
 
No WoW Account
Anyone able to help me make a macro to have my PitBull Riad Frames to show a '.' if someone in my group does not have Battle Shout.
 
User is offline.
Reply With Quote
Old 06/28/08, 5:57 PM   #332 (permalink)
Glass Joe
 
livefastdiarrhea's Avatar
 
Human Mage
 
Kalecgos
Originally Posted by FAME View Post
Anyone able to help me make a macro to have my PitBull Riad Frames to show a '.' if someone in my group does not have Battle Shout.
[if ~HasAura("Battle Shout") and (RaidGroup = RaidGroup(unit="player")) then ".":Red] would probably do the trick.
 
User is offline.
Reply With Quote
Old 07/03/08, 5:23 PM   #333 (permalink)
Von Kaiser
 
Tauren Shaman
 
Neptulon (EU)
I was thinking about some new features for my ui and a thing that hit my mind, is there a way to color the icons we get with dogtags if some conditions are met? For example range check with an icons which is normally colored when in a given range and colored red if outside of the given range.
 
User is offline.
Reply With Quote
Old 07/03/08, 10:13 PM   #334 (permalink)
Glass Joe
 
livefastdiarrhea's Avatar
 
Human Mage
 
Kalecgos
Originally Posted by Aximous View Post
I was thinking about some new features for my ui and a thing that hit my mind, is there a way to color the icons we get with dogtags if some conditions are met? For example range check with an icons which is normally colored when in a given range and colored red if outside of the given range.
No, color only works with text right now, but what you could do is change the alpha... Here's an example of a tag I threw together and tested:

[if (MaxRange < 30) then Icon("Interface\Icons\Spell_Holy_BlessedRecovery", size=40) Alpha(1) else (Icon("Interface\Icons\Spell_Holy_BlessedRecovery", size=40) Alpha(0.5)) end]
 
User is offline.
Reply With Quote
Old 07/04/08, 7:08 PM   #335 (permalink)
Piston Honda
 
Night Elf Rogue
 
Whisperwind
I am trying to setup a string for my target frames that tells me the level of the mob, and if the mob is an elite it puts a + next to the level, and colors the level of the mob according to if I will get experience for it.

This is what I have so far
[Level(unit='target')]
 
User is offline.
Reply With Quote
Old 07/04/08, 11:03 PM   #336 (permalink)
omg phat loots
 
Sovereignty's Avatar
 
Draenei Warrior
 
Earthen Ring
Originally Posted by Sichosis View Post
I am trying to setup a string for my target frames that tells me the level of the mob, and if the mob is an elite it puts a + next to the level, and colors the level of the mob according to if I will get experience for it.

This is what I have so far
The first part is easy enough, but the second part is difficult. Because the level difference that allows for experience gains changes with level (Experience point - WoWWiki - Your guide to the World of Warcraft for explanation) you can't just make a static number unless you are already 70. You can use the DifficultyColor modifier, but that will also color mobs which are above your level. Using that, the dogtag would look like this:

[Level(unt="target"):DifficultyColor (if (Classification(unit="target") = "Elite") then
    "+"
else
    nil
end)]

 
User is offline.
Reply With Quote
Old 07/05/08, 11:15 AM   #337 (permalink)
Glass Joe
 
livefastdiarrhea's Avatar
 
Human Mage
 
Kalecgos
Originally Posted by Sovereignty View Post
The first part is easy enough, but the second part is difficult. Because the level difference that allows for experience gains changes with level (Experience point - WoWWiki - Your guide to the World of Warcraft for explanation) you can't just make a static number unless you are already 70. You can use the DifficultyColor modifier, but that will also color mobs which are above your level. Using that, the dogtag would look like this:

[Level(unt="target"):DifficultyColor (if (Classification(unit="target") = "Elite") then
    "+"
else
    nil
end)]
[Level:DifficultyColor ShortClassification]
 
User is offline.
Reply With Quote
Old 07/06/08, 4:45 PM   #338 (permalink)
Piston Honda
 
Night Elf Rogue
 
Whisperwind
Originally Posted by Sovereignty View Post
The first part is easy enough, but the second part is difficult. Because the level difference that allows for experience gains changes with level (Experience point - WoWWiki - Your guide to the World of Warcraft for explanation) you can't just make a static number unless you are already 70. You can use the DifficultyColor modifier, but that will also color mobs which are above your level. Using that, the dogtag would look like this:

[Level(unt="target"):DifficultyColor (if (Classification(unit="target") = "Elite") then
    "+"
else
    nil
end)]
Thankyou for the help. I will try that and see how it works. I mainly want this for my other characters I am still leveling, but also for when I am on my 70's. I am still learning how to work with DogTags.
 
User is offline.
Reply With Quote
Old 07/06/08, 7:37 PM   #339 (permalink)
Piston Honda
 
Night Elf Rogue
 
Whisperwind
I was messing around with my unit frames, and found out that my mage frames were different than the rest. When I went into the settings for my target frame and looked at the class text options this is what was there.

[(Level (if Classification then
    '+'
end)):DifficultyColor] [SmartRace]
When I went to my rogue I found some disabled text in the party targets frames that were disabled.

[Classification] [Level:DifficultyColor] [(if (IsPlayer or (IsEnemy and not IsPet)) then
    Class
end):ClassColor] [DruidForm:Paren] [SmartRace]
 
User is offline.
Reply With Quote
Old 07/10/08, 8:19 PM   #340 (permalink)
Glass Joe
 
sanny's Avatar
 
Gnome Mage
 
Aggramar (EU)
Looking for a DogTag that shows the name of a person that I'm holding my mouse over.
Currently I got this one:
[(if IsPlayer('mouseover') then
Name:ClassColor
else
Status
end)]
Problem with it is, that when I'm mouseovering any person in the raid, it shows all persons and also when I mouseover a person (that being player frame, target frame, or just hovering over an npc/player). Can anyone help me? :O

Last edited by sanny : 07/10/08 at 8:54 PM.
 
User is offline.
Reply With Quote
Old 07/10/08, 9:25 PM   #341 (permalink)
Glass Joe
 
livefastdiarrhea's Avatar
 
Human Mage
 
Kalecgos
Originally Posted by sanny View Post
Looking for a DogTag that shows the name of a person that I'm holding my mouse over.
Currently I got this one:

Problem with it is, that when I'm mouseovering any person in the raid, it shows all persons and also when I mouseover a person (that being player frame, target frame, or just hovering over an npc/player). Can anyone help me? :O
I don't understand what you're expecting. I also don't understand what your dogtag is producing or why it's not working correctly. Could you explain yourself a little better?

If you want it to only show when you mouseover actual players and not unit frames then I think you're SOL. UFs are graphical representations of player characters and non-player characters and can't be distinguished between the actual characters in the confines of LibDogTag-3.0. Sorry.
 
User is offline.
Reply With Quote
Old 07/10/08, 10:32 PM   #342 (permalink)
Glass Joe
 
sanny's Avatar
 
Gnome Mage
 
Aggramar (EU)
Perhaps I was a little unclear, I'm remaking my raid frames, and I want the names to be hidden, unless hovering my mouse over a character frame, but I guess the last part of your post explained it. :-(
 
User is offline.
Reply With Quote
Old 07/10/08, 10:36 PM   #343 (permalink)
Chronic Apopheniac
 
Night Elf Druid
 
Eldre'Thalas
Originally Posted by sanny View Post
Perhaps I was a little unclear, I'm remaking my raid frames, and I want the names to be hidden, unless hovering my mouse over a character frame, but I guess the last part of your post explained it. :-(
Um, so you want the name to only show up when you're mousing over the frame?

if isMouseOver then Name end
 
User is offline.
Reply With Quote
Old 07/16/08, 6:39 AM   #344 (permalink)
Glass Joe
 
Cady's Avatar
 
Blood Elf Priest
 
Doomhammer
I was wondering if any of you amazing coders on this forum could give me a hand on a dogtag code issue that's been hurting my head for the last few hours.

I'm attempting to make a Dogtag that will show the percent of health a target has assuming it's not at full health or dead. Currently I'm using a Dogtag I got from Caith's Pitbull Frames
[Outline][(~IsMaxHP & ~Dead ? PercentHP:Hide(0):Percent:HPColor)
Which is just what I'm looking for except for two things, firstly I only want to show the first two numbers of the percent and nothing after the decimal (would that be the veryshort code?) and secondly I want to be able to customise the HPColors.

The closest code I could find to do that on these forums was
[((HP < PercentHP * 0.99) >= PercentHP * 0.70):Color("8ACB6E") ((PercentHP < PercentHP * 0.70) >= PercentHP * 0.35):Color("D9D170") (HP < PercentHP * 0.35):Color("D97C72")]
In which I could substitute the classic coloring for coloring of my choice, however I've had a lot of trouble modiflying it into a code that shows percents rather than just HP. When I replace the HP tag with PercentHP it doesn't work :x

Anyhelp oh wise and powerful Dogtag 3.0 masters?
 
User is offline.
Reply With Quote
Old 07/16/08, 9:00 AM   #345 (permalink)
Von Kaiser
 
Night Elf Druid
 
Moonglade (EU)
I'm not at home, so I can't check, but something like this would be where I'd start from.
[Outline] [if ~IsMaxHP then [if PercentHP >0.7 then PercentHP:VeryShort:Percent:Color(""8ACB6E"") end] 
[if PercentHP <= 0.7 and if Percent HP > 0.35 then PercentHP:VeryShort:Percent:Color("D9D170") end] 
if PercentHP <=0.35 then PercentHP:Hide(0):VeryShort:Percent:Color("D97C72") end]
 
User is offline.
Reply With Quote
Old 07/16/08, 4:20 PM   #346 (permalink)
Glass Joe
 
Cady's Avatar
 
Blood Elf Priest
 
Doomhammer
Originally Posted by Eucharion View Post
I'm not at home, so I can't check, but something like this would be where I'd start from.
[Outline] [if ~IsMaxHP then [if PercentHP >0.7 then PercentHP:VeryShort:Percent:Color(""8ACB6E"") end] 
[if PercentHP <= 0.7 and if Percent HP > 0.35 then PercentHP:VeryShort:Percent:Color("D9D170") end] 
if PercentHP <=0.35 then PercentHP:Hide(0):VeryShort:Percent:Color("D97C72") end]
didn't work, just got a syntax error but it looks closer to the right direction then where I was going before. The new code I'm working on is
[Outline] [(if IsMaxHP then nil else if HP > MaxHP * 0.7 then PercentHP:VeryShort:Percent:Color(""8ACB6E"") else if HP <= MaxHP * 0.7 and if HP > MaxHP * 0.35 then PercentHP:VeryShort:Percent:Color("D9D170") else 
if HP <= MaxHP * 0.35 then PercentHP:Hide(0):VeryShort:Percent:Color("D97C72") end)]
Still gives me a syntax error though :x
what's wrong?