/** * The lsay command, trial out by Turrican for a commands daemon. */ #include <drinks.h> inherit COMMAND_BASE; inherit SPEECH_BASE; /** @ignore yes */ int cmd( string arg ) { string word, s1, cur_lang, lang, mess; int *co_ords; if( TP->query_gagged() ) return notify_fail("You have been gagged! You will not be able " "to say things again until the gag is removed. Perhaps you " "should talk to a creator about this.\n"); if( !ENV(TP) ) return notify_fail("You are in limbo, no-one can hear you.\n"); cur_lang = TP->query_current_language(); if( !LANGUAGE_H->query_language_spoken(cur_lang) ) return notify_fail( CAP(cur_lang)+" is not a spoken language.\n"); if( !interactive(TP) ) { arg = TP->convert_message( arg ); arg = TP->fit_message( arg ); } word = query_word_type(arg); if( TP->query_volume(D_ALCOHOL) ) arg = drunk_speech(arg); // General speech modifications (curses, etc). if( stringp( s1 = TP->mangle_speech(arg) )) arg = s1; arg = de_eight(arg); TP->remove_hide_invis("hiding"); if( cur_lang != "common") lang = " in "+cur_lang; else lang = ""; mess = "$one_short:"+file_name(TP)+"$ "+"$V$0="+word+"s,"+word+"$V$ " "loudly: "; TP->comm_event( ENV(TP), "person_say", mess, arg, cur_lang ); // Broadcast it around a little. co_ords = ENV(TP)->query_co_ord(); BROADCASTER->npc_shout_event( TP, mess, arg, cur_lang, co_ords, 20 ); my_mess("You " + word + " loudly" + lang + ": ", arg ); TP->add_say_history("You " + word + " loudly" + lang + ": ", arg ); return 1; } /* cmd() */ /** @ignore yes */ mixed query_patterns() { return ({ "<string'message'>", (: cmd( $4[0] ) :), }); } /* query_patterns() */