prev | toc | next
 

Setting Up the Database (cont't):

Setting Up Guest Characters:

(Note: Setup for the con-multiguest, the Guest program supplied in the fbmuf package, described here, is more difficult than it really ought to be. As an alternative to the process described below, you may want to make a copy of MultiGuest.muf, edit the line that specifies the guests password to something unique, go to the room that the Guests will start at, and paste the file into your client window. This will set up your Guest characters automatically. You need to have a $nothing action set up before quoting the file.)

You will probably want to allow Guest characters. A program that shuffles incoming connections to the next available Guest character is available in fbmuf.tar and the start up database: con-multiguest. There is also a small `stub' program — con-callmultiguest — that calls the main program when players connect as Guests. The reason for this is that programs called from _connect must be set Link_OK, but the password creation scheme for Guests should be kept private, for security reasons. Rather than calling con-multiguest directly (which would require it to be set Link_OK), con-callmultiguest is set Link_OK and called on connection. Then, this small program calls con-multiguest itself.

If you don't have con-multiguest and con-callmultiguest ported and registered yet, do so now. Then set both program Wizard. Set con-callmultiguest Link_OK and Set_UID.

====================================
> @prog con-multiguest
  Program created with number 88.
  Entering editor.
> i
  Entering insert mode.
  < quote or paste program >
> .
> c
  Compiler done.
> q
  Editor exited.

> @reg con-multi = con/multiguest
  Now registered as _reg/con/multiguest: con-multiguest(#88FM3) on
  Room Zero(#0R)

> @set #88 = W
  Flag set.

> @prog con-callmultiguest
  Program created with number 89.
  Entering editor.
> i
  Entering insert mode.
  < quote or paste program >
> .
> c
  Compiler done.
> q
  Editor exited.

> @set #89 = W
  Flag set.
> @set #89 = L
  Flag set.
> @set #89 = S
  Flag set.
====================================

If you haven't created a room for the Guests to start in, do that now as well.

====================================
> @dig Guest Room
  Guest Room created with number 90.
====================================

@Pcreate the proto-Guest character.

====================================
> @pcreate Guest = guest
  Player Guest created as object #91.
====================================

Then @pcreate the actual Guests. By default, the con-multiguest program is set up to handle eight Guests. If you want more or less, find the following line in the program...

  $def NumGuests 9 (Max guests allowed connected + 1)

... and edit it appropriately. That is, change 9 to some other number.

====================================
> @pcreate Guest1 = guest
  Player Guest1 created as object #92.
  .
  .
  .
> @pcreate Guest8 = guest
  Player Guest1 created as object #99.
====================================

@Teleport the Guests to the Guest Room, and @link them there.

====================================
> @tel *guest = #90
  Teleported.
> @link *guest = #90
  Home set.
  <etc.>
  <etc.>
  <etc.>
====================================

@Set the _connect/multiguest property on each Guest to call con-callmultiguest.

====================================
> @propset *guest=dbref:_connect/multiguest:#89
  Property set.
> @propset *guest1=dbref:_connect/multiguest:#89
  Property set.
  <etc.>
  <etc.>
  <etc.>
====================================

This version of the multi-guest program changes Guest passwords by forcing a wizard (not the most elegant approach). You'll need to edit line 14 of the program, designating a wizard to do the forcing. In the original file, #1 is designated, but God cannot be forced if the MUCK is compiled with GOD_PRIV. (If you don't have other wiz characters yet, you need to make one.)

You should probably also change the password creation scheme. This is in line 20. It's not really crucial what you change it too: just make it something that returns a string.

====================================
> @edit con-multiguest
  Entering editor.
  Line not available for display.
> 14 l
  $def Wizard #1 (Change this to a wizard's dbref. Preferably not #1)
> 14 d
  1 lines deleted.
> 14 i
  Entering insert mode.
> $def Wizard #2 (Change this to a wizard's dbref. Preferably not #1)
> .

> 20 l
  $def PassWdMake (i -- s) 3 + 9 * intostr "TimE" swap strcat "tWINe" strcat
> 20 d
  1 lines deleted.
> 20 i
  Entering insert mode.
> $def PassWdMake (i -- s) "snerk" 5 * 7 intostr swap strcat "aVast" strcat
> .
> c
  Compiler done.
  Editor exited.
====================================

prev | toc | top | next