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

Sub cast is in spell routines.inc

Im in hospital now... new baby etc. So stuck using phone.

Thanks. I'll take a look at the sub. I also noticed a note you put saying that some /call cast were not working and it seemed to work with /casting
 
Yeah... call cast throws an error if its an aura... i changed that one call to use mq2cast and it now works fine.
 
Found a new problem with Spell_Routines.inc


Code:
	/if (${spellType.Equal[item]}) {
		/if (!${FindItem[${spellName}].ID}) {
			/return CAST_UNKNOWNSPELL
		}
	}
Was wrong in Sub Cast

It wasn't getting past that point and was returning CAST_UNKNOWNSPELL due to improper bracing.

I'm working forward to fix what exists
 
Spell_Routines Fix

Updated Spell_Routines. Doesn't fix the bot but I can get /call cast to work now.
 

Attachments

  • Spell_routines.inc
    68.8 KB · Views: 11
Some headway was made to the buff routines. I can get the buffs to cast with some ghetto code, but it doesn't check for success/failures. Thus it recasts over and over. Getting it sorted out and hopefully will have a fix tonight.
 
Got the buffs to work. Testing conducted on two test characters to include an SK and a Shmn, both low lvl.

Try it, lemme know.
 

Attachments

  • Spell_routines.inc
    68.5 KB · Views: 7
  • bot40.mac
    489.4 KB · Views: 6
Last edited:
Need to add the calculation in for the buff duration extensions to the timer for recasting to be more efficient. For some reason the way it was coded was causing issues with the timer that was being set. The timer was being set to 0 which means there was no timer and thus spells that didn't take hold would be recast over and over. For now I've gone with the spells base duration timer as a recast timer for both spells that take hold and those that are successfully cast.

It still seems to try it rather often. Once I get the right timer setup in place (probably find a good bit of information in the old code I overwrote) and I can confirm it's accurate I'll implement it into the code. This is particularly important for the spells that don't take hold because the algorithm checks to see if you currently have the buff, and if you don't checks to see if there is an existing timer for it. Then if both are false it casts the spell. In the case of spells that don't take hold you won't have the buff and the only thing stopping the recast is the timer.
 
Updated to calculate buff extensions. The problem was found that there was no "Base case" where you didn't have a back item.

Prior to this update the buff extension logic had been bypassed.
Code:
+ ** 2017-10-07 - Chatwiththisname
+ **   - Fixed buff logic
+ **   - Fixed Buff durations to use Buff Extension modifiers. 
+ **   - Updated from depreciated syntax of ${InvSlot[back].Item.AugSlot1} == 7 to ${Me.Inventory[back].AugSlot1} == 7
+ **   - Added base case in the event character has no back item at all
+ **   - Checked to verify that the character which has a back item with an AugSlot to also check
+ **      AugSlot2 and Augslot3 as I've seen cases where the 7 or 8 augslot could be any of those. 
+ **   - Checked that the item with an Augslot of 7 or 8 also has an effect on it to avoid false positives
+ **    	 using a ${Bool[${Me.Inventory[back].Spell}]} check to return true or false to avoid false positive. 
+ **   - Changed to If/then/else type statements for all buff loading events to avoid unnessesary parsing. 
+ **   - Changed debug 3 for spell timer to reflect the time in minutes based on the existing formula to 
+ **      convert from milliseconds for readability.
+ **
 

Attachments

  • bot40.mac
    490.5 KB · Views: 36
  • Spell_routines.inc
    68.5 KB · Views: 27
Last edited:
Ok so with your latestest update, my zerkers are still standing around holding there weapons looking pretty but not assisting, my cleric is healing, Shaman just standing around as well .. Hit me up with whatever information you may need
 
Ok so with your latestest update, my zerkers are still standing around holding there weapons looking pretty but not assisting, my cleric is healing, Shaman just standing around as well .. Hit me up with whatever information you may need

Make a hotkey on those characters that say
Code:
/echo ${CurrentSub}

Then mash the fuck out of it for a minute. See if it's rotating through sub routines or if it's been locked in one. Also, names redacted, you can post here, or message me copies of your INI's for those characters.

I assume you're using /mac bot40 assisttargetsnamehere
 
I really applaud all you guys for putting in so much time to get this bot macro working again. Have any of you tried moving to the bot plugin now?

I've moved most of my guys there now and have worked out most of the kinks with my ini - and boy is it so much faster.

I had tried to move to the plugin a couple of years ago and found no real driver, but the macro breaking outright was just enough motivation to move to something that worked that wasn't the KA macro
 
I really applaud all you guys for putting in so much time to get this bot macro working again. Have any of you tried moving to the bot plugin now?

I've moved most of my guys there now and have worked out most of the kinks with my ini - and boy is it so much faster.

I had tried to move to the plugin a couple of years ago and found no real driver, but the macro breaking outright was just enough motivation to move to something that worked that wasn't the KA macro

PeteSampras was the original creator of bot.mac and later MQ2Bot plugin, so it makes sense to move to the plugin if you don't mind the time involved in learning new things. Some people just aren't willing to let the macro die and I need experience with coding so I've adopted helping get this going again.

I don't unfortunately have any experience with the programming of plugin's which is done in C++. While taking a C++ class this semester as we speak (I should really be doing that instead of this) That doesn't account for the private API of the macroqeust2 setup that I would have to learn to even understand existing plugin's, much less go creating my own.

While moving to the plugin seems like a reasonable alternative keep in mind that as of right now PeteSampras is not maintaining the plugin. He has mentioned to me interest in picking it back up again to add some improvements/functionality to it as he's learned a bit more about coding in general, as of right now he has not done so. If a plugin breaking update comes out and nobody steps up to make the correction to the plugin then you may again be a fish out of water. Sometimes having active developers working on something will outweigh existing functionality. Getting this one up to snuff will be important if this ever comes to pass because then you would be out the macro and the plugin. For those that have come to depend on the functionality of bot40 and MQ2Bot that would certainly be unfortunate.

For those that have stuck by this macro to help get it updated by reporting errors and providing fixes I thank you. Keep the information coming so we can update the macro accordingly.

Once the issues have been ironed out it is possible we can look at adding new functionality for those that might have some ideas rolling around in their heads.
 
Tiki - this is my ini for my low level shaman. He does things when I pull with my other character. My shaman isn't even level 30 yet though lol.


Code:
[Settings]
DebugLevel=0
OptionsCheck=|Pulling|Merc|Aura|Buff|ClickyMaintenance|ClickyNuke|Fade|Debuff|Dot|FightBuff|HealSingle|HealGroup|HealSelf|HealPet|MainTankBuff|Nuke|Pet|Rez|Root|SelfBuff|Snare|XHeal|Mana|ModRod|
OptionsCheckRaid=|Pulling|Merc|AA|Aura|Buff|ClickyMaintenance|ClickyNuke|Fade|Debuff|Dot|FightBuff|HealSingle|HealGroup|HealSelf|HealPet|MainTankBuff|Nuke|Pet|Rez|Root|SelfBuff|Snare|XHeal|Mana|ModRod|
BotVersion=v2016.1009
RestrictedZones=344,202,151,345
LootNPCs=FALSE
Verbose=FALSE
AnnounceChannel=echo
EQBCAnnounceAdds=FALSE
AutoHideNPCCorpses=TRUE
EmergencySkill=EmergencySkill
ImmunityCheck=FALSE
AnnounceEvents=TRY|CAST_SUCCESS|CAST_IMMUNE|CAST_RESIST
UseCamp=TRUE
CampRadius=30
CampRadiusMax=150
InterruptToHealAt=50
InterruptToXHealAt=50
MyChannel=echo
[Assist]
AssistType=1
AssistAt=99
AttackRange=150
AttackCommand=/attack on
AmIOffTank=FALSE
UseMelee=FALSE
UseArchery=FALSE
ArcheryMaxDistance=200
ArcheryMinDistance=35
BurnModeAlias=BurnModeAlias
AssistPC=Woah
[Follow]
FollowMethod=stick|30 healer
FollowCommand=Follow
StopFollowCommand=Wait
MoveUpCommand=MoveUp
[Campfire]
CF_Item1=Fellowship Kit:                                                                                                                                                                     
CF_Item2=Fellowship Lumber Bundle:                                                                                                                                                                     
[Pulling]
AlertListClear=TRUE
AlertListClearTimer=60m
PullConColor=LIGHT BLUE,BLUE,WHITE,YELLOW
CourseCorrectionTimer=5
AmIPuller=FALSE
PullRadius=1000
PullZRadius=1000
PullCastRange=150
MQ2NavPullRadius=10
MQ2NavPullZRadius=10
ReturnActionTotal=1
PullingMethod=Standard
PullingAnnounceCMD=echo
PullingTotal=1
PullAtMyHPs=75
PullSkillRequiresLineOfSight1=TRUE
PullSkillRequiresLineOfSight2=TRUE
[Merc]
MercAssistAt=98
[Buff]
BuffConditions=TRUE
BuffXTargets=FALSE
BuffPets=FALSE
AutoInvis=FALSE
AutoBreakInvis=FALSE
BuffTotal=7
BuffAnnounce=True
BuffUse1=TRUE
BuffSpellName1=Spirit of Wolf
BuffSpellIcon1=Spirit of Wolf
BuffSpellGem1=gem1
BuffAlias1=SoW
BuffClasses1=BER,BRD,BST,CLR,DRU,ENC,MAG,MNK,NEC,PAL,RNG,ROG,SHD,SHM,WAR,WIZ
BuffConditions1=!${Me.Combat} && !${Me.Moving}
BuffUse2=TRUE
BuffSpellName2=Inner Fire
BuffSpellIcon2=Inner Fire
BuffSpellGem2=gem2
BuffAlias2=1234567890
BuffConditions2=!${Me.Combat} && !${Me.Moving}
BuffClasses2=BER,BRD,BST,CLR,DRU,ENC,MAG,MNK,NEC,PAL,RNG,ROG,SHD,SHM,WAR,WIZ
BuffUse3=TRUE
BuffSpellName3=Spirit of Cat
BuffSpellIcon3=Spirit of Cat
BuffSpellGem3=gem3
BuffAlias3=----------------------
BuffConditions3=!${Me.Combat} && !${Me.Moving}
BuffClasses3=BER,BRD,BST,CLR,DRU,ENC,MAG,MNK,NEC,PAL,RNG,ROG,SHD,SHM,WAR,WIZ
BuffUse4=TRUE
BuffSpellName4=Protect
BuffSpellIcon4=Protect
BuffSpellGem4=gem4
BuffAlias4=----------------------
BuffConditions4=!${Me.Combat} && !${Me.Moving}
BuffClasses4=BER,BRD,BST,CLR,DRU,ENC,MAG,MNK,NEC,PAL,RNG,ROG,SHD,SHM,WAR,WIZ
BuffUse5=TRUE
BuffSpellName5=Spirit of Monkey
BuffSpellIcon5=Spirit of Monkey
BuffSpellGem5=gem5
BuffAlias5=----------------------
BuffConditions5=!${Me.Combat} && !${Me.Moving}
BuffClasses5=BER,BRD,BST,CLR,DRU,ENC,MAG,MNK,NEC,PAL,RNG,ROG,SHD,SHM,WAR,WIZ
BuffUse6=TRUE
BuffSpellName6=Endure Magic
BuffSpellIcon6=Endure Magic
BuffSpellGem6=gem6
BuffAlias6=----------------------
BuffConditions6=!${Me.Combat} && !${Me.Moving}
BuffClasses6=BER,BRD,BST,CLR,DRU,ENC,MAG,MNK,NEC,PAL,RNG,ROG,SHD,SHM,WAR,WIZ
BuffUse7=TRUE
BuffSpellName7=Spirit of Ox
BuffSpellIcon7=Spirit of Ox
BuffSpellGem7=gem7
BuffAlias7=----------------------
BuffConditions7=!${Me.Combat} && !${Me.Moving}
BuffClasses7=BER,BRD,BST,CLR,DRU,ENC,MAG,MNK,NEC,PAL,RNG,ROG,SHD,SHM,WAR,WIZ

