Checking ids for buff/debuff #25


  • Enhancment
  • Accepted
Open
Assigned to _ForgeUser1232189
  • _ForgeUser3284737 created this issue Feb 28, 2011

    What steps will reproduce the problem?
    1. Let say you got the Static Overload debuff on Ascendant fight
    2. Some ppl in your party will get a debuff with same name but different ID

    What is the expected output? What do you see instead?
    - Expected : only the first debuff should appear on grid. Instead of that, any debuff with similar name will show up. This could be avoided by testing the ids of the buffs/debuffs.

    What version of GridStatusRaidDebuff are you using? What version of Grid are you using (this is important)?
    GridStatusRaidDebuff : v3.1 (curse packaged version : r290)
    Grid : r1418

    Do you have an error log of what happened?
    no error, just unexpected behavior

    Please provide any additional information below.
    I had this done by adding the following in the Core.lua file :

    line 370 (function GridStatusRaidDebuff:ScanUnit) :

     name, _, icon, count, debuffType, duration, expirationTime, caster, isStealable, _, id = UnitAura(unitid, index, "HARMFUL") 
    

    instead of

     name, _, icon, count, debuffType, duration, expirationTime, caster, isStealable = UnitAura(unitid, index, "HARMFUL") 
    

    line 379 (same func) :

     if not data.disable and
       not (self.db.profile.ignDis and myDispellable[debuffType]) and
       not (self.db.profile.ignUndis and debuffType and not myDispellable[debuffType]) and
       (data.debuffId + 0 == id + 0) then 
    

    instead of

     if not data.disable and
       not (self.db.profile.ignDis and myDispellable[debuffType]) and
       not (self.db.profile.ignUndis and debuffType and not myDispellable[debuffType]) then 
    

    That said, I don't know if this could break checks on other specifc buffs/debuffs.

  • _ForgeUser3284737 added the tags New Enhancment Feb 28, 2011
  • _ForgeUser3284737 edited description Feb 28, 2011
  • bstassart removed a tag New Mar 1, 2011
  • bstassart added a tag Accepted Mar 1, 2011
  • bstassart posted a comment Mar 1, 2011

    As I understand it you only want to see who has the initial Static Overload, not those people who are nearby and get the dot.

    The change you are suggesting would be to only show debuffs that are enabled by SpellID, currently GridStatusRaidDebuff shows the debuff for all debuffs with the same name.

    This change would massively increase the storage space of debuffs. GridStatusRD_Cata for example instead of just having a debuff listed once and have it work for all 10-man normal, 10-man heroic, 25-man, and 25-man heroic, each spell id would need to be entered individually. In addition, if someone wanted to change the settings for that debuff, they would need to change it for all of those if they do it on different modes.

    I also don't think your change would actually work as suggested above as the debuff_list stores debuffs by name, not by id. So you would only be able to display one debuff of a given name in a zone no matter how many different spell ids used that name. So if the last one loaded was for 10-man normal, 10-man heroic wouldn't display for example.

    This isn't really unexpected behavior, Grid tends to work off buff and debuff names, not spell ids so GridStatusRaidDebuff was designed the same way.

    I will think about this and see if a solution to your issue can be found, but it may not be possible without a redesign of the addon to work off SpellIds rather than by names.

  • _ForgeUser3284737 posted a comment Mar 1, 2011

    I agree this isn't really unexpected behavior, since in a perfect world those two buffs would have different names as they are not the same (different behavior is expected depending on which one shows up). This is really different from same name/ different versions & ids for 10/25/heroics ... of the very same spell/debuff.

    About the change i made, it actually worked last night because i do nothing but checking the id whenever the debuff name is in the debuff_list.
    My modified gridstatus only works in 25-man heroic now thougt ...
    My next step would have been to have the data.debuffId fields in the debuff_list into id lists, and checking the current debuff id against those lists, something like :

     if not data.disable and
       not (self.db.profile.ignDis and myDispellable[debuffType]) and
       not (self.db.profile.ignUndis and debuffType and not myDispellable[debuffType]) and
       (data.debuffId[id]) then
    


    This would indeed increase the storage space, i don't know how much (still, not that massive i think).
    I also do not know if the existing data.debuffId field is used elsewhere in the addon in some way that would make it really hard to have an id list instead.

    I also do not have any idea how to make this work with the auto-detect feature ...


    Edited Mar 1, 2011

To post a comment, please login or register a new account.