Jump to content
Ike

[AddOn] CastModifier - TBC and above like Conditionals for /cast macros

Recommended Posts

and one thing: IsUsableSpell -> I think this can be used as condition for e.g. check if overpower is usable after enemy dodged

Edit: is it possible to check as condition, if I am the targets target? Or if the target has another one as target

Edited by Meitie

Share this post


Link to post
Share on other sites

I am trying to to use this wonderful addon for my shapeshifting needs.

Right now I have mouse scroll down set to:

/unshift [stance:1/2/4]
/cast [stance:0] Cat Form; Track Humanoids

and mouse wheel up set to: 

/unshift [stance:2/3/4]
/cast [stance:0] Dire Bear Form;

This nicely allows me to spam the mouse wheel to get into the desired forms from any form... and with just one scroll of the mouse wheel (towards the opposite form) I can return to caster form. This works kind of like forward-neutral-reverse in a transmission except for bear-caster-cat.

However, now for the added complexity. I would like to build in a weapon swap as well so that when ever I end up in caster form I have my Healing Weapon and when ever I am in cat for I have DPS Weapon and when ever I am in bear I have Tank Weapon.

I thought this should be possible with something like:

Mouse Wheel Down:
/equip [stance:1/2/4] Healing Weapon
/unshift [stance:1/2/4];
/equip [stance:0] DPS Weapon
/cast [stance:0] Cat Form; Track Humanoids

Mouse Wheel Up:
/equip [stance:2/3/4] Healing Weapon
/unshift [stance:2/3/4];
/equip [stance:0] Tank Weapon
/cast [stance:0] Dire Bear Form;

This seems to be working as intended, is there anything I might have overlooked?

Edited by Razorwynd
I think I figured it out coded edited appropriately now

Share this post


Link to post
Share on other sites
9 hours ago, Meitie said:

Can you implement the function IsActionInRange as condition?

Don't think that's possible as that function requires an action and not a macro. I'll have a look at it though when I find the time to dig into it.

 

5 hours ago, Meitie said:

and one thing: IsUsableSpell -> I think this can be used as condition for e.g. check if overpower is usable after enemy dodged

Edit: is it possible to check as condition, if I am the targets target? Or if the target has another one as target

 

1) Not sure if that's possible for the same reasons mentioned above. But I'll give it a shot.

2) How would you use such a condition? This sounds like a very niche use-case.

 

4 hours ago, Razorwynd said:

This seems to be working as intended, is there anything I might have overlooked?

 

From your edit message, I gather that you got the macros working? Because they look sound to me.

 

10 minutes ago, jagonx said:

@Ike

Thank you for the update!

All works fine, except  this small error:

rDfND9F.png

 

Should be fixed. Thank you once again!

Share this post


Link to post
Share on other sites

Targets target used for e.g.  checking if i have to taunt when loosing aggro.  Or if my pet loosing aggro I can use the slowing shot

Share this post


Link to post
Share on other sites
On 04/03/2017 at 8:09 PM, Ike said:

Big update!

 

  • You're now able to combine multiple modifiers! (Wiki
  • You can now invoke other Macros from another Macro! (Wiki)
  • Added [no]cooldown Conditionals! (Wiki)
  • Added [no]channeled Conditionals! (Wiki)
  • Fixed a bug that caused /use to not use equipped items!
  • Fixed a bug that caused buff names not to be fully parsed!

 

Make sure to re-download the Addon!

 

 

 

 

Two things:

1) I introduced a parsing bug in the last updates. Should be fixed now, so please re-download the Addon!

2)  You can not use white spaces in between the square brackets []. You have to use "_" instead. So make sure to replace "[nomybuff:Aspect of the Hawk]" with "[nomybuff:Aspect_of_the_Hawk]"

 

 

 

 

@jagonx @PrioR @Meitie @Makonha

 

Thanks for u soooo fast answer i really appreciate u attention.

But i think [nochanneled] dont work

 

i start casting Drain Life

/cast Drain Life

then i do used this macro

/cast [nochanneled] Shadow Bolt

and the "Drain Life" is canceled and he start cast Shadow Bolt.

 

can you explain how i use the command pls.

 

Thanks very much.

Share this post


Link to post
Share on other sites

I was wondering if this is even possible.  Playing  a priest and got the mindflay setup so it wont clip it.  Was trying to create a macro so renew would not recast if it was already on my or my target.  I figured since it showed up in a buff spot I might be able to use the nobuff conditional but wasn't successful.  Do you think this macro is possible and I am just screwing it up?  I have tried many things, but the most recent is

/cast [nobuff:Renew @mouseover] Renew(Rank 5)

Forgot to mention, thank you for all you do.  The addon is excellent.

Edited by jabroni1m

Share this post


Link to post
Share on other sites

@Ike