[ClickyMaintenance]
clickies=0
[MainTankBuff]
DesignatedTank=NULL
MainTankBuffTotal=1
MainTankBuffAnnounce=FALSE
MainTankBuffUse1=TRUE
MainTankBuffSpellName1=Fleeting Fury
MainTankBuffSpellGem1=gem1
MainTankBuffUseAt1=100
MainTankBuffStopAt1=5
MainTankBuffNamedOnly1=FALSE
MainTankBuffRecast1=2m

MainTankBuffUse2=TRUE
MainTankBuffUseAt2=100
MainTankBuffStopAt2=5
MainTankBuffNamedOnly2=FALSE
MainTankBuffRecast2=2m

MainTankBuffUse3=TRUE
MainTankBuffUseAt3=100
MainTankBuffStopAt3=5
MainTankBuffNamedOnly3=FALSE
MainTankBuffRecast3=2m

MainTankBuffUse4=TRUE
MainTankBuffUseAt4=100
MainTankBuffStopAt4=5
MainTankBuffNamedOnly4=FALSE
MainTankBuffRecast4=2m

MainTankBuffUse5=TRUE
MainTankBuffUseAt5=100
MainTankBuffStopAt5=5
MainTankBuffNamedOnly5=FALSE
MainTankBuffRecast5=2m

[Pet]
PetGHOLD=TRUE
UsePet=FALSE
PetSpellGem=gem1
UsePetFocusAA=TRUE
PetAttackAt=97
ShrinkPet=FALSE
ShrinkPetIfHeightAbove=1.5
DoPetHeals=FALSE
PetHealAt=50
UseAAPetHeal=TRUE
PetAAHealAt=5
DoPetBuffs=FALSE
PetBuffRecheck=10s
PetBuffTotal=0
PetBuffRecast1=1s
PetBuffRecast2=1s
PetBuffRecast3=1s
PetBuffRecast4=1s
PetBuffRecast5=1s
PetBuffRecast6=1s
[Rez]
RezRaidTimer=5m
RezGroupTimer=1m
GrabCorpse=TRUE
RezTotal=2
ForceMemRez=FALSE
RezAnnounce=FALSE
RezUse1=FALSE
RezDuringCombat1=TRUE
RezUse2=FALSE
RezDuringCombat2=TRUE
RezTrustedTotal=0

[Combat]
StandardCombatOptions=Bard|XHeal|HealSingle|HealGroup|HealBalance|HealSelf|HealPet|Disc|MainTankBuff|FightBuff|Lifetap|Stun|AA|Dot|Nuke|Snare|ClickyNuke|Jolt|Rez|ModRod|Mana|Merc
CombatFrequency5=Bard|XHeal|HealSingle|HealGroup|HealBalance|HealSelf|HealPet|Disc|MainTankBuff|FightBuff|Lifetap|Stun|AA|Dot|Nuke|Snare|ClickyNuke|Jolt|Rez|ModRod|Mana|Merc

[AAtoBuy]
AABuy=FALSE
AABuyChannel=/echo
AABuyAt=25
AABuyMode=Classic
AABuyPageOrder=Class|Archetype|General|Special
AAActivatedOnly=FALSE
SetAAPctOnLevelTo=0
AACount=0

[ImHit]
ImHitTotal=3
ImHitAnnounce=FALSE
ImHitUse1=FALSE
ImHitRecast1=1s
ImHitUseAtMyHP1=30
ImHitUse2=FALSE
ImHitRecast2=1s
ImHitUseAtMyHP2=30
ImHitUse3=FALSE
ImHitRecast3=1s
ImHitUseAtMyHP3=30

[Custom]
CustomCombatTotal=0
CustomRestTotal=0

