774
COMMAND: @chown <object>[=<player>]
775
@chown <object>/<attr>[=<player>]
777
The first form changes the ownership of <object> to <player> (default is
778
to yourself). Objects may be things, rooms or exits. To chown things, you
779
have to be carrying the thing. For rooms or exits, you have to be in the
780
room. Objects must have the CHOWN_OK flag set before they may be @chowned.
781
In a room, the command used must be @chown here = <name>, and for an object,
782
you must be very specific.
784
The second form changes the ownership of the indicated attribute on <object>
785
to <player> (default is the owner of the object). You may only @chown
786
unlocked attributes. You may @chown unlocked attributes on objects that
787
you own to yourself, and you may also @chown attributes that you own on
788
objects owned by others to the owner of the object.
792
COMMAND: @chown[/nostrip] <object>[=<player>]
793
@chown <object>/<attr>[=<player>]
795
The first form changes the ownership of <object> to <player>. By default,
796
this is yourself. Objects may be things, rooms or exits. To @chown things,
797
you have to be carrying the thing. For rooms or exits, you have to be in
798
the room. Objects must have the CHOWN_OK flag set before they may be
799
@chowned. In a room, the command used must be @chown here=<name>, and for
800
an object, you must be very specific. Players can't be @chowned; they
801
always own themselves.
790
803
When an object is @chowned, all unlocked attributes on the object are
791
automatically @chowned as well, locked attributes remain owned by their
804
automatically @chowned as well. Locked attributes remain owned by their
794
The HALTED flag is automatically set on the new copy of the object.
795
Players can't be @chowned; they always own themselves.
797
Related Topics: @lock, @Unlock, CHOWN_OK, ATTRIBUTE OWNERSHIP.
807
Without the /nostrip switch, CHOWN_OK, all flags specified in the
808
stripped_flags configuration option, and all @powers are stripped. Also,
809
HALT is set. With /nostrip, ROYALTY and INHERIT are preserved (albeit with
810
warnings). #1 can use /nostrip to further preserve WIZARD and @powers.
812
By default, stripped_flags includes: BLIND, CONNECTED, GAGGED, HEAD_FLAG,
813
IMMORTAL, INHERIT, ROYALTY, SLAVE, STAFF, SUSPECT, UNINSPECTED, and WIZARD.
815
{ 'help @chown2' for more }
820
The second form changes the ownership of the indicated attribute on <object>
821
to <player>. The default is the owner of the object. You may only @chown
822
unlocked attributes. You may @chown unlocked attributes on objects that you
823
own to yourself, and you may also @chown attributes that you own on objects
824
owned by others to the owner of the object.
826
Related Topics: ATTRIBUTE OWNERSHIP, CHOWN_OK, @lock, stripped_flags, and
802
832
COMMAND: @chzone <object>=<zone object>.
804
Changes the zone of <object> to <zone object>. If <zone object> is "none",
834
Changes the zone of <object> to <zone object>. If <zone object> is "none",
805
835
the zone is reset to NOTHING.
807
837
@chzone'ing a player does not automatically change the zone of their
808
objects. Anyone may reset the zone of an object they own; <zone object>
809
must either be "none", or must be owned by them. Only wizards may @chzone
810
an object to an arbitrary zone object. Players may @chzone themselves to
811
an object they own; otherwise, only wizards may @chzone players.
812
@chzone'ing resets the WIZARD, ROYALTY, and INHERIT flags on non-player
815
Related Topics: ZONE OBJECTS
838
objects. Anyone may reset the zone of an object they own; <zone object>
839
must either be "none", or must be owned by them. Only wizards may @chzone
840
an object to an arbitrary zone object. Players may @chzone themselves to
841
an object they own; otherwise, only wizards may @chzone players. For
842
non-player objects, @chzone'ing strips all flags in the stripped_flags.
844
By default, stripped_flags includes: BLIND, CONNECTED, GAGGED, HEAD_FLAG,
845
IMMORTAL, INHERIT, ROYALTY, SLAVE, STAFF, SUSPECT, UNINSPECTED, and WIZARD.
847
Related Topics: stripped_flags, ZONE OBJECTS
858
890
the clone object will be left unparented.
860
892
You may clone your own objects, plus VISUAL objects owned by others.
861
The INHERIT and WIZARD bits of the (new) object are cleared when the object
862
is cloned. If <newname> is specified, it is used as the name instead of
893
Typically, INHERIT, WIZARD, and other flags in the stripped_flags
894
configuration option are not cloned. Powers are never cloned. If <newname>
895
is specified, it is used as the name instead of the original name.
897
By default, stripped_flags includes: BLIND, CONNECTED, GAGGED, HEAD_FLAG,
898
IMMORTAL, INHERIT, ROYALTY, SLAVE, STAFF, SUSPECT, UNINSPECTED, and WIZARD.
865
900
If you clone a linked exit, an attempt is made to link the clone to the
866
901
same location. Except when using the /inventory switch, you can only clone
867
902
exits when you own your current location.
904
{ 'help @clone2' for more }
869
909
If you clone a room with a drop-to, an attempt is made to link the drop-to
870
910
to the same location.
872
{ 'help @clone2' for more }
877
912
If the original object was owned by you, then the ACLONE attribute is run
878
913
in the new attribute, otherwise the new object is set HALTED. Exits and
879
914
contents of cloned objects are not cloned, and LOCKED attributes are not
882
917
The following switches are available:
883
919
/cost - Treat the argument after the = as the cost of the new
884
920
object, not the name.
885
922
/inherit - Don't reset the INHERIT bit on the new object.
886
924
/inventory - Create the new object in your inventory (or your exitlist,
887
925
in the case of cloning exits).
927
/nostrip - Flags in the stripped_flags set are not stripped except
928
that only #1 is allowed to clone WIZARD.
888
930
/location - Create the new object in your location (default).
932
{ 'help @clone3' for more }
889
937
/parent - Set the new object's parent to be the template object and
890
938
don't copy the attributes.
892
Related Topics: @create, @decompile, @destroy, VISUAL.
940
/preserve - Let the existing owner own the clone. Existing owner must
943
Related Topics: @create, @decompile, @destroy, stripped_flags, VISUAL.
1296
1363
command 'enter <object>' when you are in the same location as the object.
1297
1364
The alternate commands are separated by semicolons just like in exit names.
1299
Entry aliases are checked for after exitnames, builtin MUX commands, and
1300
leave aliases for the current location, but before $-commands. If more than
1301
one object has an entry alias that matches a player's command, the one on
1302
the object that occurs first in the location contents list is used.
1366
Entry aliases are checked after exit names, built-in MUX commands, and leave
1367
aliases for the current location, but before $-commands. If more than one
1368
object has an entry alias that matches a player's command, the one on the
1369
object that occurs first in the location contents list is used.
1304
1371
This attribute is meaningful for players and things, and will never be
1305
1372
automatically looked at on rooms or exits.
1650
1732
Related Topics: @drain, @notify, kill, HALTED, SEMAPHORES.
1737
COMMAND: @htdesc <object> = <message>
1740
Sets the HTML description for <object> to be shown when a player with the
1741
HTML flag looks at the object. If there is no HTDesc set, then the player
1742
is shown the regular description from Desc.
1744
You may place regular, raw HTML in the @htdesc, however if you do so you
1745
should set the HTML flag on the object. Without the flag any '<' characters
1746
are translated to '<' and any '>' are translated to '>'. If this
1747
occurs, the browser will display the '<' and '>' characters instead of
1748
handling them as HTML tags.
1750
Functions and %-substitutions are evaluated in this attribute.
1753
> @htdesc me=<IMG SRC="http://www.fakeserver.com/image.png">
1754
> @set me/htdesc = html
1756
See also: PUEBLO, @set, HTML
2441
2559
COMMAND: @nameformat <object> [=<format>]
2443
By default, when an object is looked at, the object's name is shown.
2444
And, if you can link to the object, it's flag letters and dbref are also
2445
shown. However, with @nameformat, you can control exactly what is shown.
2561
By default, when an object is looked at, the object's name is shown. And,
2562
if you can link to the object, its flag letters and dbref are also shown.
2564
With @nameformat, you can control exactly what is shown to people who
2565
use 'look' while inside. @nameformat is not used when people outside the
2447
Related Topics: @conformat, @exitformat
2568
Related Topics: @conformat, @descformat, @exitformat
3317
3451
@SET (continued)
3319
3453
The following flags may be set using the fourth form of the @set command:
3455
case - $-command matching will not be case-sensitive.
3456
Non-functional unless the 'R' flag is also set.
3320
3457
no_command - Prevent $-commands and ^-patterns defined in the attribute
3321
3458
from being performed.
3322
3459
no_inherit - Prevents children of the object from obtaining the
3323
attribute. From their perspective the attribute does not
3460
attribute. From their perspective, the attribute does not
3462
no_name - If set on an @o-attr, don't prepend the name of the
3463
enactor. This also affects @verb behavior.
3325
3464
visual - Anyone may see the attribute when they examine you, and
3326
3465
may get the attribute with get().
3327
3466
hidden - The attribute is only visible to wizards.
3467
html - Emits from attr, oattr, aattr are not HTML-escaped.
3328
3468
regexp - When $-commands are matched, treat the pattern as a
3329
3469
regular expression rather than a wildcard glob pattern.
3470
trace - The attribute will generate trace output.
3330
3471
wizard - The attribute may only be changed by wizards.
3332
3473
The @set command takes the following switch:
3333
3475
quiet - Inhibit 'Set.' acknowledgement messages.
3335
Related Topics: @lock, @lock, examine, FLAGS, &.
3477
Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.
3677
3821
@VERB (continued)
3679
3823
Here is a description of the arguments to @verb:
3680
3825
victim - The object that is searched for attributes, and which runs the
3681
3826
<awhat> attribute if it is found.
3682
3828
actor - The object that 'did' the verb, this is the value for %#/%n/etc
3683
3829
in substitutions, and this object's name is included in the
3684
3830
message to others in the same location.
3685
3832
what - The name of the attribute containing the message to be delivered
3687
3835
whatd - The message to deliver to the actor if the victim does not have a
3688
3836
<what> attribute, or if it cannot be read.
3689
owhat - The name of the attribute containing the message (prefixed by the
3690
actor's name) that is sent to everyone in the room with the actor.
3691
owhatd - The message (prefixed by the actor's name) to deliver to others
3692
in the room with the actor if the victim does not have an <owhat>
3693
attribute, or it cannot be read.
3838
owhat - The name of the attribute containing the message that is sent to
3839
everyone in the room with the actor. The message is prefixed
3840
by the actor's name unless no_name flag is present on the
3843
owhatd - The message to deliver to others in the room with the actor if
3844
the victim does not have an <owhat> attribute, or it cannot be
3845
read. The message is prefixed by the actor's name unless
3846
/no_name switch is specified.
3694
3848
awhat - The name of the attribute that is to be executed by the victim.
3695
3850
args - The comma-separated arguments to be passed for substitution
3696
3851
(%0-%9). If there is more than one argument, enclose all the
3697
3852
arguments within curly braces. Any argument that contains an
5031
5205
version whisper WHO " : ;
5034
@@ @backup @break @cemit @chown @chzone
5035
@clone @cpattr @create @decompile @destroy @dig
5036
@doing @dolist @drain @edit @emit @entrances
5208
@@ @break @cemit @chown @chzone @clone
5209
@cpattr @create @decompile @destroy @dig @doing
5210
@dolist @drain @edit @email @emit @entrances
5037
5211
@femit @find @force @fpose @fsay @halt
5038
@if @last @link @list @listmotd @lock
5039
@mail @mvattr @name @nemit @notify @npemit
5040
@oemit @open @parent @password @pemit @power
5041
@program @ps @quitprogram @quota @remit @robot
5042
@search @set @stats @sweep @switch @teleport
5043
@timecheck @trigger @unlink @unlock @verb @wait
5212
@htdesc @if @last @link @list @listmotd
5213
@lock @mail @mvattr @name @nemit @notify
5214
@npemit @oemit @open @parent @password @pemit
5215
@power @program @ps @quitprogram @quota @remit
5216
@robot @search @set @stats @sweep @switch
5217
@teleport @trigger @unlink @unlock @verb @vrml_url
5046
5220
{ 'help commands2' for more }
5053
5227
@aahear @aclone @aconnect @adescribe @adfail @adisconnect
5054
5228
@adrop @aefail @aenter @afail @agfail @ahear
5055
@akill @aleave @alfail @alias @amail @amhear
5056
@amove @apay @arfail @asuccess @atfail @atofail
5057
@atport @aufail @ause @away @charges @conformat
5058
@cost @daily @descformat @describe @dfail @drop
5059
@ealias @efail @enter @exitformat @exitto @fail
5060
@filter @forwardlist @gfail @idesc @idle @idletimeout
5061
@infilter @inprefix @kill @lalias @leave @lfail
5062
@listen @mailsucc @mfail @moniker @move @nameformat
5063
@odescribe @odfail @odrop @oefail @oenter @ofail
5064
@ogfail @okill @oleave @olfail @omove @opay
5065
@orfail @osuccess @otfail @otofail @otport @oufail
5066
@ouse @oxenter @oxleave @oxtport @pay @prefix
5067
@queuemax @reject @rfail @runout @saystring @sex
5068
@signature @speechmod @startup @success @tfail @tofail
5229
@akill @alead @aleave @alfail @alias @amail
5230
@amhear @amove @apay @arfail @asuccess @atfail
5231
@atofail @atport @aufail @ause @away @charges
5232
@color @conformat @cost @daily @descformat @describe
5233
@dfail @drop @ealias @efail @enter @exitformat
5234
@exitto @fail @filter @forwardlist @gfail @idesc
5235
@idle @idletimeout @infilter @inprefix @kill @lalias
5236
@lead @leave @lfail @listen @mailsucc @mfail
5237
@moniker @move @nameformat @odescribe @odfail @odrop
5238
@oefail @oenter @ofail @ogfail @okill @olead
5239
@oleave @olfail @omove @opay @orfail @osuccess
5240
@otfail @otofail @otport @oufail @ouse @oxenter
5241
@oxleave @oxtport @pay @prefix @queuemax @reject
5242
@rfail @runout @saystring @sex @signature @speechmod
5243
@startup @success @tfail @tofail @tport @ufail
5403
5578
By default, this function converts a time string (of format
5404
5579
[Ddd] Mmm DD HH:MM:SS YYYY) into an integer which represents a
5405
5580
count of seconds since Jan 01 00:00:00 1970 UTC not including leap
5406
secs. Where Ddd, if given, is the day of the week. Mmm is the month
5581
secs where Ddd, if given, is the day of the week, Mmm is the month
5407
5582
name, DD is the day of the month, HH is the hour in 24-hour time,
5408
5583
MM is the minutes, SS is the seconds, and YYYY is the year.
5410
Keep in mind that the year may not be exactly four characters and
5411
it can also be negative. This server provides a proleptic Gregorian
5585
Keep in mind that the year may not be exactly four characters, and
5586
it can also be negative. This server provides a proleptic Gregorian
5412
5587
calendar with a range of supported years between 27257 BC and
5413
5588
30826 AD. Year 0 is 1 BC, -1 is 2 BC, ..., so 27257 BC should be
5414
given as -27256. This follows the astronomical conventions.
5589
given as -27256. This follows the astronomical conventions.
5416
Note: The time string can also be freeform and this function will
5591
Note: The time string can also be free form and this function will
5417
5592
attempt to parse.
5594
{ 'help convtime2' for more }
5597
CONVTIME() (continued)
5419
5599
If a second argument is given, it is the <zonename>:
5421
5601
local - indicates that a conversion for timezone/DST of the 'local'
5424
5604
utc - indicates that no timezone/DST conversions should be applied.
5425
5605
When used this way, there is a unique one-to-one relationship
5426
5606
between an integer and it's corresponding text-string which
5427
may be useful for handling other timezones and fictional
5607
may be useful for handling other time zones and fictional
5430
5610
<precision> determines the number of fractional seconds shown.
5431
5611
By default, no fractional seconds are shown.
5613
{ 'help convtime3' for more }
5616
CONVTIME() (continued)
5435
You say "Wed Jun 24 10:22:54 1992"
5620
You say, "Wed Jun 24 10:22:54 1992"
5436
5621
> say convtime(Wed Jun 24 10:22:54 1992)
5622
You say, "709406574"
5438
5623
> say convtime(Wed Jun 24 10:22:54 1992, utc)
5624
You say, "709381374"
5440
5625
> say convtime(June 24th 1992 10:22:54.0001am Z)
5626
You say, "709381374"
5442
5627
> say convtime(Wed 24 Jun 1992 10:22:54 -0700)
5628
You say, "709406574"
5444
5629
> say convtime(2001-01-01T100000Q)
5630
You say, "978357600"
5446
5631
> say convtime(-1605-120T123456M)
5447
You say "-112805738704"
5632
You say, "-112805738704"
5448
5633
> say convtime(23456W12-1T123456T)
5449
You say "678039276896"
5634
You say, "678039276896"
5451
5636
Related Topics: convsecs(), secs(), time().
6106
6295
Related Topics: secure().
6300
FUNCTION: etimefmt(<format>, <secs>)
6302
Escape sequences in <format> are expanded out. All escape sequences start
6303
with a $. Any unrecognized codes or other text is returned unchanged. An
6304
optional field width may be given after the initial $ (but before any
6305
modifier or format letters). All values are right-justified within the
6308
Modifier letters (can be used together):
6310
x - Value is suffixed with the corresponding units (s, m, h, or d).
6311
z - Enter escape becomes blank of corresponding value is zero.
6315
$s - Seconds $S - Seconds, left-padded with zeroes.
6316
$m - Minutes. $M - Minutes, left-padded with zeroes.
6317
$h - Hours. $H - Hours, left-padded with zeroes.
6318
$d - Days. $D - Days, left-padded with zeros.
6319
$n - Newline $$ - $ character
6322
> think etimefmt($2h:$2M, 3700)
6325
Related Topics: convtime(), convsecs(), timefmt().
6305
6526
> say fdiv(15,3)
6307
6528
> say fdiv(16,3)
6309
6530
> say fdiv(17,3)
6311
6532
> say fdiv(18,3)
6313
6534
> say fdiv(-17,3)
6535
You say, "-5.666667"
6315
6536
> say fdiv(10,3.5)
6318
6539
Related Topics: add(), mod(), mul(), round(), sub(), trunc().
6323
FUNCTION: filter([<obj>/]<attr>, <list>[, <in delim>[, <out delim>]])
6544
FUNCTION: filter([<obj>/]<attr>, <list>[, <in delim>[, <out delim>[,<arg1>[,<arg2>[,...]]]]])
6325
6546
This function evaluates the contents of <attr> for each element of <list>,
6326
6547
passing it in as %0. A <out delim>-separated list is returned of those
6327
elements for which the evaluation returns the value 1.
6548
elements for which the evaluation returns the value 1. Arguments %1, %2,
6549
... are taken from <arg1>, <arg2>, ... respectively, if present.
6329
6551
<in delim> may be used to specify an input delimiter other than space.
6332
6554
> &IS_ODD object=mod(%0,2)
6333
6555
> say filter(object/is_odd,1 2 3 4 5)
6336
6558
Related Topics: u(), map(), fold()
6341
FUNCTION: filterbool([<obj>/]<attr>, <list>[, <in delim>[, <out delim>]])
6563
FUNCTION: filterbool([<obj>/]<attr>, <list>[, <in delim>[, <out delim>[,<arg1>[,<arg2>[,...]]]]])
6343
6565
This function evaluates the contents of <attr> for each element of <list>,
6344
6566
passing it in as %0. A <out delim>-separated list is returned of those
6345
elements for which the evaluation returns a boolean-true value.
6567
elements for which the evaluation returns a boolean-true value. Arguments
6568
%1, %2, ... are taken from <arg1>, <arg2>, ... respectively, if present.
6347
6570
<in delim> may be used to specify an input delimiter other than space.
6350
6573
> &IS_ODD object=mod(%0,2)
6351
6574
> say filterbool(object/is_odd,1 2 3 4 5)
6354
6577
Related Topics: u(), map(), fold()
6722
6950
CONNRECORD()CONNTOTAL() CONTROLS() CONVSECS() CONVTIME() COR()
6723
6951
CORBOOL() COS() CRC32() CREATE() CTIME() CTU()
6724
6952
CWHO() DEC() DECRYPT() DEFAULT() DELETE() DIE()
6725
DIGITTIME() DIST2D() DIST3D() DOING() DUMPING() E()
6726
EDEFAULT() EDIT() ELEMENTS() ELOCK() EMIT() EMPTY()
6727
ENCRYPT() ENTRANCES() EQ() ERROR() ESCAPE() EVAL()
6728
EXIT() EXP() EXPTIME() EXTRACT() FCOUNT() FDEPTH()
6729
FDIV() FILTER() FILTERBOOL()FINDABLE() FIRST() FLAGS()
6730
FLOOR() FLOORDIV() FMOD() FOLD() FOREACH() FULLNAME()
6953
DIGITTIME() DIST2D() DIST3D() DISTRIBUTE()DOING() DUMPING()
6954
E() EDEFAULT() EDIT() ELEMENTS() ELOCK() EMIT()
6955
ENCRYPT() ENTRANCES() EQ() ERROR() ESCAPE() ETIMEFMT()
6956
EVAL() EXIT() EXP() EXPTIME() EXTRACT() FCOUNT()
6957
FDEPTH() FDIV() FILTER() FILTERBOOL()FINDABLE() FIRST()
6958
FLAGS() FLOOR() FLOORDIV() FMOD() FOLD() FOREACH()
6732
6960
("help function list2" for more)
6734
6962
& FUNCTION LIST2
6735
6963
FUNCTION LIST (continued)
6737
GET() GET_EVAL() GRAB() GRABALL() GREP() GREPI()
6738
GT() GTE() HASATTR() HASATTRP() HASFLAG() HASPOWER()
6739
HASQUOTA() HASRXLEVEL()HASTXLEVEL()HASTYPE() HEIGHT() HOME()
6740
HOST() IABS() IADD() IDIV() IDLE() IF()
6741
IFELSE() ILEV() IMUL() INC() INDEX() INSERT()
6742
INZONE() ISDBREF() ISIGN() ISINT() ISNUM() ISRAT()
6743
ISUB() ISWORD() ITEMIZE() ITEMS() ITER() LADD()
6965
FULLNAME() GET() GET_EVAL() GRAB() GRABALL() GREP()
6966
GREPI() GT() GTE() HASATTR() HASATTRP() HASFLAG()
6967
HASPOWER() HASQUOTA() HASRXLEVEL()HASTXLEVEL()HASTYPE() HEIGHT()
6968
HOME() HOST() IABS() IADD() IDIV() IDLE()
6969
IF() IFELSE() ILEV() IMUL() INC() INDEX()
6970
INSERT() INZONE() ISDBREF() ISIGN() ISINT() ISNUM()
6971
ISRAT() ISUB() ISWORD() ITEMIZE() ITER() LADD()
6744
6972
LAND() LAST() LATTR() LATTRCMDS() LATTRP() LCMDS()
6745
6973
LCON() LCSTR() LDELETE() LEXITS() LFLAGS() LINK()
6746
6974
LIST() LISTRLEVELS() LIT() LJUST() LN() LNUM()
6747
6975
LOC() LOCALIZE() LOCATE() LOCK() LOG() LOR()
6748
LPARENT() LPORTS() LPOS() LRAND() LROOMS() LSTACK()
6749
LT() LTE() LWHO() MAIL() MAILFROM() MAP()
6750
MATCH() MATCHALL() MAX() MEMBER() MERGE() MID()
6751
MIN() MIX() MOD() MONEY() MONIKER() MOTD()
6752
MTIME() MUDNAME() MUL() MUNGE() NAME() NEARBY()
6753
NEQ() NEXT() NOT() NULL() NUM() OBJ()
6754
OBJEVAL() OBJMEM() OEMIT() OR() ORBOOL() ORD()
6755
ORFLAGS() OWNER() PACK() PARENT() PARSE() PEEK()
6976
LPARENT() LPORTS() LPOS() LRAND() LROOMS() LT()
6977
LTE() LWHO() MAIL() MAILFROM() MAILSIZE() MAILJ()
6978
MAILSUBJ() MAP() MATCH() MATCHALL() MAX() MEMBER()
6979
MERGE() MID() MIN() MIX() MOD() MONEY()
6980
MONIKER() MOTD() MTIME() MUDNAME() MUL() MUNGE()
6981
NAME() NEARBY() NEQ() NEXT() NOT() NULL()
6982
NUM() OBJ() OBJEVAL() OBJMEM() OEMIT() OR()
6983
ORBOOL() ORD() ORFLAGS() OWNER() PACK() PARENT()
6757
6985
("help function list3" for more)
6759
6987
& FUNCTION LIST3
6760
6988
FUNCTION LIST (continued)
6762
PEMIT() PFIND() PI() PICKRAND() PLAYMEM() PMATCH()
6763
POLL() POP() PORTS() POS() POSS() POWER()
6764
POWERS() PUSH() R() RAND() REGMATCH() REGMATCHI()
6765
REGRAB() REGRABALL() REGRABALLI()REGRABI() REMAINDER() REMIT()
6766
REMOVE() REPEAT() REPLACE() REST() REVERSE() REVWORDS()
6767
RIGHT() RJUST() RLOC() ROMAN() ROOM() ROUND()
6768
RXLEVEL() S() SCRAMBLE() SEARCH() SECS() SECURE()
6769
SET() SETDIFF() SETINTER() SETQ() SETR() SETUNION()
6770
SHA1() SHL() SHR() SHUFFLE() SIGN() SIN()
6771
SINGLETIME()SORT() SORTBY() SPACE() SPELLNUM() SPLICE()
6772
SQRT() SQUISH() STARTSECS() STARTTIME() STATS() STRCAT()
6773
STRIP() STRIPACCENTS() STRIPANSI() STRLEN() STRMATCH() STRMEM()
6774
STRTRUNC() SUB() SUBEVAL() SUBJ() SWITCH() T()
6775
TABLE() TAN() TEL() TEXTFILE() TIME() TIMEFMT()
6776
TRANSLATE() TRIM() TRUNC() TXLEVEL() TYPE() U()
6777
UCSTR() UDEFAULT() ULOCAL() UNPACK() V() VADD()
6778
VALID() VCROSS() VDIM() VDOT() VERSION() VISIBLE()
6779
VMAG() VMUL() VSUB() VUNIT() WHERE() WIDTH()
6780
WORDPOS() WORDS() WRAP() WRITETIME() XGET() XOR()
6781
ZFUN() ZONE() ZWHO()
6990
PARSE() PEMIT() PFIND() PI() PICKRAND() PLAYMEM()
6991
PMATCH() POLL() PORTS() POS() POSS() POWER()
6992
POWERS() R() RAND() REGMATCH() REGMATCHI() REGRAB()
6993
REGRABALL() REGRABALLI()REGRABI() REMAINDER() REMIT() REMOVE()
6994
REPEAT() REPLACE() REST() REVERSE() REVWORDS() RIGHT()
6995
RJUST() RLOC() ROMAN() ROOM() ROUND() RXLEVEL()
6996
S() SCRAMBLE() SEARCH() SECS() SECURE() SET()
6997
SETDIFF() SETINTER() SETNAME() SETPARENT() SETQ() SETR()
6998
SETUNION() SHA1() SHL() SHR() SHUFFLE() SIGN()
6999
SIN() SINGLETIME()SORT() SORTBY() SPACE() SPELLNUM()
7000
SPLICE() SQL() SQRT() SQUISH() STARTSECS() STARTTIME()
7001
STATS() STEP() STRCAT() STRIP() STRIPACCENTS()
7002
STRIPANSI() STRLEN() STRMATCH() STRMEM() STRTRUNC() SUB()
7003
SUBEVAL() SUBJ() SUCCESSES() SWITCH() T() TABLE()
7004
TAN() TEL() TEXT() TEXTFILE() TIME() TIMEFMT()
7005
TRANSLATE() TRIGGER() TRIM() TRUNC() TXLEVEL() TYPE()
7006
U() UCSTR() UDEFAULT() ULOCAL() UNPACK() V()
7007
VADD() VALID() VCROSS() VDIM() VDOT() VERSION()
7008
VISIBLE() VMAG() VMUL() VSUB() VUNIT() WHERE()
7009
WIDTH() WORDPOS() WORDS() WRAP() WRITETIME() XGET()
7010
XOR() ZFUN() ZONE() ZWHO()
7109
7338
Returns true if object <object> has the flag named <flag> set on it. You
7110
7339
may not be able to retrieve information for objects that you do not own.
7112
When an <attribute> is given, the following <flag> values can be used.
7341
When an <attribute> is given, the following <flag> values can be used:
7114
const, no_command, dark, god, hidden, html, no_inherit, locked, no_parse,
7115
regexp, visual, and wizard.
7343
const, dark, god, hidden, html, locked, no_command, no_inherit, no_name,
7344
no_parse, regexp, visual, and wizard.
7118
7347
> say hasflag(me, wizard)
7120
7349
> say hasflag(me, connect)
7123
7352
Related Topics:
7576
7830
string before it is evaluated, itext(), inum(), and ilev() substitute their
7577
7831
values as part of evaluation. In this way, the use of these functions is
7578
7832
safer than the ## and #@ substitutions and is therefore preferred.
7580
7834
> say [iter(red blue green,iter(fish shoe, #@:##))]
7581
7835
You say, "1:red 1:red 2:blue 2:blue 3:green 3:green"
7583
7837
> say [iter(red blue green,iter(fish shoe, [inum(1)]:[itext(1)]))]
7584
7838
You say, "1:red 1:red 2:blue 2:blue 3:green 3:green"
7586
7840
> say [iter(red blue green,iter(fish shoe, [inum(0)]:[itext(0)]))]
7587
7841
You say, "1:fish 2:shoe 1:fish 2:shoe 1:fish 2:shoe"
7589
7843
> say [iter(red blue green,iter(fish shoe, [itext(1)]:[itext(0)]))]
7590
7844
You say, "red:fish red:shoe blue:fish blue:shoe green:fish green:shoe"
7810
8054
> say iter(This is a test,strlen(##))
7812
8056
> say iter(lnum(10),mul(mul(##,##),10))
7813
You say "0 10 40 90 160 250 360 490 640 810"
8057
You say, "0 10 40 90 160 250 360 490 640 810"
7814
8058
> say iter(lcon(me),[name(##)]..[money(##)])
7815
You say "test..1 t1..1 radio..1 The Wizard's Pointy Hat..1"
8059
You say, "test..1 t1..1 radio..1 The Wizard's Pointy Hat..1"
7816
8060
> say iter(Was it a cat I saw,[words(##)] #@,s)
7817
You say "1 1 4 2 1 3"
8061
You say, "1 1 4 2 1 3"
7819
Related Topics: @dolist, ilev(), inum(), itext(), list(), parse().
8063
Related Topics: @dolist, ilev(), inum(), itext(), list(), parse(), step()
7834
8078
string before it is evaluated, itext(), inum(), and ilev() substitute their
7835
8079
values as part of evaluation. In this way, the use of these functions is
7836
8080
safer than the ## and #@ substitutions and is therefore preferred.
7838
8082
> say [iter(red blue green,iter(fish shoe, #@:##))]
7839
8083
You say, "1:red 1:red 2:blue 2:blue 3:green 3:green"
7841
8085
> say [iter(red blue green,iter(fish shoe, [inum(1)]:[itext(1)]))]
7842
8086
You say, "1:red 1:red 2:blue 2:blue 3:green 3:green"
7844
8088
> say [iter(red blue green,iter(fish shoe, [inum(0)]:[itext(0)]))]
7845
8089
You say, "1:fish 2:shoe 1:fish 2:shoe 1:fish 2:shoe"
7847
8091
> say [iter(red blue green,iter(fish shoe, [itext(1)]:[itext(0)]))]
7848
8092
You say, "red:fish red:shoe blue:fish blue:shoe green:fish green:shoe"
8021
8276
> &CMD3 me=^* says *:@pemit me=You heard something
8023
8278
> say lcmds(me)
8024
You say "command1 command #2 *"
8279
You say, "command1 command #2 *"
8025
8280
> say lcmds(me,|,$)
8026
You say "command1|command #2 *"
8281
You say, "command1|command #2 *"
8027
8282
> say lcmds(me,|,^)
8030
8285
Related Topics: lattrcmds().
8035
FUNCTION: lcon(<object>)
8290
FUNCTION: lcon(<object>[, <subset>])
8037
8292
Returns a space-separated list of the contents of <object> which are
8038
8293
visible to the person running the function.
8295
By default, all of the contents visible to the executor are returned;
8296
however, the list may further restricted with a <subset>:
8298
PLAYER -- include only Player objects.
8299
OBJECT -- include only non-Player objects.
8300
CONNECT -- include only Connected Players.
8301
PUPPET -- include only Puppets.
8302
LISTEN -- include only Listening objects.
8458
8738
Nullspace(#250R)
8460
8740
> say locate(me,test,i) > say locate(me,tes,in)
8461
You say "#376" You say "#-2"
8741
You say, "#376" You say, "#-2"
8462
8742
> say locate(me,test,n) > say locate(here,tes,*)
8463
You say "#382" You say "#382"
8743
You say, "#382" You say, "#382"
8464
8744
> say locate(me,test1,in) > say locate(me,out,e)
8465
You say "#378" You say "#252"
8745
You say, "#378" You say, "#252"
8466
8746
> say locate(me,test1,in) > say locate(me,here,*)
8467
You say "#382" You say "#250"
8747
You say, "#382" You say, "#250"
8469
8749
Related Topics: num(), PARENT OBJECTS.
8992
9261
Related Topics:
9266
FUNCTION: mailj(<num>)
9268
mailj(<player>, <num>)
9271
First form returns message <num> from the executor's mail bag. The second
9272
form returns number of messages for <player>. The third form return message
9273
<num> for <player>. The fourth form returns number of message for executor.
9275
The difference between this and mail() is that this returns one number and
9276
mail() returns three. Also, mail() only accounts for the messages in the
9277
inbox, while mailj() accounts for all messages in all folders.
9279
This function is only available if FIRANMUX is enabled and is likely to be
9280
deprecated in favor of mail().
9282
Related Topics: mail()
9287
FUNCTION: mailsize(<player>)
9289
Returns the size of <player>'s mail bag in bytes.
9291
This function is only available if FIRANMUX is enabled.
9298
FUNCTION: mailsubj(<num>)
9299
mailsubj(<player>, <num>)
9301
First form returns the subject line from the executor's <num>'th mail item.
9302
Second form returns the subject line from the <player>'s <num>'th mail item.
9304
This function is only available if FIRANMUX is enabled.
9306
Related Topics: mail(), mailj().
8997
FUNCTION: map([<obj>/]<attr>,<list>[,<input delim>[,<output delim>]])
9311
FUNCTION: map([<obj>/]<attr>,<list>[,<input delim>[,<output delim>[,<arg1>[,<arg2>[,...]]]]])
8999
9313
This function is nearly identical to an iter() operating on u() function.
9000
9314
Each member of <list> is passed to the result of fetching <attr> as %0, and
9001
the results are used to form a new list.
9315
the results are used to form a new list. Arguments %1, %2, ... are taken
9316
from <arg1>, <arg2>, ... respectively, if present.
9003
9318
In addition to any single character, <output delim> can also be the null-
9004
9319
delimiter, @@, or a newline, %r. By default, input and output delimiters
9184
9499
> say min(-100,50,0,25)
9187
9502
Related Topics: max()
9192
FUNCTION: mix([<object>/]<attribute>,<list 1>,<list 2>[,<list N>][,<delim>])
9194
This function is similar to map(), except it takes the arguments in the
9507
FUNCTION: mix([<object>/]<attribute>, <list 1>[, <list 2>[,<list N>]][,<delim>])
9509
This function is similar to map(), except it takes the arguments in the
9195
9510
lists and passes them into the attribute as %0 (for list1), %1 (for list2),
9196
9511
up to %9 (for list10). <delim> is used as the delimiter to separate items
9197
in each of the lists. If the number of lists is 2, the delimiter may be
9198
optional, otherwise you are forced to provide a delimiter. If no delimiter
9199
is specified, it defaults to a space but only for the above condition.
9512
in each of the lists. If the number of lists is 2 or less, the delimiter
9513
may be optional, otherwise you are forced to provide a delimiter. If no
9514
delimiter is specified, it defaults to a space but only for the above condition.
9200
9515
The lists do NOT have to have the same number of elements.
9203
9518
> &do_math me=[add(%0,%1)]
9204
9519
> &do_moremath me=[add(%0,%1,%2,%3,%4,%5,%6,%7,%8,%9)]
9205
9520
> say mix(do_math,1 2 3 4 5,2 4 6 8 10)
9206
You say "3 6 9 12 15"
9521
You say, "3 6 9 12 15"
9207
9522
> say mix(do_math,1@2@3@4@5,2@4@6@8@10,@)
9208
You say "3@6@9@12@15"
9523
You say, "3@6@9@12@15"
9209
9524
> say mix(do_math,1 2 3 4 5,7 9)
9210
You say "8 11 3 4 5"
9525
You say, "8 11 3 4 5"
9211
9526
> say mix(do_moremath,1,2,3,4,5,6,7 8,9 10 11 12,)
9212
You say "37 18 11 12"
9214
Related Topics: map(), iter(), merge(), elements(), list().
9527
You say, "37 18 11 12"
9529
Related Topics: elements(), iter(), list(), map(), merge(), step()
9691
10011
Related Topics: aposs(), poss(), subj(), SUBSTITUTIONS.
9696
NOTE: The object stack is completely different from the command stack
9699
A stack is a LIFO structure, meaning that the last, most recent thing you
9700
place into it is the first thing you get out of it. You 'push' an item
9701
onto the stack, and you can 'pop' it off, or merely take a 'peek' at it.
9702
If you pushed the word 'foo', and then the word 'bar', and popped
9703
something off the stack, you would first pop 'bar', then 'foo'. You pop
9704
or peek in the reverse order that you pushed.
9706
The object stack can hold any kind of information. In this manner they are
9707
similar to r-registers, but are more flexible. There is a high limit to the
9708
number of stack entries you can have (usually 100), and stack entries are
9709
preserved until you pop them off or empty the stack.
9711
{ 'help OBJECT STACK2' for more }
9714
OBJECT STACK (continued)
9718
> say [push(world!)][push(Hello)]We'll print these...
9719
We'll print these...
9720
> say [pop()] [pop()]
9723
empty() is used to clear the stack, items() shows the number of entries in
9726
Related Topics: lstack(), empty(), items(), push(), peek(), pop().
9728
10013
& OBJECT TYPES
10081
10379
> say parse(1 2 3 4 5,add(##,1))
10082
You say "2 3 4 5 6"
10380
You say, "2 3 4 5 6"
10083
10381
> say parse(This|is|a|string|length|test,strlen(##),|)
10084
You say "4 2 1 6 6 4"
10382
You say, "4 2 1 6 6 4"
10086
10384
Related Topics: @dolist, iter(), map().
10091
FUNCTION: peek([<object>], [<position>])
10093
peek() returns an item from the caller's stack without removing it from
10094
the stack. If <position> is specified, it returns the item from that
10095
position in the stack (items in the stack are numbered with 0 being the most
10096
recently push()ed item), otherwise, it returns position 0. If <object> is
10097
specified and you control it, then it returns an item from <object>'s
10100
Related Topics: lstack(), empty(), items(), pop(), push(), OBJECT STACK.
10425
10696
Related Topics: VERBOSE.
10430
FUNCTION: push(<data>)
10431
push(<object>, <data>)
10433
push() places <data> onto the calling object's stack. If the second form
10434
is used, it places data onto <object>'s stack.
10436
Related Topics: lstack(), empty(), items(), peek(), pop(), OBJECT STACK.
10703
Any object set QUELL will disregard any WIZARD flag it has. That is, objects
10704
that do not have a WIZARD flag are not affected by the QUELL flag, and
10705
objects that do have a WIZARD flag act as if they do not have it. QUELL also
10706
prevents objects from inheriting WIZARD abilities from their owners.
10708
The main purpose of this flag is to allow Wizards to temporarily become
10709
"mortal" (non-wizardly) for purposes of testing code or whatnot. With the
10710
QUELL flag set, they are for all intents and purposes just like a non-Wizard
10711
character. This allows a Wizard to turn her wizbit on and off, sorta.
10713
This flag is only available if FIRANMUX is enabled.
10861
11150
> say rest(This is a test)
10862
You say "is a test"
11151
You say, "is a test"
10863
11152
> say rest(Would you like coffee, or perhaps tea)
10864
You say "you like coffee, or perhaps tea"
11153
You say, "you like coffee, or perhaps tea"
10865
11154
> say rest(List!with!different!delimiters,!)
10866
You say "with!different!delimiters"
11155
You say, "with!different!delimiters"
10868
11157
Related Topics: first().
11162
FLAG: RESTRICTED() (!)
11164
Any object set RESTRICTED will have the number of commands available to use
11165
greatly limited. Generally, this flag works in conjunction with the
11166
no_restricted access permission (see 'wizhelp PERMISSIONS', 'wizhelp
11167
access', etc.) which is used to mark which commands can not be used by
11168
RESTRICTED players (or objects).
11170
Command access permissions can be viewed by a wizard using the '@list
11171
permissions' command. Commands marked 'no_restricted' in this list cannot
11172
be used by RESTRICTED players or objects.
11174
Note that a RESTRICTED Wizard character who later sets herself QUELL will
11175
not be able to set herself un-RESTRICTED! Fixing this will require the help
11176
of a fully-powered wizard. Be careful with this combination.
11178
This flag is only available if FIRANMUX is enabled.
11180
Related Topics: no_restricted
10890
11202
FUNCTION: revwords(<string>[, <delim>])
10892
11204
Reverses the order of the words of <string>. A word is considered to be
10893
any sequence of nonblank characters, separated by blanks, so punctuation
11205
any sequence of non-blank characters, separated by blanks, so punctuation
10894
11206
characters that follow a word are considered part of the word.
10896
11208
<delim> may be used to specify a delimiter other than a space.
10899
11211
> say revwords(This is a test. Really...)
10900
You say "Really... test. a is This"
11212
You say, "Really... test. a is This"
10901
11213
> say revwords(Was it a cat I saw?)
10902
You say "saw? I cat a it Was"
11214
You say, "saw? I cat a it Was"
10904
11216
Related Topics: reverse().
11365
FUNCTION: set(<name>, <string>)
11367
Works the same as @set, <name> and <string> are equivalent to what comes
11368
before and after the '=' sign. Returns nothing. This is a side effect
11369
function, and should only be used when necessary.
11677
FUNCTION: set(<object>, <string>)
11679
Works the same as @set, <object> and <string> are equivalent to what comes
11680
before and after the '=' sign. Returns nothing.
11682
The following demonstrate how to use set() for setting or clearing a flag,
11683
attribute flag, or attribute on an object. As with @set, flags are cleared
11684
by using an exclamation mark(!) preceding the flag name for both general and
11685
attribute flags. For attributes, an empty value after the colon (:) will
11686
clear the attribute value from the <object>.
11688
set(<object>, <flag>)
11689
set(<object>/<attribute>, <attribute flag>)
11690
set(<object>, <attribute>:<value>)
11694
> think [set(me,foo:Twenty Pink Pigs)]
11695
< think [set(me,foo:)]
11696
> think [set(me,VERBOSE)]
11697
> think [set(me/foo,!VISUAL)]
11371
11699
Related Topics: @set
11740
12108
*** Disconnected ***
12113
FUNCTION: sql(<query>[,<row-delim>[,<col-delim>]])
12115
The sql() function uses a connection to a SQL database. The <query>
12116
parameter is given to SQL as if it were given at a normal SQL prompt. By
12117
default, the row delimiter, <row-delim>, defaults to a space, and the column
12118
delimiter, <col-delim>, defaults to the row delimiter, <row-delim>.
12122
sql(select foo%,bar from mytable,~,|)
12126
1|aardvark~2|anteater~3|antelope
12128
...or whatever data happens to exist in SQL. It is worth remembering both
12129
that you must escape commas in the query portion of the function, and that
12130
using this command is a bottleneck; the game cannot do anything else until
12131
the query returns. Normally this will not be an issue, but if you write
12132
code doing 700 large SQL queries in a row, the game will almost certainly
12135
The function is only available if FIRANMUX is enabled.
11858
12255
6 objects = 0 rooms, 0 exits, 5 things, 1 players. (0 garbage)
11859
12256
> say stats(me)
11860
You say "6 0 0 5 1 0"
12257
You say, "6 0 0 5 1 0"
11861
12258
> say stats()
11862
You say "377 51 165 134 20 7"
12259
You say, "377 51 165 134 20 7"
11864
12261
377 objects = 51 rooms, 165 exits, 134 things, 20 players. (7 garbage)
11866
12263
Related Topics: @stats.
12268
FUNCTION: step([<object>/]<attribute>,<list>,<step size>[,<input delim>[,<output delim>]])
12270
<list> is a <input delim>-separated list of strings (e.g., A B C).
12272
This is something of a cross between iter() and map() in that it breaks
12273
the given <list> down into <step size> chunks and evalutes
12274
[<object>]/<attribute> passes these elements to <attribute> as arguments
12275
%0, %1, etc. The number of elements in <list> does not need to be
12276
evenly-disible by <step size>.
12278
If no <input delim> is given, the default is a space. Likewise, if no
12279
<output delim> is given, the default is the <input delim>. The <step size>
12280
can range from 1 to 10. A <step size> of 1 is equivalent to use map().
12283
> &print_line me = %r%0 -- %1 -- %2
12284
> say step(print_line,1 2 3 4 5 6 7 8,3)
12290
Related Topics: iter(), map(), mix(), list().
12120
12548
Related Topics: get, look, @asuccess, @lock, @osuccess, @success.
12553
FUNCTION: successes(<numdice>, <difficulty target>[, <version>])
12555
Returns an integer representing the number of successes (a positive
12556
number), the number of failures or fumbles (a negative number), or 0
12557
indicating no successes or failures.
12559
<version> Description:
12561
0 The first number passed to successes() is the number of dice
12562
(ten-sided dice ranging 1 to 10) to be rolled. The second
12563
number is the difficulty target number that must be rolled
12564
to count that die as a "success". The dice are rolled and
12565
each die that is equal to or greater than the target number
12566
is counted as a success. Each die that rolls a '1' is
12567
counted as a failure. The number returned from successes()
12568
is the successes minus the failures.
12570
1 (default) Similar outcome to above, but expressed internally as a
12571
large table with some of the harsher edges smoothed over.
12573
Related Topics: choose(), die(), distribute(), lrand(), and rand().
12141
12594
> say switch(c,*a*,A,*b*,B,*c*,C,*d*,D,E)
12143
12596
> say switch(f,*a*,A,*b*,B,*c*,C,*d*,D,E)
12145
12598
> say switch(cab,*a*,A,*b*,B,*c*,C,*d*,D,E)
12147
12600
> say switch(f,*a*,A,*b*,B,*c*,C,*d*,D)
12150
12603
Related Topics: @switch, match(), ifelse(), case().
12282
12735
Related Topics: examine, look.
12740
FUNCTION: text(<filename>, <index>)
12742
This function returns the text associated with an index from a file in a
12743
help.txt format. The exact path and name of the file should be specified,
12744
and must match exactly the name of a file in game/textfiles.conf (for
12747
This allows you to, for example, create a file, game/text/rumors.txt, and
12751
It is rumored that you can get free beer at the Rat in the Ale Tavern.
12753
If textfiles.conf contains an entry for the file (text/rumors.txt), then you
12754
can refer to the beer rumor using 'text(text/rumors.txt, beer)'.
12756
This function is only available if FIRANMUX is enabled and is likely to be
12757
deprecated in favor of textfile()..
12759
Related Topics: textfile().
12590
13091
> @va me=Word is [extract(v(vb),add(%0,1),1)], arg2 is %1.
12591
13092
> @vb me=This is a test of the u function.
12592
13093
> say u(va,4,Testing 123)
12593
You say "Word is of, arg2 is Testing 123."
13094
You say, "Word is of, arg2 is Testing 123."
12594
13095
> say u(va,7)
12595
You say "Word is function., arg2 is ."
13096
You say, "Word is function., arg2 is ."
12596
13097
> say u(me/va,6,Foobar)
12597
You say "Word is u, arg2 is Foobar."
13098
You say, "Word is u, arg2 is Foobar."
12599
13100
Related Topics: s(), v(), get(), get_eval(), map(), ulocal().
12667
13168
> &SUB-FUNCTION me=[setq(0,v(FRUIT))][extract(%q0,match(%q0,%0),1)]
12668
13169
> &TOP-FUNCTION me=[setq(0,are delicious!)][ulocal(SUB-FUNCTION,%0)] %q0
12669
13170
> say u(TOP-FUNCTION,b*)
12670
You say "bananas are delicious!"
13171
You say, "bananas are delicious!"
12672
13173
If SUB-FUNCTION had been called with u() instead of ulocal():
12673
13174
> &TOP-FUNCTION me=[setq(0,are delicious!)][u(SUB-FUNCTION,%0)] %q0
12674
13175
> say u(TOP-FUNCTION,b*)
12675
You say "bananas apples bananas oranges pears"
13176
You say, "bananas apples bananas oranges pears"
12677
13178
In this second example, in SUB-FUNCTION, %q0 was set to "apples bananas
12678
13179
oranges pears", so that when the u() "returned" and TOP-FUNCTION evaluated