A
          / \      _             Play Now                         Nemesis on fb
          | |     | |  _______   _        _   _______    _______   _    _______
          | |\    | | |   ____| |  \    /  | |   ____|  /   ____| | |  /   ____|
 /-------/-------------------------------------------------------------------,
O= Home <=XX|  About  News  Pics  Adventurers  Wizards  Download  Connect     >
 \-------\-------------------------------------------------------------------'
          | |   \   | |  |____  | |      | | |  |____   ___ \  \  | |  ___ \  \
          | |     \_| |_______| |_|      |_| |_______| |_______/  |_| |_______/
          \ /
           V  

Documentation Area

Document Path: /doc/misc/fqa.doc


                         FQA: Dubious FAQ version 40.
                              (less to follow)

Contributers/Guilty:
	David Bennett, Sean A Reith and Craig Richmond.
	(Pinkfish)     (Lynscar)        (Furball)

Reason: we were incredibly bored thinking of the hundreds of things we
        had to do.

flame | BBS of the Univerity of Western Australia Computer Club,
        +61 09 380 1095.

Constructive replies to:
	[email protected]
	[email protected]
	[email protected]

Unconstructive replies to:
	[email protected] (Tokzic is a frog)
	[email protected]  (Followups are his life)
        [email protected]     (Tanis is a womble)
	[email protected]        (Allandrick is a carrot)
	[email protected]   (Mermaid is not a fish)

Why is mud X up/down
	No idea.  Scott Goehring ([email protected])
	maintains a mudlist, email him for more details.

What does the error message "cloning used object" mean?
	The object class has been moved into the game.  This means
	there is a statement:
	2.4.5: move_object(this_object(), somewhere);
	3.0:  this_object()->move(somewhere);
	this is normally done in a reset() or create(), if this is
	done then the object can't be cloned.  To have more than
	one copy in the game it is necessary to do something along
	the lines of:
	if (sscanf(file_name(this_object()), "%s#%d", str, i) == 2)
	2.4.5: move_object(this_object(), somewhere);
	3.0: this_object()->move(somewhere);

What does the really useful error message "cloning bad object" mean?
	You're trying to clone an object whose path returns 0 when
	passed to creator_file() in master.c.  If you should be able 
	to clone the object update creator_file() to return an euid.
	It is often valid to not be able to clone objects in /open
	and /ftp.

What are the advantages of inherit over #include?
	When a file inherits another it get a pointer to the code and
	a copy of the variables that the inherited file defines.
	This has several advantages:
	(a) Memory usage is reduced, there is only one copy of the code
	    in memory.
	(b) You can redefine functions, if you inherit file A, which
	    defines womble() and you want to do something else then
	    you can simply redefine it, if you #include the file,
	    redefining the function will cause an error.
	(c) You can call back up the inheritance tree, again if a file
	    A defines womble() and you want to do something extra
	    but still want to call the function in file A then you
	    call ::womble().
	(d) Less preprocessing :)

What are the advantages of #include over inherit?
	When a file #includes another file, the code is textually
	inserted at the point of the #include line.
	This is appropriate in some circumstances:
	(a) You want #defines to propagate.
	(b) Good for constant definitions.
	(c) Constant arrays are much kinder on memory eg:
	    #define COLOURS ({ "red", "green", "blue", "octarine", "frog" })
	    ...
	    var = COLOURS[bing];
	    ...
	(d) Clever #defines, the ones you don't use "disappear".
	(e) If you are only ever going to use it in one place, but still
	    want to have the modularity.

What is TMI?
	The Mud Institute.  (glare sulam).  We asked Sulam to put
	something here, but he did not want to.  So we will not either.
	We will not tell you that the address is dogstar.colarado.edu
	(128.138.248.32) 5555, and under no circumstances will we tell
	you anything else about it.  Hassle Sulam a lot, thank you for 
	your attention.

What is the best LPMud?
	Ours (but we _might_ be biased).

What does the LP in LPMud stand for?
	Lars Penjsoe (he wrote the driver, well, most of it).

