journalpersonalhelpmusicdownloads
sanctimonious' ultimate
DISASTER site
download

FurBot Tutorial
By Ryhn
(Published with permission)



MAIN WINDOW

1) Menu Bar: This is general how you navigate between the different sections of FurBot. Load and save bots from the "File"-menu, or program bots in the "Bot"-menu.

2) Drop-down Menu: When a menu is pressed, normally there is a drop-down menu that appears in which you need to make a further selection. It's all about organization and navigation.

3) Send to Furcadia: Entering text into the textbox and then pressing "Send"-button or "Enter"-key, will result in your bot saying what you have typed. Typing "/johny Hey man!" will result in your bot whispering "Hey man!" to Johny on Furcadia.

4) Check Selections: When clicked on, these selections can either be checked, or unchecked. When checked, they are considered activated, and when unchecked, they are considered deactivated. In this case for example, when "Execute actions" is unchecked, FurBot will no longer perform any actions you have programmed it to do, until the selection is re-checked.

5) Connect to: This is how you actually send your bot on it's way to Furcadia. Clicking the Connect button sends your bot packing to the version of Furcadia selected in the box to the left of the "Connect" -button. The default is "Furcadia (W3)", which will connect your bot directly to Furcadia. Selecting KitProxy, will connect your bot to a proxy server, which will then connect you to Furcadia.

6) Current bot: The name of the current bot you are working on, simply enough. To change your current bot, select "Open bot..." from the "File"-menu.

7) "Edit"-button: Press this button to enter the edit window. From here, you can modify the characteristics of your current bot, or create a new bot.


EDIT WINDOW

1) Name Textbox: The name of the bot you want to create or edit.

2) Password Textbox: The password of the bot you want to create.

3) Description Textbox: The description your bot will have on Furcadia.

4) The position you will see your bot in when you click on the "Refresh picture"-button.

5) The gender of your bot.

6) The species of your bot.

7) The stripe pattern of your bot. This doesn't make a lick of difference on Furcadia

8) The part of your bot currently selected.

9) The color of the currently selected part of your bot.

10) "Load from .INI...": Loads all information about a previously created character from an .ini file and inserts that information into the textboxes for you.

11) Save to .INI...: Saves the character information about your bot in the form of an .ini file, or overwrites an existing .ini file

12) Save: Saves your bot, so that you can begin to program it in FurBot. If you are creating an entirely new character, you should choose to allow FurBot to try and register your bot, otherwise your character will not be able to connect to Furcadia. If you are sure your character name is already registered with Furcadia, and the password is correct, you will not need to register again.


BOT ACTION WINDOW

1) Action list: This is a list of all the bot actions you have programed, and in what order your bot will perform them, starting from the top, and going down to the bottom of the list.

2) Name: The name of your action. This name is what will appear in the Action list.

3) Case sensitive: Checking this box will tell FurBot to treat capital letters differently than small letters. For example, "STOP" would be an entirely different word than "stop".

4) Stop action search: Checking this box tells FurBot to perform this action if it is triggered, and once it finishes, stop going down the action list to see if more actions should be triggered as well.

5) IF section: This is the section of your action window in which you select what it is that triggers this particular action. It is in three parts:

5A) Name of triggering furre: This textbox is used for defining who can trigger this action. Wildcards can be used here if you don't want to be all that specific. If you are unsure how to use wildcards, or what they are, please read the section on this helpfile about wildcards.

5B) How the furre must trigger the action: This menu is used to select how you want the triggering furre to interact with your bot. "Whispers me" means the trigger must be sent as a whisper, "Says" means that the furre must say the trigger out loud around your bot, "Does" means that someone must emote the trigger around your bot, and "Anything" means that the trigger can be sent as any of the three methods mentioned previously.

5C) Trigger: This textbox is where you put the word or phrase that your bot must receive before it does this particular action. Wildcards can be used here as well.

6) AND section: This section is used for setting conditions after your action is triggered that must be satisfied before your bot will do anything further. Think of them as a row of streetlights that have to be all green before a car can get to the other side. You can have multiple conditions per trigger.

"Stop action search" means once someone satisfies the "if" statement, and all "and" statements, FurBot will not check any more of your actions in your "series box" to see if any more of your actions are satisifed.

7) THEN section: Once an action is triggered, and all it's conditions are met, you'll want your bot to actually do something, right? We'll call everything you tell your bot to do a function. Functions can be anything from doing mathematical calculations, to whispering people on Furcadia, to messing with information stored in a database. You can have multiple functions per trigger as well.

8) A/I: The Activate / Inactivate (or deactivate if you figure that's an odd word) buttons are used for disabling certain conditions or functions if you so wish. Of course, they are also used for re-enabling disabled functions and conditions. This is mostly used for testing purposes, or to shut off something that is being abused or not working right.

9) Update: Clicking this button is like saving your action. The whole action will be reduced to a name in the action list, so make sure you named your action something meaningful.

