Help Database (#61)(an instance of Generic Help Database made by Hacker)     The object $help is the main help database. For every help topic there is a corresponding property on $help, interpreted as follows:            $help.(topic) = string - one-line help text.      $help.(topic) = {"*verb*",@args} - call this:verb(args,{}) to get text      $help.(topic) = any other list - multi-line help text            There is also a "" property which applies in the case of `help' typed without any arguments.            See the description of $generic_help for more detail. VERB SOURCE CODE: player_quota: return $player.ownership_quota; . prog_quota: return $prog.ownership_quota; . get_topic:
text = pass(@args);
if ((text != E_PROPNF) || (!valid(object = $string_utils:match_object(what = args[1],
player.location))))
return text;
elseif (ohelp = (object = $string_utils:match_object(what, player.location)):help_msg()
|| object.help_msg)
"...geez. life is simple if we set -d...";
return {tostr(object.name, " (", object, "):"), "----", @(typeof(ohelp) == LIST)
? ohelp | {ohelp}};
else
about = $object_utils:has_verb(object, "about");
return {tostr("Sorry, but no help is available on ", object.name, " (", object,
")."), tostr("Try `@examine ", what, "'", @about ? {" or `about ", what, "'"} | {},
".")};
endif
.
find_topics:
topiclist = pass(@args);
if (topiclist || (!args))
return topiclist;
elseif (valid(o = $string_utils:match_object(what = args[1], player.location)))
return {what};
else
return {};
endif
.
full_index:
text = {};
for db in ($code_utils:help_db_list())
if ($object_utils:has_callable_verb(db, "index"))
text = {@text, @db:index({tostr(db.name, " (", db, ")")})};
endif
endfor
return text;
.
index_list:
hdr = "Available Help Indices";
text = {"", hdr, $string_utils:space(hdr, "-")};
for db in ($code_utils:help_db_list())
if ($object_utils:isa(db, $generic_help))
for p in (properties(db))
if ((h = db.(p)) && ("*index*" in h))
text = {@text, tostr($string_utils:left(p, 14), " -- ", h[2] || db.name,
" (", db, ")")};
endif
endfor
endif
endfor
for p in (properties(this))
if (this.(p) && (this.(p)[1] == "*full_index*"))
return {@text, "", tostr($string_utils:left(p, 14), " -- ", "EVERYTHING")};
endif
endfor
return text;
.
wizard_list:
wizzes = {#2, @$list_utils:randomly_permute(setremove($object_utils:leaves($wiz),
#2))};
numwiz = length(wizzes);
hlist = {"ArchWizard:", "Wizard" + ((numwiz == 2) ? ":" | "s:"), @$list_utils:make(max(0,
numwiz - 2), "")};
slist = {};
su = $string_utils;
for i in [1..numwiz]
wiz = wizzes[i];
slist = {@slist, tostr(su:left(hlist[i], 13), su:left(wiz.name, 16), (wpi = wiz.public_identity.name)
? (" (a.k.a. " + wpi) + ")" | "")};
endfor
return slist;
.
dump_topic:
if (((text = pass(@args)) != E_PROPNF) || ((!valid(object = $string_utils:match_object(what
= args[1], player.location))) || (!$object_utils:has_property(object, "help_msg"))))
return text;
else
return {tostr(";;", $code_utils:corify_object(object), ".help_msg = $command_utils:read_lines()"),
@$command_utils:dump_lines((typeof(text = object.help_msg) == LIST) ? text | {text})};
endif
.
PROPERTY DATA:       @locations       @uptime       @mailoptions       @sort-owned       @verify-owned       @add-owned       @mail-options       wizard-list       @wrap       full-index       index       gen-index       mail-forwarding       @pagelength       @more       programming       @forward       @subscribe       @rn       @unsubscribe       @skip       negative_quota       zombie-messages       message-sequences       common_quota       @recreate       @linelength       room-messages       @unrmmail       @gaglist       ::       @comment       @remove-entrance       @remove-exit       @parents       @contents             spoofing       privacy       @realm       @resident       @examine       security       @sweep       @paranoid       @check       @reply       @eject       @quit       whereis       @suggest       @idea       @bug       @typo       @renumber       @notedit       editors       @prev       @unlock_for_open       @lock_for_open       @opacity       container-messages       @memory       "       :       @lastlog       @version       miscellaneous       insert       information       ?       put       remove       burn       letters       decrypt       encrypt       delete       erase       write       read       examine       hand       key-representation       keys       @unlock       @lock       locking       thing-messages       throw       take       @messages       pronouns       exit-messages       messages       descriptions       @describe       @add-entrance       @add-exit       topology       @classes       @audit       @count       @quota       @create       tinymud       @next       @answer       @rmmail       @read       @send       mail       @gripe       creation       @mail       @listgag       @ungag       @gag       go       @password       @sethome       @who       introduction       give       news       gagging       @dig       @move       inventory       @entrances       @exits       @gender       @recycle       @rename       containers       notes       look       drop       get       manipulation       help       rooms       movement       home       communication       say       whisper       page       emote       building       players       summary       @edit-options       @editoptions       @add-feature       @remove-feature       @features       features       @dump       me       @rmalias       @addalias       commands       name       alias       @setprop       @set       @peek       @subscribed       @request-character       player-names       @registerme       @netforward       @eject!       gopher       @builder-options       @builderoptions       @buildoptions       @build-options       osummary |