Manual:DIL Manual/unitptr
Jump to navigation
Jump to search
unitptr
The unitptr has the following fields:
unitptr:
'names' :stringlist (RW)
A list of names that matches the unit.
'name' :string (RW)
The first name in the namelist in 'names'
'outside_descr' :string (RW)
The description of the unit from the 'outside'. f.inst.
the description of a boat, seen from the outside.
'inside_descr' :string (RW)
The description of the unit from the 'inside'. f.inst.
the description of a boat, seen from the inside.
'next' :unitptr (RO)
The next unit in the local list of units. For instance, the
units in the inventory of a PC, is linked with this field.
'title' :string (RW)
The title of the unit.
'extra' :extraptr (RW)
Extra descriptions of the unit (identify, look at, read etc.).
'outside' :unitptr (RO)
The outside of the unit hierarchy (carried by, contained by).
For instance, the contents of a bag have their 'outside'
field pointing to the bag.
'inside' :unitptr (RO)
The inside of the unit hierarchy (carry, contains).
For instance the first unit in a PC's inventory is referenced
by the 'inside' field.
'key' :string (RO)
The key that will open this unitptr
For instance "big_key@blackzon"
by the 'inside' field.
'gnext' :unitptr (RO)
Next unit in the global list of units.
'gprevious' :unitptr (RO)
Previous unit in the global list of units.
'hasfunc' :integer (RO)
Returns TRUE if unit has special functions attached to it.
'max_hp' :integer (RO/RW)
The maximum hitpoints of unit, RO for players, RW for mobiles.
'max_mana' :integer (RO)
The maximum mana of the character (player or mobile).
'max_endurance' :integer (RO)
The maximum endurance of the character (player or mobile).
'lifespan' :integer (RW)
The lifespan of a character, write permission only on root access.
'hp' :integer (RW)
The current hitpoints of unit. For objects, this can render
it 'broken' by being set low. If an unit has -1 hitpoints
its considered unbreakable.
'manipulate' :integer (RW)
Bits that specify how unit can be handled, see MANIPULATE_*
flags in values.h and/or vme.h
'flags' :integer (RW)
Bits that specify different properties of a unit, see
UNIT_FL_* in values.h and/or vme.h
'baseweight' :integer (RO)
The empty weight of the unit. This can be set with the
procedure 'setweight()'
'weight' :integer (RO)
The current weight of the unit (and its contents).
'capacity' :integer (RW)
The amount of weight the unit can contain.
'height' :integer (RW)
The height of a PC/NPC, the length of a rope, the size of weapons,
armours, and shields.
'alignment' :integer (RW)
The alignment of the unit. [1000..-1000],
1000 is good, 0 is neutral, -1000 is evil.
'openflags' :integer (RW)
Bits thats specify how a unit may be opened, locked, etc,
see EX_* in values.
'light' :integer (RO)
How much light is inside the unit.
'bright' :integer (RO)
How much the unit lights up. This can be set with the
procedure 'setbright()'
'illum' :integer (RO)
How much light units inside a transparent unit create
'minv' :integer (RW)
The 'wizard invisibility' level.
'spells'[] :integer (RO)
The defence/skill of the different spell spheres/spells
The index should be one of the SPL_* in values.h and/or vme.h
'zoneidx' :string (RO)
The unique database name (in the zone) for this unit.
'nameidx' :string (RO)
The unique database zone name for this unit.
'symname' : string (RO)
The concatenated nameidx@zoneidx to make it easier to use IRL
'idx' :integer (RO)
Constant ID for players and for non-PCs it is the memory pointer
converted to an integer. If there are 50 cityguards, you can use
the idx to figure out which one you're looking for. Use
findsymbolic(#,#) to quickly find precisely a unit matching a
symbolic name and an idx.
Be warned, this value change between each reboot, except for players, so do not
count on it for purposes of persistence across reboots.
'zone' :string (RO)
The name of the zone the unit is in.
'type' :integer (RO)
The type of the unit, see UNIT_ST_* in values.h and/or vme.h
'loadcount' :integer (RO)
Returns the number of units loaded in the game
of this definition (zoneidx,nameidx / idx)
Char
If the unitptr.type == UNIT_ST_PC or UNIT_ST_NPC then you can use these flags:
'master' :unitptr (RW)
The unitptr to the master that this CHAR is following. See also follow()
... And a whole slew of other fields.