more work on docs
This commit is contained in:
parent
652c28faee
commit
223705d6b3
@ -60,13 +60,17 @@ Here is an example script I use for Freshwater Fishing:
|
||||
export SDL_VIDEODRIVER="dummy"
|
||||
NODE=$1
|
||||
SOCKET=$2
|
||||
|
||||
|
||||
trap '' 2
|
||||
|
||||
if [ ! -e /home/pi/MagickaBBS/doors/ffs.inuse ]; then
|
||||
touch /home/pi/MagickaBBS/doors/ffs.inuse
|
||||
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
|
||||
rm /home/pi/MagickaBBS/doors/ffs.inuse
|
||||
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.
|
||||
|
@ -78,12 +78,15 @@ until you have a directory for each node.
|
||||
Finally, the script for running tinys hangman, thang.sh
|
||||
|
||||
#!/bin/bash
|
||||
|
||||
trap '' 2
|
||||
NODE=$1
|
||||
|
||||
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
|
||||
|
||||
trap 2
|
||||
|
||||
|
||||
You can then edit your doors.ini to include:
|
||||
|
||||
|
@ -6,10 +6,58 @@ Next, add 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
|
||||
|
||||
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 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_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_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_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_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.
|
||||
|
Reference in New Issue
Block a user