Guest
Feb 5, 2012, 9:22 pm UTCHome arrow Getting Started arrow Main Menus
header image
Main Menus
Written by Dream Dancer   
Dec 04, 2007 at 08:03 AM

Furbot has a bunch of menu items to assist you in getting the most from your bot, some of them you may never use, others you will use on a regular basis, like when you want to edit the script which is running in the bot to change the way the bot operates.

File:

Under the File Menu is a few things which everyone should be familiar with, like Load, Save, Save As, and New, along with Exit, and the ever available Configuration, however, there's an Export Bot menu item. This permits you to export the bot to the old BotSys10 file format, in addition to exporting it as plain text or HTML formatted text. (Note, again, someone remind me to remove this notice that it's not working when it's working.) The plain text and HTML versions will not include some details of the botscript, mostly bot specific configuration settings. Note that exporting to BotSys10 may cause problems if it includes commands from BotSys12, they should not cause an issue, but the warning needs to be said.

File - Database:

There's three selections under the database selection to aid you in working with Furbot database's, Export, Import, & Describe. The Describe is simple to explain, it brings up an Open Dialog where you select a database, and the bot will display, in the receive buffer, the tables and fields of each table in there. The Export prompts you for the database that you want to export, and creates a SQL file that will contain the contents of that database. The results in the file will be sorted by ID, so this, along with the Import, is a handy means to repair a database which may be data corrupt but readable. It will not prompt you about the resulting filename, the filename will be the same as the database name with the .SQL extension.

The structure of that SQL file is very limited, because Furbot uses a very simple database system, everything is text. It only supports two commands, CREATE TABLE and INSERT INTO, other commands will not be processed. That's not to say you can't create fields of other types, just the behavior of the bot will be peculiar if you do so. So, the Import function will limit the commands to the two listed above, does very little other error checking, and creates you a new database. The function invokes two Open Dialogs, the first is to select the SQL file from which you want to create the database from, the second is the name of the database. If you select an existing database, be warned, the function deletes everything from the file before importing the data. It also should be noted that while it's perfectly safe to use these functions while the bot is connected and using database's, it does use database connection 0, so if you're using that as well, (to achieve 5 database connections), these functions will just royally mess up your day.


It should be obvious what the Configuration menu item is, and of course, what the Exit should do. Do note that by design, the [X] in the corner of the program will not close it if you are connected, it instead removes itself from the Task Bar and exists just as a Notification Icon in the clock. Double clicking on the Icon will restore / hide the bot, and there's a right click menu on the Icon, just somewhat not complete at this time. (Some one remind me when I fix that to edit this.)

Edit:

Clear Window blows the receive buffer clear, the two log elements will do peculiar things. The second one, Load Logfile, lets you browse for a file, and then loads it directly into the Back Buffer. So, you can open anything. The other one is only valid when you're using the program to keep logfiles of the receive window. While the menu item is never disabled, if it does nothing, that merely means that there's not a valid logfile for the function to work with.

Edit - Overrides:

The Overrides menu is for elements which you can set in the Advanced Settings for the Bot, (covered later), the menu items there initially indicate the loaded status of such items, modifying the elements there will not affect the main settings in the bot's configuration. Currently, there's 4:

  1. Add Time Stamps - Puts the current time in front of every element that's presented in the receive buffer, and if the client's present and the item would be displayed in the client, on most of them, will put a time stamp there as well.
  2. But Not In Client - Does not put time stamps into the elements which are displayed in the client, note that this does nothing if Add Time Stamps is not enabled.
  3. Display Local Time - Every minute this will annoy you with a time message in the client. And in the receive buffer as well. Pretty icon goes with it.
  4. Do Lag Checks - Does a ping of the server every minute, eats the pong.

Debug Execute is the dialog which shows you all the variables present in the bot, it's handy for getting to know the internal variable of the bot in addition to seeing what variables you're using as well as modifying your variables, no, sorry, can't tamper with internal variables, mine, hands off, go away. It also provides a trigger testing system, which is flaky but only if you understand that triggers happen when certain events cause them to happen, for example, Connection Opens is easy, does not depend on anything from the server to trigger, however, Someone Appears may depend on variables for that event to be filled in, and it's not quite possible to single step the bot through events like that. Procedures can be, in theory, executed at any time. The exceptions would be when you have a procedure which is dependant on other things to be active in the bot at the time, like open databases, or access to the server. The Execute Actions at this time does not work, need to construct a safe and suitable injection point for the commands which will not disrupt normal traffic flow or cause an error to occur.

There is a difference between pressing Enter and using the Set (and Fire) buttons on the Modify and Execute, using the buttons does not clear the contents of the text box while pressing Enter will. Escape will also clear the contents of the text box.

At the top of each variable stack is a something new, the Add Watch, this will take the highlighted variable from the stack it's over and add it to a dialog called Variable Watch, which can also be accessed by the main menu element of that name. The variable watch is a handy means of debugging a script to figure out why it's misbehaving because there is no means at this time to single step the actions of the bot, it's a live run debug. The inclusion of the Variable Watch does involve a performance hit however, the program needs to check if any variable which can be watched exists on the watch list, and if so, send the updated variable and contents to the dialog. The dialog does check if it's visible, and if not, will exit at that point, but still something to be considered, when you're done watching variables, remove them. The variables can be removed either with the button when the selected variable is highlighted, or by double clicking the sucker. And there's the Remove All button as well.

The Server Raw Dump will need to be explained in more detail elsewhere, but the short answer at this point is it produces 6 files with the extension of .XDB that contain loads of information to aid you in debugging a bot. Note that this is only valid when the bot is connected to the server, and when active, will induce a performance hit as well.

Bot:

The first element under the Bot menu is the Bot Settings, this brings up a dialog for managing elements specific to the current bot, each bot can be configured differently depending on the use of the bot. There's just way more there than can be covered under a quick overview of the menus, so, move along now.

The next 4 items are for editing the various sections of the botscript, Actions is generally what I call "verbage", that's things which are "said" in the client. The exceptions are verbage in which we want a trigger to happen, like Banish Replies and Emits. The Timers are for periodic based events, like executing something every X number of seconds, or when the time is HH:MM. Triggers is for events from the server which we generally want to preform specific actions for, like when the bot enters a dream, to do certain housekeeping for usage in a target dream, or emitting a message when someone appears. The Who Detection is specifically for handling a targeted trigger of when the bot executes a Who command.

Then we have 4 elements for switching the response of the botscript on or off for those items. If you check or uncheck any of these menu items, it's considered a change to the botscript, the status of these menu items are tied to the script.

Proxy:

This contains one historical item, Switch to stand alone mode. It disconnects the server socket's live state from the client socket's live state, closing the client at that point will not disconnect the server connection. That is, of course, if you don't have Keep Connection checked in the Bot Settings.

Hidden Menu:

There's a hidden menu element in there, it only becomes visible when the bot does a check with this site and finds something new is available. Two items will be visible when it's shown, one to read the news burp, the other to pass on a bug fix.

Help:

Oh everyone needs some help! But until I get a working help file up for the bot, alas, there is none. Of the other elements there is the option to visit the website, (does a ShellExecute Open on the URL), to fetch the news burp from the site, and the every present About menu item.

And that should conclude the not so quick tour of the main menus of the bot. Now to figure out what to document next.

Last Updated ( Dec 26, 2007 at 09:22 AM )
<Previous   Next>
header image