Zbot Helpdesk

Copycat

Member
Joined
Jun 18, 2007
Messages
78
Reaction score
0
Points
6
Location
MN
Hey everyone. Some of you know me as that guy who sells flags/gear, whatever. What you don't know is I love to write code.

With Loonies retired from the game, I am once again taking up Zbot updates.
Feel free to PM me with your questions, or post them on this thread. I know there are other Zbot threads out there, so don't scream "he didn't search!" i'm simply offering my own thread as a Zbot Helpdesk.

I'm not going to throw up Zbot on this thread, but rather, if you ask in a PM with an email, I will send it to you with some tips. For the average player, theres alot to do before your exactly set up, being a HUD macro.

With that said, PM to Copycat.

NOTE: You can also request to be added to my send list. I'll automatically send you new zbot updates when I deem the additions stable.

Accepted Suggestions:
1. Bard Mez
2. Fix the Mercenary-freak out bug.

Completed Suggestions:
1. Added a third attack spell.
2. Successfully fixed the routine to use the res window without breaking.
3. /Heal REZ AE now uses "Blessing of Resurrection"
4. Group Healing *SHOULD* be fixed. (Props. to htw) Thanks again!
 
Last edited:
Awesome.

First request is to hunt down and fix the group heal bug that makes it unusable for healers with the MMOBugs compile. Doesn't do it on the the regular MQ2 vanilla compile.

Code:
groupspell=groupspellname
groupavg=80
grouppct=70
groupcnt=3

Anyone with these settings just casts group heal over and over.
 
Can you add support for bards AE mez ?
 
1. I don't use group heal at all, because my 6box has 3 priests and its inefficient. But yes, I will fix this.

A healing bracket template for you all.

###################################################
[Heal]
active=TRUE
healset=Heal
spam=FALSE
channel=gsay
puller=NULL
pullerrange=75
maintank=NULL
maintankdly=25
maintankpct=80

chchannel=rsay
chspell1=Devout Light Rk. II
chspell2=Devout Light Rk. II
chmsg1=CH1DL...
chmsg2=CH2DL...

battlerez=TRUE
battlerezdist=50

hotheal=FALSE
hotspell=Devout Elixir
hothealmsg=DE...

divarbme=40
divarbmt=25
divarbother=20
divarbmsg=Divine Arbitration...

epicgroup=70
epicsingle=30
epiccount=1
epicdelay=5
epichealmsg=Aegis of Superior Divinity...

groupspell=NULL
groupavg=0
grouppct=0
groupcnt=0
groupmsg=Word of Vivacity...

healspell1=Devout Light Rk. II
healmsg1=Heal1 DL...
healpct1=75
healstop1=95
healabort1=-150

tankspell1=Twelfth Night
tankmsg1=T1 12th....
tankpct1=28
tankstop1=95
tankabort1=-150

tankspell2=Devout Light Rk. II
tankmsg2=T2 DL...
tankpct2=75
tankstop2=95
tankabort2=-150

tankspell3=Devout Light Rk. II
tankmsg3=T3 DL...
tankpct3=75
tankstop3=95
tankabort3=-150

[Healing]
epicdelay=5
###################################################

2. Bard Mez, can you give me specifics on the bard mez spell, etc. Time of reuse, cast time, how long it lasts, etc.
 
Last edited:
Also, a change to the MQ2Moveutils from MMO Compile changed and no longer accepts mpause. You can remove that from your Zbot, or get a new copy from myself. PM me.
 
I played with Loonies before he quit, I learned Zbot from him.
And also wrote it when he took a year break from the game.

We're talking 5.45 ATM. :p
 
Bard AE Mez wave of slumber recast 30 seconds duration 5 ticks. It would be nice to have this coded into the macro so that if there are more then 3 + mobs it will use ae mez instead of single.
 
Awesome.

First request is to hunt down and fix the group heal bug that makes it unusable for healers with the MMOBugs compile. Doesn't do it on the the regular MQ2 vanilla compile.

