Thread Tools Display Modes
07-21-06, 03:26 PM   #61
Aquentvp
A Murloc Raider
Join Date: Apr 2006
Posts: 6
Once again, thank you so much for this incredible addon!

And please do forgive my noob-ish-ness (I went to art school, lol!), but can you tell me if the following macro is taking advantage of FastCast's benefits, or if not, what I need to change to make it so? It's obviously a "ZHC or ToEP + Shadow Bolt" macro, and I rely on it heavily...

/script if GetInventoryItemCooldown("player", 13) == 0 then UseInventoryItem(13); SpellStopCasting(); end
/script if GetInventoryItemCooldown("player", 14) == 0 then UseInventoryItem(14); SpellStopCasting(); end
/cast Shadow Bolt(Rank 10)


Thanks in advance for any help you might be able to give.
  Reply With Quote
07-21-06, 05:05 PM   #62
Cirk
A Cobalt Mageweaver
 
Cirk's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 226
Originally Posted by Aquentvp
Once again, thank you so much for this incredible addon!

And please do forgive my noob-ish-ness (I went to art school, lol!), but can you tell me if the following macro is taking advantage of FastCast's benefits, or if not, what I need to change to make it so? It's obviously a "ZHC or ToEP + Shadow Bolt" macro, and I rely on it heavily...
Hi Aquentvp, glad you are finding it useful! You can rewrite your script to something like the following and it should do the job:

/script if FastcastStopCasting() then if (FastcastUseItem(13) or FastcastUseItem(14)) then SpellStopCasting() end CastSpellByName("Shadow Bolt") end

Where you don't have to include the rank of Shadow Bolt if you are always casting your highest one. Also not all trinkets require you to cast SpellStopCasting() after using them, so you might be able to get away with the following version (try both and see which one works):

/script if FastcastStopCasting() then if not FastcastUseItem(13) then FastcastUseItem(14) end CastSpellByName("Shadow Bolt") end

I don't have a ToEP or ZHC to test this with for you, but I know my priest's trinket doesn't need to have SpellStopCasting called after it for example .

Hope that helps ya
-- Cirk
__________________
Cirk's Addons
  Reply With Quote
07-22-06, 04:05 PM   #63
Aquentvp
A Murloc Raider
Join Date: Apr 2006
Posts: 6
First of all, you are godly, thanks again.

I went with a variation of the two you suggested, since I also use TrinketMenu to automatically swap out trinkets on cooldown in favor of passive ones until the cooldowns expire...

/script if FastcastStopCasting() then if (FastcastUseItem("Zandalarian Hero Charm") or FastcastUseItem("Talisman of Ephemeral Power")) then SpellStopCasting() end CastSpellByName("Shadow Bolt") end

I very much appreciate your help with this, Cirk!
  Reply With Quote
07-23-06, 04:09 PM   #64
Skizz
A Murloc Raider
Join Date: May 2006
Posts: 5
Works wonders! Thanks again Cirk!
  Reply With Quote
07-27-06, 07:24 PM   #65
Showdown
A Defias Bandit
Join Date: Jul 2006
Posts: 3
Fastcast Macro

Hey Cirk, i hope u read this

I have 2 Problems with your (great) addon Fastcast

My Macro

/Script SpellStopCasting();
/Script UseInventoryItem(13);
/Script SpellStopCasting();
/Cast Frostbolt(Rank 11)

E.g. I Cast Fireball, but want to start my Macro i press the button. It interrupts Fireball uses Toep and starts Frostbolt. Now i want a second frostbolt, so i start to spam my normal Frostbolt Button. After the first Frostbolt my Castbarbar says failed all the time, but the frostbolt number 2 is still beeing casted. It looks like iam instant casting, because my castbar doesnt progress, it just says failed.

I also cant work with /Script FastcastStopCasting(); because, it doesnt interrupt my first spell (fireball) while beeing castet)

Ok now the second Problem

My Macro

/Script SpellStopCasting();
/Cast Counterspell

IF Casting bar reaches about 90%, and i press Counterspell Button, the frostbolt doesnt stop (Which is logical) but the counterspell isn't activated - i must press the button again, which is not good for pvp u now as a mage ;-P. And i also have the same problem as with macro 1... casts after using a macro will fail, but are still castet.


