
    -  -  -  -  -   -  -  -  -  -  - 
            ,.   ,.       .
            `|  / ,-. ,-. |-. ,-. ,-. ,-.
             | /  |-' |-' | | |-' |   `-.
             `'   `-' `-' ^-' `-' '   `-'
       ,--,--'                 ,-,---.     .
       `- | ,-. . .  , . ,-.    '|___/ ,-. |-
        , | |   | | /  | ,-|    ,|   \ | | |
        `-' '   ' `'   ' `-^   `-^---' `-' `'
    -  -  -  -  -   -  -  -  -  -  - 

        V E E B E R S   T R I V I A   B O T
              V E R S I O N   2 . 2 . 1



====================================================
= I. Table of Contents                             =
====================================================

 I....... Table of Contents ......................I
 II...... Introduction ..........................II
 III..... Version History ......................III
 IV...... Commands ..............................IV
 V....... Configuration ..........................V
 VI...... Question Files ........................VI
 VII..... Troubleshooting ......................VII
 VIII.... Beta Testers ........................VIII
 IX...... Credit ..............................VIII
 X....... About Me ..............................IX
 XI...... Contact ................................X



====================================================
= II. Introduction                                 =
====================================================

The Veebers Trivia Bot is a Battle.net bot that asks
trivia questions in which the user can answer and
earn points and awards. The idea of a Battle.net
trivia bot came from the mIRC trivia bots I play
with in some channels. I can't say I invented the
first Battle.net trivia bot, though. Some time after
my bot was released, I met with Ersan. He is most
likely the first person to create a trivia bot for
Battle.net. He didn't mind me working on the VTB
project, as we agreed that it was a common idea. I
continued the project until it became the most
widely-used trivia bot on Battle.net... although it
is still kinda buggy. I am still working on making
the Trivia Bot even better, with help from the fans
who visit the www.veebers.net forums. I appreciate
all the help and suggestions that have been made by
the fans. Without them, the VTB will go nowhere
(although some may prefer that).



====================================================
= III. Version History                             =
====================================================

Version 2.2.1
    + Several glitches and cosmetic bugs fixed.


Version 2.2
    + The long-awaited WarCraft 3 and TFT support.
      Thanks to HdxBmx27 for converting my bot from
      using CSB to Winsock.
    + No more cleanslatebox2.ocx = No more bugs
      involving that god-forsaken thing!
    + Channel list bug fixed.
    + The chat textbox will display whatever the bot
      says.
    + Autoupdate checks whether a new version of
      the bot is available.
    + Fixed various minor bugs and glitches.


Version 2.1
    + Fixed user access bug where a user cannot use
      a command other than the ones with access
      requirements equal to the user's access level.
      (Thanks, Jon8c)
    + Fixed user database bug where a user does not
      have access unless he/she is listed in the
      user scores. (Thanks, The_AwaKening)
    + Fixed awards bug where the bot reads from the
      same awards file. (Thanks, pOoP)
    + Config editing screen.
    + Advanced answer checking. Gives points to a
      user even if he/she forgets a space, dash,
      comma, etc.
    + Minimizes to system tray.
    + Right-clicking a username in the channel list
      will pop up a menu where you can set the
      user's access, view score, etc. (Suggested
      by RaZaK)
    + Fixed bug involving the first line of question
      files to appear as a question.
    + Custom hint masks. Instead of -----, you can
      set it to anything, like *****. (Suggested
      by davidfes)


Version 2.0.1
    + Fixed the Time Up bug.
    + Fixed bug where the bot freezes when loading
      questions or asking them.


Version 2.0
    + Fixed A LOT of bugs in the beta version.
    + Added the string set feature, by request.
      This should add some color back to the 
      channels, for those using StarCraft. =P


Version 2.0 BETA
    + Bugs fixed, including the bug regarding War3
      users getting free points and the bugs with
      usernames containing illegal characters.
    + New question file format. The old format is
      now obsolete.
    + Word scrambling (this kind of goes with the
      new question format thing).
    + New commands: !adduser !deluser !setuser
      !ignore !unignore !ver
    + New config files. Easier to edit.


Version 1.6
    + Bot access bugs fixed.
    + Chat commands fixed.
    + Question delay error fixed.
    + Ranking system.
    + New commands: rank, top, and skip.
    + AltAnswer in custom questions allow up to 2
      possible answers per question.
    + Sexy new about dialog.


Version 1.5
    + Fixed connect bug, but there are some who
        still have problems connecting.
    + Channel list.
    + Shortcuts of trivia session commands.


