Re: [Circle] [IDEA REQUEST] Transfer equipment command.

From: Rasmus 'Con' Ronlev (
Date: 11/25/96

On Mon, 25 Nov 1996, Eduardo Gutierrez de Oliveira wrote:

> > Wouldn't it be easier to just go into limits.c, in the gain_exp function
> > and set up xp caps. That's what I did, and they work fine, although I am
> Maybe I am not understanding or maybe I didn't make myself clear (both
> very frequent...:)

Well, some of your argument for wanting to limit areas was, that you
didn't want newbies to gain horrendous amounts of XP. This can be done by
modifying the gain_exp functions and you can customize it a lot this way,
so a newbie beeing with a level 80 on a 95 level mud won't get but like
0.01% of the XP the highlevel gets, and even then only get like 1/10th of
the exp required to his level if thats what you want. But, I'll let it
rest for some other time :) Just be aware that this is allso a great way
of controlling newbies beeing leveled by more highlevel characters.

> I want to limit access to full areas (several tens of rooms) to a range
> of levels.
> So, let's say you want to limit access to the chessboard to be used only
> by players whose level is between level 21 and level 40, so a level 19 or
> alevel 41 would not be able to enter the place...
> At first I had made several flags (UNDER20, UNDER40, UNDER60, ABOVE21,
> ABOVE31, ABOVE41, ABOVE51) which did let me set ranges in the rooms, but
> I wanted to do this because even if I limit the entrance to a zone,
> immortals can teleport inside the zone and transfer their buddies inside,
> so they get to visit forbidden zones or zones still in building stages...

Well, the WAY easiest solution (in my own oppinion - is what IMOO ? :) is
to modify the zone_data, or whatever it's name is. The info thats in the
top of the .zon file, which holds the top-vnum of the zone, the name of it
and so on.
Simply add a few more fields there (and in the structures of the mud and
the zonefiler parser - somewhere in db.c). Like the top of the 30.zon file
would look like:

#30					<- Zone, standard
Northern Midgaard Main City~		<- Zone name, standard
CircleMUD~				<- Creator/Originator, non std.
10 100					<- Minimum and maximum levels
3099 15 2				<- Nop-vnum, reset-span and type
					   allso std. CircleMUD 3.0 stuff.

Then find where the stuff is loaded in db.c (allready said that :), and
modify it, and then you can by hacking a little arround, find out how to
modify the perform_move() (movement routines), the various spells and
stuff like that.
On top of this you could allso set a 'fast check bit' for the not yet
opened areas.. Like if your min-level for a zone is the same or bigger
then LVL_IMMORT, then set a ROOM_IMMONLY or ROOM_OLC or whatever, that you
can check against for the sake of simplicity.. well, you probably get the
idea by now *grin*

Hope this has inspired you some, and that you'll use my solution *cackle*
Nah, just kidding. All up to you.


     Rasmus Rønlev DOEK'94      WWW:
     Student instructor         MUD: 5000
       Student, B.Sc in Computer Science and Business Administration.

| Ensure that you have read the CircleMUD Mailing List FAQ: |
|   |

This archive was generated by hypermail 2b30 : 12/18/00 PST