Quartz
Quartz is a modular approach to a casting bar addon. An overview of (hopefully most of) the modules:
*Player
The core of Quartz is lightweight implementation of a standard casting bar, with configurable size, text and icon positioning, and colors.
*Target/Focus
Implementation of target and focus casting bars in similar fashion to the player cast bar.
*Buffs
Display of target and focus buffs and debuffs as duration bars.
*Flight
Hooks into FlightMap or InFlight to display the current flight progress on your casting bar.
*Global Cooldown
Displays a tiny spark-bar to show your Global Cooldown near the cast bar. Helpful for those who'd rather not squint at their action bars to see when they can cast again.
*Interrupt
Changes the color and text of your casting bar to help show that your cast has been interrupted (and show who interrupted it).
*Latency
Displays the amount of time spent between cast send and start events, in the form of a bar at the end of your casting bar, with optional text that displays the actual duration of the lag. This helps in canceling casts when they will not actually be interrupted, especially for users with consistently high pings.
*Mirror
Shows the 'basic' timers such as breath and feign death, as well as some 'odd' ones such as party invite time, resurrect timeout, and arena game start, and a framework for injecting custom timers into the bars.
*Range
Recolors the casting bar when your cast target moves out of range mid-cast.
*Swing
Displays a swing timer for your melee weapon as well as hunter autoshot.
*Timer
Allows for creating custom timers displayed on the mirror bars.
*Tradeskill Merge
Merges multiple casts of the same tradeskill item into one big cast bar.
Use /quartz to bring up the configuration menu.
After 1½ year away from WoW, i just started a trial period. Problem is Quartz wont work for me.
In the newer versions there is no folder updates for Quartz_Buff/Quartz_Player/Quartz_Timer which means its all back to default... How can i import my old settings?
Thanks in advance
I spent a few hours today and edited the default 3.0.6 release to accurately show DoT ticks, even extra ones from haste and haste procs / raid buffs. It also updates the tick positions after spell push back.
I was wondering if the authors wanted to look at the code and integrate it with their official release. Let me know.
DeathKoilz - Medivh US
Hi, great addon!
I have been wanting a cast time indicator on the buff bars for some time.. Tonight I finally sat down and hacked it in;
This is the code I inserted, on line 955 of modules/Buff.lua
This appears to work perfectly for me, but it might break for others.. Only tested it using my shadow priest.
Cheers, Pres
http://www.wowinterface.com/downloads/info15921-GnosisCastbarsandTimers.html
Would be a great feature.
Message: Interface\AddOns\Quartz\modules\EnemyCasts.lua:180: attempt to perform arithmetic on local 'castTime' (a nil value)
Time: 05/16/11 21:41:04
Count: 407
Stack: Interface\AddOns\Quartz\modules\EnemyCasts.lua:180: in function `?'
...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:147: in function <...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:147>
[string "safecall Dispatcher[13]"]:4: in function <[string "safecall Dispatcher[13]"]:4>
[C]: ?
[string "safecall Dispatcher[13]"]:13: in function `?'
...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:92: in function `Fire'
Interface\AddOns\Ace3\AceEvent-3.0\AceEvent-3.0.lua:120: in function <Interface\AddOns\Ace3\AceEvent-3.0\AceEvent-3.0.lua:119>
Locals: self =
SetDefaultModuleLibraries = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:383
Enable = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:315
UnregisterAllEvents = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:202
EnableModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:348
modules =
}
GetModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:231
IterateEmbeds = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:458
defaultModuleLibraries =
}
SetDefaultModulePrototype = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:425
name = "Quartz3_EnemyCasts"
UpdateBars = <function> defined @Interface\AddOns\Quartz\modules\EnemyCasts.lua:209
IsEnabled = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:467
orderedModules =
}
DisableModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:366
RegisterMessage = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:118
UnregisterMessage = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:181
IsModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:238
db =
}
SetDefaultModuleState = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:403
baseName = "Quartz"
ApplySettings = <function> defined @Interface\AddOns\Quartz\modules\EnemyCasts.lua:411
SetEnabledState = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:440
CLEUHandler = <function> defined @Interface\AddOns\Quartz\modules\EnemyCasts.lua:161
enabledState = true
OnDisable = <function> defined @Interface\AddOns\Quartz\modules\EnemyCasts.lua:147
RegisterEvent = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:118
UnregisterAllMessages = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:202
OnEnable = <function> defined @Interface\AddOns\Quartz\modules\EnemyCasts.lua:126
OnInitialize = <function> defined @Interface\AddOns\Quartz\modules\EnemyCasts.lua:118
NewModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:256
IterateModules = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:453
defaultModuleState = true
SendMessage = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:87
GetName = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:300
moduleName = "EnemyCasts"
UnregisterEvent = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:181
Disable = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:330
}
e = "COMBAT_LOG_EVENT_UNFILTERED"
timestamp = 1305596512.665
event = "SPELL_CAST_START"
hideCaster = false
sGUID = "0xF130909800005AE5"
sName = "Skybreaker Luminary"
sFlags = 2632
dGUID = "0x0000000000000000"
dName = nil
dFlags = -2147483648
spellId = -2147483648
spellName = 69970
spellSchool = "Lightning Bolt"
_ = nil
_ = nil
text
Time: Wed May 11 22:40:01 2011
Count: 17
Stack: ...Tom\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:147: in function <...Tom\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:147>
[string "safecall Dispatcher[13]"]:4: in function <[string "safecall Dispatcher[13]"]:4>
[C]: ?
[string "safecall Dispatcher[13]"]:13: in function `?'
...Tom\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:92: in function `Fire'
...ace\AddOns\TomTom\libs\AceEvent-3.0\AceEvent-3.0.lua:120: in function <...ace\AddOns\TomTom\libs\AceEvent-3.0\AceEvent-3.0.lua:119>
Locals: <none>
"AceTimer-3.0: Warning: The addon/module 'MoveAdj' has 791 live timers. Surely that's not intended?"
This and titan panel where the only addons using acetimer3.0 but I couldn't find anything with MoveAdj in the files.
Have you considered adding a swing bar for enemy attacks? It doesn't have to be anything fancy or complicated since parry haste has been removed for pretty much all bosses but such a function would be invaluable for (DK) tanks.
I know there is a macro to show the target's attack speed (/script mainSpeed, offSpeed = UnitAttackSpeed("target"); DEFAULT_CHAT_FRAME:AddMessage("Main Hand: "..mainSpeed); DEFAULT_CHAT_FRAME:AddMessage("Off-Hand: "..offSpeed);) and off hand swings don't really matter much for this and can be ignored IMO.
Thanks for your time!
Is there a Quartz module or feature aimed at helping the player always get their next cast fired off within the 0.5 second next cast buffer? I'm thinking something similar to the red/colored portion of the cast bar used to indicate latency. I'd be interested in this functionality both for the main player cast bar as well as the GCD spark.
I know the exact time is already displayed, but that's not quite as easy to use as a big colored bar. I also know many players (including me) have a rhythm that probably already works most of the time, but I do feel like I miss the buffer every once in a while, particularly during haste procs where I'm casting a string of instants.