Log in

View Full Version : Update: Parrot scrolling text + party dmg & throttling!



Ughmahedhurtz
07-29-2009, 07:14 AM
NOTE: This thread is based on an outdated codebase for the parrot mod. See this thread (http://www.dual-boxing.com/showthread.php?p=297473) for working with newer versions as of 10/4/2010. ;) -- Ugh

Many of us have used the SCTD hacks and a workaround within Mik's Scrolling Battle Text to display party damage. Unfortunately, neither of these two options has my all-time favorite feature: throttling! Mik's has throttling but it is restricted to your own abilities and, as much of an awesome LUA hacker as I am (oops, don't trip on that, it smells), I couldn't find all the various spots in there where he checks for unitIDs and shit to get it working properly. Sucks, but them's the breaks.

So, remembering that Parrot had throttling and similar functionality to Mik's, I figured I'd take a stab at hacking the 3.1-compatible version to work for party damage, and I managed to get it working! :) See below for screenshot examples and mod instructions.

No throttling:
http://farm4.static.flickr.com/3561/3768785428_7a3fd53905.jpg

With throttling:
http://farm3.static.flickr.com/2667/3767985125_a91d8ab22e_o.jpg


So, to get it working:
grab the Parrot addon from Curse. ('http://wow.curse.com/downloads/wow-addons/details/parrot.aspx') Once you get it installed, go into your wow\interface\addons\parrot\Data\ directory, and open the file "CombatEvents.lua" in a text editor. Go down to about line 85. Change this:

local GUARDIAN_FLAGS = bit_bor(
COMBATLOG_OBJECT_AFFILIATION_MINE,
COMBATLOG_OBJECT_CONTROL_PLAYER,
COMBATLOG_OBJECT_TYPE_GUARDIAN
)

to this:

local GUARDIAN_FLAGS = bit_bor(
COMBATLOG_OBJECT_AFFILIATION_MINE,
COMBATLOG_OBJECT_AFFILIATION_PARTY,
COMBATLOG_OBJECT_CONTROL_PLAYER,
COMBATLOG_OBJECT_TYPE_GUARDIAN
)
Next, go down to about line 2272 and change this (in the "Outgoing" section for "Melee Damage"):

if srcGUID ~= UnitGUID("player") then
return nil
end

to this:

if srcGUID ~= UnitGUID("player") and not checkFlags(srcFlags, COMBATLOG_OBJECT_AFFILIATION_PARTY) then
return nil
else
srcGUID = UnitGUID("player")
end
Finally, skip down to line 2566 or so and make a similar change as above. Change this (in the "Outgoing" section for "Skill Damage"):

if (srcGUID ~= UnitGUID("player") or dstGUID == UnitGUID("player") then
return nil
end

to this:

if (srcGUID ~= UnitGUID("player") and not checkFlags(srcFlags, COMBATLOG_OBJECT_AFFILIATION_PARTY)) or dstGUID == UnitGUID("player") then
return nil
else
srcGUID = UnitGUID("player")
end
Ditto for DoT damage (outgoing) which is down about line 2650ish. Change:

eventType = "SPELL_PERIODIC_DAMAGE",
func = function( srcGUID, srcName, srcFlags, dstGUID, dstName, dstFlags, spellId, spellName, spellSchool, amount, overkill, school, resisted, blocked, absorbed, critical, glancing, crushing )
if srcGUID ~= UnitGUID("player") then
return nil
end

to:

eventType = "SPELL_PERIODIC_DAMAGE",
func = function( srcGUID, srcName, srcFlags, dstGUID, dstName, dstFlags, spellId, spellName, spellSchool, amount, overkill, school, resisted, blocked, absorbed, critical, glancing, crushing )
if (srcGUID ~= UnitGUID("player") and not checkFlags(srcFlags, COMBATLOG_OBJECT_AFFILIATION_PARTY)) then
return nil
else
srcGUID = UnitGUID("player")
end

In the last two examples, change the string "UkobachTelaneAfreetPaholainenZipplesPopebelexus" to a big string with all your toons names in it. Example: if your party is Xzin, Azin, Bzin, Czin and Dzin, change that string to "XzinAzinBzinCzinDzin" in both spots and you're done!

You can adjust font sizes and scroll animation patterns and all that in the normal /parrot UI.

Enjoy! And let me know if I typo'd something in the cut&paste.

[edit] I changed the check from a string match to a flag check. Let me know if you have any wierdness with it. ;)

Cheers,
Ugh

defactoman
07-29-2009, 11:42 AM
That, is cool..ill give it a shot when i get home

Dorffo
07-29-2009, 01:32 PM
nice work sir! gonna have to play with this when I get off work tonight.

Flekkie
07-29-2009, 03:47 PM
I like the sound of throttling, but have very little experience with it.

Does having mixed classes defeat the point of it, or might I still find it useful? Thanks.

Ughmahedhurtz
07-29-2009, 05:24 PM
I like the sound of throttling, but have very little experience with it.

Does having mixed classes defeat the point of it, or might I still find it useful? Thanks.You'll still find it useful for reducing clutter from things like AoE. In a multi-class group, the typical things it will condense:
AoE multiple hits Melee damage (white hits) Rolling HoTs/DoTs (will still be separated by skill type)
Fast-tick DoTs (such as Mind Flay, Mind Sear, etc.)
Incoming healsIt'll definitely be a lot less dramatic on a multi-class team but it'll still help in reducing clutter, which is never a bad thing. :D

Pocalypse
07-29-2009, 05:38 PM
So does this addon replace both Scrolling Combat Text and Scrolling Combat Text Damage?

Ughmahedhurtz
07-29-2009, 06:05 PM
So does this addon replace both Scrolling Combat Text and Scrolling Combat Text Damage?Yes. It has both incoming, outgoing and events/cooldowns/etc.

Greythan
07-29-2009, 06:12 PM
I use MIK's to track outgoing damage from my team. I'm fine without throttling on that one. I actually prefer it to see if the numbers are looking higher/lower than expected.

What else do you get from scrolling other "stuff"? I simply can't watch it close enough to imagine getting very serious about it. Just curious to see if I'm missing something.

Ughmahedhurtz
07-29-2009, 06:30 PM
I use MIK's to track outgoing damage from my team. I'm fine without throttling on that one. I actually prefer it to see if the numbers are looking higher/lower than expected.

What else do you get from scrolling other "stuff"? I simply can't watch it close enough to imagine getting very serious about it. Just curious to see if I'm missing something.Parrot is very similar to Mik's, just has fewer features. Mik's seems more polished and I would liked to have used it, but without being able to throttle damage, it doesn't get me my primary feature. ;) If you prefer non-throttled output, then yeah, Mik's is probably the most polished and feature-rich combat text mod out there.

Solon
07-29-2009, 09:07 PM
Mik's has throttling but it is restricted to your own abilities and, as much of an awesome LUA hacker as I am (oops, don't trip on that, it smells), I couldn't find all the various spots in there where he checks for unitIDs and shit to get it working properly.
That reminds me of something old school:
"Jill, here's a lock pick. It might be handy if you, the master of unlocking, take it with you."
:thumbsup: