MQ2Bot - MMOBugs Wiki

Revision as of 15:42, 27 June 2015 by Kkthnx (talk | contribs)
Plugin Info
Name MQ2Bot
Author PeteSampras
Link Wiki Link
Commands /bot on
Source Available No
Uses INI File Yes

Description

MQ2Bot will play your character for you, similar to a mercenary using whatever AAs and spells/items that you have memorized.


Pausing the plugin

In addition to turning /bot off, you are able to pause the plugin via macro interaction.

You can /declare Looting, MQ2BotPause, Pulling as variables in your macro and if any of them return TRUE or a NUMBER, the macro will pause.  If they are FALSE/0, the plugin unpauses.

Ie.
/declare Looting bool outer
/varset Looting TRUE

Commands

  • /bot on Turns on bot functionality
  • /bot off Turns of bot functionality
  • /bot key=value Updates your INI and variable key to be the new value. Ie. /bot MeleeAt=10 will set your MeleeAt to 10. It is case insensitve, so you can /bot meleeat=10 if you want.
  • /loadspells Rescans your spells, so what you have memorized will be used
  • /loadignore Loads mob ignores and immunities from your mq2/macros/Mob_Ignore_List.ini if you have one from bot.mac
  • /invis Uses designated Bot.Invis spell
  • /ivu Uses designated Bot.InvisUndead spell
  • /lev Uses designated Bot.Levitate spell
  • /imob Adds current target to Bot.Ignores and Mob_Ignore_List.ini
  • /mmob Adds current target to Bot.MezImmunes and Mob_Ignore_List.ini
  • /smob Adds current target to Bot.SnareImmunes and Mob_Ignore_List.ini
  • /cmob Adds current target to Bot.CharmImmunes and Mob_Ignore_List.ini
  • /coth If you are a mage, this calls of the hero the farthest PC in group.
  • /coth PeteSampras If you are a mage, this calls of the hero PeteSampras.
  • /coth group If you are a mage, this uses group version of Call of the Hero.
  • /doorclick This targets the nearest door, runs to it in a straightish line, and clicks it when in range.
  • /campfire This will attempt to set a standard fellowship campfire. It does not check if there are enough members nor if the ground is too steep. It will attempt one campfire per command.
  • /bottwist 1 2 3 4 Internal version to /twist 1 2 3 4 songs.
  • /bottwist once 1 Internal version to /twist once 1.
  • /bottwist off Internal version to /twist off.
  • /immunes <-- toggles ignoring of immunes on to off to on to off.
  • /immunes off <-- turns immune checks off.
  • /immunes on <-- turns immune checks on.
  • /petgear <-- Equips 1 piece of pet gear for every slot you have available in inventory. First detected, first added.
  • /invitegroup <-- invites up to 5 other guildies to your group based on proximity.
  • /inviteraid <-- invites nearby guildies to raid
  • /removeaura <-- removes aura from you.
  • /offtank # <-- Will offtank any mobs that are XTarget #.
  • /findmob <-- Uses MQ2Navigation to find and pull nearest mob.

Required plugins

  • MQ2Cast
  • MQ2Melee (for any disc/ability/sticking settings)
  • MQ2MoveUtils (if you want to autofollow)
  • MQ2EQBC (if you want to announce in eqbc or use netbots feature)
  • MQ2NetBots (if you want to use netbots feature)
  • MQ2Twist (if you are a bard)
  • MQ2MMOTLO (for authorization by MMOBugs UserName, not required if authorized by SOE account name)
  • MQ2AdvLoot (if you wish to loot using mq2advloot)

Macro Data

This plugin adds a new TLO

  • ${Bot} : BoolType - Returns TRUE if MQ2Bot is loaded.

