Valhalla Legends Forums Archive | Battle.net Bot Development | C++: Need Help

AuthorMessageTime
gentoolinux
[code]
              case CLIENT_SEXP:
                        debug(("Bot::pkt_connected is on CLIENT_STAR"));
                        *this << (u32)getSpawn()      // spawn ?
                              << (u32)0x49583836      // 68XI
                              << (u32)getClientType() // RATS
                              << (u32)0xcb            // client_token
                              << (u32)0              // ?
                              << (u32)0x7c7fd30c      // ?
                              << (u32)0x000001e0      // bias
                              << (u32)0x00000409      // thingy
                              << (u32)0x00000409      // thingy
                              << "USA"                //
                              << "United States";    //
                        sendpkt( 0x50ff);
                        break;
[/code]

is this correct?
April 24, 2005, 8:31 PM
OnlyMeat
Looks about right. Although you might want to check you are null terminating your strings.

[code]
void CSCBot::Logon()
{
RequestBinaryLogon();

CPacket Packet;
Packet << (UINT)0x00
  << WIN32_INTEL_PROCESSOR  // Processor IX86
  << LookupClient(m_eClient) // Client STAR/SEXP/JSTR
  << (UINT)GetVersionByte()  // Version 1.12
  << (UINT)0x00   // ...
  << (UINT)htonl(0x3EFFE46D) // ...
  << (UINT)htonl(0xC4FFFFFF) // C4FFFFFF (Fixed)
  << (UINT)0x0809
  << (UINT)0x0809
  << GetCountryCode()   // ISO abbrev
  << (BYTE)0x00
  << GetCountryString()      // Full country name
  << (BYTE)0x00;

Packet.Send(0x50, GetSocket());
}
[/code]

Edit: Noticed a few of your fixed values seem off. You may want to packet log the real client to confirm.
April 25, 2005, 3:58 AM
Zakath
Why on earth would you use a hexadecimal constant when you could just say (u32)'IX86' instead? Much more readable.
April 27, 2005, 11:40 PM

Search