Macro Bot.mac Updates and Bug Fixes by [40oz]

parenthesis ( ) are required around conditionals, but that's the only place.

Most of the time I don't recommend having characters auto face, it looks very robotic. What are you trying to accomplish? There are times you need to, like with Virulent Paralysis or beam spells. I always am sure to start my characters facing the way I'll need them. Obviously, doesn't matter as much for melee characters as they always look robotic.
 
Interruption

hi 40oz,

Ive tried every reccomendations u told me to do as well as playing with the settings. the cures just keeps getting interrupted when its being casted, it just keeps trying to cast then interrupts then cast again etc... is there anyway u can look into this, and maybe not interrupted the cast if its in the healing section.

Thank you for looking.
 
I'll try to look at it, I've added it to the TODO list up top because finishing up the curing stuff won't be a small task I can look at quickly.
 
Debuff Section

Hi 40oz, I was reviewing the Wiki and I didn't see a DEBUFFNAMEDONLY1= option

Spoiler:
DebuffUse1=TRUE <-- Use?
DebuffSpellName1=Enunciation of Tashan <-- Name of spell, AA, item, disc
DebuffConditions1= <-- any special conditions?
DebuffSpellGem1=gem6 <-- [gem#|alt|disc|item]
DebuffUseAtMobPctHP1=100 <-- if you want to debuff adds, set this to 100%
DebuffStopAtMobPctHP1=1 <-- stop debuffing if mob gets below this*% hp
DebuffRecast1=12m <-- Dont try to recast before this time.
DebuffMaxTries1=2 <-- If spell gets resisted, try it this many times at most



I was wondering if this section has it so I don't have to put a condition to only use it if its a named monster. thank you
 
BUFF SECTION ERROR

DELETED.

I'm just going to delete my files and restart over. apparently I'm having a lot of errors. I am not sure is if its because I'm using NETBOTS plugin to gather information or what.

I am curious to know that can we use the NETBOTS in any conditions? because it seems as if I remove the netbots and it works, I put it back I get errors, and ive confirmed that the syntax's are correct as ive echoed them back in game
 
Last edited:
CURE in HEAL SECTION

Hi 40oz,

I think I know what its doing con the cure section. the below is a copy of my heal section for your reference

Spoiler:
HealSingleAnnounce=FALSE
HealSingleUse1=TRUE
HealSingleSpellName1=Blezon's Mending
HealSingleSpellGem1=GEM1
HealSingleUseAt1=70
HealSingleStopAt1=90
HealSingleStopAtMobPctHP1=0
HealSingleRecast1=1s
HealSingleConditions1=

HealSingleUse2=TRUE
HealSingleSpellName2=Antecessor's Intervention
HealSingleSpellGem2=GEM3
HealSingleUseAt2=100
HealSingleStopAt2=100
HealSingleStopAtMobPctHP2=0
HealSingleRecast2=1s
HealSingleConditions2=${Group.Average}<70 && !${Me.Song[Aura of Restoration II (Azia)].ID}

HealSingleUse3=TRUE
HealSingleSpellName3=Blood of Sanera
HealSingleSpellGem3=GEM12
HealSingleUseAt3=98
HealSingleStopAt3=100
HealSingleStopAtMobPctHP3=1
HealSingleRecast3=1s
HealSingleConditions3=(${Range.Between[1,21:${NetBots[TOON1].Poisoned}]} || ${Range.Between[1,21:${NetBots[TOON1].Diseased}]} || ${Range.Between[1,26:${NetBots[TOON1].Cursed}]} || ${Range.Between[1,26:${NetBots[TOON1].Corrupted}]}) || (${Range.Between[1,21:${NetBots[TOON2].Poisoned}]} || ${Range.Between[1,21:${NetBots[TOON2].Diseased}]} || ${Range.Between[1,26:${NetBots[TOON2].Cursed}]} || ${Range.Between[1,26:${NetBots[TOON2].Corrupted}]}) || (${Range.Between[1,21:${Me.Poisoned.Counters}]} || ${Range.Between[1,21:${Me.Diseased.Counters}]} || ${Range.Between[1,26:${Me.Cursed.Counters}]} || ${Range.Between[1,26:${Me.Corrupted.Counters}]}) || (${Range.Between[1,21:${NetBots[TOON3].Poisoned}]} || ${Range.Between[1,21:${NetBots[TOON3].Diseased}]} || ${Range.Between[1,26:${NetBots[TOON3].Cursed}]} || ${Range.Between[1,26:${NetBots[TOON3].Corrupted}]})

HealSingleUse4=TRUE
HealSingleSpellName4=Radiant Cure
HealSingleSpellGem4=ALT
HealSingleUseAt4=98
HealSingleStopAt4=100
HealSingleStopAtMobPctHP4=0
HealSingleRecast4=1s
HealSingleConditions4=(${Range.Between[22,31:${NetBots[TOON1].Poisoned}]} || ${Range.Between[22,31:${NetBots[TOON1].Diseased}]} || ${Range.Between[27,31:${NetBots[TOON1].Cursed}]}) || (${Range.Between[22,31:${NetBots[TOON2].Poisoned}]} || ${Range.Between[22,31:${NetBots[TOON2].Diseased}]} || ${Range.Between[27,31:${NetBots[TOON2].Cursed}]}) || (${Range.Between[22,31:${Me.Poisoned.Counters}]} || ${Range.Between[22,31:${Me.Diseased.Counters}]} || ${Range.Between[26,31:${Me.Cursed.Counters}]}) || (${Range.Between[22,31:${NetBots[TOON3].Poisoned}]} || ${Range.Between[22,31:${NetBots[TOON3].Diseased}]} || ${Range.Between[27,31:${NetBots[TOON3].Cursed}]})


now when someone is affected by any detrimentals its trying to cast and interrupts. I believe because its targeting someone that isn't affected then realizes it isn't affted and starts scrolling down the line until it finds someone that is affected. the below code is the log from MQ2

Spoiler:
- [2017/02/18 22:19:45] Blood of Sanera --> TOON1 <-Tries to cast then interrupts TOON1 is Not Affected
- [2017/02/18 22:20:04] Blood of Sanera --> Toon1PET <-Tries to cast then interrupts Toon1PET is Not Affected
- [2017/02/18 22:20:08] Blood of Sanera --> TOON2 <-Tries to cast then interrupts TOON2 is Not Affected
- [2017/02/18 22:20:12] Blood of Sanera --> Toon2PET <-Tries to cast then interrupts Toon2PET is Not Affected
- [2017/02/18 22:21:28] Blood of Sanera --> Toon3 <-Cast the Cure and Lands Successfully


if the toon affected is the first it attempts to cast the cure, then it lands successfully without having to cast on others that are not affected.

I don't know if this information would be helpful.. Thank you
 
IMPORTANT

Please note, I've updated bot40 and the include file bot_custom_events.inc

BOTH ITEMS NEED TO BE UPDATED, READ THE CHANGE LOG.

Basically, if you've written your own code for bot custom events, you'll need to do some manual merging of the files.

I require a specific sub to exist (SetupCustomEvents) in the bot_custom_events.inc file. I will call it once while initializing the macro. Please setup your timers/globals/etc in this sub. There's an example on how I handle the TBM Hate Raid doom aura from Inny in there.

Other updates include MQ2Nav and some backlogged bugs I had fixed but not uploaded.
 
Not a bug, but.....

I've used this in a couple old group macros, and I'm sure others could benefit if it were added to the bot.mac / bot40.mac...

#event GotItem "#*#group, 'got #1#'"

sub event_GotItem(Line,ProspectiveItem)
/echo looking for ${ProspectiveItem}
/if (${FindItemCount[=${ProspectiveItem}]}>0) /g I have ${FindItemCount[=${ProspectiveItem}]} ${ProspectiveItem}s on me
/if (${FindItemBankCount[=${ProspectiveItem}]}>0) /g I have ${FindItemBankCount[=${ProspectiveItem}]} ${ProspectiveItem}s in bank
/if (${FindItemCount[${ProspectiveItem}]}>0) /g I have ${FindItemCount[${ProspectiveItem}]} ${ProspectiveItem}-ish on me
/if (${FindItemBankCount[${ProspectiveItem}]}>0) /g I have ${FindItemBankCount[${ProspectiveItem}]} ${ProspectiveItem}-ish in bank
/return
 
Last edited:
That's a nice tidbit. I'll try to add it in when I get a chance. Thanks!

For now, you can always put it in bot_custom_events.inc
 
bot40 and /addcamp

Curious is anyone has had any success using the following functionality now that there is a new nav plugin.
/addcamp name - adds a camp to zone with that name
Then target al the mobs you want to add to camp
/stopcamp - stops creating the new camp
 
I've used it recently with the new nav plugin. I may need to hotfix Z values if you have issues with it, but I think the version on the forums here is the same one I tested with.
 
So are you planning to release an update? It's been quite some time.
 
I'd love to, but between wedding prep and prepping to move to Japan, my time's been limited. If there's massive things broken due to a patch, I'll try to get those done, but small improvements are on hold unless I find some time.
 
Needing some guidance

So I have been gone from EQ for many years and just recently decided to get back into it. I have been botting in many mmos since my EQ hiatus. I put together a 6 box team and I am wanting to learn the ropes of mq2. I own isboxer and am struggling trying to get it set up. I heard lots of good things about mq2 and decided to subscribe here as well.
I want to learn how to set up mq2 to bot my other 5 toons while I play the main.
What is possible with bot.mac? Can I afk bot my entire team, setting up paths to grind mobs for exp? Would anybody be willing to teamviewer me and help me out?
Thanks for your time and for reading this.
I would be willing to compensate someone for helping me out.
 
So I have been gone from EQ for many years and just recently decided to get back into it. I have been botting in many mmos since my EQ hiatus. I put together a 6 box team and I am wanting to learn the ropes of mq2. I own isboxer and am struggling trying to get it set up. I heard lots of good things about mq2 and decided to subscribe here as well.
I want to learn how to set up mq2 to bot my other 5 toons while I play the main.
What is possible with bot.mac? Can I afk bot my entire team, setting up paths to grind mobs for exp? Would anybody be willing to teamviewer me and help me out?
Thanks for your time and for reading this.
I would be willing to compensate someone for helping me out.

I doubt anyone would want to spoon feed you how to AFK level your guys. Maybe I'm wrong, but I don't think a ton of people are doing it well anyways.

Right now, your simplest option is to use the MQ2Bot plugin that MMOBugs alone provides. You set your group role, you type /bot on, and then you hand play the puller. This gets you most of the way there.

Then you could use this macro for the puller, or any pulling macro really. There's several out there. But the harder part is finding a reliable spot without too many obstacles that the mac can handle pulling in and your characters can handle also.

It's a steep road and learning curve to get all the way to afk, but macroing a group up these days that you play the puller/tank in is super easy. Start there. Learn what your options are. There's a forum for the MQ2Bot plugin that can be of help to you. I'd recommend the mac here as well, but it takes quite a bit of fiddling to get working well, though in the end it's a bit more customizable than the plugin I feel.
 
I want to learn how to set up mq2 to bot my other 5 toons while I play the main.

What is possible with bot.mac? Can I afk bot my entire team, setting up paths to grind mobs for exp?

I would highly advise not going fully AFK. Other players really get pissed, report you, GM shows up, you don't respond, and they ban you.

The MQ2 macro API is pretty amazing. Using it you can make your toon do just about anything your character can do. But pulling is one of the hardest things to do. If you put the time into it you can make a fully automated AFK script. But its going to take a lot of work on your part to make it for your characters, and the zone/area you choose.
 
The flaw in your post is the notion of GMs showing up. I haven't seen a live GM in years.
 
Code:
			/declare BardMezSpellLevel${BardMezTotal} int outer ${Me.AltAbility[Dirge of the Sleepwalker].Spell.Max[1]}

something wrong with that line..... it used to work, but now

${Me.AltAbility[Dirge of the Sleepwalker].Spell.Max[1]}

returns "0" (should be 108), so it will never try to mez with the AA mez
 
Code:
			/declare BardMezSpellLevel${BardMezTotal} int outer ${Me.AltAbility[Dirge of the Sleepwalker].Spell.Max[1]}

something wrong with that line..... it used to work, but now

${Me.AltAbility[Dirge of the Sleepwalker].Spell.Max[1]}

returns "0" (should be 108), so it will never try to mez with the AA mez

${Me.AltAbility[Dirge of the Sleepwalker].Spell.Max} in my TLO builder shows Max[] is from 1 to 12, you're showing 1.
Description for this is

Mmobugs only - (lucy max1-12, sets max amount for Slot if there is one)

Allakhazam says Lucy shows Max's 1-32 for this spell, values as follows as of updated 2017-06-16 19:18:40
Code:
max1	0
max10	0	max11	0
max12	0	max13	
max14		max15	
max16		max17	
max18		max19	
max2	0	max20	
max21		max22	
max23		max24	
max25		max26	
max27		max28	
max29		max3	83
max30		max31	
max32		max4	0
max5	0	max6	0
max7	0	max8	0
max9	0

The result is 0. according to the table on Lucy. The only thing with a value is Max[3] which would return 83, the max level this would work on I imagine.

You could try
Code:
/echo ${Me.AltAbility[Dirge of the Sleepwalker].Spell.Max[1]}
to see if it returns a value.

Hope this helps with a fix.
 
Last edited:
None of those max values look correct for the max level the spell will affect... I think I may have fixed this with the Enchanter stuff, I'll have to check when I'm back home. Out of town for work at the moment.