If you make a change tell me or email me at moodyg@erols.com and I will update the page.
If you see a change on the page, spend a few minutes and test the change.
Read all the documentation in /root/smaug/doc and the help file (/root/smaug/area/help.are). They will save you a lot of effort and a lot of searching. The files can be FTPed from the Play Dragon Bane page from the smaug directory. The text version of this page resides there as /smaug/doc/shogar.rules.
The key to a good area is a balance for the entire range that the area is meant for.
Humor is always nice in an area, just be politically correct about it.
Smaug has OLC - On Line Creation for builders.
MZF is a program that you can use to build areas. As of yet MZF can't handle the new smaug area formats, but if you are writing from scratch, using the MERC 2.x file format can give you a heck of a good start on an area.
Don't put items in an area that the player can't use for a long time. If the range is 0-5 don't have an item that is meant for more than a sixth level player. The converse of this also applies. Don't put level one items in an area meant for 10-15 level characters. (:unless they cursed:)
If you agonize about a mobile's stats, you can now create a mobile with just a level and a zero value for hitnodie. The hitnodie, hitsizedie, damnodie, damsizedie and gold will be calculated out on the boot load. It would work on UNFOLDAREA area too, but I've never been able to use that command with crashing the mud.
To have the mobile respond to the TALK command when coding off line, merely follow the long description with a back quote (usually same key as ~) and the response that you wish the mobile to say. Do not include the back quote if using OLC. This should have no affect on area building programs like MZF.
if(ch->recall) /* for the recall command - shogar */
{
}
that way any of us can find the affected code by doing a unix: grep
-i "shogar" *.c command.
New subroutines will have a comment before them like:
/* do_srecall - recall (recall is the command the user would use) usage: recall usage: recall set usage: recall reset descr: general reason for routine and each usage author: recall - shogar (:for the grep again:) */I feel well written C code doesn't need line by line comments. If you want to go ahead. If you are accessing global variables that are not defined or normally used in the .c file you are working in, you should put a comment as to where and/or why you are using it. Up to you though.
Don't over compensate for readability by creating a lot of 1 time local variables. Yes the system gets the memory back when the sub routine ends, but allocating and deallocating memory eats CPU. For instance:
This is bad; char hello_buf[1024]; char illegal_command_buf[1024]; char goodbye_buf[1024]; If this would do; char show_char_buf[1024];If you can't put a comment beside a line, put it above the line. Not under it. Just my preference here:).
CHECK CHECK CHECK. Don't assume that there is plenty of disk space. If you write to the disk, check the status of the write command.
Don't assume that an object or a room exits. Check the status.
If you catch a problem, write it to the log "log_string(str)" or the bug file "bug(str,int)". Include the subroutine's name, for example:
{
log_string("do_recall: Can't find the room");
handle_it();
return;
}
or
{
bug("do_recall: Can't find the room",errcode);
exit(1);
}
I like to reserve bug for critical errors that probably would cause the
mud to crash. My personal preference.
If you add a new command, DON'T FORGET TO UPDATE THE help.are FILE.
Look to see if a subroutine you need already exists, or one so similar that you might be able to setup a global variable to alter the way the existing subroutine works.
Don't let realism get in the road of playability. It is very realistic
for a critically hurt person to take months to heal, but it makes a very
boring mud.
RESOURCES:
Area EXchange
(AEX) project (Take the pain out of porting areas/zones)
Area
Building Software and Links
MZF Area
Builder (useful to smaugers when used with orb to port areas)
ORB Area Builder(does
smaug areas)
OLC Instructions
& FAQs (Quick overall of OLC with FAQs from Dragon Bane)
Bartell's Smaug
Shop Building Guide (Usually a trouble area with new imms)
Smaug frequently
asked Questions
Smaug Mailing
List Archive
Ambiorix's
Smaug OLC Manual (nicely done hypertexted manual)
Smaug
Posting Board (For Admins, Coders and Builders)
The New Smaug
FAQ (Searchable FAQ)
BSNAME's
Smaug FAQ (Many of the well know bugs and their fixes are covered
here)
Zyrain's
Smaug FAQ (several documents here, mprog.txt makes it worth
the trip)
Zylara's
Castle (noble effort to document smaug olc in one spot, a work
in progress)
Garwain's
Smaug OLC FAQ (A few different FAQs)
The MUD Cheat Page appears to be no more.
Essay
on Object Balance (Put this on your "must read" list)
Silvain
Robert's Spellbook Page (not directly smaug related, but a good
source for inspiration)
Journal of Mud
Research (scientific approach mudzine)
World
Building (Lots of resources for the serious World Builder)
UCMM
Page (Multi Clan - Multimud Organization - of which Dragon Bane
is a member)
Dragon Bane
Specific ORB files (.dat files that have DB's flags and bitvectors)
Dragon Bane
Specific ORB files (As of the 3/31/98 version, the dat files
are gone, it's now a .ini - ascii file)