Immortal Area Echo

Author:		John "Noplex" Bellone 	


Created on:		April 23rd, 2006
Last updated: 		April 24th, 2006

Codebase:		SMAUG 1.7 FUSS
Operating System:	Ubuntu Dapper 6.06 (Debian)
Compiler:		GCC 4.0
Architecture:		AMD64, Intel x86		

	This code has been tested on SMAUG 1.7 FUSS which can be found
at the project's website[3] and has been built with GCC 4.0 running
on a Debian based system. There is absolutely no guarentee that this
code will run error-free on your setup. Be sure to follow the instructions
carefully, and do not delete anything unless told to do so. Always,
always, be sure to backup.

	You are not required to, but if any changes are made to the code
it would be nice if you were to inform the author, or post an updated
version on one of the many community websites. Thanks for using the code.	

Terms of Use

(1)	All method (function) descriptions must be left in place.
(2) 	All file (header) descriptions must be left in place.
(3)	If a bug is found be sure to submit it to the SMAUG FUSS Project
	forums[4], or submit an email to the author.
(4)	This code is licensed under:
		Creative Commons Attribution-NonCommercial 2.5 License


	This was a rewrite of my old "Zone Echo" command that was taken from
an old distribution of CircleMUD (actually, I simply wrote a command after
using the one on CircleMUD--it exists in many distributions). The command
is setup to only be utilized by Immortals (you can choose the level), and
it also accepts the standard SMAUG color tokens.

	(1) act_wiz.c

	Add the following at the bottom of the file:

		/* Summary: Allows for an immortal to send an echo to only the
		 * players that are in his/her area.
		 * License:
		 * Author: John "Noplex" Bellone (
		void do_aecho( CHAR_DATA* ch, char* argument )
			if( !IS_IMMORTAL(ch) || IS_NPC(ch) )
				send_to_char( "Huh\r\n", ch );

			if( argument[0] == '\0' )
				send_to_char( "Syntax: aecho	[...]\r\n", ch );

			/* Only need to poll the descriptors because there is no point in sending
			 * area echos to people that are switched or controlling NPCs */
			for(d = first_descriptor; d; d = d->next)
				if( d->character && d->character->in_room->area == ch->in_room->area )
					pager_printf_color( d->character, "&G%s&g\r\n", argument );

	(2) Compile, and reboot/copyover.
	(3)	cedit aecho create
		cedit aecho level 51

[1]	Flipside Software

[2]	An Alternate Reality

[3]	SMAUG FUSS Project Website

[4]	SMAUG FUSS Project Forums