DoPulls Question

lordvegga

Member
Joined
Nov 12, 2011
Messages
91
Reaction score
4
Points
8
On the write up it states that "if" statements could be used for spells/AAs/items to cast. Does that mean that "if" statements are restricted to these?

I run three accounts and three mercenaries. One of the mercs is a tank. My bard is the puller. Sometimes my merc tank dies and the bard will continue pulling. I want to restrict "DoPulls" with an "if" statement, so that if anyone in group dies it stops pulling.

I started with a simple statement referencing the tank merc only to get it going, then once it was working I would expand it to include everyone in group.

However, I can't get it to function, which led me to believe that perhaps "if" statements are restriced to spells/AAs/items only.

This is my statement that I can't get to work:

DoPulls=${Spawn[My_Merc's_Name].PctHPs}>0

I also tried:

DoPulls=(${Spawn[My_Merc's_Name].PctHPs}>0)

Did I mess up the statement, or is it restricted from "if" statements? If restricted, can I plug a holyshit into the MQ2Bot section of the .ini just as I would in the melee section?
 
Last edited:
On the write up it states that "if" statements could be used for spells/AAs/items to cast. Does that mean that "if" statements are restricted to these?

I run three accounts and three mercenaries. One of the mercs is a tank. My bard is the puller. Sometimes my merc tank dies and the bard will continue pulling. I want to restrict "DoPulls" with an "if" statement, so that if anyone in group dies it stops pulling.

I started with a simple statement referencing the tank merc only to get it going, then once it was working I would expand it to include everyone in group.

However, I can't get it to function, which led me to believe that perhaps "if" statements are restriced to spells/AAs/items only.

This is my statement that I can't get to work:

DoPulls=${Spawn[My_Merc's_Name].PctHPs}>0

I also tried:

DoPulls=(${Spawn[My_Merc's_Name].PctHPs}>0)

Did I mess up the statement, or is it restricted from "if" statements? If restricted, can I plug a holyshit into the MQ2Bot section of the .ini just as I would in the melee section?
DoPulls is a boolean, i.e. it is only true/false (1 or 0).


PullIf=conditions
is what you want for check after it finds a pull target, but before it were to pull it.


I just pushed an update for a pre-condition also, if you would like to test. I added a new entry you can put in your INI: PrePullIf
This will do a precheck before the pulling check routine is even called.

That defaults to just "1", as if you had:
Code:
PrePullIf=1


Code:
DoPulls=1
PrePullIf=${Spawn[My_Merc's_Name].PctHPs}>0


htw
 
Last edited:
  • Like
Reactions: EQDAB
Perfect!

I didn't have a PullIf to start with, which is what was causing me the confusion, so I added it but left it blank for now.

I added PrePullIf with my merc condition, and will share if I have any issues.

Thank you so much!
 
  • Like
Reactions: EQDAB
I updated and PrePullIf seems to be working like a charm.

Few quick tests that I did:
- didn't heal merc and let it die and the bard stood there and waited once the mob was dead.
- I "revived" the merc and the bard immediately pulled something.
- I suspended the merc and the bard stood there and waited again.
- Once I "revived" a second time the bard ran off to pull.

Good job, and thank you for the upgrade. I will share more if anything changes.
 
  • Like
Reactions: EQDAB
I updated and PrePullIf seems to be working like a charm.

Few quick tests that I did:
- didn't heal merc and let it die and the bard stood there and waited once the mob was dead.
- I "revived" the merc and the bard immediately pulled something.
- I suspended the merc and the bard stood there and waited again.
- Once I "revived" a second time the bard ran off to pull.

Good job, and thank you for the upgrade. I will share more if anything changes.
Thanks for the report, and you're welcome.


FWIW, I just pushed one that I made ignore PC pets for the aggro, it noticed it would somehow get a PC pet on it's internal add list, and then wig out with everyone standing around trying to attack that group pet. I also made /botreset clear the add list. I also added showing the PrePullIf at loadbot, I forgot to do that when I put in the code, although it didn't affect how it worked of course (I just like seeing it there and knowing bot is seeing it).


htw
 
  • Like
Reactions: EQDAB
Always Excelling, improving beyond the existing!!

On the write up it states that "if" statements could be used for spells/AAs/items to cast. Does that mean that "if" statements are restricted to these?

I run three accounts and three mercenaries. One of the mercs is a tank. My bard is the puller. Sometimes my merc tank dies and the bard will continue pulling. I want to restrict "DoPulls" with an "if" statement, so that if anyone in group dies it stops pulling.

I started with a simple statement referencing the tank merc only to get it going, then once it was working I would expand it to include everyone in group.

However, I can't get it to function, which led me to believe that perhaps "if" statements are restriced to spells/AAs/items only.

This is my statement that I can't get to work:

DoPulls=${Spawn[My_Merc's_Name].PctHPs}>0

I also tried:

DoPulls=(${Spawn[My_Merc's_Name].PctHPs}>0)

Did I mess up the statement, or is it restricted from "if" statements? If restricted, can I plug a holyshit into the MQ2Bot section of the .ini just as I would in the melee section?
DoPulls is a boolean, i.e. it is only true/false (1 or 0).


PullIf=conditions
is what you want for check after it finds a pull target, but before it were to pull it.


I just pushed an update for a pre-condition also, if you would like to test. I added a new entry you can put in your INI: PrePullIf
This will do a precheck before the pulling check routine is even called.

That defaults to just "1", as if you had:
Code:
PrePullIf=1


Code:
DoPulls=1
PrePullIf=${Spawn[My_Merc's_Name].PctHPs}>0

htw


Ever notice, :cool: htw's answering almost always result with more then just the requested learned help (But a better then expected even alternate improved answer to resolving the best answer/usage too)? Thanks htw, you're one of the best :eek:. And very appreciated.
 
On the write up it states that "if" statements could be used for spells/AAs/items to cast. Does that mean that "if" statements are restricted to these?

I run three accounts and three mercenaries. One of the mercs is a tank. My bard is the puller. Sometimes my merc tank dies and the bard will continue pulling. I want to restrict "DoPulls" with an "if" statement, so that if anyone in group dies it stops pulling.

I started with a simple statement referencing the tank merc only to get it going, then once it was working I would expand it to include everyone in group.

However, I can't get it to function, which led me to believe that perhaps "if" statements are restriced to spells/AAs/items only.

This is my statement that I can't get to work:

DoPulls=${Spawn[My_Merc's_Name].PctHPs}>0

I also tried:

DoPulls=(${Spawn[My_Merc's_Name].PctHPs}>0)

Did I mess up the statement, or is it restricted from "if" statements? If restricted, can I plug a holyshit into the MQ2Bot section of the .ini just as I would in the melee section?

I don't see a 'if' anywhere .... that is a good place to start :unsure: 😗 (y)🇺🇸
 
one day ill pull w bot :)
what exactly does
Code:
PullingFilter=1
do
 
  • Like
Reactions: EQDAB
one day ill pull w bot :)
what exactly does
Code:
PullingFilter=1
do

It's an additional filter (conditional) when looking for a mob to pull. If it evaluates to true, it will allow pulling it. Just allows you to tighten conditions based on some other criteria. Can be anything really, e.g. does your group cleric have enough mana, or your MT have enough HP, is anybody dead, whatever. Since that can go in like your pre-pull setup, it's not really for that, but for filtering down your target more (level, or name, etc.), but you can put whatever you like in there if it came down to it. =1 evaluates to true, so no additional filtering for pulling condition is done.
 
  • Love
Reactions: EQDAB
Is it possible to add the DoPulls to the TLO so I can check it from the downshits?
If(${Bot.DoPulls})

If this is already available sorry bout that.

My desire is to check that everyone is over 30% mana or health. If not then stop pulling until everyone is at 100%

holyshit0=/if (${Group.Member[member].PctMana}<25) /bot dopulls=0
downshit2=/if (${Group.Member[member].PctMana}>=99) /bot dopulls=1


This spams the /bot dopulls=0 until medding is done. If I can add ${Bot.DoPulls} that would stop the spam. It seems to eventually stopp the pulling after it's called so many times, thereby breaking the bot until its restarted.
 
  • Like
Reactions: EQDAB
Trying to get mine to go out to mob and return back to camp here is what i got ( not working)
PullingDistance=350
PullingMaxZ=30
PullingLOS=1
DoPulls=1
PullSkillName=Alt
PullingFilter=1
 
  • Like
Reactions: EQDAB
Is it possible to add the DoPulls to the TLO so I can check it from the downshits?
If(${Bot.DoPulls})

If this is already available sorry bout that.

My desire is to check that everyone is over 30% mana or health. If not then stop pulling until everyone is at 100%

holyshit0=/if (${Group.Member[member].PctMana}<25) /bot dopulls=0
downshit2=/if (${Group.Member[member].PctMana}>=99) /bot dopulls=1


This spams the /bot dopulls=0 until medding is done. If I can add ${Bot.DoPulls} that would stop the spam. It seems to eventually stopp the pulling after it's called so many times, thereby breaking the bot until its restarted.
I tried to get this to work myself and found i would either keep it on on off but not auto toggle
 
  • Like
Reactions: EQDAB
Is it possible to add the DoPulls to the TLO so I can check it from the downshits?
If(${Bot.DoPulls})

If this is already available sorry bout that.

My desire is to check that everyone is over 30% mana or health. If not then stop pulling until everyone is at 100%

holyshit0=/if (${Group.Member[member].PctMana}<25) /bot dopulls=0
downshit2=/if (${Group.Member[member].PctMana}>=99) /bot dopulls=1


This spams the /bot dopulls=0 until medding is done. If I can add ${Bot.DoPulls} that would stop the spam. It seems to eventually stopp the pulling after it's called so many times, thereby breaking the bot until its restarted.

I have added ${Bot.Pulling} to the TLO, and it will be in next push - I'll try to push it tonight. This value reflects your DoPulls setting (true/1 = on, false/0 = off).

Edit: Corrected that I added ${Bot.Puller} to indicate if DoPulls is on. ${Bot.Pulling} is already in there, that indicates that the puller is actively out pulling.

htw
 
Last edited:
  • Like
Reactions: EQDAB and Fizz
Trying to get mine to go out to mob and return back to camp here is what i got ( not working)
PullingDistance=350
PullingMaxZ=30
PullingLOS=1
DoPulls=1
PullSkillName=Alt
PullingFilter=1

I'm assuming you mean Alt as in an AA. You can't just put that, you have to put the AA name there, e.g. my monk usually uses the AA Distant Strike, so mine says: PullSkillName=Distant Strike
You can also use kick or range.
Also don't forget you need a valid mesh file loaded (MQ2Nav), and that you are set to the group role of Puller.

htw
 
  • Like
Reactions: EQDAB
I have added ${Bot.Pulling} to the TLO, and it will be in next push - I'll try to push it tonight. This value reflects your DoPulls setting (true/1 = on, false/0 = off).

Edit: Corrected that I added ${Bot.Puller} to indicate if DoPulls is on. ${Bot.Pulling} is already in there, that indicates that the puller is actively out pulling.

htw

Added and uploaded.

htw
 
  • Like
Reactions: EQDAB
Added and uploaded.

htw
Hey I'm new to mmo bugs.. I have figured out how to change the agro distance in my folder but cannot figure out how to make him do pulls.. when I type do pulls in game says I can't do it.. lol please help
 
  • Wow
Reactions: EQDAB