Version 1.4.1
    + Optimised code.
    + Fixed bug concerning connection.


Version 1.4
    + Fixed bugs involving messages.
    + Message editor for custom messages.
    + Support for more than one set of questions.
    + More options in the Bot Settings.
    + Added user access levels.
    + New commands: !whois, !kick, and !ban.
    + Award for reaching a certain number of points
        or for answering a certain number of
        questions right in a row.


Version 1.3
    + Fixed the EMOTE bug. This bug gave people free
        points every time they do a blank "/me".
    + Fixed the hint generator.
    + !score [user] can be used to check other
        people's scores.
    + Custom messages.


Version 1.2
    + The bug where it adds an extra space before
        the message in the !say command.
    + Fixed the !join command glitch.
    + Fixed the !score command glitch.
    + Automatically generates hints.
    + !score command.


Version 1.1
    + Custom trigger.
    + !say command.
    + !join command.



====================================================
= IV. Commands                                     =
====================================================

   Key: [Optional Argument]
        (Required Argument)

   !ver
        Displays version information.

   !score [user]
        Displays a user's score

   !rank [user]
        Display a user's rank.

   !top
        Displays player with the highest score.

   !whois [user]
        Displays a user's access level.

   !skip
        Skips current question.

   !ignore (user)
        he bot squelches the user.

   !unignore (user)
        The bot unsquelches the user.

   !start (question file)
        Starts trivia session with the question
        file. The question files are located in the
        "questions" folder and are stored as .dat
        files. (Ex: "!start trivia" would start a
        session with questions from the file:
        "\questions\trivia.dat".)

   !stop
        Stop the trivia session.

   !join (channel)
        Joins specified channel.

   !say (message)
        Says something.

   !adduser (username) (access)
        Adds a user with the specified access.

   !deluser (username)
        Removes user access and scores.

   !setuser (username) (access)
        Sets a user's access to specified access.



====================================================
= V. Configuration                                 =
====================================================

The bot settings can be edited by clicking the
"Settings" menu, then clicking "Edit Settings".

The configuration files are:
    config.txt
    commands.txt
    awardspoints.txt
    awardsrow.txt
    useraccess.txt
    userscores.txt
    strings.txt

____________________________________________________
- 1. config.txt                                    -

"config.txt" contains the configuration of the bot.
The contents of config.txt are as followed:

Username Veebers
Password hahaha...no!
CDKey 1111222223333
XPKey 
Product PXES
Server useast.battle.net
HomeChannel The Void
Owner vbVanguard
QuestionDelay 15000
HintDelay 7000
Trigger !
StringSet Default
Hintmask -

     ------------------------------------------

Username = the username to the bot connects with
Password = the password of the username
CDKey = the cd-key of the product
XPKey = for loading D2:LOD
Product = the product code for the product in use.
  The product must agree with the cd-key specified.
  The product codes are:
      RATS - StarCraft
      PXES - StarCraft: Brood War
      NB2W - WarCraft 2: Battle.net Edition
      VD2D - Diablo II
      PX2D - Diablo II: Lord of Destruction
Server = Battle.net server to connect to. The
  most common battle.net servers are:
      uswest.battle.net - US West
      useast.battle.net - US East
      europe.battle.net - Europe
      asia.battle.net - Asia
HomeChannel = Channel to join on connection.
Owner = Owner of the bot; also has access to all
  commands.
QuestionDelay = number of milliseconds until the
  next question is asked.
HintDelay = number of milliseconds until the next
  hint is displayed
Trigger = Bot trigger for commands.
StringSet = The string set to use. See "strings.txt"
Hintmask = The mask for the hint. The character that
  replaces some of the letters in the answer.

  Example: If you set the hintmask to "@", the hints
    would look something like this:

    Hint: @@@@n@@a@d
    Hint: v@V@n@ua@d
    Hint: v@Van@uard

____________________________________________________
- 2. commands.txt                                  -

"commands.txt" contains the access levels required
to use the commands listed.
The contents of commands.txt are as followed:

ver 1
score 1
rank 1
top 1
whois 2
skip 2
ignore 3
unignore 3
start 4
stop 4
join 5
say 5
adduser 5
deluser 5
setuser 5

     ------------------------------------------

This is pretty much self-explanitory. The commands
are on the left, followed by a single space and
the access level require to use it. Make sure you
use numbers and ONLY NUMBERS as the access level.

____________________________________________________
- 3. awardspoints.txt                              -

"awardspoints.txt" contains the awards given for
x points, where x is whatever you want it to be. =P
The contents of awardspoints.txt are as followed:

