Valhalla Legends Forums Archive | Battle.net Bot Development | Vb Chat bot

AuthorMessageTime
Wing87
i know vb good in my opinion and a bit of winsock so i wanted to try to write a B.net client (D2) i tried this code
http://botdev.valhallalegends.com/documents/vbwinsockhlp.html
At the homepage but how do i make it to log in and so on i dont get it >.<  ???
April 24, 2006, 7:29 PM
Yegg
Winsock just needs for you to connect to a server (includes the port number it uses) and send certain pieces of data to that server. You can look at open source projects from http://zeroforce.net to get an idea of how things work. I'd also recommend you check out http://bnetdocs.valhallalegends.com for a large variety of Battle.net packets which are neatly documented and explain how they work or what they do (most of them).
April 24, 2006, 7:42 PM
rabbit
EmptyChat2, a relatively simple bot with not much more than a connection.  Again, we stress you NOT copy & paste...
April 24, 2006, 11:10 PM
MysT_DooM
Also searching on this forum will provide you with information which you can learn off of and accomplish that goal of yours.
April 24, 2006, 11:36 PM
rabbit
Stupid me!

BnetDocs is essential!  (How could I forget?)
April 25, 2006, 2:43 AM
Wing87
tnx alot for the help ill look on the links when i got time (=
April 25, 2006, 6:56 AM
Wing87
after reading the http://bnetdocs.valhallalegends.com/content.php?Section=m&Code=2
i tryed to make some thing that sends the connection info but i just get disconnected )= can some one look what i did wrong? heres a link to my small test -> http://www.gamers-wish.com/wing/d2ringar/d2chat.zip
April 25, 2006, 2:36 PM
Ringo
[quote author=Wing87 link=topic=14842.msg151255#msg151255 date=1145975768]
after reading the http://bnetdocs.valhallalegends.com/content.php?Section=m&Code=2
i tryed to make some thing that sends the connection info but i just get disconnected )= can some one look what i did wrong? heres a link to my small test -> http://www.gamers-wish.com/wing/d2ringar/d2chat.zip
[/quote]
hi
I dont think u was sending the 0x01 protocol byte before you were sending 0x50.
Try it now, Iv added a quick send buffer class and a few functions to get you started.

Hope this helps
April 25, 2006, 4:35 PM
Wing87
tnx alot looking on it you added a bit (=
April 25, 2006, 5:26 PM
Wing87
one question must i do this evert time b4 i send some thing

    With Buf
        'put a byte into the buffer
        .InsertBYTE &H1
        'send and clear the buffer
        .SendPacket Me.ws
April 25, 2006, 6:12 PM
Myndfyr
No.  The BNCS protocol is started by sending a protocol identifier as soon as you connect.  This is a byte; 1 for binary, 2 for FTP, and 3 for Telnet (which is no longer supported). 
April 25, 2006, 6:23 PM
Wing87
ok tnx how do i get CheckRevision()?
and what does
(BOOLEAN) Using Spawn (32-bit)
(DWORD) CD key's product value
(DWORD) CD key's public value
(STRING)                 Exe Information
(DWORD[5]) Hashed Key Data

mean?


sorry for my noobies >.<
April 25, 2006, 6:43 PM
Myndfyr
It means that the packet contains a 32-bit boolean value (1 or 0) about whether you are using a Spawned version of the game, 2 double-words (32 bit values) containing the CD key's product and public values, a null-terminated string containing the file information, and an array of 5 double-words containing a hash of the CD key's private value.

You might want to consider using BNCSUtil to do CheckRevision.
April 25, 2006, 7:04 PM
Wing87
i meant what is a CD key's product value is that the CD in its own? or what and the public what is that how do i get these values?
and what exakty is Exe Information the diablo II.exe or what?
what is a Spawned version of the game?
April 25, 2006, 7:19 PM
Myndfyr
RTFM.  BNCSUtil (linked above) will get you the CD key and CheckRevision stuff.  The .exe info is included also in BNCSUtil.

Spawn is a feature of Diablo Retail (DRTL) and Starcraft Retail (STAR) that allows you to install a subset of the game to play one map on multiplayer with the CD key owner.

It is very clear to me that you have not attempted a packet capture, because it would be plainly obvious from a packet capture what the .exe information is.  Until you begin to help yourself, you will find very few people here who are willing to help you.
April 25, 2006, 7:25 PM
Wing87
so what vaule do i put in the place then?  ;D
and on what file do i run the getExeInfo on? ;D
i guess i sould use checkRevisionA but there are a lot of stuff it wants as input )=
April 25, 2006, 7:27 PM
Kp
[quote author=Wing87 link=topic=14842.msg151271#msg151271 date=1145993264]
so what vaule do i put in the place then?  ;D
and on what file do i run the getExeInfo on? ;D
i guess i sould use checkRevisionA but there are a lot of stuff it wants as input )=
[/quote]

You put the values which are correct for the current version.  I'd hazard a guess that you should run the getExeInfo (whatever that is) on...an exe file!
April 26, 2006, 2:17 AM
Myndfyr
[quote author=Kp link=topic=14842.msg151300#msg151300 date=1146017829]
[quote author=Wing87 link=topic=14842.msg151271#msg151271 date=1145993264]
so what vaule do i put in the place then?  ;D
and on what file do i run the getExeInfo on? ;D
i guess i sould use checkRevisionA but there are a lot of stuff it wants as input )=
[/quote]

You put the values which are correct for the current version.  I'd hazard a guess that you should run the getExeInfo (whatever that is) on...an exe file!
[/quote]

Kp, you're in far left field.  That is CRAZY talk.
April 26, 2006, 2:30 AM
JoeTheOdd
[quote author=MyndFyre[vL] link=topic=14842.msg151270#msg151270 date=1145993136]
RTFM.  BNCSUtil (linked above) will get you the CD key and CheckRevision stuff.  The .exe info is included also in BNCSUtil.

Spawn is a feature of Diablo Retail (DRTL) and Starcraft Retail (STAR) that allows you to install a subset of the game to play one map on multiplayer with the CD key owner.

It is very clear to me that you have not attempted a packet capture, because it would be plainly obvious from a packet capture what the .exe information is.  Until you begin to help yourself, you will find very few people here who are willing to help you.
[/quote]

Note, WarCraft II BNE (W2BN) supports Spawn as well.
April 26, 2006, 2:43 AM
dRAgoN
[quote author=J link=topic=14842.msg151305#msg151305 date=1146019413]
[quote author=MyndFyre[vL] link=topic=14842.msg151270#msg151270 date=1145993136]
RTFM.  BNCSUtil (linked above) will get you the CD key and CheckRevision stuff.  The .exe info is included also in BNCSUtil.

Spawn is a feature of Diablo Retail (DRTL) and Starcraft Retail (STAR) that allows you to install a subset of the game to play one map on multiplayer with the CD key owner.

It is very clear to me that you have not attempted a packet capture, because it would be plainly obvious from a packet capture what the .exe information is.  Until you begin to help yourself, you will find very few people here who are willing to help you.
[/quote]

Note, WarCraft II BNE (W2BN) supports Spawn as well.
[/quote]
While were on note's Japan SC can be spawned also.
April 26, 2006, 2:50 AM
Wing87
so i just run the getExeInfo on my own exe or on some diablo 2 exe file?
April 26, 2006, 11:41 AM
JoeTheOdd
RTFM.

[quote]In what order should the “hash files” be given to checkRevision?
    These basically follow the order used by bnetauth.dll.  The executable file is always first.
[...]
    Diablo II / Lord of Destruction
        Game.exe
        Bnclient.dll
        D2Client.dll
[...][/quote]
April 26, 2006, 12:13 PM
Wing87
tnx ill try it
April 26, 2006, 12:15 PM
Wing87
i did work some more at the "chat" looked abit on the 42oChat Source code just wanted to ask if some one can look if everything is right
http://www.gamers-wish.com/wing/d2ringar/d2chat.zip
tnx
April 28, 2006, 11:26 AM
Jaquio
I was gonna have a look at it, but your link don't work.

But if it works then everything should be fine?
April 28, 2006, 6:28 PM
Wing87
then link works fine to me >.<  ???
dont know if it works yet havent doen the rest of the stuff to get the msg back from the server just wanted to know if i did code it so it does work cus the mostly i just looked of the other bot >.<
April 29, 2006, 12:26 AM
raylu
Same, it's fine.

[quote][3:37:59 PM] Parseage() Unhandled packet 0x51
FF 51 09 00 01 01 00 00 00                            .Q.......[/quote]
You don't even handle 0x51 yet =\.

clsBuffy...lmfao, nice.

[code]If Not ws.State = sckClosed Then ws.Close[/code]
Consider using
[code]If ws.State <> sckClosed Then ws.Close[/code]
One less operation.

Um...naming conventions...
ie. cmdCon, cmdDiscon, txtLog, tmrStateup, lblState, etc.

[code]Private Sub Form_Unload(Cancel As Integer): Call Killme: End Sub[/code]
should probably be
[code]Private Sub Form_Unload(Cancel As Integer)
Cancel = 1
Call Killme
Cancel = 0
End Sub[/code]
Forget Terminate.

Killme:
[code]If Not ws.State = sckClosed Then ws.Close[/code]
Once again, <> instead of Not; why do you even have it in the first place? It can't hurt to close an already-closed connection.

Everything else looks fine...

EDIT:
[code]Version = Val("&H" & StrToHex(StrReverse(Mid(Data, 8, 4))))[/code]
WTF? There's a better way than that...CopyMemory, I believe.
April 30, 2006, 8:42 PM
Jaquio
[quote author=Wing87 link=topic=14842.msg151483#msg151483 date=1146270415]
then link works fine to me >.<  ???
dont know if it works yet havent doen the rest of the stuff to get the msg back from the server just wanted to know if i did code it so it does work cus the mostly i just looked of the other bot >.<
[/quote]

Link works for me now.

I had the same problem.. I made a bot way back when I first started learning VB an whatnot.. Got confused with things an took stuff from other people source code.. I found out later after it got going that some of it had errors in which I could not fix because it wasn't something I coded.. So I figured instead of taking someone elses code I would just look at their an see what is going on where an then code it myself in my own way so if an error were to arise I could fix it because I am the one that coded it.

So yea.. Don't take other peoples code(I am not saying you did, just a tip.) an just find out what is going on where an understand it. So you can just get it all together, an working alright. :) What raylu stated is just about it.. Try to handle 0x51 using BNet Docs an you should be alright.
April 30, 2006, 9:20 PM
Wing87
ok i think your right with that and yes i did copy a few lines... and now i did add a few lines to do the 0x51 it returns 0x101 so i guess my error is
Version
Checksum
can some one tell me from were do i get those?, i dont really understand that yet!

tnx for all help (=
April 30, 2006, 10:18 PM
raylu
http://bncsutil.ionws.com/

You've probably been there, but look at the VB Example Bot. While you're doing that, have Bnetdocs open and see how the code matches the packet format.

Once you figure out how to parse it, replicate it in your bot.
May 4, 2006, 1:44 AM
Myndfyr
[quote author=raylu link=topic=14842.msg151931#msg151931 date=1146707085]
http://bncsutil.ionws.com/

You've probably been there, but look at the VB Example Bot. While you're doing that, have Bnetdocs open and see how the code matches the packet format.

Once you figure out how to parse it, replicate it in your bot.
[/quote]

We already provided that link, and it's already been ignored.  Don't know what else to do.  :P
May 4, 2006, 2:32 AM

Search