HDTenEightyP/NetNews huggingface dataset:
From: dixjb@silver.lcs.mit.edu (Jonathan Barrymore Dix)
Newsgroups: rec.games.mud
Subject: Ftp Sites
Date: 31 Jul 92 12:24:12 GMT
Distribution: rec.games.mud
Organization: MIT Laboratory for Computer Science


I am trying to find an ftp site where I can pick up a source code,
mine got lost somewhere along the line..I have a machine and 
nothing to put on it now?

   Can anyone help?
Organization: University of Maine System
Date: Tuesday, 28 Jul 1992 11:40:21 EDT
From: The Xanadian <IO10081@MAINE.MAINE.EDU>
Newsgroups: rec.games.mud
Subject: Has TNG Trek returned yet?

I hate to be annoying and ask this question, but I've been in the hospital for
2 weeks (they were doing tests, that's all...) and haven't been able to keep
up to date with Netnews.  If it hasn't, then... I'll just wait some more. :)
From: siannce@polyslo.csc.calpoly.edu (Huthar)
Newsgroups: rec.games.mud.lp
Subject: Re: Converting  from compat to native.
Date: 30 Jul 92 00:19:35 GMT
Organization: Huthar@Portals|Overdrive|TMI|Genocide

In article <1992Jul29.173459.18782@nmsu.edu> jnoll@huey.NMSU.Edu (Noll) writes:
>	Hi all, once again, the title pretty much says it all. I'm thinking of
>converting a mud that I'm working on over to native mode but arent quite sure
>exactly what that will mean as far as extra work in modifying the files. I know
>about the create() chage and the move_object change, but after that I'm not  
>sure what else would have to be worked on. Are there any other things that
>would have to be redone? I'm assuming there are so I'd like to get a decent
>idea on how much work this will be before i start.  Also, anyone out there
>have some neat script file or LPC files that will go through and do some of the
>changes that have to be done, like converting all the resets to creates and
>adding a seteuid to all the files.  If so, if you could get in touch with me
>it'd be much appreciated.  Thanks for your time.

Well you don't have to add a seteuid to every object. Just make an
object.c which contains a default create(). In there you could just
set the euid and call reset(0); and then all you'ld have to do is
have all your old objects inherit this new one.

Now let me put in my plug for MudOS. Since you're going through the
trouble of converting to native you may want to think about switching
to MudOS as not only does it offer more functionality than vanilla LP
but it has also proven to be considerably more efficient than LP and
its other direvitives. Just ask the Gods of Overdrive or Genocide about
the change after switching to MudOS!

    -Stephan (Huthar@portals, etc...)
*grovel*



-- 
-------------------------------------------------------------------------------
-Stephan Iannce (siannce@polyslo.CalPoly.EDU)	          // YAAJ (Yet Another
Huthar@Portals|TMI|Overdrive (LPmuds)            	\X/      Amiga Junkie)
-------------------------------------------------------------------------------
From: fetzer@sdphu1.ucsd.edu (Michael E Fetzer)
Newsgroups: rec.games.mud.lp
Subject: LPMuds that run on Macs?
Date: 28 Jul 92 00:33:14
Organization: /u2/grads/fetzer/.organization
NNTP-Posting-Host: sdphu1.ucsd.edu

Simple... any of them out there? And if so, where do I find one.

Mike
From: sh666@selway.umt.edu (Azog)
Newsgroups: rec.games.mud.lp
Subject: Re: **LPMUD TOP 10**
Date: 30 Jul 92 01:53:14 GMT
Organization: University of Montana

Oh!  One last thing.  If someone already does this, please disregard the last
post and then send me some wicked hate mail.  If not, I would like to make
this a regular feature (quarterly).  Thanks again!
Newsgroups: rec.games.mud.lp
Subject: Re allocation of arrays in LPC
From: rossw@ccu1.aukuni.ac.nz (Ross Williamson)
Date: Tue, 28 Jul 1992 00:50:58 GMT
Organization: University of Auckland, New Zealand.

    OK probably a stupid question but is there any way of having
