/
rogue24b3/
rogue24b3/data/
/***************************************************************************\
[*]    ___    ____   ____   __   __  ____ [*]  ROGUE:  ROM With Attitude  [*]
[*]   /#/ )  /#/  ) /#/  ) /#/  /#/ /#/   [*]     All rights reserved     [*]
[*]  /#/ <  /#/  / /#/ _  /#/  /#/ /#/--  [*]   Copyright(C)  2000-2001   [*]
[*] /#/   \(#(__/ (#(__/ (#(__/#/ (#(___  [*] Kenneth Conley  (Mendanbar) [*]
[*]  Expression of Digital Creativity...  [*]   scmud@mad.scientist.com   [*]
[-]---------------------------------------+-+-----------------------------[-]
[*] Original DikuMUD by Hans Staerfeldt, Katja Nyboe, Tom Madsen, Michael [*]
[*] Seifert, and Sebastian Hammer. Original MERC 2.1 code by Hatchet,     [*]
[*] Furey, and Kahn. Original ROM 2.4 copyright 1993-1998 by Russ Taylor. [*]
[*] From: rogue.dyn.dhs.org:3033                                          [*]
\***************************************************************************/

// -Changes, addins, etc made by Mendanbar
 1) Removed "Mota" from code, who is this Mota anyway?
 2) New-New do_who, lets go CircleMUD style.
	Replaced Immortal(or Wizard)/Mortal with Staff/Player.
	Leaves more room for expansion, doesn't limit it to an oldstyle
	D&D setting. Also new Staff Levels from Trainee to Coder.
 3) Once reaching level 101 a player becomes a HERO and can progress into
	hero levels. There is no limit to hero_level. ExpTNL is Doubled.
 4) AutoAll inspired by a patch i found once but don't have anymore.
 5) GEdit (Clan Edit), lets you edit clans online!
 6) "Unlinked" Add Unlinked to the builder's list to prevent gates.
 7) New Do-Exits, ported from SCMud.
 8) Slight change in note format.
 9) OLC Copy Add-On
10) Damage/Battle Prompt %b - Lets you know how far you have to go.
11) New do_sockets, more informative easier to read.
12) Full pueblo implemtation see PUEBLO.README
13) Change Imotd/Motd only one (i)motd will display to the player.
14) Do_display - preset prompts for easy prompt setting.
15) Roomflags (Holylight) changed to include more information.
16) Wizi/Incog shows in prompt along with AFK now.
17) New Wearflags - Face, Back, Eyes, Ears, Ankles
18) Nolose eq, not put into corpse stays on character.
19) Killed mapper bug, "map 50" caused a crash.
20) Added MAX_HERO_LEVEL 999 to bite a bug.
21) Hero_level exp changed back to normal gain of exp for sake of simplicity.
22) Lock/Unlock immortals don't need a key anymore to lock/unlock doors.
23) Set loadroom - allows you to change the room a character loads/recalls.
24) Staff CMDs basic structure layed in, not implemented.
25) Restore messages "rmessage" allows staff with restore to send customised
	restoring message "You are restored by Mendanbar's magic staff." instead
	of "You have been restored by Mendanbar" or "Mendanbar restores you".
26) Skill table regenerated to a 101 player level structure - THANK THE GODS!
27) Cleaned out most of the reboo, shutdow, murde commands - don't need them.
28) Entering a room produces "Mendanbar has entered from the east." now.
29) Hidden rooms/doors added, Mapper still maps the room maybe i'll fix later.
	Take the hint from closed/locked doors change it for hidden.
30) Race defined loadrooms, defined in merc.h, HUMAN_STARTROOM.
	Allows different racial towns for players to start at.
