Valhalla Legends Archive

Programming => Battle.net Bot Development => Topic started by: gentoolinux on April 24, 2005, 03:31 PM

Title: C++: Need Help
Post by: gentoolinux on April 24, 2005, 03:31 PM

               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;


is this correct?
Title: Re: C++: Need Help
Post by: OnlyMeat on April 24, 2005, 10:58 PM
Looks about right. Although you might want to check you are null terminating your strings.


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());
}


Edit: Noticed a few of your fixed values seem off. You may want to packet log the real client to confirm.
Title: Re: C++: Need Help
Post by: Zakath on April 27, 2005, 06:40 PM
Why on earth would you use a hexadecimal constant when you could just say (u32)'IX86' instead? Much more readable.