denniswg / roid-macros Goto Github PK
View Code? Open in Web Editor NEWVanilla macros on steroids!
License: MIT License
Vanilla macros on steroids!
License: MIT License
I am not sure if it is something to do with the name, or the dash in it, but for some reason this simple macro: /cast [nocooldown:Multi-Shot] Multi-Shot does not work. It works fine with any other shots / hunter abilities that have a cooldown.
After i wrote a Tab Targetting curse macro for different applications I came across the following problem:
The [nodebuff: cursexyz] conditional doesn't seem to differentiate between curses.
So the check for the Curse of the Elements in the macro below passes eventhough a different curse is up on the target while Curse of the Elements isn't actually debuffed.
Example: There are 4 mobs. 3 of them are debuffed with Curse of Recklessness while the 4th is not debuffed. Applying the macro will switch through the first 3 mobs without doing anything(as it is probably thinking the curse has already been applied) and only the 4th Mob will be debuffed as expected with Curse of the Elements. Macro below:
Main Macro:
/cast [nodebuff: Curse of the Elements] Curse of the Elements; [debuff: Curse of the Elements] {m1}
Childmacro({m1})
/script TargetNearestEnemy()
//maybe i just did the syntax wrong but ive tested every segemtn of the macro indivdually and this is the conclusion Im coming to.
Hey very nice Addon btw! i love it!
is it possible to add [nomod] and [noequipped] to it??
thanks :)
Thanks for the addon, working great...normally. But whenever I'm in raid and zone in the instance the client freezes and I have to force-close it. Took me a while to track it down to this addon, if it is deactivated, everthing works normally. I'm 100% sure it is exactly this addon...no idea how actually. Not getting any error or a client-crash-report, it just freezes.
Greetings, Dennis!
Your work has been integral part of my vanilla experience ever since. I'm asking for a buff time check and possibly rebuff if that condition has been met. For example Seal of Command rebuff when there are 5 seconds or less left on it. Don't know if such a feature already has been implemented.
Thanks in advance
Hi. Thanks for the gerat work!
Any chanse to add those conditions?
/cast [button:1] spell
/cast [button:2] spell
And add /use for macro like this:
/use [button:1] item
/use [button:2] item
Im NOT a clicker, But it would be nice to have those options.
TY.
I made a post on the Elysium Forums but I figures it would be better to post suggestions here...
... is it possible to add targeting features to the addon
For example:
/cast TargetEnemy -- this would be equivalent to /script TargetNearestEnemy()
/cast !TargetEnemy -- this would be equivalent to /run if GetUnitName("target")==nil then TargetNearestEnemy() end
/cast !TargetEnemyPlayer -- this would ensure that the target is an enemy player
also is it possible to create conditionals based on the current zone?
For example:
/cast [battleground] !TargetEnemyPlayer; !TargetEnemy
This would prevent me from targeting pets in battlegrounds
The following don't work:
/use [modifier:shift] Some weapon name
or
/equip [modifier:shift] Some weapon name
or
/equip [equipped:Axes] Some weapon name
At least I can't get them to work. Not sure if I'm doing something wrong.
I'm using the extra macro space with Super Macro to create /emote buttons (for fun) in an additional Bongos bar. When I hover over the buttons, I get this error:
Interface\Addons\Roid-Macros\Utility.lua:16: bad argument #1 to
find'' (string expected, got nil)`
In short, I create a simple /wave macro using Super Macro, drag that over to a Bongos bar and hover over it and I get the error.
*edit- Possibly not a Bongos issue, seems related to SuperMacro
Screenshot
https://imgur.com/a/v77zchf
Trying to make a set of macros for priest healing. The icons themselves are greyed out as if I did not have enough mana to cast the spells, but I do. This makes it difficult to judge if I do have enough mana for a given spell. Plus, the keybinds do not go red in order to indicate that my target is out of range, which adds to the difficulty.
When I have SuperMacro and CastModifier both running and I use any macro that has emote text or a channel message like /say /y /world etc; it prints 3 times for no reason.
CastModifier disabled, the problem is gone.
https://i.gyazo.com/94b0bb0f246b1d18c6abbc54af882b2c.png
screenshot of the issue for example
Subj
Currently /cast !Shoot
aint spammable.
e.g.
/cast [mod:alt/ctrl/shift] Healing Touch; [mod:alt/ctrl] Healing Touch(Rank 4): [mod:alt] Healing Touch(Rank 1)
I've following macro that was working well with 'CastModifiers':
/script if nil then CastSpellByName("Flash Heal") end
/cast [mod:shift @player] Flash Heal; [mod:ctrl @mouseover] Flash Heal(Rank 4); [@mouseover] Flash Heal
But after I've switched to the newest version of 'Roid-Macros' it stopped working when I hover above player and target unitframes (haven't tested all other yet).
My current addon setup:
Aviana/LunaUnitFrames@b1ce6f5
shagu/pfUI@422dd58
The only modification I did for both 'CastModifiers' and 'Roid-Macros' is:
if not pfUI or not pfUI.uf.player then
at https://github.com/DennisWG/Roid-Macros/blob/master/Extensions/Mouseover/pfUI.lua#L74
I made a simple macro
/cast [nomybuff:Ice_Block] Ice Block
seems that the macro thinks the buff "Ice_Armor" is "Ice_Block"
I can switch the macro conditionals and the effect is the same either way.
P.S. is this something I'm doing wrong or another issue?
hi, mouseover macros doesnt work on notgrid while in combat. Out of combat it works fine but in combat i won't work.
used macros:
/run if nil then CastSpellByName("Heal")end
/cast [help @mouseOver] Heal
/run if nil then CastSpellByName("Dispel Magic")end
/cast [@mouseOver] Dispel Magic
Hey, Super Nice addon good work. I just found a typo here https://denniswg.github.io/Roid-Macros/commands/equip/ .
The macro is: /equipoh, but in reality that command doesn't work, but /equipoff works. So just a minor fix to the documentation :)
Hey man, I used to macro everything in TBC on mouseover specially for using it on nameplates. It seems when using Shaguplates or nothing as nameplates it doesn't work with @mouseOver. Could you take a look at it? I can't figure it out on my own >_< haha
Hey, looking through the documentation, I wasn't able to find a solution to cancel specific buffs I have (nowadays /cancelaura or with SuperMacro /unbuff). Any chance you can implement that? :)
Dear Dev,
I'm a long-time user of your addon on Vanilla server named Kronos, thank you so much for this amazing addon! Just curious though, I have been recently playing on WOTLK 3.3.5 server named ChromieCraft and wondering if you can port into this version? I'm asking because there are some commands such as myhp, mypower etc. that helped me tinker with while playing as healer on Kronos, yet I can't use them on ChromieCraft.
If you can't develop for some reason, could you guide me as to how to do so? I've just recently opened "Github" account just to message you. Say hello to Esparanta#3200 if you would like to discuss further.
Have a nice day/night.
Best Regards,
Esparanta
For example, if I have a macro that casts a spell and announces it to the raid, if I am not in a raid group the macro will do nothing. With this addon disabled, it normally would cast the spell anyways.
For example:
/cast Healing Touch
/ra Casting Healing Touch!
This macro will work in a raid group, but do nothing if you are not in one. This is also the case for macros that combine multiple abilities, such as the following, which will do nothing at all with this addon enabled (but normally attempts to cast all three abilities, and only casts the first one listed that is available):
/cast Counterattack
/cast Mongoose Bite
/cast Raptor Strike
Error: invalid control char near `char(0)'
AddOn: CastModifier
File: sRaidFrames.lua
Line: 1
Count: 1
This error exists with the latest version of CastModifier.
Hello Ike!
FocusFrame mouseover doesnt work with the last FocusFrame release: https://github.com/wardz/FocusFrame/releases/tag/v1.2.1
Could you PLEASE fix it?
Thank you in advance!
Hi there.
I seem to have problems getting /petattack to work.
I have the latest version, and extracted to the correct folder. Many of the other functions are working, but this one is not.
/Calthaza
If both CastModifier and Bartender are activated, the functionality of the HunterBars ceases to function. This function is designed to swap a bar (default, the main bar) with another bar upon which melee range spells/items/macros can be used. It does this by checking if the target is auto shot range and interact range 2, but not in melee (to establish the deadzone), and then when the target moves into melee it swaps to the other specified bar. To reiterate, CastModifier in some way prevents this script from functioning, and the bar swapping breaks.
How do I apply poison to offhand and main hand weapon? What about a consumable like Sharpening Stone?
May you please assist?
Thanks in advance. Great work with the addon. Incredible..
This is a an example super macro
/script UseItemByName("Instant Poison")
/script PickupInventoryItem(17)
/script ReplaceEnchant();
http://www.wow-one.com/forum/topic/97693-lf-poison-re-apply-macro/?do=findComment&comment=746064
/script UseContainerItem(0, 1)
/script PickupInventoryItem(16)
/script ReplaceEnchant();
http://www.wow-one.com/forum/topic/97693-lf-poison-re-apply-macro/?do=findComment&comment=728044
Using the simple macro /cast [nochanneled] Shadow Bolt still interrupts me while I'm channeling Drain Soul.
I haven't tested it with other spells, so it might just be Drain Soul for some reason.
Any luck on porting this to Classic? There are some really nice features that aren't in native Classic macros, like checking for the existence of buffs, debuffs, etc.
Hello, great addon. However it's usability is greatly limited by the absense of exists/noexists conditionals. I know that you can utilize those through lua scripting but that kinda defeats the purpose of the addon. Any chance those conditionals can be added in the near future?
How does that make any sense?
Referencing a non-existent global right inside the test of non-existence.
[2019/02/10 10:09:39-9012-x1]: Mouseover\NotGrid.lua:46: attempt to index global `NotGrid' (a nil value)
Mouseover\NotGrid.lua:46: in function `func'
Roid-Macros\ExtensionsManager.lua:18: in function `InitializeExtensions'
Roid-Macros\Core.lua:450: in function `?'
Roid-Macros\Core.lua:441: in function <Interface\AddOns\Roid-Macros\Core.lua:440>
---
I use the following macro. Generally it works, but sometimes the Foodbuff (Smoked Desert Dumplings) will be used, even if I already have the “Well Fed” Buff.
/use [group:raid nomybuff:Juju_Power] Juju Power
/use [group:raid nomybuff:Juju_Might] Juju Might
/use [group:raid nomybuff:Elixir_of_the_Mongoose] Elixir of the Mongoose
/use [group:raid nomybuff:Well_Fed] Smoked Desert Dumplings
Great Addon!
Is there a way to check if a skill is available?
e.g. I want to check if overpower can be cast, if yes – cast it – if not – cast bloodthirst
Hallo,
ich bekomme leider mein Makro mit dem Spöttischen Schlag nicht zum laufen. Habe mittlerweile alles probiert und denke es könnte hier ein Bug vorliegen.
Einfaches Testmakro:
/cast [cooldown:Spöttischer_Schlag] Verteidigungshaltung ; Kampfhaltung
Bekomme die Fehlermeldung: Interface/Addons/Roid-Macros/Conditionals.lua:501: attempt to compare number with nil
Schreibweisen hab ich alle durch, mit/ohne _ und auch auf Englisch.
Wäre super wenn du dir das mal ansehen könntest.
I've been running into an odd issue where my macros work until a BigWigs encounter starts.
Here is an example of a macro that is working until the tank pulls:
/cast [mod:shift @mouseover help] Greater Heal(Rank 5);[@mouseover help] Heal(Rank 2);
Instead of having to use macros such as this:
/script TargetUnit("pet")
/script CastPetAction(2)
/script TargetLastTarget()
would it be possible to make something like this work instead?
/cast [@pet] Devour Magic
or in any other way?
To cast pet spells you currently have to use the pet binds or /script CastPetAction(x)
, the spell name with a regular "/cast" will not work.
Here is my stealth macro:
/cast !Stealth
It act like regular stealth: one press put me in stealth, another press put me out of stealth.
and my showtooltip macro:
#showtooltip Evasion
/cast Blade Flurry
The tooltip is good (evasion) but the icon is whatever i have chosen in the macro creation (the icon is the important part here, i would like to have the real thing used and it's cooldown).
I've tried making a macro that would cast two different toggleable abilities with the non-toggleable option depending on whether a modifier is pressed or not.
I've tried different iterations:
/cast [mod:alt] !Drain Life; !Shoot
Result: the Drain Life channel would get interrupted by Shoot, despite the button being spammed holding the modifier.
/cast [mod:alt] !Drain Life; [nochanneled] !Shoot
Result: the Drain Life part of the macro would execute/behave like intended, however the Shoot command would never execute.
/cast [mod:alt] !Drain Life
/cast [nomod] !Shoot
Result: having the modifier pressed would result in channeling Drain Life, pressing the button with the modifier again would interrupt Drain Life and start casting Shoot.
/cast [mod:alt] !Drain Life
/cast [nomod nochanneled] !Shoot
Result: now the Drain Life channel would not be interrupted and could be spammed just fine, chaining Drain Life one after another, however pressing the button without the modifier would again fail to execute the Shoot command.
So I was having an issue with one of my macros that used the "nobuff" conditionals and I believe the issue is because there is no way to encapsulate the name of the buff.
So below was my following macro:
/script if nil then CastSpellByName("Ice Block"); end
#showtooltip Ice Block
/stopcasting
/cast [nobuff:Ice Block @player]Ice Block;[mod:alt]Ice Block
Basically I wanted to be able to spam Ice block and not cancel it.
The problem is that it would not cast ice block on my self if i had "Ice Armor" on because it was just looking for the word "Ice". I tried the below macro as well and that didn't work either.
/cast !Ice Block
I believe this is a bug and if there was a way for us to encapsulate the buff with some quotes that would solve the issue. My work around for now is to only look for the word "Block" so my current macro looks like this.
/script if nil then CastSpellByName("Ice Block"); end
#showtooltip Ice Block
/stopcasting
/cast **[nobuff:Block @player]**Ice Block;[mod:alt]Ice Block
hope this helps.
/cast [@focus] spellName
Focus conditional doesn't work properly when the focus unit no longer exists.
Instead of not doing anything, it will deselect your current target and call TargetLastTarget() every time you press the macro. (Spell cast is also triggered, but im not sure if thats an issue caused by CastModifier or not)
This happens with both ClassicFocus and FocusFrame compatibility.
How to reproduce:
Just a note, changing return true;
inside MMC.TryTargetFocus() to this:
return UnitExists("target") and UnitName("target") == name
seems to fix it. But it still bugs out when using multiple conditionals.
Currently the !
only prohibits the same channeled spell to be cast again as long as you're channeling said spell. It would be nice to have something that allows this for any spell to not override channeled spells. E.g.
/cast ?Mindblast
Now assume you're casting Mind Flay and Mindblast comes off cooldown. When you now press this macro, you'll not interrupt Mind Flay. When Mind Flay finishes and you press this macro again, Mindblast will be cast.
Also, maybe think of a better symbol.
Is it possible to add "Fishing Pole" to the equipped conditions ?
For example this macro for warlock:
/cast [myhp<30] Life Tap(rank 1) ; Life Tap
Actually clears the target and targets last enemy on press and casts the spell as intended. Is it possible to not clear target, because it might be a little disturbing in the middle of the fight.
I wanted to call SuperMacro's macros using the {macro} syntax.
This seems to work; basically it tries to call the system macro, and if that fails, it looks for a SuperMacro macro.
15,34d14
< function Roids.ExecuteMacroBody(body)
< local lines = Roids.splitString(body, "\n");
< for k,v in pairs(lines) do
< ChatFrameEditBox:SetText(v);
< ChatEdit_SendText(ChatFrameEditBox);
< end
< end
<
< -- Attempts to execute a SuperMacro by the given name
< -- name: The name of the macro
< -- returns: Whether the macro was executed or not
< function Roids.ExecuteSuperMacroByName(name)
< local body = GetSuperMacroInfo(name, "body");
< if not body then
< return false;
< end
<
< Roids.ExecuteMacroBody(body);
< end
<
41c21
< return Roids.ExecuteSuperMacroByName(name);
---
> return false;
46c26
< return Roids.ExecuteSuperMacroByName(name);
---
> return false;
49c29,33
< Roids.ExecuteMacroBody(body);
---
> local lines = Roids.splitString(body, "\n");
> for k,v in pairs(lines) do
> ChatFrameEditBox:SetText(v);
> ChatEdit_SendText(ChatFrameEditBox);
> end
550c534
< end
---
> end
Hello,
Edit- I've made about a zillion revisions to this as I've gone along and tested things, and possibly worked my way through my own bugs for the shield slam question so please don't mind the confusion
I was wondering if there's any further documentation or examples out there so I can try to figure things out my own (or not open a ticket), but what I'm looking for in the linked documentation I can't seem to find.
I basically want to have a macro that only performs Shield Slam when I have a certain shield equipped.
I may have made my won workaround to this, but there's a weird bug. The idea is that it swaps to my highest block value shield, then goes back to my AOE shield since this is generally more threat, EXCEPT when using shield slam.
I have a few weird quirks though that I'm trying to get around. When SS is on cooldown, the shields swap, so I'm being very careful about pressing the button when it's not ready. In some ways this is a good thing because I can swap back and forth. Fixed?
But what also happens is that the icon for the shield keeps popping up on the mouse cursor location - like I'm de-equipping the shield. I don't know why this is, but it could be because there are two of the same force reactive disks in my inventory. (If you want video evidence I can provide).
I've redacted some of this message but basically I got to this stage and it appears to be working OK.
This is what I have now:
/startattack
/equipoh [equipped:Shields nocooldown:Shield_Slam(Rank 4) myrawpower>20] Drillborer Disk
/cast Shield Slam(Rank 4)
/equipoh [equipped:Shields cooldown:Shield_Slam(Rank 4)] Force Reactive Disk
Question #2
Also, I have a whirlwind macro that I only want to work when I have a certain range of rage so I don't burn a ton of rage if I have it. It also equips a weapon (slowest 1H)
Is this the way to do multiple conditions for the same check? This is not working, as one condition can outweigh the other, so how do I make this an AND check?
[mypower>20 mypower<30]
is that ok? e.g. if I have more than 20 rage but less than 30 do x? (or just simply between 20-30)
[mypower>20 & mypower<30]
I tried
[mypower>20/mypower<30]
but that gives me a 'compare nil with number'
Here is what I have, but I can't get it to do an AND check for rage.
/startattack
/equip [equipped:Shields myrawpower>25] Deathbringer
/cast [stance:1/2 myrawpower<45] Berserker Stance; Whirlwind
/cast [stance:3] Defensive Stance
--edit --
A friend and I were able to create a custom function for this -
Is there a way to do a check on the mob level so I only use an item if it's a boss (or above x)?
Like
/use [enemy>62] Juju Flurry
?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.