Building: A Basic Tutorial

  • Tutorialist

    @nyctophiliac said:

    Hi @Cobaltasaurus !
    Out of curiosity, how do I delete rooms I have dug, or change their aliases?

    How do I delete rooms I have dug?

    @destroy #dbref

    You'll want to make sure you also @destroy any exits into the room, otherwise they will linger, and cause issues if someone tries to use them.

    How do I change their aliases?
    If you're talking about the shortened exit, you need to rename them with @name.

    @name <exit>=<main name>;<list;of;usable;aliases;separated;by;semi;colons>

  • This probably isn't part of the "beginner" tag you've put this under, but I'm curious as to how to change the room "decoration". Like for example my OOC place is named the terminal, so the top line reads

    <================================( Terminal )================================>

    How do I change the whole look there? How do I change the color?
    Do I have to do it room by room or is there a code that will wholesale change every room's appearance/color?

  • Tutorialist

    @nyctophiliac said:

    Do I have to do it room by room or is there a code that will wholesale change every room's appearance/color?


    Normally, rooms on MU's I've been on are children of a parent room. This means that all the rooms share the basic properties of one room with a template set on it, which is then transferred to any rooms @parented to it. So changing that will change it for every room. You'll just have to go through and manually edit the room parent's template, which is often auto-set on new rooms from the parent when a room is dug.

    As for individual overrides, I don't know that it's possible, but Cobalt would, for sure. I've never had to override a room's layout before.

  • @Derp is correct. You'd want to either remove the room's parent or re-parent the room to some other template. I'm pretty sure this requires wiz-level access, or just specific build @powers. So, generally it's not open to players.

    I suppose you could write code that forces a new description on the room (no clue how you'd do that, personally, but yeah @Cobaltasaurus would know for certain), but if you're building a grid and want to have separate room templates for different locations (say you have a regular grid and then a secret grid that's all magical and shit) you'd create two room parents and then @parent them accordingly. That'd be the cleanest way to do that.

  • Pitcrew

    If you wrote new attributes to overwrite the ones on the room parent that set the formatting you could certainly change it if you didn't have the power to change the parent, but the cleanest way is definitely to do a new parent.

  • If it's MUX, I think the pre-coded parents usually use the 'nameformat' attribute for this -- so that's what you'd want to search for, at least.

  • I have room parents for ic and ooc rooms set up, but I cannot for the life of me, figure out how to put together an exit parent without it echoing funny. Am I overcomplicating this? Can I just make an exit that goes no where I can slap my succ, osucc, and odrops on? And is there an easy way to make it call on the exit name so: X moves to exitdirection.

  • I'm still trying to figure out why I'd need room parents to begin with.

    Weather code just seems arbitrary and I can make bbposts about it if it's important.

  • @Lithium
    Room Parents are awesome for formatting consistency and code that is meticulous to put into place on many rooms. For example, the last game I actually ran? The room parent was set on all rooms, which did the following:

    • Displayed PCs, with tags for their current mode and faction.
    • Formatted the exits directly
    • Separated 'go to a building' exits and 'go to another room/direction' exits appropriately.
    • Listed Virtual NPC Characters in the room format.
    • Always put the starting return/tab ending return at the end of a description.

    And rather than have to change that code on every room on the game and potentially miss something or cause an error, you change it once, on the parent, and it changes everything. And any time you make more rooms, you can cheat and just @parent all of them at once again (works only if you use a single parent though).

    What I use on Penn?
    @OSUCCESS Exit Parent <EP>=heads [name(me)], towards [name([loc(me)])]}.
    @OROP Exit Parent <EP>=arrives from [name([home(me)])].

    Also, on Penn, any formatting on an individual room trumps the parent. So if you parent something, but want one specific room to do something, you can use the appropriate @-command to format and it'll override the parent.

  • I have mine set up to... well, here:

    OOC parent uses highlite black to color dark exits for staff, and hides the objects section if there are no objects in the room. It looks like this to my staff bit:

    +-------------------------------+ Staff Nexus +--------------------------------+

        This is a temporary desc for an OOC area.

    +----+ Players +---------------------------------------------------------------+

    +----+ Exits +-----------------------------------------------------------------+
    Death's Room <DR>, Famine's Banquet <FB>, Build Nexus <BN>, War's Panoply <WP>, Pestilence's Palace <PP>, and Out <O>

    My ic parent hides objects section, colors dark exits, AND, if you are staff, it shows the attributes for the grid vs grid system:

    +----------------------------+ HK - Hudson River +-----------------------------+

    Food: 2 Population: 2 Water: 2
    Shelter: 2 Security: 2 Owner:
    +----+ Players +---------------------------------------------------------------+

    +----+ Exits +-----------------------------------------------------------------+
    Javits Convention Center <JC>, Hudson River Park <HP>, and Hell's Kitchen <HK>

  • Interesting.

    I wasn't planning on my grid having that many exits to require special formatting. It does look nice though.

  • @Bobotron - How do you make the exit? is it just a dead end exit?

  • @Taika
    You make the exit like normal, so @open Exit <E>;e;exit=#DBREF,Return Exit <RE>;re;return exit.

    Those are attributes that are normally set on an exit, that show what people in the room see when you leave, and what people see in the room when you arrive. So people in the room, when you leave, see 'Name heads (exit name) towards (exit destination)' and in the room you're going to, people see 'Name arrives from (exit origin point)'

    I use a room parent so that I can just set it on every exit and be done with it.

    Here's my Penn exit parent, for example:

  • Ah, cool. Thank you! I had an exit on my room parents, originally and it kept echoing to any rooms I made, so I had to nix their exits.

  • @Taika
    Yeah, make the exit as normal. Set all the attributes on an object or exit elsewise to be the parent, then @parent the exits to the parent.

  • Is there a way to search by zone? Say if I wanted to print a list of all the rooms that have been @chzone'd to a specific zone parent.

  • @highfalutin Lots of ways, but as an example...

    @search eval=strmatch(zone(##),#817) -- in this case, #817 is my zone in question. It'll process every object and return only the objects with their zone set to #817.

    Alternately, th search( eroom=strmatch(zone(##),#817) ) is a little more efficient. eroom will do an eval (like above) but only on rooms. Otherwise, it's the same thing. search() will return a string of dbrefs. @search will return the name + debref, with a line break. So, if you're searching because you want to know "what rooms are here, by name", you can @search. If you want to then process the information, you can use search().

  • @skew Thank you!