.......................................................................................................................

MultiBot v1.0 build 8 by Ersan

MultiBot is a binary bot for Battle.net that allows you to connect multiple bots to the Battle.net Chat Service through
one executable and interface, it supports a plugin API (see bottom for reference) that allows people to develop their
own user interfaces and features.  Supported games are listed below.

Starcraft
Starcraft: Brood War
Diablo II
Diablo II: Lord of Destruction
Warcraft II: BNE
Warcraft III
Warcraft III: The Frozen Throne
Internet Relay Chat*
BotNet*

* = not supported at the time of this release.

.......................................................................................................................

CHANGELOG:
build 8 (11/10/06):
= Modified to use PMAC for local hashing due to new lockdown MPQ's, temporary fix.
= Modified BNLS to use new packet structure, older versions of MultiBot will probably not work.

build 7 (09/17/06):
+ Support for D2: LoD and W3: TFT has been added.
= If BNCSutil.dll is found and you're using BNLS, it will still use the bncsutil library to hash your password
  so that your plain text password isn't sent over the internet to BNLS.
= Fixed a bug where bot would crash on load if bncsutil.dll wasn't found.

build 6 (09/17/06):
+ Support for SOCKS4 proxies has been added.
+ You can now connect every bot on your list simultaneously using 'Connect All' - there is no delay.
+ Connections that have gone dead are now detected.
- Diablo II: Lord of Destruction and Warcraft III: The Frozen Throne are disabled until that portion is finished.
- Diablo II MCP (realms) has been removed, and may not be re-added.
= Various bug fixes

build 5 (09/14/06):
+ Hashing is now supported using BNCSutil.dll >= 1.2.0, if this file is not found hash support will be disabled.
  Files go in MultiBot's working directory under STAR, D2DV, D2XP, W2BN, WAR3, and W3XP.
= Various bug fixes

build 4 (09/13/06):
+ JBLS is now supported.
= Various bug fixes

.......................................................................................................................

API:
'You must name the class module of the DLL you're making CProjectName
'You must also name the DLL ProjectName.dll or ProjectName.mbp
'So, for BasicChat, the project name is 'BasicChat', the class module is 'CBasicChat' and the
'compiled project is BasicChat.dll or BasicChat.mbp

'MultiBot core triggers
LoadForm(BotID)						'Tells the plugin that there is a bot using that BotID (init)
ShowDialog(BotID)					'Occurs when a user double-clicks a bot or clicks 'View Chat'
OnMeTalk(BotID, username, message)			'This is called when text is sent to battle.net
OnProfile(BotID, age, sex, location, description)	'Parsed response to GetProfile

'Battle.net triggers
OnTalk(BotID, username, Flags, message, Ping)		'When user talks
OnEmote(BotID, username, Flags, message)		'When user emotes
OnChannel(BotID, message, Flags)			'When bot joins channel
OnUser(BotID, username, Flags, message, Ping)		'When bot joins channel, users that are already there
OnJoin(BotID, username, Flags, message, Ping)		'When user joins channel
OnLeave(BotID, username, Flags)				'When user leaves channel
OnWhisperTo(BotID, username, Flags, message, Ping)	'When bot whispers to someone
OnWhisperFrom(BotID, username, Flags, message)		'When someone whispers bot
OnInfo(BotID, message)					'When battle.net sends info to bot
OnFlags(BotID, username, Flags, message, Ping)		'When flags are update
OnError(BotID, message)					'When error occurs
OnUnknown(BotID, message)				'When unknown event occurs

'Host functions
SendText(text, BotID)					'For sending text to b.net
GetProfile(username, BotID)				'For requesting profile information
GetW3CStats(clanname, BotID)				'Get warcraft 3 clan stats
GetUserInfo(Username, BotID)				'Returns Users.ini information, I suggest you LCase()
SetUserInfo(Username, Info, BotID)			'Sets info in Users.ini, leave blank to delete entry
WriteConsole(Message, BotID)				'Outputs Message to the console, auto-inputs username so no need
GetSetting(Name, BotID)					'Returns INI setting for bot with BotID
WriteSetting(Name, Value, BotID)			'Writes INI setting and updates configuration for bot with BotID

.......................................................................................................................