All other windows you'll come across will be similar to the action window set up, with slight variations that I'm sure most people can work out at this point.


WILDCARDS

Wildcards are special characters used in FurBot when you can't be specific about a word or phrase. The two wildcards used in FurBot are * and ? characters. The best way to explain is by example, so here goes.

? means any single character or number
* means any amount of characters or numbers

Keeping this in mind, if I wanted to make an action that would trigger when anyone whispered the bot "hello" I would set up the if statement to look something like this:

So, ???? would mean any 4 letter word. "*monkey*" would mean any phrase with the word monkey in it.

You get the idea, you may use any combination of wildcards, characters, and numbers, to build a phrase.


ADDITIONAL CONDITIONAL CLAUSES

After you have your if statement worked out, it's time to add "and" conditions on that if statement. If any of these "and" conditions are not satisfied, the action will not be carried out. They are as follows.

# is on the list in file #
meaning: and # is a record anywhere in the file #
example: [player] is on the list in file userlist.txt
note: click here to read about special words
Note: click here to read more about record files

log # in record # in file # is #
example: log 1 in record [player] in file whisperlist.txt is ignored
note: click here to read about special words
Note: click here to read more about record files

random roll is # in range of #
example: roll is 1 in a range of 6
meaning: in this case, furbot can "roll" anything between 0-6, and if furbot "rolls" a 1, then the condition is satisfied.

variable # is # (numeric comparison)
note: click here for more information on variables
example: variable is 6
meaning: if you have a number saved as a variable called , and that number is 6, this condition is satisfied.


VARIABLES

Variables are probably the single most important part of FurBot next to the connect button. It is best to think of variables as empty boxes with a label stamped onto the top. FurBot is able to store numerical, or text information inside these empty boxes, and whenever you need to use what is inside the box, you just tell FurBot to open the box with a certain label on it.

All analogies aside, variables are all written in this fashion: [(variable name)]

Currently, FurBot will allow you to create and use 200 variables.

For example, let's say you made a function that stored the word "Hello" to variable [greeting], then you made another function for your bot to say "[greeting]". Your bot would end up saying "Hello".

Variables are all case insensitive, so [greeting] is the same variable as [GREETING]


SPECIAL VARIABLES

Special variables are used almost exactly like variables you create yourself, except that you cannot store your own information to them. When you use one of these special variables, it will always contain a very specific kind of information. Don't worry, it will make more sense when you take a look at a list of special variables and what information each special variable has.

There is plenty of special variables, here's a short list of them.

[player]
When anywhere in your commands occurs word [player] it will be replaced with the player's name who caused the action.

[word1] [word2] [word3] [word4]
When anywhere in your commands occurs word [word1] it will be replaced with first word of the player's line. Ie. "sanctimonious: Greetings, everyone" produces [word1] = Greetings, [word2] = everyone

[message]
When anywhere in your commands occurs word [message] it will be replaced with the player's line.

[startingword2] [startingword3] [startingword4] [startingword5] [startingword6] [startingword7]
When anywhere in your commands occurs word [startingword2] it will be replaced with the player's line starting from the word two. Ie. "sanctimonious: Hello World, I'm very happy today." produces [startingword2] = World, I'm very happy today. [startingword3] = I'm very happy today.

[startingchar2]
Cuts of the first letter of the whisper/line, ie "Hello" -> "ello"

[date]
Returns current system date.

[time]
Returns current system time.

[hour]
Returns current system hour.

[minute]
Returns current system minute.

[logsinfile:file]
Returns the number of logs recorded to file. Ie. "There are currently [logsinfile:c:\furcadia\log.txt] logs recorded."

[recsinfile:file]
Returns the number of records in file. This differs from [logsinfile] because records are number of players registered, logs number of logs written to the players.

[randomlog:file]
Returns randomly selected quote from file. Ie. "Today's quote is: '[randomlog:c:\furcadia\quotes.txt]'"

[logstatus]
Returns results of latest action with logs. Used mostly in Search User and Register User actions.

[appdir]
Returns the directory where FurBot is running. Can be used for example like this: Today's quote is: '[randomlog:[appdir]quotes.txt]'

[desc]
Returns the description of the furre the bot has last looked at.

[descname]
Returns the name of the furre the bot has last looked at.

[color]
Returns the color code of the furre the bot has last looked at.

[random:number]
Returns randomly chosen number from 0-number. Allows also the number to be less than zero.

[add:number1:number2]
Returns the result of an arithmetical operation number1 + number2, ie. "There are currently [add:[MyOwnVariable1]:[MyOwnVariable2]] Furres online."

[sub:number1:number2]
Returns the result of an arithmetical operation number1 - number2, ie. "There are currently [sub:30:20] Furres online."

[mul:number1:number2]
Returns the result of an arithmetical operation number1 * number2, ie. "There are currently [mul:[MyOwnVariable1]:20] Furres online."

