Author Topic: CleanSlateBot Documentation  (Read 4590 times)

0 Members and 1 Guest are viewing this topic.

Offline Joe

  • B&
  • Moderator
  • Hero Member
  • *****
  • Posts: 10319
  • In Soviet Russia, text read you!
    • View Profile
    • Github
CleanSlateBot Documentation
« on: November 21, 2009, 11:31:42 pm »
I found this while sorting through old files. Perhaps of nostalgic value? :)


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

'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
'-=-=-=-=-=-=-=-=-='-=- 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.                 -=-
'-=-                                                        -=-
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
« Last Edit: December 01, 2009, 07:33:22 pm by Joe »
I'd personally do as Joe suggests

You might be right about that, Joe.