|
2.1.3 Data Types and Setting Properties
In the vast majority of cases, props can be correctly set by players
and wizards with the @set command, as described above.
However, in rare cases the `data type' of a property needs special
handling, and a different command is needed: @propset.
Data handled by the MUCK server is `typed', as it is in
many computer languages, including C (the language the server program is
written in) and MUF (one of the two programming languages
available on MUCKs). The server handles different types of
data, and most operations require a specific type of data. In this
context, the relevant types are `string', `dbref', `integer', and
`float'. (There is also a fifth data type: `lock', which is discussed in
Section 2.3. Type `float' is only available on
MUCK versions 6.0 or higher.)
A string is a series of zero or more characters (a zero-length string
is called a `null string'). A dbref is a database reference number. An
integer is a whole number. A float is a floating point decimal number.
These values can look the same but have different
types. The type of a datum is determined when it is stored. The
string of numeral characters "123", the #dbref 123, and the integer 123,
and the float 123.0 are four different values.
The @set command always stores property data as a
string. The following three commands store information in three
different properties, but it's the same value in each case: a string
composed of the characters `1', `2', and `3'.
====================================
> @set me = my_favorite_dbref:123
Propery set.
> @set me = my_favorite_integer:123
Property set.
> @set me = my_favorite_string:123
Property set.
====================================
If you typed these commands, and then did ex me = /, you
would see the three properties, each prefaced by str,
meaning `this data is stored as a string'.
====================================
> ex me = /
str /my_favorite_dbref:123
str /my_favorite_integer:123
str /my_favorite_string:123
====================================
Programs and commands often store data as dbrefs or integers rather
than strings; occasionally, players will want or need to do so as well.
The command for doing this is @propset, syntax
@propset <object> = <data type> :
<[path/]property> : <value>. The following three
commands store information in three different properties, and although
they look similar, it's a different value in each case: a dbref, an
integer, and a string respectively.
====================================
> @propset me = dbref:my_favorite_dbref:#123
Property set.
> @propset me = int:my_favorite_integer:123
Property set.
> @propset me = str:my_favorite_string:123
Property set.
====================================
(Type `float' has been omitted from this example: at the time of this
writing, @propset does not handle floating point
numbers.)
If you typed these commands, and then did ex me = /, you
would see the three properties, prefaced by ref,
int, and str respectively, with each preface
showing the type of the data stored in the property.
====================================
> ex me = /
ref /my_favorite_dbref:Hortense(#123PBJ)
int /my_favorite_integer:123
str /my_favorite_string:123
====================================
Tip: there is also a server shortcut for setting properties with
values of type integer: put a ^ carot before the number.
====================================
> @set me = lucky_number:^5
Property set.
> ex me = lucky_number
int /lucky_number:5
====================================
prev|
toc|
top|
next
|