MageBot - MMOBugs Wiki

Revision as of 12:12, 15 April 2010 by Kkthnx (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Macro Info
Name MageBot
Author devestator
Link MageBot Post
MageBot Download
Commands None
Includes Yes
Uses INI File Yes
Required Plugins Yes


Description

This is a mage bot that is meant to serve as an all in one bot. You can run in group mode or solo mode using a pre-recorded path. If running in group mode a pre-recorded path is not required however this means the mage will not attempt to run from anything that may be beating on it.

Solo Mode
Solo mode is a great way to get experiences or just farm for money while you do other more important things! To get started using solo mode you will first need to record a path. Included in the download is a macro called pathrecord.mac.

The usage for pathrecord.mac is /macro pathrecord PathName PathName is optional, if it is excluded it will record with the default path name of ${Zone.ShortName} (This correspondes to using default as the PathName setting in the INI) Once you start the macro it will record the locations you move to. So simply walk the path you wish the bot to walk when hunting and then /endmacro.

When you start the magebot in solo mode, you must be near the first loc in the path. This is also where the bot will rest if no mobs are found on the path, so I recommend starting in a safe location to sit.


Group Mode
Group mode is a little different than solo mode. It does not use a path, so if a mob is aggro on the mage it cannot run away (for all it knows it may run off a cliff if it tried.). So instead the mage will not sit or cast spells if a mob appears to be aggro on it while it waits on the group to get the mob off it.


Notes
The pet focus AA (Advanced Pet Discipline Rank 1) is recommended for solo mode, there is just no reliable way for the bot to be able to handle adds effectively without it. If you do not have pet focus the bot will still run, but if you get an add you will most likely die. But if you can run the bot in a location where you are fairly sure that you will not get adds then it should do just fine.

Commands

  • None

Includes

  • MQ2Cast_Spell_Routines.inc Used for casting.
  • devCommon.inc Common routines written by Devestator
  • devMovement.inc Movement routines written by Devestator

Required Plugins

  • MQ2Cast Used for casting spells, items, alt abilities.
  • MQ2Debuffs Used for detecting when rooted or mezzed primarily
  • MQ2Exchange Used for swapping items that have to be equipped to cast.

Configuration

Macro Usage: /macro MageBot IniName PathName

  • IniName If submitted this will specify a custom INI to use. Example, you can have an INI named mageBotSettings_Group.ini, and if you do /macro MageBot Group, it will load this ini. Otherwise it will load the default INI mageBotSettings.ini
  • PathName This is only used in solo mode. If submitted it will override the name of the path used in the INI. For example if you have two paths recorded in the same zone, one is named the same as the ${Zone.ShortName} (this would make it the default path if default is used), the other is named "test". /macro MageBot default test, would force it to load the path named test.

Sample Configuration

mageBotSettings.ini

[General]
SpellCoolDown=4s
SitAt=90
MinMobLvl=46
MaxMobLvl=73
MobRadius=100
MinSafeDistance=40
ResistTries=3
MinRestMana=40
MinRestToMana=80
MinRestOverHPs=80
TimeToSitAfterCast=1s
CircuitRestTime=5m
ReplyToTells=false
WalkPath=true
PathName=default
LootCorpses=true
LootReturnNearestLoc=true
ModRodName=Rod of Prime Transvergence
ModRodMana=40
ModRodHPs=20
HealPotName=Distillate of Celestial Healing XIII
HealPotHPs=40
UnsafePCAction=gate
CampAfterGate=true
MainTank=group
PullerName=group
Announcements=True
AnnounceChan=/g

[GroupSettings]
GroupMode=false
MainAssist=Group
PetAssistPct=97
GroupBuffAtStart=false
MinBuffCheckTimer=1m
UnsafePCAction=pause
OutOfCombatSit=true

[PetSettings]
SummonAtStart=true
EquipAtStart=true
PetSpellName=Aspect of Air
PetSlot=gem10
PetFocusItem=null
PetHeal=Revival of Aenro Rk. II
PetHealPct=40
PetHealTo=80
PetWeaponSpell1=Summon Prime Armaments
PetWeaponItem1=Summoned: Jagged Ragesword
PetWeaponSlot1=gem10
PetWeaponSpell2=null
PetWeaponItem2=Summoned: Jagged Ragesword
PetWeaponSlot2=gem10
PetMuzzleSpell=null
PetMuzzleItem=null
PetMuzzleSlot=gem10
PetBeltSpell=null
PetBeltItem=null
PetBeltSlot=gem10
PetArmorSpell=null
PetArmorSlot=gem10

[Summoned]
Value=0
SummonedSpell1=Summon Gelid Paradox
SummonedItem1=Summoned: Elemental Ice Sliver
SummonedSlot1=gem10

[SelfBuffs]
Value=4
SelfBuffName1=Eidolic Guardian Rk. II
SelfBuffName2=Shield of the Void
SelfBuffName3=Prime Symbiosis
SelfBuffName4=Ornate Runed Totem Staff
SelfBuffName5=NULL
SelfBuffText1=Eidolic Guardian Rk. II
SelfBuffText2=Shield of the Void
SelfBuffText3=Prime Symbiosis Recourse
SelfBuffText4=Maelin's Meditation
SelfBuffText5=NULL
SelfBuffSlot1=gem9
SelfBuffSlot2=gem9
SelfBuffSlot3=gem9
SelfBuffSlot4=item
SelfBuffSlot5=gem9

[PetBuffs]
Value=3
PetBuffName1=Brimstoneskin Rk. II
PetBuffName2=Burnout VIII Rk. II
PetBuffName3=Iceflame Tenement
PetBuffName4=NULL
PetBuffName5=NULL
PetBuffText1=Brimstoneskin Rk. II
PetBuffText2=Burnout VIII Rk. II
PetBuffText3=Iceflame Tenement
PetBuffText4=NULL
PetBuffText5=NULL
PetBuffSlot1=gem8
PetBuffSlot2=gem8
PetBuffSlot3=gem8
PetBuffSlot4=gem8
PetBuffSlot5=gem8

[GroupBuffs]
Value=1
GroupBuffGroup1=Circle of Lavaskin Rk. II
GroupBuffGroupDisplayName1=Circle of Lavaskin Rk. II
GroupBuffSingle1=Lavaskin Rk. II
GroupBuffSingleDisplayName1=Lavaskin Rk. II
GroupBuffAlias1=ds
GroupBuffTargets1=WAR|SHD|PAL|RNG|MNK|ROG|BRD|BST|BER
GroupBuffSlot1=gem7
GroupBuffCombat1=False
GroupBuffGroupAnnounce1=Lavaskin inc on %t
GroupBuffSingleAnnounce1=NULL
GroupBuffAuto1=TRUE
GroupBuffGroupMin1=3

[SafePCs]
Value=0
PCName1=NULL

[LeaveLoot]
LootNoDrop=true
LeaveUnknown=false
Value=0
LootItem1=
LootAlert1=
[WantedLoot]
Value=0
LootItem1=
LootAlert1=
[DestroyLoot]
DestroyUnknown=false
Value=0
LootItem1=
LootAlert1=

[IgnoreMobs]
Value=0
MobName1=

[Combat]
SpellSetTypeValue=0
SpellSetType=NULL

Value=6
SpellName1=Rancorous Servant
SpellSlot1=gem6
SpellMaxMobs1=100
SpellMinMobs1=1
SpellMaxMobHPs1=100
SpellMinMobHPs1=30
SpellMinMana1=20
SpellMaxHPs1=100
SpellRecastDelay1=18s
SpellGOM1=True
SpellCondition1=NULL
SpellType1=NULL

SpellName2=Bolt of Molten Scoria
SpellSlot2=gem10
SpellMaxMobs2=100
SpellMinMobs2=1
SpellMaxMobHPs2=80
SpellMinMobHPs2=40
SpellMinMana2=30
SpellRecastDelay2=5s
SpellFOP2=True
SpellCondition2=NULL

SpellName3=Torrent of Thunderbolts Rk. II
SpellSlot3=gem4
SpellMaxMobs3=1
SpellMinMobs3=1
SpellMaxMobHPs3=90
SpellMinMobHPs3=21
SpellMinMana3=20
SpellRecastDelay3=15s

SpellName4=Fickle Pyroclasm
SpellSlot4=gem2
SpellMaxMobs4=100
SpellMinMobs4=1
SpellMaxMobHPs4=92
SpellMinMobHPs4=21
SpellMinMana4=10
SpellRecastDelay4=10s

SpellName5=Shock of Cineral Steel Rk. II
SpellSlot5=gem5
SpellMaxMobs5=100
SpellMinMobs5=1
SpellMaxMobHPs5=85
SpellMinMobHPs5=5
SpellMinMana5=10
SpellRecastDelay5=10s

SpellName6=Malosenea
SpellSlot6=gem7
SpellMaxMobs6=100
SpellMinMobs6=1
SpellMaxMobHPs6=100
SpellMinMobHPs6=50
SpellMinMana6=15
SpellRecastDelay6=5m

[Alerts]
AlertDeathAudioFile=null
AlertEvac=null
AlertUnsafePC=null
Value=1
AlertMobName1=null
AlertAudioFile1=null

Configuration Explanation

[General]

  • SpellCoolDown=4s: The minimum time between spell casts. Increase this if you find the bot is nuking to fast.
  • SitAt=90: The current targeted mob Hitpoints to allow sitting. Use this to keep from sitting to early and pulling aggro.
  • MinMobLvl=46: Used in Solo mode, the lowest level mob that the magebot will engage. (It will still defend itself from mobs of lower level that attack)
  • MaxMobLvl=73: Used in Solo mode, the highest level mob that the magebot will engage. (It will still defend itself from mobs of higher level that attack)
  • MobRadius=100: The maximum distance to a mob to engage it.
  • MinSafeDistance=40: This is the minimum distance a mob has to be from the mage to be considered safe from attacks. If it is closer than this in solo mode the mage will attempt to retreat back out of range of the mob. In GroupMode the mage will simply not sit while the mob is closer than this. It will also not cast if the mob is looking in the direction of the mage.
  • ResistTries=3: This is the maximum number of times it will attempt to cast a spell, wether it's resisted or interuppted.
  • MinRestMana=40: In Solo mode if you are below this mana the bot will stop to med up. In GroupMode the mage rests whenever it's not in combat.
  • MinRestToMana=80: In Solo mode the bot will continue to rest until at this amount of mana. If attacked while resting the bot will attempt to defend itself.
  • TimeToSitAfterCast=1s: This is the minimum amount of time to wait to sit after casting a spell. Increase this if you find the bot sitting to fast and pulling aggro.
  • CircuitRestTime=5m: Used in Solo mode only. A circuit is considered one full run of it's path. It will rest for this amount of time, if it did not enounter any mobs on the last circuit.
  • ReplyToTells=false: This sets wether the mage will reply to tells from safepc members. It will never reply to tells that are not considered safepcs.
  • WalkPath=True: Used in Solo mode, if you want the bot to camp a specific area but not move create a small path and set this to false. This will make it so the mage can retreat along the path if a mob gets to close to it, but not actively walk the path to look for mobs.
  • PathName=default: The name of the path to use. This is so that you can have multiple paths in the same zone. The default pathname is ${Zone.ShortName} (This is also the default name of a path when using PathRecord.mac, See the wiki for PathRecord.mac for more information on this).
  • LootCorpses=True: Specifies wether the mage will attempt to loot corpses after a mob dies.
  • LootReturnNearestLoc=true: If set to true it will find the nearest loc to the corpse and go there after looting. If set to false it will attempt to return to the loc it was at when the mob died. I recommend this to false unless you are hunting in an area with lots of hills that could block the mage from getting back to it's original loc.
  • ModRodName=Rod of Prime Transvergence: The name of your Mod Rod if you wish to use one (Must specify the Mod Rod to be summoned in [Summoned] section). If you do not wish to use a Mod Rod just set this to NULL.
  • ModRodMana=40: The mana threshold to use the mod rod.
  • ModRodHPs=20: The minimum amount of hitpoints to use a mod rod.
  • HealPotName=Distillate of Celestial Healing XIII: The name of a healpot if you wish to use one (if not you can set this to NULL)
  • HealPotHPs=40: The hp threshold to use a heal pot.
  • UnsafePCAction=gate: The default action to take if an unsafe pc comes near the mage. Options are:
    • Camp: Will attempt to end the macro and camp after the current combat finishes.
    • Continue: Will keep running the macro and ignore the unsafe pc.
    • Gate: Attempts to gate, then ends the macro and camps if set to camp after gate.
    • Pause: Will pause the macro after the current combat ends.
    • Stop: Will stop the macro immediately.
  • CampAfterGate=True: This tells the mage to camp after gating if it gates for any reason. Set to false and it will still end the macro after gating but will stay logged in.
  • MainTank=group: The name of the main tank (if in group mode). If set to group it will use the EQ group roles.
  • PullerName=group: The name of the puller (if in group mode). If set to group it will use the EQ group roles.
  • Announcements=True: Wether or not to announce (send chat messages) when actions are performed that have announcements set.
  • AnnounceChan=/g: The channel to send announcements to.

[GroupSettings]

  • GroupMode=false: GroupMode on or off, if set to false it will run in solo mode and require a path. GroupMode does not require a path.
  • MainAssist=Group: The name of your main assist. If set to Group it will use the EQ Group Roles to find your MainAssist.
  • PetAssistPct=97: This is the mob HPs when the mage will enage the pet and start to cast spells on the mob.
  • GroupBuffAtStart=false: If set to true it will start buffing immediately when started. If set to false you will have to tell the bot groupbuff to start buffing via one of the accepted command channels. (/tell Mage, /echo on the mage, EQBC tell to mage)
  • MinBuffCheckTimer=1m: Since the mage has to target each group member to check if the buffs are currently on the target, you should not set this to low or the mage will constantly be cycling targets.
  • UnsafePCAction=pause: When running in groupmode this setting will be used over the General UnsafePCAction setting, it has all the same Options.
  • OutOfCombatSit=true: Wether the mage should sit and rest when out of combat.

[Pet Settings]

  • SummonAtStart=true: If set to true the mage will summon the pet (if it does not have one) when you start the macro. It will also equip the pet with the pet items.
  • EquipAtStart=true: Will summon and equip pet with specified items if SummonAtStart is true.
  • PetSpellName=Aspect of Air: Your pet spell name.
  • PetSlot=gem10: The slot (gem1 - gem10) to mem the pet spell to if it is not already memmed. Slot can also be item or alt.
  • PetFocusItem=null: If you have a focus item that needs to be equipped before summoning the pet, put the name of the item here and it will swap it in before summoning.
  • PetHeal=Revival of Aenro Rk. II: The spell to use to heal your pet.
  • PetHealPct=40: The HPs at which to heal your pet.
  • PetHealTo=80: The Hps at which to stop healing your pet.
  • PetWeaponSpell1=Summon Prime Armaments: The spell used to summon your first pet weapon. If it is a spell that summons a bag of items the bot will automatically recognize that and swap the bag into an open primary inventory slot if there is one. You can leave this null and it will search for the weapon in your inventory.
  • PetWeaponItem1=Summoned: Jagged Ragesword: The name of the first weapon to give to the pet.
  • PetWeaponSlot1=gem10: The slot (gem1 - gem10) to mem the pet weapon spell to, can be item or alt as well.
  • PetWeaponSpell2=null: The spell for your 2nd weapon, if the first spell summoned a bag of weapons you can leave this null and it will still search for the 2nd weapon in your inventory.
  • PetWeaponItem2=Summoned: Jagged Ragesword: The name of the 2nd weapon to give to your pet
  • PetWeaponSlot2=gem10: The slot (gem1 - gem10) to mem the spell to, can also be item or alt.
  • PetMuzzleSpell=null: The spell to summon a muzzle for the pet, if null it will still look for the item in your inventory.
  • PetMuzzleItem=null: The name of the muzzle item to give to the pet.
  • PetMuzzleSlot=gem10: The slot (gem1 - gem10) to mem the spell to, can also be item or alt.
  • PetBeltSpell=null: The name of the spell to summon a belt for the pet. If you leave it null it will still look for the item in your inventory.
  • PetBeltSlot=gem10: The slot (gem1 - gem10) to mem the spell to, can also be item or alt.
  • PetArmorSpell=null: The name of the spell to summon a bag of pet armor.
  • PetArmorSlot=gem10: The slot (gem1 - gem10) to mem the spell to, can also be item or alt.

[Summoned]

  • Value=0: The number of Summoned Item settings there are in the INI, each new item should end in incremental order. Example SummonedSpell1 for the first item, SummonedSpell2 for the second item.
  • SummonedSpell1=Summon Gelid Paradox: The name of the spell to summon the item
  • SummonedItem1=Summoned: Elmenetal Ice Sliver: The name of the item summoned. This must be correct because if it does not find this item in your inventory it will attempt to summon it.
  • SummonedSlot1=gem10: The slot (gem1 - gem10) to mem the spell to, can also be item or alt.

Buff Settings

[SelfBuffs]
  • Value=4: The number of buffs in the self buff section of the ini
  • SelfBuffName1=Eidolic Guardian Rk. II: The name of the spell to cast the buff.
  • SellfBuffText1=Eidolic Guardian Rk. II: The text that shows on the buff icon when you have the buff on you. If this is not correct it will atempt to cast the buff every buff check.
  • SelfBuffSlot1=gem9: The slot (gem1 - gem10) to mem the spell to, can also be item or alt
[PetBuffs]
  • Value=3: The number of buffs in the pet buff section of the ini
  • PetBuffName1=Brimstoneskin Rk. II: The name of the spell to cast the buff.
  • PetBuffText1=Brimstoneskin Rk. II: The text that shows on the buff icon when it is on the pet, if this is not correct it will attempt to cast the buff every buff check.
  • PetBuffSlot1=gem8: The slot (gem1 - gem10) to mem the spell to, can also be item or alt.
[GroupBuffs]
  • Value=1: The number of buffs in the group buff section of the ini
  • GroupBuffGroup1=Circle of Lavaskin Rk. II: The name of the spell for the group version of the buff
  • GroupBuffGroupDisplayName1=Circle of Lavaskin Rk. II: The text that shows on the icon for the group version of the buff.
  • GroupBuffSingle1=Lavaskin Rk. II: The name of the spell for the single target version of the buff
  • GroupBuffSingleDisplayName1=Lavaskin Rk. II: The text that shows on the icon for the single target version of the buff
  • GropuBuffAlias1=ds: The alias for the spell, used to command the bot to use the buff and in other cases instead of having to type out the full name of the buff.
  • GroupBuffTargets1=WAR|SHD|PAL|RNG|MNK|ROG|BRD|BST|BER: The list of classes to buff with this buff. Valid Targets:
    • Short Class Name (Ex WAR MNK CLR)
    • Long Class Name (Ex Warrior Monk Cleric)
    • Character Name (Ex Bob)
    • Main Tank (mt or maintank)
  • GroupBuffSlot1=gem7: The slot (gem1 - gem10) to mem the spell to, can also be item or alt.
  • GroupBuffCombat1=False: If set to true it will only cast this buff while in combat, if false it will only cast it when out of combat.
  • GroupBuffGroupAnnounce1=Lavaskin inc on group: Will announce this when casting the group version of the buff.
  • GroupBuffSingleAnnounce1=Lavaskin inc on %t: Will announce this when casting the single target version of the buff.
  • GroupBuffAuto1=True: This sets wether the buff should be cast during routine buff checks if it is not found on a target. If set to false it is still loaded in the buff list so that you can request it via a bot command using the buff alias.
  • GroupBuffGroupMin1=3: The minimum number of people that need the buff in order to use the group version of the buff instead of the single target version.

One thing to note in this groupbuffs, if you do not have a version of the spell (group vs single) or dont want to use either version, you can set the settings for that version to NULL and it will only use the other version. Also it will not attempt to cast a buff on a target that the buff will not stack on.

[SafePCs]

  • Value=0: The number of safe pcs.
  • PCName1=null: The name of the safe pc.

All members of your group are automatically considered safe pcs.

Loot Settings

[LeaveLoot]
  • LootNoDrop=true: Tells the bot wether it is allowed to loot no drop items or not by default. If LootNoDrop is false but a no drop item is in the WantedLoot section it will still loot it.
  • LeaveUnknown=false: If false the bot will loot items that dont have a setting, if true it will leave them on the corpse
  • Value=0: The number of leave items
  • LootItem1=Null: The name of the item (it can be a partial name)
  • LootAlert1=Null: The path to a music file to play if this item is encountered (Ex. C:\Alert.mp3)
[WantedLoot]
  • Value=0: The number of wanted items
  • LootItem1=Null: The name of the item (it can be a partial name)
  • LootAlert1=Null: The path to a music file to play if this item is encountered (Ex. C:\Alert.mp3)
[DestroyLoot]
  • DestroyUnknown=false: If LeaveUnknown is set to false and this is set to true it will destroy unknown items. If LeaveUnknown is set to true it takes priority.
  • Value=0: The number of destroy items
  • LootItem1=Null: The name of the item (it can be a partial name)
  • LootAlert1=Null: The path to a music file to play if this item is encountered (Ex. C:\Alert.mp3)

[IgnoreMobs]

  • Value=0: The number of mobs to ignore
  • MobName1=: The name of the mob to ignore (it can be a partial name)

Mobs on the ignore list will not be attacked, under any circumstances. If something happens to make one attack you it will not defend against it. (There is currently no real way to know if it's attacking your or just nearby to you). IgnoreMobs is mainly meant to be used on mobs that you may come near that are not attackable.

[Combat]

  • SpellSetTypeValue=0: The number of spell sets
  • SpellSetType1=NULL: The name of the spell set type.

Spell sets are meant to make it easier to add spells to the ini without having to renumber everything if you have a lot of spells. So you can create sets, and the sets will be checked in order of the set type order, regardless of the Spell entry number. An example would be to have a SpellSetType of Named, and any spell that you want checked before other spells and used on named you can set the SpellType=Named, and the SpellCondition=Target.Named. Otherwise spells are cast in the ordre they are entered in the INI, the first one that conditions are met for is the one that is cast.

  • Value=6: The number of combat spells.
  • SpellName1=Rancorous Servant: The name of the spell
  • SpellSlot1=gem6: The slot (gem1 - gem10) to mem the spell to, can also be item or alt.
  • SpellMaxMobs1=100: The maximum number of mobs in the camp area to use this spell (primarily used if you dont want to cast an ae if there are to many mobs around)
  • SpellMinMobs1=1: The minimum number of mobs in the camp area to use this spell (So if you only want to use say a rain spell if there are at least 2 mobs around you would put 2 here).
  • SpellMaxMobHPs1=100: The maximum amount of hitpoints the mob can have to use this spell.
  • SpellMinMobHPs1=30: The minimum amount of hitpoints the mob can have to use this spell.
  • SpellMinMana1=20: The minimum amount of mana the mage should have to cast this spell.
  • SpellMaxHPs1=100: The maximum amount of HPs the mage should have to cast this spell (Not really used as a mage but it is an option for lifetap type spells in other bots).
  • SpellRecastDelay1=18s: The minimum amount of time between casts of this spell.
  • SpellGOM1=True: If true it will only cast this spell if you have gift of mana buff on. Currently this is slightly bugged and will not always cast the level appropriate GOM spell.
  • SpellCondition1=Null: A custom single True or False variable that can be evaluated and must be true to cast this spell. Do not include any {} on this variable. (Ex. Target.Named, or you could do !Target.Named if you want it to cast this spell if the variable returns False)
  • SpellType1=Null: The type setting for the spell (see SpellSet information above)

[Alerts]

  • AlertDeathAudioFile=null: The path to a music file to play if the mage dies. (Ex. C:\Alert.mp3)
  • AlertEvac=null: The path to a music file to play if the bot has to gate for any reason.
  • AlertUnsafePc=null: The path to a music file to play if the bot detects an unsafepc in the area.
  • Value=1: The number of mob alerts
  • AlertMobName1=null: The name of the mob that when encountered will play the alert (can be a partial name)
  • AlertAudioFile1=null: The path to a music file to play if the bot encounters the named mob.

Version History

  • Please see the forum post for a list of all updates
  • 3.00 03/01/2009
    • Files Changed
      • mageBot.mac
      • devCommon.inc v1.7
    • Bug Fixes
      • Added a check to ensure proper targetting in groupmode when initially entering combat
    • New Additions
      • Modifed for devCommon.inc v1.7
      • Added support for the devCommon EQ Group roles. Set mainassist in the ini to group if you want to use these settings.
    • INI Changes
      • None

Availability

MageBot Post
MageBot Download