31) New Classes: Ranger Druid Psionic Bard
32) New 'song' system for Bards (like magic)
33) GetRelation complete!! (Friend, Enemy, Neutral)
34) Fixed hidden exits in the automapper.
35) Fixed a bug 'alias q goto 110' it now takes you to room 110.
36) Fixed hero exp gain bug (remember to include previous ch->levels)
37) Unlink - delete those naughty player's pfiles.
38) Color codes changed from { to ` (the ~ key for those who think its a ')
39) New Songs: Hymn of Thunder, Legend of Aegis.
40) SEdit modified to be more user friendly(?)
41) New color code "`." random colors (as random as you'll get)
42) Ever want a ~ in your title or in your zone? Try the color code `-
43) Mk/Md, Pk/Pd - Kills and Deaths counted
44) New item type ITEM_INSTRUMENT, gotta play on something right?
45) nopueblo command, disable automatic display of images and sounds.
	Some people don't like downloading them when they start.
46) Modified login for colored greeting (if you want it)
47) Modified do_mapper so "map 7" doesn't include roomdesc
48) colorstrlen added, counts color strings and returns the value
	`rmoo`n = 4 (`r`n), I used this in adding extra column space
	in do_mapper so room names with alot of color wont be appended.
49) Enhanced boards (can see colors now... and new parsing)
50) Check for color codes in alias names (no "alias `rmoo '`rmoo!`n")
51) Input overflow (spam) disconnects the spammer. Like teaching a puppy.
52) Fixed that annoying automapper 80 column-color bug adds color*2
53) Expanded sounds to include MSP along with Pueblo.
54) do_toggle - I like this better
55) New macros ONOFF, YESNO, PLR_FLAGGED, COMM_FLAGGED.
	Eventually I'll change the do_autolist, do_channels to use these.
56) Smart Pwipe in save.c using version numbers in pfiles...
57) Conversion of many "int, sh_int" into SInt32/UInt32 signed/unsigned int
	short integer is SInt16/UInt16.
58) Implemented staffcmds into the cmd_table look at do_goto for example
59) allow/revoke lets you list commands associated with the permission
	and set/remove the staff bit on a player. Must be admin to toggle.
	Inspired by LexiMUD by Chris Jacobson, HEY FEAR! ;)
60) AFK now lets you include a message, and receive tells while afk.
	Tells and Replies are still stored to the 'replay' just incase.
61) score, wizhelp can now be used with victims (score <player>)
62) Modified string_append to use / commands instead of . dot commands.
63) sound_to_(room, char, all) created to handle MSP or Pueblo.
	More detailed information available in PUEBLO.README
64) do_sound created "sound char/room/all file.wav/mid" handy it is.
65) ToStartRoom to replace multi-repeat char_from/char_to
66) 0.<name> returns the first PC-Only that matches name. No mobs.
	used in get_race_room, get_char_room, get_char_world.
67) I wonder about these coders sometimes... detect invis/hidden/magic
	target changed to TAR_CHAR_DEFENSIVE from CHAR_SELF *wobble*
68) Finger command. I got ideas from Kavir (GodWars), and Wench, and
	Seraph of Gemini EX (First Rogue based mud!)
69) Changed look <dir> slightly, look at do_look you'll see.
70) LastHost and LastTime are now added & updated when you log in...
71) PWIPE fixed, I missed something in the original snippet so it wasn't
	working correctly. Thanks to Clandestine MUD for the code!
72) New startup scripts, using bash and crontab to keep it up always!
73) Added in dependencies to the makefile (make depend) to generate.
74) Moved lasthost/lasttime to CON_READ_MOTD to catch newbies.
75) .crontab and rogue-run have replaced the old startups.
76) CName, Lname (color name, last name) added.
77) strip_color added to remove color from a string.
78) act() fixed so mob triggers don't crash!!
79) new socket_state for do_sockets.
80) Staff categories added to replace level titles (Coder, Builder, etc)
	Usage: category <target> <category>  No arg gives a list.
// Changes from v2.3 to v2.4, not in exact order of change just file2file
81) Removed all set_bit functions and replaced with do_gen_tog
82) Removed pueblo.h from merc.h and placed pueblo.h in C files that needed it
83) Changed command table structure to support sub commands (subcmd)
84) Replaced all do_functions with ACMD to work with subcmds
	ACMD(name) void name(CHAR_DATA *ch, char *argument, SInt32 subcmd)
85) Added olc_delete to delete rooms, objects, mobs, and areas
    - WARNING: If a mob or object is reset in a room and you delete it the
		mud will crash. Reset deleting has not been imped.
