Jump to content
Ike

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

Recommended Posts

Another small update with a few new Conditionals:

  • attacks (Wiki)
  • isplayer / isnpc (Wiki)

 

@jagonx:

You're now able to create your macro. Would you mind sharing with me what you're trying to do? I'm genuinely curious why you'd need to see if your target is specifically a player.

Edited by Ike

Share this post


Link to post
Share on other sites
19 минут назад, Ike сказал:

 

@jagonx:

You're now able to create your macro. Would you mind sharing with me what you're trying to do? I'm genuinely curious why you'd need to see if your target is a specifically a player.

Improved polymorph macro! xD

/cast [isplayer:target] {macro1}

/cast [isnpc:target] {macro2}

where

macro1 - /cast [@mouseover] Polymorph(rank 1); Polymorph(Rank 1)  - - (60 mana)  20sec duration and it is max in PvP, thus cast max rank of sheep is just a waste.

macro2 - /cast [@mouseover] Polymorph; Polymorph - - (150 mana, rank4) 50sec duration, for pve.

1 button, no modifiers needed.

And it works!

Thank you once again!

Share this post


Link to post
Share on other sites

Is there anyway to combine a use and a cast in the same macro with a modifier key?   Press button = drink water   Press button + shift = conjure water

Share this post


Link to post
Share on other sites
8 часов назад, Statikk сказал:

Is there anyway to combine a use and a cast in the same macro with a modifier key?   Press button = drink water   Press button + shift = conjure water

Hm....

Actually its works, just tested:

/cast [mod:alt] Conjure Water(Rank 7)
/use [nomod] Conjured Crystal Water

But - if u r sitting, macro will always do /use water and if u r standing it will /cast conjure. 

Perhaps some dev. improvements is needed. But its works.

 

Share this post


Link to post
Share on other sites
4 часа назад, Statikk сказал:

Thanks a lot!  I was just getting it a little wrong.  Love your sheep macro to!  :)

Praise @Ike!  ;)

Share this post


Link to post
Share on other sites

Need a macro to equip two one handed swords, when I have an one hand + shield equiped.

 

/equip sword

/equip sword2

 

dont run.

 

thx

Share this post


Link to post
Share on other sites

Hi invoking macros don't work for me. I made totem targeting macros like these:

/target [harm type:Totem] Grounding Totem;

/petattack [@target type:Totem]; 

and it works but when I make master macro that try to invoke this one it doesn't work

Share this post


Link to post
Share on other sites

Is it possible to have a tooltip for a trinket equipped at a given time? So when I equip a medallion of the alliance it shows that icon and cooldown, and if another use trinket is equipped in the same trinket slot the icon shows equally to that trinket. Hope I was clear in my language.

On a side request. What about [noswimming] and [swimming].

Edited by Milton

Share this post


Link to post
Share on other sites

hi,

is there a possibilty to check the targets debuff by type: poison, magic, disease or curse?

so i can make a macro like this

/cast [debuff:poison] Abolish Poison; [debuff:curse] Remove Curse

 

 

Share this post


Link to post
Share on other sites

Hi! How can I modify this macro to have the Raptor Strike used only if my mana is over 60%?

/run if not CheckInteractDistance("target", 3) then if not IsAutoRepeatAction(13) then CastSpellByName("Auto Shot") end else CastSpellByName("Raptor Strike") end

