YA MQbot pulling Question

Fynody

Premium Member
Joined
Oct 12, 2014
Messages
42
Reaction score
2
Points
8
Firstly, just wanted to say thankyou for all the work everyone has put into MQBot.

Pulling: I use a ranger, who pulls with a bow, and have tested in Nadox, on the L51-53 abominable man fishes.
I have got the pulling process to work using settings shown in another thread by htw.

PullingDistance=600
MaxNavPathDistance=0
PullingMaxZ=100
PullingLOS=1
DoPulls=0
PullSkillName=Ranged
PullSkillRange=150
PullingFilter=${Spawn[0].Type.Equal[npc]} && !${Select[${Spawn[0].Type},pet,aura,campfire,banner,mercenary,pc,merc,corpse]} && ${SpawnCount[${Spawn[0].Name} noalert 1 npc]} && ${Spawn[0].Level}>=1
PrePullIf=${Group.MinMana.PctMana}>30 && ${Group.Member[=====].PctMana}>50 && ${NetBots[=====].InZone} && ${NetBots[=====].InGroup}

I establish a camp with makecamp.
Roles:
Tank is MT
Wizard is MA
Ranger is Puller

I trigger the pull from my tank by /bct "Ranger" //findmob.

The ranger pulls with his bow. No problem.

Question: Is there a way to automate the above, ie once a pull is complete, nd the prepullif condition is met, that the ranger pulls again without prompting?

Off topic Question: Evac, Does MQbot recognize an evac command?
 

htw

Developer
Joined
Aug 27, 2006
Messages
12,905
Reaction score
55
Points
48
Location
Albuquerque, NM
1) /bct "Ranger" DoPulls=1

2) No. You could set it up fairly easy with MQ2Events though, here is an example:

MQ2Events_MyWizzie.ini

[EVAC]
trigger=#1# tells you, #2#!!Evacuate!!#3#
command=/casting "Evacuate|gem12"

Then: /t mywizzie !!Evacuate!!

htw
 

Fynody

Premium Member
Joined
Oct 12, 2014
Messages
42
Reaction score
2
Points
8
ok, I am missing something in terms of syntax or usage in the below.
If I set pull filter and prepullif to =1, dopulls=1 works perfectly, ranger becomes a pulling machine.

If I substitute the the pullfilter=1 with ${Spawn[0].Type.Equal[npc]} && !${Select[${Spawn[0].Type},pet,aura,campfire,banner,mercenary,pc,merc,corpse]} && ${SpawnCount[${Spawn[0].Name} noalert 1 npc]} && ${Spawn[0].Level}>=1
the ranger does nothing.
If I set that back to 1, and change prepullif from 1 to ${Group.MinMana.PctMana}>30, the ranger does nothing.

Both the filter and the prepullif statements look sensible and make sense to me.

is there something wrong in the configuration or syntax?

PullingDistance=600
MaxNavPathDistance=0
PullingMaxZ=100
PullingLOS=1
DoPulls=0
PullSkillName=Ranged
PullSkillRange=150
PullingFilter=${Spawn[0].Type.Equal[npc]} && !${Select[${Spawn[0].Type},pet,aura,campfire,banner,mercenary,pc,merc,corpse]} && ${SpawnCount[${Spawn[0].Name} noalert 1 npc]} && ${Spawn[0].Level}>=1
PrePullIf=${Group.MinMana.PctMana}>30

thx in advance
 

Fynody

Premium Member
Joined
Oct 12, 2014
Messages
42
Reaction score
2
Points
8
Still struggling with this.

As previous, Pullingfilter and prepullif set to 1, and the process works fine.

I have been focusing on the prepullif, and have not found a solution.

