$building_utils [building(#21)] | -- verbs useful for building |
$byte_utils [Byte Quota Utilities(#80)] | -- quota manipulation |
$code_utils [code(#59)] | -- parsing and manipulating verb code |
$command_utils [Generic Utilities Package(#56)] | -- reporting matching errors to the player |
$gender_utils [Gender_Utilities(#41)] | -- managing gendered objects |
$ghblu_utils [ghblu(#14)] | -- generic biglist manipulation |
$list_utils [list_utilities(#55)] | -- list manipulation |
$lock_utils [lock utilities(#53)] | -- key expression manipulation |
$match_utils [matching utilities(#51)] | -- matching manipulation |
$math_utils [Math Utilities(#27)] | -- matemathic manipulation |
$object_utils [object utilities(#52)] | -- object information (inheritance/location hierarchy, verb/property lists) |
$perm_utils [Generic Utilities Package(#42)] | -- permissions |
$sequence_utils [sequence utilities(#34)] | -- sequence manipulation |
$set_utils [Set Utilities(#28)] | -- set manipulation |
$string_utils [string(#20)] | -- string manipulation |
$time_utils [time utilities(#43)] | -- time (numeric and verbal) manipulation |
$trig_utils | -- trigonometric and other numerical utilities |
NNTP (#75)
Object Quota Utilities(#83)
Temp_Inutils (#815)
webMOO code utilities(#6653)
$wiz_utils (#25)
Portuguese_utils(#3516) | Cpdee Utilities(#530) | CPDEE_Time_utils(#8040) | Msg_Inutils(#1161) ==> no permission to read ANSI Utilities(#3539) | VRML Utilities(#4597) |
===== help $building_utils ===========================
building (#21):
----
building (#21) [ readable ]
Owned by ScarFace (#2).
Child of Generic Utilities Package (#79).
#21:audit_object_category #21:do_audit_item #21:"do_audit do_prospectus"
#21:make_exit #21:object_audit_string #21:parse_names
#21:recreate #21:set_names #21:size_string
#21:transfer_ownership(useless)
Verbs useful for building. For a complete description of a given verb, do `help $building_utils:verbname'.
make_exit(spec,source,dest[,don't-really-create]) => a new exit spec is an exit-spec as described in `help @dig'
set_names(object, spec) - sets name and aliases for an object
parse_names(spec) => list of {name, aliases} in both of these, spec is of the form <name>[[,:]<alias>,<alias>,...] (as described in `help @rename')
recreate(object, newparent) - effectively recycle and recreate object as a child of newparent
===== help $byte_utils ==============================
Byte Quota Utilities (#80):
----
Byte Quota Utilities (#80) [ readable ]
Owned by Hacker (#37).
Child of Generic Utilities Package (#79).
#80:adjust_quota_for_programmer #80:all_characters
#80:bi_create #80:can_peek #80:can_touch
#80:charge_quota #80:"creation_permitted verb_addition_permitted property_addition_permitted"
#80:disable_create #80:display_quota
#80:display_quota_summary #80:do_breakdown
#80:do_summary #80:enable_create #80:get_quota
#80:get_size_quota #80:init_for_core #80:initialize_quota
#80:measurement_task #80:measurement_task(old) #80:"object_bytes object_size"
#80:object_overhead_bytes #80:parse_create_args #80:preliminary_reimburse_quota
#80:property_overhead_bytes #80:quota_remaining #80:recent_object_bytes
#80:reimburse_quota #80:set_quota #80:summarize_one_user
#80:value_bytes #80:verb_overhead_bytes
Verbs a user might want to call from a program:
:bi_create -- built-in create() call, takes same args. :get_quota(who) -- just get the raw size_quota property :display_quota(who) -- prints to player the quota of who. If caller_perms() controls who, include any secondary characters.Called by @quota.
:get_size_quota(who [allchars]) -- return the quota of who, if allchars flag set, add info from all secondary chars, if caller_perms() permits.
:value_bytes(value) -- computes the size of the value. :object_bytes(object) -- computes the size of the object and caches it. :recent_object_bytes(object, days) -- computes and caches the size of object only if cached value more than days old. Returns cached value. :do_summary(user) -- prints out the results of summarize-one-user. :summarize_one_user(user) -- summarizes and caches space usage for user. See verb help for details.Verbs the system calls:
:"creation_permitted verb_addition_permitted property_addition_permitted"(who) -- returns true if who is permitted to build. :initialize_quota(who) -- sets quota for newly created players :adjust_quota_for_programmer(who) -- empty; might add more quota to newly @progged player. :enable_create(who) -- sets .ownership_quota to 1 :disable_create(who) -- sets .ownership_quota back to -1000 to prohibit create() :charge_quota(who, object) -- subtract the size of object from who's quota.Manipulates the #-unmeasured if what is not currently measured.
Called by $wiz_utils:set_owner.
:reimburse_quota(who, object) -- add the size of object to who's quota. Ditto. :preliminary_reimburse_quota(who, object) -- Because the set_owner is done *after* an object has been turned into $garbage, ordinary reimbursement fails. So we use this verb in the $recycler. :set_quota(who, howmuch) :quota_remaining(who) :display_quota_summary -- internal, called by display quotakeys See help @measure and help @quota for the command line verbs.
Porter's notes: If you are planning on porting this system to another MOO, here are the things to grab in addition to @dumping all of $quota_utils:
The following verbs have been changed on $prog:
@prop*erty @verb @copy (@add-alias @copy-move as well)
The following verbs have been changed on $wiz:
@programmer @quotaThe following verbs have been changed on $wiz_utils:
set_programmer set_owner make_player
The following verbs have been changed on $builder:
@quota _create
This verb probably should have gone on $builder. @measure
The followig verbs have been changed on $recycler _recycle _create setup_toad
The following verb has been changed on $login:
create
And don't forget $alt_quota_utils, which has the object based implementation.
Each property definition takes up 1 word plus length of property name, plus each property on the object takes up 4 words. (Or, 5 per defined prop, 4 per inherited prop)
Note: each word is four bytes.
===== help $code_utils ==============================
code (#59):
----
code (#59) [ readable ]
Owned by Hacker (#37).
Child of Generic Utilities Package (#79).
parse_propref("foo.bar") => {"foo","bar"} (or 0 if arg. isn't a property ref.)
parse_verbref("foo:bar") => {"foo","bar"} (or 0 if arg. isn't a verb ref.)
parse_argspec("any","in","front","of","this","baz"...)
=> {{"any", "in front of", "this"},{"baz"...}}
(or string if args don't parse)
tonum(string) => number (or E_TYPE if string is not a number)
toobj(string) => object (or E_TYPE if string is not an object)
toerr(number or string) => error value (or 1 if out of range or unrecognized)
error_name(error value) => name of error (e.g., error_name(E_PERM) => "E_PERM")
verb_perms() => the current task_perms (as set by set_task_perms()).
verb_location() => the object where the current verb is defined.
verb_frame() => callers()-style frame for the current verb.
verb_all_frames() => entire callers() stack including current verb.
verb_documentation([object,verbname])
=> documentation at beginning of verb code, if any
-- default is the calling verb
Preposition routines
prepositions() => full list of
prepostionsfull_prep ("in") => "in/inside/into"
short_prep("into") => "in"
short_prep("in/inside/into") => "in"
get_prep ("off", "of", "the", "table") => {"off of", "the", "table"}
Verb routines
verbname_match (fullname,name) => can `name' be used to call `fullname'
find_verb_named (object,name[,n]) => verb number or -1 if not found
find_callable_verb_named (object,name[,n]) => verb number or -1 if not found
find_verbs_containing (pattern[,object|objlist])
Verbs that do the actual dirty work for @show:
show_object (object)
show_property(object,propname)
show_verbdef (object,verbname)
Dirty work for explain_syntax
explain_verb_syntax(thisname,verbname,@verbargs)
A random but useful verb
verb_or_property(object,name[,@args]) => result of verb or property call,
or E_PROPNF
help #59:1
Information about code(#59):1
----
Do not remove this verb! This is an auxiliary verb for :eval_d().
help #59:argstr
Information about code(#59):argstr
----
:argstr(verb,args[,argstr]) => what argstr should have been.
Recall that the command line is parsed into a sequence of words; `verb' is
assigned the first word, `args' is assigned the remaining words, and argstr is assigned a substring of the command line, which *should* be the one starting first nonblank character after the verb, but is instead (because the parser is BROKEN!) the one starting with the first nonblank character after the first space in the line, which is not necessarily after the verb.
Clearly, if the verb contains spaces --- which can happen if you use
backslashes and quotes --- this loses, and argstr will then erroneously
have extra junk at the beginning. This verb, given verb, args, and the
actual argstr, returns what argstr should have been.
help #59:corify_object
Information about code(#59):corify_object
----
:corify_object(object) => string representing object usually just returns tostr(object), but in the case of objects that have corresponding #0 properties, return the appropriate $-string.
help #59:_egrep_verb_code_all
Information about code(#59):_egrep_verb_code_all
----
:_egrep_verb_code(regexp,object,verbname) => list of lines number
returns list of all lines matching regexp in object:verbname code
help #59:_egrep_verb_code
Information about code(#59):_egrep_verb_code
----
:_egrep_verb_code(regexp,object,verbname) => 0 or line number returns line number of first line matching regexp in object:verbname code
help #59:error_name
Information about code(#59):error_name
----
error_name(E_FOO) => "E_FOO"
help #59:eval_d
Information about code(#59):eval_d
----
:eval_d(code...) => {compiled?,result}
This works exactly like the builtin eval() except that the code is evaluated
as if the d flag were unset.
help #59:find_callable_verb_named
Information about code(#59):find_callable_verb_named
----
:find_callable_verb_named(object,name[,n])
returns the *number* of the first verb on object that matches the given name and has the x flag set. optional argument n, if given, starts the search with verb n, causing the first n verbs (0..n-1) to be ignored. -1 is returned if no verb is found.
This routine does not find inherited verbs.
help #59:find_last_verb_named
Information about code(#59):find_last_verb_named
----
:find_last_verb_named(object,name[,n])
returns the *number* of the last verb on object matching the given name. optional argument n, if given, starts the search with verb n-1, causing verbs (n..length(verbs(object))) to be ignored. 0 is returned if no verb is found.
This routine does not find inherited verbs.
help #59:find_verb_named
Information about code(#59):find_verb_named
----
:find_verb_named(object,name[,n])
returns the *number* of the first verb on object matching the given name. optional argument n, if given, starts the search with verb n, causing the first n verbs (1..n-1) to be ignored. 0 is returned if no verb is found.
This routine does not find inherited verbs.
help #59:find_verbs_containing
Information about code(#59):find_verbs_containing
----
$code_utils:find_verbs_containing(pattern[,object|object-list])
Print (to player) the name and owner of every verb in the database whose code contains PATTERN as a substring. Optional second argument limits the search to the specified object or objects.
Because it searches the entire database, this function may suspend the task several times before returning.
Print (to player) the name and owner of every verb in the database whose code has a substring matches the regular expression PATTERN. Optional second argument limits the search to the specified object or objects.
Because it searches the entire database, this function may suspend the task several times before returning.
format a traceback like the server does, given output from the exception handling traceback value or callers(line numbers)