Code:
groupspell=groupspellname
groupavg=80
grouppct=70
groupcnt=3
Anyone with these settings just casts group heal over and over.

You could try changing Sub CheckGroupHeal to this, see if that helps you:
Code:
Sub CheckGroupHeal
    /if (!${Me.SpellReady[${groupspell}]} || ${Me.CurrentMana}<${Spell[${groupspell}].Mana}) /return FALSE

    /declare i int
    /declare cnt int 0
    /declare avg int 0
    /declare hurt int 0

    /for i 0 to ${Group}
        /if (${Spawn[pc ${Group.Member[${i}]}].ID}) {
            /if (${Group.Member[${i}].PctHPs}>0 &&  ${Group.Member[${i}].Distance}<=${Spell[${groupspell}].AERange}) {
                /varcalc cnt ${cnt}+1
                /varcalc avg ${avg}+${Group.Member[${i}].PctHPs}
/if (${Group.Member[${i}].PctHPs}<=${grouppct}) /varcalc hurt ${hurt}+1 
            }
        }
    /next i
    /if (${cnt}) /varcalc avg ${avg}/${cnt}
    /if (${avg}<=${groupavg} || ${hurt}>=${groupcnt}) /return TRUE
/return FALSE

htw
 
This is awesome Copycat, I've been using v5.23. I tried v 5.30and it didn't really work well for me. Going to pm you now!
 
zbot

One thing I've noticed, when you target a merc, the bots think of them as npc mobs, and try to attack, melee bots try stick to the mercs, turn attack on etc, this is v 5.23 and 5.30 that it occurs in.
 
Last edited:
One thing I've noticed, when you target a merc, the bots think of them as npc mobs, and try to attack, melee bots try stick to the mercs, turn attack on etc, this is v 5.23 and 5.30 that it occurs in.

Zbot doesn't support mercs and you are right it thinks they are mobs. It was written years before mercs came into the game. It has over 7000 lines of code and all of its targeting is hard coded for PC's. Rewriting it to make it compatible with mercs would take months. Recoding it ignore mercs might not take so long.
 
Last edited:
You could try changing Sub CheckGroupHeal to this, see if that helps you:
Code:
Sub CheckGroupHeal
    /if (!${Me.SpellReady[${groupspell}]} || ${Me.CurrentMana}<${Spell[${groupspell}].Mana}) /return FALSE

    /declare i int
    /declare cnt int 0
    /declare avg int 0
    /declare hurt int 0

    /for i 0 to ${Group}
        /if (${Spawn[pc ${Group.Member[${i}]}].ID}) {
            /if (${Group.Member[${i}].PctHPs}>0 &&  ${Group.Member[${i}].Distance}<=${Spell[${groupspell}].AERange}) {
                /varcalc cnt ${cnt}+1
                /varcalc avg ${avg}+${Group.Member[${i}].PctHPs}
/if (${Group.Member[${i}].PctHPs}<=${grouppct}) /varcalc hurt ${hurt}+1 
            }
        }
    /next i
    /if (${cnt}) /varcalc avg ${avg}/${cnt}
    /if (${avg}<=${groupavg} || ${hurt}>=${groupcnt}) /return TRUE
/return FALSE

htw

Much thanks, I have 4 or 5 hours tonight to work on things.
 
Zbot doesn't support mercs and you are right it thinks they are mobs. It was written years before mercs came into the game. It has over 7000 lines of code and all of its targeting is hard coded for PC's. Rewriting it to make it compatible with mercs would take months. Recoding it ignore mercs might not take so long.

I won't be rewriting the hardcoded target system to be compatible with mercs. Most boxers don't even use mercs.
 
Oh maybe I worded it wrong, I wasn't looking for support for mercs, but just to get rid of the annoyance of them sticking to mercs if your main assist targets them, sorry for the confusion. But its minor annoyance, i've been using /keypress esc to clear target when that happens.
 