So far I have tried:
${Group.MinMana.PctMana}>30
${Group.MinMana.PctMana}>30 && ${Group.Member[=====].PctMana}>50 && ${NetBots[=====].InZone} && ${NetBots[=====].InGroup}
${Group.Member[${Group.MinMana}]>30

${Group.Member[1].Class.PureCaster} && ${Group.Member[1].PctMana}>40)||(${Group.Member[2].Class.PureCaster} && ${Group.Member[2].PctMana}>40)||(${Group.Member[3].Class.PureCaster} && ${Group.Member[3].PctMana}>40)||(${Group.Member[4].Class.PureCaster} && ${Group.Member[4].PctMana}>40)||(${Group.Member[5].Class.PureCaster} && ${Group.Member[5].PctMana}>40

Anything other than 1 and the ranger will not pull, unless I give a direct /findmob command.

do the If criteria need to be finshed with a 1 if true, 0 if false? eg: (${Group.MinMana.PctMana}>30,1,0)

Please advise.
 

smith8454

Premium Member
Joined
Jun 24, 2009
Messages
503
Reaction score
12
Points
18
I am also having issues with SK pulling mobs and returning to camp

my set up
[Pull]
PullingDistance=600
MaxNavPathDistance=1
PullingMaxZ=100
PullingLOS=1
DoPulls=1
PullSkillName=Ranged
PullSkillRange=150
PullingFilter=${Spawn[0].Type.Equal[npc]} && !${Select[${Spawn[0].Type},pet,aura,campfire,banner,mercenary,pc,merc,corpse]} && ${SpawnCount[${Spawn[0].Name} noalert 1 npc]} && ${Spawn[0].Level}>=1
PrePullIf=${Group.MinMana.PctMana}>30 && ${Group.Member[=====].PctMana}>50 && ${NetBots[=====].InZone} && ${NetBots[=====].InGroup}
PullWith=Encroaching Darkness

my buttons are also set up like
MyButtonLabel_29=tank find mobs
MyButtonLabel_29=/bct "Tank" //findmob.


can I get some help with this, also my BCAA commands keeps dropping off and I have to "manually reset", then it is FUBARD, I have Fry come in my computer,, and reset to automatic, but it keeps dropping off
 

Fynody

Premium Member
Joined
Oct 12, 2014
Messages
42
Reaction score
2
Points
8
I have tested the various configurations above, and htw's syntax is correct.

${Group.MinMana.PctMana} will return the group member name and their pct mana.

My group is configured Warrior, Cleric, Enchanter, Ranger, Wizard, Mage.

If I run the query in MQ on the Tank ${Group.MinMana}, I get an answer that names one of the mana users in the group, as they are all mana users.

If I run the same command from the Ranger, the answer is my Tanks name.

I can only surmise that the MinMana spawn type, if looking at all other group members, and does not take into account the querying account.

As such the ${Group.MinMana.PctMana}>30 probably is working, and will never pass so long as the check includes non casters.

${Group.MinMana.PctMana}>30 needs to ensure the check is on purecasters only.

I am guessing some thing like ${Group.MinMana.PctMana}>30 && ${Group.MinMana.Class.PureCaster}

or Can that be consolidated to ${Group.MinMana.Class.PureCaster.PctMana}>30
 

Fynody

Premium Member
Joined
Oct 12, 2014
Messages
42
Reaction score
2
Points
8
${Group.MinMana.Class.PureCaster.PctMana}>3 does not work, It is mixing data types.

I also think that MinMana will always do what it is meant to do, and if the tank has the least mana - will still break the ${Group.MinMana.PctMana}>30 && ${Group.MinMana.Class.PureCaster} check.

Is it possible to have MinMana only apply to classes that have mana?
 

Fynody

Premium Member
Joined
Oct 12, 2014
Messages
42
Reaction score
2
Points
8
Still Stuck on this one. I cannot use MinMana to check whether the lowest mana pct in the group is above 30, as when the check is carried out from my Ranger, the answer is always my tank on zero mana.
There does not appear to be a way of filtering who the MinMana applies to other than it checks everyone else in the group apart from the checker.

To take control of who gets checked, I added the key group members to the top of the ext-Target list. and then tried the same checks using XMinMana. I am not sure of syntax. ${Group.XMinMana} does not work Group does not recognize the suffix XMinMana. I have tried ${XMinMana} and whilst it does not give an error, regardless of whether the watched toons are 100% or less than 100% the answer in MQ2 is Null.

I have also tried the following setup on my Tank, setting his role to Tank and puller, which not ideal as I think the Tank role stops him moving around.

PullingDistance=600
MaxNavPathDistance=0
PullingMaxZ=100
PullingLOS=1
DoPulls=1
PullSkillName=Ranged
PullSkillRange=200
PullingFilter=${Spawn[0].Type.Equal[npc]} && !${Select[${Spawn[0].Type},pet,aura,campfire,banner,mercenary,pc,merc,corpse]} && ${SpawnCount[${Spawn[0].Name} noalert 1 npc]} && ${Spawn[0].Level}>=1
PrePullIf=${Group.MinMana.PctMana}>30

If I set Dopulls=1 on the tank - all of the above works. He will continuously pull until one of the others in the groups mana drops below 30. ie aside from not moving unti he has Los, the pulling process works as expected.

If the team is to run as I would like them to, The MinMana spawn type needs to only apply to classes that use mana. or I need another way of wording the prepullif, so that it ignores all non mana users.

I thought I had it with;
${Group.Member[1].Class.PureCaster} && ${Group.Member[1].PctMana}>40)||(${Group.Member[2].Class.PureCaster} && ${Group.Member[2].PctMana}>40)||(${Group.Member[3].Class.PureCaster} && ${Group.Member[3].PctMana}>40)||(${Group.Member[4].Class.PureCaster} && ${Group.Member[4].PctMana}>40)||(${Group.Member[5].Class.PureCaster} && ${Group.Member[5].PctMana}>40)

