• World of Warcraft Addons
  • World of Warcraft
  • Average Rating:

  • Your Rating

  • Share
  • Report Abuse

ThatJustHappened

  Download the Curse Client

Project Updated:
Files Updated: Thu, Jul 2 2009
Supports Game Version: 3.1.0
Category: Chat & Communication, Buffs & Debuffs, Boss Encounters, and Combat
Tags:

[Edit Tags]

Project Manager: belleboom
Additional Authors: No additional authors
Current Version: ThatJustHappened 3.0.4
License: All Rights Reserved
Avg Daily DL (last 30 days): 17
Downloads Total: 5,056
Favorites: 20
Comments: 58
  • About ThatJustHappened
  •  

This mod is an event tracker that will watch for a given event and pop up a warning in chat or on screen. It is similar to SCT or EavesDrop, but lets you spam customized events to the channel of your choice. If you want something to spam *you* when events happen, feel free to use one of those other mods. If you want to be able to set up warnings for any combat event and announce it pretty much anywhere, this mod's for you.

To get started, first set up some rules to monitor the events you want to watch. There are a lot of ways to choose what you want to see, including the event's source, the event's target, the watched-for spellname, the affiliation or category of events you want to watch, and the channel where the warning is sent. To see all of any of these things, just leave it blank. You can also use partial event/source/target/spell names to cast a wider net (ex: AURA), or full names to limit triggers (ex: SPELL_AURA_REMOVED). (See slash commands and examples below.) Rules are additive, so using a rule showing all "self" events with one showing all "raid" events will result in two lines per event. Rules and enable settings are saved across sessions by character (initial default is "off" but it will stay on until you turn it off).

For example, set the "affiliation" dropdown box to "target" and the output channel to "SELF" (leave the other rule options blank). Hit the "Add Rule" button; you'll see your new rule printed in the chat window. Toggle the bottom-left button from "Disabled" to "*Enabled*". Now whenever you target a player or a mob, their combat events will be output to your chat window.

SLASH COMMANDS

  • /tjh or /tjh gui for GUI
  • /tjh help for this list
  • /tjh on (to activate, default is on)
  • /tjh off (to deactivate)

/tjh rule EVENT_NAME;SourceName;TargetName;SpellName;Affiliation;Channel;Spam;Delay (leave blank to see all of a type, ex: /tjh rule SUMMON;;;;enemy;;; channel defaults to SELF)

  • /tjh list (to list current rules)
  • /tjh delete (to delete all rules)
  • /tjh delete;3 (to delete the third rule)
  • /tjh reset (deletes all rules, resets output to SELF)


Valid Source/Target Names
Player names, NPC names, and object names as seen in the in-game tooltips. Also accepts the active target or focus at that time.

