1stMUD/corefiles/
1stMUD/gods/
1stMUD/log/
1stMUD/player/
1stMUD/win32/
1stMUD/win32/ROM/
1stMUD F.A.Q
----------------------------------------

Q1. How do I add a new race?

A1. Its really quite simple, type 'raedit create <race name>'.
    This will enter a new race and set an OLC editor for you.
    To make the race usuable by players you have to set it as
    a 'PC' race.

Q2. How do I add a new class?

A2. Type 'cledit create <class name>'.  This will create the
    class and set all skill levels to immortal.
   
Q3. How do I add a new clan?

A3. Type 'cedit create <clan name>' (Ahhhhhhh.... OLC).

Q4. How do I add a new skill/spell?

A4. After you have written your spell or skill, if it had a gsn 
    (global skill number) add an entry to gsn.h, and/or if it has a 
    spell function add an entry to spells.h.  Compile the code and if all goes
    well, copyover. Then in the mud type 'skedit make <skill/spell name>'. 
    Set the appropriate gsn/spell entries and other values. If the skill 
    has a command see A6, how to create a command.

Q5. What is the point of the CH_CMD() and MAGIC() macros?

A5. This is done so you can easily change the arguments needed by
    those type of functions.

Q6. How do I create a new command?

A6. Write the command and add an entry to dofun.h (ex. COMMAND_FUN (do_test) ).
    Then in the mud type 'cmdedit create <cmd name>' and set the dofun pointer
    to the exact entry in dofun.h (ex. 'dofun do_test').
   
Q7. How do I run 1stMUD in windows?

A7. Compile the code in MSVC++ (you can use the workspace included).  After its
    built move the ROM.exe file AND the zlib.dll file to the area directory.
    (Note: you may have to turn on view system/hidden files in folder
    preferences to see zlib.dll).  There is no startup script included so
    just double click on ROM.exe from the area directory, and connect
    using 'localhost <port>' (127.0.0.1).

Q8. How do I make a new social?

A8. By using the social editor.  Type 'sedit create <social name>'.

Q9. 1stMUD areas look different then ROM areas, will they still load?

A9. Yes. If you want to load any stock ROM area file, just add it to
    the area.lst.  Keep in mind that the area file might still have
    vnums that don't exist.

Q10. How do I use the patch file?

A10. Put the patch file in the src directory and type 'patch < patchfile'.
     Parts of the patch that failed will be saved into filename.rej,
     which you can go through manually and edit (If you run the patch on
     modified src code ect.)

Q11. How do I add custom colour to something?

A11. Define a number to use in ansi.h (ex #define _NEWCHANNEL 43) and increase 
     MAX_CUSTOM_COLOUR. You then have to add an entry to the cslot_table[] in
     tables.c where you define the default colour.  Anywhere you want to add 
     its colour you use the CTAG() macro (ex. CTAG(_NEWCHANNEL) ).

Q12. Why the change to chprint, chprintln, chprintf, and chprintlnf functions?

A12. Well, in case you want to make better use of C++, these functions
     could easily be changed.  My thoughts where to have ch->println("");
     victim->printf(""); ect., but I still want 1stMUD to compile in both
     C and C++.  Besides they feel cooler than send_to_char.

Q13. How do I change the maximum level of 1stMUD?

A13. First you would change MAX_LEVEL in merc.h to a new level, keeping in mind
     the old max level.  Lets say it used to be 60, and we changed it to 110.
     To take care of immortals in player files, first find the line in save.c,
     fwrite_char() that looks like this: fprintf(fp, "Vers %d\n", 7);  '7' is 
     the old version so we increase that to 8 (fprintf(fp, "Vers %d\n", 8);)
     Then in load_char_obj() you'll find something like this at the bottom:
     set_player_level(ch, 0, 0, 0); we can now change that to:
     set_player_level(ch, 60, 110, 8);, where 60 is the old max level, 110 is
     the new max level, and 8 is the new version.  OK, that being done, do a
     clean compile.  Now, change directory to the area directory and run
     '../src/rom levels 60 110'  This will change any old immortal levels in
     data files and areas, to new immortal levels.  That should be it.

Q14. Why doesn't 'make' work under FreeBSD??

A14. You have to use 'gmake'.

Q15. How do I use 'gdb'?

A15.    gdb rom
	cd ../area
	run <port>

     It would be a good idea to type 'help' once in gdb
     to figure out what you can do from there.