Cirk's Fastcast
Fastcast provides functionality for speeding up chain-casting of normal cast-time and channeled spells for players on high latency connections.
Current version Fastcast is currently version 1.11.2. Download page http://www.wowinterface.com/download...fo.php?id=4733 Known bugs None when running with the default client. Future enhancements None planned. Notes Fastcast is the end point of development that started with Channelcast (channeling protection), then to Channelcast beta (for the addition of fast casting). Due to the overwhelming interest in the fast casting feature, a UI and name change were in order, and Fastcast was born. -- Cirk of Doomhammer |
After installed Fastcast, the following macro which I normally spam no longer works after one cast (instant cast due to Presence of Mind).
Code:
/cast Presence of Mind Thanks for this wonderful mod! |
Does Fastcast take into account spell interruption? Suppose you are a healer in the Vaelastrasz fight. A normal 3 second heal becomes 4 seconds due to spell interruption from the aoe damage. With a padding of 0.2, Fastcast will cancel the spell at 3.2 seconds. No heal is cast and tank is dead. :(
Can Fastcast determine how much your cast time is increased by due to interruption, and adjust accordingly? |
Quote:
Quote:
Quote:
Q. Does Fastcast still work if your casting is slowed by a debuff, or if you are taking damage? A. Yes it does. Fastcast uses the information on spell duration provided by the client, and handles changes to this when damage is taken. For channeled spells, when you take damage you lose cast-time remaining, and Fastcast handles that too. Note also that Fastcast will only interrupt a spell when you try and cast another one and the spell's cast time + padding time has been reached but the spell is still casting. In other words it won't cancel the spell except in response to a user action - no timer based interruptions are used. Cheers, -- Cirk |
Quote:
|
Re: spell interruption
Eeeep I didn't read the FAQ carefully enough, sorry!
But what about the following scenario caused by lag? Can anything be done about it other than increasing the padding? I suppose it would be a rare case. Params 1s latency 0.5s padding 3s heal 0.0s - start cast 2.6s - take damage adding 1s to cast time 3.5s - mod stops cast (client has not received report of damage due to bad lag) 3.6s - client receives report of damage from server due to bad latency 4.0s - heal never cast since cancelled at 3.5s |
Quote:
Code:
/cast Presence of Mind Quote:
If you are worried, turn off Fastcast when you are casting those long heals and they most definitely positively must have them land (or don't spam your slow healing spells ;)). You can also try putting long casting spells like this into a macro (for healers, perhaps with an announce so that other healers or your target knows its coming) which should prevent Fastcast from allowing it to be interrupted by a second press of the same macro. -- Cirk |
Code:
/cast Presence of Mind Code:
/cast Presence of Mind Not sure why Fastcast is not allowing me to do this. |
Quote:
If you want to try a fix for this, change line 499 of Fastcast.lua from: Code:
if (((id ~= _thisActionId) or IsAttackAction(id)) and (GetActionCooldown(id) == 0)) then Code:
if (((id ~= _thisActionId) or IsAttackAction(id)) and ((GetActionCooldown(id) == 0) or isMacro)) then -- Cirk |
Thanks! Will let you know when I get a chance to test it.
|
Ok, I've run debugon when casting Ice Block, here the result:
--->Requesting new action 20 Fastcast_OnEvent(SPELLCAST_STOP) with action 20 UseAction(20,1) +2.040 --->ignoring action due to cooldown UseAction(20,1) +2.747 --->ignoring action due to cooldown and so on.... I think that it checks the cooldown and then stops the action so it's impossible to remove iceblock pressing the action button (quite the same problem of the post above).... |
I currently use the following macro to activate all my timers. Up until I installed fastcast, it would allow me to activate all three abilities or whichever ones were not on cooldown at the time (ie, Arcane Power and ZHC, or just ToEP).
/cast Arcane Power /script SpellStopCasting() /usebyname Talisman of Ephemeral Power /script SpellStopCasting() /usebyname Zandalarian Hero Charm As you can see, I use the UseByName mod off curse-gaming. Anyway, after installing Fastcast, I can no longer activate my trinkets while Arcane Power is on cooldown. Pressing the macro would yield nothing even though the trinkets were ready for use. Upon disactivating fastcast, the macro begins to function as it should. |
Interesting addon, could be very useful. But unfortunatly I can't use it :/
I got a couple of self written addons that make heavy use of keybindings, CastSpell and CastSpellByName. Can you please update your addon to hook these functions as well? |
Quote:
Quote:
Quote:
One of the big difficulties however with not using UseAction and the action functions is that without being able to call IsCurrentAction, there is no easy way to know if the client has accepted the spellcast request or not, which can really complicate the sequencing logic (think what happens if there are multiple requests to the function before a SPELLCAST_STOP or SPELLCAST_START event occurs - which one was it actually for?). I may look into this for a future relase, but due to the complexity its not very high on my priority list at the moment. Feel free to have a play around with it yourself and see if you can get it to work with hooked CastSpell and CastSpellByName functions though, I'd be intrigued to see a solution if you can come up with one. Thanks all for the feedback! -- Cirk |
Quote:
Edit: I'm asking since all the mage macro examples have 'buff' spells (PoM, AP) along with trinkets and my macro only has a trinket and the one damage spell and I'm not sure if it's the trinket causing the problem, or the buff spells, or both in their examples. |
Quote:
In your example however, your macro probably won't show a cooldown because ToEP is an item rather than a spell, and I don't think the game's macro code recognizes cooldowns from items. Cheers -- Cirk |
Quote:
|
Quote:
Example of what happens: CastSpell(123, BOOKTYPE_SPELL). a) No other spell cast active1 - If gobal cooldown -> abort silently - If other cooldown -> error - If low mana, no target and so on -> error - Else send request to server, no message. Server will send SPELLCAST_START and the likes. b) Other spell active right now - If global cooldown -> abort silently - If other cooldown -> error - If low mana, no target and so on -> error - Else report error Since it's highly unlikely to cast multiple spells each frame (unless you hit the hotkey insanely fast or fps is extremely low) this should work reasonably well to detect whether a cast was started clientside. |
Quote:
We could (for example) simply disallow another CastSpell or CastSpellByName action until we get a server response (of some sort) if we can determine that the spell has gone to the server (e.g., we didn't get a failure generated by the client immediately) since unlike actions, you can't normally have more than one going at a time. But, then that would also prevent being able to use macros such as the common PoM + big damage spell that many mages like to use (since we'd be not allowing the second CastSpellByName call until we'd seen a response from the first call). Alternatively, we allow both (or multiple) calls to go through, but then when we get the SPELLCAST_... responses back from the server, to which spells did they apply? Thats the tricky part of the whole thing, and you could probably craft some custom solutions for yourself that you understand the limitations of, etc., but making it robust enough for everyone to use would be a lot more work. Bottom line, long term it'd probably be possible to implement CastSpell and CastSpellByName similar to how the UseAction code works right now in Fastcast, but identifying all the loose ends and corner cases is what makes it tricky, and at this point (for me anyway ;)) low priority. Cheers -- Cirk |
Fastcast v1.9.1 is now available, which has fixes for:
Basically I removed the cooldown check that I added during my "improvements" to the spellcasting control logic between Channelcast v1.9.2beta2 and Fastcast v1.9.0. Turns out it was not needed anyway, and was the root cause of all those problems. Anyway, hope that fixes those bugs for you all! -- Cirk |
All times are GMT -6. The time now is 12:59 PM. |
vBulletin © 2024, Jelsoft Enterprises Ltd
© 2004 - 2022 MMOUI