1stMud F.A.Q (A work in progress...) ------------------------------------------------------------------------------ 1. How do I add a new race? 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. ------------------------------------------------------------------------------ 2. How do I add a new class? Add a class index entry in index.h. Once in the game type 'cledit create <class name>'. This will create the class and set all skill levels to immortal. Then set the class index. ------------------------------------------------------------------------------ 3. How do I add a new clan? Type 'cedit create <clan name>'. ------------------------------------------------------------------------------ 4. How do I add a new skill/spell? After you have written your spell or skill, if it had a gsn (global skill number) add a gsn entry to index.h, and/or if it has a spell function add an entry to magic.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 #6, how to create a command. ------------------------------------------------------------------------------ 5. What is the point of the macro headers for functions (Do_Fun(), Spell_Fun(), ect.)? This is done so you can easily change the arguments needed by those type of functions. ------------------------------------------------------------------------------ 6. How do I create a new command? Write the command and add an entry to dofun.h. Once in the mud type 'cmdedit create <cmd name>' and set the do_fun pointer. ------------------------------------------------------------------------------ 7. How do I run 1stMud in windows? You can compile the code in both MSVC++ 6 and Cygwin unix emulator. See http://www.firstmud.com/setup.php for instructions on setting up both. After you have built rom.exe, run it and connect using 'localhost <port>' (127.0.0.1). ------------------------------------------------------------------------------ 8. How do I make a new social? By using the social editor. Type 'sedit create <social name>'. ------------------------------------------------------------------------------ 9. 1stMud areas look different then ROM areas, will they still load? 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 and will abort bootup. ------------------------------------------------------------------------------ 10. How do I use the patch file? Patching 1stMud is now somewhat easier, in every distribution you will find a vXXtovXX.tgz file containing the necissary patch files. To patch an old version move that file to its home directory (ex. 1stMudvXX) and extract it. Run the vXXtoXX.sh script to patch the old distribution. Modified files will be saved in .rej files to manully add. ------------------------------------------------------------------------------ 11. How do I add custom colour to something? Add an enum entry to custom_color_t in ansi.h (ex. _NEWCHANNEL). In the mud create a color using 'coledit create <name>' and set the slot to the new value and the color values. Anywhere you want to add its colour you have to use the CTAG() macro in the code (ex. CTAG(_NEWCHANNEL) ). ------------------------------------------------------------------------------ 12. Why the change to chprint, chprintln, chprintf, and chprintlnf functions? Just personal preference. You can add macro's to change them to yours. (ex. #define send_to_char(txt, ch) chprint(ch, txt) ) ------------------------------------------------------------------------------ 13. How do I change the maximum level of 1stMud? 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 increase PFILE_VERSION in defines.h by 1. 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, #);, where 60 is the old max level, 110 is the new max level, and # is the new pfile version. That being done, do a clean compile. Now, run the mud with the 'relvl' argument to fix levels in the data files. (ex. './rom relvl 60 110') That should be it. ------------------------------------------------------------------------------ 14. Why doesn't 'make' work under FreeBSD?? or Why am I getting 'Error expanding embedded variable.' when running make?? The Makefile(s) require GNU make. You will have to use 'gmake' instead. ------------------------------------------------------------------------------ 15. How do I use 'gdb'? Briefly: gdb ./rom break <function> run <port> (program breaks at function or hit CTRL-C to force a break) backtrace (or bt) info locals print <variable> If you need to debug a core file the syntax is: gdb ./rom ./core It would be a good idea to type 'help' once in gdb to figure out what you can do from there, there are also many resources on the web. ------------------------------------------------------------------------------ 16. How to create a new channel? First add a global channel number in index.h (ex 'gcn_whine'). If the channel is not a public channel add an entry to channel_types in defines.h (ex 'spec_whine_flag'). If the channel display requires special formatting, add it to format_channel() in channels.c and validate_chanformat() in olc_act.c. Create a command function for the channel with a call to public_ch(). (ex Do_Fun(do_whine)) Add an entry for the command in dofun.h (ex (COMMAND_FUN(whine)). Compile and copyover/reboot. In the game type 'chanedit create <name>' to create the channel and edit. Add the global channel number. (gcn_whine) Then create the command 'cmdedit create <name>' and add the do_fun pointer. ------------------------------------------------------------------------------ 17. How do I create a new jukebox song? In the game type 'songedit create <name>' and edit. ------------------------------------------------------------------------------ 18. How do I create a new note board? Increase MAX_BOARD and add an entry to board_table[] in board.c ------------------------------------------------------------------------------ 19. How do I disable/remove the web server? If you have a configure script made, run it with --disable-web (ex. ./configure --disable-web) Otherwise define DISABLE_WEBSRV either in the Makefile (-DDISABLE_WEBSRV) or one of the main header files (config.h or merc.h) In MSVC++ add ,DISABLE_WEBSRV to the C/C++ preprocessor options. ------------------------------------------------------------------------------ 20. How do I use the configure script? Running setup.sh will create or recreate a configure script considering your system has autoconf installed. You can edit the .in files to control what is configured. You can reset your configuration by typing 'make resetconfig'. ------------------------------------------------------------------------------ 21. How do I backup my stuff? If you'd like to have your own backups use the backup script in ../bin. For convienience 'make backup' will backup player/data/area/src files to the ../backup directory. ------------------------------------------------------------------------------ 22. How do I fix a 'cannot find zlib1.dll' or 'cannot find cygwin1.dll' error? Copy the ../win/zlib1.dll or ../win/cygwin1.dll file to your windows directory or the same location as rom.exe. You can do this easily by running ../win/install.bat. ------------------------------------------------------------------------------ 23. Your work is awsome! How can I help?? Goto http://sourceforge.net/project/project_donations.php?group_id=96911 and make a donation! ------------------------------------------------------------------------------ 24. How do I report a bug? You can post it on the 1stMud Mailing list at firstmud-list@lists.sourceforge.net or go to http://sourceforge.net/tracker/?group_id=96911&atid=616324 and click on "submit new". ------------------------------------------------------------------------------ 25. How do I use CVS / SourceForge.net? Use anonymous login to acces the CVS server on cvs.sourceforge.net. The CVS root is /cvsroot/firstmud. The password is your email addess. So to login to the CVS server you would type: cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/firstmud login The -d flag specifies the CVSROOT. Then to get a new copy of 1stMud you would type: cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/firstmud checkout 1stMud 1stMud is the current module name on the CVS server. If developers update the CVS server, you can update your checked out copy by typing: cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/firstmud update The ../bin/sfcvs script was added to simplify some of the typing involved. ------------------------------------------------------------------------------ 26. How do I become a project developer? Contact me (Markanth) by e-mail (markanth@firstmud.com) explaining why you would like to become one. You Must have an account on Sourceforge.net to become a developer. ------------------------------------------------------------------------------