home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 15
/
CD_ASCQ_15_070894.iso
/
vrac
/
obv2_210.zip
/
OBV210-G.ZIP
/
OBV.DOC
Wrap
Text File
|
1993-05-04
|
197KB
|
4,280 lines
┌───────────────────────────────────────────────────────────┐
│ │
│ │
│ Oblivion/2 Bulletin Board System │
│ Version 2.10 │
│ │
│ Copyright (C) 1991-1993 Darkflame Enterprises. │
│ All rights reserved. No part of this documentation may │
│ be altered without the consent of Darkflame Enterprises. │
│ │
│ Written by: Eric Katz (Referred to as Darkened Enmity) │
│ : Rony Daher (Referred to as Lord Tracer) │
│ Documentation: Rony Daher │
│ │
│ │
│ │
└───────────────────────────────────────────────────────────┘
TABLE OF CONTENTS
─────────────────
LEGAL INFORMATION 1
GENERAL OVERVIEW 1.1
REGISTRATION 1.2
ACS SYSTEM 2
CONFIGURATION PROGRAM 3
MENUCODE/STATCODE/MAKEPROM/MAKEHELP 4
DATA AREA CONFIGURATION 5
CONFERENCE EDITOR 6
SYSOP ONLINE FUNCTIONS 7
INFOFORMS 8
MAKING REPEAT ANSIS 9
MAKING STANDARD ANSIS 10
MCI CODES / SYSOP CONFIGURABLE TEXTFILES 11
CONFIGURABLE CHAT 12
MENU EDITOR 13
MESSAGE / FILE BASE SETUP 14
UPLOAD CHECKER 15
CONFIGURABLE ARCHIVERS 16
SECTION 1: LEGAL INFORMATION
────────────────────────────
Darkflame Enterprises grants to the Purchaser and
Purchaser accepts a nontransferable and non-exclusive license
to use, on a single computer, the Software Products and
accompanying materials provided to Purchaser by Darkflame
Enterprises. Purchaser is hereby licensed only to read the
program from its medium into the memory of a single
computer solely for the purpose of executing the program.
Darkflame Enterprises shall have the right to terminate this
license if purchaser violates any of its provisions.
Purchaser agrees that the Software Products and accompanying
materials are the property of Darkflame Enterprises and that
Darkflame Enterprises shall maintain title to and ownership
of the Software Products at all times. Purchaser agrees to
make no more than one (1) additional working copy and one (1)
backup copy of the Software Products for personal use only.
Except as indicated above, the Software Products may not, in
whole or part, be copied, reproduced, translated, or
distributed to other parties.
Darkflame Enterprises makes no warranties of any kind,
expressed or implied, with respect to the quality,
performance, accuracy, or fitness of the Software Products
for any particular purpose. Darkflame Enterprises assumes no
responsibility for any decisions made or actions taken on the
part of the Purchaser because of the use of the Software
Products. In no event shall Darkflame Enterprises, or any of
its representatives, be liable for any loss of profit or any
other damages, including but not limited to special,
incidental, consequential or other damages, arising
out of the use or inability to use this product -even if
Darkflame Enterprises or an authorized agent of such has been
advised of the possibility of such damages -or for any claim
by any other party.
SECTION 1.1: GENERAL OVERVIEW
─────────────────────────────
Oblivion/2 BBS was designed with two things in mind: The
SysOp, and the user. This bulletin board program attempts to
give the best of both worlds: Power for the SysOp, and ease
of use for the user. With the unique menu editor, and
configurable ACS system, the power is present. The
possibility for change gives the SysOp his power, while also
giving the user an easy interface for operations.
List of major features:
o Powerful menu editor. Allows for configuring all aspects
of the BBS.
o Configurable String editor. No more internal strings.
Add a personal touch to your BBS!
o Optimized for increased speed. Runs fast on any machine!
o Support for multiple menu sets.
o Support for multiple stat screen sets.
o Echomail/Netmail Compatible.
o Configurable Data Area System. Create your own
BBS/VMB/NUA listing, and configure them any way you
wish. Similar to an online database, but completely
configurable.
o Support for SR/DOOR.SYS/DORINFO1.DEF door file formats.
o Support for up to 255 separated message/file
conferences.
o Support for multiple prompts. User selectable.
o Integrated upload checking system! Checks all uploaded
files for CRC, viruses, and runs age tests. Also
includes ability for additional SysOp specified
maintainence to uploaded files!
o Support for multiple, SysOp configurable archivers!
Anything on the BBS can be packed and unpacked in your
favorite archive type. Also includes automatic archive
signature recognition. The BBS knows what type of
archiver a file was packed in w/o looking at its
extension!
o Advanced user editor with integrated searching
functions!
o Parameter editor for easy control and maintaince of user
levels!
SECTION 1.2: REGISTRATION
─────────────────────────
Registration of Oblivion/2 is simple. All of our
registrations are handled through our HQ support system. This
system, Elements of Evil, can be reached at 216-273-1527.
The cost of Oblivion/2 is $50.00. There is no areacode
restriction, or other restrictions for that matter.
To clear up certain things about registration, keep
these things in mind:
o A completed ORDER.FRM MUST be sent with your order.
o Personal checks are NOT accepted. If you send one, your
order will be returned. Please send a cashier check or a
money order.
o You cannot transfer your registration to a friend. All
registrations are handled with us.
o Please only send your registration after you've been
validated on Elements of Evil, and after a member of the
team has given you the OK.
Registration is handled through a serial number system.
When we validate your registration, you will receive a ZIP
containing a textfile named SERIAL.NUM. Inside this textfile,
you'll find a BBS Name, BBS SysOp, and a 20-digit serial
number. Enter that information in your Obv/2 config EXACTLY
as they appear in the SERIAL.NUM. If the information is not
correct, the BBS will not register.
Should you lose your SERIAL.NUM, please contact any
member of the Oblivion/2 staff, and a new one will be made
available for you.
If you wish to get in contact with the Oblivion/2 team,
please mail us on Elements of Evil, or at this address:
Post Office Box 43364
Cleveland, Ohio 44143-0364
SECTION 2: ACS SYSTEM
─────────────────────
ACS, or Access Conditioning System, has become a reality
for many BBS programs being produced today. With ACS you can
allow and restrict user's access to a certain area to the
board based not only on level but on Baud Rate, Time Left,
Number of File Points and much more. In essence, ACS
offers the SysOp "Total Control" of his system.
Before any SysOp can use the ACS System, it must be known
it can get very complicated (as you will see). It can become
a programming language in itself. So if your access doesn't
go as planned the first time, continue to experiment until
you find the results you are looking for.
The following is a list of valid ACS Commands:
Flag Description
─────────────────────────────────────────────────────────────
- False
+ True
SXXXX True if Level Greater or equal to X.
VX True if user is on Node X.
DXXXX True if File Level Greater or equal to
XXXX.
EX True if user called more than X times
today.
BXXX True if BPS Rate (w/o 00's) is Greater
or equal to XXX. (ie:3, 12, 24, 48,
96, 144, 168, 192, 384)
CXXX True if user hasn't called in XXX days
FX True if X flag is set. (A-Z)
PXX True if user has XX file points.
YXXX True if it is at least XXX minutes
past midnight.
()'s Tells Obv/2 to Process Codes in
parenthesis before any other codes.
| Used to "Or" what is on the left
side of the | with what is on the
right side of the |.
~ Makes a Code False that would
otherwise be true and vice versa.
\ True if Fail Flag is True.
= True if user is local.
[ True only when system is run
multinode.
; True if input is not broken using
space or ESC.
' Used to prompt for SysOp password.
KX True if absolute file area # is equal
to value of X.
LX True if absolute message area # is
equal to value of X.
MX True if MSG conference is equal
to the value of X.
NX True of FILE conference is equal
to the value of X.
PXXXX True if # of file points is greater
than the value of XXXX.
TXXXX True if time left is greater than
the value of X.
UXXXX True if the user # is equal to X.
AXX True of age is greater than XX.
GX True if user is male (X must be
0), or user is female (X must be 1)
The Following are a few examples of the ACS System:
~U2 - Creates a base that can be accessed
by everyone EXCEPT User #2.
S20D20 - Creates a base that anyone can
access as long as their main/file
levels are greater/equal to 20.
Y120 - Creates a Base that will open after
2:00 am and close at 11:59 pm.
y60~y120 - Creates a base that will be open
from 1am to 2am.
=S255 - Creates a base that can only be
accessed via the local terminal, AND
the user online must have a security
level of 255.
P100|S50 - Creates an option that can be
accessed only
if the user has 100 or more file
points, OR if the user has a
security level of 50 or greater.
T90|FABC - Creates an option that can only be
used if the user has 90+ minutes of
time, OR if he has flags A,B,C set.
B144|FA - Creates an option that can be
accessed only by someone who has a
14.4k or better modem, OR if the
user has flag A set.
A18G0 - True if the user is male, and 18 or
over.
A18G1 - True if the user is female, and is
18 or over.
(s20d20~U2)|(U2Y60~Y120) - Creates a base that will allow
anyone except user #2 who has both a
Main Level and Transfer Level
Greater than or equal to 20 OR Allow
User #2 to access this base from 1am
to 2am.
SECTION 3: CONFIGURATION PROGRAM
────────────────────────────────
In version 2.0 and later, the configuration program is
now an active part of the BBS. No longer do you have to exit
the BBS, and run a large, clunky config, but you can do all
of this online.
The configuration program has a number of global
commands. To Clear a field, use the CTRL-Y command, to
advance to the next option, use either your arrow keys, or
your ENTER key. To enter into insert mode, or to exit
from it, use the CTRL-V option. To end configuration from a
certain menu, use CTRL-Z (Unless otherwise told).
Each Section of the configuration program covers a
different aspect of the BBS. Use your arrow keys to navigate
throughout the config.
In the next part of this section, certain commands in
the configuration program will be explained in detail.
Commands that are obvious, will be skipped.
System Information:
Multinode Operation - If you plan to run your system with
multiple nodes, select yes for this
option.
Node Number - This is the node number for the
current node. Leave this at 1 if you
do not plan on running more than
one node.
Mins to Time Out - This value (in minutes) will tell the
BBS when to hang up if there has been
no keypresses from the remote side.
Days to save log - This number (in days) tells the BBS
how long to save the system log. The
log will automatically be purged after
that number of days. This is primarily
a security feature.
Lines of Scrollback - This number tells the BBS how many
lines of text to save in the
scrollback buffer. This buffer can be
accessed via the F4 SysOp command, and
is used to view any text/ansi that
scrolled off the screen. The higher
you make this number, the more memory
you'll need. If you make the number
too high, your system will crash with
an ERROR 203. Should this happen,
lower this number!
Page Times - This number tells the BBS how many
times to allow the user to page the
SysOp. If he pages more than this
amount of times, a textfile,
ENOUGH.ANS, will be printed.
QWKName - (Max 8 letters, no extension) This is
the filename
that your BBS will generate when a
user creates a QWK packet for
download. ie: OBV2 would make a packet
called OBV2.QWK.
BIOS Writes - If this option is Yes, then screen
writes will be handled through the
BIOS. This is very slow, but may
sometimes be needed if you have
multitasking problems. For normal
operations, change this to No.
Use MAINTAIN.BAT - Read the section on the upload checker
for information on this batch file.
Starting Menu - After the BBS finishes with the
MATRIX.MNU file (your matrix), which
menu should it then go to. This option
tells Obv/2. Do not include a .MNU
extension; That is assumed.
Use Status Bar - If you wish to use the status bar,
turn this option on. If not, keep it
off. The status bar is located on line
25 of your local screen. It gives
important user info on the current
user. There are three different parts
to the bar. Toggle all of these by
using ALT-B. You can also turn off
your status bar at anytime by using
ALT-B.
System Information 2
Data Library Ansis - Tells the BBS if the ansis for data
areas are in the current status screen
library, or if they're in the textfile
directory. Yes = Ansis in status
library, and No = Ansis are in
textfile directory. Note: If you enter
yes for this field, and the ansis are
not there, the BBS will then look in
the textfile directory.
Scan all areas - When this option is set to yes, then
the BBS will check all file areas for
duplicates when globally uploading
files. This method is slower, but
there's no possibility of having the
same file in 2 directories. If the
option is set to no, then the current
area will only be scanned for
duplicates.
Use upload checker - If you want your uploads CRC tested,
age checked, and virus scanned, turn
this option on. Read the section on
the upload checker for more
information on the upload checker.
SCAN Command - This is the commandline of the virus
scanner that the upload checker will
use. IE: SCAN /A /NOMEM /NOPAUSE for
SCAN.EXE from McAfee.
Comment File - This is the filename of the comment
that the upload checker will add to
your checked files. Make sure that the
file is in your textfile. If you
don't want comments added, leave it
blank.
File to add - This is the filename of the file that
the BBS will add to checked files.
Again leave it blank if you don't want
a file added.
Age for files - If the newst file in an archive is
older than this date, then the file
will fail the upload checker.
Delete List - This filename (in your textfile
directory) contains files that the
upload checker will delete from
uploaded archives. Put one filename
per line.
Communications:
Manual Answer - When this command is set to yes,
Oblivion/2 monitors the carrier pin on
your serial card. When this pin
signals true (when the phone rings),
the BBS sends the answer string. This
method is quicker than waiting for the
"RING" message from the modem. It
doesn't work with all modems, so
experiment.
Initialization String- This string is sent to the modem after
every call, and when first loading up
the BBS. Use | as return, and ~, or
comma, for pauses. Use "+++" to put
the modem into command mode.
Hangup String - This string is sent to the modem when
you want it to hang up the phone. Use
the same symbols as above.
Send Carrier Str. - This string is sent when you want to
send carrier to another user. (ie:
User is in his term program, and you
want to switch form a voice call to a
data call. User receives carrier
(ATX1D), and you send carrier (ATA))
Receive Carrier Str. - Same as above, except this will
receive carrier. This is typically
ATX1D.
Lockout Password - This password is required for a user
to login when his baud rate is under
the minimum baud rate.
ACS Configuration:
Post Anonymous ACS - ACS required to post anonymously in
any base. (See the section on ACS for
codes)
SysOp ACS - ACS required to be a full SysOp. When
you have this ACS you'll be able to
access all SysOp commands. (Unless
otherwise changed by the menu editing)
Message SysOp ACS - ACS required to have access to the
message sponsor commands. (Again, this
can be overriden by menu editing)
File SysOp ACS - Same as above, except for file system.
Exec in MiniDOS ACS - ACS required to use the *COMMAND, or
&COMMAND commands in MiniDOS. *COMMAND
will execute COMMAND after performing
a DOS shell. Use this to run PKZIP
etc.. &COMMAND will execute command
w/o a DOS shell. Use this to run any
commands that are internal to
COMMAND.COM. (ie: DEL, ERASE, COPY)
//\\COMMAND ACS - //\\COMMAND is a quick way to execute
any command from anywhere. You must
have the specified ACS. To use
//\\COMMAND, type //\\ followed by the
corresponding menu command. For
example, the menu command for text
editor is *T. If you've got //\\
ACS, you'd type //\\*T. This would be
the same as executing the text editor
from the SysOp menu, but you can do it
from anywhere!
Post Mandatory ACS - ACS required to post a message in a
mandatory (NEWS) message base.
Mandatory message bases are
automatically newscanned upon logon to
the system. Use them to post news
bulletins. Be sure to purge them
periodically, as they will get
numerous.
Topten exempt ACS - ACS for users to be exempt from the
top ten listing.
Certified Mail ACS - ACS required for a user to send
certified mail. Cerified mail is a
type of Email that sends the sender a
notice when the receiver has read the
mail.
Filemail ACS - ACS required to attach files to email.
File Section Config:
Points per 10k - This is used to establish a file point
ratio. 10K would be worth how many
filepoints?
External Area Listing- If you have made an external file area
listing, using either the straight
ANSI method, or the repeat method, set
this option to Yes.
Repeat Method - If you made your area listing using
the Repeat Method select yes. (Read
the section on making external screens
for instruction on making repeat
method screens.)
Filepoint Commission - If this option is toggled to yes, a
commission system for filepoints will
be used. The commission system grants
the uploader a percentage credit (in
FP's), when someone downloads his
file. This encourages good uploads. If
nobody downloads the file, then the
uploader doesn't get credits.
Percentage Commission- Percent of the total filepoints to
give the uploader when someone
downloads his file. Example:
Points per 10K = 1
Percentage Commission = 100%
User downloads a 100K file, and the
uploader will get 10 points added on
to his account.
Times Point Back - When you rate a file, the uploader
will get that rating multiplied by
this number. (ie: if this was 2, and
you rated a file at 5 pts, the user
gets 10 pts added to his account)
Description form 1-8 - With these 8 lines, you can completely
customize
your file descriptions. You can add
such things as
Uploaded by: (See the MCI code
Size Compressed: section for the
Size Uncompressed: codes to these
Newest File: features)
Oldest File:
Any of these that you wanted to
include in all your descriptions will
be added to each upon upload. When
adding one of these extra features,
you'll want to add them starting at
description form 8, and working your
way up. (8,7,6 etc..) If you do not
want to add an extra feature into a
certain line, you must use |Dx
x equals a number from one to 8. This
tells the BBS which lines to use for
description, and which to use for
features. Look at this example:
Description Form 1: |DE
Description Form 2: |D1
Description Form 3: |D2
Description Form 4: |D3
Description Form 5: |D4
Description Form 6: |D5
Description Form 7: Size Uncompr: |TC
Description Form 8: Uploaded by: |UL
As you can see, Lines 1-6 will be used
for any description that the user
gives, and lines 7-8 will be used to
tell the user how much space the file
takes up after its been UNZIPPED, and
the uploader name. Make sure to use
|DE as the FIRST line. |Dx are used
for EXTENDED descriptions only.
Lines of extended - How many lines of extended description
description are you using? In the above example,
this field will be 5.
Percent Time back - How much time back (in %) should the
user get back after his upload.
Autovalidate files - If yes, files will automatically be
validated after upload. Otherwise,
they will be marked as NEW, and
must be manually validated.
Min K for upload - (in Kbytes) When your HD his this
amount of space, or less, uploads will
not be accepted.
Use Average CPS - If this option is set to true, time
estimates for transfers will be made
on the average CPS rate of that user.
If it's set to no, time estimates will
be made based upon the connect rate.
Email Config:
Allow Filemail - When this option is set to yes, users
will be allowed to send files to each
other through Email.
Days to keep filemail- Filemail will be kept for this amount
of days. It will then be auto-purged.
Message Section:
External Base List - Use an external base listing in the
message section? (See section on
making an external listings in these
docs)
Repeat Method - If you made your base listing using
the repeat method, select yes.
Val User/NUV Settings:
Default Flags - When a user is validated, he will
receive these access flags.
Daily Flag Change - Flag changed on first call of each
day. (Format: +FLAGS -FLAGS)
(ie: +ABC-XYZ - Adds ABC, turns off
XYZ)
Call Flag Change - Flag changed on every call.
(Format: +FLAGS -FLAGS)
(ie: +ABC-XYZ - Adds ABC, turns off
XYZ)
SECTION 4: MENUCODE/STATCODE/MAKEPROM/MAKEHELP
──────────────────────────────────────────────
MENUCODE:
Before your users can choose from multiple sets of menus,
you must first code your ansi/ascii menu files into a single
library file. To do this, you will need the enclosed utility
MENUCODE.EXE. The commandline for the code utility is as
follows.
MENUCODE <.LIB Name>
Note: You might want to do this in a separate dir. Also, if a
file is missing the program will inform you.
You may be thinking to yourself, What do I name the
files? The answer is simple. With versions greater than 2.0,
the SysOp decides which menu(s) will be in each library file.
Do this by entering an up to 8 letter filename (no extension)
in the HELP ID field in the menu editor. (Once you've begun
to edit any menu, HELP ID is on the menu editor change
screen.) If you do not want an ansi menu coded for a specific
MNU file that you have, leave the HELP ID blank.
After all files are successfully coded, copy the *.LIB,
and *.NDX files to your data directory. Proceed to login to
the BBS, and enter the main SysOp menu. When you've reached
that, option "N" will allow you to edit your status screens
or menus. Since you'll be adding menus, select M.
Option "A" will add a menu set for users to choose from.
Select this, and fill out the questions. If you do not wish
to use Library set menus, use the Obv/2 TEXTFILE directory as
the LIB filename.
Example:
Menu Name : Normal Menus
Library File: C:\OBV2\TEXTFILE\
If you take this approach, no LIB/NDX files are necessary.
STATCODE:
With the ability to code multiple menu sets, the idea of
being able to do the same with status screens was invented.
We call these 'Status Screen Libraries. Using a small
utility, called STATCODE, you will be able to code multiple
statistic screen sets for your users to choose from.
The status library consists of a few configurable ANSI
screens, they are as follows:
NEWSHEAD.ANS - The News Header
HDR.ANS - The Header
HEADER.ANS - Message Header
EHEADER.ANS - Header for fullscreen editor
BCHANGE.ANS - Base Change Header
SUBSSRT.ANS - Sub Listing Start ANSI (Optional)
SUBSMID.ANS - Sub Listing Repeat ANSI (Optional)
SUBSEND.ANS - Sub Listing End ANSI (Optional)
AREASRT.ANS - File Area Listing Start ANSI (Optional)
AREAMID.ANS - File Area Listing Repeat ANSI (Optional)
AREAEND.ANS - File Area Listing End ANSI (Optional)
USERSRT.ANS - User Listing Start ANSI (Optional)
USERMID.ANS - User Listing Repeat ANSI (Optional)
USEREND.ANS - User Listing End ANSI (Optional)
STATUS.ANS - Login Status Screen
USERSTAT.ANS - Your Stat ANSI
FILESTAT.ANS - File Status
FCONFIGS.ANS - File Listing Configuration Screen
CONFSCR.ANS - Config Screen
It is now possible to code any screen that you want into
the status library. With the invention of the -N menu command
(see the menu editor documentation), you may now display
status screens anywhere in the BBS. To code additional
screens, create a textfile called *.LST. (ie: If you code
OBV.LIB, you'll create and OBV.LST) In this textfile, each
line should have a valid DOS filename without any path
information. When you run STATCODE, make sure to have this
textfile in the main BBS directory.
You can also code the data area ansis into your status
screen libraries. Simply toggle that option on in the CONFIG,
and place any ansis that have to do with data areas in the
temp directory that you're using, and run STATCODE. (See the
section on the data areas on these ansi files)
As you can see, there are quite a few files that you can
include in your status screen library. You'll also notice
that some of the screens were optional. Those do NOT have to
be included in your library, but can be.
To Code a Status Library:
1. Create a temporary directory, copy ALL files to this
directory.
2. Make sure to have your .LST file in the main directory.
3. Run STATCODE.EXE with this format: STATCODE <libname>
<directory>
ie: STATCODE PMD C:\TEMP\ (No extension on libname!)
4. Add the status set with the "N" SysOp command.
5. If you coded any of the 3 part listing screens (ie:
SUBXXXX.ANS, USERXXXX.ANS, or AREAXXXX.ANS) you must
toggle their use in the CONFIG. (See the chapter on the
configuration program on just where to find these
options.)
6. If you coded the data area ansis, make sure that the
corresponding option is turned on in the CONFIG.
MAKEPROM:
With the new-and-improved string system in version 2.00
and greater, there is no more need for a string compiler.
Instead, we've written a new utility called MAKEPROM which
will add/arrange any new strings. No textfiles, no compilers,
nothing but a simple executable file.
This utility will add any new strings to the data file,
and will arrange them in their specific order. Do not run
this program more than on time per new version. The program
will inform you which prompts it can convert, and all you
need to do is run it once to update your PROMPTS.DAT.
MAKEHELP:
With the new configuration system in version 2.0 and
greater, we've created a help system. This system will give
the SysOp a brief description of each option. Whenever new
options are added to the config, new descriptions must be
added to the data file. MAKEHELP will update your help file.
Run this only once per new version, just like MAKEPROM.
SECTION 5: DATA AREA CONFIGURATION
──────────────────────────────────
The data area is a new outlook on an old idea. This data
area system draws on the old database system found in some
BBS softwares. This system takes the good features of the
database, and combines them with the configurability of
Oblivion/2.
Data areas can be used for a few very practical
applications. We've already utilized these areas in making a
BBS list, Rumors, and One Liners. All of these are completely
SysOp configurable, and can be altered in any way the SysOp
chooses.
To show the configurability of the data areas, I will
demonstrate making a BBS listing, along with explaining how
these data areas work.
When you first enter the data area sysop menu, you'll be
presented with a few self-explanatory options. (Add, delete,
change, quit.) Since we're just starting out, we'll select
add. You'll be presented with the following screen:
(A) Area Name : BBS List
(B) Access ACS :
(C) Add ACS :
(D) List Prefix : BBS
(E) Add Ansi : ADDBBS.ANS
(F) Sponsor : Lord Tracer
(G) Allow Anonymous: No
(H) Store Message : Yes
(I) Data File Name : BBSLIST
(J) Show Ansi : SHOWBBS.ANS
(K) AutoDelete : 0
Area name - Name of the data area. In our case, this
will be BBS list.
Access ACS - ACS required to access this data area.
Add ACS - ACS required to add an option. In this
case, it would be adding your BBS entry.
List Prefix - This prefix (up to 5 letters) tells the
BBS the name of the 3-part listing file
to use. Using BBS, the 3 ansis you'd
need to make would be BBSSRT.ANS,
BBSMID.ANS, and BBSEND.ANS. (See the
section on making 3 part repeat ansis
for help with this)
Add Ansi - The ANSI that appears when the user
wants to add to the database. In this
case, this ansi could be a box with BBS
name, number etc. Each of these options
requires an MCI code. Worry about that
later.
Sponsor - The user that can edit the database. If
you want to give specific users their
own database, you do not need to give
them SysOp access to edit their
database.
Allow Anonymous - Can the user add to this database
anonymously? If so, set this to yes.
Store Message - Can this database store an ANSI file or
description for each entry? If so,
change this to yes. In our case, we
wish to allow the SysOp to upload his
BBS ad, or write a description.
Data filename - This is the filename the BBS uses to
store information about this database.
Do not include an extension.
Show Ansi - This ansi is displayed when the user
views one of the data listings. In this
example, you'd want to give a lot of
information in the Show Ansi. Stuff that
you didn't put in the listing ansi.
Again, you'll use MCI codes for this
ansi, worry about what codes to use
later.
Autodelete - This number is the maximum number of
entries in one database. Entries will be
auto-purged to stay below this number.
After you've completed the configuration of the data
area, press q to quit. The BBS will ask you "Edit Options?"
Select yes. In this section, there are 3 options:
Name : BBS Name
String Length : 40
MCI Code : BN
Enter every piece of information that you want to prompt
the user. (You should use all of these MCI codes in your add
ansi. Use the important ones in your listing ansi, and
finally, all of them in your show Ansi. See the example BBS
list provided with the BBS.)
Taking a look at the above example, the name of the
field is BBS name, you can enter up to 40 characters for this
field, and the MCI code for your ansis is |BN. Notice that
you do NOT put the | in the editor! Just BN!
The data areas require a little work to create, but when
you put in the effort, and understand how it works, the
results are pleasing.
SECTION 6: CONFERENCE EDITOR
────────────────────────────
With the conferencing system, there can be up to 255
separated message and file conferences. Also with the system
comes many security features to prevent unwanted users in
your conferences.
The Conference Manager is located in the main SysOp menu.
Upon entering, you will be asked whether you wish to edit a
message or a file conference. Select the appropriate option.
You will be taken to the main menu of the manager. It looks a
bit like this:
Add Conference Edit Conference
Delete Conference Change Type
Users w/Access Reorder
List Quit
Add/Edit/Delete/List - These are quite self-
explanatory.
Reorder - Will allow you to change the
order of your conferences.
(ie: Making Conference 2 into
Conference 1)
Users with Access - This command will display a
listing of all users that have
access to the conference.
When you wish to add/edit a conference, you are presented
with the following:
Description : Oblivion/2 Support
ACS : S25
Conference ID : 1
Password :
Description - This is the name of the current
conference.
ACS - This is the ACS required to enter the
conference.
Password - This is the password required to enter
the conference.
Conference ID - This number is used internally by
Oblivion/2 to tell the BBS which
conference is which. You must use this
number when working with the JT, and JF
menu commands. It's also used in the
sub/file area listing when you don't
use repeat method screens.
SECTION 7: SYSOP ONLINE FUNCTIONS
─────────────────────────────────
Oblivion/2 v2.0 was designed specifically with the SysOp
in mind. There are a few global SysOp commands that can be
accessed via the local terminal. You can also get a listing
of these keys by pressing ALT-H from within the program.
F1 - Bring User Into Chat mode (Split-Screen)
F2 - Bring User Into Chat mode (One line)
F3 - User Editor
F4 - Scrollback Buffer
F5 - Screen Image
F9 - Input Lockout (Locks incoming data from modem)
F10 - Output Lockout (Locks BBS output to modem)
ALT-A - Toggle chat availability
ALT-B - Toggle Status Bar (on/off)
ALT-N - Nuke User (Hangs up)
ALT-M - Access to all message bases
ALT-X - Access to all file areas
ALT-T - Temporary SysOp access
ALT-J - SysOp Shell to DOS
ALT-V - Validate user
EVENT EDITOR
────────────
One of the many great features of Oblivion/2 is its
powerful event editing system. With the internal event
editor, you're able to perform most any daily maintainence
you wish, toggle SysOp availability, and much more. There are
four basic types of events. They are:
Errorlevel - BBS exits at a certain errorlevel to run batch
files.
Code - Executes one or more menu commands with full
CString support.
Availability- Toggles on/off SysOp availability.
User ACS - Allows you to define ACS required to login to
the BBS at certain times.
Errorlevel events are ones in which the BBS will exit at
an errorlevel of your choice, and run a batch file, or other
program of your choice. To make the BBS run a batch file, you
need to add statements to your batch file that runs the BBS.
They will look similar to this:
If errorlevel xx then runme.bat (Use batch knowledge)
Define your errorlevel, and replace xx with that level.
Assign a time for this event, and away it goes.
Code events are probably the most useful. They allow you
to perform certain menu commands with full CString support at
any hour of the day. The uses for this are endless. One
example is packing the Email. This should be done often to
keep the Email system quick. To do this, add a 'Code' event
that runs the Command Keys "EZ". Assign a time for it, and
away it goes.
SysOp availability is toggled through the event editor.
You can toggle when the SysOp is in/out by using this event
type. Select Availability event, and toggle whether it is to
be when the SysOp is available or not. Assign a time, and
thats it.
The final event type is User ACS. This event type is
used to restrict BBS logins to certain ACS requirements. For
example, you can make it so that only user 20 can log into
the system at 5:00am to 6:00am. Add a User ACS event, and
make the ACS "U20" (No "" marks). Add 5:00 am as the start
time, and 6:00 am for the end time. Simple as that.
The commandline switch -E is used to execute your events
if you're running FD. When running any type of mailer,
chances are that the BBS will miss its events. If the time
has already passed (Say you've got an event scheduled to pack
the message bases at 2:00am), Obv/2 will run that 2:00am
event. (Only if its past 2:00am)
STRING EDITOR
─────────────
With new versions of Oblivion/2, string editing has
become much easier. You no longer need to compile your
strings, the BBS will do it all for you.
This new version now has an online string editor. Some
features include: strings of up to 255 characters, being able
to use filenames in place of strings, and customized
variables for displaying BBS information in your strings.
Moving around in the editor is quite simple. Press [,]
to view 5 more strings. When you see a string that you wish
to edit, press that strings corresponding number. The BBS
will then allow you to edit that string on the lower half of
the screen. You may use CTRL-V to toggle insert mode, and use
CTRL-U as an ascii chart. (Use the cursor to pick the upper
ASCII character you want, and it will be printed in the
cursor's current position in your string).
Notice that when you see your strings, you'll see 2
lines for each string. The upper line is what the string
description is, and the lower line is what you've configured
that string to be.
You may use |Ux (1-6) for each of the six user colors.
You can also use |01-15 to force a certain color. |OT, and
|O2 are internal variable MCI codes that the BBS uses to
place information. If you see one of the prompts with a |OT,
or |O2, make sure that your string also has one.
Another approach to string editing is filenames. You can
have the BBS print a file instead of a string. This comes in
handy for places where you just need to put more information.
For example, you might want to configure your message reading
string, or file newscanning string to use a textfile. This is
a simple process. Create your ANSI, and place it into your
textfile directory. Use %%FILENAME.EXT for that string in
your editor. This will force the BBS to read that string from
the file. In this external file, you may use 3 percent codes:
%IN, %OT, and %O2. %IN tells the BBS where to place the
cursor after the screen has been drawn. Use this to place
user input anywhere you want. The input color will be the
same as the color that you use with %IN. Like above %OT, and
%O2 are information placers. Only use them if the original
string has them.
You should run the Oblivion/2 Utility MAKEPROM.EXE when
you are instructed to by us. This updates your prompts
automatically. It saves a lot of time, and is better than the
old PROMPTS.TXT way of doing things. Make sure not to run the
program more than one time, as it could lead to damage of
your string file!
MENU PROMPT EDITOR
──────────────────
The menu prompt editor allows you to configure many
different prompts, and have your users choose which one they
like. These prompts can range from something simple like
this:
Main Menu:
to something more extravagant:
[10:06 pm EST]
[Main Menu] [?/Help]:
The operations of this editor are quite self-
explanatory. When making menu prompts, you'll be in the
Fullscreen editor. There are several MCI codes that you'll be
able to use in your prompts.
|01-|15 : ANSI colors from 01-15
|MN : Menu Name (Name in prompt in Menu editor)
|TL : Time Left
|TN : Time Now
|FLxx : Sets input length to xx
|RC : Regular Color
|SC : Status Color
|PC : Prompt Color
|EC : Input Color
|VC : Inverse Color
|XC : Box Color
|Ux : Moves up x amount of lines
|Dx : Moves down x amount of lines
|Fx : Moves forward x spaces
|Bx : Moves backward x spaces
|Xxx : Moves to absolute X value. ie: |X10 moves to the
10th row
PROTOCOL EDITOR
───────────────
With version 2.xx of Oblivion/2, protocol editing has
been made much easier. All protocol setup is done internally.
When you first enter the protocol editor. You'll be
asked which type of protocols you want to edit. There's four
types of protocols: Single File, Batch, Resume, and
Bidirectional. Single File protocols (both upload and
download) are used in sending QWK Packets, Receiving REP
Packets, Receiving Filemail, Sending Memorized Messages,
Sending Complete File Lists, etc. Batch Protocols are the
heart of the file system. Resume Protocols are used to let a
user resume an uncompleted upload. (Only some protocols
support this, DSZ, MPT, HS-Link are a few examples)
Once you've selected which type of protocol you want to
edit, you'll be placed in an Oblivion/2 Box editor. The
options available from this screen are: Description, Key,
Program Name, and Commandline. Description is the description
you want to give the protocol. (ie: Zmodem Mobyturbo). Key is
the KEY that users must press to activate that protocol. (for
Zmodem, this could be Z). Program Name is the protocol
executable itself. (For Zmodem, DSZ.COM, or GSZ.EXE) Finally,
the commandline options are to be placed in the commandline
string. (See the DSZ documentation for the best string to
use)
PARAMETER EDITOR
────────────────
The parameter editor is a quick and easy way of
utilizing levels. What the editor does is allow you to define
a level (lets say 50), and let you give that level certain
PCR, UD, UD K, Time, DL K PER DAY ratios, and various
expiration values.
To use the editor, just create a level (say 50). Then,
enter in level 50's PCR, UD, UD K, TIME and DL K PER DAY
ratios/values. Now, when someone's given level 50 from the
user editor, they'll get these specified amounts.
You can now also specify a # of days til expiration, and
the level that the user will receive when his account expires
for each level in your parameter editor.
The unique feature of this Paramater editor is that it
can be totally invisible to the SysOp if he/she desires. In
your CONFIG, under 'Validated User Levels' there are a few
'Default XXXX level' entries. Should you wish to use the
parameter editor, change those values from whatever they may
be to zero. (Do this only for the Default UD, UD K, DL K per
day, Time etc. Do not change Average CPS to 0). When the
value is Zero, it tells Obv/2 to read from the parameter
editor values. Should you wish not to use this editor, change
the values to whatever you wish. The parameter editor will
have no function.
If you want to change a certain field for a certain
user, it's simple. Say you wanted to give Joe User 30 minutes
instead of 15 mins. (Say level 50 had 15 mins in it). You'd
then go to the user editor. Option 'time left' should be
changed to 30. Thats it.
Please note, in the user editor, DL K per DAY, Time, UD,
UD K, and PCR must all be zero. The parameter system will
only look at those values in the parameter editor if the
values for the above, in the user editor, are zero. There is
a function in the editor which allows you to Zero-Out certain
levels of users, so that they can follow the parameters. Also
note that the default CONFIG levels must also be zero for the
parameter editor to take effect. If they're not, the
parameter editor will not function correctly.
USER EDITOR
───────────
The user editor in 2.xx has been completely overhauled.
It's now completely batch oriented, and allows for many new
options. A few of these include Infoform Extraction,
Searching, Quick Loading of Users, Highlight Selected User
Editing and more.
When you first select the user edit option, you'll be
asked 'Edit Individual' If you pick yes, the BBS will prompt
you to enter a username. If you select no, the BBS will clear
screen, and print 23 user names, and let you select them with
a highlight bar. Hit "Q" to quit that process, or RETURN to
select the highlighted user.
Once inside the editor, you'll find a myriad of
configurable options. Note a few important keys: [,] move to
the previous/next user. {,} move to the previous/next user in
your search link. * extracts the selected Infoform to a file.
Finally, S takes you into the Search Editor. It looks like
this:
(H) Handle String : [OFF]
(A) ACS : [OFF]
(L) Level : [OFF] - [OFF]
(F) File Level : [OFF] - [OFF]
(D) Days Since 1st : [OFF] - [OFF]
(S) Days Since Last: [OFF] - [OFF]
(E) Flag : [OFF]
(N) Number of Calls: [OFF] - [OFF]
(Y) Age : [OFF] - [OFF]
(G) Gender : [OFF]
(P) PCR : [OFF] - [OFF]
(U) % U/D Ratio : [OFF] - [OFF]
(K) % U/D K Ratio : [OFF] - [OFF]
(X) Expiration Date: [OFF] - [OFF]
(T) Tabulate Search
This unique editor allow you to have the BBS search for
specific users, using your search criteria, and let you edit
all of them easily. This makes manual changes a breeze.
The options above are pretty self-explanatory. Make sure
to press "T" to 'Tabulate Search' If you don't, your search
won't run, and you'll lose your search criteria.
When in the user editor, use the {,} keys for quick
backward/forward progress in your search editing.
SECTION 8: INFOFORMS
────────────────────
Infoforms are a sysop's easy way of keeping information
about his users. Usually, when you login to a BBS, you'll be
asked to fill out forms. Sometimes forms are used as
applications to groups or whatnot. None the less, they are
very useful in storing information.
Making Ansi or Ascii infoforms is quite simple. For Ascii
infoforms create your ascii file with questions, and using
Qedit or any similar text editor use one of these following
characters depending on what you wish to do:
* -- Waits for a response. (Abortable)
|Xx -- Limits User input to x spaces.
SECTION 9: MAKING REPEAT ANSIS
──────────────────────────────
In an effort to add more configurability to Obv/2, we've
created the 'Repeat Method' of making ANSI screens. These
screens are used all around the BBS. Some areas include:
Message base/File Area Listings, One Liners, Rumors, User
Listing, Last Caller Listing, BBS Listing and more. Its
important that you learn how these work. Please read
carefully.
In the repeat method, there are 3 screens for each type
of listing. The first, an intro, the second is the actual way
to repeat, and the 3rd is an ending.
For example, to make a messge base listing that looked like
this:
Base Description Sponsor
─────────────────────────────────────────────────────────────
1 General Talk Lord Tracer
2 BBS Advertisements Lord Tracer
─────────────────────────────────────────────────────────────
The 3 files used in message base listing are:
SUBSSRT.ANS - Intro to listing
SUBSMID.ANS - Middlle (This uses MCI codes, and is the one
that will be repeated)
SUBSEND.ANS - The end of the listing.
Our SUBSTART.ANS would look like this:
Base Description Sponsor
─────────────────────────────────────────────────────────────
Our SUBSMID.ANS would look like this:
|AN |BN |SS
Our SUBSEND.ANS would look like this:
─────────────────────────────────────────────────────────────
As you can see, the system is very easy to use, and is
very versatile. Please note that each screen type has certain
MCI codes that go with it. Only in Data Areas can you define
your own MCI codes. These are as follows:
SUBSSTAR.ANS - Message Base Listing Start
SUBSMID.ANS - Message Base Listing Middle
|AN - Base Number
|BN - Base Name
|SS - Sponsor
SUBSEND.ANS - Message Base Listing End
AREASTAR.ANS - File Area Listing Start
AREAMID.ANS - File Area Listing Middle
|AN - Area Number
|AI - Area Name
|AS - Area Sponsor
AREAEND.ANS - File Area Listing End
USERSTAR.ANS - User Listing Start
USERMID.ANS - User Listing Middle
|UH - User Handle
|LE - Level
|UN - User Note
|AC - Area Code
|LC - Last Call
USEREND.ANS - User Listing End
LASTSRT.ANS - Recent Callers Start
LASTMID.ANS - Recent Callers Middle
|UH - User Handle
|DO - Date On
|TO - Time On
|BR - Baud Rate
LASTEND.ANS - Recent Callers End
SECTION 10: MAKING STANDARD ANSIS
─────────────────────────────────
When making the animated statistic screens, such as a new
Main User Stat screen, a few simple rules must be followed.
Screens should be made in this manner to insure that they
will work correctly with Oblivion/2.
These are the instructions to make a non-animated status
screen. Animated Status screens require a bit more work and
will require maintenance if they are not correctly made.
To make Stat Screens w/o Complex Animations, follow these
steps:
1] Draw Basic Screen.
2] Put Thedraw into ANIMATION Mode. And when prompted to
select scanning method, use "TOP" (Others may work, but
this is standard.)
3] Add the Appropriate MCI Codes, some external screens use
the |xx codes and others use the %xx codes. Make sure you
use the right ones.
4] After you've finished adding the MCI Codes, Save Animation
in Ansi file format. Select Clear Screen, and Maximum
line length to 255. Again, other numbers work, but this
is standard.
If your MCI codes seem out of place (ie: The stat isn't
showing up where I put the MCI code for it), this could be
one of two things.
1] |xx codes were used instead of %xx and vice versa.
2] Thedraw has expanded the MCI codes and Oblivion/2 cannot
recognize them.
If you used the right type of MCI codes, chances are that
your problem is #2. Thedraw has a nasty habit of expanding
MCI codes to more than 3 letters, therefore making them
unrecognizable to Oblivion/2. There is a solution to this,
ANSITRAN.EXE was written by Darkened Enmity to combat this
problem. It is included in the distribution ZIP. Here
are the instructions for using this utility:
1] Save ANSI in 80 character per line mode. With whatever
preparation you've previously chosen.
2] Run ANSITRAN filename to correct the MCI bug.
Another Screen that requires Attention is CONFSCR.ANS
Use the appropriate |xx codes for this screen, but there
is a difference in this screen than in others. When making
your ansi, you MUST make the Color Bar. Use Ansi Block
Characters to make the bar. ALL COLORS 0-15 must be in this
bar if you want it to work correctly. After you have
made the main ansi with the color bar, put it into Top Scan
Animation. Add the |xx codes. When you are adding the |CB
code (|CB is color bar), put this code OVER the Black on
Black Box. It will look a bit like this.
0123456789ABCDE (You'll have boxes, numbers are used only
for example)
|CB go right over 0,1, and 2.
An example will be provided for you.
SECTION 11: MCI CODES / SYSOP CONFIGURABLE TEXTFILES
────────────────────────────────────────────────────
STANDARD CODES: All preceeded with %
UN Handle
RN Real Name
PN Phone Number
AD Address
LO Location
UC UserNote
UL Level
FL File level
FP File Points
UK Uploaded K
DK Downloaded K
UP Uploads
DN Downloads
PS Posts
CS Calls
TL Time Left
NF New Files
NP New Posts
CR Connect Rate
TT Daily Time Limit
LC Last Caller
TC Total Calls
CT Calls Today
FT Files Uploadded or Added Today
PT Messages Posts Today
NT New Users Today
UU User Number
BN Board Name
SN Sysop Name
DT Date
TM Time
SS Current Status Screen Library Name
MS Current Menu Library Name
PC Post/Call Ratio
NR U/D Ratio
KR U/D K Ratio
LD Last On Date
UA Makes anything below it unabortable. Use it for screens
that you want to force users to see.
CA Current Area
CB Current Base
DU Days until expiration
ANSIS IN STATUS SCREEN LIBRARIES:
BCHANGE.ANS - Message Base Changing Ansi
|SN - Base Name
|SS - Base Sponsor
|NM - Number of Messages
|UP - Number of Posts you made
|LR - Last Read
|DT - Date
|TI - Time
HDR.ANS - Message
|HM - Header Message
|LH - Repeats next character for as many characters there
are in the header message
|CC - Repeats next character for as many characters as are
needed such that four |CC and |HM fill a line.
|CH - Displays a centered header message
HEADER.ANS - Message Header
|BN - Base Name
|RT - Message to which current is a reply
|MN - Message Number
|OU - Total Messages
|TL - Title
|UN - Poster's Note
|FM - Poster's Name
|DT - Date Posted
|TI - Time Posted
|TO - Sent To
|ST - Status
CONFSCR.ANS - User Config Screen
|CB - Color Bar Starting
|FS - Full Screen Editor Toggle
|PL - Page Length
|DP - Pause
|AD - Address
|LC - Location
|RC - Regular Color
|PC - Prompt Color
|IC - Input Color
|VC - Inverse Color
|SC - Status Color
|BC - Box Color
|CP - Current Prompt
|EP - Emulation
|CM - Current Menu
|CS - Current Status Screen
|RR - Reply Reading
|UN - User Note
|YN - Yes No Bars
|RM - Redisplay Message
&xy - X = User flag. Y = Key to toggle flag.
- With this code, you can add in your own configuration
- options.
FCONFIGS.ANS - File List Config Screen
|O1 - Option 1 - Status Points
|O2 - Option 2 - Points
|O3 - Option 3 - Size
|O4 - Option 4 - Date Uploaded
|O5 - Option 5 - Downloads
|O6 - Option 6 - Uploader
|O7 - Option 7 - File Description
|US - Used Space
|EX - Example
FSEHEAD.ANS - Full Screen Editor Header
|TI - Title
|ST - Send To
|AN - Anonymous
|AU - Autosig
|DT - Date
|TM - Time
SUBSSTAR.ANS - Base Listing Start
SUBSMID.ANS - Base Listing Middle
|AN - Base Number
|BN - Base Name
|SS - Sponsor
SUBSEND.ANS - Base Listing End
FHEADER.ANS - File List Header
|FH - Line of Information
STATUS.ANS - User's Status
Standard Codes
FILESTAT.ANS - User's File Status
Standard Codes
USERSTAT.ANS - User's Stats
Standard Codes
AREASTAR.ANS - File Area Listing Start
AREAMID.ANS - File Area Listing Middle
|AN - Area Number
|AI - Area Name
|AS - Area Sponsor
AREAEND.ANS - File Area Listing End
NEWSHEAD.ANS - News Header
|BN - Base Name
|RT - Message to which current is a reply
|MN - Message Number
|OU - Total Messages
|TL - Title
|UN - Poster's Note
|FM - Poster's Name
|DT - Date Posted
|TI - Time Posted
|TO - Sent To
|ST - Status
USERSTAR.ANS - User Listing Start
USERMID.ANS - User Listing Middle
|UH - User Handle
|LE - Level
|UN - User Note
|AC - Area Code
|LC - Last Call
USEREND.ANS - User Listing End
LASTSRT.ANS - Recent Callers Start
LASTMID.ANS - Recent Callers Middle
|UH - User Handle
|DO - Date On
|TO - Time On
|BR - Baud Rate
LASTEND.ANS - Recent Callers End
OTHER: (Not in STAT libraries)
SYSPASS.ANS - System Password Ansi
|PP - Place to prompt for password
|BP - Place to put any error messages
USERLOG.ANS - Username Ansi
|NP - Place to prompt for username
|PP - Place to prompt for password
|QP - Place to prompt 'Use xx for quicker login'
|IP - Place to prompt 'Invalid User name'
FILE DESCRIPTION CONFIG MCI CODES:
|DE - Main description line.
|Dx - Extended description line.
|TC - Size uncompressed.
|CC - Size compressed.
|UL - Uploader of file.
|UD - Date of upload.
|TM - Time of upload.
PRINTED FILES: ALL use standard codes:
NOTLEFT .ANS - No Time Left
WELCOME .XXX - Welcome Screen
EXPIRED .BBS - Account Expired
SLOWBAUD.ANS - User's baud rate is too low and does not know
lockout pass
PRELOGON.ANS - Prelogon Screen
TOONODE .ANS - User already on another node
CHECKED .XXX - User checked for access, but has level less
than zero XXX is a level less than 0 that the
user has.
PRINT .APP - User starts applying
NUPBAD .APP - Does not know NUP
BLACKLST.ANS - User in Blacklist
LETTER .APP - Send letter to the sysop during application
DONE .APP - User done applying
ENOUGH .ANS - User paged more than the specified times
GOODBYE .ANS - User logging off
SUBS .XXX - User viewing message base listing where XXX is
the conference ID, external listings are on,
but repeat method is not.
XFER .XXX - User viewing file area listing where XXX is
the conference ID, external listings are on,
but repeat method is not. (Conference ID's can
be found in the Conference Editor)
LINEMENU.ANS - Help Screen for the Line Editor
ULCHECK.ANS - Upload checker display screen.
SYSPASS.ANS - Ansi displayed when prompting for System
Password
USERLOG.ANS - Ansi displayed when prompting for user
username and password.
SECTION 12: CONFIGURABLE CHAT
─────────────────────────────
Configurable Chat was added to allow for more
configuration for the SysOp, therefore making his board
different than anybody else's. You can make horizontal split
screen chats, vertical ones, diagonal ones, or anything that
pops into your head. To make a chat follow the following
instructions:
1] Create the design for your chat, name this CHATDEF.ANS
It will be placed in the TEXTFILE directory when you're
all done.
2] Put CHATDEF.ANS into Animation Mode, and use TOP Scan.
3] You must now create the "Margins" for the SysOp side of
the chat, and the user's side of the chat. To do this,
you'll need some MCI codes. For the left border of each
line of the SysOp's side, You use ^xx, and for the right
margin of the SysOp's type, use &xx. Do the same for the
user side. Here are the codes for the user side, `xx for
the left, and ~xx for the right margin. These MCI codes
will tell Oblivion/2 where to wordwrap each line. Here is
an example Horizontal Split Screen Chat (Non-animated, of
course). This will help you to get the idea of what you
must do.
^01 &01
^02 &02
^03 &03
^04 &04
────────|SN───────────────Split Screen Chat───|UN───────────
`01 ~01
`02 ~02
`03 ~03
`04 ~04
As you can see, the start MCI code will tell the program
where to start typing, and the end MCI code will tell the
program where to wordwrap. If you notice, the xx has been
replaced by numbers. Each line must have a number, so Line
01 will wordwrap onto Line 02. So, don't mix up the numbers
or you'll have a REAL MESS! If you notice in the example, the
end MCI codes have been placed right at the end of the line.
This is because the wordwrap starts where the MCI code
starts. Placing them as they are above will prevent any
problems that could arise. Place them in that fashion when
you make your own. Another thing to notice is the |SN and
|UN. |SN is the MCI code for the SysOp Name, and |UN is the
pipe code for the current user name. These are NOT required
in your screen. So if you want to play some kind of game with
the user, you can do that too.
4] Save the Screen, and use the ANSITRAN.EXE utility if it
doesn't show up properly. See the docs of ANSITRAN for
more info.
There are a few options that SysOps and users can use in
the chat mode:
/TYPE - Allows the SysOp to type any file in the textfile
directory.
/PAGE - In one line chat, /PAGE will page the SysOp. In split
screen chat, /PAGE will page the user.
SECTION 13: MENU EDITOR
───────────────────────
Introduction...............................
"-" Control Commands.......................
"&" MultiNode Commands.....................
"{" Matrix Commands........................
"!" Global Newscan Commands................
"[" Main Menu Commands.....................
"." Door Commands..........................
"*" SysOp Commands.........................
"^" New User Voting Commands...............
"C" Conference Editor Commands.............
"D" Data Commands..........................
"E" Email Commands.........................
"F" File Commands..........................
"J" Join Conference Commands...............
"M" Message Commands.......................
"Q" QWKMail Commands.......................
"R" Top Ten Listing Commands...............
"S" Message Sponsor Commands...............
"T" File Sponsor Commands..................
"V" Voting Booth Commands..................
"+" Color Setting Commands.................
Menu Editor Function Over-View.............
Introduction
Oblivion/2 2.0 Menu Editor. This is, in my opinion, the
best feature ever offered in any BBS software. The menu
editor will allow you to modify, customize, or make a totaly
unique menu system for your BBS.
The Menu Editor is a very simple yet uses a complex
system of commands that can be used individualy or stacked.
The commands can be restricted to access levels, flags,
conferences, age, and a variety other levels.
Due to the fact that just about everything in Oblivion/2
2.0 can be configured via the Menu Editor, it's pretty much
impossible for us to show you examples of how to use every
command (Not to mention I doubt anybody would actuly print 25
meg of documentation). Instead we've put together a few
samples of what can be done, and a descriptive list of all
the available commands. After that is's up to you and your
imagination. Have fun with it & take your time.
------------------------------------------------------------
"-" = Control Commands
------------------------------------------------------------
Command Key: -A
Function : Writes CString into the Header (Use With
: Stacking)
CString : <String You Would Like Displayed>
Command Key: -B
Function : Sets the Bad Prompt to CString
CString : <String You Would Like Displayed when an invalid
command is entered, blank if none>
Command Key: -C
Function : Clears The FailFlag
CString : None
Command Key: -D
Function : Sends CString to the modem.
CString : ~ = .5 sec delay, | = Return, ^X = Ctrl-X
: Note: Make sure to put your modem back
: into online mode after you execute this
: command, otherwise your BBS will be hung.
: Use the ATO command to do this. Also, make
: sure to use the +++ escape sequence to put
: the modem into command mode. Otherwise, your
: commands won't get to the modem.
Command Key: -E
Function : Writes Characters with ^ control char support
CString : <String to be displayed>
Command Key: -F
Function : Displays A Text Or ANSi File
CString : <FILENAME>
<filename> A MS-DOS filename.
This command will display a text file located
in the TEXTFILE directory.
Command Key: -G
Function : Goes in the x,y position specified in the
: CString
CString : X,Y
Command Key: -H
Function : Gets String with Hidden Input
CString : # <Length of Hidden Input String>
Command Key: -I
Function : Gets String with Normal Input
CString : # <Length Of Normal Input String>
Command Key: -M
Function : If the string inputted with -I or -J is not the
: Cstring the fail flag is set to true.
CString : <String To Check>
Command Key: -N
Function : Displays a status screen from the current status
library. (Use this in correspondence with the
STATLIST. textfile to put status screens
anywhere you want.)
CString : <Filename to print>
: IE: STATUS.ANS
Command Key: -J
Function : If the Sysop is not Available, the Fail Flag is
: Set to True If he/she is available, the fail
: flag is set to false
CString : None
Command Key: -K
Function : Change Starting Menu to CString, so all -^ will
set the fallback to the old starting menu
CString : <Menu Name>
Command Key: -L
Function : Clears the Screen
CString : None
Command Key: -P
Function : Pauses X Number of seconds
CString : X <Number Of Seconds>
Command Key: -Q
Function : Sets the current menu prompt to the value in the
: cstring
CString : <Menu Prompt #>
Command Key: -R
Function : Prints a Return
CString : None
Command Key: -S
Function : Changes User Flags
CString : <+,-> <Flag Letter>
A "-" followed by certain letters will turn off
That flag in the users account
A "+" Followed by certain letters will trun on
That Flag if it's active in the users account
Command Key: -T
Function : Sets the Status Library to the Value in the
: Cstring
CString : <#>
# is the number of any Status Library
Command Key: -V
Function : Sets Menu Library to the Value in the CString
CString : <#>
# is the number of any Menu Library
Command Key: -U
Function : Sets the Starting Menu to cstring and sets the
: fallback of all the : menus called with the -^
: command to the menu name in the cstring.
CString : <Menu Name>
Menu Name is the name of any menu
Command Key: -W
Function : Writes CString in the Log
CString : Whatever You Want Written in the SysOp Log
This Command is good for keeping track of your SysOp's
And Co-SysOp's By Stacking it with other commands.
Command Key: -/
Function : Goes to the menu name in the Cstring and sets
: the fallback to the current menu
CString : Menu You Wanna Go To
Command Key: -\
Function : Goes to the fallback menu and sets the fallback
: menu to the previous fallback
CString : Menu You Wanna Go To
Command Key: -^
Function : Goes to the menu name in the Cstring and sets
: the fallback to the starting menu
CString : Menu You Wanna Go To
Command Key: -*
Function : Sets the input variable usually inputted with -I
: and -J to the string in the Cstring
CString : String
Command Key: -=
Function : Sets User Level to value contained in the
: CString
CString : User Level
: (Be carefull w/how you use this one..)
Command Key: -&
Function : After The execution of an external program via
: door commands, the errorlevel with which the
: external program exited will be put into the
: input string, the one that is also set with -I,
: -J, and -M.
Command Key: -(
Function : Send's The "Hit Return" prompt and waits for a
: return
CString : None
Command Key: -{
Function : Goes to the menu specified in the CString,
: but will not execute any FIRSTCMD statements.
CString : <Menu to go to>
Command Key: -}
Function : Drops to the previous menu, but will not run any
FIRSTCMD statements.
CString : None
Command Key: -:
Function : Toggles locking of output to the modem.
CString : None
: Note: Use this command again to unlock the
: output to the modem.
Command Key: -;
Function : Toggles locking input from the modem.
CString : None
: Note: Use this command again to unlock the input
: from the modem.
Command Key: -$
Function : Goes to a menu keeping the current fallback menu
: and it will process FIRSTCMD statements.
CString : Menu name to goto.
Command Key: -%
Function : Goes to a menu keeping the current fallback menu
: but it won't process FIRSTCMD statements.
CString : Menu name to goto.
Command Key: --
Function : Displays and gets input in same format as prompt
string.
CString : None
------------------------------------------------------------
& = MultiNode Commands
------------------------------------------------------------
Command Key: &A
Function : Gets Page Status
CString : None
Command Key: &C
Function : Enters Into Multinode Chat
CString : None
Command Key: &F
Function : Forces a user into multinode chat
CString : None
Command Key: &L
Function : Views the log of a user on the other node.
CString : None
Command Key: &M
Function : Sends a MultiNode Message to another node
CString : None
Command Key: &N
Function : Allows a user to kick a user off of another node
CString : None
: Make sure to use an appropriate ACS on this
: option so that only certain people can access
: it.
Command Key: &S
Function : View MultiNode Status
CString : None
-------------------------------------------------------------
{ = Matrix Commands
-------------------------------------------------------------
Command Key: {A
Function : Applies as New User. If User completed the
: application, fail flag is set to false,
: otherwise it is true.
CString : None
Command Key: {C
Function : Checks User Access. If User is validated,
: failflag is set to false, otherwise it is true.
CString : None
Command Key: {F
Function : Leaves Feedback to the user number contained in
the cstring
CString : User # of the user to send Matrix FeedBack to
Command Key: {G
Function : Logs Off From the Matrix
CString : None
Command Key: {L
Function : Launches Extra System
CString : System Password,ErrorLevel
: System Password being the Password a user needs
: to get to the extra system, and ErrorLevel the
: Errorlevel that Oblivion/2 would drop at. (ie
: "GETIN,58" would make the Password GETIN and
: would make Obv/2 drop at an ErrorLevel Of 58)
Command Key: {P
Function : Matrix Chat
CString : None
Command Key: {S
Function : Loads The Main BBS System
CString : x (Number between 1-999)
: When a CString is specified, PRELOGON.X, an
: USERLOG.X, and SYSPASS.X will be displayed.
: Using CString 1, these files would be printed
: PRELOGON.1, SYSPASS.1 USERLOG.1. Use for
: increased matrix effects.
Command Key: {T
Function : Sets FailFlag to false if user is able to get to
: main system through knowing the system password
: and having an account.
: This would be used for stacking commands at the
: matrix without actually logging onto to the
: board.
CString : Same as for {S.
Command Key: {X
Function : Drops into the BBS
CString : None
: Use This Command With Caution! - NOTE>
-------------------------------------------------------------
! = Global Newscan Commands
-------------------------------------------------------------
Command Key: !A
Function : Scans Message and File Conferences
CString : None
Command Key: !F
Function : Scans File Conferences
CString : None
Command Key: !M
Function : Scans Message Conference
CString : None
-------------------------------------------------------------
[ = Main Menu Commands
-------------------------------------------------------------
Command Key: [A
Function : Edits AutoSig
CString : None
Command Key: [C
Function : Pages Sysop
CString : None
Command Key: [D
Function : Does the Infoform with the value contained in
: the Cstring
CString : Number Of The Infoform To Fill Out
Command Key: [F
Function : Fills out infoform into a textfile.
CString : INFOFORM#,TEMPLATE
: TEMPLATE format is a directory, and
: a filename w/o period or extension.
: IE: 1,C:\APPS\OBVAPP
: This would fill out infoform #1, and
: put it into the file OBVAPP.1, then
: OBVAPP.2, etc. These files would be
: located in the C:\APPS\ directory.
Command Key: [G
Function : Logs Off
CString : None
Command Key: [H
Function : Logs Off without displaying the goodbye ansi
CString : None
Command Key: [I
Function : Fills out Infoform
CString : None
Command Key: [K
Function : User Configuration (Goes To The "Konfig" Menu)
CString : <valid DOS filename>
: You can create multiple configuration screens
: by telling the BBS which screen to go to. Make
: sure that the screen is in your status screen
: library. (Read the STATCODE section on how to
: code an extra screen in the status libraries)
Command Key: [L
Function : Lists Users
CString : None
Command Key: [S
Function : System Status
CString : None
Command Key: [U
Function : Time Bank
CString : {Maximum Total Time} {Maximum Time to Deposit
: Today} Maximum Total Time Being total time
: allowed in the time bank. Maximum Time Today
: being the total time allowed per day. (ie 60 15
: would make a max of 60 minutes and 15 minutes
: per day)
Command Key: [V
Function : Views Daily Log
CString : None
Command Key: [W
Function : Last Callers
CString : 1-20
: Tells how many callers to list.
Command Key: [X
Function : Transfer to User
CString : None
Command Key: [Y
Function : Users Status
CString : None
Command Key: [+
Function : Change Password
CString : None
-------------------------------------------------------------
. = Door Commands
-------------------------------------------------------------
Command Key: .E
Function : Executes file in your main BBS Directory (No
: Door File Created)
CString : %1 = Connect Rate
Command Key: .N
Function : Makes Door RBBS DORINFO1.DEF File with COM0
: in the DORINFO1.DEF if you are local and
executes file in the door directory
CString : <FILENAME>
Command Key: .R
Function : Makes Door RBBS DORINFO1.DEF File with LOCAL in
: the DORINFO1.DEF if you are local and executes
: the file in the door directory
CString : <FILENAME>
Command Key: .S
Function : Makes SRE DOOR.SR file and executes the file in
: the door directory
CString : <FILENAME>
Command Key: .T
Function : Makes Standard DOOR.SYS file (GAP - TeleGard -
: WildCat 3.0+)
-------------------------------------------------------------
* = Sysop Commands
-------------------------------------------------------------
Note - All of the following commands can be dangerous if
accessed by un-authorized users. Use them with
caution!
Command Key: *#
Function : Runs The Menu Editor
CString : None
Command Key: *B
Function : Allows The SysOp To Edit/View The Blacklist
CString : None
Command Key: *C
Function : Enters The System Configuration Menu
CString : None
Command Key: *D
Function : Enters MiniDos
CString : None
Command Key: *E
Function : Edits Strings (Internal Prompts)
CString : None
Command Key: *I
Function : Shows Infoforms
CString : None
Command Key: *K
Function : Clears Infoforms
CString : None
Command Key: *L
Function : Shows SysOp Log's
CString : None
Command Key: *M
Function : Make User
CString : None
Command Key: *P
Function : Enters the Protocol Editor
CString : None
Command Key: *R
Function : Configures Menu Prompts
CString : None
Command Key: *S
Function : Sets Libraries
CString : None
Command Key: *T
Function : Runs the internal Text Editor
CString : None
Command Key: *U
Function : User Editor
CString : None
Command Key: *V
Function : Event Editor
CString : None
Command Key: *X
Function : View Voting
Command Key: *Y
Function : Parameter Editor
CString : None
Command Key: *Z
Function : Archiver Editor
CString : None
-------------------------------------------------------------
^ = New User Voting Commands
-------------------------------------------------------------
Command Key: ^D
Function : Starts new user voting without asking the user
: if they would like to skip it
CString : None
Command Key: ^L
Function : Lists Users in the NUV
CString : None
Command Key: ^S
Function : Ask's User if they would like to vote on new
: users
CString : Q
: If "Q" is specified as the CString, then users
: are forced to vote on new users. They cannot
: quit
-------------------------------------------------------------
C = Conference Editor
-------------------------------------------------------------
Command Key: CA
Function : Adds a Conference
CString : None
Command Key: CD
Function : Deletes a Conference
CString : None
Command Key: CE
Function : Edits a Conference
CString : None
Command Key: CI
Function : Initializes Conference Editor
CString : None
Command Key: CL
Function : List Conferences
CString : None
Command Key: CR
Function : Reorders Conference
CString : None
Command Key: CT
Function : Selects Conference Type
CString : None
Command Key: CU
Function : List Users with Access to a Conference
CString : None
-------------------------------------------------------------
D = Data Area Menu
-------------------------------------------------------------
Command Key: DA
Function : Adds Data
CString : None
Command Key: DD
Function : Deletes Data
CString : None
Command Key: DE
Function : Edits Selected Data Area
CString : None
Command Key: DF
Function : List Data w/o asking for range limits
CString : None
Command Key: DG
Function : Puts the data area listing into a file, and
: if you're remote, it will send it to you.
CString : None
: This option would be equivelant to listing the
: data area, and turning on a capture in your term
: program.
Command Key: DK
Function : Deletes Selected Data Area
CString : None
Command Key: DL
Function : Lists Data w/ asking for range limits
CString : None
Command Key: DM
Function : Add Data Area
CString : None
Command Key: DR
Function : Displays a Random Entry in this data area using
: the List Prefix followed by "RAN.ANS" as the
: ansi to tell it how it should look.
CString : None
Command Key: DS
Function : Shows Data
CString : None
Command Key: D*
Function : Selects Data Area in the Cstring
CString : # of Data Area, if blank, will let user select
: which
-------------------------------------------------------------
E = Email Commands
-------------------------------------------------------------
Command Key: EA
Function : Sysop Option to Scan Email
CString : None
Command Key: EB
Function : Looks in a User's Mail Box
CString : None
Command Key: ED
Function : Delete Incoming piece of Email
CString : # of Email - Asks For # if none is specified
Command Key: EE
Function : Edits Outgoing Email
CString : # of Email - Asks For # If None is specified
Command Key: EF
Function : Forwards Mail
CString : # of Email - Asks For # if None is Specified
Command Key: EG
Function : Edits Groups
CString : None
Command Key: EK
Function : Kills Outgoing Mail
CString : # of Email - Asks For # if None is Specified
Command Key: EL
Function : Lists Mail
CString : None
Command Key: EN
Function : Scans for Email
CString : None
Command Key: EP
Function : Replies to Incoming Email
CString : # of Email - Asks if None is Specified
Command Key: ER
Function : Read Incoming Mail
CString : # of Email - Asks if None is Specified
Command Key: ES
Function : Sends Email
CString : # Of the user to send Email to - Asks if None is
: Specified
Command Key: ET
Function : Shows Incoming/Outgoing Information
CString : None
Command Key: EV
Function : Views Outgoing Email
CString : # Of Email - Asks if None is Specified
Command Key: EX
Function : Purges FileMail older than a number of days set
: in the config
CString : None
Command Key: EZ -
Function : Packs Email, do this every once in a while, it
: clears out deleted email and thus speeds up the
: searching for new email
CString : None
-------------------------------------------------------------
F = File Commands
-------------------------------------------------------------
Command Key: FA
Function : Lists File Areas Does Not Ask Which Base To
: Switch to
CString : None
Command Key: FB
Function : Batch Menu
CString : None
Command Key: FC
Function : Change Files
CString : FILENAME or # of first file to edit - Will ask
: if None is Specified
Command Key: FD
Function : Downloads Files
CString : FILENAME of # of the first file to Download
: Will ask if None is Specified
Command Key: FE
Function : Newscanns the current file area.
CString : None
Command Key: FF
Function : Newscans File Areas without asking if you want
: to scan them all
CString : None
Command Key: FI
Function : Inits File Areas in the file conference selected
CString : None
Command Key: FK
Function : User Configurable File List Configuration
CString : None
Command Key: FL
Function : Lists Files in current file area
CString : None
Command Key: FM
Function : Bidirectional Transfer
CString : None
Notes : For bidirectional protocols, you need to create
: a progam that will convert the protocol's log
: files to a DSZLOG compatible log. The filename
: should be the same as the 'LOGNAME' option in
: the config with a U or D as the last part of the
: extension. IE: If you had C:\OBV\DSZLOG. The
: filename would be C:\OBV\DSZLOG.1U or DSZLOG.1D.
: U for upload, and D for download.
Command Key: FN
Function : Newscans File Areas, asks if you want to scan
: them all
CString : None
Command Key: FO
Function : Shows info for files
CString : FILENAME or # - Will ask if None is Specified
CString : None
Command Key: FR
Function : Resumes file(s)
CString : FILENAME or # - Will Ask if None is Specified
Command Key: FS
Function : Sets File Area
CString : Area # - if zero, Obv/2 will prompt
Command Key: FT
Function : Type file(s)
CString : FILENAME or # - Will Ask if None is Specified
Command Key: FU
Function : Upload
CString : None
Command Key: FV
Function : Views files
CString : None
Command Key: FX
Function : Extract file(s)
CString : FILENAME or # - Will Ask if None is Specified
Command Key: FY
Function : File Status
CString : FILENAME or # - Will Ask if None is Specified
Command Key: FZ
Function : Search for File
CString : None
Command Key: F[
Function : Previous Area
CString : None
Command Key: F]
Function : Next Area
CString : None
Command Key: F|
Function : Generate Complete File List
CString : None
-------------------------------------------------------------
J = Join Conference
-------------------------------------------------------------
Command Key: JF
Function : Joins Relative File Conference
CString : Conference # - Will ask if None is Specified.
: If the User types, Q, the fail flag will be set
: Otherwise it will not be. What Relative
: Conference means is the number of the conference
: that the user sees This means, that if there are
: 3 conferences to which user has access, the
: relative file conference number corresponds
: to the number of the conference in the listing
Command Key: JM
Function : Joins Relative Message Conference
CString : Conference # - Will Ask if None is Specified
: If the User types, Q, the fail flag will be set
: Otherwise it will not be What Relative
: Conference means is the number of the conference
: that the user sees This means, that if there are
: 3 conferences to which user has access, the
: relative file conference number corresponds
: to the number of the conference in the listing
Command Key: JS
Function : Joins Absolute Message Conference
CString : Conference ID #
: Will set the message conference to the
: conference that has the conference ID of the
: Cstring. Unlike the relative conferences
: the number never varies, however with this
: command, a user can join a deleted conference or
: one to which he does not have access
Command Key: JT
Function : Joins Absolute File Conference
CString : Conference ID #
: Will set the message conference to the
conference that has the conference ID of the
Cstring. Unlike the relative conferences the
number never varies, however with this command,
a user can join a deleted conference or one to
which he does not have access
-------------------------------------------------------------
M = Message Commands
-------------------------------------------------------------
Command Key: MB
Function : Backwards title scan
CString : None
Command Key: MC
Function : Newscan Config for the current conference
CString : None
Command Key: MD
Function : Deletes a Message
CString : None
Command Key: ME
Function : Edits a Message
CString : None
Command Key: MF
Function : Message Newscans all areas
CString : None
Command Key: MH
Function : Sets Message Header
CString : 0 = Internal
: 1 = External
Command Key: MI
Function : Inits Message Bases in this conferences
CString : None
Command Key: ML
Function : Lists Message Bases in this conference
CString : None
Command Key: MN
Function : Newscans w/ prompt to scan all
CString : None
Command Key: MP
Function : Posts Message
CString : None
Command Key: MR
Function : Reads Messages
CString : None
Command Key: MS
Function : Selects Message Base
CString : # of Messages base - if 0 Obv/2 will prompt
Command Key: MT
Function : Reads Messages in this base in reply reading
: newscan
CString : None
Command Key: MU
Function : Lists Users w/ access to this conference
CString : None
Command Key: MV
Function : Reads Messages in this base w/ normal reading
: newscan
CString : None
Command Key: MW
Function : Forward Title Scan
CString : # of message to start scan
Command Key: M[
Function : Previous Message Base
CString : None
Command Key: M]
Function : Next Message Base
CString : None
Command Key: M!
Function : Download Message Capture
CString : None
Command Key: N#
Function : Reads the message with the # specified in the
: CString
CString : Message # to read.
Command Key: NA
Function : Reads the current message again.
CString : None
Command Key: NB
Function : Backward thread of messages.
CString : None
Command Key: ND
Function : Delete current message.
CString : None
Command Key: NE
Function : Edits the current message.
CString : None
Command Key: NI
Function : Sets the fail flag to true if the user is at the
: last message.
CString : None
Command Key: NL
Function : Sets the fail flag to true if the user is at the
: last message base.
CString : None
Command Key: NN
Function : Reads next message.
CString : None
Command Key: NO
Function : Backward title scan from current message.
CString : None
Command Key: NR
Function : Reply to the current message.
CString : None
Command Key: NT
Function : Forward title scan from current message.
CString : None
Command Key: NU
Function : Update current message as lastread message.
CString : None
-------------------------------------------------------------
Q = QWKMail Menu
-------------------------------------------------------------
Command Key: QM
Function : Make QWK Packet
CString : None
Command Key: QR
Function : Receives REP Packet
CString : None
-------------------------------------------------------------
R = Top Ten Listing
-------------------------------------------------------------
Command Key: RA (Top Ten #1)
Function : Top Ten List by Top Uploaders
CString : Header
Command Key: RB ( Top Ten #2)
Function : Top Ten List by Worst Uploaders
CString : Header
Command Key: RC (Top Ten #3)
Function : Top Ten List by Top Downloaders
CString : Header
Command Key: RD (Top Ten #4)
Function : Top Ten List by Worst Downloaders
CString : Header
Command Key: RE (Top Ten #5)
Function : Top Ten List by Top PCR
CString : Header
Command Key: RF (Top Ten #6)
Function : Top Ten List by Worst PCR
CString : Header
Command Key: RG (Top Ten #7)
Function : Top Ten List by Top K Uploaded
CString : Header
Command Key: RH (Top Ten #8)
Function : Top Ten List by Worst K Uploaded
CString : Header
Command Key: RI (Top Ten #9)
Function : Top Ten List by Top K Downloaded
CString : Header
Command Key: RJ (Top Ten #10)
Function : Top Ten List by Worst K Downloaded
CString : Header
Command Key: RK (Top Ten #11)
Function : Top Ten List by Top Posters
CString : Header
Command Key: RL (Top Ten #12)
Function : Top Ten List by Worst Posters
CString : Header
Command Key: RM (Top Ten #13)
Function : Top Ten List by Top Callers
CString : Header
Command Key: RN (Top Ten #14)
Function : Top Ten List by Worst Callers with header in
: Cstring
CString : Header
-------------------------------------------------------------
S = Message Base Sponsor
-------------------------------------------------------------
Command Key: SE
Function : Edit Current Message Base
CString : None
Command Key: SK
Function : Kill Current Message Base
CString : None
Command Key: SM
Function : Make Message Base
CString : None
Command Key: SP
Function : Packs Message Bases
CString : None
Command Key: SR
Function : Reorders Message Bases
CString : None
Command Key: S@
Function : Toggles Access to all file bases
CString : None
-------------------------------------------------------------
T = File Sponsor Commands
-------------------------------------------------------------
Command Key: TA
Function : Add Files
CString : None
Command Key: TC
Function : Offline Clean Up, takes files that are not
: present out of the file listings
CString : None
Command Key: TD
Function : Delete Files
CString : FILENAME or # to start list - Will Ask if None
: is Specified
Command Key: TE
Function : Edit Current File Area
CString : None
Command Key: TF
Function : Move Files
CString : FILENAME or # to start list - Will Ask if None
: is Specified
Command Key: TK
Function : Kill File Area
CString : None
Command Key: TM
Function : Make File Area
CString : None
Command Key: TP
Function : Global Point Reassign
CString : None
Command Key: TR
Function : Re-Order Areas
CString : None
Command Key: TS
Function : Sort Areas
CString : None
Command Key: TT
Function : Offline Tag, Tags files that are not there as
: offline and offline : files that have been
: returned as online.
CString : None
Command Key: TU
Function : Global Local Upload
CString : None
Command Key: TV
Function : File Validation
CString : None
Command Key: T@
Function : Toggles Access to all file areas
CString : None
-------------------------------------------------------------
V = Voting Commands
-------------------------------------------------------------
Command Key: VA
Function : Add Question
CString : None
Command Key: VC
Function : Checks for unanswered mandatory questions
CString : None
Command Key: VD
Function : Deletes voting question
CString : # of voting question to delete - will prompt if
blank
Command Key: VL
Function : Lists Voting Questions
CString : None
Command Key: VR
Function : Answers Voting Question
CString : # of voting question - Will Prompt if zero
Command Key: VS
Function : Shows Results to Voting Question
CString : # of voting question - Will Prompt if zero
-------------------------------------------------------------
+ = Color Setting Commands
-------------------------------------------------------------
Command Key: +1
Function : Sets Regular Color
CString : Color (ie 15 would set to white)
Command Key: +2
Function : Sets Prompt Color
CString : Color
Command Key: +3
Function : Sets Input Color
CString : Color
Command Key: +4
Function : Sets Inverse Color
CString : Color
Command Key: +5
Function : Sets Stat Color
CString : Color
Command Key: +6
Function : Sets Box Color
CString : Color
Command Key: +S
Function : Sets your colors to the default colors defined
: in the System Configuration
CString : None
-------------------------------------------------------------
Oblivion/2 Menu Editor
-------------------------------------------------------------
Oblivion/2's Menu Editor is much like Telegard /
Renegade's Menu editing system. There are some expanded
functions that should be known.
The main menu editing interface consists of 9 commands.
A sample of the interface is shown below. (Scaled down)
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Menu Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Name : BBS List │
│ (B) Password : │
│ (C) Fallback Menu : │
│ (D) Help ID : BBSLIST │
│ (E) Name In Prompt : BBS List │
│ (F) Menu Title : BBS List │
│ (G) Pulldown ANSI : │
│ (H) Edit Options │
│ (I) Generic Menus │
╘═══════════════════════════════════════════════════════════╛
(A) The first command is plain and simple... The name of
the menu. It is there for the user's reference.
(B) A Password for the menu can be specified.
(C) A Fallback menu. This is the menu that will be used
as a return of fallback. If no fallback is
specified, then the system will make the last menu
in the stack as the default fallback.
(D) This is the ID for the file to be hardcoded when
Menu Libraries are coded. (ie: MAIN = MAIN.ANS in a
menu LIB file)
(E) Menu Title To Be Displayed in the menu prompt.
(F) (Reserved) There may be utilities that may use them
such as ones that will generate generic menus that
look half-way decent. That is if anyone gets around
to writing the utility.
(G) Pulldown Ansi. This option will be explained
further in the documentation.
(H) Allows Editing of the menu's actual options
(I) Displays a generic menu.
Most of these options are pretty much self
explanitory, so if you don't understand what one does
- experiment.
-------------------------------------------------------------
(H) Edit Options. The following is a sample screen
of the option editor.
1 FIRSTCMD D* 2 A* -A 3 A* DA
4 D* DD 5 L* DL 6 S* DS
7 Q* -\
(A)dd (C)hange (D)elete (M)ove (Q)uit :
From this menu there isn't all that much to do. You
can simply add, delete, move, or change menu
functions.
To Edit an option, hit C then the option number.
The following screen will be displayed.
╒═══════════════════════════════════════════════════════════╕
│Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : │
│ (C) Hidden : No │
│ (D) Command Keys : D* │
│ (E) Keys : *D │
│ (F) Command String : 1 │
│ (G) Pulldown ID : 0 │
│ (+) Next Option │
│ (-) Previous Option │
╘═══════════════════════════════════════════════════════════╛
(A) Option Name - Name Of the option the way you
want it displayed in a generic menu. (This is
also used in a pulldown menu. SEE Pullown Menus
for more)
(B) ACS - Access Level, Flag, or other restriction
to use for this option.
(C) Hidden - Determines if the option name will be
displayed in a generic menu. (This is also used
in pulldown menus)
(D) Command Keys - The actual Command that will be
executed.
(E) Keys - this is the key, or keys used to execute
the command. You can put FIRSTCMD to execute the
command when the user goes to the menu or EACH
to do it before the prompt is drawn, every time
the user is at the menu.
(F) Command String - Some commands will allow the
use of a command string. See each command for a
command string(s) if any.
(G) Pulldown ID - This is used in pulldown menus.
(SEE Pulldown Menus for more)
-------------------------------------------------------------
In the Pulldown Filename, there can be the following:
<blank>
Draws Menu Prompt with the name in the prompt in the prompt
and does standard input
::X
Where X is a letter in the alphabet. Randomly picks a
letter from A to X, and will act as if the user pressed
that key.
Example: Random Matrices
The above command can be used to easily make random
matrices. Say that you have 4 matrices that you want to
randomize. Since D is the 4th letter of the alphabet, your
pulldown filename will be ::D. (Without the period) In your
MATRIX.MNU, you'll have need to have four commands with the
'Key' Field set to A,B,C,D. Now, for each command, you'll
want it to go to a different menu. That new menu will be
one of your matrices. Here's an example of one command that
you'll have in the MATRIX.MNU.
Description : Go to DOS Matrix
Hidden : No
Command Keys: -^ (GOTO Menu)
Key : A
CString : DOSMAT
Do the same thing for the other 3 letters. Note that you
can't have other commands in the menu as they won't be
executed. Only commands that will be executed will be the
ones with the keys A-D.
N
Writes the Name in the Prompt alone
May Contain:
^R - Regular Color ^S - Status Color
^P - Prompt Color ^E - Input Color
^V - Inverse Color ^X - Box Color
^M - Goes down a line
Using The Following To End:
/ Yes/No Bar Prompt beginning with No
\ Yes/No Bar Prompt beginning with Yes
= Yes/No/Quit Bar Prompt Beginning with Yes
| Yes/No/Quit Bar Prompt Beginning with No
@ Yes/No/Quit Bar Prompt Beginning with Quit
* Inputs String
: Inputs String with a : in a different color
# Hotkey without Echo
) Hotkey with Echo
( Sets the string equal to the Input Question
varaible set with -I, -J, or -M
All pipe codes are also applicable in this prompt.
This command is used to make menus that ask questions,
create hotkeyed type menus, or get input from users.
Bx
Does Bar selection menu with x number of columns
R
Uses a one-line bar menu. When creating command stacks,
make sure to only put a description on the first option in
the stack, otherwise your whole command stack will appear
on this menu. Also, make sure that all options don't exceed
80 colums, as this is a ONE line bar menu. If your options
exceed the 80 column limit, use the bar menus.
<filename.ext>
With this option in the menu editor, you can create your
own pulldown menus! You'll need to create an ansi design for
your menu and add in a few MCI codes to tell the BBS where to
place information. There are two types of MCI codes that
you'll need to use for this menu. The first, |xx, tells the
BBS where to put the highlight bar. The second type is the
%xx, this tells the BBS what color to use when the option is
not highlighted. When you place these codes in your ansi, it
becomes practical to place them next to each other like this.
|xx%xx.
These xx's must be replaced by numbers so that the BBS
knows which option to execute. Thats where the pulldown ID
field of the menu editor comes into play. You need to give
each one of your options a unique ID#. Start at 1 for the
first option, and then use 2 for the second option and so on.
If you're stacking commands for a certain part of your menu,
only give the first command a pulldown ID.
So, say you want to make a pulldown matrix with 5
options. Logon, Check, Apply, Feedback, and Logoff. Create
your MATRIX.MNU, and add in each of these 5 options. (Look at
the above documentation for all of the menu commands to use).
After that is done, go back and place a pulldown ID for each
option. Since you have 5 options, and no command stacking,
just give login a pulldown ID of 1, Check a 2, Apply a 3,
Feedback a 4, and Logoff a 5. After you've done this, create
your ANSI for the pulldown menu. Put in the MCI codes as
described above, and your menu is all ready to go.
Now, say that you wanted to make that same matrix but you
wanted to use some type of command stacking in it. For
example: Say that you want the BBS to login a user after
they've checked and found out that they have access. This is
done by using the failflag and a few menu commands. Since
this option requires more than one menu command, it's called
a command 'stack'. Now, the first option in this stack is
going to be the check command. Only use the pulldown ID for
this command, and not for any other command in the stack.
(For this example, the other command would be the Drop into
BBS menu command {X. Make sure not to give that a pulldown
ID.)
Now, you're probably wondering why you only put an ID on
the first command in the stack. Think about it this way, you
only want the pulldown bar to go onto the options that the
user can execute, and not commands that you've customized to
perform more than one function. Only the first function
should have the ID.
Instead of only using up and down in your pulldowns, you
can use left and right. Below are the sybmols that you'll
need to use in the "Keys" field for the BBS to recognize left
and right.
Left : ╦ (ALT-203)
Right: ═ (ALT-205)
If you want to use left/right, make the option(s) hidden, and
give them a pulldown ID of 0.
Another handy option that you might consider using is the
hidden flag. You can make a hidden option that doesn't appear
on the pulldown menu, but that the user can execute via
hotkey. So, give your hidden option a pulldown ID of 0, and
turn on the hidden flag, and the command will become
hotkeyed, and you'll be able to execute it w/o using the bar.
There is wildcarding for menu commands:
If you set the Key to X*, then you can put * in the
Cstring and that will put what follows the X in the
Cstring. This is advisable for such cases as file
conference jumping such as J* with would do JM with a
Cstring of * so one could J1,J2, etc.
Also a possibility for CString is & in which is set to the
input gotten with -I, -J, or set with -*.
There are a few special menus in the editor. One, called
MATRIX.MNU, is your logon matrix. You can call other menus
with it, but your starting menu must be MATRIX.MNU. A second
important menu is called GLOBAL.MNU. In this menu, every
command will you add will be valid on every other menu.
(Example, adding a goodbye command into the GLOBAL.MNU will
allow your users to hang up at any menu.)
A second thing you'll see mentioned in the menu editor
is called 'Command Stacking'. Think of this as command
linking. One command can do more than one operation. For
example, you can have a command that clears the screen (-L),
and prints a file to the screen (-F). To do this, you need to
make your 'Keys' Field in the menu editor identical. Example:
Create a command with 'Keys' as "T". Make one command with
the 'Command Keys' as -L, and another with 'Command Keys' as
-F. Make sure the 'Keys' field is "T" in both. Notice now,
that the command will first clear the screen (-L), and then
print a file (-F) (Enter a filename in the Cstring of the -F
command). This is a simple example, but the idea is the same.
Stacks get bigger and more complicated, but the general idea
stays the same. (Notice examples below)
Examples:
GOODBYE.MNU - Pulldown Logoff Verify Menu
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Menu Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Name : │
│ (B) Password : │
│ (C) Fallback Menu : │
│ (D) Help ID : │
│ (E) Name In Prompt : │
│ (F) Menu Title : │
│ (G) Pulldown ANSI : LOGOFF.ANS │
│ (H) Edit Options │
│ (I) Generic Menus │
╘═══════════════════════════════════════════════════════════╛
Use Pulldown Ansi LOGOFF.ANS
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : │
│ (C) Hidden : Yes │
│ (D) Command Keys : [G │
│ (E) Keys : Y │
│ (F) Command String : │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
Y as a hotkey to logoff
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : │
│ (C) Hidden : Yes │
│ (D) Command Keys : -\ │
│ (E) Keys : N │
│ (F) Command String : │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
N as a hotkey to go back
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : Yes │
│ (B) ACS : │
│ (C) Hidden : No │
│ (D) Command Keys : [G │
│ (E) Keys : 1 │
│ (F) Command String : │
│ (G) Pulldown ID : 1 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
" Yes" will appear in pulldown option 1 and when selected it
will do a logoff.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : No │
│ (B) ACS : │
│ (C) Hidden : No │
│ (D) Command Keys : -\ │
│ (E) Keys : 2 │
│ (F) Command String : │
│ (G) Pulldown ID : 2 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
" No" will appear in pulldown option 1 and when selected it
will go back.
Another example, the not very nice case. This was devised by
me, Darkened Enmity for Whiplash. He wanted to use a
pulldown menu to select file conferences. I got the idea of
the -* command and the use of & in the CString. I knew that
would work, and the next day I wrote out the codes. This is
the CONFHAND.MNU for you to look at since it is complex,
but will allow you to understand how things are done. There
is a menu called CONFSEL.MNU that will select the file
conference in a pulldown. CONFHAND is called like this:
Command 1 in Stack:
Command Keys : -*
Keys : T*
Command String: *
Command 2 in Stack:
Command Keys : -/
Keys : T*
Command String: CONFHAND
Now here is CONFHAND.MNU:
╒═════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Menu Editor │
╘═════════════════════════════════════════════════════════╛
╒═════════════════════════════════════════════════════════╕
│ (A) Name : │
│ (B) Password : │
│ (C) Fallback Menu : │
│ (D) Help ID : │
│ (E) Name In Prompt : │
│ (F) Menu Title : │
│ (G) Pulldown ANSI : │
│ (H) Edit Options │
│ (I) Generic Menus │
╘═════════════════════════════════════════════════════════╛
Not very interesting, but then the user does not even know
that it is doing anything.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : │
│ (C) Hidden : No │
│ (D) Command Keys : -S │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : -B │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
Turns off the B user flag. It will be used later in the menu
as an indicator.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : │
│ (C) Hidden : No │
│ (D) Command Keys : -M │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
Compares the inputted variable with a blank string.
Remember, before CONFHAND was called, the inputted variable
was set to what was entered after T by the -* command. If
what was entered was blank, the failflag is false, otherwise
it is true.
╒══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘══════════════════════════════════════════════════════════╛
╒══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : \ │
│ (C) Hidden : No │
│ (D) Command Keys : -S │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : +B │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘══════════════════════════════════════════════════════════╛
This command will be executed if the failflag is true, in
other words, what was entered after T was not blank.
Therefore, if the user had type T1, then
B will be set, otherwise it remain blank.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : fB │
│ (C) Hidden : No │
│ (D) Command Keys : JF │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : & │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
If flag B is set, the BBS will do a file conference jump to
that conference. A trace through up until this point: User
enters Txxx xxx is put into the input variable The BBS
compares xxx to a blank string They are not equal, flag B is
set The BBS joins relative file conference xxx
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : fB │
│ (C) Hidden : No │
│ (D) Command Keys : -C │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
Turns failflag off, thats necessary to know if the next
command failed.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : fB │
│ (C) Hidden : No │
│ (D) Command Keys : FI │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
Tries doing a file initialization. If its successful, fail
flag is still false.
╒══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘══════════════════════════════════════════════════════════╛
╒══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : fB~\ │
│ (C) Hidden : No │
│ (D) Command Keys : -^ │
│ (E) Keys : FSCAN │
│ (F) Command String : │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘══════════════════════════════════════════════════════════╛
If flag B is set and the file init was successful, the BBS
will go to FSCAN, the menu that asks if you want to scan the
file bases.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : fB │
│ (C) Hidden : No │
│ (D) Command Keys : -^ │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : MAIN │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
If flag B is set, meaning the BBS would have tried initing
the file section and was not successful, and the BBS is still
reading CONFHAND, then the BBS will go to the main menu.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : │
│ (C) Hidden : No │
│ (D) Command Keys : -^ │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : CONFSEL │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
If you are still in this menu, meaning that the user did not
enter anything at the prompt, then go right ahead to CONFSEL.
Yeah, a complex example that does not do much physically,
yeah, I know, but it demonstrates a lot, plus it shows some
similarities between high-level menu editing and assembly.
SECTION 14: MESSAGE / FILE BASE SETUP
─────────────────────────────────────
Setting up message and file bases is quite easy. Both
message and file bases have editors for easy changing of
options. In the message menu, the editor looks just like
this:
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Base Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Base Name : System News │
│ (B) Access ACS : S30 │
│ (C) Post ACS : S255 │
│ (D) Allow Anonymous: No │
│ (E) Sponsor : Lord Tracer │
│ (F) Origin Line : │
│ (G) EchoMail Dir : │
│ (H) NetMail : No │
│ (I) Node : │
│ (J) QWKName : SYSNEWS │
│ (K) Autodelete : 200 │
│ (L) Real Names : No │
│ (M) Base File Name : NEWS │
│ (N) Mandatory : Yes │
│ (O) Allow Private : No │
╘═══════════════════════════════════════════════════════════╛
Base Name - Name of message base.
Access ACS - ACS required to get into message base.
Post ACS - ACS required to post in message base.
Allow Anonymous - Can users post anonymously in this
message base?
Sponsor - Pseudo-SysOp. Can delete all messages,
read all messages in the current base.
Origin Line - Line BBS adds to the end of a
echomailed message. Usually showed BBS
name and #. Pipe codes supported.
Echomail directory - Directory where echomail MSG files
will be held, imported, and exported
from.
Netmail - Should this base support private
netmail through Fidonet mail. For this
option to work, you must compile a copy
of your nodelist and place it in your
Echomail directory. Compile the
nodelist as filename nodelist.dat, and
using BINKLEY6 format. The reason you
must compile the nodelist in the
echomail directory is for the nodelist
lookup function of the BBS. The BBS
will allow users to search the nodelist
for the node that they wish to send
netmail to.
Node - Assigned to you by your network
moderator. Basically shows location.
Form varies, but usually its X:XXX/XXX.
QWKName - Shortened name of the message base to
be displayed to users in their offline
readers. Most offline readers cannot
support message base names over 10-12
spaces. Use this option so that users
can better recognize which base they
are in from their reader.
Autodelete - How many total messages do you want in
the message base. When the # of
messages in the base is equal to the
number in this field, 5 messages will
be erased. This keeps your message base
files from growing increasingly large.
Real names - Should the user's real name be used in
place of a handle in this message base?
Base filename - This is an up to 8 character filename
that the BBS will use to store your
messages in.
Mandatory - When this flag is set to Yes, all the
messages in this base will be forced.
Users must read these messages. Use
message bases like this for news.
Allow private - Should users be able to post private
messages in this base. Use this flag if
the network you're in supports private
echomailing.
Using the base filename, you can create a 'shared'
message base. What this means is that you can have the same
message base in more than one conference, or if you run
multiple Systems, can have it on two different boards. (ie:
System one, and System two can have identical message bases
if the sysop should wish). To create a shared message base,
use the same base filename in two message areas. They will
then be shared. Once you post a message in one area, it will
appear in both, and vice versa. When you wish to remove a
shared message base, you have an option. You can either
delete the data file, or leave it. By deleting the data file
in a shared area, both message bases that were sharing that
data file will lose all of their messages. By leaving the
data file there, you can remove the base from one place, but
keep it in another.
To create a message base for system news, it takes a few
simple steps. First, create a message base, and name it
System news, or whatever you want. Fill out the rest of the
questions. When you come to 'Mandatory', turn it to Yes. When
a user logs on, the BBS will check this message base for new
posts, and then proceed to show them to the user. (Look at
the example screen for the message base editor. This is an
ideal setup for news.)
Another thing to be clear about: If you ever have a base
that you are using for echomail, and want to turn off
echomail, do this: Edit the Import/Export directory setting,
and then press 'CTRL-Y'. The field will be cleared. Press
enter. Now, this base is no longer an echomail base, but now
a normal message base.
When going to edit a file base, you will be presented
with a similar looking editor. It looks a little like this:
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Area Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Area Name : New Uploads │
│ (B) Access ACS : S25 │
│ (C) Upload ACS : S25 │
│ (D) Download ACS : S25 │
│ (E) List ACS : S25 │
│ (F) Sponsor : Lord Tracer │
│ (G) Password : │
│ (H) Area File Name : UPLOADS │
│ (I) Path : C:\UPLOAD\ │
│ (J) Default Sort : F │
╘═══════════════════════════════════════════════════════════╛
Area Name - The name of the current file area.
Access ACS - ACS required to enter the file area.
Upload ACS - ACS required to upload to the area.
Download ACS - ACS required to download from the area.
List ACS - ACS required to list files in the area.
Sponsor - Pseudo SysOp of the file area. User
gets extended functions.
Password - Password required to enter file area.
Area filename - Filename (w/o extension) that the BBS
will use to store file information for
the current area.
Path - Path to the files for this area.
Default sort - Sort type to use when sorting the file
areas. (example: F=filename,
E=extension etc..)
You may also create 'shared' file areas. Read the above
paragraphs for explanations on how to do this.
SECTION 15: THE UPLOAD CHECKER
──────────────────────────────
The upload checker will check all uploaded files for CRC
errors, viruses, age, and can optionally add/delete files, or
add a comment to your uploaded files. Operation of the
checker is quite simple. It only requires the creation of one
screen. This screen, called ULCHECK.ANS, will be the display
to the user when files are being checked. Making this screen
is really easy, there are a few MCI codes to use in the
screen. They are as follows:
|FN - Filename
|B1 - ■ in CRC Checking.
|M1 - Strings displayed during CRC checking.
|B2 - ■ in virus scanning.
|M2 - Strings displayed in virus scanning.
|B3 - ■ in age tests.
|M3 - Strings displayed during age testing.
|B4 - ■ in deleting files from archive.
|M4 - Strings displayed during deleting.
|B5 - ■ in adding files.
|M5 - Strings displayed in adding files.
|B6 - ■ in comment adding.
|M6 - Strings displayed when adding comments.
|B7 - ■ in file maintainence. (MAINTAIN.BAT)
|M7 - Strings displayed when running MAINTAIN.BAT.
These codes are pretty easy to figure out. Each option
has a blinking ■ that is displayed when that operation is in
process. When the option completes, the ■ will stop blinking.
The |Bx MCI goes where you want the ■ to go for each option.
The |Mx MCI codes go where you want any progress/error
messages displayed about the current operation. All of these
messages can be configured via the string editor.
All of the setup for the upload checker is done in the
CONFIG program, specifically under 'System Options #2'. You
can completely toggle off the checker, or certain operations
of it by leaving the field blank. For example, if you don't
want to add any files to your checked files, then leave
'Files to add' in the CONFIG blank. The same goes for
commenting, or scanning.
A nice feature of the upload checker is that it can
perform age constraint testing on your uploaded files. In
System Options #2, there is a date field. Set this to
whatever you want, and if the newest file is older than the
date specified, the file will fail the upload checking.
The unique part of the upload checker is that you can
perform additional maintainence via a batch file called
MAINTAIN.BAT. (Note: FILE_ID.DIZ checking is now internal to
the upload checker, so you don't have to create a special
maintain.bat that will extract FILE_ID.DIZ). There are two %
codes that can be used in the maintain.bat. These are %1 for
filename, and %2 for path of the work directory. Note that %2
will also include the trailing backslash of the work
directory's path.
SECTION 16: CONFIGURABLE ARCHIVERS
──────────────────────────────────
The configurable archiver system allows the SysOp to
setup multiple archivers, and allow the BBS to use these
archivers for various operations. You can configure as many
archivers as you want, and the users will be able to choose
which archiver they want to use. The BBS will then use their
default choice to pack QWK packets, pack message captures,
pack filelists etc, View Files, Extract Files etc..
Another good thing about the archiver system is that it
can automatically detect what type of archive it's working
with. It doesn't use the extension, but it uses the signature
to find out what type of archive is present. A signature is a
certain identification string that lets you identify what
type of archive is being used. More on this will be explained
later.
Editing, and adding archivers is quite simple. The menu
command for configurable archivers is *Z. Once you're in the
archiver editor, the screen will look a bit like this:
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Archiver Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Archive Name : PKZIP │
│ (B) Archive Ext. : ZIP │
│ (C) Use Zip Viewer : Yes │
│ (D) Swap for Coms : Yes │
│ (E) Compress Com : PKZIP.EXE %1 %2 │
│ (F) Extract Com : PKUNZIP.EXE %1 %3 %2 │
│ (G) View Com : VIEWZIP.BAT │
│ (H) Make SFX Com : ZIP2EXE.EXE %1 │
│ (I) Test Com : PKUNZIP.EXE -T %1 │
│ (J) Add Comment Com: ADDCOM.BAT │
│ (K) Add Files Com : PKZIP.EXE -A %1 %2 │
│ (L) Sig String : PK │
│ (M) Sig Location : 1 │
│ (N) List Prefix : @ │
│ (=) Insert Archiver │
│ (-) Delete Archiver │
└═══════════════════════════════════════════════════════════╛
The above commands will be explained here:
Archive name - Enter the name of the archiver.
Archive extension - Enter the extension that this archiver
produces.
Use ZIP viewer - This toggles the use of the Obv/2
internal ZIP viewer. Only turn this on
if the archiver is ZIP compatible.
Swap for commands - If you want the BBS to swap to DISK/EMS
XMS before running archiver commands,
turn this option on.
Compression command - Place the command that the archive uses
to compress files. %1 = Path and
filename, and %2 = wildcard. (All of
this will be filled in by the BBS.)
Extraction command - Place the command that the archive uses
to extract files. %1 = Path and
filename, %2 = wildcard, and %3 = Path
to your work directory.
View command - Place the command that the archive uses
to view files. You must force output to
a file using DOS redirection commands,
BUT you must do this using a batch file
. The file that contains the output
from the archiver must be named
ARCLIST. and it must be in your work
directory. %1 = Path and filename, %2
= wildcard, and %3 = path to your work
directory. Here is an example batch
file:
@%2..\PKUNZIP.EXE -V %1>%2ARCLIST.
See the example above if you don't
understand how to redirect the output
of the archiver.
Make SFX command - This is the command that the archive
uses to create Self-Extracting (.EXE)
archives. %1 = Path and filename, %2 =
wildcard, and %3 = path to your work
directory.
Add comment command - This is the command that the archive
uses to add comments to the archive.
Again, you must follow the above
example of redirection with a batch
file. %1 = Path and filename, and %2 =
Comment file. You can setup this file
in the CONFIG under System Options #2.
Add files command - This is the command that the archive
uses to add additional files to an
archive. %1 = Path and filename, and %2
= the files to add to the archive. This
also can be configured via System
Options #2 in the CONFIG.
Signature String - This is the signature identification of
the archiver. Each archiver has a
certain ID string that it uses to
identify archives that it made. For
example, PKZIP puts a PK in the first
two bytes of its files. This lets PKZIP
know that any file with a PK in the
first two bytes was created by PKZIP.
If this ID changes, like in LHA, you
can use a ? in the signature location
to signify a wildcard. You MUST have
other letters that the program can
search for. DO NOT JUST PUT ? in the
sig string! You must enter all of the
signature ID's in HEX format. So, go
into a hex editor, and find the
signature and its location, then enter
the string in HEX.
Signature location - This is the location in bytes of the
starting location of the signature
string. So, if the first two letters
of the archive are PK, then you'd put
1 in this field.
List prefix - Many archivers use a certain charater
when you want the program to read in a
list of files from a textfile. IE: In
PKZIP, you can ZIP a group of files
that you specify in a textfile like
this: PKZIP OBV2-210.ZIP
@C:\OBV2\OBV2.LST It will ZIP up all
of the files in OBV2.LST. Well, as you
can see, you had to preceed that file
by a @. This @ is the list character.
Enter the list character in this
field.
Add/Insert Archiver - Self-Explanatory.
The members of the Oblivion/2 team, and all Oblivion/2
SysOps would like to thank you for your interest in
Oblivion/2. I hope this documentation helped you resolve many
of your problems with the BBS. Thank you for your support of
Oblivion/2, the leader in telecommunications excellence!