[AA]
AATotal=25
AAAnnounce=FALSE
AAUse1=FALSE
AAUseAtMobPctHP1=96
AAStopAtMobPctHP1=5
AARecast1=1s
AANamedOnly1=FALSE
AAUse2=FALSE
AAUseAtMobPctHP2=96
AAStopAtMobPctHP2=5
AARecast2=1s
AANamedOnly2=FALSE
AAUse3=FALSE
AAUseAtMobPctHP3=96
AAStopAtMobPctHP3=5
AARecast3=1s
AANamedOnly3=FALSE
AAUse4=FALSE
AAUseAtMobPctHP4=96
AAStopAtMobPctHP4=5
AARecast4=1s
AANamedOnly4=FALSE
AAUse5=FALSE
AAUseAtMobPctHP5=96
AAStopAtMobPctHP5=5
AARecast5=1s
AANamedOnly5=FALSE
AAUse6=FALSE
AAUseAtMobPctHP6=96
AAStopAtMobPctHP6=5
AARecast6=1s
AANamedOnly6=FALSE
AAUse7=FALSE
AAUseAtMobPctHP7=96
AAStopAtMobPctHP7=5
AARecast7=1s
AANamedOnly7=FALSE
AAUse8=FALSE
AAUseAtMobPctHP8=96
AAStopAtMobPctHP8=5
AARecast8=1s
AANamedOnly8=FALSE
AAUse9=FALSE
AAUseAtMobPctHP9=96
AAStopAtMobPctHP9=5
AARecast9=1s
AANamedOnly9=FALSE
AAUse10=FALSE
AAUseAtMobPctHP10=96
AAStopAtMobPctHP10=5
AARecast10=1s
AANamedOnly10=FALSE
AAUse11=FALSE
AAUseAtMobPctHP11=96
AAStopAtMobPctHP11=5
AARecast11=1s
AANamedOnly11=FALSE
AAUse12=FALSE
AAUseAtMobPctHP12=96
AAStopAtMobPctHP12=5
AARecast12=1s
AANamedOnly12=FALSE
AAUse13=FALSE
AAUseAtMobPctHP13=96
AAStopAtMobPctHP13=5
AARecast13=1s
AANamedOnly13=FALSE
AAUse14=FALSE
AAUseAtMobPctHP14=96
AAStopAtMobPctHP14=5
AARecast14=1s
AANamedOnly14=FALSE
AAUse15=FALSE
AAUseAtMobPctHP15=96
AAStopAtMobPctHP15=5
AARecast15=1s
AANamedOnly15=FALSE
AAUse16=FALSE
AAUseAtMobPctHP16=96
AAStopAtMobPctHP16=5
AARecast16=1s
AANamedOnly16=FALSE
AAUse17=FALSE
AAUseAtMobPctHP17=96
AAStopAtMobPctHP17=5
AARecast17=1s
AANamedOnly17=FALSE
AAUse18=FALSE
AAUseAtMobPctHP18=96
AAStopAtMobPctHP18=5
AARecast18=1s
AANamedOnly18=FALSE
AAUse19=FALSE
AAUseAtMobPctHP19=96
AAStopAtMobPctHP19=5
AARecast19=1s
AANamedOnly19=FALSE
AAUse20=FALSE
AAUseAtMobPctHP20=96
AAStopAtMobPctHP20=5
AARecast20=1s
AANamedOnly20=FALSE
AAUse21=FALSE
AAUseAtMobPctHP21=96
AAStopAtMobPctHP21=5
AARecast21=1s
AANamedOnly21=FALSE
AAUse22=FALSE
AAUseAtMobPctHP22=96
AAStopAtMobPctHP22=5
AARecast22=1s
AANamedOnly22=FALSE
AAUse23=FALSE
AAUseAtMobPctHP23=96
AAStopAtMobPctHP23=5
AARecast23=1s
AANamedOnly23=FALSE
AAUse24=FALSE
AAUseAtMobPctHP24=96
AAStopAtMobPctHP24=5
AARecast24=1s
AANamedOnly24=FALSE
AAUse25=FALSE
AAUseAtMobPctHP25=96
AAStopAtMobPctHP25=5
AARecast25=1s
AANamedOnly25=FALSE
[Aura]
AuraTotal=2
AuraAnnounce=FALSE
AuraUse1=FALSE
AuraUse2=FALSE

