Jump to content
SubSpace Forum Network

Recommended Posts

  • 1 month later...
  • 4 weeks later...
Posted
We've been using TWCore for a few months now and it seems the new version is VERY stable, havent had it crash yet, plus I really like all the features the core has. My most favorite bot, ever.
Posted

TWCore killed Hyperspace a year ago. I doubt the problem we had was ever fixed, because, to the best of my knowledge, we were using the same revision that is currently out there.

 

Beware.

Posted

TWCore 0.89 mainly has 2 bad bugs, and 1 annyoing.

 

1 : Short messages for staff such as "Rifleman>?bye bot" will cause the core to incorrectly parse the message and get an ArrayIndexOutOfBoundsException.

It`s easily fixable by adding a try{}catch(){} in message.java (still waiting for a release which will fix this, so I haven`t bothered to fix it myself)

 

2 : The bot doesen`t recieve player position packets outside of center

In order to recieve position packets from all players, the bot has to switch spectating players at a interval given in arena settings (sendPositionDelay I believe).

However, TWCore doesen`t currently download any arena settings in any way that I know of, so it has no idea how quickly it can move on to specating the next player.

If it does it too fast, the server interprets it as packet flooding, and kicks all bots + bot host off the server and blocks that IP for 2-5 minutes.

If it does it too slow, the bot will run normally, but would be sluggish compared to Mervbot.

 

This bug is fixable if a arena settings parser is added to the next release of TWCore, or if you add it yourself.

 

3 : At random times, some bots will fail to log in (Bot setup time : 5007), so the bot has to be spawned from the hub bot.

Not a serious bug, but more of a annoyance.

 

 

 

Other than that, I think TWCore is great. It misses some of the features of Mervbot, but is pretty easy to understand and customize to your own liking.

 

 

-Rifleman

Posted
Short messages for staff such as "Rifleman>?bye bot" will cause the core to incorrectly parse the message and get an ArrayIndexOutOfBoundsException.
I've never actually experienced this, and I have used commands like "!say a" and "!go 1" before. Are you using manual command parsing or CommandInterpreter?

 

The bot doesen`t recieve player position packets outside of center

In order to recieve position packets from all players, the bot has to switch spectating players at a interval given in arena settings (sendPositionDelay I believe).

I have discussed this at length with several people. Currently, there is a function that does it in BotAction (don't know if its in the public release yet), but it only switches players every 200ms. When I made a custom function to switch between two players, I made a TimerTask that runs I believe every 500ms and it works fine. The problem with moving the bot around at a fast interval like 10ms in merv is that the bandwidth usage is crazy. Ekted outlined the process:

bot sends spec, server acks, server tells client it's being specced, client acks, client sends large version of pos packet. bot sends spec to another client, server acks, server tells old client to stop being specced, client acks, server tells client it's being specced, client acks, client sends large version of pos packet
However, TWCore doesen`t currently download any arena settings in any way that I know of, so it has no idea how quickly it can move on to specating the next player.

I did write one a while back, but its horribly inefficient and uses a lot of memory because Java's data structures don't pack well. Most bots don't even use it, and it would require several changes to the core, so I didn't pursue that. The best thing to do would be one that parses ?get.

 

3 : At random times, some bots will fail to log in (Bot setup time : 5007), so the bot has to be spawned from the hub bot.

If you're talking about the autoloader, I don't really use that so I wouldn't know. I think I recall having some problem where bots didn't log in a long time ago, but not any problems recently.

 

 

I have found that in general, most of the "bugs" in TWCore are just things that haven't been fully implemented yet.

Posted

By commands, I meant commands like f.ex ?help and ?modinfo, not bot commands.

If a command is at 2 letters, like ?hi, the bot will crash when it recieves that command.

 

--

 

Spectating a different player every 500ms is a way to do it, but it makes the bot unable to host games which requires nearly instant detection of where players are.

I made a similar way of detecting player positions, but I found a few flaws with it .

 

Situation :

I made a module for an event where players capture hills..

1)Player must be at a hill spot for 7 seconds

2)If a player moves out of the hill spot, the timer is reset.

 

The bot would react slower to item 2 as the number of players increased (logically).

 

Using the unofficial core fix did not make any difference, possibly due to missing some other file I guess.

I like the way the fix was meant to work though.

It could give it a nice advantage over mervbot when it comes to conserving bandwidth/avoiding packet flooding when multiple bots are hosted by one person.

 

 

 

Still, those 'bugs' do not mean much in the whole picture, it`s still a good bot and I`ll look forward to the next release smile.gif

 

[Edit] You were correct regarding the Autoloader [/Edit]

 

-Rifleman

Guest
This topic is now closed to further replies.
×
×
  • Create New...