But cannot tell what is wrong - all looks like it works. - checks each group slot to see if they are a pure caster, and that they have mana over 40.
 
Last edited:

Fynody

Premium Member
Joined
Oct 12, 2014
Messages
42
Reaction score
2
Points
8
${Group.Member[1].Class.PureCaster} && ${Group.Member[1].PctMana}>40)||(${Group.Member[2].Class.PureCaster} && ${Group.Member[2].PctMana}>40)||(${Group.Member[3].Class.PureCaster} && ${Group.Member[3].PctMana}>40)||(${Group.Member[4].Class.PureCaster} && ${Group.Member[4].PctMana}>40)||(${Group.Member[5].Class.PureCaster} && ${Group.Member[5].PctMana}>40)

Got it working - was missing a bracket right at the start.

(${Group.Member[1].Class.PureCaster} && ${Group.Member[1].PctMana}>40)||(${Group.Member[2].Class.PureCaster} && ${Group.Member[2].PctMana}>40)||(${Group.Member[3].Class.PureCaster} && ${Group.Member[3].PctMana}>40)||(${Group.Member[4].Class.PureCaster} && ${Group.Member[4].PctMana}>40)||(${Group.Member[5].Class.PureCaster} && ${Group.Member[5].PctMana}>40)

The above looks like it checks every group member to see if they are a caster, and if so - they have more than 40 pct mana.

Unfortunately I got it working while camping outside Plane of Valor keep - hunting golems, I did not allow for all the guards inside the keep - which the ranger promptly went and pulled.
 

htw

Developer
Joined
Aug 27, 2006
Messages
12,905
Reaction score
55
Points
48
Location
Albuquerque, NM
I have a feeling you are playing on emu (rof2a). Some of the group data sent from server is ... problematic (buggy).

To get around that (in your case), you can use:

${Bot.MinPctMana} : The percentage of mana spawn with lowest mana has
${Bot.MinMana} : The spawn with lowest mana

In both cases, it only checks against netbots members that actually have mana, and is in your group.

htw
 

Fynody

Premium Member
Joined
Oct 12, 2014
Messages
42
Reaction score
2
Points
8
You are right: I am on emu using Rof2a.

I tried /echo ${Bot.MinPctMana} which returned an answer of 0, when all characters bar tank were at 100$, can only assume it picked up on tank again.
 

htw

Developer
Joined
Aug 27, 2006
Messages
12,905
Reaction score
55
Points
48
Location
Albuquerque, NM
It requires MQ2NetBots.
/plugin mq2netbots
/netbots grab=on send=on ext=on
/netbots on

That also means you need to be connected to EQBC (i.e., running your mqeqbcs and the plugin mq2eqbc, and eqbc connected).

Do that for each toon.

Quite a few things will work better on rof2a if you are using eqbc + netbots. Single players aren't going to notice this of course, but group/raid boxers will for sure.

If you need any help setting it up, can get with me on our discord, or shoot me an email at htwmmo@gmail.com with any questions, or post here of course.

htw
 

Fynody

Premium Member
Joined
Oct 12, 2014
Messages
42
Reaction score
2
Points
8
Thx htw, will try not to disturb you directly. I should be able to work the above out.

I am always fascinated how well the bot plays the class, particularly with the later expansions and all the new aa and abilities. If you were doing it manually, i am not sure you could match the current Bot.
 

Fynody

Premium Member
Joined
Oct 12, 2014
Messages
42
Reaction score
2
Points
8
${Bot.MinPctMana} : The percentage of mana spawn with lowest mana has
${Bot.MinMana} : The spawn with lowest mana

Both the above work as expected. All kicked in by having each account run the /netbots commands.

Thx very much for the help.

Next step for me is understanding the pull filter and whether the puller can identify whether it will pull more than one. Obviously cannot cater for the pull path picking up something enroute.
This only came into focus recently where a my team is in valor and managed to pull 3 golems at point of pull. The 3 wen through my team in moments.