reallocated arrays in LPC.  Other than the painful way of copying data
allocate a new array copy back ????

    The allocate function doesn't keep the information that was in 
the old array.

    Reallocation you come back here RIGHT NOW  :)


Ross
From: amylaar@mcshh.Hanse.DE (Joern Rennecke)
Newsgroups: rec.games.mud.lp
Subject: Re: Converting from compat to native.
Date: 30 Jul 92 20:37:16 GMT
Organization: Point of Presence Hamburg

siannce@polyslo.csc.calpoly.edu (Huthar) writes:

>In article <1992Jul29.173459.18782@nmsu.edu> jnoll@huey.NMSU.Edu (Noll) writes:
>>	Hi all, once again, the title pretty much says it all. I'm thinking of
>>converting a mud that I'm working on over to native mode but arent quite sure
>>exactly what that will mean as far as extra work in modifying the files. I know
>>about the create() chage and the move_object change, but after that I'm not  
>>sure what else would have to be worked on. Are there any other things that
>>would have to be redone? I'm assuming there are so I'd like to get a decent
>>idea on how much work this will be before i start.  Also, anyone out there
>>have some neat script file or LPC files that will go through and do some of the
>>changes that have to be done, like converting all the resets to creates and
>>adding a seteuid to all the files.  If so, if you could get in touch with me
>>it'd be much appreciated.  Thanks for your time.

>Well you don't have to add a seteuid to every object. Just make an
>object.c which contains a default create(). In there you could just
>set the euid and call reset(0); and then all you'ld have to do is
>have all your old objects inherit this new one.

>Now let me put in my plug for MudOS. Since you're going through the
>trouble of converting to native you may want to think about switching
>to MudOS as not only does it offer more functionality than vanilla LP
>but it has also proven to be considerably more efficient than LP and
>its other direvitives. Just ask the Gods of Overdrive or Genocide about

Correct me if i'm wrong, but MudOs is still much slower at compilation
than an LPmud with a global shared symbol hash table for all defines,
efuns, simul_efuns locals and globals, when it comes to compiling.
And your profiles show that strlen() consumes a considerable amount of
the execution time, due to inefficient string sharing code.

>the change after switching to MudOS!

They haven't tried all cometitive versions, only the slow ones....

	amylaar
Organization: Johannes Kepler University Linz - Computing Center
Date: Wednesday, 29 Jul 1992 23:34:27 CDT
From: <K111114@ALIJKU11.BITNET>
Newsgroups: rec.games.mud.lp
Subject: configure ftpd

hi all.
i have a little problem using ftpd. the ftpd does a chroot() when a user logs
on, BUT (!) command needs root privileges. The sysadmin of course does not
give me this privilege , since i have the source file and the ftpd resides
in my directory, it should not be very difficult to add a kind of "shell-
escape" and set my own mud privileges to superuser.
i removed the chroot() for this reason, and have to add security checks
in the cwd, get, put, mget and mput routines. the logon procedure "getlpmudnam"
needs to be modified too. this looks like lot of work, but it aint as difficult
as it looks at first sight. actually i have done a some changes already, and
they work.
before i continue to work on ftpd, i want to ask u if u had similar problems
when using ftpd. do you have patches that, perhaps, take care of domains in
native mode? i know, this would needto implement mud-access-policies into
the ftpd ... not an easy task (?)

thanks for reply, herp.
From: uekleinf@mcs.Drexel.edu (Erik Kleinfelder)
Newsgroups: rec.games.mud.lp
Subject: Re: RANDOM MOVING AND CHASING
Date: 23 Jul 92 06:06:14 GMT
Organization: Drexel University


much deleted...

cmj1> 	call_out("catch_tell",0);

Um, there is no need to use catch_tell in a call_out.  Maybe I am not
understnading you correctly, but the use of catch_tell(string) is to
take any message sent to a room like :

     so and so leaves west.

The above message will be sent to any catch_tell(string) function in
every living object in the present room.  At this point you might be
able to do something like this...