/Script SpellStopCasting();
/Cast Ice Block
/script local i;for i=0,15 do if GetPlayerBuffTexture(i) == "Interface\\Icons\\Spell_Frost_Frost" then CancelPlayerBuff(i);break end end

This macro is very useful for mage. It stops every cast you cast, and uses iceblock. Pressing the button again will remove the Iceblock. But i also have the problem with failed Casts which are altough beeing cast (But not visible).

I Think this is a conflikt between SpellStopCasting(); and Fastcast. But FastCastStopCasting() is not the same funtion, and i would really like to use fastcast with my macros
  Reply With Quote
07-31-06, 05:57 AM   #66
Cirk
A Cobalt Mageweaver
 
Cirk's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 226
Originally Posted by Showdown
Hey Cirk, i hope u read this

I have 2 Problems with your (great) addon Fastcast

My Macro

/Script SpellStopCasting();
/Script UseInventoryItem(13);
/Script SpellStopCasting();
/Cast Frostbolt(Rank 11)

E.g. I Cast Fireball, but want to start my Macro i press the button. It interrupts Fireball uses Toep and starts Frostbolt. Now i want a second frostbolt, so i start to spam my normal Frostbolt Button. After the first Frostbolt my Castbarbar says failed all the time, but the frostbolt number 2 is still beeing casted. It looks like iam instant casting, because my castbar doesnt progress, it just says failed.

I also cant work with /Script FastcastStopCasting(); because, it doesnt interrupt my first spell (fireball) while beeing castet)
Hi Showdown, thanks for posting this. Basically the problem here is caused by you casting essentially the same spell from two different actions (one a macro, one your normal spell button) and that is getting Fastcast confused. I'm going through the Fastcast code at the moment to change it to better handle this type of scenario, and so far it looks much more robust for this sort of thing.

I'll also be adding an option to FastcastIsCasting to allow you to check for a specific spell being cast, which will allow you to make your macro fast-castable.


Originally Posted by Showdown
Ok now the second Problem

My Macro

/Script SpellStopCasting();
/Cast Counterspell

IF Casting bar reaches about 90%, and i press Counterspell Button, the frostbolt doesnt stop (Which is logical) but the counterspell isn't activated - i must press the button again, which is not good for pvp u now as a mage ;-P. And i also have the same problem as with macro 1... casts after using a macro will fail, but are still castet.
Hmmm, this one I can't reproduce. By default if you have Fastcast enabled then if you interrupt a spell at 90% then you really will interrupt it (since Fastcast will adjust the casting bar to be accurate, at least for the default and some common casting bar addons).

Anyway, the only way I am able to reproduce the failure of Counterspell to cast is if I'm triggering my macro during the global 1.5 second cooldown (i.e., within 1.5 seconds of starting to cast my Frostbolt or whatever spell). Once past the 1.5 seconds, Counterspell always works for me. Nothing you can do about the global cooldown for this (i.e., you'd have the same problem with Counterspell not being cast with or without Fastcast).


Originally Posted by Showdown
/Script SpellStopCasting();
/Cast Ice Block
/script local i;for i=0,15 do if GetPlayerBuffTexture(i) == "Interface\\Icons\\Spell_Frost_Frost" then CancelPlayerBuff(i);break end end

This macro is very useful for mage. It stops every cast you cast, and uses iceblock. Pressing the button again will remove the Iceblock. But i also have the problem with failed Casts which are altough beeing cast (But not visible).

I Think this is a conflikt between SpellStopCasting(); and Fastcast. But FastCastStopCasting() is not the same funtion, and i would really like to use fastcast with my macros
Hopefully this is the same problem as you described at the start of your post, and so will be fixed in the next release of Fastcast (which will be very soon )

Thanks for the feedback!
-- Cirk
__________________
Cirk's Addons
  Reply With Quote
08-01-06, 06:55 PM   #67
d00dz
A Murloc Raider
Join Date: Jul 2005
Posts: 3
Conserve macros

I'm using a macro similar to the one Maia posted months ago so I'll use it as an example

function CastHeal()
if isCasting and isOverhealing then
SpellStopCasting()
isCasting = false
else
CastSpellByName(whatever)
isCasting = true
end
end
Is it possible to now use such macros in the latest release of Fastcast? I don't quite understand how FastCastAware works since I'm not really good at coding.

Edit: Just got it to work but somehow after the first spell cast is interrupted, the second spell when cast immediately won't be 'fastcasted'.