100 a 100-Point Medal
200 a 200-Point Medal
300 a 300-Point Medal
1000 a 1000-Point Trophy

     ------------------------------------------

Again, this is self-explanitory. The points required
are on the left, followed by a space and the award.
When given an award, the bot will say something like:

"You have been awarded a 100-Point Medal for
scoring 100 points."

____________________________________________________
- 4. awardsrow.txt                                 -

"awardsrow.txt" contains the awards given for the
set number of questions answered in a row.
The contents of awardsrow.txt are as followed:

3 a bag of stinky weeds
4 an opened pack of Skittles
5 vintage porno

     ------------------------------------------

Similar to awardspoints.txt. The only difference is
that the number on the left stands for the number
of questions answered in a row. If somebody were to
answer 5 questions in a row, the bot might say
something like this:

"You have been awarded vintage porno for answering
5 questions in a row."

____________________________________________________
- 5. useraccess.txt                                -

"useraccess.txt" contains the bot access granted to
users.
The contents of useraccess.txt are as followed:

vbVanguard 5
idoL -1

     ------------------------------------------

The users are on the left, and the bot access are
on the right, seperated by a single space. Users
with -1 access cannot use any bot commands, even
if commands.txt is altered to have a command access
of -1.

____________________________________________________
- 5. userscores.txt                                -

"userscores.txt" contains the scores of each user.
The contents of userscores.txt are as followed:

vbVanguard 0
Zmud 0

     ------------------------------------------

The users are on the left, the scores on are the
right followed by a space. I don't see why you would
want to alter this, but if you really want to cheat,
then go ahead. =P

____________________________________________________
- 6. strings.txt                                   -

"strings.txt" contains set of strings the bot will
say when certain events occur. For example, a bot
might say "Trivia Session Initialized!" when the
trivia session is started.
The contents of strings.txt are as followed:

[Default]
Connect=Veebers Trivia Bot 2.2 Engaged!
Answer=Congratulations, *username*! The answe...
AwardRow=You have been awarded *award* for an...
AwardScore=You have been awarded *award* for ...
...
[Classic]
Connect=VVeebers VTrivia VBot V2.2 REnga...
Answer=RCongratulations, Y*username*R! RT...
AwardRow=RYou Rhave Rbeen Rawarded Y*awa...
AwardScore=RYou Rhave Rbeen Rawarded Y*a...

     ------------------------------------------

[Default] and [Classic] are the names of the string
set. Underneath are the text to display when the
event associated with it is executed. For example,
in the "Default" string set, if the bot made a
connecting to battle.net, it will say:

Veebers Trivia Bot 2.2 Engaged!

...with the color codes, of course! There are no
color codes in the Default string set because I
don't want any War3 people comlaining...

Speaking of color codes, here is the list of all
StarCraft color codes for the channels:
Grey: Q
Green: R
Red: Y
Blue: V
White: P
Yellow: Z

Also, you'll notice instances of something like
*username* or *score*. These are variables for
the usernames, scores, etc., and will be replaced
with the respective data. I provided a list of
variables available for every event:

Connect: *ver*
Answer: *username*, *answer*, *score*, *rank*, *row*
AwardRow: *username*, *award*, *row*
AwardScore: *username*, *award*, *score*
Adduser: *username*, *access*
Deluser: *username*
Ignore: *username*
Rank: *username*, *rank*
Score: *username*, *score*
Setuser: *username*, *access*
Skip: NO VARS
Start: NO VARS
Stop: NO VARS
Top: *username*, *score*
Unignore: *username*
Whois: *username*, *access*
Question: *question*
Hint: *hint*
Wordscramble: *question*
TimeUp: *answer*



====================================================
= VI. Question Files                               =
====================================================

Veebers Trivia Bot 2.X uses a whole new format of
question files. There are two types of question
files: questions and word scrambles.

____________________________________________________
- 1. Questions                                     -

If you open up a question file, you will see
something similar to this:

questions
Video Games: Who is [...]?*Nobuo Uematsu
Video Games: What is [...]?*Link
Video Games: What is [...]?*Flame Whip

The "questions" at the top indicates that the file
is a question file. This is required in all question
files, but not in word scrambles. It must occupy
the very first line and it must be in lowercase.
The bot will not recognize the question file until
you do so.

The lines after the "questions" are the the actual
questions and answers. The questions and answers
are seperated by a "*", so the format is thus:

Who is the maker of the VTB?*vbVanguard

The bot asks "Who is the maker of the VTB?", and
whoever answers "vbVanguard" first gets the point.