What is COMPAT_MODE?
	Stupid.  You compile the driver with this if you want to run
	your 2.4.5 mudlib with the 3.0 driver.  (Rumoured to be removed
	in 3.0.55).

What is mtp?
	Mud Transfer Protocol.  Mostly-braindead Transfer Protocol.
	Used for tranfering files from your local UNIX machine to the
	MUD (every MUD needs it, including ours, glare Ben).
	Can be ftped from rudolf.ethz.ch, it now has no problems
	running under ULTRIX.

Where can I get a 3.0 mudlib from?
	Ok currently in development there are several 3.0 mudlibs.  Most
	of them are not publicly available (sigh), but those that are
	currently are:
	TMI  : The TMI mudlib (A team effort)
	       ftp from dogstar.colarado.edu 5554
	Discworld : The one from the ill fated Discworld IIU mud.
	       ftp from ucbvax.berkeley.edu
	Lars's mudlib.n :  His development mudlib.  TMI was derived from
			   this
	       ftp from lysator.liu.se

What do the -DR -A etc mean on the end of the driver version?
	Modifications to the standard parser.
	-DR  : Darker Realms (mostly written by Raistlin).
	       ftp from: worf.tamu.edu
	-A   : American? Version of the mudlib.. Or is this called
	       MudOs or somthing now?  This is the one TMI uses.
	       ftp from: dogstar.colarado.edu 5554
	-mumble : Shattered mumbles.
	       ftp from: mumble.umm.whatsie.au
	-W   : -Weird Mud  found in the discworld III mudlib code.
	       ftp from ucbvax.berkeley.edu in the /pub/games/lpmud
	       dir.
	-UCC : (How the hell did you get a copy?) (Ours)
	       ftp from: mullet.ucc.gu.uwa.edu.au

