more work on docs

This commit is contained in:
Andrew Pamment 2018-02-04 12:15:26 +10:00
parent 652c28faee
commit 223705d6b3
3 changed files with 80 additions and 3 deletions

View File

@ -60,13 +60,17 @@ Here is an example script I use for Freshwater Fishing:
export SDL_VIDEODRIVER="dummy" export SDL_VIDEODRIVER="dummy"
NODE=$1 NODE=$1
SOCKET=$2 SOCKET=$2
trap '' 2
if [ ! -e /home/pi/MagickaBBS/doors/ffs.inuse ]; then if [ ! -e /home/pi/MagickaBBS/doors/ffs.inuse ]; then
touch /home/pi/MagickaBBS/doors/ffs.inuse touch /home/pi/MagickaBBS/doors/ffs.inuse
cp /home/pi/MagickaBBS/node${NODE}/door.sys /home/pi/MagickaBBS/doors/ffs/ cp /home/pi/MagickaBBS/node${NODE}/door.sys /home/pi/MagickaBBS/doors/ffs/
/usr/local/bin/dosbox -socket $SOCKET -c "C:\ffs\ffs.bat ${NODE}" -conf /home/pi/MagickaBBS/doors/dosbox.conf /usr/local/bin/dosbox -socket $SOCKET -c "C:\ffs\ffs.bat ${NODE}" -conf /home/pi/MagickaBBS/doors/dosbox.conf
rm /home/pi/MagickaBBS/doors/ffs.inuse rm /home/pi/MagickaBBS/doors/ffs.inuse
fi fi
trap 2
This will just dump the user back to the BBS if the door is in use. You could get fancy and use the 'inuse' door I created which will display an in-use message and then quit ([INUSE Door](https://github.com/apamment/inuse)), but that is outside the scope of this document. This will just dump the user back to the BBS if the door is in use. You could get fancy and use the 'inuse' door I created which will display an in-use message and then quit ([INUSE Door](https://github.com/apamment/inuse)), but that is outside the scope of this document.

View File

@ -78,12 +78,15 @@ until you have a directory for each node.
Finally, the script for running tinys hangman, thang.sh Finally, the script for running tinys hangman, thang.sh
#!/bin/bash #!/bin/bash
trap '' 2
NODE=$1 NODE=$1
cp /home/someuser/MagickaBBS/node${NODE}/dorinfo1.def /home/someuser/MagickaBBS/doors/thang/node${NODE}/ cp /home/someuser/MagickaBBS/node${NODE}/dorinfo1.def /home/someuser/MagickaBBS/doors/thang/node${NODE}/
/usr/bin/dosemu -quiet -f /home/someuser/MagickaBBS/doors/dosemu.conf -I "dosbanner 0" -E "D:\THANG\THANG.BAT ${NODE}" 2>/dev/null /usr/bin/dosemu -quiet -f /home/someuser/MagickaBBS/doors/dosemu.conf -I "dosbanner 0" -E "D:\THANG\THANG.BAT ${NODE}" 2>/dev/null
trap 2
You can then edit your doors.ini to include: You can then edit your doors.ini to include:

View File

@ -6,10 +6,58 @@ Next, add scripts!
## Menu Scripts ## Menu Scripts
Each menu can have a script function that runs to display the menu, read the hotkey and return the key to the BBS.
This is the script for the mail menu.
function menu()
-- clear the screen
bbs_write_string("\027[2J");
-- display menu ansi
bbs_display_ansi("mailmenu");
-- display the current mail conference and area
local dir_no;
local dir_name;
local sub_no;
local sub_name;
dir_no, dir_name, sub_no, sub_name = bbs_cur_mailarea_info();
bbs_write_string(string.format("\r\n\027[0m \027[0;36mConference: \027[1;34m(\027[1;37m%d\027[1;34m) \027[1;37m%-20s\027[0;36mArea: \027[1;34m(\027[1;37m%d\027[1;34m) \027[1;37m%-20s\r\n", dir_no, dir_name, sub_no, sub_name));
-- display the prompt with the time left
bbs_write_string(string.format("\r\n\027[1;34m [\027[0;36mTime Left\027[1;37m %dm\027[34m]-> \027[0m", bbs_time_left()));
-- read char entered
cmd = bbs_read_char();
-- return the char entered
return cmd;
end
## Login/Logout Scripts ## Login/Logout Scripts
The login and logout functions can also be scripted.
The `login_stanza.lua` script does everything from the point the user logs in until the main menu is displayed.
The `logout_stanza.lua` script runs a logout function that simply displays a good bye ansi and returns 1.
## Utility Scripts ## Utility Scripts
Utility scripts are just scripts that can be called from a menu. They can do anything you like, an example would be a oneliners script.
To run a script from a menu, place the script in the scripts directory, and call it from a menu like this
HOTKEY O
COMMAND DOSCRIPT
DATA oneliners
Where data is the name of the lua script to call without the extension.
## BBS Script Commands ## BBS Script Commands
**bbs_write_string** Takes one string, writes that string to the user. Returns nothing. **bbs_write_string** Takes one string, writes that string to the user. Returns nothing.
@ -18,6 +66,8 @@ Next, add scripts!
**bbs_display_ansi** Takes one string, displays that ansi from the ansis folder (don't include path or extension). Returns nothing. **bbs_display_ansi** Takes one string, displays that ansi from the ansis folder (don't include path or extension). Returns nothing.
**bbs_display_ansi_pause** Takes one string, displays that ansi (with a pause prompt) from the ansis folder (don't include path or extension). Returns nothing.
**bbs_read_char** Reads a character from the user, returns a string with one character in it. **bbs_read_char** Reads a character from the user, returns a string with one character in it.
**bbs_version** Returns a string with the BBS version in it. **bbs_version** Returns a string with the BBS version in it.
@ -40,4 +90,24 @@ Next, add scripts!
**bbs_display_automsg** Displays the current automessage **bbs_display_automsg** Displays the current automessage
**bbs_get_info** Returns 4 strings, the BBS name, the Sysop name, the OS name and the system architecture. **bbs_get_info** Returns 4 strings, the BBS name, the Sysop name, the OS name and the system architecture.
**bbs_file_scan** Performs a file scan.
**bbs_full_mail_scan** Performs a full mail scan (like a mail scan but also displays new messages)
**bbs_get_userhandle** Returns the logged in user's handle
**bbs_message_found** Takes three numbers, the conference, area and the message number, returns one number, 1 if found, 0 if not.
**bbs_read_message_hdr** Takes three numbers, the conference, area and the message number. Returns three strings, the Sender, Recipient and Subject.
**bbs_read_message** Takes three numbers, the conference, area and the message number. Returns one string, the message body.
**bbs_temp_path** Returns a temporary path for the script to store data in. This path is cleared out on login.
**bbs_post_message** Takes 2 numbers and 4 strings, The conference number, the area number, the recipient, the sender, the subject and the body.
**bbs_data_path** Returns a path for script data storage. This is shared with all scripts, so make sure your filenames are unique.
**bbs_user_security** Returns the current user's security level.