Difference between revisions of "Manual:DIL Manual/unitptr"
Jump to navigation
Jump to search
(→Char) |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | = unitptr = | |
− | |||
− | |||
'''The unitptr has the following fields:''' | '''The unitptr has the following fields:''' | ||
Line 93: | Line 91: | ||
The concatenated nameidx@zoneidx to make it easier to use IRL | The concatenated nameidx@zoneidx to make it easier to use IRL | ||
'idx' :integer (RO) | '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 | |
− | Be warned, this value change between each reboot, so do not | + | symbolic name and an idx. |
− | count on it for purposes of | + | 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) | 'zone' :string (RO) | ||
The name of the zone the unit is in. | The name of the zone the unit is in. | ||
Line 106: | Line 105: | ||
Returns the number of units loaded in the game | Returns the number of units loaded in the game | ||
of this definition (zoneidx,nameidx / idx) | 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 [[Manual:DIL Manual/follow()|follow()]] | ||
+ | |||
+ | ... And a whole slew of other fields. |
Latest revision as of 19:12, 9 February 2021
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.