Bot mac / Plugin

Bishopx4200

New member
Joined
Jul 9, 2009
Messages
12
Reaction score
0
Points
0
Anyone able to use these with ROF2 client? I can't seem to not get them to throw errors, work ect.. lots of 'int' errors. Really sorry if this is something stupid i've done. pretty much searched the entire forums but havent seen anyone with a prob like this.
 

Attachments

  • Desktop 02.18.2017 - 22.28.16.03.png
    Desktop 02.18.2017 - 22.28.16.03.png
    1.1 MB · Views: 50
  • Desktop 02.18.2017 - 22.27.56.02.png
    Desktop 02.18.2017 - 22.27.56.02.png
    1.1 MB · Views: 25
Sorry for the delay responding.

RoF2 release is missing some TLO's that live uses, hence some problems with bot.mac. We need to document what is missing/what is needed, so we can get them added.

If you can post the bot.mac file you are using, along with screenshots of each line that is causing the error, we can look into getting these TLO's added.
 
Let's start with 40oz's bot40. I got the basics working, let's test and go from here. Make sure you have MQ2MMOTLO plugin loaded.

htw
 

Attachments

  • bot40.mac
    474.7 KB · Views: 15
  • bot_custom_events.inc
    1.4 KB · Views: 17
Sorry I haven't gotten to test any of this out yet. Definitely appreciate you guys trying to fix this up for me, will test it out this weekend and let you know how its going. Thanks again !
 
error im getting on my shaman
 

Attachments

  • EQ000004.bmp
    7.9 MB · Views: 47
my shaman so far has been the only one crashing, sent in a few bugcrash reports. also the screen shot in the above post.. let me know if u need me to turn on some more debugging or something.
 
And thanks again for all your guys's help.. Really appreciate it.
 
Hmm, maybe groupmember didn't directly inherit spawn then. I added that to any of the groupmember references, let's see if that works.

If it's easier for you, you can load mq2log, and then in your MQ2 Logs dir (default is .\Logs, but can be changed in macroquest.ini), it will put like a MQ2ChatWnd log for your server/toon, and you can copy/paste any error section, that way the entire group of errors can be seen.

Screen caps like you are putting are OK also, as long as the offending root error(s) can be seen. And thanks for that BTW. :)

Give this one a try, thanks.

htw
 

Attachments

  • bot40.mac
    475.2 KB · Views: 2
ok gave that one a go and here is what im getting now, attached the log file.
 

Attachments

  • MQ2ChatWnd.log
    8.8 KB · Views: 6
Man, I don't have any sense sometimes... I uploaded the original unmodified one. *sigh*

Here is the correct one to try, sorry.

htw
 

Attachments

  • bot40.mac
    474.9 KB · Views: 12
Everything is working great, except my shaman just seems to randomly crash all the time. Just the shaman, none of my other toons. Sent in a few crash dumps, maybe you guys can see the issue. I'm not even sure if it is the macro doing it or not.
 
Everything is working great, except my shaman just seems to randomly crash all the time. Just the shaman, none of my other toons. Sent in a few crash dumps, maybe you guys can see the issue. I'm not even sure if it is the macro doing it or not.
I'm assuming you mean EQ Client crash? Can you see if your system is producing debug dumps for it (there are none in the crash reports sent).

Thanks.

htw
 
Tracked to a core parsing issue. I will work on a fix for that kind of thing (in all versions, live/test included).

Here is one you can try that will hopefully prevent that.

htw
 

Attachments

  • bot40.mac
    475 KB · Views: 23
Thanks for the assist htw. Are these changes forward compatible? Should we integrate them in to my top post?

Edit: Nevermind, yay for code I can diff finally!

Looks like some of it would transfer, but it would break a few things also. Namely Mercenary stuff and some spell effects stuff.

Diff for reference:

