Bot macro - Customization

Post your loot.ini or email/pm me it and let me know a specific item name it isnt picking up just so i can verify the settings are correct. Try this version and see if it works any better. I added a couple checks. (moved it to bot mac thread)

Actually, this is wrong thread for problems. Posting on main bot thread and will delete all our posts in a day or two.
 
Last edited:
Ok, I've tried everything, RTFMed and still can't get this wizard ini working. There's 1 basic problem: He should nuke with Thricewoven until either Gift or Thricewoven proc in the song window, then he should nuke with Ethereal. he doesn't. he keeps alternating between the two spells.

Any help is appreciated.

Code:
[GoM]
GoMTotal=1
GoMTotalIfNamed=1
GoMAnnounce=FALSE
GoMUse1=TRUE
GoMSpellName1=Ethereal Inferno Rk. II
GoMSpellIcon1=Ethereal Inferno Rk. II
GoMSpellGem1=gem2
GoMConditions=

[Nuke]
NukeTotal=2
NukeTotalIfNamed=2
ForceMemNuke=FALSE
NukeAnnounce=TRUE
NukeConditions=


NukeUse1=TRUE
NukeSpellName1=Thricewoven Electricity Rk. II
NukeSpellGem1=gem3
NukeUseAtMobPctHP1=96
NukeStopAtMobPctHP1=10
NukeRecast1=1s
NukeConditions1=


NukeUse2=TRUE
NukeSpellName2=Ethereal Inferno Rk. II
NukeSpellGem2=gem5
NukeUseAtMobPctHP2=96
NukeStopAtMobPctHP2=10
NukeRecast2=1s
NukeConditions=(${Me.Buff[Twincast].ID} || ${Me.Song[Gift of Dreamlike Exquisite Radiant Mana Rk. II].ID} 

|| ${Me.Song[Thricewoven Power Rk. II].ID} || ${Me.Song[Flashsear Singe II].ID} || ${Me.Buff[Syllable of Fire II].ID}  || ${Me.Buff[Syllable of Mastery II].ID})
 
Your section is jacked up and you dont have a "2" at the end of that condition, so it doesn't check it, so it fires every time. Looks like you pushed enter also. Also, MMOBUGs does partial matches on buffs, so you dont need ranks.

Code:
[Nuke]
NukeTotal=2
NukeTotalIfNamed=2
ForceMemNuke=FALSE
NukeAnnounce=TRUE
NukeConditions=


NukeUse1=TRUE
NukeSpellName1=Thricewoven Electricity Rk. II
NukeSpellGem1=gem3
NukeUseAtMobPctHP1=96
NukeStopAtMobPctHP1=10
NukeRecast1=1s
NukeConditions1=

NukeUse2=TRUE
NukeSpellName2=Ethereal Inferno Rk. II
NukeSpellGem2=gem5
NukeUseAtMobPctHP2=96
NukeStopAtMobPctHP2=10
NukeRecast2=1s
NukeConditions[COLOR=Yellow]2[/COLOR]=[COLOR=Lime](${Me.Twincast} || ${Me.GoM} || ${Me.Song[Thricewoven Power].ID} || ${Me.Song[Flashsear Singe].ID} || ${Me.Buff[Syllable of Fire].ID} || ${Me.Buff[Syllable of Mastery].ID})[/COLOR]
 
Ive been trying to think of a condition for Main tank buff to cast when the puller actually has the mob in camp. As of now, as soon as a mob pops on the Xtarget my cleric will cast main tank stuff on the tank. But its useless for the Fintar's Retort because the cleric gets a message "You must first select a target for this spell, then "Mytank feels the channeling retort of Fintar". If the tank has a target that mob gets the debuff. Not just that all of the other main tank buffs are cast and the pull might be 15 seconds away depending. Any ideas?

Code:
[MainTankBuff]
MainTankBuffConditions=
MainTankBuffTotal=4
MainTankBuffAnnounce=FALSE