86) Removed wiznet() and replaced with mudlogf() <- much better for logs
87) Removed do_wiznet and replaced with do_syslog for mudlogs
88) Added RealName() define to return PC name or NPC short desc safely.
89) Removed NOCHANNELS, NOTELL, NOEMOTE and replaced with MUTE.
90) Added condition COND_HANGOVER set after a player sobers up.
91) Added new macros for FLAGGED bits (COMM_FLAGGED, PLR_FLAGGED, etc).
92) Replaced FLAGGED macros to be PC/NPC sensitive for sanity.
93) Revized check_color_string, real_string_length, and colorcount
94) Replaced immtalk to handle level arguments and on/off functionality
95) Replaced merc.h defines with (1 >> 0) instead of alpha characters "A"
96) Removed fPull from extract_char, it now pulls automatically.
97) Fixed show_list_to_char color format with combined items.
98) Replaced do_autolist to use ONOFF()/YESNO() macros instead of if/else.
99) Removed all do_autos and replaced with do_gen_tog with subcmds.
// Yay 100 documented changes!! - Mend
100) Added image_to_char() to replace manual pueblo codes in comm.c
101) Removed get_race_room and integrated it into get_char_room.
102) Fixed HERO_LEVEL exp gain and displays (score, worth, gain_exp, etc).
103) Replace old score format with new format and moved old score to do_nscore
104) Added do_attributes() for character stats, works with "attr <player>"
105) Updated do_toggle with new changes and new features displayed.
106) Changed do_time() format to be easier on the eyes.
107) Removed ToStartRoom as the primary PC char_to_room function.
108) Added StartRoom() RID* to get startroom of a PC or NPC used with
	char_to_room(ch, StartRoom(ch));  // Supports pets and NPC recalls
109) Added NOHASSLE flag to allow imms to interact like PCs without being
	PC level. Replaces most IS_IMMORTAL() with NO_STAFF_HASSLE().
110) Removed do_nohassle and moved to do_gen_tog to toggle nohassle bit.
111) Added STAT_CHA for charisma, used by bards and charm spells.
112) Added do_donate to allow donation into a pit or container.
113) Added perform_give to replace repeting code of do_give function.
114) Updated do_give to handle give all or give all.item arguments.
115) Added spell intoxication for drunkards who drink a little too much.
116) Added functionality for naming pets at purchase.
117) Added do_liblist to list up to 300 library items (obj, mob, room, mprog)
118) Updated do_liblist to handle subcmds for rlist, olist, mlist, tlist.
119) Removed do_deny because it's stupid to lock one char out when you can
	freeze, ban, mute, etc. Deny cmd_table is now used for do_allow.
120) Updated do_allow to allow/deny commands using subcmds
121) Added functionality to purge single objects in a room with do_purge
122) Removed do_rset because you do not need to set flags in a room.
123) Replaced do_set to better handle expanding the setable flag table.
124) Added functionality to set file flags to offline characters.
	Pets are not saved afterwards because pet must be in same room.