What does the CDLIB #define do?
	Definately worth defining, gets rid of alot of dogma saved for
	compatability (COMPAT_MODE don't work so hot).

What is the advantage of using COMPAT_MODE?
	(a) You've got to be kidding.
	(b) You don't have to think when transferring your 2.4.5 mudlib to
	    3.0 driver?

What is the advantage of using non COMPAT_MODE?
	(a) Better security.
	(b) Objects have more control over themselves.
	(c) Can't use a 2.4.5 mudlib.
	(d) Can't use a 2.4.5 castle, your mud might actually look
	    different.
	(e) Because mudlibs have been re-written they have better
	    design, rather than been glued together kludges.

How do I telnet to a MUD?
	C r.g.m FAQ.

Where can I ftp castles from?
	Scum, you're perpetuating the similarity between muds.  Go away.
	ucbvax.berkeley.edu pub/games/lpmud
	(These DO exist, we fish from them regularly.)

Where can I ftp the driver from?
	Interesting question.  Well, Try 
	ftp 128.138.248.32(dogstar.colarado.edu) 5554  Yes I know
	this is TMI.... But log in as anonomous and look in the /pub
	dir I think you can get both -A and larses 3.1.1 from there.

Where can I get a copy of LPMud ported to nn machine?
	You tell us.

Why does my ls not work? (in 3.0)
	The most common problem is a badly defined security in master.c
	quick fix till you work out what you're doing is to get
	valid_write() and valid_read() in master.c to return 1.

What is BSX Mud?  etc etc etc ...
	It is a graphical mud based around the LPMud driver, there
	are clients available for Amigas and X-Window terminals
	connected to the internet (Ok, so you can use a modem... good I
	will try it myself now, I did.) client for the PC is out in
	fact.   Umm problem here, alcazar.cd.chalmers has gone away, any
	one know any other site from which the things can be obtained?

Is there a copy of LPMud and client for VMS?
	There is a nasty rumour that people still use VMS... Is this
	true?  And where can we get a client from (why do we want one?)
	Please tell us so we can degrade this.

Mud-clients--- Where to get the horrors
	MUDweller wonder client for the mac, (for macs with MacTCP)
	   ftp: sumex-aim.stanford.edu  /info-mac/comm?
	BSX Clients (for PC, X-windows, Amiga)
	   Yes well.. Hmm, poor old alcazar.
	PC-Client for use in internet (must be net connected) (beta version)
	   Mail [email protected] for more information.
	For other information see the rec.games.mud FAQ

How I compile LPMud under System 5?
	Give up, no, only kidding, ftp the patches.

How do I fix the quicktyper bug?
	(a) Make sure no alias contains the string "^!".  This can be done
	    using a simple sscanf() in the alias creating code in the
	    quicktyper.
	(b) rm /obj/quicktyper.c

How do I fix the money bug?
	restore_object() the player _after_ forcing the old player
	object to quit.

How do I fix the self-promotion bug in 2.4.5? (not 3.0 -o)
	(a) Change valid_write() in the driver to check for
	    /players/name/* rather than /players/name*
	(b) Use a login object which checks the level of
	    people logging in and dests unauthorised people
	    whos levels outrank their names (names like
	    someone, somebody are pretty lowly ranked).
	(c) Use 3.0 in COMPAT_MODE.
	(d) Even better use 3.0 in non COMPAT_MODE.
	NOTE: (a) and (b) fix two different verions of the bug.

What is the difference between static, nomask and private?
	Static:
	  Variables are not saved with save_object()s.
	  Functions cannot be call_other()ed.
	Private:
	  Variables and functions can only be referenced from inside the
	  module, other files that inherit it cannot use it.
	Nomask:
	  Variables and functions cannot be redefined (up the inherit
	  chain).

Why doesn't my monster move?  (2.4.5)
	Ok, the problem is as follows.

	reset(arg) {
	  make_harry_and_move_him_to_this_object();
	  if(arg)
	    return 0;
	  do_all_the_room_setup_bits();
	}

	When the above room is created, harry will be moved into the room
	first thing every time reset is called.  Then, if it is the first
	time reset is called, ie the creation call of reset with 0 as the
	parameter,  then it will proceed on to set up things on the room.
	One of the things that are set up are the exits.   When a monster
	is moved into the room, the exits are added as the move_object is
	done.  Now when the first harry is moved into the room, there are
	no exits.   Consequently, the first harry has no exits with which
	he can leave the room.  To fix the problem, do the following instead.

	reset(arg) {
	  if(!arg) {
	    do_all_the_room_setup_bits();
	  }
	  make_harry_and_move_him_to_this_object();
	}

	Then all your problems will be gone.

I bet you are all wondering about those strange types and what they mean?
	Well here is the summary in the DONE file of 3.1.1

    'static' variables: Will not be saved at save_object(), nor modified at
    restore_object(). 'static' functions can not be called through
    call_other(). 'static' inheritance will make all inherited definitions
    'static'.

    'private' variables and functions: Can not be accessed by a sub class
    inheriting their definitions. Functions can not be called through
    call_other(). 'private' inheritance will make all variables and functions
    'private'. 

    'nomask' functions and variables can not be redefined by a sub class.
    'nomask' inheritance will make all inherited definitions 'nomask'.

    'public' variables and functions can be redefined by a sub class, even if
    they have been inherited 'private'ly. 'public' inheritance will make all
    inherited definitions 'public'. 

    The type 'protected' is reserved, but does not mean anything currently.

How do I fix any bug?
	(a) Get a drink (CAFFEINE BASED)
	(b) Stare at the code.
	(c) Eat a slice of pizza.
	(d) Go away, go to sleep.
	(e) Realise the problem.
	(f) Get up.
	(g) Try and remember what it was.
	(h) Remember, and realise you were wrong.
	(i) goto (a).
	(j) Use the force, read the source.
	(k) Debug the code.

Do I win a cookie?
	No but we would appreciate it if you would mail us some
	strawberry ice cream.

Who is Kim Sebo?
	Kim is a strange physics person that wanted a mention in this
	FQA.  He does odd things with telescopes late at night.
	Email him at [email protected] for more details.  PS
	apparently Kim is a herring.

PS. Tokzic was very depressed he didnt get any mail last time... Please
    don't rectify this.
PPS. less.  <- we did warn you.
PPPS. No it wasn't a typo.

And to brighten your day for making it to the end.
Green purple anchovies made with large yellow slugs.


This page was generated in LPC

Imprint / Impressum