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

What would cause, and how do I fix, a stalled macro?

When I start the macro it works perfectly for about 3-4 kills, then stalls and does nothing. It does this for every toon I play, whether it be a cleric or melee.
/echo ${Macro.CurLine} shows what line the macro is stalled on.

I thought there was a CurSub too but i dont see it in the code.

/varset CurrentSub someSubName

is all over the place. Should be able to /echo ${CurrentSub}
 
Chat, I'm begging you, please get back to work on this and leave the Dev macro for later. I need bot. KissAssist has too many problems but bot is unusable in its current state.
 
Chat, I'm begging you, please get back to work on this and leave the Dev macro for later. I need bot. KissAssist has too many problems but bot is unusable in its current state.

I apologize that Bot is unstable in it's existing state. I've done what I could with the limited time I've had to manage it. Classes started again 2 days ago and I've been sunk into staying on course with completing my class work.

As I mentioned, a lot of code that exists inside of bot40.mac is above my head or coded in a way that makes it complicated to find. The ini routine has baffled me from the start and every single sub references it.

If I get some time to sit down and work with it I will, but as it stands I again have a full schedule.
 
I've just grabbed what I think is the most recent copy from the threads and given them a test and seems to be okay.

What isn't working still?
 
I've just grabbed what I think is the most recent copy from the threads and given them a test and seems to be okay.

What isn't working still?

Don't know exactly :-x Suppose that would be something Art would have to share.
 
it was working until i put in the new pet spell it seems it is all spelled correct but it no longer summons pet
 
of course lvl 110 coincided with the last patch

Suppose it's possible that mq2cast doesn't have support for that particular spell for some reason. Nothing in the code for this program has changed in some day as I haven't had a chance to deal with it.
 
Also, you might try Bot.mac Updates and Bug Fixes by [40oz]

Which is where I last uploaded. I'm not entirely sure how things have changed as I've been told there is a plugin to use old macro code, but I implemented quite a few "fixes" that might not have even been needed up to this point due to that plugin.
 
There is a plugin for using old macro code? What is it called?
 
Nothing major just seeing sometihng odd on cleric randomly uses epic/divine arb.


HTML:
- [2018/02/10 12:53:39] [MQ2] Beginning main bot loop
- [2018/02/10 12:53:48]  Aegis of Superior Divinity -->  NULL
- [2018/02/10 12:53:53]  Aegis of Superior Divinity -->  NULL
 - [2018/02/10 12:54:01] Your integrity has been preserved.
 - [2018/02/10 12:54:03]  Divine Arbitration -->  NULL

group balance section of INi

HTML:
[HealBalance]
HealBalanceTotal=2
HealBalanceAnnounce=FALSE
HealBalanceUse1=TRUE
HealBalanceSpellName1=Aegis of Superior Divinity
HealBalanceSpellGem1=item
HealBalanceUseAt1=60
HealBalanceStopAt1=70
HealBalanceConditions1=
HealBalanceUse2=TRUE
HealBalanceSpellName2=Divine Arbitration
HealBalanceSpellGem2=alt
HealBalanceUseAt2=60
HealBalanceStopAt2=70
HealBalanceConditions2=
HealBalanceConditions=TRUE
 
Last edited:
SHaman undefined variables

HTML:
 - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceUse1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused.
 - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused.
 - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused.
 - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused.
- [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused.
 
SHaman undefined variables

HTML:
 - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceUse1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused. - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused. - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused. - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused.- [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused.
So that is obviously your HealBalance section yet you did not post your shaman's HealBalance section that is directly related to the error.
 
SHaman undefined variables

HTML:
 - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceUse1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused. - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused. - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused. - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused.- [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused.
So that is obviously your HealBalance section yet you did not post your shaman's HealBalance section that is directly related to the error.

Sub Heal references all the healing subs, even if you don't have those sections in your options check.
 
Shamans dont load a Healbalance section just heal/self/group so i added my group section



HTML:
[HealGroup]
HealGroupTotal=3
HealGroupAnnounce=FALSE
HealGroupUse1=TRUE
HealGroupSpellName1=Prehistoric Intervention
HealGroupSpellGem1=gem2
HealGroupUseAt1=50
HealGroupStopAt1=80
HealGroupAvgHP1=50
HealGroupConditions1=
HealGroupUse2=TRUE
HealGroupSpellName2=Eyrzekla's Recourse
HealGroupSpellGem2=gem3
HealGroupUseAt2=80
HealGroupStopAt2=90
HealGroupAvgHP2=80
HealGroupConditions2=
HealGroupUse3=TRUE
HealGroupUse3=TRUE
HealGroupSpellName3=Spiritual Swell
HealGroupSpellGem3=gem5
HealGroupUseAt3=80
HealGroupStopAt3=90
HealGroupAvgHP3=80
HealGroupConditions3=
HealGroupUse3=TRUE
HealGroupConditions3=
HealGroupConditions=TRUE





SHaman undefined variables

HTML:
 - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceUse1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused. - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused. - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused. - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused.- [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused.
So that is obviously your HealBalance section yet you did not post your shaman's HealBalance section that is directly related to the error.
 
Last edited:
SHaman undefined variables

HTML:
 - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceUse1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused. - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused. - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused. - [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused.- [2018/02/10 12:53:50] WARNING: Undefined Variable HealBalanceSpellName1 used on line 5433@bot40.mac /if (${${Heals.Arg[${y},|]}Use${t}} && !${${Heals.Arg[${y},|]}Recast${t}} && (${Me.SpellReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${Me.AltAbilityReady[${${Heals.Arg[${y},|]}SpellName${t}}]}||${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].ItemSlot} && !${FindItem[${${Heals.Arg[${y},|]}SpellName${t}}].Timer})) {Macro Paused.
So that is obviously your HealBalance section yet you did not post your shaman's HealBalance section that is directly related to the error.

Sub Heal references all the healing subs, even if you don't have those sections in your options check.

That's a valid point poly. OptionsCheck is probably relevant as well. Because they do get references regardless if it was an option.