MainTankBuffUse1=TRUE
MainTankBuffSpellName1=Focused Celestial Regeneration
MainTankBuffConditions1=
MainTankBuffSpellGem1=alt
MainTankBuffUseAt1=100
MainTankBuffStopAt1=5
MainTankBuffNamedOnly1=FALSE
MainTankBuffRecast1=2m
MainTankBuffConditions1=

MainTankBuffUse2=FALSE
MainTankBuffSpellName2=
MainTankBuffSpellGem2=gem5
MainTankBuffUseAt2=95
MainTankBuffStopAt2=5
MainTankBuffNamedOnly2=FALSE
MainTankBuffRecast2=2m
MainTankBuffConditions2=

MainTankBuffUse3=TRUE
MainTankBuffSpellName3=Fintar's Retort
MainTankBuffSpellGem3=gem11
MainTankBuffUseAt3=100
MainTankBuffStopAt3=5
MainTankBuffNamedOnly3=FALSE
MainTankBuffRecast3=2m
MainTankBuffConditions3=

MainTankBuffUse4=TRUE
MainTankBuffSpellName4=Earnest Elixir Rk. II
MainTankBuffSpellGem4=gem7
MainTankBuffUseAt4=100
MainTankBuffStopAt4=5
MainTankBuffNamedOnly4=FALSE
MainTankBuffRecast4=2m
MainTankBuffConditions4=
 
MainTankBuffConditions3=(${Me.XTarget[1].Spawn.Distance}<50 && ${Me.XTarget[1].ID})
 
Need some assistance setting up Paladin discs. Right now it is working fine, far as I can tell. I wanted to put in a condition for Deflection disc. so it only fires after the Projection of Piety pet fades. For the life of me I can't figure out the line of code.
Code:
[Disc]

DiscTotal=4
DiscUse1=TRUE
DiscName1=Deflection Discipline
DiscNamedOnly1=TRUE
DiscEndCost1=0
DiscRecast1=1s
DiscConditions1=

DiscUse2=TRUE
DiscName2=Renounce
DiscNamedOnly2=FALSE
DiscEndCost2=284
DiscRecast2=15s
DiscConditions2=

DiscUse3=TRUE
DiscName3=Prominent Mantle
DiscNamedOnly3=TRUE
DiscEndCost3=7307
DiscRecast3=1s
DiscConditions3=!${Disc.Ready[Deflection Discipline]}

DiscUse4=TRUE
DiscName4=Armor of Zeal
DiscNamedOnly4=TRUE
DiscEndCost4=7307
DiscRecast4=1s
DiscConditions4=(!${Disc.Ready[Deflection Discipline]} && !${Disc.Ready[Prominent Mantle]})

Also Projection of Piety seems to auto fire when engaging a named, is that a default action? Or should it be in the AA settings?

Code:
[AA]
AATotal=8
AAAnnounce=FALSE
AAUse1=FALSE
AASpellName1=Armor of the Inquisitor
AAUseAtMobPctHP1=96
AAStopAtMobPctHP1=5
AARecast1=1s
AANamedOnly1=FALSE
AAConditions1=
AAUse2=FALSE
AASpellName2=Hand of Disruption
AAUseAtMobPctHP2=96
AAStopAtMobPctHP2=5
AARecast2=1s
AANamedOnly2=FALSE
AAConditions2=
AAUse3=FALSE
AASpellName3=Fundament: First Spire of Holiness
AAUseAtMobPctHP3=96
AAStopAtMobPctHP3=5
AARecast3=1s
AANamedOnly3=FALSE
AAConditions3=
AAUse4=FALSE
AASpellName4=Fundament: Second Spire of Holiness
AAUseAtMobPctHP4=96
AAStopAtMobPctHP4=5
AARecast4=1s
AANamedOnly4=FALSE
AAConditions4=
AAUse5=FALSE
AASpellName5=Fundament: Third Spire of Holiness
AAUseAtMobPctHP5=96
AAStopAtMobPctHP5=5
AARecast5=1s
AANamedOnly5=FALSE
AAConditions5=
AAUse6=FALSE
AASpellName6=Inquisitor's Judgement
AAUseAtMobPctHP6=96
AAStopAtMobPctHP6=5
AARecast6=1s
AANamedOnly6=FALSE
AAConditions6=
AAUse7=FALSE
AASpellName7=Valorous Rage
AAUseAtMobPctHP7=96
AAStopAtMobPctHP7=5
AARecast7=1s
AANamedOnly7=FALSE
AAConditions7=
AAUse8=FALSE
AASpellName8=Gift of Life
AAUseAtMobPctHP8=96
AAStopAtMobPctHP8=5
AARecast8=1s
AANamedOnly8=FALSE
AAConditions8=
 
