I realize this is an old post, but being rather new to the forums I thought I'd throw up an idea in case someone else sees it and feels it will fit for them.
On a MUD I used to play I borrowed the head coder's idea that supplanted a new description if certain flags were met. Let me break it down a little, forgive me if I get too confusing.
The coder added a new flag to players that allowed them to phase shift into another dimension, we'll call it PHASED (assume all proper flag declarations, included on tables, etc). What this did was twofold, the pertinant information is this. In each room where Phasing was useful, he had me simply add a new 'extra' description (we used OLC, it was Rom base), and we named it "room_phased_desc". Once in the editor with that extra name, I wrote a completely new room description: ex.
Room desc:
The temple of Mota has been erected near the central square of town for ease of access by the local citizens. Heavy traffic passes through the main entryway of the temple, having stood the test of time for years untold. Songs of praise drift in the from the east, while the center of town remains to the south.
room_phased_desc:
The temple of Mota lies in ruins; vines scramble up the walls as the concrete crumbles away. A somber haunting melody drifts in from the east through a narrow passageway. To the south, the center of town can be reached.
The next part was in the code that shows room to your character (I don't remember offhand, it may have been in do_look() ), an ifcheck was added so that basically the idea was this:
If (player is phased)
Then (do_look(room_phased_desc))
else
do_look [as normal]
It allowed the player to see only the new description, and not the general room description. It worked well (as long as you didn't tell the players what the special keyword was, or they can use 'look room_phased_desc' to see it).
I expanded upon that with another code that utilized "Enhanced Senses". In every room that I thought something would be hinted at with superhuman senses (water dripping in the background, a draft from behind the curtain on the far wall, the faint smell of old blood behind the chest), I created a new extra description named "enhanced_senses_room_desc" and wrote a two or three line addition. Example from above, adding:
enhanced_senses_room_desc:
The stench of urine and sweat permeates the cobblestones as the throng of humanity shuffles by daily.
After the ifcheck for Phased, it shows the normal room description; added directly after that was basically:
If (player affected by Enhanced Senses)
Then (appends 'enhanced_senses_room_desc')
Now, shouldn't you simply be able to do the same thing by combining the two with a check on each exit?
If (north->newbie_only & playerisnewbie)
Then (append 'extra_desc')
Of course, this would mean you would have to have the same 'extra_desc' keyword set up in each room that has exits leading out. Perhaps one for newbie, one for hero, etc.? Anyway, it is a lot of work, but it would work I believe for a simpler MUD that doesn't have RoomProgs (as ours didn't, and neither does the current one I am working on).
Enough rambling now... Feel free to butcher, discuss, berate...etc. I might learn something new! |