The macro must allow me to spam AutoShot, switch in melee using Raptor Strike if my mana is over 60%, else attack, when the target is too close and show the AutoShot tooltip (this is why I modify this classic macro inverting the condition). For now do it all else the mana control on Raptor Strike :(

Else things I'd like it could do are: make the icon red when the target isn't in Ranged Attack range (or too close or too far), let me spam the macro in melee making it respect the cooldown of Raptor Strike to don't be bored by error message of "this skill is already in cooldown (raptor strike)

Edited by Jhakko

Share this post


Link to post
Share on other sites

You can do it by UseAction (slot) instead of your cast raptor strike 

In the slot you put your macro

/cast [mypower>60]Raptor Strike

Share this post


Link to post
Share on other sites
On 29.3.2017 at 9:01 PM, PrioR said:

hi,

is there a possibilty to check the targets debuff by type: poison, magic, disease or curse?

so i can make a macro like this

/cast [debuff:poison] Abolish Poison; [debuff:curse] Remove Curse

 

 

At the moment no. But it would be possible by implementing a small database. Maybe the developer start this function but he needs  help from us to fill it with data 

We all have to send the name and the type of debuff to him. But first let him confirm:)

Share this post


Link to post
Share on other sites
On 3/27/2017 at 2:48 PM, Milton said:

Is it possible to have a tooltip for a trinket equipped at a given time? So when I equip a medallion of the alliance it shows that icon and cooldown, and if another use trinket is equipped in the same trinket slot the icon shows equally to that trinket. Hope I was clear in my language.

On a side request. What about [noswimming] and [swimming].

 
 
 

There's currently no tooltip support available to the public. My local version has an experimental implementation but it's too unreliable right now. And regarding [swimming]: As far as I'm aware there are no API functions that tell me whether you're swimming or not. I could ghetto it by checking whether your breathing bar is displayed but that would be more of a [diving] then, wouldn't it? If anyone knows a way please let me know!

 

On 3/29/2017 at 9:01 PM, PrioR said:

hi,

is there a possibilty to check the targets debuff by type: poison, magic, disease or curse?

so i can make a macro like this

/cast [debuff:poison] Abolish Poison; [debuff:curse] Remove Curse

 

 

 
 
 

Not right now, no. Why would you need this anyway? I'm asking since Decursive exists and that pretty much takes care of all your decursing needs.

 

4 hours ago, Jhakko said:

Hi! How can I modify this macro to have the Raptor Strike used only if my mana is over 60%?

/run if not CheckInteractDistance("target", 3) then if not IsAutoRepeatAction(13) then CastSpellByName("Auto Shot") end else CastSpellByName("Raptor Strike") end

The macro must allow me to spam AutoShot, switch in melee using Raptor Strike if my mana is over 60%, else attack, when the target is too close and show the AutoShot tooltip (this is why I modify this classic macro inverting the condition). For now do it all else the mana control on Raptor Strike :(

Else things I'd like it could do are: make the icon red when the target isn't in Ranged Attack range (or too close or too far), let me spam the macro in melee making it respect the cooldown of Raptor Strike to don't be bored by error message of "this skill is already in cooldown (raptor strike)

 
 
 

First of all, CheckInteractDistance doesn't check if you're in melee range. The range index 3 means 10 yards while melee distance is 5 yards. If this weren't the case I would have already implemented a conditional for melee range! But oh well.

If this doesn't bother you since it's the closest you can get with the vanilla client, then I'd do it this way:

Create 3 Macros "Master", "Ranged" and "Melee".

"Master" should look like this:

/run if(CheckInteractDistance("target", 3)) then CastModifier.ExecuteMacroByName("Melee") else CastModifier.ExecuteMacroByName("Ranged") end

"Ranged":

/cast !Auto Shot

"Melee":

/cast [mypower>60] Raptor Strike

With this, you can spam "Master" all day long and it'll do exactly what you want if I didn't make any typos.

 

44 minutes ago, Meitie said:

At the moment no. But it would be possible by implementing a small database. Maybe the developer start this function but he needs  help from us to fill it with data 

We all have to send the name and the type of debuff to him. But first let him confirm:)

 
 
 

There's no need for a database. You can do this pretty easily by using GameTooltips.

function GetUnitDebuffInfo(unit, i)
    SomeTooltip:ClearLines();
    SomeTooltip:SetUnitDebuff(unit, i);
    
    local name = SomeTooltipTextLeft1:GetText();
    local type = SomeTooltipTextRight1:GetText();
    
    return name, type;
