Valhalla Legends Forums Archive | Battle.net Bot Development | D2 Realm? Not working? - Update #2

AuthorMessageTime
BaDDBLooD
I Tred it on my Bot, my friend's bot, and stealth bot ( all were working before ) And they all don't work now

Anyone got any ideas why?
May 21, 2004, 3:58 AM
LoRd
All of the Diablo II MCP servers are currently up and running, perhaps you're IP banned.
May 21, 2004, 4:26 AM
BaDDBLooD
yes.. they weren't a minute ago..

i guess my code isn't working anymore =[
May 21, 2004, 4:26 AM
LordNevar
I haven't had any problems logging on to the realms with my bot, so it could possibly be your code. Also if there is a way to connect to realms using proxy support I would be interested in a way. I myself cannot figure it out.
May 21, 2004, 4:34 AM
BaDDBLooD
yes, me to!

EDIT: Might as well try and fix this

[code]

Case &H3A 'SID_LOGONRESPONSE2

Select Case Asc(Mid(Data, 5, 1))

Case &H0

AddChat vbGreen, "BNCS: Login Accepted!"

If Bot.Product = "PX2D" Or Bot.Product = "VD2D" Then

Answer = MsgBox("Do You Want To Use Diablo2 Realm?", vbYesNo + vbQuestion, "BaDD`ChaT")

If Answer = vbYes Then

Dim Chararacter As String

Character = InputBox("What Character Do You Want To Use", "Choose Character!")

Realm.Character = Character

AddChat vbYellow, "Querying Master Control Program..."

With Buffer
.SendPacket frmMain.wsBNCS, BNCS, &H40
End With

Else

AddChat vbYellow, "Logging On As: " & Bot.username

With Buffer
.InsertNTString Bot.username
.InsertBYTE 0
.SendPacket frmMain.wsBNCS, BNCS, &HA
.InsertDWORD &H1
.InsertNTString Bot.Home
.SendPacket frmMain.wsBNCS, BNCS, &HC
End With

If Created = True Then

Exit Sub

Else

GetSystemKeys Bot.username

End If

End If

End If

[/code]

0x3A Login Success Response, Sending 0x40

[code]

Case &H40

With Buffer
HashType = 3
.InsertDWORD &H8
.InsertDWORD &H0
.InsertNonNTString "password"
.SendPacket frmMain.wsBNLS, BNLS, &HB
End With

[/code]

Recieving 40, hashing realm pw to BNLS

[code]

ElseIf HashType = 3 Then

HashCount = HashCount + 1

If HashCount = 1 Then

Hash(0) = Buffer.MakeDWORD(Token)
Hash(1) = Buffer.MakeDWORD(Servers)
Hash(2) = Mid(Data, 4, Len(Data) - 3)

With Buffer
.InsertDWORD &H1C
.InsertDWORD &H1
.InsertNonNTStringArray Hash()
.SendPacket frmMain.wsBNLS, BNLS, &HB
End With

ElseIf HashCount = 2 Then

With Buffer
.InsertDWORD Token
.InsertNonNTString Mid(Data, 4, Len(Data) - 3)
Realm.Realm = InputBox("What Realm?", "Enter Realm!")
.InsertNTString Realm.Realm
.SendPacket frmMain.wsBNCS, BNCS, &H3E
HashCount = 0
End With

End If

[/code]

Sending 0x3E

[code]

Case &H3E

Dim Temp1 As String, Temp2 As String, IP As String

Temp1 = Mid(Data, 5, 16)
Temp2 = Mid(Data, 29, 48)
IP = Mid(Data, 21, 4)
Realm.Server = MakeServer(IP)
Startup = Temp1 & Temp2
BNCSName = Mid(Data, 77, Len(Mid(Data, 77)) - 3)
AddChat vbYellow, "MCP: Connecting to Master Control Program Server: " & Realm.Server & ":6112"
frmMain.wsMCP.Connect Realm.Server, 6112

[/code]

Connecting to MCP

[code]

Private Sub wsMCP_Connect()

AddChat vbGreen, "MCP: Connected, sending startup.."

wsMCP.SendData Chr(1)

With Buffer
.InsertNonNTString Startup
.InsertNTString BNCSName
.SendPacket frmMain.wsMCP, MCP, &H1
End With

End Sub

Private Sub wsMCP_DataArrival(ByVal bytesTotal As Long)

Dim strTemp As String
wsMCP.GetData strTemp, vbString

ParseMCP strTemp

End Sub

[/code]

[code]

Public Sub ParseMCP(Data As String)

Dim PacketID As String
PacketID = Asc(Mid(Data, 3, 1))

Select Case PacketID

Case &H1 'MCP_STARTUP

Select Case (GetDWORD(Mid(Data, 4, 4)))

Case &H0 '0x00 SUCCESS

AddChat vbGreen, "MCP: Startup accepted, ", vbYellow, "Logging on to Realm character..."

With Buffer
.InsertDWORD &H8
.SendPacket frmMain.wsMCP, MCP, &H19
End With

End Select

Case &H19

With Buffer
.InsertNTString Realm.Character
.SendPacket frmMain.wsMCP, MCP, &H7
End With

Case &H7 'CHAR_LOGON

Select Case (GetDWORD(Mid(Data, 4, 4)))

Case &H0 '0x00 SUCCESS

AddChat vbGreen, "MCP: Logged on to Realm Character"

With Buffer
.InsertNTString Realm.Character
.InsertNonNTString Realm.Realm & ","
.InsertNTString Realm.Character
.SendPacket frmMain.wsBNCS, BNCS, &HA
.InsertDWORD &H1
.InsertNTString Bot.Home
.SendPacket frmMain.wsBNCS, BNCS, &HC
End With

End Select

Case Else

AddChat vbRed, "MCP: Unhandled Packet: 0x" & Hex(PacketID) 'Unhandled 0x Packet

AddChat vbRed, "Debug: " & DebugOutput(Data)

End Select

End Sub

[/code]

I get ipbanned after i send 0x0C ( which usually means i sent something wrong way before that )

Any help is Apreciated

May 21, 2004, 4:36 AM
BaDDBLooD
i looked through it and i didn't see anything..

i am pretty sure everything is in the right format and all but it won't work ;[

You think it could be that:

I was playing around with it trying to get it hooked up to a proxy.

Than after i couldn't get it to work, i removed the proxy Code.

You think my problem is that VB doesn't like the code, but you know it works.. than you Remove it and Redo it and it works? ( I got this error before when i tried Implementing and than Removed it before i was finished )

i'm gonna go try it..

EDIT: Yeah.. it still doesn't work ;[
May 22, 2004, 12:39 PM
Lobo.id
[quote author=BaDDBLooD link=board=17;threadid=6902;start=0#msg61104 date=1085114186]
[code]
With Buffer
.InsertNTString Realm.Character
.InsertNonNTString Realm.Realm & ","
.InsertNTString Realm.Character
.SendPacket frmMain.wsBNCS, BNCS, &HA
[/code]
[/quote]

From bnetdocs: SID_ENTERCHAT (0x0A)
(STRING) Username
(STRING) Statstring for old products, Null for CDkey'd products.

So why are you sending Realm.Character twice?

Not sure if that would fix it, but I hope it helps a little.
May 22, 2004, 3:15 PM
BaDDBLooD
[code]

With Buffer
.InsertNTString Bot.username
.InsertBYTE 0
.SendPacket frmMain.wsBNCS, BNCS, &HA
.InsertDWORD &H1
.InsertNTString "L"
.SendPacket frmMain.wsBNCS, BNCS, &HC
End With

[/code]

I still get ipban.. the reason i had that was.. because that's how diablo2 Did it when i packetlogged!
May 22, 2004, 3:36 PM
LordNevar
Your missing information in your code should look more like this.

[code]
With Buffer
.InsertNTString BNET.Username
.InsertBYTE 0
.SendPacket &HA
.InsertNonNTString BNET.Product
.SendPacket &HB
.InsertDWORD 1
.InsertNTString "L" or (BNET.HomeChannel)
.SendPacket &HC
End With[/code]

Edit: Tab Key :)
May 22, 2004, 5:28 PM

Search