Immortal Area Echo ------------------ Author: John "Noplex" Bellone Email: j.bellone@flipsidesoftware.com Website: http://www.flipsidesoftware.com/ Homepage: http://www.thealternate.org/ Statistics ---------- 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 Disclaimer ---------- 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 http://creativecommons.org/licenses/by-nc/2.5/ Overview -------- 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: http://creativecommons.org/licenses/by-nc/2.5/ * Author: John "Noplex" Bellone (j.bellone@flipsidesoftware.com) */ void do_aecho( CHAR_DATA* ch, char* argument ) { if( !IS_IMMORTAL(ch) || IS_NPC(ch) ) { send_to_char( "Huh\r\n", ch ); return; } if( argument[0] == '\0' ) { send_to_char( "Syntax: aecho [...]\r\n", ch ); return; } /* Only need to poll the descriptors because there is no point in sending * area echos to people that are switched or controlling NPCs */ DESCRIPTOR_DATA* d; 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 Links ----- [1] Flipside Software http://www.flipsidesoftware.com/ [2] An Alternate Reality http://www.thealternate.org/ [3] SMAUG FUSS Project Website http://www.smaugfuss.org/ [4] SMAUG FUSS Project Forums http://forums.smaugfuss.org/