mageBot v3.10 - Fully automated mage - Updated: 08/08/2009

devestator

Lifetime Member
Joined
Oct 25, 2006
Messages
1,550
Reaction score
15
Points
38
mageBot v3.11 - Fully automated mage - Updated: 09/01/2009

There is now a wiki for the magebot! MageBot Wiki The wiki includes full setup information for the INI, and I will expand it with more helpful information as time passes and I see the need.

Description:
This is a mage bot that is meant to serve as an all in one bot. With V2.0 you can now run in a groupmode in order to run as an assist bot, even on raids (although this has not be tested on a raid). 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. In non group mode a pre recorded path is required.

Solo mode is a great way to get experiences or just farm for money while you do other more important things! I've had great success using the bot in this faction. With the latest set of updates I've had the bot run successfully for 24 hours straight without any deaths in a semi dangerous area (mobs that hit for over 1k quad). This is on a level 80 mage so mileage may vary depending on AAs and level.

The pet focus AA (Advanced Pet Discipline Rank 1) is required 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.

Required Files
magebot.mac
devCommon.inc v1.80
devMovement.inc v1.60
MQ2Cast_Spell_Routines.inc
mageBotSettings.ini

Required Plugins
MQ2Cast
MQ2Debuffs
MQ2Exchange

Other Requirements
Pet Focus AA (For solo mode)

Download notes

_________________________________________________________
Please post any bugs or comments here or email me at devestatorcoder@gmail.com If anyone has any suggestions or improvements to contribute I welcome them :)

A couple quick notes:
-There is a pccheck sub routine so that if a pc gets near you that is not on your safepc list in the settings.ini the bot will attempt to gate and camp.
-If there are particular mobs that cannot be attacked or that you do not want to attack in your path you can add them to the IgnoreMobs list in the settings.ini, be sure to update the Vale with the total number of ignored mobs.
-Currently the pet focus aa is needed for the macro to run at it's best whe soloing. If you get an add and do not have the pet focus aa the pet will not get it off you and the bot will continually attempt to run from the add causing more problems. If you can run it somewhere where you will not get adds then you will be ok without the aa.
-I'm working on a wiki help file for the ini to help new people get up and running but I havn't gotten it finished yet. For now if you can't figure
something out just let me know.
___________________________________________________________________________
Downloads

MageBot v3.11
___________________________________________________________________________
mageBot v3.11 Update Notes 09/01/2009
Files Changed
mageBot.mac
mageBotSettings.ini
devCommon.inc v1.82

Bug Fixes
-Modified position check routine to be a little more dependable when moving around mobs.

New Additions

INI Changes
-New INI Setting:
Code:
[General]
MinRestPetHPs=60
This just adds a setting so that you will rest if your pet is under this amount of hitpoints.


mageBot v3.10 Update Notes

Files Changed
mageBot.mac
mageBotSettings.ini
devCommon.inc v1.80

Bug Fixes
-Corrected a bug when in solo mode at the end of a path that could cause the bot to hang in rest mode.
-Corrected a bug in group mode where the mage would attack adds before they were at the specified assist percent.

New Additions
-When in a group and using follow mode, it will now attempt to stay near it's follow target in combat.

INI Changes
-New INI setting:
Code:
[PetSettings]
[COLOR="SeaGreen"]PetFocusItem=[/COLOR] This will eqiup the item specified before summoning a pet and then reequip the item you had on before.

-Groupbuff INI Revamp:
Code:
[COLOR="SeaGreen"]Value=1[/COLOR] How many group buffs there are.
[COLOR="seagreen"]GroupBuffGroup1=[/COLOR] The name of the Group version of the spell
[COLOR="seagreen"]GroupBuffGroupDisplayName1=[/COLOR] The buff icon text for the group version of the spell
[COLOR="seagreen"]GroupBuffSingle1=Brimstoneskin Rk. II[/COLOR] The name of the single target version of the spell
[COLOR="seagreen"]GroupBuffSigleDisplayName1=Brimstoneskin Rk. II[/COLOR] The buff icon text for the single target version of the spell
[COLOR="seagreen"]GroupBuffAlias1=ds[/COLOR] The alias for the buff (used when requesting the buff via a command)
[COLOR="seagreen"]GroupBuffTargets1=mt[/COLOR] The list of valid targets, can be shortclass name, long class name, player name, mt (for maintank), or maintank.  (Ex. mt|WAR|SHD|MNK|Rogue|Bob where Bob is a player)
[COLOR="seagreen"]GroupBuffSlot1=gem7[/COLOR] The gem to mem the buff to if it is not already memmed.  This can be item or alt as well.  If you use item or alt the name (single or group) should be the name of the item or alt ability.
[COLOR="seagreen"]GroupBuffCombat1=false[/COLOR] If set to true, it will only cast this buff while in combat.
[COLOR="seagreen"]GroupBuffGroupAnnounce1=[/COLOR] The announce message for the group version of the spell
[COLOR="seagreen"]GroupBuffSingleAnnounce1=Brimestoneskin on %t[/COLOR] The announce message for the single target version of the spell
[COLOR="seagreen"]GroupBuffAuto1=TRUE[/COLOR] Wether or not to automatically cast this buff.  If you set this to false it will not buff it but will still have it in the buff array so that you can request it via a buff command.
[COLOR="seagreen"]GroupBuffGroupMin1=0[/COLOR] The minimum number of people in the group that should need the buff in order to use the group version.

New buffing code in devCommon allows for Group buffs or single target buffs, and it will choose which is best to use.


Please visit the devCommon.inc download to see full updates for it.
_____________________________________________________________

Please I welcome comments, suggetions, and change requests!
 

Attachments

  • devCommon.inc
    144.1 KB · Views: 369
Last edited:
woot

rock on! thank ya dev, will be busting this out very very soon!
 
Well, I havent tried this yet, but I plan to when I get home. I have taken the old mage mac and put sooo many bandaids on it that it works, but pretty much only for my specific toon. I tried using it with a friends mage and it flopped.

I am more than willing to help with this mac if you would like. I am no expert by far at code, but I use my toon every single day in a group mode and would love to see it improved. I can work thru code decently and help work out the kinks.

Let me know. I look forward to this much needed revamp.
 
Thanks bro, will give this a testdrive when i get back from work ! :)
 
everything..

..is so nice, gret upgrade from your last one. but only one weird thing, it was running great buffing ect me and pet then i died. when i made my new pet and restarted the mac, it went through rebuffing then i noticed it was just chain casting burnout..and it was the wrong one on top of that.

here is the pet part of ini

[PetBuffs]
PetBuffName1=Brimstoneskin
PetBuffName2=Burnout VIII Rk. II
PetBuffName3=Iceflame Tenement Rk. II
PetBuffName4=Focus of Primal Elements
PetBuffName5=NULL
PetBuffText1=Brimstoneskin
PetBuffText2=Burnout VIII Rk. II
PetBuffText3=Iceflame Tenement Rk. II
PetBuffText4=Primal Fusion
PetBuffText5=NULL
PetBuffItem1=false
PetBuffItem1=False
PetBuffItem1=False
PetBuffItem1=False
PetBuffItem1=False
PetBuffGem=5

--it just loops burnout VII Rk. II over and over now. maybe ez fix and something i did, tryed a few things but not really sure, and its 2am time to pass out
 
Hmm mafiapitbull, the only time I've seen that happen is when I had an error in the ini for the buff text file but I do not see anything wrong with yours (other than the mistake that I made in the example ini, PetBuffItem1 should be 1 to 5 not all 1s hehe). But still that mistake that I made should not cause a buff loop....

Do me a favor and next time you run it, if it does the same thing go into your MQ2\logs folder and there should be a magebot.mac log. Either send me the entire log or look in it and copy and paste the section when its doing buffs (it will have a line that says Checking Buffs, and when it finishes it will say Buff check completed.)

I havn't gotten 81 on my mage yet, been working on aas while farming so I dont have the spell, I'm sure you've checked but if you hover your mouse over the burnout spell on your pet the text that comes up is "Burnout VIII Rk. II" correct?

The odd thing is you say it's casting Burnout VII Rk. II? Your copy and paste there clearly says VIII, so if it's casting VII it may end up being a bug in MQ2Cast_Spell_Routines.inc.

One other question for you, you said it ran fine the first time before you died. Did you edit the ini after dieing? And if so did you possible save it more than once (maybe do a save as?).

If all else fails I will work on getting my mage 81 to test it out personally lol but we'll see if we can figure out whats going on this way first :)

Also note for everyone attempting to use this, I didn't think about this when I posted this lastnight since I have a thread over at MQ2 with all the info but I know some things might be a little confusing in the INI and about how things work. I'm working on a full write up / help wiki for it that will explain everything better. So in the meantime if you are confused about something just let me know and I'll be happy to help.
 
This may have me move my mage to another account , im going to give this a go :)
 
ok

i will try to log it here in a bit but i changed the .ini to represent the VII rk2 burnout and it stops looping
 
here

[11/06/2008 09:21:56] Magebot Initialized
[11/06/2008 09:21:56] Loading variables...
[11/06/2008 09:21:57] Loading buffs
[11/06/2008 09:21:57] Loading pet buffs
[11/06/2008 09:21:57] Loading safe pc list
[11/06/2008 09:21:57] Loading combat spells
[11/06/2008 09:21:57] Loading mobs to ignore
[11/06/2008 09:21:57] Ignoring: Gillamina
[11/06/2008 09:21:57] Ignoring: dead
[11/06/2008 09:21:57] Loading loot settings
[11/06/2008 09:21:58] Loading general settings
[11/06/2008 09:21:58] Starting main loop
[11/06/2008 09:21:58] MageBot V2.0, written by Devestator, initiated
[11/06/2008 09:21:58] Looting Corpses: FALSE
[11/06/2008 09:21:58] Group Mode: TRUE
[11/06/2008 09:21:58] Main Assist: joebob
[11/06/2008 09:21:58] Pet Assist At: 97
[11/06/2008 09:21:58] INI FileName: mageBotSettings.ini
[11/06/2008 09:21:58] Load completed.
[11/06/2008 09:21:58] Checking buffs
[11/06/2008 09:21:59] Buff check completed.
[11/06/2008 09:22:00] Pet Focus Off
[11/06/2008 09:22:00] Pet Focus On
[11/06/2008 09:22:00] Checking buffs
[11/06/2008 09:22:01] Buff check completed.
[11/06/2008 09:22:01] Rest finished: HPs: 100 Mana: 97 Pet HPs: 100
[11/06/2008 09:22:01] Checking buffs
[11/06/2008 09:22:02] Buff check completed.
[11/06/2008 09:22:02] Checking buffs
[11/06/2008 09:22:04] Buff check completed.
[11/06/2008 09:22:04] Rest finished: HPs: 100 Mana: 97 Pet HPs: 100
[11/06/2008 09:22:04] Checking buffs
[11/06/2008 09:22:05] Buff check completed.
[11/06/2008 09:22:05] Checking buffs
[11/06/2008 09:22:06] Buff check completed.
[11/06/2008 09:22:06] Rest finished: HPs: 100 Mana: 97 Pet HPs: 100
[11/06/2008 09:22:06] Checking buffs
[11/06/2008 09:22:08] Buff check completed.
[11/06/2008 09:22:08] Checking buffs
 
Ok thats wierd, in that log there it was casting burnout over and over again? If so it's definately something abnormal happening because in my buff routine sub there is no where that it casts a buff without spitting out a line to the log saying that it is rebuffing it.

I see you are running groupmode so that may have something to do with it. I'll play with it some in a little bit when I get home and see if I can reproduce it.

In the meantime I'll need to see the rest of your ini file please (just leave out the safepcs part)
 
in this ini i have the burnout changed so it would work, but normally it would be at Burnout VIII Rk. II, as for that its exactally as i run it and it does everything wonderfully.

[General]
SpellCoolDown=4s
SitAt=90
MinMobLvl=46
MaxMobLvl=85
MobRadius=55
PetHeal=Revival of Aenro Rk. II
PetHealPct=35
PetHealTo=70
ResistTries=1
MinRestMana=35
MinRestToMana=90
MinRestOverHPs=80
TimeToSitAfterCast=1s
CircuitRestTime=60s
ReplyToTells=false
MinSafeDistance=30
WalkPath=true
PathName=default
LootCorpses=false
[GroupSettings]
GroupMode=true
MainAssist=jobob
PetAssistPct=97
GroupBuffAtStart=false
[SelfBuffs]
SelfBuffName1=Eidolic Guardian Rk. II
SelfBuffName2=Shield of the Void
SelfBuffName3=Prime Symbiosis Rk. II
SelfBuffName4=Ornate Runed Totem Staff
SelfBuffName5=Torrentus' Frostsilk Sash
SelfBuffText1=Eidolic Guardian Rk. II
SelfBuffText2=Shield of the Void
SelfBuffText3=Prime Symbiosis Recourse Rk. II
SelfBuffText4=Maelin's Meditation
SelfBuffText5=Form of Rejuvenation IV
SelfBuffItem1=false
SelfBuffItem2=False
SelfBuffItem3=False
SelfBuffItem4=True
SelfBuffItem5=False
SelfBuffGem=6
[PetBuffs]
PetBuffName1=Brimstoneskin
PetBuffName2=Burnout VII Rk. II
PetBuffName3=Iceflame Tenement Rk. II
PetBuffName4=Focus of Primal Elements
PetBuffName5=NULL
PetBuffText1=Brimstoneskin
PetBuffText2=Burnout VII Rk. II
PetBuffText3=Iceflame Tenement Rk. II
PetBuffText4=Primal Fusion
PetBuffText5=NULL
PetBuffItem1=false
PetBuffItem1=False
PetBuffItem1=False
PetBuffItem1=False
PetBuffItem1=False
PetBuffGem=5
[GroupBuffs]
Value=1
GroupBuffName1=Circle of Lavaskin Rk. II
GroupBuffDisplayName1=Circle of Lavaskin Rk. II
GroupBuffAlias1=ds
GroupBuffClass1=WAR|SHD|PAL|RNG|MNK|ROG|BRD|BST|BER|SHM|CLR|DRU|WIZ|MAG|ENC|NEC
GroupBuffSlot1=gem6

[IgnoreMobs]
Value=2
MobName1=Gillamina
MobName2=dead
[WantedLoot]
Value=0
LootItem1=
[DestroyLoot]
DestroyUnknown=false
Value=3
LootItem1=Uncut
LootItem2=Earth Elemental Parts
LootItem3=Nihilite
[Combat]
SpellName1=Rancorous Servant
SpellGem1=6
SpellMaxMobs1=100
SpellMinMobs1=1
SpellMaxMobHPs1=100
SpellMinMobHPs1=20
SpellMinMana1=10
SpellRecastDelay1=1s
SpellCondition1=Me.Song[Gift of Exquisite Radiant Mana].ID

SpellName2=Fickle Pyroclasm Rk. II
SpellGem2=3
SpellMaxMobs2=100
SpellMinMobs2=1
SpellMaxMobHPs2=85
SpellMinMobHPs2=13
SpellMinMana2=10
SpellRecastDelay2=10s

SpellName3=Malosenea
SpellGem3=7
SpellMaxMobs3=100
SpellMinMobs3=1
SpellMaxMobHPs3=100
SpellMinMobHPs3=80
SpellMinMana3=15
SpellRecastDelay3=5m

SpellName4=Shock of Cineral Steel Rk. II
SpellGem4=4
SpellMaxMobs4=1
SpellMinMobs4=1
SpellMaxMobHPs4=90
SpellMinMobHPs4=30
SpellMinMana4=20
SpellRecastDelay4=20s
SpellCondition4=Me.Song[Flames of Power].ID
 
Hmm mafia, I honestly dont know I can't duplicate the problem with any of my spells. I'll try to get 81 and test it pesonally myself but if anyone else has run it on 81 and can report if they are having the same problem or not that would be great.
 
np..

...just let me know what ya run into, only does it with the new burnout, seems to cast the new spells fine though
 
Just an update in case you don't see my other post. This is definately a bug in either the MQ2Cast plugin in or the main MQ2 source. I havn't been able to track down exactly where yet since I'm not extremely fluent in C++ but I'm 100% sure it's not in my macro.

So for now if your lvl 81+ you'll have to continue to use Burnout VII until the bug is corrected in the release, it's not a problem that I can fix in my macro.
 
The newest version of MQ2Cast on the MQ2 website fixes the problem with Burnout VIII.

Attached is a rar file with the newest source code and it compiled. Just copy the dll into your mmobugs folder and replace the old one.

Hopefully mmobugs will include this version of MQ2Cast in their next compile so you wont have to keep replacing it.
 

Attachments

  • MQ2Cast.rar
    108.6 KB · Views: 62
i ran this mac for a few minutes the other night, one thing i noticed is in group mode it keeps targeting the mage, the pet and the MA's target, it would cycle through those targets repeating relay fast till the ma's target was below 97%.
is there a way to not target the mage and pet like that? i am assuming it part of the buff check.
 
It is indeed part of the buff check, for the mage and the pet it dosn't have to target to get the buffs, I just have it target when it checks buffs so that it has the correct target already when it goes to buff. It has to actually target the other group members to check their buffs though.

With that said I do plan on adding a buffcheck timer so that it will only check once every designated period of time (which will be set in the ini). Look for this in the next update. I hope to have a new update out this weekend it just depends on my guilds raid schedule and how much time I get to work on the macro.
 
Magebot V2.1 - 11/15/2008 Updates

There are a lot of ini changes in this update so your going to have to either make a lot of changes in your ini or restart a new one based off the example included in the rar file. Sorry about this but it's for some good improvements and will hopefully be the last time so many changes are necessary.

Files Changed
mageBotMovement.inc
mageBotSettings.ini
mageBot.mac

Bug Fixes
-Fixed a bug that came up if you have your mobRadius set higher than 75. It would target a mob but then keep running unless you got within a radius of 75.
-Tweaked the aggro check when casting spells some, in some cases it would start to cast spells and interuppt them because of a mob being to close, but then instead of attempting to reposition it would try to cast the spell again.
-I have modifed the movement routine to try to avoid getting in a situation where you are stuck more. It will now attempt to move to a locand if it cannot get there it will go back some and try to get to each loc on the path until it gets to the end. If it gets to the end and still cannot get to any loc then it will assume it is stuck and gate out. Also it will not continue to try and move if it is stunned or rooted (if you are using the fixed version of MQ2Debuffs)

New Additions
-Added a rampage check, you will no longer sit for the duration of a fight where a mob rampages the mage.
-Added a summon check, if summoned instead of trying to go all the way back to where it was it will move to the closest loc and then make sure it is at a safe distance from the mob(s).
-Added MinBuffCheckTimer to the ini (See ini changes for more details)
-Added LootReturnNearestLoc to the ini (See ini changes for more details)
-Added Alerts (See ini for setup details)
You can now specify audio alerts for when you come accross a specific mob or if you die. I can add more alerts if people want, just let me know what yall would like.
-The mage will now attempt to gate in some situations to avoid death or being stuck (I've caught mine a few times running into a wall because of being stuck) If you have the Gate aa it will use it, if not it will attempt to mem and use the spell.

INI Changes
-New MinBuffCheckTimer, this is only used in GroupMode so it is under GroupSettings. It makes it so that it will only check buffs once every specified period of time. This will prevent it from constantly cycling targets during downtime. You can use any time in the form of s or m (example 30s for 30 seconds or 1m for 1 minute).
-New LootReturnNearestLoc, this option if set to true will make the mage return to the nearest loc after looting a corpse instead of going back to the loc it was at when the mob died. This is usefull in areas where you may not be able to return to the loc you were at (example the edge of a wall)
-Changed buffs and combat spells to be able to use alt or items. To make this change all xxxBuffItemx ini entries have been changed to xxxBuffSlotx, and all SpellGemx have been changed to SpellSlotx. Valid entries for these are gem1 to gem10, item, or alt.
gemx only tells it where to mem the spell if it is not already memmed.
item tells it that the spell is being cast from an itm
alt tells it that the spell is being cast from an alt ability
So lets say for example you want to use the new SoD Group Invis aa when you are buffing. Your entries would look like this:
SelfBuffName1=Perfected Group Invisibility
SelfBuffText1=Perfected Group Invisibility
SelfBuffSlot1=alt
I'd recommend if you did use something like invis, it needs to be your last buff so that you don't cast another buff and break your invis (buffs are cast in the order they are appear in the ini).
-Removed all limits from the ini
No longer do you have a limit to the number of buffs or spells that you can have in the ini. Each section has a Value setting that should be set to the number of items in that section. So if you are using 5 spells the value in Combat should be set to 5.
-Added Alerts section to the ini.
You can now have audio alerts if you encounter a specific mob, or if you die. The settings are as follows:
[Alerts]
AlertDeathAudioFile=c:\music.mp3 This is the audio file it will play if it dies. You can set it to null to not play anything if you die.
Value=1 The number of mob audio alerts
AlertMobName1=rat The name of the mob you want to set the alert off (it can be a partial name)
AlertAudioFile1=c:\music.mp3 The audio file it will play if it targets this mob
For alerts it will keep track of up to 100 npc ids that it is currently playing alerts for. It will erase the id if that spawn is no longer in the zone. I can't imagine anyone being engaged in more than 100 mobs at a time all having an alert, but if you do it will not play alerts past 100 alerts at the same time.

Future Additions
-Ability to summon and equip pets
-Ability to accept rezzes

Please I welcome comments, suggetions, and change requests!