Channel Options
Channel settings: SELF/WARN/PARTY/RAID/RAID_WARNING/RW/RS/YELL/PlayerName/ChannelName/auto/EMOTE/PLAYSOUND/*source/*target (to set output channel to SELF, RAID, whisper a named player, whisper the event source or target, or use a custom channel, etc.) SELF is the default channel. Enabling the "Auto-Select Channel" checkbox sets the rule channel to "auto"; rules with "auto" as the channel will be output to self, party, or raid chat depending on your group status. Dynamic source/target options default to SELF if no usable whisper target can be found.

Only you will be able to hear the sound files play. Add "PLAYSOUND" to the channel box and a soundfile pathname to the output box. Works for pathnames in the format of "Sound\Music\GlueScreenMusic\wow_main_theme.mp3" but not "Sound\\Music\\GlueScreenMusic\\wow_main_theme.mp3"; will play mp3 and wav files on event but cannot be stopped mid-playback, so choose wisely (see http://www.wowwiki.com/API_PlaySoundFile for sound file options)

Example:

  • /tjh rule SPELL_AURA_APPLIED;Belleboom;;Arcane Intellect;;PLAYSOUND;Sound\Creature\NPCGhoul\NPCGhoulVendor04.wav;



Channel settings are on a "by rule" basis; each event is output to the specified channel. For example the first rule spams RAID when anyone takes Spout damage, the second alters a custom mage channel when a stealable buff is applied:

  • /tjh rule ;Lurker;;Spout;;RAID;;
  • /tjh rule AURA_APPLIED;Greyheart Nether-Mage;;Arcane Destruction;;GDMAGES;;


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!;


Affiliation
The last rule option can be used to filter out all events except those that affect either self/party/raid/friend/enemy/target/focus. So if you want to see every time a buff expires on your current focus (whatever that is), use "/tjh rule SPELL_AURA_REMOVED;;;;focus;;;" (Note: this would also trigger if your focus removed a buff from another mob.)

. Examples

  • Basic Rule Structure: event;source;target;spell;affiliation;channel;spam;delay

To track all interrupts on a specific target and splash it up on your screen:

  • /tjh rule INTERRUPT;;TargetNameHere;;;WARN;;

To announce all kills made by party members and output to party chat:

  • /tjh rule PARTY_KILL;;;;;PARTY;;

To alert yourself to all buff-related events on your current target:

  • /tjh rule AURA;;;;target;SELF;;

To announce custom spam in raid chat when your target summons a Tremor Totem:

  • /tjh rule SUMMON;target;Tremor Totem;;;RAID;Totem up!;

To track all events on a player done by your target, and whisper them to that player:

  • /tjh rule ;PlayerName;;;target;PlayerName;;

Announces in the custom channel "gdmages" when Greyheart Nether-Mage gains any of the three spell-stealable Destruction buffs:

  • /tjh rule AURA_APPLIED;Greyheart Nether-Mage;;Destruction;;GDMAGES;Steal that spell!;

Spams raid warning when Greyheart Tidecaller summons a water elemental:

  • /tjh rule SUMMON;Greyheart Tidecaller;;Water Elemental Totem;;RW;;

Tracks expiring weapon oil on my weapon and alerts me with a custom message:

  • /tjh rule ENCHANT_REMOVED;;Belleboom;;Oil;;SELF;Time for an oil change.;

Tracks all expiring buffs on your focus and alerts me via splash screen:

  • /tjh rule SPELL_AURA_REMOVED;;;;focus;WARN;;

To see all events (warning, lots of spam), output to the default channel "SELF":

  • /tjh rule ;;;;;;;

Announces in raid chat when anyone is hit by The Lurker Below's Spout damage:

  • /tjh rule ;Lurker;;Spout;;RAID;;



To Check the CombatLog for Event Names
If you want to find the name of an unknown event, turn on combat logging in game by typing:

  • /combatlog

Go out and do whatever it is you want to investigate, log out, and check the WoWCombatLog.txt file in your WoW/Logs folder. It's complex, but will look something like this:

  • 5/15 15:05:57.383, SPELL_INTERRUPT,0x000000000040B0C7,"Belleboom",0x511,0xF1300048121297E0,"Shienor Sorcerer",0x10a48,2139,"Counterspell",0x40,26098,"Lightning Bolt",8

What you are looking for is the second block in all caps, in this case "SPELL_INTERRUPT". In this example, "Belleboom" is the source, "Shienor Sorcerer" is the target, and "Counterspell" is the spell name.

Troubleshooting
If nothing is being announced:

  • open the GUI using "/tjh" and click the "Add Rule" button (if nothing is specified it will watch everything);
  • make sure the toggle button at the bottom left reads "*Enabled*" (click on it if it says "Disabled")
  • do something that should trigger an event, such as spell casting, feeding your pet, or taking damage

See the TJH_ReadMe.txt file for more details.

  • Downloads (5)
  •  
File Name Release Type Game Version Downloads Date
Addon Curse.com Beta 2.3.3 0 9/29/2008
  File Name Release Type Game Version Downloads Date  
  ThatJustHappened 3.0.4 Release 3.1.0 89 7/2/2009
  ThatJustHappened 3.0.3.2 Release 3.1.0 201 6/29/2009
  ThatJustHappened 3.0.3.1 Release 3.1.0 24 6/29/2009
  ThatJustHappened 3.0.3 Release 3.1.0 31 6/28/2009
  ThatJustHappened3.0.1 Release 3.0.2 2,911 10/16/2008
  • 1 page(s)
Advertisement
  • Screenshots (2)
  •  
  • Comments

Add Comment  

Add

You need to login or register to post.

Benefits of Registration

  • Interact with hundreds of thousands of other gamers on an open social network.
  • Post your stories, news, images, videos, and other content to share.
  • Create a network with your fellow gamers or join an existing one.
  • Gain reputation for everything you do.
  • Tobolaeh said 

    Is there a way to specify a spell by its ID rather then its name. I've run into a problem with sacred shield, as Blizzard has both the spell and it's proc named "Sacred Shield". However, the combat log shows them as different spell ids. Since I'd like to alert myself when my sacred shield ends to remind me to refresh, the only solution I can find is to set a delay to the the alert based of my cast. But this causes problems since my one spec it is talented to last longer then the other.

    Aside from this, I've absolutely fallen in love with this addon.

    Reply Report Permalink
  • I can see how this would be an issue, and while there isn't an easy fix I'll look into what would be necessary to recode for spell ids. Glad you're finding the mod useful:)

    Reply Report Permalink
  • sdu101 said 

    I know the combat log supports linking of the actual spell/event that is clickable and comes with a tooltip etc. Is there any way so that the spell used to trigger the rule is linkable in the text output?

    Reply Report Permalink
  • Not with this addon, as the output is all plain text for ease of coding and efficiency. If there were a lot of interest in that option I might look into it at some future date.

    Reply Report Permalink
  • Ok folks, I've put together an update with the option to add a time delay to event spam. I've been thinking about this for quite some time so I'm pleased to have finally done it. As I'm not really playing atm I haven't put this through strenuous tests in 25-mans etc., but it worked well for me under standard test conditions. Please let me know if you find any remaining issues.

    3.0.4
    -- added code to allow user to specify an optional delay in event spam (so any spam triggers X seconds after the event happens):
    . old rules in the form of "/tjh rule ;;;;;;" (six variables) should run with no delay, but the new form is now "/tjh rule ;;;;;;;" (seven) to accommodate the delay variable
    . ex of spam delay in use: "/tjh rule SPELL_AURA_APPLIED;Belleboom;;;;WARN;*event happened 5 seconds ago!;5"
    . added delay function TJH_wait
    . changed TJH_Print calls to form TJH_wait(TJH_timeDelay, TJH_Print, arg4.." begins casting "..arg10..".", TJH_Channel);
    . resized GUI to accommodate delay input test and window
    -- removed default SSC rules
    -- updated channel help spam to include new channel options (SOUND, EMOTE)
    -- updated help text to include new variable, hopefully I got it all
    -- general code cleanup and such

    Reply Report Permalink
  • Hey man, this is a great addon.

    Suggestion: create a rule for assignign raid icons. I hacked this in myself like so:

    elseif channel == "*SOURCE" then
    channel = arg4;
    if channel == "" then channel = "SELF";
    else
    success, _, icon_id = string_find(msg, "{{icon:(%d+)}}");
    if success then
    SetRaidTarget(channel, icon_id);
    else
    SendChatMessage(msg, "WHISPER", nil, channel);
    end
    end
    elseif channel == "*TARGET" then
    channel = arg7;
    if channel == "" then channel = "SELF";
    else
    success, _, icon_id = string_find(msg, "{{icon:(%d+)}}");
    if success then
    SetRaidTarget(channel, icon_id);
    else
    SendChatMessage(msg, "WHISPER", nil, channel);
    end
    end

    else
    success, _, icon_id = string_find(msg, "{{icon:(%d+)}}");
    if success then
    SetRaidTarget(channel, icon_id);
    else
    SendChatMessage(msg, "WHISPER", nil, channel);
    end
    end

    Obviously this is hacky (could use icon names instead of ids) and it only works on raid members (have to use unitids for mobs, sadly) but I think it's pretty useful

    Reply Report Permalink
  • Hi, this is an interesting idea that I'll add to my list of "future ideas to consider," thanks:)

    Reply Report Permalink
  • Oh, and I forgot. It'd be really great if you could somehow parse out pets for the different affiliations. It gets kind of spammy when my rules are reporting Mirror Images and pets being hit by Shadow Novas and Thorim's Lightning. I think the most efficient way of doing this would be to remove pets from "party" and "raid", and then just add a separate "pets" affiliation.

    If you get TOO bored, it'd also be great to be able to announce based on a debuff's stacks (like, only announce if I have 3 stacks), and it'd be great to have two additional dynamic variables: *stacks and *damage. Often when tanking, the first few stacks of something are negligible, but the next should call for a taunt or cooldown.

    Reply Report Permalink
  • Thanks for the suggestions, I'll put them on my list of things to consider when I have some time.

    Reply Report Permalink

  • Malqui inspired me to fix the last little issue with sounds. Behold! v3.0.3.2 awaits!

    3.0.3.2
    -- added "PLAY" "SOUND" and "PLAYSOUND" as valid channel option: add soundfile pathname to the output box. Works for pathnames in the format of "Sound\Music\GlueScreenMusic\wow_main_theme.mp3" but not "Sound\\Music\\GlueScreenMusic\\wow_main_theme.mp3"; will play mp3 and wav files on event but cannot be stopped mid-file, so choose wisely (see http://www.wowwiki.com/API_PlaySoundFile for sound file options)

    Example:
    /tjh rule SPELL_AURA_APPLIED;Belleboom;;Arcane Intellect;;PLAYSOUND;Sound\Creature\NPCGhoul\NPCGhoulVendor04.wav

    Reply Report Permalink
  • Malqui said 

    woooohoooo i was the cause of goodness!!!!!!

    now if i could only figure out how to make it do a emote when canting a spell

    Reply Report Permalink
  • :) Which spell are you trying to use as an emote trigger?

    Reply Report Permalink
  • Malqui said 

    Avenging wrath

    the macro i use is this
    #showtooltip
    /cast Avenging Wrath
    /me calls opon the power of the Golden Dragonflight

    the problem is, I tend to spam it when in a fight and it makes the emote spam the chat.

    Reply Report Permalink
  • What TJH rule are you using for this?

    Reply Report Permalink
  • Malqui said 

    I was trying

    /tjh rule SPELL_AURA_APPLIED;Napi;;Avenging Wrath;;EMOTE;blah blah blah
    I also tryed
    /tjh rule SPELL_AURA_APPLIED;Napi;;Avenging Wrath;;E;blah blah blah
    and
    /tjh rule SPELL_AURA_APPLIED;Napi;;Avenging Wrath;;ME;blah blah blah
    as well as each of the above with a / before Emote E and ME

    Reply Report Permalink
  • Here's what I have as example combat log info for AV:
    11/19 15:45:46.031 SPELL_AURA_APPLIED,0xF130006A651BAF1F,"Commander Jordan",0xa48,0xF130006A651BAF1F,"Commander Jordan",0xa48,50837,"Avenging Wrath",0x2,BUFF

    So, given that this is the TJH rule structure:
    /tjh rule EVENT_NAME;SourceName;TargetName;SpellName;Affiliation;Channel;Spam;Delay

    The following rule should be working:
    /tjh rule SPELL_AURA_APPLIED;Napi;;Avenging Wrath;;EMOTE;calls upon the power of the Golden Dragonflight;
    If the semi-colons get to be too much for you feel free to use the GUI, of course.

    If this doesn't work you can try a couple of things, including making an emote rule that triggers from anything (ex: "/tjh rule ;;;;;EMOTE;/dance;"), to test it, and going into your saved variables file to double-check that the rule it has on file looks as it should.

    Reply Report Permalink
  • Malqui said 

    hello, i am having problems making this rule work:
    /tjh rule SPELL_DAMAGE;Napi;;Shield of Righteousness;self;PLAYSOUND;Sound\Spells\CleaveTarget.wav
    as well as not being able to do a /e rule when casting avenging wrath.

    any assistence would be super. thanks

    (what i need for the avenging wrath is as follows: Avenging wrath casts and emote does /me calls upon the power of the Golden Dragonflight. as well as one for when it ends caying /me feels his power return to normal)

    thansk again

    Reply Report Permalink
  • Hi Malqui,
    Not sure if you saw me reply to your earlier comment, below. You should be able to adjust the Avenging Wrath rule as follows:

    SPELL_AURA_APPLIED;Napi;;Avenging Wrath;;EMOTE;calls upon the power of the Golden Dragonflight! 



    If you want a rule that triggers when your buff is removed, you could use: 

    SPELL_AURA_REMOVED;Napi;;Avenging Wrath;;EMOTE;feels his power return to normal;(

    As for the sound issue, I started playing with some coding to allow that but haven't finished it yet. It's on my list of things to do.

    Reply Report Permalink
  • I just noticed that v3.0.3 really does have my initial Profiles code in it, visible as a partially established, not at all functional tab in the GUI. Apologies to anyone who got their hopes up! I've removed that tab to avoid confusion and reposted as 3.0.3.1.

    @ Dj: more good ideas I hope to have time for... at some point;) I'll put it on the list!

    Reply Report Permalink
  • Malqui said 

    thank you so much!! it works perfectly. I also have fixed the sound issue with the help of my friends over at main tankadin.com. here is what i did

    added:
    elseif channel == "PLAYSOUND" then
    PlaySoundFile(msg);

    after:
    SendChatMessage(msg, "CHANNEL", nil, GetChannelName(channel));

    right around line 700

    Reply Report Permalink
  • Similar Addons
  •  

Average downloads per day

  1. 19,298 Deadly Boss Mods Boss Encounters, and Combat
  2. 8,269 BigWigs Bossmods Combat, and Boss Encounters
  3. 8,240 HealBot Continued Buffs & Debuffs, Unit Frames...
  4. 6,909 OmniCC Combat
  5. 6,330 Recount Combat