- Joined
- Dec 12, 2007
- Messages
- 3,956
- Reaction score
- 49
- Points
- 38
BLUF: my github with my mq2bot rework and some other stuff https://github.com/PeteSampras/MQ2Bot
Status Board/roadmap: GitKraken Glo
I have been in the process of updating mq2bot for awhile now. I've gone back and forth how I want to lay it out and I know there is probably some interest in how to write plugins or to see how things are done. I am by no means an expert but I have created a github to store some of my code as I build out the plugin. I will likely keep posting until i get to a version 1.0 though i can't say i would post continued updates to it as those are often done by htw and housed in the mmobugs compile. He puts in a ton of work updating plugins and once he starts maintaining the plugin, it is as much his as mine because I just can't do what he does. I don't actually play EQ (haven't in years) so I am really just doing this to learn c/c++ more. When i first started mq2bot i knew absolutely no code, in the couple years I have at least learned a few tricks and want to change how the bot works to be more flexible, more powerful, reduce/remove crashes, and have a much smaller size/memory impact. The initial portions of the rework say all of this is going to be accomplished.
To that end, I am always open to ideas on how to build a better mousetrap. So if others are interested in looking at the code for ideas or suggestions, by all means have a go at it. I already know I will have to do a whole bunch of string changes due to the most recent patch so I am likely holding off any coding for the next couple days.
Some very generic basics of building a bot that I need to build out:
Things I can do
People, places, things I can I do things to
Mechanism to do these things
So what have I actually done? Hint: not a lot because i have wafered back and forth on data standardization.
I have built out some core functions and structures to find and store spells/AAs/disc/items and some routines that I will need to use later down the road. It will detect the old mq2bot "AA", "Disc", and "Heal" sections and even flow through a routine to check AAs on a non-existant target. It will detect, categorize, and prioritize spells on the fly as you mem or de-mem them. If the spell is something it wants to use it is "Added", if it doesnt plan on automatically using it, it will just say "Detected".
Current commands:
/plugin mq2botbeta - loads the plugin
/bot - turns on the plugin
/botlist - list all the AAs, spells, disc it currently plans on using from the sections i mentioned previously.
/bot populate spell - populates ini for sample spell setup
Whats left: Basically everything but I can copy/paste a lot of code from the current mq2bot and just modify it some.
What's next:
1. spawns. the structure is in place, now i need to store the info for things i want to buff/heal (group, maybe xtarget, maybe netbots, maybe pets get their own), and stuff i want to hurt (NPCs that have appeared on my xtarget somewhere probably). Once i can store and set that information for the existing routines, i can move to the next thing.
2. mechanism to use my skills. i ripped a bunch of mq2cast and mq2casttimer code and placed it in the .cpp, i also have some select code in the other .cpps that are relevant. I think it might actually work with how i have it set up already, but i plan to make changes anyway. my goal is to pre-check as much info as i can when i first load the spell so that i can avoid countless rechecks until the very last moment. i absolutely must ingest mq2cast or a cast handling mechanism to internally track what has been cast. mq2bots timers have never functioned correctly because of this issue.
3. all the other misc routines and settings and one-offs. most of those will be copy/paste from the existing mq2bot code because of how unique they were and if it aint broke, dont fix it.
This is almost certainly going to take months to accomplish because i play too much dota and really only code when i get in the mood, which is a couple hours every other day currently. However, once I get an example of everything complete, it will be copy and replace for each Create and Check routine for the most part thanks to the uniformity of how I am setting everything up.
Feel free to ask questions about how something works, provide feedback on this post, via PM, or in IRC. I know there are only a handful of people interesting in coding plugins so I don't really expect this thread to have much traction but I figured I would at least offer it up.
Status Board/roadmap: GitKraken Glo
I have been in the process of updating mq2bot for awhile now. I've gone back and forth how I want to lay it out and I know there is probably some interest in how to write plugins or to see how things are done. I am by no means an expert but I have created a github to store some of my code as I build out the plugin. I will likely keep posting until i get to a version 1.0 though i can't say i would post continued updates to it as those are often done by htw and housed in the mmobugs compile. He puts in a ton of work updating plugins and once he starts maintaining the plugin, it is as much his as mine because I just can't do what he does. I don't actually play EQ (haven't in years) so I am really just doing this to learn c/c++ more. When i first started mq2bot i knew absolutely no code, in the couple years I have at least learned a few tricks and want to change how the bot works to be more flexible, more powerful, reduce/remove crashes, and have a much smaller size/memory impact. The initial portions of the rework say all of this is going to be accomplished.
To that end, I am always open to ideas on how to build a better mousetrap. So if others are interested in looking at the code for ideas or suggestions, by all means have a go at it. I already know I will have to do a whole bunch of string changes due to the most recent patch so I am likely holding off any coding for the next couple days.
Some very generic basics of building a bot that I need to build out:
Things I can do
People, places, things I can I do things to
Mechanism to do these things
So what have I actually done? Hint: not a lot because i have wafered back and forth on data standardization.
I have built out some core functions and structures to find and store spells/AAs/disc/items and some routines that I will need to use later down the road. It will detect the old mq2bot "AA", "Disc", and "Heal" sections and even flow through a routine to check AAs on a non-existant target. It will detect, categorize, and prioritize spells on the fly as you mem or de-mem them. If the spell is something it wants to use it is "Added", if it doesnt plan on automatically using it, it will just say "Detected".
Current commands:
/plugin mq2botbeta - loads the plugin
/bot - turns on the plugin
/botlist - list all the AAs, spells, disc it currently plans on using from the sections i mentioned previously.
/bot populate spell - populates ini for sample spell setup
Whats left: Basically everything but I can copy/paste a lot of code from the current mq2bot and just modify it some.
What's next:
1. spawns. the structure is in place, now i need to store the info for things i want to buff/heal (group, maybe xtarget, maybe netbots, maybe pets get their own), and stuff i want to hurt (NPCs that have appeared on my xtarget somewhere probably). Once i can store and set that information for the existing routines, i can move to the next thing.
2. mechanism to use my skills. i ripped a bunch of mq2cast and mq2casttimer code and placed it in the .cpp, i also have some select code in the other .cpps that are relevant. I think it might actually work with how i have it set up already, but i plan to make changes anyway. my goal is to pre-check as much info as i can when i first load the spell so that i can avoid countless rechecks until the very last moment. i absolutely must ingest mq2cast or a cast handling mechanism to internally track what has been cast. mq2bots timers have never functioned correctly because of this issue.
3. all the other misc routines and settings and one-offs. most of those will be copy/paste from the existing mq2bot code because of how unique they were and if it aint broke, dont fix it.
This is almost certainly going to take months to accomplish because i play too much dota and really only code when i get in the mood, which is a couple hours every other day currently. However, once I get an example of everything complete, it will be copy and replace for each Create and Check routine for the most part thanks to the uniformity of how I am setting everything up.
Feel free to ask questions about how something works, provide feedback on this post, via PM, or in IRC. I know there are only a handful of people interesting in coding plugins so I don't really expect this thread to have much traction but I figured I would at least offer it up.
Last edited: