prev | toc | next

Setting Up the Database (cont't):

Other Porting Considerations:

Permission: all programs in fbmuf.tar and the start-up database are in the public domain. For other programs, you should make a good faith effort to honor the conditions for porting programs. Read the program's header comment, looking for notes about permission and/or the author of the program. If the program says it can't be ported without permission, don't: instead, contact the program's author and ask for permission, or find a similar program that can be freely ported.

Sometimes you just can't get in contact with the author, usually because he is no longer MUCK'ing. In this case, contact the MUCK's MUF or Globals wizard, and let her know that you want to port the program. Usually there is no problem with this. And, even if the program says it can be ported freely, sending page #mail that you've done so is a good idea: people make programs freely available because they would like to see them widely used; letting them know you are using their program is a thoughtful gesture.

Connect and Disconnect Calls: Programs called from these queues (and related queues such as _arrive and _listen) must be set Link_OK. Again, when uploading from scripts, this is handled for you, but when you're manually porting the program, you will need to set the calling property yourself.

> @set con-announce = L
  Flag set.
> @propset #0 = dbref:_connect/announce:#82
  Property set.
> ex #0 = _connect/announce
  ref _connect/announce:con-announce(#82FWLM3)

Sometimes a program needs to be called from a prop like _connect, _disconnect, or _listen — and so should be set Link_OK — but also needs to be kept not Link_OK for security reasons. This is handled by creating a small, Link_OK stub program that calls the real program. An example of this is provided below, in the discussion of setting up Guest characters.

Macros: Programs uploaded from scripts or provided with the start-up database will set up any macros they need. For programs that you install yourself, you will sometimes need to define macros. If a program that works fine on another MUCK will not compile on yours because of an unrecoginized word...

  Error in line 273: Unrecognized word otell.

... the problem is probably an undefined macro. On the MUCK from which you are porting the program, go into the program editor, type `s' to see a list of defined global macros, and look for the offending word... `otell' in this example. Copy the macro definition. Then, on your MUCK, define the macro.

> @edit lib-look
  Entering editor.
  Line not available for display.
> def otell ( s -- ) loc @ me @ rot notify_except
  Entry created.
> c
  Compiler done.
> q
  Editor exited.

MUF Macros are also discussed in Section 3.2.3, MUF Macros.

MPI Macros: You will probably want to set up global MPI macros as well. These are stored in the _msgmacs/ directory of Room #0. Set a property in this directory, with the name of the macro as the prop name, and the MPI to be used in its place as the stored value. For example, to set up a simple {look-notify}...

> @set #0=_msgmacs/look-notify:{null:{tell:[ {name:me} looked at
  you. ],this}}
  Property set.

Wizards on an established MUCK may well be willing to email you a file containing their MUCK's MPI macros. MPI macros are also discussed in Section 3.1.1.

You may also copy sample MUF macros and sample MPI macros from here.

prev | toc | top | next