#include <quest_handler.h> #include <library.h> inherit "/cmds/base"; string quest_text(string quest); int cmd( string player, int sorted ) { string *quests, text; int i, size; if ( !player ) { quests = QUEST_HANDLER->query_quest_names(); text = "$P$Quest list$P$\nTotal quests on " + mud_name() + " :-\n\n"; } else { quests = LIBRARY->query_quests(player); if (!quests) { add_failed_mess( "That player has not done any " "quests.\n" ); return 0; } if ( sorted ) quests = sort_array( quests, 1 ); text = "$P$Quest list$P$\nQuests done for player " + player + " :-\n\n"; } size = sizeof(quests); for ( i = 0; i < size; i++ ) { text += sprintf("%d. %s (%s) %s\n", i + 1, quests[i], QUEST_HANDLER->query_quest_title (quests[i]), quest_text( quests[i] ) ); } tell_object( this_player(), text ); return 1; } /* cmd() */ string quest_text(string quest) { switch ( QUEST_HANDLER->query_quest_status(quest) ) { case 0: return "(inactive)"; case 1: return ""; default: return "(broken)"; } } /* quest_text() */ mixed *query_patterns() { return ({ "", (: cmd(0, 0) :), "<string'player'>", (: cmd($4[0], 0) :), "<string'player'> sorted", (: cmd($4[0], 1) :) }); } /* query_patterns() */