Will eq2bot heal pets as tank?

lostsk8r

Active Member
I decided to run my conjy with my inquis to get my inquis up a few levels.

I set the tank and assist as my conjurors pet, the inquisitor has no problem buffing the pet but during combat it doesnt heal the pet, just keeps nuking. I was wodnering whats up with this and if I can fix it somehow? I'd like to use the scout pet and be more aggressive but it dies without heals (conjy heal cooldown too long) so I'm forced to use the tank + defensive mode.

I turned off battle cleric mode but didnt work, so I have group reactive set because the keep reactive on MT doesnt seem to be working either.
 

insanitywiz

Senior Member
Can EQ2Bot do this? Absolutely. I believe the Mystic has a working pet heal routine you could adopt to the inquisitor.
 

lostsk8r

Active Member
Is it the routines or just the bot? I mean it has no problem buffing it, and assisting through the pet, it targets it just fine I dont know whats preventing it from healing. I guess I'll look through the mystics routine, I'm not sure what keywords I'd be hunting for that would discriminate from player to pet, I guess it would say "pet" or what?
 

lostsk8r

Active Member
I found

;PET HEALS
if ${PetToHeal} && ${Actor[${PetToHeal}](exists)}
{
if ${Actor[${PetToHeal}].InCombatMode}
call CastSpellRange 7 0 0 0 ${PetToHeal}
else
call CastSpellRange 1 0 0 0 ${PetToHeal}
}
But I see a lot of if/else statements in the inquisitor script, without having to pick my brain to understand the script since I took java like 4 years ago can you tell me where to put it under the check heals coding for inquis? I dont want to but it after an else if its supposed to be before.. I also see

if ${Me.Group[${temphl}].Class.Equal[conjuror]} || ${Me.Group[${temphl}].Class.Equal[necromancer]}
{
if ${Me.Group[${temphl}].ToActor.Pet.Health}<60 && ${Me.Group[${temphl}].ToActor.Pet.Health}>0
PetToHeal:Set[${Me.Group[${temphl}].ToActor.Pet.ID}
}

if ${Me.ToActor.Pet.Health}<60
PetToHeal:Set[${Me.ToActor.Pet.ID}]
and not sure where to put that, I think you put it under

if ${Me.GroupCount} > 1
{
do
{}
}
I put the first set of coding above the GROUP HEALS comment in inquisitor, and the second coding within the groupcount > 1 brackets but doesnt seem to be working.. (uploaded)

I've also set the eq2bot on the conjuror to have the pet as tank but conjy as assist, then have pet pull on with range of 200 and assist range of 10 (so pulls back to 10 to assist), then the inquisitor has the pet as tank and main assist, but i find that the conjuror takes a long time in between pulls to start pulling again, I know I could put him as main tank instead of the pet (for the conjuror's bot) but then that would have him running all over the place and he never seems to make it back to the designated camp spot (using camp pulling) so i figuerd using pet pull was better cause he'll stay put and have the pet pull back to him, but why hes waiting so long to pull again is beyond me, thought might have been because hes not listed as the tank himself?
 

Attachments

Last edited:

lostsk8r

Active Member
Ah okay so I jsut do
echo ${Me.Class}

Thats weird that the mystic script has it wrong

Anywho, appreciate your help
 

Kannkor

Ogre
Ah okay so I jsut do
echo ${Me.Class}

Thats weird that the mystic script has it wrong

Anywho, appreciate your help
Arg.. no.

I stand corrected.. ignore my post above. Class is different for Me. and Group. Didn't realize that at the time..
 

lostsk8r

Active Member
bump! anyone help me out with putting the pettoheal into inquisitor script? or at least show me what im doing wrong with my uploaded version.
 

bob_the_builder

Well-Known Member
This should work, just change this out lines 859-892