Aggro is done automatically supposing you have the AAs available or spells memorized. There is also an [Aggro] section for pal/sk/war. Long reuse AA are set to use only on named.

As far as defelection only firing once projection is down: that is wierd since projection doesnt mitigate damage, so it has nothing to do with each other so I am not sure why you would want to do that. That aside: You can use ${Me.AltAbility[Projection of Piety].ReuseTime}<whatever the normal reuse time is minus the duration of the pet as your condition. So say pet lasts 15 seconds and reuse is 1000 seconds:
${Me.AltAbility[Projection of Piety].ReuseTime}<985

Right after using it, you can /echo ${Me.AltAbility[Projection of Piety].ReuseTime} to see your reuse time and do some math to figure out optional conditions.
 
Pete, two things:

1) Is there a place for a nuke delay? In my homebrew macs, I used to use

Code:
/declare nukedelay timer outer 6s

...
   /if (${Me.SpellReady[${nuke1}]} && !${nukedelay}) {

	:ReCast1
        /call Cast "${nuke1}" "${nuke1gem}"
	/if (${Macro.Return.Equal[CAST_FIZZLE]}) /goto :ReCast1

     /varset nukedelay ${nukedelay.OriginalValue}
   }

And that made for a nice delay between nukes and saved mana. With bot.mac, I'm chain nuking. I'd like to add a delay for mana preservation.

2: This mage ini isn't doing what I like, so I figure I read something wrong. I want her to cast the first 3 nukes, but I see the fourth one being cast. I thought NukeTotal would address it. Guess not. Also, did I read the wiki correctly and there is no IfNamed option like with AA?

Code:
[Nuke]
NukeTotal=3
NukeTotalIfNamed=5
ForceMemNuke=FALSE
NukeAnnounce=FALSE
NukeUse1=TRUE
NukeSpellName1=Shock of Ethereal Steel
NukeSpellGem1=gem8
NukeUseAtMobPctHP1=96
NukeStopAtMobPctHP1=1
NukeRecast1=1s
NukeConditions1=
NukeUse2=TRUE
NukeSpellName2=Ruinous Servant
NukeSpellGem2=gem12
NukeUseAtMobPctHP2=96
NukeStopAtMobPctHP2=1
NukeRecast2=1s
NukeConditions2=
NukeUse3=TRUE
NukeSpellName3=Spear of Magma
NukeSpellGem3=gem3
NukeUseAtMobPctHP3=96
NukeStopAtMobPctHP3=5
NukeRecast3=1s
NukeConditions3=
NukeUse4=TRUE
NukeSpellName4=Bolt of Molten Steel
NukeSpellGem4=gem2
NukeUseAtMobPctHP4=96
NukeStopAtMobPctHP4=5
NukeRecast4=1s
NukeConditions4=
NukeUse5=TRUE
NukeSpellName5=Force of Elements
NukeSpellGem5=
NukeUseAtMobPctHP5=95

As always, thanks for your help.
 
NukeRecast1=1s

It will cast your 5 nukes if it is named:
NukeTotalIfNamed=5

If you want something to only use on a named:
NukeConditions1=${Target.Named}
 