Thanks a lot for your efforts on enhancing this AddOns!  it's great!

will you please help on below macros?

1.  macro for Backstab:    

     (1) check whether the specified daggers are equipped on both main-hand and off-hand.  If not,  equip the specified daggers to main-hand and off-hand.

     (2) Backstab

2.  macro for Sinister Strike:    

     (1) check whether the specified swords are equipped on both main-hand and off-hand.  If not,  equip the specified swords to main-hand and off-hand.

     (2) Sinister Strike

 

I used below marco which can neither check the weapon type  nor switch the off-hand weapon:

       /equip Gut Ripper
       /cast Backstab

 

Thanks!

 

 

Share this post


Link to post
Share on other sites

So, not sure if I need to update my version or something but i've been trying to use the /use command to bandage myself

/use [@player] Runecloth Bandage

Tried:

'/use [@kimarrow] Silk Bandage'

'/use [@player] Silk Bandage'

All I get is yellow text in the chat window offering the /help command, because /use doesn't seem supported; what am I doing wrong here?

Only way I could get the self bandage to work was with /script and /UseContainerItem but it's a pain if you ever want to move stuff around in bags.

 

 

Share this post


Link to post
Share on other sites

for me it works perfect. Which language is your client?

Did you tried really '/use [@player] Silk Bandage' or /use [@player] Silk Bandage - without " ' "   ?

Share this post


Link to post
Share on other sites
7 hours ago, Meitie said:

for me it works perfect. Which language is your client?

Did you tried really '/use [@player] Silk Bandage' or /use [@player] Silk Bandage - without " ' "   ?

English client, /use without the " ' " and just does nothing for me. I'll try downloading the most recent version today at some point and see if that fixes it.

Share this post


Link to post
Share on other sites
On 3/11/2017 at 10:27 AM, Shmigy429 said:

English client, /use without the " ' " and just does nothing for me. I'll try downloading the most recent version today at some point and see if that fixes it.

Updated to most recent and /use seems to work fine, just needed to update.

Share this post


Link to post
Share on other sites

/cast [harm, nodebuff:Rake] Rake; Claw; [combat] !Attack; [stealth] Pounce

or

/cast [combat, nostealth] !Attack

/cast [harm, nodebuff:Rake] Rake; Claw; [stealth] Pounce

 

Neither of these starts the autoattack if im completly out of energy - Problem is that if i do /cast !Attack in the macro it starts the autoattack, but then i miss out on the stealth opener Pounce :/

 

Question is this - Why cant i do conditional on the !Attack? so i can use it to start autoattack even without energy to do special attack in macro

 

Another option is if u can make conditionals for macro that i also cant get to work is something like this

Main Macro

/cast [combat, nostealth] {AA}

/cast [harm, nodebuff:Rake] Rake; Claw; [stealth] Pounce

AA Macro

/cast !Attack

 

Hope it makes sense ^^

Edited by Prosax

Share this post


Link to post
Share on other sites
9 hours ago, Prosax said:

/cast [harm, nodebuff:Rake] Rake; Claw; [combat] !Attack; [stealth] Pounce

or

/cast [combat, nostealth] !Attack

/cast [harm, nodebuff:Rake] Rake; Claw; [stealth] Pounce

 

Neither of these starts the autoattack if im completly out of energy - Problem is that if i do /cast !Attack in the macro it starts the autoattack, but then i miss out on the stealth opener Pounce :/

 

Question is this - Why cant i do conditional on the !Attack? so i can use it to start autoattack even without energy to do special attack in macro

 

Another option is if u can make conditionals for macro that i also cant get to work is something like this

Main Macro

/cast [combat, nostealth] {AA}

/cast [harm, nodebuff:Rake] Rake; Claw; [stealth] Pounce

AA Macro

/cast !Attack

 

Hope it makes sense ^^

If you work with a Master macro you have to put the whole logic in your submacros. Then the Master macro just call these submacros.

I put the

/cast !Attack 

At the bottom of my Master macro and it works fine. SO I am attacking every time I use the Master macro, no matter if there is enough rage, energy or whatever 

 

Share this post


Link to post
Share on other sites

Yes I have it.

Documentation inside Addon. And i have some in html.

some examle Macro I have for mage 

/LazyScript do [email protected]=intellect
/LazyScript do iceArmor-ifNotHasBuff=mageArmor,iceArmor
/LazyScript do iceBarrier-ifNotHasBuff=iceBarrier-ifCooldown<1s=iceBarrier

Edited by laytya

Share this post


Link to post
Share on other sites
2 hours ago, laytya said:

Yes I have it.

Documentation inside Addon. And i have some in html.

some examle Macro I have for mage 

