Author |
Message |
z.alpha+ Novice
Joined: Oct 10 2006 Posts: 32 Offline
|
|
Back to top |
|
|
BDwinsAlt Agurus's Posse
Age:33 Gender: Joined: Jun 16 2003 Posts: 1145 Location: Alabama Offline
|
Posted: Wed Nov 15, 2006 8:40 pm Post subject: |
|
|
|
|
I tried to connect to as3 with twcore once, since you have to use continuum 0.39 to enter as3 I guess you have to mess with the packets. |
|
Back to top |
|
|
Bak ?ls -s 0 in
Age:25 Gender: Joined: Jun 11 2004 Posts: 1826 Location: USA Offline
|
Posted: Thu Nov 16, 2006 3:28 am Post subject: |
|
|
|
|
can't sysops send a null encryption key which disables encryption?
The password / login packet from http://wiki.minegoboom.com/index.php/UDP_Game_Protocol
0x09 Game 0x40C0E7 Password/Login
- 0 1 Type
- 1 1 Boolean: New user (1 = New, 0 = Not New)
- 2 32 Name
- 34 32 Password
- 66 4 Machine ident (drive serial number - can be random for bots)
- 70 1 ConnectType (0x00 is a good idea)
- 71 2 Timezone bias
- 73 2 Unkown
- 75 2 Client version (0x24 = Ctm, 0x86 = SS)
- 77 4 Unkown, memory checksum, Set to = 444
- 81 4 Unkown, memory checksum, Set to = 555
- 85 4 Permission ident
- 89 12 Unkown |
is of length 101, whereas twcore's implementation (from GamePacketGenerator.java)
public void sendPasswordPacket( String name, String password ){
ByteArray bytearray = new ByteArray( 107 );
int[] arr = { 0x86, 0x00, 0xBC, 0x01,
0x00, 0x00, 0x2B, 0x02,
0x00, 0x00 };
bytearray.addByte( 0x09 );
bytearray.addByte( 0x00 );
bytearray.addPaddedString( name, 32 ); //Name
bytearray.addPaddedString( password, 32 ); //Password
bytearray.addByte( 0xd8 ); // Machine ID
bytearray.addByte( 0x67 );
bytearray.addByte( 0xeb );
bytearray.addByte( 0x64 );
bytearray.addByte( 0x04 ); // Machine ID
bytearray.addByte( 0xE0 );
bytearray.addByte( 0x01 );
bytearray.addByte( 0x57 );
bytearray.addByte( 0xFC );
bytearray.addLittleEndianShort( (short)134 );
bytearray.addLittleEndianInt( 444 );
bytearray.addLittleEndianInt( 555 );
bytearray.addLittleEndianInt( 0x92f88614 );
bytearray.repeatAdd( 0x0, 12 ); //Last
sendReliableMessage( bytearray );
} |
is sending a 107 length packet (even though it's only populating the first 101 bytes), which is of an incorrect length (and hence the error).
Change
ByteArray bytearray = new ByteArray( 107 ); | to ByteArray bytearray = new ByteArray( 101 ); | and try again. _________________ SubSpace Discretion: A Third Generation SubSpace Client |
|
Back to top |
|
|
z.alpha+ Novice
Joined: Oct 10 2006 Posts: 32 Offline
|
|
Back to top |
|
|
Smong Server Help Squatter
Joined: 1043048991 Posts: 0x91E Offline
|
Posted: Thu Nov 16, 2006 1:59 pm Post subject: |
|
|
|
|
It's probably because the bot expects a packet (0x31) that only subgame sends when a biller is connected.
BTW what version of twcore do you have? _________________ ss news |
|
Back to top |
|
|
z.alpha+ Novice
Joined: Oct 10 2006 Posts: 32 Offline
|
Posted: Thu Nov 16, 2006 2:52 pm Post subject: |
|
|
|
|
0.89
is that the latest?
and does mean that as is, twcore will not work with ass? |
|
Back to top |
|
|
Bak ?ls -s 0 in
Age:25 Gender: Joined: Jun 11 2004 Posts: 1826 Location: USA Offline
|
Posted: Thu Nov 16, 2006 3:18 pm Post subject: |
|
|
|
|
give us a packet log and we'll find the problem. They're both open source so it shouldn't be too hard. |
|
Back to top |
|
|
Cerium Server Help Squatter
Age:41 Gender: Joined: Mar 05 2005 Posts: 807 Location: I will stab you. Offline
|
Posted: Thu Nov 16, 2006 6:29 pm Post subject: |
|
|
|
|
Actually, what Smong said is exactly right. For reasons unknown grel decided NOT to send 0x31, which TWCore waits for before attempting to enter an arena. As a result, the bot gets kicked after about 3-5 seconds.
Distort would be the best person to reply as to what class(es) need(s) to be modified to get the TWCore compatible with ASSS.
Alternatively, you can give Hybrid a try with the TWCore emulator. But I think you'd have less trouble modifying the actual TWCore than you would setting the emulator up. _________________ There are 7 user(s) ignoring me right now. |
|
Back to top |
|
|
z.alpha+ Novice
Joined: Oct 10 2006 Posts: 32 Offline
|
Posted: Thu Nov 16, 2006 9:09 pm Post subject: |
|
|
|
|
which approach would be best modify asss, or modify twcore.
my initial thought is that it would be best to remove the twcore wait, since it's not required.
my next question is if i remove this from the twcore will it still work with subgame.
so much to do, so little time.
thanks for the help guys!! |
|
Back to top |
|
|
BDwinsAlt Agurus's Posse
Age:33 Gender: Joined: Jun 16 2003 Posts: 1145 Location: Alabama Offline
|
Posted: Thu Nov 16, 2006 9:28 pm Post subject: |
|
|
|
|
I'm guessing if you remove the wait for it to recieve the packet and just allow it to go ahead and go in then it would work on subgame and asss. Just create a backup and see. |
|
Back to top |
|
|
D1st0rt Miss Directed Wannabe
Age:36 Gender: Joined: Aug 31 2003 Posts: 2247 Location: Blacksburg, VA Offline
|
Posted: Fri Nov 17, 2006 1:33 am Post subject: |
|
|
|
|
I actually fixed this back in April of '05, but naturally it hasn't been released. The good news is that a "release" of sorts will happen very soon
Here's a quick fixed GPI I hacked together from a couple code diffs that should tide you over until then _________________
|
|
Back to top |
|
|
|