Heyas,

Starting.. Thank you Pete. Love the Macro. Use it with my wiz and cleric and works fantastic.

I have a question on how to heal a NPC and if we can even do that.
I am trying to complete the following mission:
The Doomscale Horde :: Quests :: EverQuest :: ZAM

The issue I have is keeping the NPC alive.
I have a Warrior, Wizard, Cleric, Bst, and two cleric mercs just incase.

My question is.. can I get my cleric running Bot Macro to heal the npc(Commander Galenth), as well as the group?
I did some wiki searching and searching the forum, and was unable to find anything with people healing the npc.

I know we can bring a chanter running Bot macro, and win the event with mezzing.. but Id like to be able to pull it off this way so we can dump the mercs and add real players down the road.

Thanks
 
Short answer: As is, you cannot do what you want unless that NPC is charmed.

Long answer: You can absolutely do it via events or [Custom] section. You just need to write up an include and then /call it, or make it an event and #include it. I can probably write you something later, right now I have to go to work. I would want to know the zone id or shortname and when to stop healing the NPC, based on your link, some other boss spawns so I am guessing you stop healing the commander when that final boss pops.
 
from new expansion the WK mission/raid requires you to keep an npc alive cant think of other current expansion stuff besides that one.
 
back from work, I think this can do what you are asking. instructions are in the |** notes **| section.

Code:
|**
You need to include this in the bot.mac by opening it up each version changing and adding the following line at the top:
#include galenth.inc

Or if you eventually make more includes, you could just put them all in 1 include and do something like:
#include common.inc

Add the following section stuff:
[Custom]
CustomRestTotal=2
CustomCombatTotal=2
CustomRest1=/if (${SpawnCount[Deathmaster Sarenth]} && ${Defined[GalenthStarted]}) /varset GalenthStarted FALSE
CustomRest2=/if (${GalenthStarted} && ${Spawn[Commander Galenth].ID}) /call HealNPC ${Spawn[Commander Galenth].ID}
CustomCombat1=/if (${SpawnCount[Deathmaster Sarenth]} && ${Defined[GalenthStarted]}) /varset GalenthStarted FALSE
CustomCombat2=/if (${GalenthStarted} && ${Spawn[Commander Galenth].ID}) /call HealNPC ${Spawn[Commander Galenth].ID}

Add this alias if you want to be able to turn it off manually:
/alias /stopgal /echo GalenthStop

**|
#event GalenthStart "Commander Galenth shouts 'Stand fast! Here they come again!'"
#event GalenthHit "Commander Galenth clutches a wound in his side. 'Is that the best they can do? Let them attack! I'll slaughter them all!'"
#event GalenthStop "#*#GalenthStop#*#"

Sub Event_GalenthStop
/if (${Defined[GalenthStarted]}) /varset GalenthStarted FALSE
/return

Sub Event_GalenthHit
/squelch /tar galenth npc
/delay 1s ${Target.Name.Find[galenth]})
/if (${Me.Class.Priest} && ${Target.PctHPs}<90) /call HealNPC ${Target.ID}
/return

Sub Event_GalenthStart
/if (!${Defined[GalenthStarted]}) /declare GalenthStarted bool outer
/varset GalenthStarted TRUE
/return


Sub HealNPC(id)
/if (!${Defined[${id}HPs]}) /declare ${id}HPs int outer
/declare tempid int outer ${Target.ID}
/if (${Spawn[npc ${id}]}) {
    /squelch /tar id ${id}
    } else {
    /return
    }
