Manipulating the Cambot
A cambot is an object that controls the recording and editing of game logs.
Players and GMs should be able to:
- determine which cambots exist
- determine which cambots are in use
- "summon" a specific cambot to their location
- "return" a cambot to its home
Other functions:
- When the last Player leaves the room or the last active connection to a Player in the Room is dropped any open log should be closed.
(Should the cambot "return" to its home as well? What happens when someone picks up the cambot and it's on?)
- As part of the general functionality of the library, programs should be able to get a list of DBREFs of:
- existing cambots
- existing screening rooms
- cambots currently recording logs (active cambots)
- rooms where there are currently active cambots
Manipulating Log Files
Once a cambot is in the room with a Player, they should be able to manipulate the settings on the cambot.
They should be able to:
- determine what logs (if any) a cambot contains
- specify a name for a logs
- turn broadcasting (to a screen) on or off
- turn the "OOC filter" on or off
- turn line numbering when the log is viewed on or off
- turn editing of a specific log on or off (read-only)
- turn recording of a log on or off
- view the partial or complete contents of a log
Editing:
- add the description of a Room, Player, or Thing to the log
- clear the entire contents of a log
- delete specific lines of the log
- change a specific line of the log
- swap two lines of the log
- do simple "search and replace" on a range of lines of the log
Screening Room Functions
A screening room (screen) is a room where Players can monitor a game session currently being recorded by a cambot.
Spectators should be able to:
- specify a cambot to receive broadcasts from. (This also "turns on" the screen.)
- turn off the screen. (By setting the cambot to off?)
- view the partial or complete contents of a log on the "current" cambot
Note that the ability to determine which cambots are in use is already specified under Manipulating the Cambot.
Other functions:
- When the last Player leaves the Screening Room or the last active connection to a Player in the Room is dropped the screen should be turned off.
Command List
cambot
This would be a global action available throughout the server, both IC and OOC.
Executed without arguments, it would cough up a usage list, perhaps something like this:
(OOC) Usage: cambot [options]
(OOC)
(OOC) cambot #help
(OOC) Prints the help document you are currently reading.
(OOC)
(OOC) cambot #list
(OOC) Prints a list of existing cambots and their status
(OOC)
(OOC) cambot #get [name]
(OOC) If the named cambot is not in use, the cambot is
(OOC) moved to the Players current location
(OOC)
(OOC) cambot #put [name]
(OOC) Moves the named cambot to its home. Any active log
(OOC) is closed.
(OOC)
(OOC) If a cambot is in a Player's inventory, the #get option
(OOC) will fail.
(OOC)
For some reason the Sinai cambots may not be "summoned" to one of the Screening Rooms with the callcambot command.
I'm not sure why... infinite looping, perhaps? This means that you couldn't sit in a Screening Room and watch game "A" while recording the conversation in the Screening Room. Is this an acceptible solution, or is there a better answer?
cambot #list
This function would produce something very much like the current command: callcambot.
(OOC) Cambot Status:
(OOC) cambot1: Available
(OOC) Logs: default
(OOC) cambot2: In Use: Guardians Soundstage
(OOC) Logs: "default" by GuardiansGM
(OOC) on Tue, 2001-Nov-13 10:36 AM
(OOC) cambot3: Available
(OOC) cambot4: Available
(OOC) cambot5: Available
(OOC) cambot6: Checked out to IndigoGM.
cambotname
Each cambot object would be referred to by name.
Much of the functionality of the cambot system is accessed by using this object.
All of these functions would be actions (or one multiply-aliased action) on each cambotname object. Should all these functions go in the "cambot" library, or be broken out into a separate program?
Executed without arguments, it would cough up a usage list, perhaps something like this:
(OOC) Usage: cambotname [options]
(OOC)
(OOC)Settings:
(OOC)
(OOC) cambotname #broadcast [on|off]
(OOC) Turn broadcasting on or off
(OOC) When broadcasting is on, currently active logs
(OOC) may be viewed in a screening room.
(OOC)
(OOC) cambotname #oocfilter [on|off]
(OOC) Turn the "OOC filter" on or off
(OOC)
(OOC) cambotname #linenumber [on|off]
(OOC) Turn line numbering when the log is viewed on or off
(OOC)
(OOC) cambotname #editing [on|off]
(OOC) Turn editing of a specific log on or off (read-only)
(OOC)
(OOC)Logs:
(OOC)
(OOC) cambotname #log [list]
(OOC) Determine what logs (if any) a cambot contains
(OOC)
(OOC) cambotname #log name oldname newname
(OOC) Specify a name for a log
(OOC)
(OOC) cambotname #log start [logname]
(OOC) Start recording a log
(OOC) If the cambot is currently recording, this function
(OOC) fails and reports and error.
(OOC) If the logname is not specified, it defaults to a
(OOC) serial number
(OOC)
(OOC) cambotname #log stop
(OOC) Surn recording of a log on or off
(OOC) If not specified, logname defaults to a
(OOC) serial number
(OOC)
(OOC) cambotname #log view [line_start[-line_end]]
(OOC) View the partial or complete contents of a log
(OOC)
(OOC) cambotname #log view
(OOC) Displays the entire log
(OOC)
(OOC) cambotname #log view line_start
(OOC) Displays the log from the line specified by
(OOC) line_start through the end of the log
(OOC)
(OOC) cambotname #log view line_start-line_end
(OOC) Displays the log from the line specified by
(OOC) line_start through line specified by line_end
(OOC)
(OOC) cambotname #log last [lines]
(OOC) View a number of lines of the log, starting at the end
(OOC)
(OOC) cambotname #log last
(OOC) Displays the last line of the log
(OOC)
(OOC) cambotname #log lines
(OOC) Displays the last lines of the log
(OOC)
(OOC)Editing:
(OOC)
(OOC) cambotname
(OOC) add the description of a Room, Player, or Thing to the log
(OOC)
(OOC) cambotname
(OOC) clear the entire contents of a log
(OOC)
(OOC) cambotname
(OOC) delete specific lines of the log
(OOC)
(OOC) cambotname
(OOC) change a specific line of the log
(OOC)
(OOC) cambotname
(OOC) swap two lines of the log
(OOC)
(OOC) cambotname
(OOC) do simple "search and replace" on a range of lines of the log