my shaman macro
I'm on THF, this seems to be working pretty well
Macro
Any critique would be welcome.
I'm especially curious on what people with more knowledge/experience think of the way I handle target tracking for my debuff subs.
Wed Feb 26, 2014 1:13 am
Debuff handling
I am little confused as to why you use chat events to assist with your debuff handling. It appears to do more harm than good. Since you play on THF and twincasting is prominent in the later tiers, I recommend getting away from chat events to handle your debuffs.
Here is why:
If you cast a slow and proc a twincast on that cast, your chat will show that the first one wore off (even though it was immediately replaced) and thus your macro will interpret it as the debuff wearing off naturally, attempting to cast it again.
I, like you, use timers to handle debuffs and I can recommend using them exclusively. Is there anything I'm missing with the way you use chat events for debuffs?
Otherwise, your macro looks great and somewhat similar to mine.
Sun Mar 23, 2014 3:14 pm
No such 'string' member 'shortname'
Attempting to get this to work, but I get the message No such 'string' member 'shortname' and massive spam when I turn I turn on the macro. I'm sure it's something really simple that I need to edit. Any guidance please?
Wed Nov 05, 2014 10:00 pm
Spam..
Thanks for the response!
I get the message below over and over, and spams my group chat that talisman of wunshi is being cast.
No mention of the echoes shown above.
Thu Nov 06, 2014 4:08 pm
The macro is balking at...
${Select[${NetBots[${NBToon${x}}].Class.ShortName},SHM,CLR,MAG,BST]}
And a similar line. But I'm not sure why.
Try some troubleshooting. Please type out each line and post the results for each line.
/echo ${NetBots[${Me.Name}].Class}
/echo ${NetBots[${Me.Name}].Class.Name}
/echo ${NetBots[${Me.Name}].Class.ShortName}
/echo ${NetBots[${Me.Name}].Class.ID}
/echo ${NetBots[${Me.Name}].Class.Left[3]}
${Select[${NetBots[${NBToon${x}}].Class.ShortName},SHM,CLR,MAG,BST]}
And a similar line. But I'm not sure why.
Try some troubleshooting. Please type out each line and post the results for each line.
/echo ${NetBots[${Me.Name}].Class}
/echo ${NetBots[${Me.Name}].Class.Name}
/echo ${NetBots[${Me.Name}].Class.ShortName}
/echo ${NetBots[${Me.Name}].Class.ID}
/echo ${NetBots[${Me.Name}].Class.Left[3]}
Thu Nov 06, 2014 6:44 pm
Senior Project Member
Test
Thanks Grumble, here are the results.
/echo ${NetBots[${Me.Name}].Class}
[MQ2] NULL
/echo ${NetBots[${Me.Name}].Class.Name}
No such 'string' member 'shortname'
[MQ2] NULL
/echo ${NetBots[${Me.Name}].Class.ShortName}
No such 'string' member 'shortname'
[MQ2] NULL
/echo ${NetBots[${Me.Name}].Class.ID}
No such 'string' member 'ID'
[MQ2] NULL
/echo ${NetBots[${Me.Name}].Class.Left[3]}
[MQ2] NUL
Thu Nov 06, 2014 7:38 pm
/bcaa //netbots on
/bcaa //netbots send on
/bcaa //netbots grab on
Make sure all your characters are setup for netbots. I created a new character and didn't properly enable netbots. I received the same results you did. I then fully enabled netbots and received the expected results.
/bcaa //netbots send on
/bcaa //netbots grab on
Make sure all your characters are setup for netbots. I created a new character and didn't properly enable netbots. I received the same results you did. I then fully enabled netbots and received the expected results.
Thu Nov 06, 2014 8:44 pm
Senior Project Member
Thanks
Thanks Grumble. I should have picked up on that one...
At least gets it running, think I have a few tweaks to make to it, but I think I can figure the rest out.
Thu Nov 06, 2014 8:52 pm
I'm trying to use this with some mods but its not healing. it will do everything but heal. I'm using the rof2 off the site here.... any help?
I did change the heal spell and the heal at %
I did change the heal spell and the heal at %
Fri Nov 16, 2018 6:33 am
I’m at work so I can’t run it but I’m suspicious of the ${x} in the heal routines. Maybe I’m misreading it but I don’t see how those would have a value
I’d suggest peppering the heal routine with a bunch of /echo statements between each line, including “/echo ${x}” and maybe some other variables to see where it’s skipping out.
I’d suggest peppering the heal routine with a bunch of /echo statements between each line, including “/echo ${x}” and maybe some other variables to see where it’s skipping out.
Fri Nov 16, 2018 9:29 am
Project Lead
I have put a few echo in and it never went in the line where it’s grabing the % I to am at work. When I get home I’ll do a few more of the ${x} isn’t correct what should I change it to?
Fri Nov 16, 2018 1:19 pm
the ${x} appears to be getting the value in sub start1 but when i try to echo everything comes back a null after the start up
Fri Nov 16, 2018 4:31 pm
I’m not 100% sure what their intent was but this section in the start loops through net it’s and loads their names into the NBToons variables
/for x 1 to ${NetBots.Counts}
/varset NBToon${x} ${NetBots.Client.Token[${x}, ]}
/echo ${NetBots[${NBToon${x}}].Name}
/next x
I’ve never really been a macro writer, maybe one or two small ones a decade ago but I’ve never seen this method before.
Usually that loop would be in the heal routine itself... just poop through each netbot and heal inside the loop. It’s also limited to 6 characters it looks like, NBToons 1-6. If you wanted to just heal your group it would probably work better to loop through the group TLO and then feed those names into the methods TLO to get a more accurate hit point value.
If this is your first go at working with macros I’d suggest making your own simple one that just does 1 thing, like heal everyone and that’s it. That relatively simple exercise hits all the fundementals, variables, loops, conditionals. And it does it without overwhelming. The basic design would be a sub main with the main loop inside. That main loop calls the heal sub. The heal sub has a /for loop that loops through each group/netbots member and heals if their below a percent. One step at a time, e.g., nake the sub main with loop but it just has an echo in it at first. You’d expect to see an infinite spam from that. Then add the heal sub and move the echo there... etc.
Even if you intend on using someone else’s macro it’s a great exercise.
This macro looks like it might be a little specific to the authors setup, but it has great examples of typical design that you could borrow from.
/for x 1 to ${NetBots.Counts}
/varset NBToon${x} ${NetBots.Client.Token[${x}, ]}
/echo ${NetBots[${NBToon${x}}].Name}
/next x
I’ve never really been a macro writer, maybe one or two small ones a decade ago but I’ve never seen this method before.
Usually that loop would be in the heal routine itself... just poop through each netbot and heal inside the loop. It’s also limited to 6 characters it looks like, NBToons 1-6. If you wanted to just heal your group it would probably work better to loop through the group TLO and then feed those names into the methods TLO to get a more accurate hit point value.
If this is your first go at working with macros I’d suggest making your own simple one that just does 1 thing, like heal everyone and that’s it. That relatively simple exercise hits all the fundementals, variables, loops, conditionals. And it does it without overwhelming. The basic design would be a sub main with the main loop inside. That main loop calls the heal sub. The heal sub has a /for loop that loops through each group/netbots member and heals if their below a percent. One step at a time, e.g., nake the sub main with loop but it just has an echo in it at first. You’d expect to see an infinite spam from that. Then add the heal sub and move the echo there... etc.
Even if you intend on using someone else’s macro it’s a great exercise.
This macro looks like it might be a little specific to the authors setup, but it has great examples of typical design that you could borrow from.
Fri Nov 16, 2018 7:05 pm
Project Lead
Here’s a good submain with loop example, the third post is a good example of a chat event.
http://mqemulator.net/forum2/viewtopic.php?t=63
http://mqemulator.net/forum2/viewtopic.php?t=63
Fri Nov 16, 2018 7:09 pm
Project Lead