____________________________________________________
- 2. Word Scrambles                                -

Word scrambles are much easier to do, as all you
really need to do is gather a list of words. An
example of a word scramble is given thusly:

scramble
starcraft
zergling
ultralisk
terran
zerg
protoss

Again, the first line indicates that the question
file is a word scramble. Every word scramble needs
to have the "scramble" on the very first line, in
all lowercases.

The lines following it are the words to scramble.
The bot might say something like this:

Word scramble: cstfratra

The scrambled word is "starcraft", so if anybody
answers "starcraft" first, they are give a point.



====================================================
= VII. Troubleshooting                             =
====================================================

File blahblah.ocx is missing!

If any dependancies are missing, just go to google
and search the filename. Download the file and put
it in your windows system directory.



"System Error &H8007007E (-2147024770). The
specifuied module could not be found."

Try downloading a registery cleaner program from
download.com or other download sites. Or use Norton
Utilities 2002 (you need to pay for this, unless you
own it illegally) to fix registry problems.



I get the following message, and I can't to connect.
[9:39:16 PM] BNLS: Connecting...
[9:39:16 PM] BNLS: Connection Established!
[9:39:16 PM] BNLS: Disconnected!

BNLS is down. Just wait until it's back up again.



====================================================
= VIII. Credit                                     =
====================================================

Special thanks go to the following, in no
particular order:

  Skywing and Yoni - For granting me a BNLS account.

  HdxBmx27 - Converting my bot from using CSB to
    pure BNLS with Winsock. This eliminates many
    problems the bot has had when using CSB. MAJOR
    thanks to him!

  Cuphead - For making bot development easy for
    newbsters with his CleanSlateBot OCX. I don't
    use CSB anymore, though.

  Ersan - He is the first one to make a Battle.net
    trivia bot. He didn't mind if I made a trivia
    bot of my own. Nice guy. =P

  Scope - Hosting the Veebers Software website and
    giving me free space! Without Scope, my bot
    wouldn't be as popular.

  BloodyBlade - Supporting my bot, providing me
    with ideas and questions.

  DrAxXuS - Supporting me in the early development
    of the Trivia Bot, and being such a good clan
    leader. You definately deserve a spot in the
    readme file, drax!

  Macai (Luke Laupheimer) - My best friend ever.
    He has helped me with a lot of my projects and
    he kicks ass at VB programming. He helped with
    the hint generator amongst other things.
    Thanks Lukhai!

  Veebers Forum Users - Thanks to all who have
    posted suggestions and bugs for my bot. Because
    of you guys my bot isn't too buggy. =P


Flames go to:

  "Veeber" - An imposter, whom I discovered stole
    my trivia bot and called it his own. He even
    released a 2.0 version of my bot, which turns
    out to be 1.6 with minor text edits.



====================================================
= IX. Beta Testers                                 =
====================================================

Beta testers for the Veebers Trivia Bot. Thanks to
these guys you have an almost bug-free bot to play
with. Here's the list:

  Demon[kilon]
  firestormgen 
  zeth
  Shadow)Angel



====================================================
= X. About Me                                     =
====================================================

I program shit in VB. My first project for anything
StarCraft related was BMP2SCM, the infamous tool
that lets a perverted loser convert porno pictures
to tiles, thus having the pornographic image appear
in the mini-map. Actually, I lied. BMP2SCM isn't my
first SC project, come to think of it. I worked on
a bot named TideBot a while back, but it never got
finished because I suck at programming. Even before
that I made a shitty clone of "Lights Out" with a
StarCraft theme. Click on a Terran Marine and the
surrounding Terran Marines become Infested Terrans,
and vice versa. Now that I look back at some of my
older projects (very little of which I have actually
kept), I still suck at programming, yet I have
improved. I will keep on making more shitty programs
until the shitty programs turn into something that
works. Then I can call myself a programmer, and be
ONE with the PRoGRAMMING GOD. Then I will develop
awesome programs to rule the world! Cool.



====================================================
= XI. Contact                                       =
====================================================

I prefer that you do not contact me, but use the
veebers.net forums to ask questions. You can send in
custom questions to me so I can post them on my
site, but other than that I pretty much don't want
to ever see you =P. Anyways, here's my contact info:

  E-mail: vbvanguard@gmail.com
   B.net: vbVanguard @ USWest, USEast, Asia
          Who plays Europe, anyways...?
 Website: http://www.veebers.net/




 : : : : : : : : : : : : : : : : : : : : : : : : : :

           V E E B E R S   T R I V I A B O T
                  www.veebers.net

