NBBot

[ About $eveN aka Maledicti0n ]

my battle.net names:

· ^EI{^$eveN · {Fear}$eveN · ^EI{^Maledict · Maledicti0n · or account number #9870000

contact me by: e-mail: [email protected], uin# 2108959, irc (efnet/undernet) name: sev / maledict

[ Download NBBot ]

NBBot.zip - 30k - Leaked "original" version of NBBot v1.02

[ X-cfg v1.1 ]

the [X-cfg v1.1] is a configuration file made by $eveN for Improved NBBot v1.05

it is $eveN's personal config. If you do not understand something, or find bugs, contact me.

-- credits

·cyanide aka MuRrDa: for overall help and suggestions
·BoNe: ascii improvement
·JiZzA: commands and neat tricks when i didn't know much with the .usr
·CrYpT: ideas focusing on sniffing
·NeXeN and $aTivA: promote idea, user id idea, and more great ideas
·FLaMeBoY: /away whisper me to send a message to the bot owner idea and others
·ProFeSSioNaL: "anti-ban", commands, ideas, help, suggestions, and more
·Avenger: teaching me the first step on :scanf
·mark: teaching me the entire :scanf
·Skywing: some ideas from his cfg
·the NBBotMaster himself: WoLF`Adron[RIP] aka [vL]Adron

*note: X-cfg v1.1 includes Improved NBBot v1.05

-- d o w n l o a d   t h e   X - c f g   v 1 . 1 --

(click here to only download the cfg)

[ Improved NBBot v1.05 ]

the difference between NBBot v1.05 and NBBot v1.02 is merely the same. NBBot v1.05 has more "working" functions, for example: :scanf. NBBot v1.05 says the bots name if it is logged on to battle.net instead of the 'Send Message' text on the window. Improved. NBBot v1.05 has a more eficient operjoin, an internal massban, and some other bettered functions.

 

inbot105.zip - -  Improved NBBot v1.05 (including needed files, X-cfg v1.1, dl's, and more)

features

· Massban, usage: :massb <whatever> <user1>, <user2>, <user3>, <userX>...

· more eficient oprejoin, instead of a /rejoin or a /join k, it says /me A.R, usage: when bot says A.R make it rejoin

· smaller size, "more stable" according to some people

· much harder to hex edit.

[ Original files ]

account.log

this file contains all account numbers which were created or used for your bots when the bots log on.

*.dll, *.mpq

these files are libraries required to perform certain functions and are automatically downloaded from battle.net if you do not have them present, these files are not to be edited.

nbbot.cfg

this is the configuration (cfg) file where you will do most of your editing. it provides control for nearly every feature of NBBot. your username, password, and custom commands go here.

nbbot.exe

the program executable application. this si what you run to start your program.

nbbot.usr

this is where all the account numbers, and names of all the people the bot has seen are stored. you will use this to define groups and users.

[ NBBot help ]

installation:

make sure you have all the required NBBot v1.05 files in the
same directory and have diablo or whatever battle.net client
you want your nbbots to run on installed. the required files
are storm.dll, nbbot.exe, nbbot.cfg, nbbot.usr.
in autoexec.bat write the following at the bottom:
SET PATH=%PATH%;C:\DIABLO
replace C:\DIABLO to the path that leads to your Diablo folder.

getting started:

Lines that don't match a known command are silently ignored. This means the easiest way to rem a line out is to add a space to a beginning of it, as there are no commands that begin with a space.

 Lines that begin with an & are matches for incoming data and actions

&<type number>&<user name match>&<text match>&<action>

<type number> = same numbers as for chat bots minus 1000, 2 is join, 3 is leave and so on.

<user name match> = substring to search user name for. To match whole name enclose in  quotation marks. To match beginning, start with a quotation mark. There are several special forms, listed in detail below.

 <text match> = same as username but for the text sent, for example in a whisper, or channel name when joining a channel.

 <action> = either a response to send or a command. a command begins with a colon, and thus you cannot send a response beginning with a colon. Also, a plus will have a special meaning. Normally the parsing is stopped after the first  matching line, but if the matching line has an action starting with a plus, parsing of the remaining lines will continue.

name matching

name - matches a substring of a name

name#account - matches substring of a name and account # (0 for chat bot)

#account - matches account only

@group - matches membership of group or everyone if group is omitted

@group>20 - matches membership if group with priv>20 (>, < or = can be used)

(replace @ with $ to require pass1)

(replace @ with £ to require pass2)

 

 group priv: 0 means not in group, 1 means basic members, anything larger than 1 means

             you can add/modify members with lower priv than your own. When using setpriv

 

             the default value for priv is 1.


variables:

%1 username
%2 whole message text
%3 message text after what you matched for
%4 name of bot
%5 server bot is on
%6 config section bot is using
%7 bot's home channel
%8 used for rolling dice
%9 ip sniffed of user
%10 account# of user
%11..20 used with the :scanf command
%21 name of the current user as specified in nbbot.usr

note: nbbot subtracts 1000 off the type number
type numbers:


1001 - SHOWUSER
1002 - JOIN
1003 - LEAVE
1004 - WHISPER RECIEVED
1005 - TALK
1006 - BROADCAST or SystemMessage
1007 - CHANNEL
1009 - USERFLAGS
1010 - WHISPERSENT
1018 - INFO
1019 - ERROR
1023 - EMOTE
2010 - NAME

type numbers specified:

&1 traps when a username has been told to you after you joined a channel
&2 traps when a username has joined the channel you are in
&3 traps when a username has left the channel you are in
&5 traps when the bot has received a 1005 TALK message from battle.net
&7 traps when the name of the channel you have entered
&9 traps when a user has had their flags change
&10 traps when you have sent a whisper
&18 traps when battle.net is giving you info
&19 traps when battle.net is informing you of an error condition
&23 traps when a user did an emotion

config file commands:

server=
gate=
log=
home=
basegate=
votes=
floodprot=
spawn=
load=
reconnectinterval=
idleinterval=
idle=
username=
statstring=
stickyhome=
password=
config=
diablo=
battle=
storm=
automerge=
regauth=
regver=
clientid=
clienttoken=
designategroup=
topdesignatepriority=
cdkey=
cdkeyname=
cdspawn=
simulogon=
noGPF
type=
accountget=
pwadd=
pwbase=

remote commands:

:reload
:quit
:random alternative1|alternative2|alternative3|...|alternativeX
:config <new config section>
:autoban <user>
:autounban <user>
:roll <dice>
:scanf <base variable no> <expected number of variables> <match string>&<searched string>
:novote
:make <game>
:leave
:joingame <game>
:passgame <game> <pass>
:listgame <level range>
:setprof <user> <variable> <value>
:listuserpriv <group>
:listidentities <user>
:setpass1 <newpass1>
:setpass2 <newpass2>
:setpass3 <newpass3>
:setuserpriv <group> <user> [priv]
:renameuser <newname>
:joinuser <otheruser> <userspass2>
:oprejoin
:mkick NULL <user1> <user2> <user3>...<userX>

link to WoLF`GRoK[vL]'s NBBot help page

[ NBBot custom command help ]

at first look, this line may look illegible...

&5&@Operators&"ban &/ban %3

ok, first off, there is *FOUR* ampersands to a custom command, (& - ampersand), the first one is for the 'type number', example:

&5 - TALK, so, the command is only triggered when someone TALKS out loud.

the second & is for the 'user name match'. example:

&5&Nick - when Nick TALKS, the command will be triggered

the third & is for the 'text match'. if the 'text match' is said, or matched, the action will be triggered.

&5&Nick&"kick - when Nick TALKS, and says something BEGINNING with kick, (the " at the beginning means Nick must say kick at the beginning of whatever he says) the command will be triggered.

the forth and last & is for the 'action'.

&5&Nick&"kick &/kick %3 - when Nick TALKS, and says something BEGINNING with kick, the bot will KICK whoever is mentioned after the word kick , %3 signifies the text match after what is matched for, so if i say: kick BLAH, the bot will kick BLAH.

no so difficult. try to see if you understand the next line:

&4&#9870000&"designateme"&/designate %1

this means that when #9870000 (my account number) WHISPERS (&4) the bot designateme, the bot will designate %1, %1 signifies the person who is accessing the command, or who the bot is speaking to. if you were to say designateme now, the bot will not respond because it will only respond when ONLY designateme is said, but if it would say:

&4&#9870000&"designateme&/designate %1 - then when you say, designateme blah, it will designate you because i omitted the ".

ok, now to get more advanced..

&5&@Operators&"ban &+/ban %3 - @Operators means  that any user on the Operators Group on the .usr can access the command.

&5&@Operators&"ban &+%3 was banned by %1. - when you type 'ban <user>', the bot will not only ban the user, but it will also say who was banned, and by whom. for example: ban Guest, the bot will say; Guest was banned by Nick. (whereas nick is my nickname on battle.net).

ok, now to get real advanced...

&5&@Operators=100&"reload"&+/w %1 config reloaded - this means that when someone in the Group Operators with a priv (privilege) of 100 can access the bot

&5&@Operators=100&"reload"&+:reload - if you're an operator with priv 100, and say 'reload' to the bot, the bot will :reload it's database, users, and .cfg. so if you want to edit something on the cfg while the bot is online, save the cfg, and make your bot :reload to refresh the .cfg to read the commands/whatever you added to it.

now, to make commands that no one "accesses".

&7&&"the void"&/join Nick. - this means when the bot enters CHANNEL (&7) the void, it will join channel Nick.

now you have a picture of how to write custom commands, now i will explain how to make config sections. config sections are enclosed in brackets, [example]. for a config section to be enable you must enable it. to enable a config section you have to make your bot say :config <config'sNAMEwithoutTHEbrackets's>.

note: nbbot reads commands starting from the top, ending with the bottom, for example:

&5&"NicK"&"say it&:nothing - when i type say it, the bot won't do anything.

&5&"NicK"&"say &%3 - when i type say <and anything after say except 'it', the bot will talk>

so if these two lines were reversed, and i were to say: say it, the bot WILL say: it.

 

there, now you should be able to start writing your own custom commands. for more help, go here.

 

-- in relation to battle.net focusing on ascii related bots. --

-- page by: $eveN aka Maledicti0n --