This bot runs on battle.net and was written by the Great BoBaFeTT.
The latest version of this bot is available at
http://web.access.net.au/~nicks/diablo.htm

Documentation for BoB.ini for GreatBoT.exe


BoB.ini is read by GreatBoT when you execute GreatBoT.exe. If you change
BoB.ini you have to restart GreatBoT.exe in order to make your bot respond
to the changes.  Make sure that BoB.ini is placed in the same directory as
GreatBoT.exe


You will need to know the 3 basic keywords in BoB.ini to be able to use it:

say TEXT	This will make your bot perform the simple action of saying the TEXT
		example: say I like being a bot made by BoBaFeTT!
		
reply %s TEXT   This will make your bot say the name of the person it is
		responding to and the TEXT you can use %s up to 4 times in
		one reply.  In case you're interested, I'm using the standard
		C or C++ syntax for a printf() formatted string.
		eg.  reply %s is a Bot
text %s TEXT %s This will make your bot respond with the name of the person
		it is responding to and add the text the speaker wrote. 
		eg. text %s just told me this %s can you believe that happy
		crappy????

The format for these commands are:
Person/Word that should be recognized. Keep in mind that the comparison is
case-sensitive.
Action

example:
greatbot
say I like being a BoT!

will make the bot respond to greatbot with the words: I like being a BoT!

Further examples will be given in the explanation of the specific BoB.ini
sections.

In the server section you can either type exodus.battle.net or one of the
IP addresses found in
[HKEY_LOCAL_MACHINE\SOFTWARE\Battle.net\Configuration] in regedit.exe in
"Server List".  These are the ones I found in mine.  To check whether you
can log on to the server start a dos session and type:

ping 209.67.136.171 <enter>
to check whether 209.67.136.171 is working.

Here are the ones I found in my registry.
209.67.31.200
203.120.73.33
206.79.254.204
209.67.136.171
207.69.194.99
206.79.254.192
206.165.111.251
209.67.136.170
exodus.battle.net

examples:

[Server]
203.120.73.33

[Server]
battle.net

[Server]
exodus.battle.net

The [Channel] section lets you define which channel your BoT will start in.
Always use lower case - it seems to give the best result.
Sometimes the bots can't enter the channel you want and will instead show up in Blizzard Chat 1.
If you can't find your bot anywhere else - look in the Blizzard Chat 1 channel.

[Channel]
bounty hunters

The [Name] section let's you define the name of your bot.  You can use
a different name if you have the password used in Starcraft.
If you change the name and the new name does not exist the bot can't log on
to Battle.Net.

[Name]
Guest

The [Password] section let's you define the password of your bot. The
password is the one you used when you created the unique name in Starcraft.
If you don't have a unique name to use then don't change it.

[Password]
Guest

The [Owner] section must hold the correct name of the character you want to
control the bot.  If it is misspelled the bot will not recognize you and will
not accept your defined commands.

[Owner]
BoBaFeTT


The [Commands] section lets you automate actions.  This works by whispering
the command to the bot while you're on battle.net.  As the owner of the bot
(by using the name on battle.net as set above), you're able to control the
bot to say and do things.  The control is all done through whispering to the
bot.

example:. 
spam
say I am a GreatBoT I am a GreatBoT I am a GreatBoT I am a GreatBoT I am a GreatBoT I am a GreatBoT

When you whisper the bot the word spam. It will say I am a GreatBoT a lot
of times.
There are 2 built-in commands in the bot:
go TEXT
This will make the bot change channels to TEXT if the channel exists.
say TEXT
This will make the bot say TEXT. Use this to make your bot reply in an
intelligent way.

Here is an example of what you would type in while you're on battle.net.
This example assumes your bot's name is Guest.
The commands are used by whispering to the bot eg:
/w Guest say You numbnuts!!
/w Guest go bounty hunters
/w Guest <your commands>


[Commands]
shout
say WILL YOU PEOPLE PLEASE SHUT UP!!
why
say Why is it that I always win all my games?

The [Words] section is where you make your bot respond to certain words typed
by other players in the channel where the bot is.  The bot will look at the
text entered by other players and if there is a word in your list that appears
in their typed text, the bot will respond to what you want it to say.
The format is as always first one line with the keyword then one line with
the responding action.

[Words]
cheat 
reply Hey %s, good cheats are at http:///web.access.net.au/~nicks/diablo.htm
hack
reply %s Real hacking is done with Intel Assembly language.
bot
reply %s talk to BoBaFeTT if you are mad
creator
reply %s if you want to know how I was created, use this on me: /whois me


The [OnJoin] section lets you define which people the bot should respond to
when they enter the channel your bot is currently in.  The format is as
always first one line with the keyword then one line with the responding
action.  If you make the first entry in the [OnJoin] section an * and you
have a reply on the next line, all users that join the channel will get
that message, unless one of the names below are joined and then they will
get the specific reply you've specified for them.