/delay 1s ${Target.ID}==${id}
/declare i int local
/for i 1 to ${HealSingleTotal}
/if (${Target.PctHPs}>${HealSingleUseAt${i}}||${Target.PctHPs}>${HealSingleStopAt${i}}||!${HealSingleUse${i}}||!${Me.SpellReady[${HealSingleSpellName${i}}]} && !${Me.AltAbility[${HealSingleSpellName${i}}]}||!${HealSingleConditions${i}}||${HealSingleRecast${i}${Target.ID}}) /goto :skipi
                        /delay 3s !${Me.Casting.ID}
                        /call ${EchoSub} "${Teal} ${${CurrentSub}SpellName${i}} --> ${White} ${Target}"
                        /if (${Verbose} && ${MyChannel.NotEqual[NULL]}) /docommand /${MyChannel} ${HealSingleSpellName${i}} --> ${Target.CleanName}
                        /if (${${CurrentSub}Announce} && ${AnnounceChannel.NotEqual[NULL]}) /docommand /${AnnounceChannel} ${${CurrentSub}SpellName${i}} --> ${Target.CleanName}
                        /call Cast "${HealSingleSpellName${i}}" ${HealSingleSpellGem${i}} 3s
                        /if (${Select[${Macro.Return},CAST_SUCCESS,CAST_NOTHOLD]}) {
                        /if (!${Defined[HealSingleRecast${i}${Target.ID}]}) /declare HealSingleRecast${i}${Target.ID} timer outer
                                    /varset HealSingleRecast${i}${Target.ID} ${Ini[MyIni,HealSingle,HealSingleRecast${i}]}
                        }
:skipi
/next i

/if (${tempid}) /squelch /tar id ${tempid}
/return

That will use your [HealSingle] section to work on whatever npc id you send to that subroutine. You would just need to do what is at the top of the notes section.

I didnt test it at all in game, so there could be a typo.
 
Is there a clever way to temporarily turn buffs off? Looking to make a hotkey for group leader to tell the rest of the group follow and stop and I'd like to turn buffs off while moving. I'm transitioning over from a finally broken modbot setup and looking for the equivalent of "dobuffs off/on" .

My best so far is to hotkey endmac and stick, then unstick and restart the macro. Crude but it works. I've tried using toggle option but either I screwed up or it seemed to just make a mess of that line in the ini. Is maybe BuffConditions= valid or any suggestions?

Thanks for a cool bot macro Pete! I've been able to get my group basics all set up with a couple hours work and very few problems. Good stuff.

phnb
 
Gonna give it a whirl in a few, and see how it works. Will post results on it after.
 
Is there a clever way to temporarily turn buffs off? Looking to make a hotkey for group leader to tell the rest of the group follow and stop and I'd like to turn buffs off while moving. I'm transitioning over from a finally broken modbot setup and looking for the equivalent of "dobuffs off/on" .

My best so far is to hotkey endmac and stick, then unstick and restart the macro. Crude but it works. I've tried using toggle option but either I screwed up or it seemed to just make a mess of that line in the ini. Is maybe BuffConditions= valid or any suggestions?

Thanks for a cool bot macro Pete! I've been able to get my group basics all set up with a couple hours work and very few problems. Good stuff.

phnb
well, you could just use the invison/invisoff commands to be invis and that would work. or you could put:

[Buff]
BuffConditions=!${Following}

Then you just issue your Follow and StopFollow commands and that toggles ${Following} from TRUE/FALSE
 
Heyas.

Ok so no joy. No errors either.
Doesnt target Galenth, nor heal him.
Also
In the instance, he dies and re-spawned. Started as the following and then progressed.

"ADDS+ 105 PAL Commander Galenth ID: 8023 XTARGET"
"ADDS+ 105 PAL Commander Galenth ID: 8177 XTARGET"
"ADDS+ 105 PAL Commander Galenth ID: 8306 XTARGET"

Cleric is healing the group etc, but not healing him. Have the inc in the macro folder as well. Even put a copy in the main Macroquest2 folder incase I had a brain fart.
 
I see a possible issue that would cause it to bounce out of the routine. try this version.
 
Gave a few runs, and it didn't kick off heals on the NPC.

And there aree "too many adds messages coming up. But didnt think that mattered. My wiz was assisting the MT and nuking appropriately.
 
Last edited: