Bot Questions - Ima makin another bot! ExplodyThingy - Sat Sep 12, 2009 11:17 am Post subject: Ima makin another bot!
I posted this over at SSForums a while back but this may be a more appropriate place for it. Attached is what I have dubbed ExplBot. There is no supporting website for it yet. This bot was written primarily for academic purposes and to understand the finer nuances of the protocol, but I'm a fan of open source projects, this way everyone else can learn something too. There are ample comments and I will probably write even more.
The hope is one day to make it work with plugins like MERV does, I've never done anything like that before, and I really don't know where to start. It will also be threaded eventually.
This is a unix environment bot. It was written on OSX 10.4.11 with Eclipse. It is in C++ with many C functions in kind of a gross hodgepodge. I may one day convert it to strict C. I may also stop and begin working on one in Ruby because I've never done Ruby socket work.
Fell free to run it and I welcome feedback. There are several known issues:
-The config loader sometimes chooses to simply not load sections. This is a mid-major issue, but dones't gum up everything. [logs] and [clocks] are such examples but [spawn0] is fine.
-The ctm protocol as ripped by snrrrub is in there, and in place, but at the moment, nothing uses it. It will.
-Upon termination, free() will print an error to the screen. It has to do with the chunk class, and a deallocation problem. It is not a stability issue. It needs to be fixed.
-LYNX has indicated that there are player id sync problems that I cannot reproduce. If anyone can diagnose that it is appreciated.
-Only Spawn0 works at the moment.
-Account creation is pretty minimal, do it on your own beforehand.
-Reliables are not handled reliably. It's all a masquerade on the part of the bot.
-There are depreciated headers. I am systematically removing them.
Please post your comments and feedback. Careful of pasting hex dumps because your password could be revealed if you don't double check that.