@verb #12:"@ex*amine ex*amine @exma*ine" any none none rxdo #55 @program #12:"@ex*amine ex*amine @exma*ine" any none none "This verb should probably go away once 'examine' is in place." if (!dobjstr) player:tell("Usage: ", verb, " <object>") return elseif ($command_utils:object_match_failed(dobj, dobjstr)) return endif player:notify(tostr(dobj.name, " (", dobj, ") is owned by ", valid(dobj.owner) ? dobj.owner.name | "a recycled player", " (", dobj.owner, ").")) player:notify(tostr("Aliases: ", $string_utils:english_list(dobj.aliases))) player:notify((desc = dobj:description()) ? desc | "(No description set.)") if ($perm_utils:controls(player, dobj) && dobj:isa($physical)) player:notify(tostr("Key: ", $lock_utils:unparse_key(dobj.key))) endif contents = dobj.contents if (contents) player:notify("Contents:") for item in (contents) player:notify(tostr(" ", item.name, " (", item, ")")) endfor endif "Use dobjstr, not shortest alias." name = dobjstr "name = dobj.name;" "if (typeof(dobj.aliases) == $LIST && dobj.aliases != {})" "for alias in (dobj.aliases)" "if (length(alias) <= length(name))" "name = alias;" "endif" "endfor" "endif" vrbs = {} commands_ok = dobj in {player, player.location} dull_classes = {$room, $root, $player, $prog} dobj = dobj printed_working_msg = 0 while (dobj != $nothing) if ($command_utils:running_out_of_time()) if (!printed_working_msg) player:notify("Working on list of obvious verbs...") printed_working_msg = 1 endif suspend(0) endif if (!(dobj in dull_classes)) for i in [1..length(verbs(dobj))] if ($command_utils:running_out_of_time()) if (!printed_working_msg) player:notify("Working on list of obvious verbs...") printed_working_msg = 1 endif suspend(0) endif info = verb_info(dobj, i) syntax = verb_args(dobj, i) if (index(info[2], "r") && (syntax[2..3] != {"none", "this"} && (commands_ok || "this" in syntax)) && verb_code(dobj, i)) xdobj = syntax[1] prep = syntax[2] iobj = syntax[3] if (syntax == {"any", "any", "any"}) prep = "none" iobj = "none" endif prep = $code_utils:short_prep(prep) "This is the correct way to handle verbs ending in *" vname = info[3] while (i = index(vname, "* ")) vname = tostr(vname[1..i - 1], "<anything>", vname[i + 1..$]) endwhile if (vname[i = length(vname)] == "*") vname = vname[1..i - 1] + "<anything>" endif vname = strsub(vname, " ", "/") rest = "" if (prep != "none") rest = " " + (prep == "any" ? "<anything>" | prep) if (iobj != "none") rest = tostr(rest, " ", iobj == "this" ? name | "<anything>") endif endif if (xdobj != "none") rest = tostr(" ", xdobj == "this" ? name | "<anything>", rest) endif vrbs = setadd(vrbs, " " + vname + rest) endif endfor endif dobj = parent(dobj) endwhile if (vrbs) player:notify("Obvious Verbs:") player:notify(vrbs) printed_working_msg && player:notify("(End of list.)") elseif (printed_working_msg) player:notify("No obvious verbs found.") endif "Last modified by Dax (#789) on Tue May 3 13:55:52 2005 MDT." .