Quantcast
Download
(131 Kb)
Download
Updated: 06-11-19 03:28 PM
Pictures
File Info
Compatibility:
WoW Classic (1.13.2)
Updated:06-11-19 03:28 PM
Created:05-20-19 06:41 AM
Downloads:3,444
Favorites:14
MD5:

ClassicCastbars

Version: 1.0.0b-next4
by: wardz [More]

Lightweight addon that adds castingbars to the target frame and nameplates in Classic World of Warcraft.
Timers may not always be 100% accurate due to API limitations.


Options
Castbars have configurable size, positioning textures and more.
Type `/castbar` or go to `Escape -> Interface Options -> AddOns -> ClassicCastbars` to open options.


Contributing

- Help translate.
- Github

v1.0.0b-next.4:
- Fix incorrect cast times for certain NPC casted abilities that shares name with player abilities.
- Minor update to localizations.


v1.0.0b-next.3:
- Fix castbar not being stopped on crowd controls.
- Fix castbar timer & spark not always being updated while in test mode.
- Fix target anchor not working with Aftermathh & Luna unit frames.
- Add missing RU translations (Thanks Hubbotu)
- Add option to only show cast info without any timers.
- Pushbacks are now ignored for mobs if cast pushback option is enabled. (Most or all mobs have zero pushback).


v1.0.0b-next.2:
- Fix castbar not being stopped on interrupts. (Crowd Controls still won't stop it, I'll try to add a feature for it later)
- Reduced cast time for certain spells that have talented cast reductions.
- Added Russian translations to options. (Thanks to Hubbotu!)
- Added LibSharedMedia support, you can now change border/statusbar texture and text font in the options panel. (still WIP)
- Added option for setting font size.
- Castbar option groups are now listed in a tree view to make navigating easier.
- Reset all settings button now have a confirmation popup.


v1.0.0b-next.1:
- Fixed a typo/oversight that caused spells to always return rank 1.
- Fix addon not loading due to incorrect folder structure in previous uploaded zip file.


v1.0.0 beta:
- Channeled casts are now inversed on the castbar like on retail.
- Channeled casts should now work with non-english game clients.
- Removed slash command options, there's now a GUI for all options (type /castbars to open it)
PS: custom settings from old version will be reset on upgrade due to major changes.
- Added option to show spell rank.
- Added option to hide spell timer text.
- Added option to set castbar spell icon size.
- Added option to hide castbar borders.
- Added option to set castbar width and height.
- Added option to detect spell pushback & cast decreases. (WIP/Experimental. Default off)
- Misc minor improvements & fixes.


v1.0.0 alpha:
- Add detection for channeled casts (WIP).
- Fix castbar position and scale for nameplates.
- Castbar countdown text is now placed inside the castbar frame instead of outside.
- Target castbar is now dynamically placed based on how many auras are visible. (WIP)
- Add options for setting castbar position by XY values. Using this will turn off automatic positioning.
- Add options for toggling castbars for target frame and nameplates.
- Optimizations for cast refreshing.

v1.0.0 pre-alpha:
- initial release.
Archived Files (7)
File Name
Version
Size
Author
Date
1.0.0b-next.3
131kB
wardz
06-06-19 08:14 AM
1.0.0b-next.2
130kB
wardz
06-03-19 08:57 AM
1.0.0b-next1
106kB
wardz
05-30-19 10:58 AM
1.0.0b-next.1
108kB
wardz
05-30-19 10:52 AM
1.0.0b
108kB
wardz
05-30-19 05:31 AM
1.0.0a
7kB
wardz
05-23-19 02:14 AM
0.2
5kB
wardz
05-20-19 06:41 AM


Post A Reply Comment Options
Unread 05-30-19, 04:54 PM  
puda74
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 4
Uploads: 2
Nice Updates. Working very well with Zperl.
Report comment to moderator  
Reply With Quote
Unread 05-28-19, 05:24 AM  
wardz
A Murloc Raider
 
wardz's Avatar
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 10
Uploads: 6
Re: LUA Error

Originally Posted by jackfrost7
Getting the following error only when using zperl

Code:
Message: Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:67: attempt to compare number with nil
Time: Mon May 27 21:19:23 2019
Count: 2
Stack: Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:67: attempt to compare number with nil
Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:67: in function `AdjustTargetCastbarPosition'
Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:89: in function `StartCast'
Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:122: in function `StartAllCasts'
Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:150: in function `StoreCast'
Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:168: in function <Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:161>
(tail call): ?

Locals: self = <unnamed> {
 NAME_PLATE_UNIT_REMOVED = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:271
 StoreCast = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:135
 PLAYER_ENTERING_WORLD = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:199
 StopCast = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:107
 GetCastbarFrame = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:32
 ToggleUnitEvents = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:208
 db = <table> {
 }
 DeleteCast = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:154
 NAME_PLATE_UNIT_ADDED = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:264
 PLAYER_GUID = "Player-4618-0000ECE3"
 COMBAT_LOG_EVENT_UNFILTERED = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:161
 AdjustTargetCastbarPosition = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:47
 StartAllCasts = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:115
 0 = <userdata>
 StopAllCasts = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:127
 StartCast = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:75
 PLAYER_TARGET_CHANGED = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:254
}
castbar = <unnamed> {
 0 = <userdata>
 Border = <unnamed> {
 }
 Flash = <unnamed> {
 }
 showCastbar = true
 _data = <table> {
 }
 Icon = <unnamed> {
 }
 startChannelColor = <table> {
 }
 finishedCastColor = <table> {
 }
 nonInterruptibleColor = <table> {
 }
 Text = <unnamed> {
 }
 Timer = <unnamed> {
 }
 BorderShield = <unnamed> {
 }
 Spark = <unnamed> {
 }
 startCastColor = <table> {
 }
 flashColorSameAsStart = true
 finishedColorSameAsStart = true
 failedCastColor = <table> {
 }
}
parentFrame = XPerl_TargetportraitFrame {
 0 = <userdata>
 portrait3D = XPerl_TargetportraitFrameportrait3D {
 }
 gradient = <unnamed> {
 }
 portrait = XPerl_TargetportraitFrameportrait {
 }
}
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to compare number with nil"
Only when target is enabled, not nameplate... disabling target and enabling nameplate lets that part work (which is the part I use so I'm fine, just letting you know).

Not sure if this is on your addon or on zperl... I'm guessing zperl, but maybe you'll want to fix it anyways because people like non-blizz unit frames.

Thanks for the addon btw.
Thanks for the report. Next version should fix it but im gonna postpone uploading it until I get access to the stress test/beta servers again, incase there's any new errors.

Edit: Should be fixed now.
Last edited by wardz : 05-30-19 at 06:31 AM.
Report comment to moderator  
Reply With Quote
Unread 05-27-19, 07:37 PM  
jackfrost7
A Kobold Labourer

Forum posts: 0
File comments: 6
Uploads: 0
LUA Error

Getting the following error only when using zperl

Code:
Message: Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:67: attempt to compare number with nil
Time: Mon May 27 21:19:23 2019
Count: 2
Stack: Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:67: attempt to compare number with nil
Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:67: in function `AdjustTargetCastbarPosition'
Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:89: in function `StartCast'
Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:122: in function `StartAllCasts'
Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:150: in function `StoreCast'
Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:168: in function <Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:161>
(tail call): ?

Locals: self = <unnamed> {
 NAME_PLATE_UNIT_REMOVED = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:271
 StoreCast = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:135
 PLAYER_ENTERING_WORLD = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:199
 StopCast = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:107
 GetCastbarFrame = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:32
 ToggleUnitEvents = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:208
 db = <table> {
 }
 DeleteCast = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:154
 NAME_PLATE_UNIT_ADDED = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:264
 PLAYER_GUID = "Player-4618-0000ECE3"
 COMBAT_LOG_EVENT_UNFILTERED = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:161
 AdjustTargetCastbarPosition = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:47
 StartAllCasts = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:115
 0 = <userdata>
 StopAllCasts = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:127
 StartCast = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:75
 PLAYER_TARGET_CHANGED = <function> defined @Interface\AddOns\ClassicCastbars\ClassicCastbars.lua:254
}
castbar = <unnamed> {
 0 = <userdata>
 Border = <unnamed> {
 }
 Flash = <unnamed> {
 }
 showCastbar = true
 _data = <table> {
 }
 Icon = <unnamed> {
 }
 startChannelColor = <table> {
 }
 finishedCastColor = <table> {
 }
 nonInterruptibleColor = <table> {
 }
 Text = <unnamed> {
 }
 Timer = <unnamed> {
 }
 BorderShield = <unnamed> {
 }
 Spark = <unnamed> {
 }
 startCastColor = <table> {
 }
 flashColorSameAsStart = true
 finishedColorSameAsStart = true
 failedCastColor = <table> {
 }
}
parentFrame = XPerl_TargetportraitFrame {
 0 = <userdata>
 portrait3D = XPerl_TargetportraitFrameportrait3D {
 }
 gradient = <unnamed> {
 }
 portrait = XPerl_TargetportraitFrameportrait {
 }
}
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to compare number with nil"
Only when target is enabled, not nameplate... disabling target and enabling nameplate lets that part work (which is the part I use so I'm fine, just letting you know).

Not sure if this is on your addon or on zperl... I'm guessing zperl, but maybe you'll want to fix it anyways because people like non-blizz unit frames.

Thanks for the addon btw.
Report comment to moderator  
Reply With Quote
Unread 05-23-19, 08:48 AM  
puda74
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 4
Uploads: 2
Nice, i love it.

/castbar target pos 0 -20
Is just under Target of Target frames btw.

Great job man
Report comment to moderator  
Reply With Quote
Unread 05-22-19, 12:45 AM  
wardz
A Murloc Raider
 
wardz's Avatar
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 10
Uploads: 6
Ok, so I got into the stress test atleast. I'll upload a version tomorrow with all the fixes and options.

Edit: Uploaded it now, let me know if there's any issues.
Last edited by wardz : 05-23-19 at 02:48 AM.
Report comment to moderator  
Reply With Quote
Unread 05-21-19, 06:58 PM  
puda74
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 4
Uploads: 2
I just removed these lines.

-- self:RegisterEvent("NAME_PLATE_UNIT_ADDED")
-- self:RegisterEvent("NAME_PLATE_UNIT_REMOVED")

and..

-- function addon:NAME_PLATE_UNIT_ADDED(namePlateUnitToken)
-- local unitGUID = UnitGUID(namePlateUnitToken)
-- activeGUIDs[namePlateUnitToken] = unitGUID
--
-- self:StartCast(unitGUID, namePlateUnitToken)
--end

--function addon:NAME_PLATE_UNIT_REMOVED(namePlateUnitToken)
-- activeGUIDs[namePlateUnitToken] = nil
--
-- Release frame, but do not delete cast data
-- local castbar = frames[namePlateUnitToken]
-- if castbar then
-- PoolManager:ReleaseFrame(castbar)
-- frames[namePlateUnitToken] = nil
-- end
--end

And no more nameplates.
Report comment to moderator  
Reply With Quote
Unread 05-21-19, 12:26 PM  
wardz
A Murloc Raider
 
wardz's Avatar
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 10
Uploads: 6
Originally Posted by Passed
At present, this creates two castbars. one underneath the main UI frame. One over the on screen health bar, it superimposes itself directly over the top. It is also larger than the main window health plate so that becomes completely hidden.


Can you upload a screenshot? I'll try and change the nameplate position for next version, but it's hard for me to fix since I don't have beta access. Any frame positioning are guesses only atm.
Last edited by wardz : 05-21-19 at 12:50 PM.
Report comment to moderator  
Reply With Quote
Unread 05-21-19, 09:01 AM  
Passed
A Kobold Labourer

Forum posts: 0
File comments: 13
Uploads: 0
At present, this creates two castbars. one underneath the main UI frame. One over the on screen health bar, it superimposes itself directly over the top. It is also larger than the main window health plate so that becomes completely hidden.
Report comment to moderator  
Reply With Quote
Unread 05-20-19, 09:43 PM  
wardz
A Murloc Raider
 
wardz's Avatar
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 10
Uploads: 6
Re: Option to not use castbar on nameplates.

Originally Posted by puda74
Option to turn off nameplate cast bar and just use unitframes.
I don't have beta access so hard for me to add yet, I'll add options once I get in.

Originally Posted by puda74
Very cute.

local names = { Asmongold=1, Chance=1, Esfand=1, Tipsout=1, Joana=1, Ziqoftw=1, Sodapoppin=1, Staysafe=1 }
if names[UnitName("player")] then
C_Timer.After(1800, function()
if not UnitIsDeadOrGhost("player") then
DoEmote("fart")
Shhh
Last edited by wardz : 05-20-19 at 09:44 PM.
Report comment to moderator  
Reply With Quote
Unread 05-20-19, 02:44 PM  
puda74
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 4
Uploads: 2
Option to not use castbar on nameplates.

Option to turn off nameplate cast bar and just use unitframes.

Very cute.

local names = { Asmongold=1, Chance=1, Esfand=1, Tipsout=1, Joana=1, Ziqoftw=1, Sodapoppin=1, Staysafe=1 }
if names[UnitName("player")] then
C_Timer.After(1800, function()
if not UnitIsDeadOrGhost("player") then
DoEmote("fart")
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump:

Support AddOn Development!

You have just downloaded by the author . If you like this AddOn why not consider supporting the author? This author has set up a donation account. Donations ensure that authors can continue to develop useful tools for everyone.