[div:number1:number2]
Returns the result of an arithmetical operation number1 / number2, ie. "There are currently [div:530:[MyOwnVariable2]] Furres online."

[pX] [pY]
Returns the coordinates of a player whose color code maches to the Map->Follow colors OR the coordinates of a player who activated the trigger.

[bX] [bY]
Returns the coordinates of the bot.

[trigger]
Returns the number of lastest activated trigger. [c1] [c2] [c3] [c4] [c5] [c6] [c7] [c8] [c9] [c10] [c11] [c12] [c13] [c14]
Returns the character x of the latest whisper / line, ie. "sanctimonious: hello" produces [c1]=h [c2]=e etc.


DATABASES

Databases that FurBot uses are saved as .mdb files, which means you can view and edit your FurBot databases with Microsoft Access. Databases in essence, are really just a collection of tables that you can store a bunch of information to. They are especially helpful when you want your bot to have lists of furres, and also have information stored about those furres.

You create databases with the "open database # to ID # (1-4)" function. The first # refers to the database name, "Monkeybot.mdb" or something will do. The second # is like stamping that database with a bright shiney red tag with a number on it, from 1-4. So if I open database "monkeybot.mdb" to ID 1 (1-4) then whenever I wanted to use "monkeybot.mdb" in FurBot later on, I would just tell it to use database number 1. If the database you try to create already exists, it won't re-create the database, simply put the number tag on that database.

Now, there's a dozen and one terms about tables used in FurBot that you've probably never heard before, and learning these terms will probably be the hardest thing you'll have to do before you master databases. (And you thought we'd make it easy by calling things columns and rows ;p ). The best way for me to explain in this case, is to draw you a picture.

Make sense? The ID column will always be column one by designating ID's you can specify a row, to add a new row, use the function add record where # value is # and fill in the blanks to say add record where ID value is (whatever you want). Entry's are FurBot's word for columns. And where they meet, is a value.

A lot of people will use databases in the same way. ID values will all be different player names, Entries will all be stuff you'll want to know about that player, like their status. So it would look something like this


LOGFILES

Logfiles are the baby brother of databases, and just like databases, they are used for storing information. Logfiles are simply .txt files that are organized in such a way that means something to FurBot. Rumor has it that the bigger a logfile gets, the slower it'll get, and the more problems you'll run into. To understand logfiles, you must understand two things.

Records: Records are like folders for your office. If you're working in some law firm and they want the Simpson account, you flip through all the folders on your desk until you find the one named "Simpson Account".

Logs: Logs are like the different pieces of information inside the folders, a word, a phrase, or a number maybe.

Keeping this in mind, this is how a logfile must look like

"2" how many records in logfile
"Sanctimonious" record name
"3" how many logs in record
"fox" log 1
"sick" log 2
"banned" log 3
"Ryhn" record name
"2" how many logs in record
"equine" log 1
"well" log 2

Everything typed in italic is just for your benefit and aren't included in a real logfile, however, the quotation marks around everything are there for a reason, and must be included in any FurBot logfile, and can only be used to begin and end each line. To help you out, FurBot includes a database editor found in the File menu (Bet you thought is was a database editor, didn't you? ;p ). Despite it's name, it actually is a logfile editor.

There is such a thing as Random Logs, but I'll be damned if I ever used them, so here's what the creator of the program had to say about them.


RANDOM LOG

Random log is not a log at all, it is meant that you will write it by yourself. Here is a short example of it (a longer example file fortune.txt is located to the FurBot -directory)

"3"
"one"
"two"
"three"

As you see, the first line tells how many "records" there is. Please note, that every line has to start and end with quotation mark (") and it (quotation mark) can not be used elsewhere. You can write and modify this kind of file for example in your text editor or Notepad.


PROCEDURES

Procedures are actually a function, that will initiate a trigger. But because they are kind of unique in how you go about setting up this function to work, I thought I'd honor it with it's own little section in this help file.

Have you ever read an instruction manual where you got to step 8, and it told you to repeat steps 4-7 until something happened, like if you were trying to find out how to get drunk, step 8 would say, "if you are not drunk yet, repeat steps 4-7". In FurBot, you can accomplish this kind of logic with the use of procedures. You can bunch steps 4-7 as a collection of functions in a trigger, and step 8, the end point, the thing you keep trying to accomplish, would be a condition of that trigger.

If you're not terribly confused, here is an example of a trigger that would make your bot count from 1-10. Obviously a procedure's use can be put to more powerful uses, this is just an example. (assume you made an action, like if someone whispered your bot count then you have one function setting variable [number] to 0, and one more function executing procedure TenCount)

You'll have to trust me that the "Store.." function there will add 1 to whatever number is in the variable [number] because I haven't talked about that yet. Next your bot will say the new number. And finaly it will repeat the whole trigger. Checking to see if it already said 10 and going down from there.


Back to FurBot Online





Navigation
sanctimonious' ultimate disaster site furc.sanct.net