-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=-=-=-=-=-=-=-=-=-=- Clean Slate Bot OCX -=-=-=-=-=-=-=-=-=-=-
-=-=-=-=-=-=-=-=-=-=- By CupHead and Zorm -=-=-=-=-=-=-=-=-=-=-
-=-                                                         -=-
-=-=- A Fatal Error and Valhalla Legends Joint Production -=-=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Download the OCX aT: http://www.valhallalegends.com/cuphead/cleanslatebot.ocx


-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=-=-=-=-=-=-=-=-=-=-  Table of Contents  -=-=-=-=-=-=-=-=-=-=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=- 1.0 Introduction                                        -=-
-=- 2.0 Installing the OCX                                  -=-
-=-  2.1 Installing the OCX (really)                        -=-
-=-  2.2 Uninstalling the OCX                               -=-
-=- 3.0 Adding the OCX to VB                                -=-
-=- 4.0 Adding the OCX to your project                      -=-
-=- 5.0 Using the OCX to your benefit                       -=-
-=-  5.1 Properties                                         -=-
-=-  5.2 Methods                                            -=-
-=-  5.3 Events                                             -=-
-=- 6.0 Demonstrations                                      -=-
-=-  6.1 Quick Demo                                         -=-
-=-  6.2 Parsing Events                                     -=-
-=-  6.3 Using Methods                                      -=-
-=- 7.0 Troubleshooting                                     -=-
-=- 8.0 Thanks 'n Stuff                                     -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=- 1.0 Introduction                                        -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=-    The Clean Slate Bot OCX is a control for Visual      -=-
-=- Basic that acts as a Binary Bot for Battle.Net.  It's   -=-
-=- very easy to use and hopefully this quick tutorial will -=-
-=- allow even the most inexperienced VB coder to create a  -=-
-=- bot in no time.  So listen up, this is pretty easy      -=-
-=- stuff.                                                  -=-
-=-                                                         -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=-                                                         -=-
-=- 1.1 About the OCX                                       -=-
-=-  The OCX is based on Skywing's BNLS system.  It is      -=-
-=- totally hashless, and has many features that will allow -=-
-=- even the newbiest newbie to create a bot.  I have put a -=-
-=- good deal of help in here, and blah blah blah blah, so  -=-
-=- um...  Don't bug me about stuff!  It's easy.            -=-
-=-                                                         -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=- 2.0 Installing the OCX                                  -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=-    The OCX itself is easy to install, and even easier   -=-
-=- to use.  Please note that for these to work, you have   -=-
-=- to use the path that you unzipped the OCX to.           -=-
-=-                                                         -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=-                                                         -=-
-=- 2.1 Installing the OCX (really)                         -=-
-=-  To install:                                            -=-
-=-    Step 1 - Download the .zip file with the OCX in it.  -=-
-=-    Step 2 - Unzip the file to somewhere like c:\ocx     -=-
-=-    Step 3 - Install the OCX into your registry like so: -=-
-=-      Start > Run > Type:                                -=-
-=-        regsvr32 c:\ocx\CleanSlateBox.ocx                -=-
-=-                                                         -=-
-=-     You should get a message like DllRegisterServer     -=-
-=-     in the OCX succeeded.  This is good.                -=-
-=-                                                         -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=-                                                         -=-
-=- 2.2 Uninstalling the OCX                                -=-
-=-  To uninstall:                                          -=-
-=-    Step 1 - Uninstall the OCX from your registry:       -=-
-=-      Start > Run > Type:                                -=-
-=-        regsvr32 -u c:\ocx\CleanSlateBot.ocx             -=-
-=-                                                         -=-
-=-     You should get a message like DllUnRegisterServer   -=-
-=-     in the OCX succeeded.  This is also good.           -=-
-=-                                                         -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=- 3.0 Adding the OCX to VB                                -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=-    It's even easier to install the OCX into VB than it  -=-
-=- is to install it into your registry.  You simply hit    -=-
-=- CTRL + T or do Projects > Components then scroll down   -=-
-=- down to CleanSlateBot, add a check mark next to it, and -=-
-=- voila!  There it is on your tool bar.                   -=-
-=-                                                         -=-
-=- Note that the Clean Slate Bot is the one with the CH    -=-
-=- icon.  That stands for CupHead.  =P                     -=-
-=-                                                         -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=- 4.0 Adding the OCX to your project                      -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=-    Easiest part yet!  Click the CH icon, drag and drop  -=-
-=- it onto your form.  There it is.  Wow.                  -=-
-=-                                                         -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=- 5.0 Using the OCX to your benefit                       -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=-                                                         -=-
-=- 5.1 Properties                                          -=-
-=-    The OCX has properties that must be set before you   -=-
-=- tell the bot to connect.  These will be explained here. -=-
-=-                                                         -=-
-=- Server - The server you want the bot to connect to.     -=-
-=-  Example: CleanSlateBot1.Server = "useast.battle.net"   -=-
-=-                                                         -=-
-=- Username - The username the bot will connect with.      -=-
-=-  Example: CleanSlateBot1.Username = txtUsername.Text or -=-
-=-           CleanSlateBot1.Username = "CupHead"           -=-
-=-                                                         -=-
-=- Password - The password for the username.               -=-
-=-  Example: CleanSlateBot1.Password = txtPassword.Text or -=-
-=-           CleanSlateBot1.Password = "MyPassword"        -=-
-=-                                                         -=-
-=- NewPassword - If using the password change, this is the -=-
-=-               password to change to.                    -=-
-=-  Example: CleanSlateBot1.NewPassword = txtNewPW.Text or -=-
-=-           CleanSlateBot1.NewPassword = "NewPassword"    -=-
-=-                                                         -=-
-=- Product - The product to use when connecting.           -=-
-=-  Example: CleanSlateBot1.Product = "3RAW" or            -=-
-=-           CleanSlateBot1.Product = "PXES"               -=-
-=-                                                         -=-
-=-  Available products are:                                -=-
-=-    -Warcraft III:     3RAW                              -=-
-=-    -Warcraft II:      NB2W                              -=-
-=-    -Starcraft:        RATS                              -=-
-=-    -Brood War:        PXES                              -=-
-=-    -Diablo II:        VD2D                              -=-
-=-    -Diablo II LoD:    PX2D                              -=-
-=-                                                         -=-
-=- Character - The Diablo II realm character to log on.    -=-
-=-  Example: CleanSlateBot1.Character = "StupidAmazon"     -=-
-=-                                                         -=-
-=- CDKey - The CDKey to use when logging on.               -=-
-=-  Example: CleanSlateBot1.CDKey = "1234567890123"        -=-
-=-                                                         -=-
-=- LODKey - The CDKey to use for Diablo II Expansion.      -=-
-=-  Example: CleanSlateBot1.LODKey = "H37JF73P83J92464"    -=-
-=-                                                         -=-
-=- Realm - The Realm to use for Diablo II closed logons.   -=-
-=-  Example: CleanSlateBot1.Realm = "USEast"               -=-
-=-                                                         -=-
-=- Available realms are:                                   -=-
-=-  -USEast                                                -=-
-=-  -USWest                                                -=-
-=-  -Europe                                                -=-
-=-  -Asia                                                  -=-
-=-                                                         -=-
-=- BNLSBotID - The BotID to use for BNLS.  You *must* have -=-
-=-             one of these.  Request from Skywing[vL] or  -=-
-=-             Yoni[vL].                                   -=-
-=-  Example: CleanSlateBot1.BNLSBotID = "CupChat"          -=-
-=-                                                         -=-
-=- BNLSBotPassword - The BotPassword to use for BNLS.      -=-
-=-                   Once again, you must have it, get it  -=-
-=-                   from Skywing[vL] or Yoni[vL].         -=-
-=-                                                         -=-
-=- HomeChannel - The channel to join when you connect.     -=-
-=-  Example:                                               -=-
-=-    CleanSlateBot1.HomeChannel = "Clan Fatal-Error" or   -=-
-=-    CleanSlateBot1.HomeChannel = "Clan [vL]"             -=-
-=-                                                         -=-
-=- UseRealm - Whether or not to connect to a D2 realm.     -=-
-=-  Example: CleanSlateBot1.UseRealm = False or            -=-
-=-           CleanSlateBot1.UseRealm = True                -=-
-=-                                                         -=-
-=- ChangePassword - Whether or not to change password on   -=-
-=-                  logon.                                 -=-
-=-  Example: CleanSlateBot1.ChangePassword = False or      -=-
-=-           CleanSlateBot1.ChangePassword = True          -=-
-=-                                                         -=-
-=- Accept - A "password" of sorts that stops people from   -=-
-=-          using my OCX.  It's public now, so...          -=-
-=-  Example: CleanSlateBot1.Accept = -65                   -=-
-=-                                                         -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=-                                                         -=-
-=- 5.2 Methods                                             -=-
-=-    Methods are probably known to you as Subs.  They are -=-
-=- what you use to make the OCX do stuff.                  -=-
-=-                                                         -=-
-=- Connect - Tell the bot to connect.                      -=-
-=-  Example: CleanSlateBot1.Connect                        -=-
-=-   *Note: ALL INFORMATION MUST BE FILLED IN.*            -=-
-=-                                                         -=-
-=- Disconnect - Tell the bot to disconnect.                -=-
-=-  Example: CleanSlateBot1.Disconnect                     -=-
-=-                                                         -=-
-=- RequestKey - Request a profile key from Battle.Net.     -=-
-=-  Example: CleanSlateBot1.RequestKey "Zorm", "age"       -=-
-=-  That will return the age from Zorm's profile.          -=-
-=-                                                         -=-
-=- WriteKey - Writes a profile key to Battle.Net.          -=-
-=-  Example:                                               -=-
-=-   CleanSlateBot1.WriteKey "Skywing", "age", "17"        -=-
-=-   That will write 17 to Skywing's age.  You can only    -=-
-=-   write to your own profile, so...                      -=-
-=-                                                         -=-
-=- SimulateEvent - Advanced command for interaction        -=-
-=-                 between bots.  I'll get into this       -=-
-=-                 another time.                           -=-
-=-                                                         -=-
-=- Send - Sends text to Battle.Net.                        -=-
-=-  Example: CleanSlateBot1.Send "Hello!" or               -=-
-=-           CleanSlateBot1.Send "/ban EvilPerson Bye!"    -=-
-=-                                                         -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=-                                                         -=-
-=- 5.3 Events                                              -=-
-=-    Events are the biggest part of the bot.  They do     -=-
-=- everything for you, literally everything.  There are a  -=-
-=- lot to explain, so here they are.  But first, events    -=-
-=- are accessed the same way any event is.  After you drop -=-
-=- the OCX on your form, double click it.  Towards the top -=-
-=- right of your window, you'll see a drop down box that   -=-
-=- says BNLSAuthEvent.  Click it and you'll see the list   -=-
-=- of all events that the OCX supports.                    -=-
-=-                                                         -=-
-=- AdBanner(BannerFile, BannerLink) - Tells you the        -=-
-=-  current advertisement being displayed on game clients. -=-
-=-                                                         -=-
-=- BnetConnected() - This event happens when you connect   -=-
-=-  to Battle.Net.                                         -=-
-=-                                                         -=-
-=- BnetConnecting() - This event happens when you begin    -=-
-=-  connecting to Battle.Net.                              -=-
-=-                                                         -=-
-=- BnetDisconnected() - This event happens when you        -=-
-=-  disconnect from Battle.Net.                            -=-
-=-                                                         -=-
-=- BnetError(ErrorNumber, Description)                     -=-
-=-  This event happens when an error occurs in the         -=-
-=-  Battle.Net socket.                                     -=-
-=-                                                         -=-
-=- BNLSAuthEvent(Success) - An event telling               -=-
-=-  you that BNLS has accepted your BotID and BotPassword. -=-
-=-  Success is either true or false.                       -=-
-=-                                                         -=-
-=- BNLSConnected() - This event happens when you connect   -=-
-=-  to BNLS.                                               -=-
-=-                                                         -=-
-=- BNLSDisconnected() - This event happens when you        -=-
-=-  disconnect from BNLS.                                  -=-
-=-                                                         -=-
-=- BNLSError(ErrorNumber, Description)                     -=-
-=-  This event happens when an error occurs in the BNLS    -=-
-=-  socket.                                                -=-
-=-                                                         -=-
-=- ChannelList(ChannelName) - This event occurs            -=-
-=-  when you receive the standard channel list.            -=-
-=-                                                         -=-
-=- Debugger(Message) - Used for debugging.                 -=-
-=-                                                         -=-
-=- FlagsUpdate(Username, flags, Message, Ping) - This      -=-
-=-  event occurs when a flag update happens, for example,  -=-
-=-  when someone is squelched.                             -=-
-=-                                                         -=-
-=- JoinedChannel(ChannelName, flags) - This event occurs   -=-
-=-  when you join a channel.                               -=-
-=-                                                         -=-
-=- KeyReturn(KeyName, KeyValue) - Happens when a profile   -=-
-=-  key you've requested comes back.                       -=-
-=-                                                         -=-
-=- LoggedOnAs(Username) - Happens when you log on.  OCX    -=-
-=-  tells you what name you've logged on as.               -=-
-=-                                                         -=-
-=- LogonEvent(Message) - Message returns a number.         -=-
-=-  Messages are:                                          -=-
-=-   0 - Failed logon, account doesn't exist.              -=-
-=-   1 - Failed logon, bad password.                       -=-
-=-   2 - Successful logon.                                 -=-
-=-   3 - Attempting to create the account.                 -=-
-=-   4 - Successfully created account.                     -=-
-=-                                                         -=-
-=- PasswordChange(Success) - Tells you whether or not the  -=-
-=-  password change was successful.                        -=-
-=-  Success is either True or False.                       -=-
-=-                                                         -=-
-=- RealmConnected() - Tells you when you've successfully   -=-
-=-  connected to a D2 realm.                               -=-
-=-                                                         -=-
-=- RealmConnecting() - This event happens when you begin   -=-
-=-  connecting to a D2 realm.                              -=-
-=-                                                         -=-
-=- RealmDisconnected() - This event happens when you       -=-
-=-  disconnect from D2 realm.                              -=-
-=-                                                         -=-
-=- RealmError(ErrorNumber, Description)                    -=-
-=-  This event happens when an error occurs in the         -=-
-=-  D2 realm socket.                                       -=-
-=-                                                         -=-
-=- ServerError(Message) - When Battle.Net sends an error   -=-
-=-  message like "That user is not logged on."             -=-
-=-                                                         -=-
-=- ServerInfo(Message) - When Battle.Net sends information -=-
-=-  like a friends list.                                   -=-
-=-                                                         -=-
-=- SimulatedEvent(PassedControl, EventType) - When a       -=-
-=-  request for a simulated event comes in.                -=-
-=-                                                         -=-
-=- SomethingUnknown(Message) - When something that the OCX -=-
-=-  doesn't recognized is sent from Battle.Net.            -=-
-=-                                                         -=-
-=- UserEmote(Username, flags, Message) - When someone uses -=-
-=-  /me in the channel you're in.                          -=-
-=-                                                         -=-
-=- UserInChannel(Username, flags, Message, Ping) - When    -=-
-=-  you join a channel and people are already there, this  -=-
-=-  event executes for each person.                        -=-
-=-                                                         -=-
-=- UserJoins(Username, flags, Message, Ping) - When        -=-
-=-  someone else joins the channel.                        -=-
-=-                                                         -=-
-=- UserLeaves(Username, flags) - When someone else leaves  -=-
-=-  the channel, this event executes.                      -=-
-=-                                                         -=-
-=- UserTalk(Username, flags, Message, Ping) - When a user  -=-
-=-  talks in the channel, this event is executed.          -=-
-=-                                                         -=-
-=- VersionCheck(Message) - This event occurs while CD key  -=-
-=-  and username/password are being checked.               -=-
-=-  Messages are:                                          -=-
-=-   0 - Version check and CD-Key check passed.            -=-
-=-   1 - Version check failed, bad version.                -=-
-=-   2 - CD-Key check failed, bad key.                     -=-
-=-   3 - Version check failed, need updated hashes.        -=-
-=-   4 - CD-Key check failed, key is for another game.     -=-
-=-   5 - CD-Key check failed, key is banned.               -=-
-=-   6 - CD-Key check failed, key is in use.               -=-
-=-                                                         -=-
-=- WhisperFromUser(Username, flags, Message) - When a user -=-
-=-  whispers to you, this event is executed.               -=-
-=-                                                         -=-
-=- WhisperToUser(Username, flags, Message, Ping) - When    -=-
-=-  you whisper to another user, this event executes.      -=-
-=-                                                         -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=- 6.0 Demonstrations                                      -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=-                                                         -=-
-=- 6.1 Quick Demo                                          -=-
-=-    Create a form, add the OCX to your project, drop one -=-
-=- onto your form.  Then, double click your form and add   -=-
-=- this to Form_Load:                                      -=-
-=-                                                         -=-
-=- CleanSlateBot1.BNLSBotID = "La la la..."                -=-
-=- CleanSlateBot1.BNLSBotPassword = "Nuh uh!"              -=- 
-=- CleanSlateBot1.CDKey = "Zorm left his key here.  =X"    -=- 
-=- CleanSlateBot1.Product = "PXES"                         -=-
-=- CleanSlateBot1.HomeChannel = "Clan Ze][2o"              -=-
-=- CleanSlateBot1.Password = "Hahaha!  No."                -=-
-=- CleanSlateBot1.Username = "Zorm"                        -=-
-=- CleanSlateBot1.NewPassword = "bleh"                     -=-
-=- CleanSlateBot1.ChangePassword = False                   -=-
-=- CleanSlateBot1.Server = "usw-bna-chat03.battle.net"     -=-
-=- CleanSlateBot1.Accept = -65                             -=-
-=- CleanSlateBot1.Connect                                  -=-
-=-                                                         -=-
-=- That's all it takes.  Assuming you fix the information. -=-
-=-                                                         -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=-                                                         -=-
-=- 6.2 Parsing Events                                      -=-
-=-    Go back to that project and add a TextBox to the     -=-
-=- form.  You can rename it if you want, not necessary     -=-
-=- though.                                                 -=-
-=-                                                         -=-
-=- Select the JoinedChannel event.  It should put you on a -=-
-=- blank line.  Type:                                      -=-
-=-  Text1.Text = Text1.Text & "Joined Channel: " &         -=-
-=- ChannelName & vbCrLf                                    -=-
-=-                                                         -=-
-=- Now, whenever you join a channel, your text box will    -=-
-=- add Joined Channel: and the channel name to it.         -=-
-=-                                                         -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=-                                                         -=-
-=- 6.3 Using Methods                                       -=-
-=-    Ok, select the JoinedChannel event again.  Now, add  -=-
-=- CleanSlateBot1.Send "Hi, all.  I'm using My Bot!"       -=-
-=- beneath the Joined Channel line.  This will send what   -=-
-=- you said to the channel each time you join.             -=-
-=-                                                         -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=- 7.0 Troubleshooting                                     -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=-    If you have problems, then...  I don't know.         -=-
-=- Everything was explained very simply here, with         -=-
-=- examples provided.  Just check your code, declare your  -=-
-=- variables and cross your fingers.                       -=-
-=-                                                         -=-
-=- If you're really desperate, get ahold of me on          -=-
-=- Battle.Net as CupHead.fe or CupHead[vL]                 -=-
-=- Also, I can be E-Mailed at:                             -=-
-=-          CupHead@valhallalegends.com                    -=-
-=-                                                         -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=- 8.0 Thanks 'n Stuff                                     -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=-    Thanks to Zorm mostly, Skywing, Grok, everyone in    -=-
-=- Fatal Error who has been quite helpful.                 -=-
-=-                                                         -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-