Code:
173c173
< 	/while (TRUE) {
---
> 	:MainLoop
211c211
< 	}
---
> 	/goto :MainLoop
4342c4342
< 			/if (${BuffPets} && !${Group.Member[${i}].Pet.Name.Find[Familiar]} && !${Group.Member[${i}].Pet.Name.Find[_pet]} && ${Group.Member[${i}].Pet.ID} && !${${Group.Member[${i}].Pet.ID}_Buff${b}} && ${BuffClasses${b}.Find[${Group.Member[${i}].Pet.Class.ShortName}]} && ${Spawn[${Group.Member[${i}].Pet.ID}].Distance}<=100 && (${BuffConditions${b}})) /call BuffQueue ${Group.Member[${i}].Pet.ID} ${b}
---
> 			/if (${BuffPets} && !${Group.Member[${i}].Spawn.Pet.Name.Find[Familiar]} && !${Group.Member[${i}].Spawn.Pet.Name.Find[_pet]} && ${Group.Member[${i}].Spawn.Pet.ID} && !${${Group.Member[${i}].Spawn.Pet.ID}_Buff${b}} && ${BuffClasses${b}.Find[${Group.Member[${i}].Spawn.Pet.Class.ShortName}]} && ${Spawn[${Group.Member[${i}].Spawn.Pet.ID}].Distance}<=100 && (${BuffConditions${b}})) /call BuffQueue ${Group.Member[${i}].Spawn.Pet.ID} ${b}
4470a4471
> 	/if (${Defined[${Target.ID}BuffString]}) /squelch /deletevar ${Target.ID}BuffString
4471a4473
> 	/varset ${Target.ID}BuffString
5335,5336c5337,5338
< 		/varcalc numEffects ${Spell[${CureSpellName${i}}].NumEffects}
< 		/for b 1 to ${numEffects}
---
> 	  /for b 1 to 12
> 			/echo Base ${b} is : ${Spell[${CureSpellName${i}}].Base[${b}]}
6191,6192c6193,6194
< 			/if (${Group.Member[${gmember}].Pet.ID} && !${Defined[${CurrentSub}IgnoreRecast${i}_${Group.Member[${gmember}].Pet.ID}]}) /declare ${CurrentSub}IgnoreRecast${i}_${Group.Member[${gmember}].Pet.ID} int outer 1
< 			/if (${${CurrentSub}Recast${i}_${Group.Member[${gmember}].Pet.ID}} && !${${CurrentSub}IgnoreRecast${i}_${Group.Member[${gmember}].Pet.ID}}||!${GroupFightBuffClasses.Find[${Group.Member[${gmember}].Pet.Class.ShortName}]}) /goto :xtarget
---
> 			/if (${Group.Member[${gmember}].Spawn.Pet.ID} && !${Defined[${CurrentSub}IgnoreRecast${i}_${Group.Member[${gmember}].Spawn.Pet.ID}]}) /declare ${CurrentSub}IgnoreRecast${i}_${Group.Member[${gmember}].Spawn.Pet.ID} int outer 1
> 			/if (${${CurrentSub}Recast${i}_${Group.Member[${gmember}].Spawn.Pet.ID}} && !${${CurrentSub}IgnoreRecast${i}_${Group.Member[${gmember}].Spawn.Pet.ID}}||!${GroupFightBuffClasses.Find[${Group.Member[${gmember}].Spawn.Pet.Class.ShortName}]}) /goto :xtarget
6195,6196c6197,6198
< 				/if (${Target.ID}!=${Group.Member[${gmember}].Pet.ID}) /squelch /tar id ${Group.Member[${gmember}].ID}
< 				/delay 1s ${Target.ID}==${Group.Member[${gmember}].Pet.ID}
---
> 				/if (${Target.ID}!=${Group.Member[${gmember}].Spawn.Pet.ID}) /squelch /tar id ${Group.Member[${gmember}].ID}
> 				/delay 1s ${Target.ID}==${Group.Member[${gmember}].Spawn.Pet.ID}
6543,6544c6545,6546
< 			/if (${HealPetConditions${i}} && (${Range.Between[1,${${CurrentSub}UseAt${i}}:${Group.Member[${gmember}].Pet.PctHPs}]} && (${Spawn[id ${Group.Member[${gmember}].ID}].Pet.Distance}<${Spell[${${CurrentSub}SpellName${i}}].MyRange}||${Spawn[id ${Group.Member[${gmember}].ID}].Pet.Distance}<${Spell[${${CurrentSub}SpellName${i}}].AERange} && ${Spell[${${CurrentSub}SpellName${i}}].AERange}))||${gmember}==0 && ${Range.Between[1,${${CurrentSub}UseAt${i}}:${Me.Pet.PctHPs}]}) {
< 				/if (${gmember} && ${HealPetRecast${i}${Group.Member[${gmember}].Pet.ID}}||!${gmember} && ${HealPetRecast${i}${Me.Pet.ID}}) /goto :skip
---
> 			/if (${HealPetConditions${i}} && (${Range.Between[1,${${CurrentSub}UseAt${i}}:${Group.Member[${gmember}].Spawn.Pet.PctHPs}]} && (${Spawn[id ${Group.Member[${gmember}].ID}].Spawn.Pet.Distance}<${Spell[${${CurrentSub}SpellName${i}}].MyRange}||${Spawn[id ${Group.Member[${gmember}].ID}].Spawn.Pet.Distance}<${Spell[${${CurrentSub}SpellName${i}}].AERange} && ${Spell[${${CurrentSub}SpellName${i}}].AERange}))||${gmember}==0 && ${Range.Between[1,${${CurrentSub}UseAt${i}}:${Me.Pet.PctHPs}]}) {
> 				/if (${gmember} && ${HealPetRecast${i}${Group.Member[${gmember}].Spawn.Pet.ID}}||!${gmember} && ${HealPetRecast${i}${Me.Pet.ID}}) /goto :skip
6549,6550c6551,6552
< 					/if (${gmember}) /squelch /tar id ${Group.Member[${gmember}].Pet.ID}
< 					/delay 1s ${Target.ID}==${Group.Member[${gmember}].Pet.ID}
---
> 					/if (${gmember}) /squelch /tar id ${Group.Member[${gmember}].Spawn.Pet.ID}
> 					/delay 1s ${Target.ID}==${Group.Member[${gmember}].Spawn.Pet.ID}
6565,6566c6567,6568
< 							/if (!${Defined[HealPetRecast${i}${Group.Member[${gmember}].Pet.ID}]}) /declare HealPetRecast${i}${Group.Member[${gmember}].Pet.ID} timer outer
< 							/varset HealPetRecast${i}${Group.Member[${gmember}].Pet.ID} ${Ini[MyIni,HealPet,HealPetRecast${i}]}
---
> 							/if (!${Defined[HealPetRecast${i}${Group.Member[${gmember}].Spawn.Pet.ID}]}) /declare HealPetRecast${i}${Group.Member[${gmember}].Spawn.Pet.ID} timer outer
> 							/varset HealPetRecast${i}${Group.Member[${gmember}].Spawn.Pet.ID} ${Ini[MyIni,HealPet,HealPetRecast${i}]}
6865,6866c6867,6868
< 	/if (${Group.Member[${DesignatedTank}].Pet.ID}) /declare DTHPs int local ${Group.Member[${DesignatedTank}].Pet.PctHPs}
< 	/if (!${Group.Member[${DesignatedTank}].Pet.ID}) /declare DTHPs int local ${Spawn[${DesignatedTank}].PctHPs}
---
> 	/if (${Group.Member[${DesignatedTank}].Spawn.Pet.ID}) /declare DTHPs int local ${Group.Member[${DesignatedTank}].Spawn.Pet.PctHPs}
> 	/if (!${Group.Member[${DesignatedTank}].Spawn.Pet.ID}) /declare DTHPs int local ${Spawn[${DesignatedTank}].PctHPs}
6877,6879c6879,6881
< 			/if (${Group.Member[${DesignatedTank}].Pet.ID}) {
< 				/squelch /tar id ${Group.Member[${DesignatedTank}].Pet.ID}
< 				/delay 1s ${Group.Member[${DesignatedTank}].Pet.ID}
---
> 			/if (${Group.Member[${DesignatedTank}].Spawn.Pet.ID}) {
> 				/squelch /tar id ${Group.Member[${DesignatedTank}].Spawn.Pet.ID}
> 				/delay 1s ${Group.Member[${DesignatedTank}].Spawn.Pet.ID}
6883c6885
< 			/if (!${Group.Member[${DesignatedTank}].Pet.ID}) {
---
> 			/if (!${Group.Member[${DesignatedTank}].Spawn.Pet.ID}) {
7183d7184
< 			/varcalc numEffects ${Spell[${Me.Gem[${i}]}].NumEffects}
7186c7187
< 			/for effect 1 to ${numEffects}
---
> 			/for effect 1 to 12
7292,7304c7293,7305
< 	/if (${MercStanceOOC.NotEqual[NULL]} && ${Mercenary.State.Equal[ACTIVE]} && ${Select[${Me.CombatState},RESTING,ACTIVE]} && !${AddCount} && ${Mercenary.Stance.NotEqual[${${Me.Mercenary.Class.ShortName}_MercStanceOOC}]} && ${${Me.Mercenary.Class.ShortName}_MercStanceOOC.Length}) {
< 		/stance ${${Me.Mercenary.Class.ShortName}_MercStanceOOC}
< 		/return
< 	}
< 	/if (${Mercenary.State.Equal[ACTIVE]} && (${Target.Named}||${Target.Name.Find[#]}) && ${AddCount} && ${${Me.Mercenary.Class.ShortName}_MercStanceNamed.NotEqual[NULL]} && ${Mercenary.Stance.NotEqual[${${Me.Mercenary.Class.ShortName}_MercStanceNamed}]}) {
< 		/stance ${MercStanceNamed}
< 		/return
< 	}
<
< 	/if (${Mercenary.State.Equal[ACTIVE]} && !${Target.Named} && !${Target.Name.Find[#]} && ${AddCount} && ${${Me.Mercenary.Class.ShortName}_MercStanceNormal.NotEqual[NULL]} && ${Mercenary.Stance.NotEqual[${${Me.Mercenary.Class.ShortName}_MercStanceNormal}]}) {
< 		/stance ${MercStanceNormal}
< 		/return
< 	}
---
> |	/if (${MercStanceOOC.NotEqual[NULL]} && ${Mercenary.State.Equal[ACTIVE]} && ${Select[${Me.CombatState},RESTING,ACTIVE]} && !${AddCount}) {
> |		/stance ${${Me.Mercenary.Class.ShortName}_MercStanceOOC}
> |		/return
> |	}
> |	/if (${Mercenary.State.Equal[ACTIVE]} && (${Target.Named}||${Target.Name.Find[#]}) && ${AddCount}) {
> |		/stance ${MercStanceNamed}
> |		/return
> |	}
>
> |	/if (${Mercenary.State.Equal[ACTIVE]} && !${Target.Named} && !${Target.Name.Find[#]} && ${AddCount}) {
> |		/stance ${MercStanceNormal}
> |		/return
> |	}
 
Last edited:
Hi all,
Just tried the mq2bot plugin and I am getting spam "No such 'Spawn' member 'Buff'
Also got one about mezzed too. This was only on the 2 pet classes.

Rof2 emu.
Anythoughts?

TLO is loaded.

Also getting spammed this on 1 char only a mage. it wasn't following with autofollow, tried a /stick command

Code:
[2018/02/05 11:47:21] ACCESS VIOLATION Invalid Read at location 0x00530052
[2018/02/05 11:47:21] >> PulsePlugins: Line 421
[2018/02/05 11:47:21] >> 0x50202b15 mq2netbots!MMOVersion+0x19f5
 
Last edited: