I searched and no one posted on this before..
I got this from the old LOD soupbot for realm characters, and it seems it isnt working-any ideas?
ElseIf Asc(Mid(strTemp, 3, 1)) = &H17 Then
Dim Count As String, pA() As String, i As Long, pos As Long, tmpdata As String
frmRealmCharSel.lstChars.ListItems.Clear
tmpdata = Mid(strTemp, 4)
Count = Asc(Mid(strTemp, 6, 1))
pos = 9
For i = 1 To Count
pA = Split(Mid(tmpdata, pos), Chr(0), 3)
frmRealmCharSel.lstChars.ListItems.Add , , pA(0)
tmpdata = pA(2)
pos = 1
Next
Erase pA()
thanks, i really appreciate all the help ;D
are you connected to the mcp?
Yes
Are you requesting the character list?
yes
If Asc(Mid(strTemp, 3, 1)) = &H1 Then
With RealmPB
.InsertDWORD &H8
.SendPacket &H17
End With
no one has an answer?
Quote from: laurion on February 09, 2004, 02:31 PM
no one has an answer?
The information your providing doesn't really explain anything
Quote from: laurion on February 09, 2004, 02:31 PM
no one has an answer?
Don't beg; it's unbecoming. Have you been looking at BnetDocs? You admitted that you got it from the SoupBot source directly.
Try taking a packet capture and showing us what you get after sending 0x17.
Better yet, a packet log of everything that happens from when you first attempt to connect to the realm
After button to connect to realm is clicked:
1 192.168.2.37 63.240.202.120 13 Send
0000 FF 34 0D 00 00 00 00 00 00 00 00 00 00 .4...........
2 63.240.202.120 192.168.2.37 75 Recv
0000 FF 34 4B 00 00 00 00 00 01 00 00 00 00 00 00 C0 .4K.............
0010 D4 17 00 00 0F 2F 00 00 59 00 00 00 DB 92 01 00 ...../..Y.......
0020 FF FF FF FF 00 00 00 00 55 53 45 61 73 74 00 52 ........USEast.R
0030 65 61 6C 6D 20 66 6F 72 20 74 68 65 20 55 53 20 ealm for the US
0040 45 61 73 74 20 43 6F 61 73 74 00 East Coast.
3 192.168.2.37 63.240.202.120 35 Send
0000 FF 3E 23 00 01 00 00 00 D2 50 C1 26 D4 07 F4 DE .>#......P.&....
0010 97 61 89 3B 7B 20 1E E1 29 A4 B1 4B 55 53 45 61 .a.;{ ..)..KUSEa
0020 73 74 00 st.
4 63.240.202.120 192.168.2.37 12 Recv
0000 FF 3E 0C 00 01 00 00 00 02 00 00 80 .>..........
5 192.168.2.37 63.240.202.129 19 Send
0000 01 12 00 01 01 00 00 00 02 00 00 80 4B 63 6F 6A ............Kcoj
0010 31 34 00 14.
btw, i get IPBanned for about 2 minutes after i try to connect to the realm, does anyone know what DWORD[16] from 0x01 [MCP_STARTUP] is (quote from bnetdocs)?
Quote
0000 FF 3E 0C 00 01 00 00 00 02 00 00 80 .>..........
That's your problem, you're most likely not hashing the realm password properly
First of all, UserLoser may be right. The return value from 0x3E is horribly too small to even attempt a connection to the realm.
The DWORD[16] consists of the MCP data chunk, which is sent to you in 0x3E when you successfully indicate your desire to connect to the realm. This then has to be included when you send the MCP_STARTUP packet.
connect to realm:
Public Function ConnectMCP(realm As String)
Dim rpass As String
Dim p As New PacketBuffer
rpass = String(5 * 4, vbNullChar)
Call A2(rpass, servers)
p.InsertDWORD &H1
p.InsertNonNTString rpass
p.InsertNTString realm
p.SendPacket &H3E
End Function
what i grabbed from 0x3E:
Case &H3E
Dim Server As String
Dim bleh2 As String
Dim port As String
Dim IP As String
Dim Hag$
p1 = Mid(Data, 5, 16)
Server = Mid(Data, 17, 8)
bleh2 = Mid(Server, 5, 4)
AddText vbYellow, "Attempting to connect to MCP server"
p2 = Mid(Data, 29, 48)
'MyName = Mid(Data, 77, Len(Data) - 79)
frmMain.WSmcp.Close
frmMain.WSmcp.Connect "63.240.202.129", 6112 'DWORDtoIP(Mid(bleh2, 4)), 6112
Using data from there, i then do
Private Sub WSmcp_Connect()
frmMain.WSmcp.SendData Chr(1)
RTBAdd "Connected to MCP server." & vbNewLine, vbGreen
With RealmPB
.InsertNonNTString p1 & p2
.InsertNTString MyName
.SendPacket &H1
End With
End Sub
Quote from: laurion on February 11, 2004, 05:13 AM
connect to realm:
Public Function ConnectMCP(realm As String)
Dim rpass As String
Dim p As New PacketBuffer
rpass = String(5 * 4, vbNullChar)
Call A2(rpass, servers)
p.InsertDWORD &H1
p.InsertNonNTString rpass
p.InsertNTString realm
p.SendPacket &H3E
End Function
what i grabbed from 0x3E:
Case &H3E
Dim Server As String
Dim bleh2 As String
Dim port As String
Dim IP As String
Dim Hag$
p1 = Mid(Data, 5, 16)
Server = Mid(Data, 17, 8)
bleh2 = Mid(Server, 5, 4)
AddText vbYellow, "Attempting to connect to MCP server"
p2 = Mid(Data, 29, 48)
'MyName = Mid(Data, 77, Len(Data) - 79)
frmMain.WSmcp.Close
frmMain.WSmcp.Connect "63.240.202.129", 6112 'DWORDtoIP(Mid(bleh2, 4)), 6112
Using data from there, i then do
Private Sub WSmcp_Connect()
frmMain.WSmcp.SendData Chr(1)
RTBAdd "Connected to MCP server." & vbNewLine, vbGreen
With RealmPB
.InsertNonNTString p1 & p2
.InsertNTString MyName
.SendPacket &H1
End With
End Sub
63.240.202.129? Looks like a Battle.net Chat server to me (from memory, pretty sure realm servers are not the same as the chat servers), not a realm server... In 0x3E, the server responds with the IP address of the realm server to connect to, along with the port (iirc)
i just use that server cuz i couldnt get my makeserver function to work (i posted about that previously)