BotType

  • Active : SpawnType Is /bot on? TRUE/FALSE.
  • MinHP : SpawnType Lowest PctHP Group member in 250 range. Bot.MinHP[#] will change 250 to whatever you put there.
  • MinPetHP : SpawnType Lowest PctHP Group member pet in 250 range. Bot.MinPetHP[#] will change 250 to whatever you put there.
  • MinMana : SpawnType Lowest Pctmana Group member in 250 range. Bot.Minmana[#] will change 250 to whatever you put there.
  • XMinHP : SpawnType Lowest PctHP XTarget PC or merc in 250 range. Bot.XMinHP[#] will change 250 to whatever you put there.
  • XMinPetHP : SpawnType Lowest PctHP XTarget PC owned pet in 250 range. Bot.XMinPetHP[#] will change 250 to whatever you put there.
  • XMinMana : SpawnType Lowest Pctmana XTarget PC or merc in 250 range. Bot.XMinMana[#] will change 250 to whatever you put there.
  • XPriority : SpawnType Highest priority NPC or NPC pet on XTargetin 250 range. Bot.XPriority[#] will change 250 to whatever you put there. Formula is mob level + 15 if named, 10 if mez immune, 5 if snare immune, - 25 if a pet.
  • NetBotMinHP : SpawnType Lowest PctHP NetBot client member in 250 range. Bot.NetBotMinHP[#] will change 250 to whatever you put there.
  • Facing : SpawnType Am I facing mob within 5 degrees? Bot.Facing[#] will change 5 to whatever you put there.
  • FacingMe : SpawnType Is mob facing within 5 degrees of me? Bot.FacingMe[#] will change 5 to whatever you put there.
  • Farthest : SpawnType Farthest PC in group from you, if any.
  • Outside : BoolType Do I think I am outside?.
  • Restricted : SpawnType Zones, by ID, that mq2bot disables automatic functions.
  • InvisSpell : StringType Name of invis AA to be used with /invis, if any.
  • IVUSpell : StringType Name of IVU AA to be used with /ivu, if any.
  • Invis : BoolType Am I invis? (not counting IVU or invis to animals).
  • IVU : BoolType Am I IVU?
  • Levitate : StringType Name of levitate AA to be used with /lev, if any.
  • SpellGem : IntType Current casting SpellGem (1-12). Returns 13 if item is casting.
  • SpellETA : IntType Current time in tenths of a second until current cast is complete.
  • CastReady : BoolType Are you ready to cast a spell? Returns FALSE if in global cooldown.
  • Slowed : TickType Is target slowed?
  • Rooted : TickType Is target rooted?
  • Mezzed : TickType Is target mezzed?
  • Crippled : TickType Is target crippled?
  • Malod : TickType Is target malod?
  • Tashed : TickType Is target tashed?
  • Snared : TickType Is target snared?
  • Hasted : TickType Is target hasted?
  • Freeze : TickType Does target have mindfreeze effect line on it?
  • Skin : TickType Does target have dru/rng skin line on?
  • Focus : TickType Does target have bst/shmfocus line on?
  • Regen : TickType Does target have regen?
  • Symbol : TickType Does target have pal/clr symbol on?
  • Clarity : TickType Does target have clarity line on?
  • Pred : TickType Does target have rng pred line on?
  • Strength : TickType Does targethave rng str line on?
  • Brells : TickType Does target have pal brells line on?
  • SV : TickType Does target have bst SV line on?
  • SE : TickType Does target have bst SE line on?
  • HybridHP : TickType Does target have brells/str/sv line on?
  • Growth : TickType Does target have wild growth line on?
  • Shining : TickType Does target have shining rampart line on?
  • DeepSleep : TickType Does target have Deep Sleep debuff on?
  • Aego : TickType Does target have pal/clr Aego on?
  • Heal : SpellType How many Heal spells are there? If Bot.Heal[#], returns spell info for that spell.
  • Nuke : SpellType How many Nuke spells are there? If Bot.Nuke[#], returns spell info for that spell.
  • Dot : SpellType How many Dot spells are there? If Bot.Dot[#], returns spell info for that spell.
  • Swarm : SpellType How many Swarm spells are there? If Bot.Swarm[#], returns spell info for that spell.
  • HealPet : SpellType How many HealPet spells are there? If Bot.HealPet[#], returns spell info for that spell.
  • Aggro : SpellType How many Aggro spells are there? If Bot.Aggro[#], returns spell info for that spell.
  • Rez : SpellType How many Rez spells are there? If Bot.Rez[#], returns spell info for that spell.
  • SelfBuff : SpellType How many SelfBuff spells are there? If Bot.SelfBuff[#], returns spell info for that spell.
  • Fade : SpellType How many Fade spells are there? If Bot.Fade[#], returns spell info for that spell.
  • Jolt : SpellType How many Jolt spells are there? If Bot.Jolt[#], returns spell info for that spell.
  • Debuff : SpellType How many Debuff spells are there? If Bot.Debuff[#], returns spell info for that spell.
  • Mez : SpellType How many Mez spells are there? If Bot.Mez[#], returns spell info for that spell.
  • Root : SpellType How many Root spells are there? If Bot.Root[#], returns spell info for that spell.
  • Snare : SpellType How many Snare spells are there? If Bot.Snare[#], returns spell info for that spell.
  • FightBuff : SpellType How many FightBuff spells are there? If Bot.FightBuff[#], returns spell info for that spell.
  • MainTankBuff : SpellType How many MainTankBuff spells are there? If Bot.MainTankBuff[#], returns spell info for that spell.
  • PetBuff : SpellType How many PetBuff spells are there? If Bot.PetBuff[#], returns spell info for that spell.
  • Pet : SpellType How many Pet spells are there? If Bot.Pet[#], returns spell info for that spell.
  • Mana : SpellType How many Mana spells are there? If Bot.Mana[#], returns spell info for that spell.
  • Endurance : SpellType How many Endurance spells are there? If Bot.Endurance[#], returns spell info for that spell.
  • Buff : SpellType How many Buff spells are there? If Bot.Buff[#], returns spell info for that spell.
  • Aura : SpellType How many Aura spells are there? If Bot.Aura[#], returns spell info for that spell.
  • Lifetap : SpellType How many Lifetap spells are there? If Bot.Lifetap[#], returns spell info for that spell.
  • Adds : SpawnType How many adds are there? If Bot.Adds[#], returns spawn info of that # add.
  • AddByID[x] : IntType What, if any, is this add ID.
  • AddCount[x] : IntType Returns total number of adds (same as Bot.Adds), Bot.AddCount[250] returns the number of adds within 250 range.
  • PossibleAdds : SpawnType How many possible adds are there? If Bot.PossibleAdds[#], returns spawn info of that # add.
  • Merc : StringType Last known name of your merc.
  • CurrentSub : StringType Last subroutine entered in the plugin.
  • Named : BoolType Enhanced Target.Named.
  • QuestMob : BoolType Is target a quest giver/vendor/etc?
  • MezImmune : BoolType Is target a known mez immune?
  • CharmImmune : BoolType Is target a known charm immune?
  • SnareImmune : BoolType Is target a known snare immune?
  • Ignore : BoolType Is target a known ignore mob.
  • SnareImmunes : StringType SnareImmunes List from Mob_Ignore_List.ini?
  • MezImmunes : StringType MezImmunes List from Mob_Ignore_List.ini?
  • CharmImmunes : StringType CharmImmunes List from Mob_Ignore_List.ini?
  • Ignores : StringType Ignores List from Mob_Ignore_List.ini?
  • SpellCat[#|name] : StringType What category of spell is this?
  • ZoneTimeSec : IntType How many seconds have I been in zone?
  • ZoneTimeMin : IntType How many minutes have I been in zone?
  • ZoneTimeHour : IntType How many hours have I been in zone?
  • Version : StringType What version of mq2bot am i using?
  • LastHit : IntType When was i last hit, in seconds?
  • Zoning : BoolType Am i zoning?
  • SpellDuration[#|name] : TicksType What is the duration of the longest portion of this spell?
  • INI : StringType What INI [Section] am i using?
  • BuffList : StringType What buffs/debuff major categories do I have on me?

If statements

If statements allow you to make customized settings for individual spells/AAs/items to cast only if certain requirements are met above the generic setting. These are just like if statements for mq2melee.

Format is SectionIf#=
ie.
DotIf2=${Target.PctHPs}>80

NukeIfX=whatever <-- This corresponds to your nuke numbers (which are now displayed when you /bot on) Also you can check them via ${Bot.Nuke[x]}. Any statements you put in ini will also display in the proper place beneath the Nuke. Everything is labeled so you know what is what.

Example, I only want to use Nuke0 if the target is named and I have Twincast on:

[MQ2Bot]
NukeIf0=${Bot.Named} && ${Bot.Twincast}
NukeIf7=${Bot.Named} && ${Me.Song[Sustained Destruction].ID}

Configuration

MQ2Bot provides configuration

Sample Configuration

server_CharacterName.ini

[MQ2Bot]
BotVersion=2014.0519
CycleDelay=3
DefaultGem=1
AnnounceEcho=1
AnnounceEQBC=0
AutoInvisDistance=0
AssistAt=100
AssistRange=100
MercAssistAt=95
MercAssistRange=50
MeleeAt=0
MeleeDistance=40
PetAttackAt=100
PetAttackRange=60
MedStartAt=0
MedStopAt=0
MedToFull=0
MinManaToNuke=0
AACutoffTime=10
AAStopAt=25
AggroAt=70
AutofireAt=0
AutofireDistance=100
DebuffAdds=1
DebuffAt=100
DebuffStopAt=10
DotAt=99
DotStopAt=10
FaceAngle=180
FadeAt=20
GrabAdds=0
GrabPrimary=0
HealAt=80
HealDelayedAt=95
HealDurationAt=95
HealGroupAt=80
HealPetAt=80
ImHitAt=50
JoltAt=70
KnockbackAdds=0
KnockbackPrimary=0
LifetapAt=80
LootInCombat=0
LootRadius=0
ManaAt=80
NukeAt=99
RezRadius=100
RootAdds=15
RootPrimary=0
SnareAt=10
SwarmAt=99
UseAutoFire=0
UseAENukes=1
UseAura=1
UseClickyBuffs=1
UseClickyNukes=1
UseFightBuffs=1
UseMainTankBuffs=1
UseManaInCombat=1
UseMez=1
UsePet=1
CustomPetSpell=Shard of Air
UsePetBuffs=1
UseSelfBuffs=1
UseStick=0
StickSettings=30 healer
UseNetBots=1
NetBotsName=PeteSampras
RestTwist=1 2 3 4
CombatTwist=12 2 4

Configuration Explanation

  • /bot [on|off]: Turns on and off the active portion of the plugin.

Generic settings

[MQ2Bot]
BotVersion=2014.0423        <-- Current Version of plugin
RestrictedZones=344,202,151,345  <-- Zones, by ID, that mq2bot disables automatic functions.
CycleDelay=3                     <-- Will only check plugin once ever X cycles to reduce system strain.  DO NOT SET TO ZERO!
Bot=1                                 <-- Use the plugin?  You can ignore this
AnnounceEcho=1                <-- Announce AA/Spells/Skills in /echo? 1 = on, 0 = off
AnnounceEQBC=0               <-- Announce AA/Spells/Skills in EQBC? 1 = on, 0 = off
AnnounceAdds=1               <-- Announce Adds in /echo? 1 = on, 0 = off
AlwaysCheckAdds=0           <-- 0 off, 1 is on. This will perform add handling and allow access to Bot.Adds/Bot.Adds[x] and allow add messages even while /bot off. This is so you can use it in macros if desired.

DefaultGem=1                    <--Default gem to use, (use # 1-12)
BuffPassword=NULL            <--Change this password, and then use password=Spell Name  to request spells/AA from other toons.  it is Case Sensitive.  ie. BuffPassword=PeteSampras, then I would just say in group/tell/guild:  "/g PeteSampras=Unified Hand of Credence" and my cleric would add that spell to the queue and cast it on me when available.
AuthorizedUsers=|guild|group|netbots|PeteSampras|  <-- Available generic entries are "guild", "group","netbots","raid", otherwise you can add specific characters. If you add any generic entries, guild / group / netbots / raid members respectively, will be considered as authorized users.  This bypasses need for BuffPassword.
MedStartAt=90                   <-- Flag yourself as medding and sit as able once you reach this % mana or lower
MedStopAt=90                    <-- Remove medding flag and stop sitting once you are above this % mana
MinManaToNuke=0              <-- Minimum Me.PctMana to use Nukes/DoTs/Swarm pets.

UseStick=0                          <-- Autofollow leader? 1 = on, 0 = off
StickSettings=30 healer        <-- stick settings for autofollow. 

UseNetBots=1                      <-- Use netbots to assist for targets? (netbots/eqbc must be on and enabled)
NetBotsName=PeteSampras  <-- Name of toon to assist in eqbc/netbots (note that both toons must have netbots on and send/get)

LootRadius=0                       <-- Radius to loot corpses using mq2advloot
LootInCombat=0                  <-- 1 = on, 0 = off if you want to loot while you are ${Me.CombatState.Equal[COMBAT]}

RepositionIfSummoned=1   <-- 1 = on, 0 = off.  This will save your location when you first gain aggro, and if summoned, will move back to that location. 

SummonModRods=1          <-- 1 = on, 0 = off.  This will enable/disable mod rod summoning on mage.

Attack/assist settings

AssistAt=100                      <-- % hp of Bot.Adds[1] to target the mob at
AssistRange=100                <-- Spawn[].Distance away to target mob at
MercAssistAt=100               <-- % hp of target, if less than, to /mercassist
MercAssistRange=0             <-- distance of kill target, if less than, to /mercassist
MeleeAt=100                      <-- Melee if target is at or below this % hp
MeleeDistance=40               <-- Melee if target is within this distance
PetAttackAt=100                 <-- % hp of target to send pet at
PetAttackRange=60             <-- Spawn[].Distance away to send pet at 
UseAutoFire=0                    <-- Use Autofire if target is below this %, is within AssistRange, and is more than 35 range
AutofireAt=0                       <-- Autofire if target is at or below this % hp
AutofireDistance=100          <-- Autofire if target within this distance

Routines

AACutoffTime=10                <-- Me.AltAbility[].MyReuseTime, in minutes, for making a skill only fire on named mobs.
AAStopAt=25                      <-- Stop using AAs if target is below this % hp
AggroAt=70                        <-- Use aggro spell if you are Group.MainTank and next closest person is this % aggro or higher
DebuffAdds=1                     <-- Debuff add(s)? 1 = on, 0 = off
DebuffAt=100                     <-- Debuff target/adds if they are this % hp or less
DebuffStopAt=10                <-- stop debuffing targets if they are below this % hp
DotAt=99                           <-- Use DoT spells if target is at this % hp or lower
DotStopAt=10                     <-- Stop using DoT spells if mob is below this % hp
GrabPrimary=0                    <-- Distance, if farther than this, to fling the primary mob you are fighting to you. 0 turns it off
GrabAdds=0                      <-- Distance, if farther than this, to fling additional mobs you are fighting to you.  0 turns it off
HealAt=80                          <-- this is any heal not specifically broken out elsewhere
HealDurationAt=95              <-- This is all Heal over time spells
HealDelayedAt=95               <-- this is all promised renewal type lines
HealGroupAt=80                  <-- this is all AE/group only spells
HealPetAt=80                      <-- Heal any pets in group if they are below this % hp
InterruptToHealAt=0            <-- % HP, if lowest group member is below this amount, it will interrupt your non-heal spell to heal them. I may set default to like 60 for priests, for now default is 0.
JoltAt=70                            <-- Use aggro spell if you are not Group.MainTank and you are above this % aggro or higher
KnockbackPrimary=0                    <-- Distance to Knockback the primary mob you are fighting. 0 turns it off
KnockbackAdds=0                      <-- Distance to Knockback additional mobs you are fighting.  0 turns it off
LifetapAt=80                       <-- Lifetap if your hp is below this % (may still wait until lower if lifetap gives more than you need)
UseAENukes=1                    <-- Use Nukes that do AE damage?
NukeAt=99                         <-- Nuke target once it is below this %
RootPrimary=0                    <-- Distance to root the primary mob you are fighting. 0 turns it off
RootAdds=15                      <-- Distance to root additional mobs you are fighting.  0 turns it off
SnareAt=10                        <-- Snare target once it is below this %
SwarmAt=99                      <-- Use swarm pet/AA once target is below this %
CustomPetSpell=Shard of Air <-- Use this pet spell instead of highest level
PetIllusionItem=Petamorph Wand - Domain Prowler <-- item name to use whatever spell illusion spell you want kept on your pet. *name of item, not spell* 

Use or don't use settings

UseAura=1                          <-- Use aura(s)? 1 = on, 0 = off
UseClickyBuffs=1                 <-- Use Clicky Buff(s)? 1 = on, 0 = off
UseFightBuffs=1                  <-- Use FightBuff(s)? 1 = on, 0 = off
UseMainTankBuffs=1            <-- Use MainTankBuff(s)? 1 = on, 0 = off
UseManaInCombat=1           <-- Use Mana related AA/spell(s) in combat? 1 = on, 0 = off
ManaAt=80                         <-- Use Mana related AA/Spells if below this % mana (or if group member is below this % mana)
UseMez=1                           <-- Use Mez(s)? 1 = on, 0 = off
UsePet=1                            <-- Create pet(s)? 1 = on, 0 = off
CustomPetSpell=Shard of Air<-- Use a specific pet spell instead of auto detected pet spell?  Use exact name of spell.
UsePetBuffs=1                     <-- Use Pet Buff(s)? 1 = on, 0 = off
UseSelfBuffs=1                    <-- Use Self Buff(s)? 1 = on, 0 = off

Bard Specific

RestTwist=off                     <-- This will /twist off when there are no adds
CombatTwist=12 2 4           <-- This will /twist 12 2 4 when there are adds

Version History

  • 20140518 PeteSampras @ 20140518
    • Updated to latest version
    • Change 2
  • 20150426 PeteSampras @ 20150426
    • Updated TLO members
    • Updated commands

Availability

This plugin is in semi-closed. The restrictions are listed above in the Full vs Partial access section. To gain full access, you simply need to actively participate in feedback on the threads or donate to the cause. Emails can be directed to PeteSampras.mmobugs@gmail.com regarding access.