Thread Tools Display Modes
10-22-09, 03:01 AM   #1
ElphieRAWR
A Deviate Faerie Dragon
 
ElphieRAWR's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2009
Posts: 10
Arrow Looking For: Spellsteal addon.

I've been looking for about the last week for an addon that does one specific thing: Reports Spellsteal to chat.

Basically I want it in the form of "PlayerName Spellstole [Spellstole Buff Link] TargetName " (TargetName being the target of the spellsteal, not my target)
I want it to actually tell me WHAT I stole.

In my epic journey to find the addon to do this, I was told to check out ThatJustHappened. I have, and I even figured out how to make it print in chat "PlayerName Spellsteal TargetName" but it won't tell me the name of the buff, in any way I've tried to make it.

Just so that I'm not misunderstood, here's an example:

Lord Jaraxxus casts [Nether Power] on himself.
I cast Spellsteal with a "/cast [target=focus] Spellsteal" macro, on Lord Jaraxxus, who is my focus but NOT my target.
In Party Chat I say: "I spellstole [Nether Power] from Lord Jaraxxus."

However, while I'm spamming my Spellsteal macro, and all of his stacks are gone, I do not want it to say anything. Meaning:

Lord Jaraxxus is doing some other junk, debuffing people with Incinerate Flesh, etc. He no longer has any [Nether Power] buff stacks on him.
I cast Spellsteal with my "/cast [target=focus] Spellsteal" macro, on Lord Jaraxxus, who is my focus but NOT my target.
I get an error in the UI Error Frame that says "Nothing to Steal" or whatever the error is for that.
In Party Chat I do not say anything.

Now.. I've figured out this much:
Basically the addon would have to constantly check the combatlog. It would see:
SPELL_CAST_SUCCESS from me, on TargetName, with Spellsteal.
SPELL_AURA_REMOVED from TargetName; BuffName.
SPELL_STOLEN by me, from TargetName, with Spellsteal; BuffName.

Here is an exact combatlog report:
10/21 08:49:06.502 SPELL_CAST_SUCCESS,0x02000000037DC8C4,"Matanya",0x511,0x0200000003739633,"Lythelia",0x10548,30449,"Spellsteal",0x40
10/21 08:49:06.982 SPELL_AURA_REMOVED,0x020000000167B900,"Unknown",0x528,0x0200000003739633,"Lythelia",0x10548,25392,"Prayer of Fortitude",0x2,BUFF
10/21 08:49:07.028 SPELL_STOLEN,0x02000000037DC8C4,"Matanya",0x511,0x0200000003739633,"Lythelia",0x10548,30449,"Spellsteal",0x40,25392,"Prayer of Fortitude",2,BUFF

Where "Matanya" = me, "Lythelia" = TargetName, "Prayer of Fortitude" = BuffName.

I'm fairly sure I'm right up to this point.

Now, using ThatJustHappened [the addon on Curse I was told to try] I set
TJH: Rule 1: SPELL_STOLEN;Matanya;;Spellsteal;enemy;PARTY;I *event *target;
This rule does this:
I cast spellsteal on TargetName, I steal a buff, it prints in Party Chat "I Spellsteal TargetName"

then I set
TJH: Rule 2: SPELL_STOLEN;;;Spellsteal;enemy;SELF;*source *event *target;
This does:
Any mage casts spellsteal on TargetName, and gets a buff. I see in my own chat frame "MageName Spellsteal TargetName"


TLDR; - How do I either a) get TJH to print the buff link OR b) find an addon that does this.

Last edited by ElphieRAWR : 10-22-09 at 03:03 AM. Reason: Made it a little easier to read. It's a bit block of text-y.
  Reply With Quote
10-22-09, 03:27 AM   #2
Xrystal
nUI Maintainer
 
Xrystal's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Feb 2006
Posts: 5,955
It looks like the addon's curse page tells you some other options of which one is the spells name itself. I believe using *spell in the output will show the spell name itself. However, unless that spell name is an actual link would depend on how they coded the addon itself. Try that out and if it doesn't do what you want it might involve tweaking the code manually to add a link option.