Edit2: Been trying random things but somehow I can't get spells with ranks defined to cast using the FastcastCast() function. e.g. /script FastcastCast("Heal(Rank 2)");

Last edited by d00dz : 08-01-06 at 09:39 PM.
  Reply With Quote
08-04-06, 06:37 AM   #68
Cirk
A Cobalt Mageweaver
 
Cirk's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 226
Originally Posted by d00dz
I'm using a macro similar to the one Maia posted months ago so I'll use it as an example

Is it possible to now use such macros in the latest release of Fastcast? I don't quite understand how FastCastAware works since I'm not really good at coding.

Edit: Just got it to work but somehow after the first spell cast is interrupted, the second spell when cast immediately won't be 'fastcasted'.
Hi d00dz, yup it is possible with the latest version of Fastcast, by doing something like:
Code:
function CastHeal()
  -- First tell Fastcast we want to handle everything ourselves
  FastcastAware();
    -- Now check if we are casting and if we need to stop.
    -- (We should probably also check with Fastcast whether it thinks we
    -- are still casting via FastcastIsCasting).
  if isCasting and isOverhealing then 
    SpellStopCasting()
    isCasting = false
  else
    -- Use Fastcast's functions to allow us to fast-cast our
    -- healing spell
    if FastcastStopCasting() then
      -- Fastcast has determined it was safe to stop the previously
      -- cast spell and has stopped it, so now we can cast the new
      -- spell, and set the isCasting flag using FastcastCast to tell 
      -- us whether the spell was successfully started or not.
      isCasting = FastcastCast(whatever)
    end
end
Hopefully that makes some sense to you


Originally Posted by d00dz
Edit2: Been trying random things but somehow I can't get spells with ranks defined to cast using the FastcastCast() function. e.g. /script FastcastCast("Heal(Rank 2)");
Yeah, this is a bug in Fastcast v1.11.0, I have version v1.11.1 in the pipeline now, and will hopefully upload that tonight, which should fix this problem.

Cheers
-- Cirk
__________________
Cirk's Addons
  Reply With Quote
08-04-06, 08:36 AM   #69
Cirk
A Cobalt Mageweaver
 
Cirk's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 226
Just uploaded v1.11.1 of Fastcast.

Changes from v1.11.0:
  • Changed the way in which Fastcast identifies actions internally so that it can determine when the same action or spell is being cast even when started from different sources (e.g., one from action bar, one from macro).
  • Improved how spell failures and interruptions are handled to reduce chances of accidental re-interruption or being locked in a spell-failing state.
  • Added the optional parameter to FastcastIsCasting to allow it to check for a specific spell being cast, or whether a specific spell or action is current (as long as the action is on the action bar somewhere or is marked as current in your spellbook when active).
  • Added support for Haste's Otravi CastingBar addon.
  • Fixed a bug in FastcastCast which wasn't properly extracting the rank from spell names when the rank was provided.
  • Allow any mixed capitalization to be used for the spell names in FastcastCast and FastcastIsCasting.
  • FastcastIsCasting and FastcastStopCasting will now show a warning in your general chat tab if you call them when fast-casting is not enabled.
  • Fixed a bug in setting the initial casting bar position for channeled spells.

This version fixes the rank problem that d00dz reported, and also the missing casting bar and repeated failure messages reported by Showdown (and in fact should generally improve spell casting robustness by better handling spell failure and interrupts).

Also for Showdown, the changes to FastcastIsCasting mean you can now modify your first macro to check whether Frostbolt is being cast, and if not then interrupt, otherwise do the usual with fast-casting by doing something like:

/script if not FastcastIsCasting("Frostbolt") then SpellStopCasting(); if FastcastUseItem(13) then SpellStopCasting() end; CastSpellByName("Frostbolt") end


Enjoy!
-- Cirk
__________________
Cirk's Addons
  Reply With Quote
08-05-06, 07:55 AM   #70
Showdown
A Defias Bandit
Join Date: Jul 2006
Posts: 3
Hi Cirk

Thanks for making a solution for the first Problem

I will try to reproduce and explain detailed the second problem again.

Btw Counterspell is castable WHENEVER you want... it is never on global cooldown


But now i will download your newest version, and will edit if every problem is solved