[ClickyNuke]
ClickyNukeTotal=0
ClickyNukeAnnounce=FALSE
ClickyNukeUse1=TRUE
ClickyNukeRecast1=1s
ClickyNukeUseAtMobPctHP1=96
ClickyNukeStopAtMobPctHP1=1
ClickyNukeNamedOnly1=FALSE
ClickyNukeUse2=TRUE
ClickyNukeRecast2=1s
ClickyNukeUseAtMobPctHP2=96
ClickyNukeStopAtMobPctHP2=1
ClickyNukeNamedOnly2=FALSE
ClickyNukeUse3=TRUE
ClickyNukeRecast3=1s
ClickyNukeUseAtMobPctHP3=96
ClickyNukeStopAtMobPctHP3=1
ClickyNukeNamedOnly3=FALSE

[Fade]
FadeTotal=0
FadeAnnounce=FALSE
FadeUse1=FALSE
FadeUseAtMyHP1=5

[Debuff]
DontDebuffConColor=
DebuffAdds=TRUE
DebuffTotal=2
DebuffTotalIfNamed=2
ForceMemDebuff=TRUE
DebuffAnnounce=TRUE

DebuffUse1=TRUE
DebuffUseAtMobPctHP1=96
DebuffStopAtMobPctHP1=1
DebuffRecast1=2m
DebuffMaxTries1=2
DebuffSpellName1=Malaise
DebuffSpellGem1=gem1

DebuffUse2=TRUE
DebuffUseAtMobPctHP2=96
DebuffStopAtMobPctHP2=1
DebuffRecast2=2m
DebuffMaxTries2=2
DebuffSpellName2=Walking Sleep
DebuffSpellGem2=gem7

DebuffUse3=TRUE
DebuffUseAtMobPctHP3=96
DebuffStopAtMobPctHP3=1
DebuffRecast3=2m
DebuffMaxTries3=2

DebuffUse4=TRUE
DebuffUseAtMobPctHP4=96
DebuffStopAtMobPctHP4=1
DebuffRecast4=2m
DebuffMaxTries4=2

DebuffUse5=TRUE
DebuffUseAtMobPctHP5=96
DebuffStopAtMobPctHP5=1
DebuffRecast5=2m
DebuffMaxTries5=2

DebuffUse6=TRUE
DebuffUseAtMobPctHP6=96
DebuffStopAtMobPctHP6=1
DebuffRecast6=2m
DebuffMaxTries6=2

[Dot]
DotTotal=3
DotTotalIfNamed=3
ForceMemDot=TRUE
DotAnnounce=TRUE

DotUse1=TRUE
DotSpellName1=Affliction
DotSpellGem1=gem3
DotUseAtMobPctHP1=96
DotStopAtMobPctHP1=30
DotRecast1=1s
DotMaxTries1=2

DotUse2=TRUE
DotSpellName2=Infectious Cloud
DotSpellGem2=gem4
DotUseAtMobPctHP2=96
DotStopAtMobPctHP2=30
DotRecast2=1s
DotMaxTries2=2

DotUse3=TRUE
DotSpellName3=Tainted Breath
DotSpellGem3=gem5
DotUseAtMobPctHP3=96
DotStopAtMobPctHP3=30
DotRecast3=1s
DotMaxTries3=2

DotUse4=TRUE
DotUseAtMobPctHP4=96
DotStopAtMobPctHP4=30
DotRecast4=1s
DotMaxTries4=2

DotUse5=TRUE
DotUseAtMobPctHP5=96
DotStopAtMobPctHP5=30
DotRecast5=1s
DotMaxTries5=2

DotUse6=TRUE
DotUseAtMobPctHP6=96
DotStopAtMobPctHP6=30
DotRecast6=1s
DotMaxTries6=2

DotUse7=TRUE
DotUseAtMobPctHP7=96
DotStopAtMobPctHP7=30
DotRecast7=1s
DotMaxTries7=2

DotUse8=TRUE
DotUseAtMobPctHP8=96
DotStopAtMobPctHP8=30
DotRecast8=1s
DotMaxTries8=2

[FightBuff]
FightBuffTotal=2
ForceMemFightBuff=TRUE
FightBuffAnnounce=TRUE


FightBuffUse1=FALSE
FightBuffNamedOnly1=FALSE
FightBuffForAggro1=FALSE
FightBuffSpellName1=Fleeting Fury
FightBuffSpellGem1=gem6
FightBuffSpellIcon1=


FightBuffUse2=TRUE
FightBuffNamedOnly2=FALSE
FightBuffForAggro2=FALSE
FightBuffUse3=TRUE
FightBuffSpellName2=Talisman of the Beast
FightBuffSpellGem2=gem6
FightBuffSpellIco21=Talisman of the Beast

FightBuffNamedOnly3=FALSE
FightBuffForAggro3=FALSE
FightBuffSpellIcon2=----------------------

[HealSelf]
HealSelfTotal=1
HealSelfSpell=Healing


[HealSingle]
HealPullerName=
HealPullerDist=50
HealSingleTotal=1
HealSingleAnnounce=TRUE
ForceMemHealSingle=TRUE

HealSingleUse1=TRUE
HealSingleSpellName1=Healing
HealSingleSpellGem1=gem8
HealSingleUseAt1=75
HealSingleStopAt1=50
HealSingleStopAtMobPctHP1=0
HealSingleRecast1=1s
HealSingleConditions1=(${Me.PctMana} > 5)

HealSingleUse2=TRUE
HealSingleUseAt2=80
HealSingleStopAt2=90
HealSingleRecast2=1s

HealSingleUse3=TRUE
HealSingleUseAt3=80
HealSingleStopAt3=90
HealSingleRecast3=1s
[HealGroup]
HealGroupTotal=0
HealGroupAnnounce=TRUE

HealGroupSpellName1=
HealGroupSpellGem1=gem8
HealGroupUse1=TRUE
HealGroupUseAt1=99
HealGroupStopAt1=80
HealGroupAvgHP1=60

HealGroupUse2=TRUE
HealGroupUseAt2=50
HealGroupStopAt2=80
HealGroupAvgHP2=60

HealGroupUse3=TRUE
HealGroupUseAt3=50
HealGroupStopAt3=80
HealGroupAvgHP3=60

[HealPet]
HealPetTotal=0
HealPetAnnounce=FALSE
HealPetUse1=TRUE
HealPetUseAt1=50
HealPetStopAt1=90
HealPetRecast1=1s

HealPetUse2=TRUE
HealPetUseAt2=50
HealPetStopAt2=90
HealPetRecast2=1s

[Nuke]
NukeTotal=0
NukeTotalIfNamed=1
ForceMemNuke=FALSE
NukeAnnounce=FALSE

NukeUse1=TRUE
NukeSpellName1=Frost Rift
NukeSpellGem1=gem5
NukeUseAtMobPctHP1=96
NukeStopAtMobPctHP1=1
NukeRecast1=1s

NukeUse2=TRUE
NukeUseAtMobPctHP2=96
NukeStopAtMobPctHP2=1
NukeRecast2=1s

NukeUse3=TRUE
NukeUseAtMobPctHP3=96
NukeStopAtMobPctHP3=1
NukeRecast3=1s
[Root]
DontRootConColor=|GREY|GREEN|
RootPrimaryTarget=FALSE
RootAdds=FALSE
FaceNPCToRoot=FALSE
RootTotal=1
RootTotalIfNamed=0
RootAnnounce=TRUE

RootUse1=TRUE
RootSpellName1=Root
RootSpellGem1=gem6
RootUseAtMobPctHP1=96
RootStopAtMobPctHP1=1
RootRecast1=2m
RootMaxTries1=2

RootUse2=TRUE
RootUseAtMobPctHP2=96
RootStopAtMobPctHP2=1
RootRecast2=2m
RootMaxTries2=2

RootUse3=TRUE
RootUseAtMobPctHP3=96
RootStopAtMobPctHP3=1
RootRecast3=2m
RootMaxTries3=2

[SelfBuff]
SelfBuffTotal=0
SelfBuffAnnounce=TRUE
SelfBuffUse1=TRUE