/LazyScript do [email protected]=intellect
/LazyScript do iceArmor-ifNotHasBuff=mageArmor,iceArmor
/LazyScript do iceBarrier-ifNotHasBuff=iceBarrier-ifCooldown<1s=iceBarrier

Can you share the download?

What you posted is possible too with CastModifier 

/cast [nomybuff:Ice_Armor]Ice Armor

Cooldown is also an available condition

Share this post


Link to post
Share on other sites

LazyScript very powerfull scripting tool. https://github.com/laytya/LazyScript

 

one more macro for mage - spamable CS

/run -- cast('Counterspell')
/LazyScript do stopCasting-ifTargetIsCasting-ifCooldown<1s=counter
/LazyScript do counter-ifTargetIsCasting

 

Edited by laytya

Share this post


Link to post
Share on other sites
8 hours ago, Meitie said:

If you work with a Master macro you have to put the whole logic in your submacros. Then the Master macro just call these submacros.

I put the

/cast !Attack 

At the bottom of my Master macro and it works fine. SO I am attacking every time I use the Master macro, no matter if there is enough rage, energy or whatever 

 

I can see what u say about Mastermacro - Problem for me is that i dont want to autoattack if im stealth. Maby that way druids are abit more demanding when it comes to making macroes cause of different forms etc - Els i would have to remove stealth conditionals from the macroes and what u say would work perfektly

Share this post


Link to post
Share on other sites
1 hour ago, Prosax said:

I can see what u say about Mastermacro - Problem for me is that i dont want to autoattack if im stealth. Maby that way druids are abit more demanding when it comes to making macroes cause of different forms etc - Els i would have to remove stealth conditionals from the macroes and what u say would work perfektly

Check this, but Not tested

/run local b=0;for i=1,16 do if UnitBuff("player", i) ==  "Interface\\Icons\\Ability_Ambush" then b=1;end;end;if b==1 then UseAction(actionslotstealthmacro) else UseAction(actionslotnonstealthmacro) end;

Share this post


Link to post
Share on other sites
20 hours ago, Prosax said:

/cast [harm, nodebuff:Rake] Rake; Claw; [combat] !Attack; [stealth] Pounce

or

/cast [combat, nostealth] !Attack

/cast [harm, nodebuff:Rake] Rake; Claw; [stealth] Pounce

 

Neither of these starts the autoattack if im completly out of energy - Problem is that if i do /cast !Attack in the macro it starts the autoattack, but then i miss out on the stealth opener Pounce :/

 
7

The issue with your macro is that after checking for Rake you immediately cast Claw without checking anything. This will skip the last condition. Also, if you want to cast Attack if you don't have the energy for your other abilities, you need to tell the Client in the Macro to do so. Also, you mustn't put commas between conditions. A plain old white space does the job. Here's how I'd do this:

/cast [combat nostealth] !Attack
/cast [mypower<40] !Attack
/cast [stealth mypower>49] Pounce
/cast [harm nodebuff:Rake mypower>39] Rake; [mypower>44] Claw

This does what you want.

Attack when you're in combat and not prowling.

Attack when you do not have enough energy for any of your abilities.

Cast Pounce if you're in stealth and have enough energy.

Cast Rake if your target is hostile if it has no Rake debuff and you have enough energy. If any of these fail, cast Claw as long as you have the energy to do so.

 

The "mypower"s in the last two lines are optional, but using them gets rid of the "I don't have enough energy" spam.

 

 

20 hours ago, Prosax said:

Another option is if u can make conditionals for macro that i also cant get to work is something like this

Main Macro

/cast [combat, nostealth] {AA}

/cast [harm, nodebuff:Rake] Rake; Claw; [stealth] Pounce

AA Macro

/cast !Attack

 

Hope it makes sense ^^

 
 

This was a limitation of the early macro calling implementation. You weren't able to use conditionals when calling another Macro. However, I've just implemented this in the current version! Using it, you could rewrite my macro from above like this:

 

Master:

/cast [combat nostealth] {AA}
/cast [mypower<40] {AA}
/cast [stealth mypower>49] Pounce
/cast [harm nodebuff:Rake mypower>39] Rake; [mypower>44] Claw

 

AA:

/cast !Attack

 

Edited by Ike

Share this post


Link to post
Share on other sites

@Ike

hey Ike, Can you please help to make below macro?

Macro1  for Backstab:    

      action 1: check whether the specified daggers are equipped on both main-hand and off-hand.  If not,  equip the specified daggers to main-hand and off-hand.

      action 2: cast Backstab

Macro2 for Sinister Strike:    

     action 1: check whether the specified swords are equipped on both main-hand and off-hand.  If not,  equip the specified swords to main-hand and off-hand.

     action 2: cast Sinister Strike

 

I tried some expressions but failed to check the weapon equipment status, and failed to  change weapons of both main-hand and off-hand.

 

Thanks!  

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×