Plugin MQ2Bot

Can you control a merc with holyshits?

Here's my scenario. I run MQ2Bot with three toons, and 3 mercenaries, one of which is a tank. Periodically, the merc tank will ignore "puller" and run out and engage a mob at its spawn location, which is out of range (I don't know why). If I am afk the tank will die (without heals) and then the mob will come back to group and kill everyone. Going afk is a crap shoot.

How could I structure a holyshit to set merc to "passive" and then back to "aggresive" when its back in range?

I was thinking something like, if merc is beyond a certain range change to passive, and when its within a certain range set to aggressive, but I don't want to spam loop something when its in camp.

I've been playing around with nesting the following statements:

/If (!${Spawn[insert name of merc here].ID} && {command for merc outside of range}>50) /notify MMGW_ManageWnd MMGW_SetActive leftmouseup

Clearly there is a lot missing. I don't know what the command is for merc range, and I don't know how to state it so that the commands "setsactive" to "passive".

Is there a thread that has all of the merc statements I could use to build something?

-or-

Anyone know an efficient way to achieve what I'm looking to do?
 
Whoever owns the merc can do a holyshit/downshit setup. Just a holyshit to do /stance Aggressive and downshit to do /stance Passive


Would that be more or less what you need?


htw
 
Yes, something basic that would set the merc to passive if it left camp radius and then back to aggressive once it was back in.

I just havn't seen many examples of merc holyshits, so wasn't sure how to structure it. I'll keep playing with things.
 
Would anyone be willing to tell me what is wrong with the following statement? I want my shaman to cast group heal if anyone in group is below 40% health:

holyshit0=/if (${Group.Member[1].PctHps}<40 || ${Group.Member[2].PctHps}<40 || ${Group.Member[3].PctHps}<40 || ${Group.Member[4].PctHps}<40 || ${Group.Member[5].PctHps}<40) /casting "Shear of Renewal"

The person below 40% does not need to be targeted.

I think it would work if I broke it up into 6 different holyshits, but i'm trying to condense it into one.
 
Last edited:
Would anyone be willing to tell me what is wrong with the following statement? I want my shaman to cast group heal if anyone in group is below 40% health:

holyshit0=/if (${Group.Member[1].PctHps}<40 || ${Group.Member[2].PctHps}<40 || ${Group.Member[3].PctHps}<40 || ${Group.Member[4].PctHps}<40 || ${Group.Member[5].PctHps}<40) /casting "Shear of Renewal"

The person below 40% does not need to be targeted.

I think it would work if I broke it up into 6 different holyshits, but i'm trying to condense it into one.
TLOs and their members are case sensitive. You need PctHPs not PctHps.


For our release, you could also get the spawn for MinHP, so it should work fine to do:
holyshit0=/if (${Group.MinHP.PctHPs}<40) /casting "Shear of Renewal"


htw
 
Can we get Ancient Alliance added to the Main tank buffs for Shaman?

Possibly Responsive Spirit as a self buff?
 
  • Like
Reactions: basshead808
Is there anyway to get a 50 cleric to buff Resolution or Symbol of Naltron on group members and/or group member pets?

I've tried everything I could think of, but can't get mq2bot to buff my group when I /bot on.
 
Also curious if it's possible to have it auto buff Resolution on people outside of group/raid if they are in range and in the same guild.
 
Unfortunately MQ2Bot isn't written to support single cast buffs on others, checking buffs on others or buffing outside of group. It really only does group buffs and self buffs due to the way it's written to read buffs on itself only. There was talk of adding a buff checking routine, but it's a huge undertaking.

I'm not actually sure what the best solution would be. You could in theory write a macro to do it. MQ2AutoBuff might work, though that is for requesting buffs.

Maybe someone else has a better solution?
 
Could we look at this as a way to implement buffing?
 

Attachments

  • IHCCLR.mac
    52.9 KB · Views: 7
  • ihcclrutil.inc
    52.6 KB · Views: 3
Could we look at this as a way to implement buffing?

I had a quick look at the macro.

It looks like it's using MQ2DanNet to read groups buffs and chat requests for outside of group buffs?

I don't think there is any perfect solution for reading buffs on others. You have to target players, then wait for the server to send you the buff list which is the major issue when you have to cycle through a bunch of people while preforming your classes dutys.
 