125) Added perform_set and set_table to work with do_set.
126) Cleaned do_sockets code to be more readable, fixed a con_state bug.
127) Removed do_permban, replaced with do_ban subcmds.
128) Changed do_ban to automatically set suffix and prefix bits.
129) Added more mudlog calls in main loop to display failed connect attempts
130) Added an OLC prompt that displays info when you enter an editor.
131) Added multiple greeting functionality GREETING1-4 randomly displayed.
132) Added mprog names to MPEdit for better organization of mprogs.
133) Removed reset restrictions that made mobs/objs not reset if pc was in room
134) Updated make_corpse to better handle npc/pc corpses and CANLOOT flags
135) Updated make_corpse & raw_kill to support ITEM_NO_LOSE without mem leaks
136) Removed extract_char from raw_kill, replaced with char_to_room(StartRoom)
137) Added "Player has returned from the dead" echo to player's startroom
138) Added do_look(auto) after PC dies so he can see where he is.
139) Replaced buggy AUTODAMAGE code created by Sean Cohmer with my own unbuged
140) Added guild vnums saved in file (to help olc prompt ;)
141) Added get_pc_world() to return !IS_NPC automatically.
142) Capitalized all PLR_ACT, COMM, STF flags in sprint_bit functions.
143) Removed gsave from interp.c, replaced with "asave guilds"
144) Changed do_commands & do_allow to page information to character.
145) Added color to item creation and enchantment spells.
146) Fixed a bug in new_obj() where note_descr was not initialized.
147) Added bard song for charm, needs a rename though.
148) Added do_olclist to see what zones need to be saved (type "olc")
149) Added name/description initializers for new room creation instead of null
150) Added URL support for MSP enhancements (I now use zMUD 6.0+)
151) Removed all communication functions like do_gossip, do_music, etc.
152) Added do_gen_comm to replace all communication channels.
153) Removed old rlist, olist, mlist from olc redit.
154) Added hedit_copy for copying descriptions of other helps.
155) Added my own rendition of do_areas back into the game.
156) Changed do_areas to give a path to areas from current position.
157) Changed area_flags to save in area files so that AREA_UNLINKED will work.
158) Changed Unlinked zones to use area_flag instead of a builder name.
159) Added do_zallow for quick add/remove of builders to a zone.
160) Changed do_areas to not list unlinked areas to players. alist still does.
161) Changed word_of_recall to teleport player to a safe room in limbo.
162) Added last name support during character creation. None or LName.
163) Removed do_sockets and replaced with do_users which handles args.
164) Changed do_who to support argument switches instead of whole words.
165) Changed do_who to sort names from MAX_LEVEL down to 0.
166) Changed argument parsing in string_add to interpret '/e2 Moo'
167) Fixed bust_a_prompt exit viewer to work like do_exits instead of stock
168) Created social edit functions for OLC and moved sedit there.
169) Added using objects in socials, char_obj_found, others_obj_found.
170) Added min_position for socials to control snoring and such ;P
171) Added do_spec_comm() for ask and whisper special communications.
172) Fixed do_wear() to accept wear all.<item>
173) Recoded act_new to be more compatable with.... everything..
174) Recoded do_gocial to be more effecient and use act_new() features.
175) Removed the multiple act() functions (act2, act_social, etc)
176) Created web utilities to output do_who and wizlist to a html file.
177) Created an auto-wizlist utility to generate wizlist automatically.
178) Converted code to C++ and debugged all but alloc_mem/free_mem.
	(ANSI C++ forbids using 'void *' pointer type in arithmetic)
179) Added CHAR_DATA send feature ch->Send("%s", "Blah")
180) Added ROOM_INDEX_DATA send feature IN_ROOM(ch)->Send("The room is groovy.")
181) Added logging through boot_db to keep track of the boot process.
182) Added "peace all" to send peace throughout the world.
183) Implemented hedit_delete finally, it now deletes help files.
184) Fixed a top_help bug that counted double helps (load_helps, new_help)
185) Fixed position switch in check_social to report all positions.
186) Added mountable vehicles and driveable vehicles and added to OLC.
187) Added in a few vehicle enhancements like sect_space, room_vacuum, etc.
188) Added in choking in vacuum rooms, if you can't breath, you DIE!
189) Recoded do_look to use a variety of other functions.
190) Changed do_look calls to look_at_room or look_at_rnum depending on need
191) Changed do_mapper to handle look_at_rnum's ability to look at rooms
	outisde of the IN_ROOM(ch) limitation of original code.
192) Added a quirky function to make the first player in database an IMP
193) Removed password and delete functions and replaced with do_menu.
194) Removed LOG_ALL, LOG_NORMAL, LOG_NEVER from cmd_table since it's not
	needed now that players use a different STATE() and can't be snooped
195) Split do_exits into two functions, do_auto_exit is room arguable
196) Changed raw_kill to handle NULL as a killer, so you can just die..
197) Added points_update to regularly kill off dying people (for vacuum)
198) Changed several functions to use IMP_NAME instead of "Mendanbar"
199) Added in string parsing into note writing using Edwin's boards.
200) Changed do_mem to be more viewable and added more information.
201) Fixed up gedit olc slightly, removed temple vnum and kept morgue/recall
202) Removed start_rooms from race_table, added start_room struct characters.c
203) Implemented newbie_start_rooms incase someone wants multiple start
	rooms. Like individual newbie schools for that particular race...