catch_tell(str) {
     string who, what;
     object ob

     if (sscanf(str, "%s leaves %s\n", who, what) !=2) return;
     ob = find_player(who);  /* you now have the player who left as an
                              * object, do what you want.
                              */
     command(what); /* the monster(or living object) will attempt to
                     * execute the command to leave the direction the player
                     * left.
                     */
}
 
Erik (Gunther God@Dragon's Den -- 129.25.7.111 2222)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Gunther GOD@Dragons_Den          |  Erik Kleinfelder uekleinf@mcs.drexel.edu 
God of Destruction               |  Undergraduate Computer Science
(Record : 43 Crashes in 2 mins)  |  Drexel University
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"A truly wise man never plays leapfrog with a unicorn."
"Nothing cures insomnia like the realization that it's time to get up."
"It's not a BUG, it's a FEATURE"
                    -All Unknown
Newsgroups: rec.games.mud.lp
From: royle@highland.manassas.ibm.com (Matthew Royle x4553 highland)
Subject: After Hours
Date: Fri, 31 Jul 92 14:25:41 GMT
Organization: IBM T. J. Watson Research
Keywords: Where??

Does anyone know what happend to After Hours? It has been gone now for some
time and it is no where to be seen...?
Does anyone know where after hours is? If so, please please send me mail.
Even if you dont know where it is, but know what has happened to it, let
me know... Thanks.
    -Matthew Royle
     royle@manvmd1.vnet.ibm.com
     royle@crs.cl.msu.edu
Newsgroups: rec.games.mud.lp
From: ins894r@aurora.cc.monash.edu.au (Aaron Wigley [Wigs])
Subject: Re: Clueless...
Organization: Monash University
X-Newsreader: Tin 1.1 PL4
Date: Thu, 30 Jul 1992 10:30:40 GMT

ubnareho@mcs.Drexel.edu (Brian S. Narehood) writes:
:    You are slightly wrong here, or at least on a 3.x Lpmud parser.
: The efun functions find_player and find_living searches the living
: name hash table(which is set up with the efun set_living() )
: 
:    The function find_object() is sent the file_name of the object
: you want to locate. It also does not check the id.  This may be
: different on your mud do to the fact that the Gods eather redefined
: these functions in simulate efun, or they changed the parser.

Thanks for pointing out my mistake with find_object(). *sigh*

We are using a heavily modified 2.4.5 gamedriver (you can't call it
2.4.5 anymore). My guess is what I described would work on a true
2.4.5 (second opinion anyone?)

The Wigs of Oz
Aaron Wigley
Newsgroups: rec.games.mud.lp
From: besler@geop.ubc.ca (Steve Besler)
Subject: Lag
Followup-To: rec.games.mud.lp
Reply-To: besler@geop.ubc.ca
Organization: Geophysics & Astronomy, U.B.C. Vancouver, Canada
Date: Wed, 22 Jul 1992 22:33:52 GMT


	What causes "net lag" ?  Is it really just that it is "far away" on
the net?  Or is it just that the mud is slow?  Will a mud seem to be
way faster to people who make a more direct connection to the mud?

	What's the scoop?

Steven Besler  
Newsgroups: rec.games.mud.lp
From: guile@engin.umich.edu (Kenneth K Lee)
Subject: Re: How to code this?
Date: Sat, 25 Jul 92 21:46:35 EDT
Organization: University of Michigan Engineering, Ann Arbor

In article <1992Jul25.000945.5512@talon.ucs.orst.edu> navarrer@bionette.CGRB.ORST.EDU (Roy Navarre) writes:
>Can someone suggest the best way to make a room and monster so that help
>will be summoned if more than X players attack the monster?  Ie if 5 players
[stuff deleted]
     Well, there are several ways to do this.  I assume you're running from 
the standard type 2.4.5 mudlib (perhaps with a few mods, no matter).  One 
thing you could to is have the monster do a function call on the objects
(players) in its environment, using query_attack().  I believe all_inventory()
might be useful, assuming you're running a 3.x.x gamedriver.  Another way is
to redefine the function hit_player(), and obtain the names through something
like:  previous_object()->query_name(), and add them into a list.  Of course,
this could get tricky, since players might leave4 the room, then you'd have to
clear their name from the list :).
     If you want more details, email me...

