A
/ \ _ Play Now Nemesis on
| | | | _______ _ _ _______ _______ _ _______
| |\ | | | ____| | \ / | | ____| / ____| | | / ____|
/-------/-------------------------------------------------------------------,
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