Jump to content
SubSpace Forum Network

ExplodyThingy

Member
  • Posts

    308
  • Joined

  • Last visited

Everything posted by ExplodyThingy

  1. I did more. 0.3.0 I realize I haven't updated this about 9 months, which is nearly long enough to create another human being, but instead I created a bot. What have I done lately? Well, I lived a normal life for a while, but now I'm back to creating crap for this silly old game that just won't go away. Its like a puppy, constantly returning, looking for someone to love it. In terms of this nuance of the realm of ss, I scrapped the whole bot. By scrapped I mean I created a new project in Eclipse, and copied functions one at a time until I hit the problems, and solved those problems. I completely rebuilt the packet classes, and there are no more random errors in it. It seems to stay connected eternally, but won't attempt to reconnect. It runs each bot in its own thread, but I haven't tested more than 1 bot, nor have I tested spawning and immediately killing two bots. There is no proper thread reaping, so there is the potential for zombie threads. It stays connected and stable, as long as you don't put it in Public(0) for some reason, I'm working on that. The plugin loader still works as it did before. For some reason the cluster packet breaks quite often, that's something to do with calculating the next packet in the cluster, but it recovers gracefully. Player command authorization is still hardcoded in command.cpp, in isauth(). If you want to play with plugins, the previous version of lagbot works perfectly, and any plugin you've made should work. If you have done any personal development on this bot, send me code, and I will be sure to incorporate it. Not much serious has changed in terms of functionality. Rock on, feedback much appreciated. explbot_0.3.0.zip
  2. So I'd like to make a modification to bounty rabbit but I don't feel like reinventing the wheel. Does anyone have the source out there?
  3. Not really. I did some stuff, I got really busy the past few weeks and I don't see it lightening up until Christmas time. I've fallen in love with Go in the past two days and may try that out, see what I can get going for it. Otherwise you should probably go ahead and do a bunch of stuff. The big issues I can think of are an undetected lagout, improper reliable handling, and not enough events sent to plugins. The latter should be the easiest, I just have to sit down and do it, and one day I will. The former the hardest, but not impossible. The reliable order handling is my priority, and I'm working on a priority queue for it, just as soon as I solve this referencing deallocated memory issue.
  4. Attached is version 0.2.1 Reliables should be handled properly by next release, more handling has been added, more plugin support has been added, and lots more comments. Some framework for reliables is there but not really in use. Two plugins with their sources are attached, helloworld and lagbot. You need to give !load a path tot he file. I use "!load ../../lagbot/debug/lagbot.dylib" so whatever you need to do, do. LYNX got his to compile properly by using Eclipse. I can't find out why yet but eclipse just uses GCC. For some reason you will get iterator errors when running it otherwise. Not sure what thats about.\ I've moved all the settings for everything, even the plugins, into expl.conf You'll see, keep a naming convention so there are no conflicts later. Have fun, bye. explbot_0.2.1.zip helloworld_c0.2.1.zip lagbot_core0.2.1.zip
  5. I have released version 0.2.0. Many versions in between existed but they suck and here is this one. Plugins work. Attached is the source to the bot, the binary of the bot, and the source / binary of a HelloWorld plugin that offers a !hello command. Use !load and the relative path to the bot to load it. I need to use !load ../../hellworld/debug/libhelloworld.dylib. I will later release a tutorial on how to make a plugin. If you have Eclipse, create a new C++ project of type Share Library and use the three source files. Fix the one include to the relative path of the core bot. Have fun. Make some plugins, like eightball or some sort of logger for player entering and exiting. The plugins right now can only react to a player enter, player exit, chat, and tick. It should be as feature complete as mervbot one day. explbot_0.2.0.zip ExplBot_binary.zip helloworld.zip
  6. Attached is the latest version. It is a release candidate, therefore I am scraping the current version coding I was using, and calling it version 0.1.0 Previously released code will be collected at a later date and placed onto a webserver, and they will be reversioned as 0.0.1, 0.0.2, etc. Yes, it's revisionist history. No major known problems exist with it yet, and it appears stable. There is, however, one that issue manifests itself as very similar to the lag coma of HS's yore. This only appears once in a while, I cannot induce it, and it is not a crash. I have been unable to isolate it, but it has only happened to me 3 times. I don't know if the program enters perpetual sleep, of if the server just stop sending, or if recv stops returning useful data. Backtracing after interrupting it after a hang says it's either asleep, or in recv(), which is a normal main idle loop. Occasionally a very large packet appears, and it starts with several screens of lines all of which are null, contains some junk in the middle, and ends with more nulls. I think it's the map but nothing identified it, it just starts off with a bunch of zero value characters. The arena change and crash bug has been solved. It was a deallocated but not dereferenced pointer to the chunk class message buffer. That's why it would only work 1 time. Therefore, !go is now functional. The settings loader appears to behave properly. There are no more detected issues with that, except for a blank value on a key-value pair will cause a segfault. This should be an easy fix, but it's low priority, so just don't do it for the time being. Either remove the line, or put a value there. There are no threads yet. I planned to stabilize a threadless version before adding them, and I appear to have done so. I will welcome feedback before attempting to introduce threads. A high priority fix is non-thread-safe code, excluding parts that will require mutex locks, they will be added. One can search for marked areas of code that require work by searching for //FIXME:, //HACK:, and //TODO:. Eclipse will mark these for you if you add them as Task tags. These are the order of priority, and DEBUG doesn't actually require fixing, it's just debug code that will be removed. There is no modular coding, yet. That will come after threads. Many packets are handled, but simply ignored. This is what I intend to address over the next several releases. Player and flag information is a big issue and will take some time to get right, lots of packet processing. Reliables are still not handled properly, the bot merely pretends and just acks everything right away without logging it. This means data can be processed out of sequence. Nothing is sent reliably. Bot ops are hard coded in bool auth(player *p) in command.cpp. Add yourself, it's case sensitive. Right now me, CRe, Dav1, LtNirvana, Dr Brain, JoWiE, and L Y N X are the ops. The only thing requiring op access is !die and !go. It compiles clean with Eclipse using G++ (gcc) on OSX 10.4.11. There are depreciated headers and they will be removed. It is unix only, and should be fairly easy to compile on Linux. Comments and feedback are encouraged. explbot_0.1.0.zip ExplBot_binary.zip
  7. Alright, new update. Lots of player event handlers added, so there are a lot less unknown packets. Multiple player entries per packet is now handled properly. You can spawn it into a pub and it will get the list of players just fine. This was a big fix. The malloc and free errors with the chunk class are eliminated but now I have a EAX_BAD_ACCESS problem when I replaced the char array in chunk with a datagram class. This shouldn't ever be an issue except when using !go. This absolutely top priority. More commands added, and it appears to be more stable overall. The continuum encryption is now in the system, but nothing uses it, yet. It will be added soon. The config file has been modified to handle more stuff. src.zip
  8. More stuff. Mostly house cleaning, a little tiny bit of protocol work. It's denser, and a little more streamlined. Lots of generalized fixes and todos taken care of, but much remains the same. I don't have Internet, so I'm using a coffee shop. When I get it setup, I'll work on it some more. From what I can think of: ExplBot.cpp renamed main.cpp All settings functions moved to settings.cpp A single setlist exists for all "global" settings. command.h made irrelevant and removed. Some possible problems with the playerlist resolved, but not all of them. Help info hashmap made universal instead of unique to each bot. More comments. Of everything I've written, I'd say its about 2:1 comments to code ratio. Thats about how it should be, if not higher. Nothing of the aforementioned fixmes have been addressed, and more FIXME and TODOs are present. Eclipse indicates at least 23 exist in code. I'm also no longer attaching my explbot.conf file because removing my bot's info to make it safe for upload irritates me. Use your existing unless I change it. Hi-Five. explbot.zip
  9. Unimplemented.
  10. Yes, if you used the bot to CREATE the account since BEFORE the last posted version, the password is the username. The problem is fixed as of the previously posted version. More: I added more comments throughout the project. I moved some stuff around, bots.h now only has class bot in it. util.h and .c exist and hold the logger and some time control stuff. I'd like to make the logger completely static or remove it from a class altogether, that should be an easy find-replace style fix if they feel like fixing it themselves. STL's hashmap has been used to remake the command structure. It is now very very similar to ASSS, of which I approve. There is also the start of man pages for the commands. I'd like to keep it best practice to have the commands man information be written as the command is written and added to the hashmap as the command is added. I do _not_ have any sort of permissions setup. If someone familiar with the permissions setup of ASSS would like to do that for themselves it is highly encouraged, even if you don't have such extensive knowledge, as long as it's better than MERV. I'd like to find a way to isolate people to permission on certain spawns but also give other people full functional capabilities on every spawn. The packet handlers are still naive and dispatch every packet to its handler regardless of sequence. This should probably be rectified with the hashmap to call functions, and add or remove functions from the map as appropriate for the protocol. Top priority fix: The player enter packet is sometimes repeated several times in the same packet, sort of like the cluster packet. The bot only handles 1 player per one of these packets. If there are two players in the arena when the bot enters, only one of them will register. The other must exist and reenter the arena to get the bot to notice. Many packet types are simply implemented, like player death, score update, KotH info, and such toys. This should be fixed, it would really easy to handle a lot of it now the way I deal with flags, but its sort of a band-aid approach. It would be nice if some handlers were written for it. Reliable packets are simply ACKed and nothing is done to ensure sequencing or in-order processing. This should be fixed and I'm giving it a high priority. Also nothing is sent by the bot reliably. Nothing is clustered, outbound packets should probably be queued up so they can be sent as a cluster if possible. Modules or plugins would be super helpful, once I get to that stage I will begin to think of it as a bot, and no longer a "bot". explbot.zip
  11. Next update and the first major bugfix. When the Bot class was instantiated it copied the username into the password variable. Everything else used password correctly, therefore the bot was sending the username as the password. If you've created bot accounts with this bot, you may want to change their passwords. There are a couple of stability things fixed, and some more that need fixing. Someone should check on my chunk class and see if they can isolate the malloc problem that free() freaks out about on the proper unload of the bot. You can see the issue if you don't terminate it with CTRL-C like I do alot. A couple of commands now work. They function exactly like MERV did, with a switch to control operator access and a long line of ifs to control the commands. I disapprove of that. I want to remake it like ASSS with a hashtable that jumps to functions. I'll burn those bridges later. Keep in mind, !login is uncontrolled and immediately gives everyone full access to the bot. On the plus side, the only restricted command is !die. The config reader is fucked up. Sometimes it works, sometimes it doesn't. It'll load out all the [spawn0] stuff properly and work well with that, but for some reason the [clocks] variables will not load. Others seem to come and go, I haven't quite worked out the issue but I'll get on it. There may not be any updates for a bit, as I'm moving to the other side of the country this weekend, and need to take the time to organize myself and make the move. If people want to contribute, I gladly approve of it. Post it in this forum until I work out a SVN or something. This still requires no outside libraries, I'd like to keep it that way as long as possible. It should also compile error free if you just throw it all at gcc. IOStream is still in there, may throw a warning. That is my highest priority fix, eliminating all warnings. Comments encouraged, positive or negative. Contributions even more so. explbot.zip
  12. I did more. Have more fun. It won't lag out anymore because it syncs every couple of seconds. I'm not sure if that's how its supposed to work, but it looks like what MERVBot does. It enters spec, according to subgame. It has a config file now, but it doesn't do too much with it, just the 4 important settings for login: server, port, user, and password. The other settings are there as I will add them to the core. The program has grown pretty large, and includes libraries taken from MERVBot and a few places on the Internet. It's fairly well commented, everything I wrote has about 1 comment for every 2 lines, so if you need to follow along, you should be able to. explbot.zip
  13. Yea! I count that as a major success in my book. I'll keep working on it and posting more as I develop it.
  14. Major improvements on this one. Encryption is supported, and boy was that irritating to tear out of MERVBot, Catid liked to write his own functions for EVERYTHING, even strlen. I got it now though, and it's all loaded into a single header and single source file. Printfs have been removed and replaced with a logger class that will deal with that as well as control verbosity. Not much added to the protocol, except a few random effectively worthless handlers. Line commenting has also increased and I'll go back and add a few more. Still doesn't use a cfg file, everything's hard coded. Comments and input appreciated. explbot.zip
  15. 5 issues addressed or will be: IO Stream is depreciated, that should just throw a warning. The only reason that IOStream is used is to call close() on the socket descriptor. If anyone knows a better method or a different header I'll use it instead. I know that stl list iterator error too. Should only happens when ~Bot is called, which it is when it disconnects, as it did up there. I've got it bandaged but not properly fixed, meaning it will leak memory at every spawn unload. Since it can only do 1 spawn at a time, that's not a scary issue yet. It involves the STL list that keeps track of player objects, since it's a list of pointers I need to remove them from the list as well as delete them. From time to time malloc throws a hissy fit over a double free() or misplaced free(), and I haven't found it yet, but I've isolated it to the "chunk" class. It doesn't yet support encryption, that's the issue you're seeing there with the inability to connect. It's really verbose. I'll add some command line switches for silent (no output), normal (like merv), verbose (like above, showing inbound/outbound data) and very verbose (showing hexdumps).
  16. Thanks Lynx. Attached is the next incarnation, further developed. Still in the early developmental stages though, but you can play with it a bit more. Again, Unix only. I'm considering making it support "plugins," as well as support Snrrrub's recent decryption of the Continuum encryption and SS's encryption. I've never developed anything quite like a plugin or a module from the loader side, and I want to see if I can. Anyone have any advice on where to start, besides ASSS and MERV? MERV can only take me so far, since this is a unix system and that was made for Windows Preferably I want it to be modifiable on-the-fly like MERV can do. I've never played with loading and unloading modules in ASSS. explbot.zip
  17. Uh, sure, whatever. I've used that avatar as long as I've ever posted on these forums. Most likely won't change it. Anyone want to post something worthwhile instead of solicit me? How does SS work on the Mac? I have it running in a VM right now. Anyone have a ready-to-go stand-alone ASSS compile ready to work on the Mac? That would be really useful.
  18. So I wrote a bot, for several reasons. 1, I was bored. 2, I was rusty on my socket programming and C++ programming. 3. I miss subspace. I'm probably going to keep writing but not really finish it, so to speak as finished as MERBot, or TWCore, or something. Attached is my bot as it stands now. I wrote this on my Mac, so it compiles under a Unix environment. Also everything is hardcoded, no settings or anything yet. It will go so far as make subgame display "Connection Request" and will update ?find's last seen. Most likely I keep rewriting this to keep up with my other languages, like C, Ruby, or Perl for the sake of having done it. I also wrote a UDP echo client. It is nothing but a simple socket that will use subgame as it's echo server. It sends out 8 bytes and triggers subgame to bounce 6 back. Uhm, so yea, here. Judge away. explbot.zip main.cpp
  19. Hi Nurples. Hi Vile. What's up?
  20. Hey SS Nerds, So I disappeared for a long time, and by now I can only presume to have passed from midlevel Subspace developer to forum troll to vague recollection of a bygone era. For some reason I needed to write a bot, and figured I could salvage out one of my old Subspace bots, sASSS of which they were; turns out pretty much everything about me has disappeared. Last I knew, SSI was an active biller, serving a bunch of off-SSC zones, yet now even ssihosting.com has lapsed, and I'm pretty sure 1stStrike has split. So I figured I'd delve back into the community area to see it had traveled around, even in name alone, but alas it has not. Surprisingly, I also remember my password. Normally I would simply retreat in failure and Google out some code to use like I did when I wrote those cores in the beginning, but I just couldn't help myself. Figuring you guys would like some feedback of someone who attempted to reenter the community, albeit briefly, and the roadblocks encountered, I wrote up this little essay of sorts, to explain why Subspace / Continuum seems to be viable and sustainable, yet starving itself for newbies, from a periphery perspective. I haven't even looked at the game yet, only nosed around in the web space. Honestly, it comes down to one thing: the introductory websites. SSForums looks alive and kicking, and I'm glad to see that. It's fantastic to see that the forums are populated and talkative, with only a couple subforums dating back too far. Kick!@#$%^&*. GetContinuum.com looks awesome. You guys have done a fantastic job, the sites look fresh, updated, and sharp. SSDL looks a little old and a touch intimidating, and that's where a bunch of download sites and google hits take you. The functionality seems to be there, so a minor facelift would do the trick. Try updating your copyright from 2006. The banner that carries between ssf, ssdl, and ssc carries a look of officiality, and you guys look unified. SSCentral.com gives no indication of when you will resurrect. I have no idea when PoLiX last updated that page; though I did read that article he posted on it, and if he holds true to his word, great, fantastic, job done. Also major props to PoLiX for not doing what used to happen all the !@#$%^&* time, whenever anyone got bored with a site or it started to wane, they'd shut it down only to revive it again under a new name and operator. Either way, I have no idea what's happening to that page or any sort of time frame. When you guys go live, keep a news post current. Never let anything more than 4 or 5 months old be on your front page, and never let your newest post be over a month old. Even if it's just a worthless post about your travel adventures or a fix on source of the website, it still looks like you guys are an active community to the casual browser. Hyperspace's website is full of win, and it looks like Dr. Brain's brainchild of years ago has reached fruition. Kudos, you worked really hard on that. Barring these sites, there are still some that are suspended in time. SSQDB, at quotes,sscentral.com still has me as an Admin. Really? The two most recent posts on the front page are from 2006 and 2007. Looks defunct. sscx.net and ssihosting.com: not much needs to be said about them, kill any reference to them and pretend they never happened. 17thparallel.com hasn't had a news post since July 2006. As far as I can tell, my ancient-!@#$%^&* plugin for their rumble event still runs and is logging to the 2005 archive, and probably hasn't been touched since Vile Requiem vanished into the ether. forums.minegoboom.com still looks alive, even if shanky.com and minegoboom.com do nothing worthwhile. sshq.net and ss-network.net make the game look defunct. If MMaverick could simply point them over to something worthwhile, like SSCentral, that would help lots. Subspace's main hurdle is its client-side software. It's good, workable, and flexible, even though it runs atop a protocol over a decade old. Not too much you can do about that though. When I disappeared, I'm pretty sure we were on version .39. I see it's been pushed to .40 already. Excluding kidnapping, I'm pretty sure PriitK doesn't really care too much about the client, and it will be very hard to find someone to write a new client for an old game. So what to do about the various fragmentation between the zones and their operators and their websites: fake it. Pretend you get along and all exist as this huge multi-thousand player community, link share, carry common icons on websites, and keep news fresh if not relevant. Abandon those links to defunct sites, and by that I mean stop linking to explody.ssihosting.com et. al., they don't exist anymore. Up-sell the number of people playing, make it look bigger than it really is. Excluding a few lump domains and a lackluster development process on the client, the future looks bright. There is a brand new, top-of-the-line server out there by Grelminar. From the looks of it, Cypher has a new biller as well. Got a couple of chat clients, though I suggest putting something on in each of their respective forum threads that states explicitly what each piece of software does, as though I had no idea what it was. And yet one very important and easily reached demographic has been overlooked: Mac users. Here I sit, typing away in OSX without the slightest glimmer of hope to be able to talk to you folks in real time. Might I also suggest something viral? Get on Digg, Reddit, Slashdot, StumbleUpon, or any such place where trolls troll. HackADay might even link to you guys, there's very little left in this game that hasn't been hacked to death. Buy some advertising, or run an ad-exchange system on sscentral. Get indexed by Google, and if the google-bot crawls over sscentral today, you guys are pretty much screwed for people. Put something there, or get it up soon. Anyway, have fun gaming. SubSpace is still one of my favorite games because of the level of development. You could simply be a casual gamer, delve in and tinker with the protocol, write a bot, write a server, or admin a zone. You can experiment with packets in a real-world setting without fear of retribution because you can run and make your own server. Or you can be lazy and look up what others have already found. I still love it and wish more things were like this in the world. Enjoy your week. -ET.
  21. Oops I broke my vote, hit view results by accident. I vote to return them to turf and revive KotH action.
  22. Yes, bots, and Im sure you are well aware of that or you wouldnt be so cynical. I have several things to point out to you fellas. There is almost nothing we can or cant do that wont irritate someone. Exampler: If you want points for the flags, then you have two options: 1. The server does it like normal, and everyone scoreresets.. 2. The bot issues it, resets the game, and grants you points. Whats wrong with the bot giving points this way? It sets ALL points to FLAG points, your kill points are converted to flag points, your rating zeros out. Sorry. So either live with a 0 rating or a shipreset every game. For movable flags: If you dont want kill ASSS chasing you around because your a giant friggin dot on their radar, dont pick up the flags. Not too hard. The reason for you being so bright and obvious on radar is to remove the advantages flags sometimes offer. This is disableable to a certain degree. Main point of pub: You realize the old zone description was "Fast paced turf style action?" The arguement that were screwing too much with pub by having flags is hereby moot because of that little known secret that soccer actually screwed with pub
  23. 88.9% International total market share, Mozila in a close second at ~7% If I have to do extra work to put them up, sucks to be you, theyre not going up. Suggestion: Attach them directly to this forum system. If that doesnt work, link me to an angelfire or tripod page.
  24. Bah, tell me names for most of them too. glare :glare: coolthumb :coolthumb: dualthumb :dualthumb: maur :maur: megaman :megaman: offtopic rockon :rockon: rofl shutup smilethumb :smilethumb:
  25. It has come to my attention that as admin I have the ability to add smileys to the forum. Post yours and its name, and you can have :YourNameHere: be the best smiley ever. :explody:
×
×
  • Create New...