local function OnUpdate() -- local function; cannot be changed from outside of Player.lua
...
end
QuartzPlayer.OnUpdate = OnUpdate -- setting the QuartzPlayer.OnUpdate function to be the local version
local function OnHide()
...
castBarParent:SetScript('OnUpdate', nil) -- this is IIRC not needed, because no OnUpdate is called for a hidden frame
end
local function OnShow()
castBarParent:SetScript('OnUpdate', OnUpdate) -- this uses reference to local OnUpdate function which cannot be changed by us!
end
I didn't noticed this problem in the first place either, but I've noticed the UNIT_SPELLCAST_FAILED hasn't been properly restored after landing. For now my code is full of DEFAULT_CHAT_FRAME:AddMessage("|cffffff7fFlight: |r Landing") messages to check proper code flow.
Will there be 2.4 update for HonorFu? The TOC was increased but no other updates were made to make it compatible... Changelog
Current issues:
- Honor calculation - in 2.4 first 50 kills of the same guy in BG gives full and instant honor; subsequent kills gives no honor
- Death detection - it doesn't count my deaths and thus my kill ratio is x:0
As this community is thriving and not likely to disipate in the long term, would anyone or group fancy taking on the support with the view to continue it's development here on wowace?
There are some issues with current version (3.60) and current WoW verion (2.4). Namely resistance/immunities support, unknown level mobs problems,... Support for MobInfo2_Browser is problematic as well and needs custom patches for the latest MobInfo2_Browser release (1.31) to work properly.
Ok, to clear the things even more up:
1) You don't need to unregister UNIT_SPELLCAST_CHANNEL_STOP event - it was mistake on my part and only UNIT_SPELLCAST_FAILED is fired.
2) In my test the modified OnUpdate is never called because the SetScript in QuartzPlayer:OnShow handler is using local function copy which cannot be hijacked like this
Also there is one bug: if the duration is unknown the flighttime is reported 0 or 4 (by InFlight) and it fails the check in OnUpdate handler (if it was called)
additions to QuartzFlight:BeginFlight:
if duration < 11 then duration = 11 end -- to "fix" the bug when duration is unknown
QuartzPlayer:UnregisterEvent("UNIT_SPELLCAST_FAILED") -- Pusikas's idea to solve the UNIT_SPELLCAST_FAILED bug
old_OnUpdate = QuartzPlayer.castBarParent:GetScript('OnUpdate') -- get the old OnUpdate handler
QuartzPlayer.castBarParent:SetScript('OnUpdate', FlightOnUpdate) -- insert our own OnUpdate handler
supporting code
local old_OnUpdate
local function FlightLand() -- this restores all old handlers. Should be called after landing/party summon/...
QuartzPlayer:RegisterEvent("UNIT_SPELLCAST_FAILED") -- restore the UNIT_SPELLCAST_FAILED event handler
QuartzPlayer.castBarParent:SetScript('OnUpdate', old_OnUpdate) -- restore the old OnUpdate handler
QuartzPlayer.casting = nil
QuartzPlayer.channelling = nil
QuartzPlayer.fadeOut = true
QuartzPlayer.stopTime = GetTime()
end
local function FlightOnUpdate(...)
local currentTime = GetTime()
local flightTime = currentTime - QuartzPlayer.startTime
if (flightTime > 10) and not UnitOnTaxi("player") then
FlightLand()
end
return old_OnUpdate(...)
end
things to fix:
1) Party summon should cancel the flight bar as well
2) Can the old_OnUpdate be nil? (the value is got after Show is called - it should be properly set)
3) Do QuartzPlayer:OnHide need to clear OnUpdate handler? IIRC OnUpdate is not called when frame is hidden...
I'm sorry to be bringer of the bad news, but I have another bug report for you:
5) The Cosmos addon page for recently updated addons display "yesterday" (or "today"?) and this is wrongly translated to version. Instead of full 20080406 the short date is shown: 200846 (missing zeros) - this number is less then previous full number and an updated is ignored.
wtb thread search, I'm sure I'm asking question already being answered but no way I search 60 pages 1 by 1 :(
You can do thread search when you change the skin of this forum in your Profile/Look and Layout Preferences to SMF Default Theme
Quote from DrunkenDonkey »
So here it is: can it be made so quartz does not show some target casts (you add filter, just a list of spell names)?
AFAIK Quartz doesn't support such feature, but you can use Deadened addon to hide just Deadened spell or NoSeeNoInterrupt addon to hide customized list of spells.
This is what I meant - all handling is moving to Flight module. But I'm Lua novice I don't ahve any right to tell what is ok and what is not ;)
There are some problems though:
1) Registering for the event doesn't solve the spell failed bug, because we are just notified of the event and we have no tools to cancel the event. :(
2) We need to catch the event only during the flight - that means start catching it during BeginFlight and stop after landing.
3) Registering event on UIParent is not a good idea because AFAIK only one handler can be installed and this would remove another addon's handler
My drycodeded idea:
local old_UNIT_SPELLCAST_FAILED
local old_UNIT_SPELLCAST_CHANNEL_STOP
local old_OnUpdate
local function Land() -- this restores all old handlers. Should be called after landing/party summon/...
QuartzPlayer.UNIT_SPELLCAST_FAILED = old_UNIT_SPELLCAST_FAILED
QuartzPlayer.UNIT_SPELLCAST_CHANNEL_STOP = old_UNIT_SPELLCAST_CHANNEL_STOP
QuartzPlayer.OnUpdate = old_OnUpdate
QuartzPlayer.casting = nil
QuartzPlayer.channelling = nil
QuartzPlayer.fadeOut = true
QuartzPlayer.stopTime = GetTime()
end
local function OnUpdate(...)
local currentTime = GetTime()
local flightTime = currentTime - QuartzPlayer.startTime
if flightTime > 10 and not UnitOnTaxi("player") then
Land()
end
return old_OnUpdate(...)
end
and QuartzFlight:BeginFlight
old_UNIT_SPELLCAST_FAILED = QuartzPlayer.UNIT_SPELLCAST_FAILED -- save the old handlers
old_UNIT_SPELLCAST_CHANNEL_STOP = QuartzPlayer.UNIT_SPELLCAST_CHANNEL_STOP -- save the old handlers
old_OnUpdate = QuartzPlayer.OnUpdate -- save the old handlers
QuartzPlayer.UNIT_SPELLCAST_FAILED = function () end -- disable the handlers
QuartzPlayer.UNIT_SPELLCAST_CHANNEL_STOP = function () end -- disable the handlers
QuartzPlayer.OnUpdate = OnUpdate -- hijack the handler to do our stuff
QuartzPlayer.castBar:SetValue(0)
QuartzPlayer.castBarParent:Show()
QuartzPlayer.castBarParent:SetAlpha(QuartzPlayer.db.profile.alpha)
This should work by hijacking the Quartz event handlers, which is not a great way of doing it, but should work (haven't tested it - may blow your computer up). Someone with better knowledge of Lua and WoW should suggest something better :)
* Feature: Added web site caching (in memory - see Tools menu, default enabled)
That a great feature! The cosmos addons version check is now flawless ;)
Sadly I have one more bug to report:
4) The GoogleCodeSVN site is missing from Edit window. The only way to set it is using the combobox under the whole addon list.
3) The sorting still doesn't work (on WinXP 32bit) - would a screenshot or my addons list help you fix this?
There are some addons which doesn't properly state their dependencies in the TOC file and thus when using disembedded installation the libraries may be missing.
One of such problematic Addon is InventoryOnPar here on wowace. Today I've deleted ItemBonusLib hoping it was superseded by LibItemBonus-2.0 in all addons, but sadly InventoryOnPar errored.
InventoryOnPar.toc:
## Interface: 20400
## Title: InventoryOnPar
## Notes: Gives a score for your kit allowing easy comparison with others, also colour codes kit based on appropriateness for your level.
## Author: Pericles
## X-Category: Inventory
## SavedVariables: IOP
## OptionalDeps:
## Dependencies:
I don't like the idea of another bar. If you at Quartz_Tradeskill it still uses the Player bar, but handles all related event itself.
To clear the code up the Quartz_Flight should handle the UNIT_SPELLCAST_FAILED/UNIT_SPELLCAST_CHANNEL_STOP event to fix the current problem and in its own OnUpdate handler it should check for landing/Party summon/BG join to hide the bar afterwards.
And I also THINK that just checking for UnitOnTaxi won't work, since during the debugging I did, it seemed to me like the bar appears when you click the symbol for your destination on the map. It takes a few moments before you are actually in the air and that function returns true. At work now, so I can't test it anymore right now.
If you take a look at ToFu, ACB, InFlight, ... sources and you'll see in every one of them something like this:
if flightDuration < 10 or UnitOnTaxi("player") then
-- still in flight
else
-- flight longer then 10 sec => workaround the "takeoff bug" and flight already ended
end
Thanks Pusikas for your detective work:) I hope the developers (Nymbia?) will include this in the code.
The OnUpdate handler in Quartz_Player should also check for UnitOnTaxi when seeing the flying flag and disable the bar after landing with wrong (longer) durations.
0
I didn't noticed this problem in the first place either, but I've noticed the UNIT_SPELLCAST_FAILED hasn't been properly restored after landing. For now my code is full of DEFAULT_CHAT_FRAME:AddMessage("|cffffff7fFlight: |r Landing") messages to check proper code flow.
0
Current issues:
- Honor calculation - in 2.4 first 50 kills of the same guy in BG gives full and instant honor; subsequent kills gives no honor
- Death detection - it doesn't count my deaths and thus my kill ratio is x:0
0
I love MobInfo2 as well, but it is much larger code base that I can handle fixing on my own like Quartz_Flight, Tradeskill Info or MinimapButtonBag.
There are some issues with current version (3.60) and current WoW verion (2.4). Namely resistance/immunities support, unknown level mobs problems,... Support for MobInfo2_Browser is problematic as well and needs custom patches for the latest MobInfo2_Browser release (1.31) to work properly.
0
1) You don't need to unregister UNIT_SPELLCAST_CHANNEL_STOP event - it was mistake on my part and only UNIT_SPELLCAST_FAILED is fired.
2) In my test the modified OnUpdate is never called because the SetScript in QuartzPlayer:OnShow handler is using local function copy which cannot be hijacked like this
Also there is one bug: if the duration is unknown the flighttime is reported 0 or 4 (by InFlight) and it fails the check in OnUpdate handler (if it was called)
additions to QuartzFlight:BeginFlight:
supporting code
things to fix:
1) Party summon should cancel the flight bar as well
2) Can the old_OnUpdate be nil? (the value is got after Show is called - it should be properly set)
3) Do QuartzPlayer:OnHide need to clear OnUpdate handler? IIRC OnUpdate is not called when frame is hidden...
0
5) The Cosmos addon page for recently updated addons display "yesterday" (or "today"?) and this is wrongly translated to version. Instead of full 20080406 the short date is shown: 200846 (missing zeros) - this number is less then previous full number and an updated is ignored.
0
0
You can do thread search when you change the skin of this forum in your Profile/Look and Layout Preferences to SMF Default Theme
AFAIK Quartz doesn't support such feature, but you can use Deadened addon to hide just Deadened spell or NoSeeNoInterrupt addon to hide customized list of spells.
0
There are some problems though:
1) Registering for the event doesn't solve the spell failed bug, because we are just notified of the event and we have no tools to cancel the event. :(
2) We need to catch the event only during the flight - that means start catching it during BeginFlight and stop after landing.
3) Registering event on UIParent is not a good idea because AFAIK only one handler can be installed and this would remove another addon's handler
My drycodeded idea:
and QuartzFlight:BeginFlight
This should work by hijacking the Quartz event handlers, which is not a great way of doing it, but should work (haven't tested it - may blow your computer up). Someone with better knowledge of Lua and WoW should suggest something better :)
0
That a great feature! The cosmos addons version check is now flawless ;)
Sadly I have one more bug to report:
4) The GoogleCodeSVN site is missing from Edit window. The only way to set it is using the combobox under the whole addon list.
3) The sorting still doesn't work (on WinXP 32bit) - would a screenshot or my addons list help you fix this?
0
When I sort the addon list by Site there are two regular addons mixed between the [Related] addons. :(
0
Also if it is possible can you change the ItemBonusLib to new LibItemBonus-2.0?
(This post comes from my observation in post: Re: Updating WITHOUT externals -- Organizing non-embedded LIBS)
Thank you
0
One of such problematic Addon is InventoryOnPar here on wowace. Today I've deleted ItemBonusLib hoping it was superseded by LibItemBonus-2.0 in all addons, but sadly InventoryOnPar errored.
InventoryOnPar.toc:
0
To clear the code up the Quartz_Flight should handle the UNIT_SPELLCAST_FAILED/UNIT_SPELLCAST_CHANNEL_STOP event to fix the current problem and in its own OnUpdate handler it should check for landing/Party summon/BG join to hide the bar afterwards.
0
If you take a look at ToFu, ACB, InFlight, ... sources and you'll see in every one of them something like this:
0
The OnUpdate handler in Quartz_Player should also check for UnitOnTaxi when seeing the flying flag and disable the bar after landing with wrong (longer) durations.