Bots as a Client? Issues at hand.
By: CypherJF (ssCypherJF at yahoo dot com)
Version: 1.2

ABSTRACT: This previous summer, 2004, I came to realize there is a potential issue with MervBot plugins that rely on username comparisions. This article goes into a brief explination of why, and how you can’t necessarily fix it.

If anyone has ever read up on the SubSpace protocol for clients-subgame/servers-biller; you will find there is an incompatability issue when it comes to player names. According to the SubSpace protocol, client’s may only receive the first 19 characters of any specific player name, according to Lord Maucaub, the biller can only store upto 23.

Upon examination of the MervBot sourcecode, you will notice that it too only stores the first 19-characters, assuming null-terminator for position [20]. This brings up a very-small remote issue when you need to compare names for whatever reason.

For our hypothetical situation, say we have two players:

123456789012345678901
and
123456789012345678902

enter the arena. MervBot will only see 1234567890123456789. So when you do any username-comparisions, such an example can be seen in Underlords “saved” tag example in the MervBot tutorial, can be easily confused with the wrong player.

I had begun to wonder if all bots were affected by this, and according to my discussion with Mr Ekted, creator of Powerbot, Powerbot will store all 23 characters of a name, but only does a comparision on the first 19. So again, this issue still arises.

I personally see no quick fix to this unless the SubSpace protocol is modified. Regardless, attention needs to be brought to this issue to fix it. Although it’s a remote-issue, it still exists; so code accordingly.

Some have asked why does the SS protocol limit usernames to 19 characetrs; well to my best understanding it was to limit the amount of bandwidth used. Remember, SS was designed for 28.8k modems. Also, you need to remember the SubSpace client (including Continuum) do not need to do username-comparisions, since they run on PlayerID’s.

Thank-You:
50% Packetloss - helping me figure this out.
Lord Maucaub (ie: Maucaub) - explaining portions of the protocol.
Catid - for the conversation :)
Mr. Ekted - confirming how Powerbot handles it.

Revision History:
06.29.2005 - 1.2 - Minor.
02.15.2005 - 1.1 - Tweaking information, sentance structure, etc.
08.05.2004 - 1.0 - Initial release.