Code:
do
{
	if ${Me.Group[${temphl}].ToActor(exists)}
	{
		if ${Me.Group[${temphl}].ToActor.Health}<100 && !${Me.Group[${temphl}].ToActor.IsDead}
		{
			if (${Me.Group[${temphl}].ToActor.Health}<${Me.Group[${lowest}].ToActor.Health} || ${lowest}==0) && ${Me.Group[${temphl}].ToActor.Distance}<=${Me.Ability[${SpellType[1]}].Range}
				lowest:Set[${temphl}]
		}

		if ${Me.Group[${temphl}].ID}==${MainTankID}
			MainTankInGroup:Set[1]

		if !${Me.Group[${temphl}].ToActor.IsDead} && ${Me.Group[${temphl}].ToActor.Health}<80 && ${Me.Group[${temphl}].ToActor.Distance}<=${Me.Ability[${SpellType[15]}].Range}
			grpheal:Inc

		if ${Me.Group[${temphl}].Class.Equal[conjuror]}  || ${Me.Group[${temphl}].Class.Equal[necromancer]}
		{
			if ${Me.Group[${temphl}].ToActor.Pet.Health}<80 && ${Me.Group[${temphl}].ToActor.Pet.Health}>0
				PetToHeal:Set[${Me.Group[${temphl}].ToActor.Pet.ID}
		}
	}
}
while ${temphl:Inc} <= ${Me.GroupCount}

if ${Me.ToActor.Health}<85 && !${Me.ToActor.IsDead}
grpheal:Inc

if ${grpheal}>2
call GroupHeal
That looks like it will work for you. You can always add 'echo' to the scripts to see if it is getting values correctly. Make sense?

Good luck.
 

Kannkor

Ogre
Code:
if ${Me.Group[${temphl}].ToActor.Pet.Health}<80 && ${Me.Group[${temphl}].ToActor.Pet.Health}>0
PetToHeal:Set[${Me.Group[${temphl}].ToActor.Pet.ID}
Echo healing pet
An if statement without following brackets means the next line of code follows the if only.

For example:
if ${ABC}==1
echo 1
echo 2

If ABC is equal to 1, you will see in the console:
1
2

If ABC is not 1, you will see in the console:
2

Only the "echo 1" is part of the if statement.

Using that knowledge, from the above code you posted, the echo healing pet will execute no matter what the if statement.

Which may, or may not be correct, since the PetToHeal should have a valid ID now, and it may be checking that.
 

lostsk8r

Active Member
Oh yeah thats right, whenever I did java in high school I always liked bracketing my if's instead of just one line following, forgot it was just one line. Did you think he meant the lines on my previous uploaded routine or the SVN routine?

Ok so I didnt have too much time a few hours ago but I changed out the coding from my previous uploaded version with the suggestions, and fixed the brackets, but still wont heal.

This is where I'm at now (uploaded)

I was looking at
PetToHeal:Set[${Me.Group[${temphl}].ToActor.Pet.ID}
I felt like the bracket at the end of that statement should be followed by a ] but its the same in the mystic script so i'm missing something logic wise

I also did an echo for the boolean
if ${Me.Group[${temphl}].Class.Equal[conjuror]} || ${Me.Group[${temphl}].Class.Equal[necromancer]}
{
Echo ${Me.Group[${temphl}].Class.Equal[conjuror]}
if ${Me.Group[${temphl}].ToActor.Pet.Health}<85 && ${Me.Group[${temphl}].ToActor.Pet.Health}>0
{
PetToHeal:Set[${Me.Group[${temphl}].ToActor.Pet.ID}]

}
}
and it spammed TRUE..

So I did a

if ${Me.Group[${temphl}].Class.Equal[conjuror]} || ${Me.Group[${temphl}].Class.Equal[necromancer]}
{

if ${Me.Group[${temphl}].ToActor.Pet.Health}<85 && ${Me.Group[${temphl}].ToActor.Pet.Health}>0
{
PetToHeal:Set[${Me.Group[${temphl}].ToActor.Pet.ID}
Echo Pet Heal Set
}
}
And it echo'd... but didnt heal.. so I went and looked at
;PET HEALS
if ${PetToHeal} && ${Actor[${PetToHeal}](exists)}
{
if ${Actor[${PetToHeal}].InCombatMode}
call CastSpellRange 7 0 0 0 ${PetToHeal}
else
call CastSpellRange 1 0 0 0 ${PetToHeal}
}
And I'm wondering if its something to do with the fact that, that is copied straight from mystic I figured castspellrange might be the wrong spells..?

So I changed it to
;PET HEALS
if ${PetToHeal} && ${Actor[${PetToHeal}](exists)}
{
if ${Actor[${PetToHeal}].InCombatMode}
call CastSpellRange 4 0 0 0 ${PetToHeal}
else
call CastSpellRange 1 0 0 0 ${PetToHeal}
}
Using the coding from main tank heals, but the only thing that changed really was the 7 in the first CastSpellRange to a 4, but thats spellrange.. and even then its not healing the pet still! So where should I be looking, or can someone fix it what I'm missing?

I uploaded the latest.. not sure where I should be echoing or whatever, I figure if the first pettoheal coding is working on the echo's saying true etc and then if the 2nd set of pet to heal coding (the last few quotes) is the same as the mystics, then why wont it castspell?

I see there's a
if ${Me.ToActor.Pet.Health}<60
PetToHeal:Set[${Me.ToActor.Pet.ID}]
In the mystic script that isnt in the inquis, but isnt that for its own pet? hmmph
I'm setting the pet as the main tank by the way, and from doing all this coding it seems that the pettoheal coding is separate from main tank heals coding, so if I have the maintank set as the pet, why wont it just carry out the maintank heals coding onto the pet? Like I said it seems like even if I had a real tank in the group, the purpose of the pettoheal coding is to just heal the pet no matter if its tanking or not, correct? I mean as long as somehow it manages to heal the damn thing I'll be happy.
 

Attachments

Last edited:

lostsk8r

Active Member
Maybe since isxeq2 is down, now someone can help me figure out why the pettoheal wont work! :D got a buddy with inquis trying to do the same thing w/ his coercer.
 
Top Bottom