Custom Rule Spam
Basics: You have the option to set custom spam text for each rule, which replaces the standard combat log-type output. For example, if Savar is my main tank:

/tjh rule SPELL_AURA_APPLIED;;Savar;Mortal Strike;;RW;Incoming heals on Savar reduced by 50%!;
Dynamic Variables: using any of the following in your spam will substitute the current event's variable, or blank if that variable is nil:

*event = current event's name
*source = current event's source
*target = current event's target
*spell = current event's spellname
Note: depending on the event, these variables may not always give you what you expect, but they can be great for rules like the following:

/tjh rule UNIT_DIED;;;;raid;RW;*target is down!;
__________________


Characters:
Gwynedda - 70 - Demon Warlock
Galaviel - 65 - Resto Druid
Gamaliel - 61 - Disc Priest
Gwynytha - 60 - Survival Hunter
Lienae - 60 - Resto Shaman
Plus several others below level 60

Info Panel IDs : http://www.wowinterface.com/forums/s...818#post136818
  Reply With Quote
10-22-09, 04:30 AM   #3
ElphieRAWR
A Deviate Faerie Dragon
 
ElphieRAWR's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2009
Posts: 10
Originally Posted by Xrystal View Post
It looks like the addon's curse page tells you some other options of which one is the spells name itself. I believe using *spell in the output will show the spell name itself. However, unless that spell name is an actual link would depend on how they coded the addon itself. Try that out and if it doesn't do what you want it might involve tweaking the code manually to add a link option.
Using *spell in SPELL_STOLEN lists *spell as being "Spellsteal"

Edit:
Example:

If I were to use
SPELL_STOLEN;Matanya;;Spellsteal;enemy;PARTY;*source *event *spell *target;
The output would be "Matanya Spellsteal Spellsteal Lord Jaraxxus".

I asked the author if there was a way to print the spell link in chat from the addon, and he replied that he didn't know, because he doesn't use the addon much himself, but that he would look into it further.

Edit edit:
I found this http://wow.curseforge.com/addons/zxw/ which is out of date and abandoned. Maybe I could get it to work, if it doesn't, and edit something to make it announce in party chat?

Edit edit edit:
The addon works perfectly fine, as far as I can tell [tested by dueling a priest and having them buff themselves repeatedly. To my knowledge it is fine.]
I cast spellsteal on someone 4 times, get 4 buffs and it says:

07:03:42: You stole [Prayer of Fortitude]
07:03:49: You stole [Prayer of Spirit]
07:03:51: You stole [Power Word: Shield]
07:03:53: You stole [Arcane Brilliance]

Last edited by ElphieRAWR : 10-22-09 at 05:29 AM.
  Reply With Quote
10-22-09, 05:11 AM   #4
Xrystal
nUI Maintainer
 
Xrystal's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Feb 2006
Posts: 5,955
From a brief look at that first addon you were talking about it looks like they are using the data purely from the combat log without converting it into anything else where possible.

It sounds like they weren't aware of this command but point them to this page http://www.wowwiki.com/API_GetSpellLink which, may return nil for those people that do not know the spell ( that happens with items as well for some commands ). So, he could possibly get it to grab a link version and if the link is not nil then display that instead of the name on its own. That way you as a mage will see the link whereas others may or may not see the link but will definitely see the name.

Their code is a bit haphazard for me to see the ideal place to put it but hopefully they will know that themselves.
__________________


Characters:
Gwynedda - 70 - Demon Warlock
Galaviel - 65 - Resto Druid
Gamaliel - 61 - Disc Priest
Gwynytha - 60 - Survival Hunter
Lienae - 60 - Resto Shaman
Plus several others below level 60

Info Panel IDs : http://www.wowinterface.com/forums/s...818#post136818
  Reply With Quote
10-22-09, 09:41 AM   #5
nightcracker
A Molten Giant
 
