// _ask.c // Lets a player ask a monster about a subject. If the monster has set // the inquiry property to a mapping, then if that mapping has an entry under // the subject, then the monster will say that string. // Written by Pyrosius@TMI-2 // He and Mobydick integrated it into the lib on 8-18-93. // Added help. Lucas@Avatar (5May96) #include <mudlib.h> inherit DAEMON; int cmd_ask(string str) { string mon_name, subject; object mon_obj; mapping cmd_map; if (!str) { notify_fail("Ask <monster> about <what>?\n"); return 0; } if (sscanf(str, "%s about %s", mon_name, subject) != 2) { notify_fail("Ask <monster> about <what>?\n"); return 0; } mon_name = lower_case(mon_name); mon_obj = find_living(mon_name); if (!present(mon_name, environment(this_player()))) { notify_fail(capitalize(mon_name) + " is nowhere to be found.\n"); return 0; } if (!mon_obj) { notify_fail("Do you like talking to inanimate objects?\n"); return 0; } if (mon_obj->query("user")) { write ("You ask "+capitalize(mon_name)+ " about "+subject+".\n") ; tell_object(mon_obj,this_player()->query("cap_name")+" asks you: Know anything about "+subject+"?\n") ; say (this_player()->query("cap_name")+" asks "+capitalize(mon_name)+": Know anything about "+subject+"?\n", mon_obj) ; return 1 ; } cmd_map = ([ ]); cmd_map = mon_obj-> query("inquiry"); if (sizeof(cmd_map)==0) { write (capitalize(mon_name)+" looks at you blankly.\n") ; return 1 ; } if (undefinedp(cmd_map[subject])) { tell_room(environment(this_player()), this_player()-> query("cap_name") + " asks " + capitalize(mon_name) + " about " + subject + ".\n", this_player()) ; tell_room(environment(this_player()), capitalize(mon_name) + " says: " + "I don't know about that.\n"); return 1; } else tell_room(environment(this_player()), this_player()-> query("cap_name") + " asks " + capitalize(mon_name) + " about " + subject + ".\n", this_player()) ; tell_room(environment(this_player()), capitalize(mon_name) + " says: " + cmd_map[subject] + "\n"); return 1; } string help() { return(@HELP Syntax: ask <monster> about <question> This command allows you to ask a living object a question. If the objects knows anything about the question, it will reply with an answer. HELP ); }