end

Et voila, the debuff's name and its type! But again, I don't see why I should put this in the Addon since Decursive is a thing. But maybe I'm missing something, so please let me know what you're trying to do!

Edited by Ike

Share this post


Link to post
Share on other sites

Cool I did not know this function

I do not know Decursive but maybe it is cool to have it all in one macro syntax (all in Castmodifier)

Share this post


Link to post
Share on other sites

First of all, thanks a lot for this great addon Ike <3

 

I was wondering if it would be possible to add a /castsequence macro to the addon and the timer+target reset conditions ?

 

I really miss my retail lock macro to apply dots, that looked like something like that :

 

/castsequence reset=target/12 Corruption, Curse of Agony

 

Basically the macro above applies Corruption then Curse of Agony and resets after 12 secs or when I target a new mob.

 

I tried to replicate the behavior of this retail macro with the supermacros macro below but It only works when I'm the only warlock in the group/raid applying these dots :

/script if not buffed("Corruption", 'target') then cast("Corruption") else if not buffed("Curse of Agony", 'target') then cast("Curse of Agony") end end

 

Hope you'll be able to help me.

Thanks in advance for your reply,

Warm Regards.

Edited by glonglon

Share this post


Link to post
Share on other sites

is it possible to have a cast modifier master macro call a non-cast modifier child macro? Because I can not seem to get the following to work:

MASTER - Test1

/cast {Target&Attack}
/cast Frostbolt

CHILD - Target&Attack

/run if GetUnitName("target")==nil then TargetNearestEnemy() end if not IsCurrentAction(36) then UseAction(36) end

where the "Attack" from the spellbook is in action slot 36.

What am I doing wrong?

 

EDIT: The reason I am trying to do this is because when I use the convinient cast modifier script /cast !Attack when I have no attack it first targets my own character, then after pressing a second time it targets the nearest enemy and turns on my auto attack... and it is annoying me to see it always target my own character first.

Perhaps you could just solve this by creating a series of commands

!Target

!TargetNPC

!TargetEnemyPlayer

Then I could have a macro like 

/cast !TargetEnemyPlayer
/cast !Attack
/cast Frostbolt

EDIT2: it turns out my master macro works fine when I deactivate SuperMacro. Fortunately, your addon is so simple and powerful that I really only use SuperMacro to display tooltips. In any event, I still think that my !Target suggestions would be cool to implement

FINAL EDIT: while working on all this I thought it would be extremely useful if you could create conditionals based on being in a battleground. In BGs I would love to be able to avoid having tab target enemy pets.

For example:

/cast [battleground] !TargetEnemyPlayer; !TargetEnemy

Edited by Razorwynd

Share this post


Link to post
Share on other sites

Is there a way to set /petattack to specific totems that im not seeing? /petattack [@Grounding Totem]; just simply doesnt work. I did working macro without the addon, using simple /target Grounding Totem; /script PetAttack(target); /script TargetLastTarget(), but it works very poorly with multiple enemies or multiple totems. It often just picks the guy whos name starts with G (or with T, in case of Tremor Totem) and goes after him. Not to mention my target often switching to something random, and me having to select the enemy player once again.

 

I've read all 7 pages, dont see proper totem killing macro. Maybe im blind or something.

Share this post


Link to post
Share on other sites

it seems that a cast of the spell "Faerie Fire (Feral)" does not work

maybe because of the "()" ?

my macro:

/cast !Attack
/cast [mypower>29]Claw
/cast [mypower<30 nocooldown:Faerie_Fire_(Feral)]Faerie Fire (Feral)

isolated does also not work:

/cast Faerie Fire (Feral)

 

can you fix that pls?

Share this post


Link to post
Share on other sites
43 minutes ago, Meitie said:

 

isolated does also not work:

/cast Faerie Fire (Feral)

 

can you fix that pls?

I believe this is a problem with the wow code and not this addon... someone please correct me if I am wrong

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

×