nightcracker's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2009
Posts: 716
This one should work, but I didn't test it. Credit to the addon you linked, I just changed it so that it won't work with links, but with regular names, and cleaned up the code a little bit for maximum efficiency.
Code:
local f = CreateFrame("Frame")
f:SetScript("OnEvent", function(self, event, ...)
    local s = select(1,GetSpellInfo(select(12, ...)))
    local d = date("%H:%M:%S")
    if (select(4, ...)==UnitName("player")) and (select(2,UnitClass("player"))=="MAGE") then
        if (event=="SPELL_STOLEN") then
            print(d..": You stole "..s..".")
        end
        if (event=="SPELL_DISPEL_FAILED") then
            print(d..": You attempted to steal "..s.." but it got resisted.")
        end
    end
end)
f:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
  Reply With Quote
10-22-09, 02:25 PM   #6
ElphieRAWR
A Deviate Faerie Dragon
 
ElphieRAWR's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2009
Posts: 10
Originally Posted by nightcracker View Post
This one should work, but I didn't test it. Credit to the addon you linked, I just changed it so that it won't work with links, but with regular names, and cleaned up the code a little bit for maximum efficiency.
Code:
local f = CreateFrame("Frame")
f:SetScript("OnEvent", function(self, event, ...)
    local s = select(1,GetSpellInfo(select(12, ...)))
    local d = date("%H:%M:%S")
    if (select(4, ...)==UnitName("player")) and (select(2,UnitClass("player"))=="MAGE") then
        if (event=="SPELL_STOLEN") then
            print(d..": You stole "..s..".")
        end
        if (event=="SPELL_DISPEL_FAILED") then
            print(d..": You attempted to steal "..s.." but it got resisted.")
        end
    end
end)
f:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")

How do I get
print(d..": You stole "..s..".")
to print to party chat? I've been attempting to edit the original code (http://pastebin.ca/1638033) so that Line 22 prints to party, but after a couple hours of googling, I still have no idea what the PARTY version of DEFAULT_CHAT_FRAME would be...

I just changed it so that it won't work with links,
Does this mean that it won't print the link of the stolen buff? Because erm... That's what I want it to do.

The addon itself works perfectly fine as is, that I've been able to see, except that I want the "SPELL_STOLEN" in party chat. (Though not the SPELL_DISPEL_FAILED)




EDIT:

Thank you all for leading me in the right direction. The thing I was looking for is SendChatMessage(<message>, "PARTY")

Last edited by ElphieRAWR : 10-22-09 at 02:50 PM.
  Reply With Quote
10-22-09, 02:56 PM   #7
Shadowlycaon
A Defias Bandit
AddOn Author - Click to view addons
Join Date: Sep 2009
Posts: 2
instead of print, use this:

SendChatMessage( MESSAGE, CHANNEL, nil, nil)

where MESSAGE will be somethign like ""..d.." stole "..s.."" and CHANNEL will be PARTY or SAY or RAID etc. for specific channels such as trade it's a little different though.
  Reply With Quote
10-22-09, 04:10 PM   #8
Shadowlycaon
A Defias Bandit
AddOn Author - Click to view addons
Join Date: Sep 2009
Posts: 2
It'll look like this:

Code:
local f = CreateFrame("Frame")
f:SetScript("OnEvent", function(self, event, ...)
    local s = select(1,GetSpellInfo(select(12, ...)))
    local d = date("%H:%M:%S")
    if (select(4, ...)==UnitName("player")) and (select(2,UnitClass("player"))=="MAGE") then
        if (event=="SPELL_STOLEN") then
            SendChatMessage("d..": You stole "..s..".",PARTY,nil,nil)
        end
        if (event=="SPELL_DISPEL_FAILED") then
           SendChatMessage("d..": You attempted to steal "..s.." but it got resisted.",PARTY,nil,nil)
        end
    end
end)
f:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
  Reply With Quote
10-22-09, 05:26 PM   #9
ElphieRAWR
A Deviate Faerie Dragon
 
ElphieRAWR's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2009
Posts: 10
ALREADY DONE


http://www.wowinterface.com/download...artyLinks.html
  Reply With Quote

WoWInterface » AddOns, Compilations, Macros » AddOn Search/Requests » Looking For: Spellsteal addon.


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off