Last edited by Showdown : 08-05-06 at 08:04 AM.
  Reply With Quote
08-05-06, 09:53 AM   #71
Showdown
A Defias Bandit
Join Date: Jul 2006
Posts: 3
Ok, with the new version, the failed problem is solved

To your Macro Solution

What if i cast frostbolt, and want to start a TOEP Frostbolt at the middle of cast?

Anyway with fastcast 1.11.1 fastcast also seems to work on wow macro speech

/Script SpellStopCasting();
/Script UseInventoryItem(13);
/Script SpellStopCasting();
/Cast Frostbolt(Rank 11)

or atleast I can hear the fast cast sound when spamming a cast after macro



The Counterspell Problem (at the end of castbar) happens to every of my macros - but i cant reproduce it why.

Just spam my casts, and sometimes, when my casts are almost finished and i press a SpellStopCasting() Macro the cast doenst start (altough no global cd, and the macro is ready)


Iceblock problem fixed due your new version too..

... your work is so great for mages

Last edited by Showdown : 08-05-06 at 10:17 AM.
  Reply With Quote
08-05-06, 11:03 PM   #72
d00dz
A Murloc Raider
Join Date: Jul 2005
Posts: 3
Thanks for the update Cirk!

However, I encountered a problem where the FastcastStopCasting() function doesn't seem to work. So I had to use SpellStopCasting() instead.
  Reply With Quote
08-09-06, 05:50 AM   #73
Cirk
A Cobalt Mageweaver
 
Cirk's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 226
Fastcast v1.11.2 uploaded:
  • Added a notFast parameter to FastcastIsCasting to allow for checking whether a spell is casting but without considering fast-casting it.
  • Fixed a bug in FastcastIsCasting when passing a spell name or ID where it wouldn't always check the fast-casting state, and would tell you the spell was still casting even when it was safe to fast-cast interrupt it.
  • Fixed a bug that in the state-machine that occured when a macro made a call to cast the same spell as was currently casting but without stopping the previous spell.
  • Modified FastcastCast to not do anything if there is already a spell casting action in progress (to avoid seeing unneccessary error messages).

That should fix a few of the bugs people have reported (with special kudos to teedog for the bug about multiple spell casts in one macro).


Originally Posted by Showdown
The Counterspell Problem (at the end of castbar) happens to every of my macros - but i cant reproduce it why.

Just spam my casts, and sometimes, when my casts are almost finished and i press a SpellStopCasting() Macro the cast doenst start (altough no global cd, and the macro is ready)
Hmmm, I've not seen this (yet) but will keep an eye out for it Showdown.