Find the following sub line 5880 ish and add the ,MERCENARY highlited in yellow. This should keep zbot from targeting your mercs

Code:
Sub ValidateTarget
	/varset validtarget FALSE
	/if (!${Target.ID} || ${Target.ID}==${ignoreid}) /return
	/if (${Select[${Target.Type},PC,CORPSE,CHEST,TRIGGER,TRAP,TIMER,ITEM,MOUNT[B][COLOR="Yellow"],MERCENARY[/COLOR][/B]]}) /return
	/if (${Target.Type.Equal[Pet]} && ${Target.Master.ID}==${Me.ID}) /return
	/varset validtarget TRUE
/return
 
Last edited:
Find the following sub line 5880 ish and add the ,MERCENARY highlited in yellow. This should keep zbot from targeting your mercs

Code:
Sub ValidateTarget
	/varset validtarget FALSE
	/if (!${Target.ID} || ${Target.ID}==${ignoreid}) /return
	/if (${Select[${Target.Type},PC,CORPSE,CHEST,TRIGGER,TRAP,TIMER,ITEM,MOUNT[B][COLOR="Yellow"],MERCENARY[/COLOR][/B]]}) /return
	/if (${Target.Type.Equal[Pet]} && ${Target.Master.ID}==${Me.ID}) /return
	/varset validtarget TRUE
/return


This will be in the next update, thanks.
 
Hi CC,

I tried out version 5.47 today, and it is not working for me at all. Nothing like version 5.23 used too. The macro starts up without any problems and the bots do buff, but after that nothing works really except for melee bots assisting. This is same issue I had in version 5.30 and so defaulted back to using 5.23. (I am using the same ini setup from version 5.23, except, of course the version is different, could this be the issue?) I also tried resetting the ini version by replacing version with 0.00 in the ini file, before starting the macro, no go here either.

Problems so far in v 5.47:

1) Healing/ debuffing/nuking/dotting doesn't work at all for me (this is same issue I had with using version 5.30)
2)Buffing works when you initially start the macro, but if your bots die/wipe and you rez up, the buffing routine is not working after rez. Even requesting buffs via tells or bc after rez does not work.
--------

Problems that have existed in ALL versions:

3) Buffrequests - Seems to take request from anyone, regardless if there is authorization set , i.e. its not checking if the person is authorized, this could be bad if random person sends request for buffs
4) Buff routine - Its not checking for blocked spells and tries to recast the spell every 5 mins if one of the other buffs in block is up, for example -

buff1=Armor of the Devout Rk. II
block1=Blessing of the Ironwood Rk. II|Talisman of the Dire|Talisman of the Dire Rk. II|Talisman of the Bloodworg|Talisman of the Bloodworg Rk. II|Talisman of the Bloodworg Rk. III

5) Pet routine - The pet routine works fine except when you encounter mobs that ae and kill your pet. Using shaman pet for example, if you are facing a named that ae's, the shaman gets stuck in loop summoning pet over and over, without any precedence to healing or debuffing first (minor issue).


----

Does support for spell gems 10, 11, 12 exist in 5.47, I know 5.23 is really old and didn't support it, i.e. can you designate /nuke 5 6 10 , /dot 3 4 12, /heal 11 , and it will detect the spell in that gem slot and write it to ini?

Is there support for detection of which gift of mana goes off (gift of radiant, exquisite radiant, amazing exquisite radiant), and casting the appropriate level spell? I tried setting this up before and never worked well for me for even regular "gift of mana".

I haven't messed around with Events or setting up Alias for using AA's, I am not even sure if there is support for it, but do both Alias and Events support triggering discs, clickies (i.e. epics) and aa's (specifically spires), this would be great when you need to burn on named, especially if you can fire them off in certain order.

I have emailed you a few of my ini's, maybe its problem with my ini setup. Maybe someone else here has had a problem like this and can provide input too.

Thanks alot for your support on this,

Aspire