example:
[OnJoin]
*
reply %s: Welcome to the best channel on Battle.net!
Soulburner
say Soulburner is one cool dude!
Guest
reply %s: Oh no another bot
BoBaFeTT
reply %s: Hi master!!
Great_BoBaFeTT
reply %s: Welcome my master!!

The [Speakers] section is much like the [OnJoin] section. The actions are
triggered whenever the listed person is saying something in the channel the
bot is currently in.  If you make the first entry in the [Speakers] section
an * and a reply to that - the reply will be chosen if none of the names
below the * are matched.
[Speakers]
*
reply Hey!  Did anyone ask for your opinion %s?
Soulburner
say Soulburner is one cool player!!
BoBaFeTT
say BoBaFeTT is right!
Great_BoBaFeTT
say Great_BoBaFeTT is a cool dude.

The [Ignore] section will make your bot ignore the listed people whenever
they talk.  People often will make your bot flood out(Say more than accepted
by Battle.Net)
Add these people to the [Ignore] section and have no more trouble with them.

[Ignore]
Atilla
Jilocasin
=-BELGARATH-=
S=O=U=L=E=S=S
fLaKeY
Gothic_Rose

The [Spam] section will allow you to customize the Stop Spamming message.
If you type in a lower case y the bot will reply the next line. It is by
default a reply command.  If you type in anything else than y it will not
respond to spam.
[Spam]
y
Stop Spamming %s!!

will make the bot reply 

Stop Spamming =-BELGARATH-=!!

whenever =-BELGARATH-= is typing in more text than accepted by the bot.


[Spam]
n
Stop Spamming %s!!

will never respond to spammers

The [Ends] section does nothing at all - except for saving me some time
with programming the BoB.ini parser.  Let it rest peacefully at the end of
the file.

[Ends]


FAQ: (Frequently asked questions)

Q:	How do I use the commands in my bot?
A:	Whisper your bot what you want him to do. If you have typed the Owner in	correctly
	It will do as you tell it. eg. 
	/w Guest say ****farts**** 
	will make you bot say ****farts****

Q:	I am not sure how to use a bot, could you explain it to me?
A:	Open a DOS window while you're connected to the Internet.
	Run Great_BoT.exe and let it connect to battle.net.  You can
	Join battle.net with either Diablo or Starcraft to see your GreatBoT
	running.

Q:	Flooding / Spamming?
A:	Some people make the bot say more than is allowed by Battle.Net.
	This will make the bot
	"flood out". The exact same thing that happens to users when they
	spam too much.
	The bot will try to reconnect to Battle.Net. If it does not succeed
	within a couple of
	tries it will be disconnected and you will have to restart it.
	The [Ignore] list is really useful in this case.

Q:	How do I stop my bot?
A:	Press <ctrl>-c in the dos-window to terminate Great_BoT.

Q:	What is a bot?
A:	bot is short for Robot. It is a small program that logs on through a
	text gateway and can be programmed to suit peoples purpose. Basically
	it is triggered by events like:
	People enter the channel, people talk, people whisper it etc.
	GreatBoT has the advantage over most other bots that it can be
	relatively easliy configured by the user, and does not have to be
	reprogrammed just to add a word to its responses.  Furthermore you
	can talk directly to GreatBoT.

Q:	You wrote that BoB.ini has to be placed in the same directory as
	GreatBoT.exe.
	That's fine - but what is a directory?
A:	A directory is a folder on your system.  It's a place to hold files.
	Learn how Windows 95 stores files on your system to find out more
	information.

Q:	How do I edit BoB.ini?
A:	Use notepad or another text editor like wordpad.

Q:	Should I have saved the changes?
A:	Yes

Q:	How do I change the name of the bot?
A:	If you don't want your bot to be called Guest##, you should:
	1) Create a Starcraft account with the name you want your bot to have.
	   If you do not create this account your bot can't enter Battle.Net
	   with other names than Guest.
	2) Type the name in the [Name] section in BoB.ini.
	   (Delete the original name in BoB.ini)
	3) Write the password in the [Password] section in BoB.ini.
           (Delete the original password in BoB.ini)
	
Q:	You wrote that I had to have Starcraft to name my bot. Isn't there
	any other way?
A:	Yes, if someone else creates a login and password for you using their
	copy of Starcraft and gives you that login name and password, then
	it can be done.  All that is necessary is that you know the login name
	and password in order to use a different name on battle.net.  As of
	the day of this writing, only Starcraft stores logins and passwords
	on battle.net.  Maybe another patch for Diablo will allow them.

Q:	How come my bot does not greet me when it enters the channel I am in?
A:	It works the other way around - type /rejoin when the bot has entered
	the channel, then it will greet you.  Remember that your characters
	name must be typed correctly in the [Owner] section in BoB.ini.