SelfBuffUse2=TRUE
SelfBuffUse3=TRUE
SelfBuffUse4=TRUE
SelfBuffUse5=TRUE
SelfBuffUse6=TRUE
SelfBuffUse7=TRUE
SelfBuffUse8=TRUE
[Snare]
SnareTotal=1
ForceMemSnare=FALSE
SnareAnnounce=FALSE
SnareUse1=FALSE
SnareUseAtMobPctHP1=15
SnareMaxTries1=2
[XHeal]
XHealPullerName=NULL
XHealPullerDist=50
XHealTotal=0
XHealAnnounce=FALSE
XHealUse1=TRUE
XHealUseAt1=50
XHealStopAt1=90
XHealUse2=TRUE
XHealUseAt2=50
XHealStopAt2=90
XHealUse3=TRUE
XHealUseAt3=50
XHealStopAt3=90
[Mana]
MedAt=75
MedToFull=FALSE
MedEvenIfNotInOOCRegen=FALSE
MedTimer=10s
Canni_IfManaBelow=70
DontCanni_UnlessManaBelow=99
Canni_IfMyHPAbove=70
[Roles]
SetRoles=FALSE
GroupLeader=
GroupMainTank=NULL
GroupMainAssist=NULL
GroupPuller=NULL
GroupXTarget1=Group Assist Target
RaidXTarget1=Raid Assist 1 Target
 
I would like to reply to Zoopa and say that what i personnaly like in bot mac is its complexity, and that there is always something that can be improved.

Sure some other programs can be more efficient, i was using your one before moving to bot mac.

But phylosophically, its to me a journey that lasts and where i find more fun that playing the game. So why changing ?

I must be the reincarnation of a hippie, when the were claiming that the journey is what matters, not the goal.

Cheers
Arph
 
Ok so with your latestest update, my zerkers are still standing around holding there weapons looking pretty but not assisting, my cleric is healing, Shaman just standing around as well .. Hit me up with whatever information you may need

Make a hotkey on those characters that say
Code:
/echo ${CurrentSub}

Then mash the fuck out of it for a minute. See if it's rotating through sub routines or if it's been locked in one. Also, names redacted, you can post here, or message me copies of your INI's for those characters.

I assume you're using /mac bot40 assisttargetsnamehere


gonna give this a try before i never had to put my tanks name after the /mac bot40 but ill give it a go see if i get differnt results if no luck ill shoot you my Ini's in a pm
 
Ok so with your latestest update, my zerkers are still standing around holding there weapons looking pretty but not assisting, my cleric is healing, Shaman just standing around as well .. Hit me up with whatever information you may need

Make a hotkey on those characters that say
Code:
/echo ${CurrentSub}

Then mash the fuck out of it for a minute. See if it's rotating through sub routines or if it's been locked in one. Also, names redacted, you can post here, or message me copies of your INI's for those characters.

I assume you're using /mac bot40 assisttargetsnamehere


gonna give this a try before i never had to put my tanks name after the /mac bot40 but ill give it a go see if i get differnt results if no luck ill shoot you my Ini's in a pm

It's to do with the way params are handled, since they are a parameter they always get declared. If the param returns null do this doesn't evaluate true because the param isn't returning null, it's returning blank, which is different.
 
Ok so with your latestest update, my zerkers are still standing around holding there weapons looking pretty but not assisting, my cleric is healing, Shaman just standing around as well .. Hit me up with whatever information you may need

Make a hotkey on those characters that say
Code:
/echo ${CurrentSub}

Then mash the fuck out of it for a minute. See if it's rotating through sub routines or if it's been locked in one. Also, names redacted, you can post here, or message me copies of your INI's for those characters.

I assume you're using /mac bot40 assisttargetsnamehere


gonna give this a try before i never had to put my tanks name after the /mac bot40 but ill give it a go see if i get differnt results if no luck ill shoot you my Ini's in a pm

It's to do with the way params are handled, since they are a parameter they always get declared. If the param returns null do this doesn't evaluate true because the param isn't returning null, it's returning blank, which is different.

TBH. im not even sure why that is there..... It should be reading any MA from the ini, and if you have it set to assisttype 3 (defualt), it doesn't even need an assistPC as it will use xtarget1 to get the kill target. This was still working fine in the last version that I was using, however, I have been too busy with a new baby to test any of Chatwiththisname's updates.