/* This method allows you to add an extra bit to a description, which will * time out after a specified duration. * The argument is of the form: ({ string description , int duration , string end_mess }) * The end_mess option is optional and supplies the end message. * Have fnu! * @author Furcifer 4 October 2000 */ #include <effect.h> string query_classification() { return "object.extra_description"; } void beginning( object thing , mixed *args ) { string description; int duration; description = args[ 0 ]; duration = args[ 1 ]; if( !stringp( description ) || !intp( duration ) ) return; thing->add_extra_look( this_object() ); thing->submit_ee( 0 , duration , EE_REMOVE ); } string extra_look( object thing ) { int *enums; string message, temp; enums = thing->effects_matching( query_classification() ); if( !sizeof( enums ) ) { thing->remove_extra_look( this_object() ); return ""; } message = ""; foreach( int elem in enums ) { temp = ( thing->arg_of( elem ) ) [ 0 ]; if( !stringp( temp ) ) { temp = ""; } else { if( strlen( temp ) < 2 || temp[ <2 .. ] != "\n" ) temp += "\n"; } message += temp; } return message; } void end( object thing , mixed *args , int id ) { if( sizeof( args ) == 3 && stringp( args[ 2 ] ) ) { string end_mess = args[ 2 ]; if( end_mess[<2 .. ] != "\n" ) end_mess += "\n"; tell_object( thing , end_mess ); } }