Newsgroups: rec.games.mud.lp
From: ssj@ais.org (Stephen S. Johnston)
Subject: Re: RANDOM MOVING AND CHASING
Organization: UMCC
Date: Thu, 23 Jul 1992 00:19:10 GMT

In article <1992Jul22.165802.1@jaguar.uofs.edu> cmj1@jaguar.uofs.edu writes:
>This is an addenum to my previous message.  Please take a look at the following
>code, and tell me why this creature STILL doesn't follow people out of rooms?
>Thanks.
>P.S. sorry I don't exacxtly code beautifully. :)
>
>+++++++++CODE++++++++++++++++++++
>
>inherit "obj/monster";
    [part of 2.4.5 code deleted]
>reset(arg) {
     [more code delete]
>	call_out("catch_tell",0);
>}
   First of all, you're calling this catch_tell from the reset argument. 
   To get the result you want, you need to redefine the function 
   heart_beat().  heart_beat is called every 2 seconds (like I 
   mentioned in my email response to you.) :) 
   in heart_beat() you should call the catch_tell.  This is kind 
   of an odd way to achieve what your goal and I don't know if 
   the catch_tell will work the way you have it set up.  You 
   really should use sscanf().  I recommend talking to another 
   wizard on your mud and asking for help with this.  
>
>catch_tell() {
>	string who;
>if(!this_player() || query_verb() || this_player() ==
>	this_object() || !(who=this_player()->query_name())) return;
>call_out("perform",0,query_verb() +" "+lower_case(who));
>}
>
>perform(cmd) {
>	command(cmd);
>}

==================================================================
Steve Johnston                                Go Blue!
ssj@ais.org                              Webber/Rose & Co. 1993
Steve_Johnston@um.cc.umich.edu          NCAA Nat'l. Champs to be
Bluefront@HeroMud II
==================================================================
From: sgreen@neumann.une.edu.au (Stephen Green)
Newsgroups: rec.games.mud.lp
Subject: Array structre/manipulation
Keywords: arrays
Date: 30 Jul 92 00:57:22 GMT

After several failed attempts to implement the array I needed
on Legends ( one of the early 3.x.x's), I had a go at it on
the MSDOS 3.1.2 COMPAT_CODE version at home..

What i needed was to set up a 16x16 array of letters ( a -> z ),
randomly choose 6 'locations' [i][j] and remember the address and element.
I did get it going but it was very cumbersome, and involved
1/ setting str arr1='dfghiluopeisijgd', arr2='..' etc.
2/ choosing random numbers i,j;
3/ loops like if (i==0) let=get_letter(arr1[i]);
   get_letter() {
     if (i==97) return 'a';
     if (i==98) return 'b'; /* etc where i is the ascii no of the address ?? */
   }
Can anyone give a simpler way to get what i need?
Newsgroups: rec.games.mud.lp
From: alcaman@opal.cs.tu-berlin.de (Alexander Weidt)
Subject: Re: How to code this?
Organization: Techn. University of Berlin, Germany
Date: Tue, 28 Jul 1992 23:11:52 GMT

pfotopau@neumann.une.edu.au (Peter Fotopaulos) writes:

>You could try something like this....
>.
>.
>int i;
>.
>.
>init() {
>  ::init();
>  add_action("new_kill","kill");
>}
>new_kill() {
> if (!this_player()->query_attack())
>   if (i >= NUM)) send_help();
>   else i+=1;
>}

Hiho..
  no no no .. :)  Doing anything like add_action ( ... , "kill"); in this
context is almost always a bad idea, since it does not cater for the
possibility, (which is in fact bloody likely) that somebody defines another
action which results in a fight starting.  Think of "fireball" ...
Experience mud players know about this and use it to their advantage.

  Assuming basic 2.4.5 mudlib attack code, what you want goes something
like this:

hit_player (dam) {
	::hit_player (0);        /* this is necessary to set the attack_ob */
	if (this_player()->query_attack ()) {
		/* do funky stuff here */
	}
	return ::hit_player (dam);
}

  You could keep an array of different attackers, and check in each hit_player 
to see if five have accumulated.  Something like this perhaps:

	object *attackers, att;

	att = query_attack ();
	attackers -= ({ att, 0 });
	attackers += ({ att });
	if (sizeof (attackers) == 5) {
		/* call for help */
	}

  The - operator, when applied to arrays, removes all occurences of the
elements in the second array from the first array.  The + operator
concatenates arrays.

  Oh, I just realised you'd have to check the presence of the attackers in
environment (this_object ()) -- seeing as it's late I'll leave it as an
exercise to the reader... ;)

>/*
> * you could bullet proof it by decrementing 'i'
> * for actions such as west, quit, also if query_ghost() etc...
>*/

As I am sure you realise now, that this would in no way bullet proof the
code.

ta ra, demos.
--
hacking?  just say yo!
Organization: Johannes Kepler University Linz - Computing Center
Date: Thursday, 23 Jul 1992 09:11:23 CDT
From: <K111114@ALIJKU11.BITNET>
Newsgroups: rec.games.mud.lp
Subject: RE: RANDOM MOVING

... this is a solution that might or might not work ...

When a player enters a room containing a monster, the heart_beat() for this
monster is started. When u want monsters chasing players, i.e. follow them
_whereever_ the players go, u should inherit obj/monster and rewrite the
heart_beat() routine.

--- we assume that "object tp" is the player u want to follow.