Is it possible to add a window for the settings so that you don't need to type the command or edit the file?
Something that has tabs for the different classes
Maybe a drop-down for the PullSkillName

Untitled.png

What would also be great is if the Pull Range would use something like /mapfilter CastRadius XXX [color R G B] to draw the circle onto the map at the same time so that you can see a graphical view of the area you're going to pull in.
 
Last edited:
any chance we can take a look at paladin rezzing ive been trying myself but i cant find anything wrong even the log file doesn't show any errors but all my paladin does is drag the corpse like he is going to rezz but never actually casts the spell
 
Unfortunately MQ2Bot isn't written to support single cast buffs on others, checking buffs on others or buffing outside of group. It really only does group buffs and self buffs due to the way it's written to read buffs on itself only. There was talk of adding a buff checking routine, but it's a huge undertaking.

I'm not actually sure what the best solution would be. You could in theory write a macro to do it. MQ2AutoBuff might work, though that is for requesting buffs.

Maybe someone else has a better solution?



Best solution someone to fix bot40.mac , does everything MQ2bot does and everything else , ihcmerc kissassist. i been trying but the mana sub routine is stumping me , ive cleaned up what ive learned and know but mana sub is where its stuck and broke atm.
 
Is the /findmob command required to get MQ2Bot to pull?
 
Is the /findmob command required to get MQ2Bot to pull?

No. Let me see if I can capture all you need:

1) MQ2Nav loaded with mesh for current zone loaded when you zone in, or when you /loadbot (if you are in zone when you add the mesh, just /nav reload, then /loadbot)
2) Group puller role assigned
3) You're not 'busy', e.g. Looting, using /moveto, advpath, medding (endurance/mana/hp)
4) Nav path length is less than MaxNavPathDistance (this isn't checked if that's set to 0)
5) Mob linear distance is < PullingDistance
6) Mob Z distance from puller is < PullingMaxZ
7) Mob isn't on ignore list 1, or in your Mob_Ignore_List for Ignores
8) DoPulls is set to 1 (I have hotkeys on puller to quickly toggle this on (1) or off (0))
9) PrePullIf evaluate to true (set it to 1 to always be true if you want), and PullingFilter evaluates to true (set it to 1 to always be true)

Here are example settings:

Code:
PullingDistance=600
MaxNavPathDistance=0
PullingMaxZ=100
PullingLOS=1
DoPulls=0
PullSkillName=Kick
PullSkillRange=0
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[MyClericName].PctMana}>50 && ${NetBots[MyClericName].InZone} && ${NetBots[MyClericName].InGroup}

When searching for and evaluating whether to pull a specific mob:

PullingDistance=600: Must be < 600 linear distance away from me (puller)
MaxNavPathDistance=0: No limit to navigation path length (if it was set to a value, e.g. 900, the max nav path length to the mob being evaluated would need to be < 900)
PullingMaxZ=100: Z distance from me (the puller) to mob being evaluated to pull must be < 100
PullingLOS=1: *After* running out to pull the mob, the mob must be in Line of Sight before pulling it
DoPulls=0: Currently, I am not pulling (to turn pulling on: /bot DoPulls=1)
PullSkillName: Use the kick skill to pull
PullSkillRange: Not overriding detection of the range to mob to use your PullSkillName, it is detected. If I set this to a value, e.g. 2, or 50, or 100, then use that range instead.
PullingFilter=XXX: Conditions that must be true to pull the mob being evaluated for pull. Spawn[0] will be replaced with the mob Spawn anywhere in this check.
PrePullIf=XXX: Conditions that must be true before even starting to search for a mob to pull

I think that covers everything, let me know any details of anything you have an issue with, and I'll try to help out.

htw
 
  • Like
Reactions: EQDAB
ok so I got pulls working - looks like netbots was the missing link. I need to tweek the prepullif logic so that it tank (SK) gets to 30% mana, we let him med to full before pulling. Right now, the puller will stop when the SK gets below 30% but starts up when he hits just above 30%. So it seems to slow down pulls.

Thanks for the help HTW!!!

Thanks
Lugnut
 
Last edited:
  • Like
Reactions: EQDAB