Originally Posted by d00dz
However, I encountered a problem where the FastcastStopCasting() function doesn't seem to work. So I had to use SpellStopCasting() instead.
Hmmm, FastcastStopCasting() will only stop the current spell and return true if you have reached the "safe" stopping time for the current spellcast (i.e., for fast-casting, the time after which you can call SpellStopCasting and be pretty sure you won't accidentally interrupt your spell). Are you not seeing FastcastStopCasting() ever work or ?

Cheers
-- Cirk
__________________
Cirk's Addons
  Reply With Quote
08-11-06, 07:04 AM   #74
Silvio
A Kobold Labourer
Join Date: Aug 2006
Posts: 1
Code:
  if isCasting and isOverhealing then 
    SpellStopCasting()
    isCasting = false
  else
Is there any way to poll the remaining cast time before a spell lands, so a button spam manaconserve would be possible (i.e. check the cast time remaining as reported by FastCast, and only SpellStopCasting() if there is 0.3 seconds or less remaining before the spell lands)? Can this be done by checking a FastCast variable?
  Reply With Quote
08-18-06, 10:04 AM   #75
asaj
A Kobold Labourer
Join Date: Aug 2006
Posts: 1
I'm having similar problems with Showdown.

The macro /script SpellStopCasting(); /cast Counterspell; only works on the very first spell. Any subsequent spells will not allow this macro to interrupt before they have finished casting. The casting bar will disappear as you use the macro, making it seem like that it has worked, however the spell continues to cast in the background.

To reproduce this, first make a /script SpellStopCasting(); /cast Counterspell; macro. Cast the spell Conjure Food twice, use the macro right after the second spell begins. The casting bar will disappear, but two seconds later you will have conjured another stack of food.
  Reply With Quote
08-19-06, 02:14 AM   #76
Cirk
A Cobalt Mageweaver
 
Cirk's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 226
Originally Posted by asaj
The macro /script SpellStopCasting(); /cast Counterspell; only works on the very first spell. Any subsequent spells will not allow this macro to interrupt before they have finished casting. The casting bar will disappear as you use the macro, making it seem like that it has worked, however the spell continues to cast in the background.
Ah, thanks for the description asaj and the easy way to reproduce it!

This unfortunately is a problem that its not easy to work around. What is happening is that since the second (or third or ...) spell is being fast-cast (i.e., SpellStopCasting is being called to stop the previous cast early), the client can get a little confused about what is happening, and will think that the spell isn't actually casting (when of course it still is) and as a result will then simply ignore any SpellStopCasting() calls entirely, with the result that you aren't actually interrupting the spell you are currently casting (on the server side) even though the spell casting bar disappears.

So bottom line, fast-casting makes it so that you can't actually cancel your currently (fast-cast) casting spell simply via SpellStopCasting(). You can of course cancel it by moving or jumping, but the ESC key or macros that use SpellStopCasting() simply won't stop a spell that was fast-cast on the end of the same spell cast before.

As for how to fix this? Well, so far I haven't figured that out

-- Cirk
__________________
Cirk's Addons
  Reply With Quote
08-23-06, 02:14 PM   #77
Aquentvp
A Murloc Raider
Join Date: Apr 2006
Posts: 6
Wah!

My new FastCast macro doesn't work with the latest patch!



CORRECTION - it does work. Patch day is screwing up pretty much everything, including my macros. Once things calmed down a tad, it started working again!

Last edited by Aquentvp : 08-24-06 at 01:45 PM.
  Reply With Quote
09-02-06, 04:20 AM   #78
Heaven
A Kobold Labourer
Join Date: Sep 2006
Posts: 1
I just discovered this addon and find it absolutely invaluable for casting flash-heal spam on a tank when the connection has high latency again.

One thing I can't seem to sort out though; I'm using an addon to heal the CTRA Emergency Monitor with little overheal, it's called Manaconserve Venegance.

Here's a link:

http://www.curse-gaming.com/en/wow/a...vengeance.html

In order to make this addon Fastcast compatible, what would need to be changed?

Replace CastSpellByName(spellname) with FastcastCast(spellName) in the function MCV_CastSpellByName(spellname) and that's it?

I'm quit the "noob" when it comes to lua and editing mods, so any help with making this addon fastcast-compatible would be highly apprechiated.

Keep up the good work with fastcast!
  Reply With Quote
10-06-06, 11:30 PM   #79
Loocmi
A Kobold Labourer
Join Date: Oct 2006
Posts: 1
Cirk, I have been having a problem relating to using a macro. I use a simple Combustion/Trinket0/Fireball macro, and I try to chain a fireball after it. Not only does the fireball not cast, but I cannot cast fireballs until I cast another spell.

I've tried:
/script CBN=CastSpellByName; SSC=SpellStopCasting; CBN('Combustion'); SSC(); UseInventoryItem(13); SSC(); CBN('Fireball')

and
/script if not FastcastNotCasting() then FastcastUseItem("Trinket0Slot"); SpellStopCasting(); CastSpellByName("Combustion"); SpellStopCasting(); CastSpellByName("Fireball"); end

and even
/cast Combustion
/script SpellStopCasting();
/script UseInventoryItem(GetInventorySlotInfo("Trinket0Slot"));
/script SpellStopCasting();
/cast Fireball

When debugged, the error msg I get is:
[###.##] UseAction (3,0) +##.###
--> ignoring current action.

Again, this is when I use the macro to cast all 3 and then immediately try to use a fireball after the macro'd fireball.

Thanks!

Last edited by Loocmi : 10-06-06 at 11:34 PM.
  Reply With Quote
10-20-06, 05:58 PM   #80
Raencloud
A Kobold Labourer
Join Date: Oct 2006
Posts: 1
Hey is there a new version of fastcast somewhere that I don't know about? I downloaded the only one I could find(version 1.11.2) and it says it's out of date in my addon folder. I log in and nothing pops up or anything so I'm assuming that's why. Umm...HELP!
  Reply With Quote

WoWInterface » AddOns, Compilations, Macros » Released AddOns » Cirk's Fastcast


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off