heart_beat() {
  ::heart_beat();
  if (environment(tp)!=environment(this_object()) {
     move_object(this_object(),environment(tp));
     tell_room(environment(this_object()),"Splat ! "+name+" slips in.\n");
  }
}

this will make the monster follow the player to every place, even when he/she
is teleported away. but now it has nothing to do with random_move any more ...
err .... of course u can code:
   this_player()->move_player("X",environment(tp));

instead of the two lines (with move_object).

There's also another thing I'm not sure that it will work.
Whenever a monster is alone in a room, its heart_beat is turned off.
Therefore calling ::heart_beat() probably will turn it off, but as move_object
(move_player) moves the monster again to the players environemt, it should be
turned on again in init ... check it out, if it does not work, simply set
the heart bet to 1 as last instruction in the new heart_beat.

Hope i could help u, herp.
Xref: sparky rec.games.mud.lp:2465 rec.games.mud.tiny:130
From: rsnyder@hannibal.atl.ge.com (Bob Snyder)
Newsgroups: rec.games.mud.lp,rec.games.mud.tiny
Subject: Re: A comparison of LPMUD vs. TinyMUSH???
Date: 24 Jul 92 20:52:22 GMT
	<1992Jul24.124205.23069@fy.chalmers.se>
Organization: GE Aerospace, Advanced Technology Labs, Moorestown, NJ

>>>>> In article <1992Jul24.124205.23069@fy.chalmers.se>, jacob@fy.chalmers.se (Jacob Hallen) writes:

Jacob> To implement the MUSH coding style in LPC would be a rather simple task.
Jacob> To implement LPC in a MUSH would be close to impossible.

Really?  This is something I'd have to see to believe.  In order to do it
right, you'd have to make objects permanent.  Even forgoing this, I'd love to
see semaphores done or user-defined attributes done well (working with
@trigger and the like).

Basically, you would exceed the capabilities of the parser very, very quickly.

I doubt it would be anything close to simple.

Fordan, god, Dragon's Den LPmud (129.25.7.111 2222)
R'dor, Weyrleader, wizard, SouCon MUSH (soucon.cygnus.com 4201)
--
Bob Snyder, Computing Services, GE Aerospace, Advanced Technology Labs
rsnyder@atl.ge.com, (609) 866-6672, FAX: (609) 866-6397, DialComm 8*777-6672
Newsgroups: rec.games.mud.lp
From: mud@leland.stanford.edu (Mud Game)
Subject: take #2 (EOTL)
Organization: DSG, Stanford University
Date: Fri, 31 Jul 92 07:16:46 GMT

Talk about timing.  The minute I post about EotL's revival, we develop a fatal
error that takes days to fix.  

Anyway, we tracked it down and we're back.  If you were ever a wiz on the
game, or an accomplished wiz somewhere else, I'd like to have you coding
up huge player areas as soon as possible.
 
mud.stanford.edu 2010
 
Sorry for the delay.  Watch it happen again.
 
-duncan
From: amylaar@mcshh.Hanse.DE (Joern Rennecke)
Newsgroups: rec.games.mud.lp
Subject: Re: SysV stuff
Date: 21 Jul 92 18:44:00 GMT
Organization: Point of Presence Hamburg

joe@cbnewsf.cb.att.com (Joe Judge) writes:


>	Darin Johnson posted an ls replacement for 3.0+ muds. I posted
>	the 2.4.5 list_files() code a long time ago. A 
>	tommyk@*glasgow*uk was into this SysV thing a while back also.

You don't really need this code any longer, all you need is a better
simul_efun implementation of ls that the ones that were included till
3.1.2 .

>	Two of us here within AT&T hacked the heck out of a 2.4.5 to
>	get it to be nicer for SysV (before 3.0). The main things we 
>	worried about are: 

>	- signaling (sysv doesn't continue the signal when interrupted) 
>	 you'll see rooms not load (interrupted wait for child doing 
>	 cpp), etc. We just did all the lexical analysis, etc without 
>	 forking (my friend, Danny, is a language/compiler nut). That
>	 was our fix.

3.x has the preprocessor built-in, so this problem shouldn't be there.

>	Once you do the above, you'll have a workable mud. To actually
>	run nicely/faster/etc (unless you have a zippy CPU and tons o' 
>	memory), you'll have to do a bunch of hacking to:

>	- stop the 'expand 1 char to 3 char' bug in comm1.c (has that been
>	copied to 3.0?).

Only single newlines are expanded.

>	- fix the 'one char at a time' output in ed.c

add_message does some buffering since 3.0.44, so this is less of a problem.

>	- fix add_message() so that it doesn't make a gazillion byte buffers
>	on the stack and scan/copy a buffer like 2 or 3 times before

What's the problem about 10000 bytes?

>	outputting.

Of course the buffer has to be scanned to add a \r to each \n .

>	- misc memory leaking things and file descriptor leaky things.

misc have been found & fixed, don't know if it's the same you are referring
to...

	amylaar
Organization: Johannes Kepler University Linz - Computing Center
Date: Tuesday, 28 Jul 1992 00:59:38 CDT
From: <K111114@ALIJKU11.BITNET>
Newsgroups: rec.games.mud.lp
Subject: re:NEW MONSTER PROBLEM

hi.
usually u have a room where u create the monster. why not code a routine
in the following room.

int num_died;         /* this is global */

reset(arg) {
  if(!arg) { num_died=1; }              /* yep */

[..lotsa stuff...]
  create_my_monster(num);
}

create_my_monster(i) {
  ob->clone_object("obj/monster");
  ob->set_hp(100+i*10);                   /* adjust this to whatever u like */
  ob->set_ac(4+i);
  ob->set_wc(10+2*i);
 ... etc ...
 set_dead_object(this_object());
 move_object(ob,this_object());
}

the last line tells the monster that when it dies, a routine called
"second_life" has to be called in "this_object" (the room).
you continue with your code:

second_life() {

  if (++num==NOT_AGAIN_NOW_PLEASE) {
     tell_room(this_object(),"Finally the evil bastard is dead, yuck!!\n");
     return;
  }
  create_my_monster(++num);  /* ... here it comes again */

}

well ... that's all so far.
still it is not all what has to be said about this:
did you know that _everytime_ the monster dies, a corpse will be created?
hee hee ... looks funny ! to change this, patch in living.c and dont clone
a corpse when dead_ob is defined. ups, no that's not good, what when 2nd_life
let's him die ? have 2nd_life returned 0 or 1 for live or die and patch
living according to this return values.
bye, herp.