ScrollingCombatText
Please read and use the main SCT site for news, bugs, and feature requests. I don't read these forums hardly ever.
Be sure to check out SCTD 2.0 if you want SCT to show your damage.
Also check out my simple but enhanced combat log EavesDrop
What is it?
A fairly simple but very configurable mod that adds damage, heals, and events (dodge, parry, windfury, etc...) as scrolling text above you character model, much like what already happens above your target. This makes it so you do not have to watch (or use) your regular combat chat window and gives it a "Final Fantasy" feel.
Why use 5.0 over WoW's new built in Floating Combat Text ? - SCT 5.0 is a complete rewrite of the mod from the ground up. Its is now based in the Ace2 framework and rewitten with more performance in mind. On top of that, it offers features far above and beyond what WoW's FCT can do. FCT is great if you just need a lightweight SCT with limited options, but using SCT's new Lightmode can get you the same performance with almost all of SCT's normal features.
What can it do?
- Damage messages
- Heals (incoming and outgoing) and Overhealing (with healer ID's), with filtering for small heals.
- Spell Damage/Resists and Damage Type
- All "Miss" events (dodge, block, immune, etc...)
- Custom Colors for all text events
- Config file to setup custom events (self and target), capture data, and display it.
- Debuff/Buff gain and loss Messages
- Low Health and Mana Warnings with values, and optional sounds
- Rage/Mana/Energy Gains
- Enter and Leave Combat Messages
- Rogue Combo Points, 5 CP Alert Message
- Class Skill alerts (Execute, Overpower, CounterAttack, etc...)
- Honor, Reputation, Skill Gain
- Eight Animation Types (Verticle, Rainbow, Horizontal, Angled Down, Angled Up, Sprinkler, Curved HUD, Angled HUD)
- Four Fonts
- Two seperate Animation frames, each with their own settings. Assign any Event to either.
- Ability to flag any event as critical or as a text messages
- Sliders for text size, opacity, animation speed, movement speed, and on screen placement (with custom editbox)
- Lightmode, for when you care most about performance (at the loss of a few features).
- Now Based in Ace2.
- CTMod, MyAddons, Cosmos, Cosmos2 support
- Settings saved per character by default, but supports all Ace2 Profiles
- Load/Delete settings from another character. Load built in Profiles.
- Localized to work in almost all WoW clients.
How do I use it?
First unzip it into your interface\addons directory. For more info on installing, please read install.txt. Now just run WoW and once logged in, type /sctmenu to get the options screen.
SCT_EVENT_CONFIG.LUA is used to setup custom message events. Please open up the file (notepad, etc...) and read the opening section to understand how to use it all. PLEASE NOTE - THIS IS THE MOST IMPORTANT FILE IN SCT. IF YOU DON'T READ IT AND USE IT, THEN YOU ARE MISSING OUT ON A TON OF WHAT SCT HAS TO OFFER IN CUSTOMIZATION
/sctdisplay is used to create your own custom messages. Useage: /sctdisplay 'message' red(0-10) green(0-10) blue(0-10) Example: /sctdisplay 'Heal Me' 10 0 0 - This will display 'Heal Me' in bright red
FAQ
How do I get My Crits or My Hits to show? I would suggest you get SCTD: http://www.wowinterface.com/downloads/fileinfo.php?id=4913
My custom event doesn't work. What's wrong? - Make sure you have the text exactly right, punctuation and capitalization matters. If you need help learning how to capture data, please see the examples or try this site http://lua-users.org/wiki/PatternsTutorial. If its still not working, please read about SCT_Event_Debug and SCT_Event_List in the bottom half of SCT_EVENT_CONFIG.LUA to learn how to add almost any chat event to SCT's search capabilities
How do I change the text for parry, block, etc...? - open up the localiztions.lua file and look for the event you want to change. Then change the text to whatever you like. As of 4.1, you may also now add a custom event for these. As of 5.0 You will get notifications automatically for event specfic skills like Overpower, CounterAttack, etc...
How do I get get text to scroll? I only see numbers! - Make sure the "Show Events as Message" option is unchecked. This is only if you want events to appear as static text (not scrolling/animated)
I don't understand what the 2 frames are for! - Each frame lets you set different features. So you can set frame one using Sprinker animation and Default font, while frame 2 can be using Veritcle animation and Adventure font. You can then assign each event to a specfic frame using the radio buttons next to the events.
There's too many options. Help someone new see how things work! - Try out some of the new built in profiles. While on the options screen, click the "Profiles" button. At the top of the window will be a listing of some default profiles to try out. Maybe you'll fine one you like or it will spark some ideas for you to try.
How do I change the fonts? - You can now select from four fonts on the options page. You can also change the font of message and apply the font to the in game damage font used for your damage (requires relog)
I don't like friendly nameplates on. How do I make my heals appear over who I heal? - Friendly nameplates have to be on in order to show your heals. SCT will turn them on if you turn on the option, but you must manually turn them off if you don't like it (see Target keybindings).
I don't like the new spell icons, how do I turn them off? - There is an option to turn them off under the animation tab.
Support
Please post all errors and suggestions on http://grayhoof.wowinterface.com/ using the provided forms. Please post all questions and comments on the offical SCT thread.
I love this mod! Is there any way it can display a plain health regen, like when you're sitting around?
I haven't tested it yet but does something like: /sctdisplay 'Heal Me' 10 0 0 Show up for other players to see?
Wish I could rate your addon again, cause it deserves another 5star... I will use this thing regardless of bugs =)
Thanks Grayhoof!
Right now it seems that you can see through the text too easily, is there a way to either make the font more visible or just make it more opaque? This option would be great.
Oops, I'll track that bug down and get it fixed for next release. I tested it with non-mana using classes, but not with a shapeshifted druid =)
When playing druid, when I shapeshift and go to rage bar. SCT spams Low Mana when it's actually not, cause the MP bar goes away.
Now would it be possible to do everything the same for your party members? Because as a healer that would help heaps. Mostly I would just need the damage they take and how much i heal them for.
ah okay that explains it. Maybe you could add options to modify the default overhead info, cause the fonts on them are way to big in my opinion but theres no way to change it.
The default is showing the damage you to do them, you missing them, them parrying you, etc...
SCT does the opposite, it shows the damage they hit you for, them missing you, you parrying them, etc...
how do I turn of the default overhead battle info? I get duplicate damage/miss info now cause I cant find where to turn of the default (or is that some mod im using that im unaware of?) overhead info.
Happened upon this error while fighting Centaurs in Desolace.
String: Interface\AddOns\SCT\sct.lua Line: 302 Count: 1 Error: attempt to concatenate global `num2' (a nil value)
If you'd like to make an addon to add a button to it for cosmos, knock yourself out. I don't use cosmos so I wouldn't have any way to test it. I had planed on adding a button for it myself at some time, attached to the chat or combat chat window, but just haven't gotten around to it.
Greetings Grayhoof
Do you think you might be willing to add a Cosmos button for those that use it with Cosmos? People that do not will not notice any diference, but it would be very convenient.
Cosmos Button:
Click on the C by the minimap. Census, Cosmos Configuration, Notepad and WantAds all have Cosmos Buttons.
if ( Cosmos_RegisterButton ) then Cosmos_RegisterButton(SCT_BUTTON_TEXT, SCT_BUTTON_SUBTEXT, SCT_BUTTON_TIP, "Interface\\Icons\\Ability_Warrior_Riposte", sct_showMenu); end
I believe this should be enough. If you're not interested in adding one, I would like permission to publish a SCT_CosmosButton AddOn that requires SCT and adds the button =)
Thanks IceShadow. I *think* I found where the problem is and have the fix for it. Basically it looks like the PVP damage chat events happen for any and all damage caused by someone of the other alliance, or someone in a duel. Its not just the damage they do to you, but to anyone. So if/when someone blocked their damage, I was looking for the block amount incorrectly. I'm now trying to filter out everything that doesn't say "hits you", so hopefully that will fix at least that error. Will be in the next release, probably this weekend.
I just got this error today. It happened... actually idk how it happened. I wasn't in a fight, and neither was my friend and all of a sudden it said "Blocked! (##)" above my head. Then the error popped up, this actually happened just after combat ended.. few seconds.
http://www.geocities.com/lceshadow2/sct_error.jpg
Edit: voted 5star addon ;)
This is definitely an addon i was searching for - Looks nice. I'd like to know if u plan on making your mod compatible to us guys over the great sea. I was just wondering that there was no statement about the german localisation Tenvan wrote about on 02/05/2005.
Thanks for the update Geryhoof Hope this will work :)
Rowne, please try 2.02 and see what happens for you. I tested it as best I could with 5 different characters, but you'll be the ultimate test =)
As near as I can tell, SCT_GotName is never being used for anything. You're setting it to 0 and 1, but never using it as a conditional anywhere. Is the version you linked to not the most recent? I do understand what you are trying to do by not returning nil and running it through the PLAYER_ENTERING_WORLD event, but again when/if they fix the current UI bug, the UNIT_NAME_UPDATE event will always fire and eventually get the name correct.
I do understand what you are saying, that for some of your characters the UNIT_NAME_UPDATE never fires with a correct character name and thus the init code never gets run. What I am saying is that I think the only reason this is happening is because one of your other installed mods is Unregistering the UNIT_NAME_UPDATE event, which causes all other mods not to get the event. I know your code is preventing SCT_Get from ever returning nil, but without the UI bug, SCT_Get would also never return nil because the config would always be loaded as soon as the name is correct =)
I do appreciate you looking at this and helping me look into it. I'm not trying to "prove" the bug doesn't exist, I'm just trying to show why I think you are getting it =) I think I may just be able to register the PLAYER_ENTERING_WORLD, add it to the if init statement (like what you did) and that may solve everything.
Could you try adding this to my original code under the register events.: this:RegisterEvent("PLAYER_ENTERING_WORLD");
And then set the if event loop to what you have now: if ( event == "UNIT_NAME_UPDATE" and arg1 == "player" or event == "PLAYER_ENTERING_WORLD" ) then
And then see if you still get the error with the character that usually gets it after a ReloadUI? I have read that PLAYER_ENTERING_WORLD is 100% reliable for getting the player name, but only for a ReloadUI, so this may fix it another way. Then again, if another mod is also Unregistering PLAYER_ENTERING_WORLD its back to the same bug =)
Edit: Something else to try and track this down. Could you add this to my original code right after you enter the SCT_OnEvent function:
if( DEFAULT_CHAT_FRAME ) then DEFAULT_CHAT_FRAME:AddMessage(event); end
And then try the ReloadUI on your character that gets the bug? Then you can see if the UNIT_NAME_UPDATE is ever actually getting triggered. Of course you wouldn't want to leave this there, just for debugging purposes to try and track down when/if each event is getting fired.
I'm only asking you to do this because I don't have a character that gets the bug =)
GrayHoof, I never said it would cause an infinite loop with your way. What I meant was that it should loop until it has the name because of the bug and the sanitory way to do it would be that way. See, all AddOns should loop until they have the name. That's what my fix does, it loops through the OnEvent function until a name is returned and when it is, it stops looping. The loops is only fired when SCT tries to fetch an option.
I've been using this fix since about six hours before I fixed it. Pre-fix, with the characters this bug affected (and only those characters), SCT broke. Post-fix, every time I utilized ReloadUI, it worked. It still works and it continues to work. George, please try my fix and confirm this if you're one of the ones this bug affects.
This is the problem with this bug because there are none that believe it exists unless it affects them and that fix is the only way to stop the bug from happening because only with a handful of characters does this happen.
There's nothing wrong with your original GrayHoof other than after ReloadUI, it won't have the name anymore with some characters. See, the name isn't always 'there' after ReloadUI and we need to make doubly sure that the AddOn can obtain it.
I don't know how to make this make sense anymore really but that fix does work and it's the only thing that will work.
---
Oh and just to stress, this file ...
http://mastaile.mine.nu/SCT.lua
... wasn't posted to point out an area where a bug exists but to pose a fix that I have been using that works. I use it in my own AddOn too to solve the same issue.
Look below function SCT_Get(option) and you'll see what I've done. Now you run 'if SCTPlayer is not nil then option if it is nil then keep it as nil' and that's the problem. My fix changes that to 'if SCTPlayer is not nil then run option if it is nil then loop through OnEvent("PLAYER_ENTERING_WORLD") until name is achieved and halt loop when it is'.
All the issues are caused by tossing nil back to the client if the value already is nil. It causes the old 'tried to compare value with nil' when one does anything with SCT. Whereas this doesn't return nil ever.
---
Last edit I promise but just to attempt to add a little more sense to this, I'll note something else. If one tries setting SCT_GotName to 1 at the start instead of 0 at the start (so the whole GotName loop never fires), then it'll still return nil because SCT_Player is nil after ReloadUI. I've tried this and I get exactly the same bug as if I hadn't edited your file at all.
Yet if SCT_GotName is changed to 0, when it gets to that point, if SCT_Player is nil then it notes that GotName is also 0. Since GotName is 0 it jumps through the OnEvent hoop and if SCT_Player is still nil there it waits for option to be called again and when it is, it jumps through the OnEvent hoop again. This fetches the name without fail and as soon as the name is successfully fetched, GotName is set to 1 for that session so it doesn't try to run through OnEvent again.
Thusly, SCT_Player never, under any circumstances, returns nil.
So the Fix of Rowne wont work?