204) Added in motion tracking: You sense motion far off to the east.
205) Added in watching: Far away you see Mendanbar come into view.
206) Fixed(?) memory problems that prevented people from using v2.4b1.
207) Added in skill custumization during creation again.
208) Fixed skill creation to let you go with the number of points it says.
	(I.E you need 40, have 40, but it says you need 40.. strange eh?)
209) Fixed db.cpp saying so such VEHICLE object type(s) so it would know.

// -Credits for misc patches and addons.
 1) OLC ver1.7 Added (Credit goes to Ivan Toledo).
 2) Lope's Colour ver1.2 Added, Modified Slightly.
 3) HEdit for OLC by Kermit (rom.are, olc.hlp, group.are put into help.are)
 4) Copyover by Erwin S. Andreasen, thank you for the ROM patch ;)
 5) AUTODAMAGE by Sean Cohmer, I had to modify it however (buggy).
 6) Drunken Speach - Maniac
 7) AutoMap taken from Ack! codebase - ACK! Consortium.
 8) Pload/Punload - ??
 9) SEdit added (social editor) by Erwin S. Andreasen
10) Boards 2 by Erwin S. Andreasen (~feh)

------
This code is the new and improved v2.4!
Compiled with gcc 2.95.1 on a RedHat Linux 2.* machine no errors, also it
has been compiled with egcs-2.91.66 on RedHat Linux 6.0 with no errors.
If you encounter problems you can email me at (scmud@mad.scientist.com) or
log onto the official ROGUE MUD site at rogue.dyn.dhs.org:3033 and ask for
me, Mendanbar. If your reading this you managed to uncompress everything
so go to step 3) cd src; make. Once again I do not support any other OS
other than RedHat with at least GCC 2.95, but it should be able to compile
with some modifications to the source. (I might or might not help you).

*NEW*
  Rogue now has a mailing list at Yahoo eGroups for discussion and FAQ.
If you would like to join send an email to: roguemud@yahoogroups.com
The list should auto-add you if it doesn't try going to the web page at:
	http://groups.yahoo.com/subscribe/roguemud/
If you continue to have difficulty send me an email and I will auto add
you to the list as soon as I am able to. (scmud@mad.scientist.com)

The startup file is in /src called "rogue-run", which replaces the
old startup script using bash instead of csh. Open rogue-run and set the
port to whatever you want "PORT=????". Save it, and type "./rogue-run &".
If you would like crontab to automatically run your rogue-run script and
keep it going ALWAYS then edit the ".cronmud" file in /src for more info.
If you compiled correctly your new Rogue MUD should be ready to rock.

MAX_LEVEL is 110 which is the Coder lvl, sorry for those odd muds
that have non-coders running them. But no good mud I've ever been to
had a pet coder. ;)

If you are not familiar with ROM or many other code bases, to get your
special "immortal" character read below.

** New in v2.2+ is a constant way to become top dog, look in merc.h under
the IMP_NAME and change "Immortal" to your imp name and create your new
character then type save, you will be advanced to level 110, and your
security will be set to 9 as well as given all command permissions.

*NEW*
  In v2.4 the first character created in the PLAYER_DIR will be set as
implementor and allowed all staff permissions so you can immediatly go into
the mud and do your thing without having to edit IMP_NAME, however I do
recommend that you change your IMP_NAME eventually.

By using this code you comply with the license found in /doc/rogue.license
You must give the authors credit for their work. These credits must be
fully visible in the greeting file, anything above or around it does not
matter as long as this information is represented.
----
 This MUD based on Rogue v2.4b3 by Kenneth Conley.
 Original DikuMUD by Hans Staerfeldt, Katja Nyboe, Tom Madsen, Michael
 Seifert, and Sebastian Hammer. Original MERC 2.1 code by Hatchet,
 Furey, and Kahn. Original ROM 2.4 copyright 1993-1998 by Russ Taylor.


POSSIBLE TODO:
	* Add a LONG_EXIT flag to toggle from auto_exit and do_exit..
	* More exact D&D style Skill/Stat/Spell engine.
	* Change to new D&D 3rd Edition?
	* More skill/spells - Necromancy maybe? Elementalists?
	* Psionics system   - I added bard 'songs' why not psionics?
	* More songs and bard skills!!!!
	* Capiccino Machine - Nothing should be without one.
	* More to come!