… | |
… | |
7 | |
7 | |
8 | This documentation is in a sketchy state. It's mostly |
8 | This documentation is in a sketchy state. It's mostly |
9 | used to collect notes about the internal behaviour of the |
9 | used to collect notes about the internal behaviour of the |
10 | objects. |
10 | objects. |
11 | |
11 | |
|
|
12 | =head2 About the notation and terms |
|
|
13 | |
|
|
14 | The term 'archetype' stands for a collection of fields. |
|
|
15 | The term 'object' stands for an archetype instance. |
|
|
16 | The term 'field' is used for an object fields and archetype fields. |
|
|
17 | |
|
|
18 | Field names will be displayed like I<this>. |
|
|
19 | |
12 | =head2 About archetypes and objects |
20 | =head2 About archetypes and objects |
13 | |
21 | |
14 | Field denotes an attribute of an archetype. |
22 | Archetypes are 'templates' of objects. If an object is derived |
|
|
23 | from an archetype the object fields will be set to the corresponding |
|
|
24 | fields in the archetype. |
|
|
25 | |
|
|
26 | When a map is instanciated (loaded), the 'object' description on the |
|
|
27 | map are considered patches of the archetype. |
|
|
28 | |
|
|
29 | This document does explain the behaviour of the objects and the meaning of |
|
|
30 | their fields in the server engine, which are derived from archetypes. |
|
|
31 | |
15 | This is an example of an archetype: |
32 | This is an example of an archetype: |
16 | |
33 | |
17 | Object button_trigger |
34 | Object button_trigger |
18 | name button |
35 | name button |
19 | type 30 |
36 | type 30 |
… | |
… | |
30 | editable 48 |
47 | editable 48 |
31 | visibility 50 |
48 | visibility 50 |
32 | weight 1 |
49 | weight 1 |
33 | end |
50 | end |
34 | |
51 | |
35 | This archetype has the name 'button_trigger' and the objects that |
52 | The first B<field> is I<name>: 'button_trigger', which basically means that |
36 | inherit from this archetype have the name 'button'. |
53 | instances (objects) that are created/derived from this archetype have the |
|
|
54 | name 'button' (which means that the field I<name> of the object will be set |
|
|
55 | to the same value as the archetypes field I<name>). |
37 | |
56 | |
38 | The next field 'type' decides the main behaviour of this archetype. |
57 | The next field I<type> decides the behaviour of objects derived from this archetype. |
39 | For a comprehensive list of types see include/define.h. For this case |
58 | For a comprehensive list of types see include/define.h. For this case |
40 | you might find a line like: |
59 | you might find a line like: |
41 | |
60 | |
42 | #define TRIGGER_BUTTON 30 |
61 | #define TRIGGER_BUTTON 30 |
43 | |
62 | |
44 | The server internally works with objects that 'inherit' attributes from |
63 | The behaviour of objects is further determined by B<Flags>, like FLAG_APPLIED. |
45 | an archetype. They have a similar set of attributes. |
64 | For more information on this look in the Flags subsection in the next section |
46 | |
65 | |
47 | The following documentation will also document the meaning of code internal |
66 | The following documentation will also document the meaning of internal used |
48 | attributes of objects. These attributes are marked as '(internal)' and can't |
67 | fields of objects. These fields are marked as (internal) and can't |
49 | or shouldn't be set by an archetype. If the internal names differs the |
68 | or shouldn't be set by an archetype. |
50 | external name (for the archetypes) for the attribute is written behind it. |
|
|
51 | |
69 | |
52 | =head2 Description of generic archetype and object attributes |
70 | =head2 Description of (mostly) generic object fields |
53 | |
71 | |
54 | These are the fields that most of the objects have and/or their |
72 | These are the fields that most of the objects have and/or their |
55 | default behaviour. |
73 | default behaviour. |
56 | |
74 | |
57 | =over 4 |
75 | =over 4 |
… | |
… | |
65 | The name of a collection of these objects (the plural of the name). |
83 | The name of a collection of these objects (the plural of the name). |
66 | |
84 | |
67 | =item face <facename> |
85 | =item face <facename> |
68 | |
86 | |
69 | The graphical appearance of this object. |
87 | The graphical appearance of this object. |
|
|
88 | |
|
|
89 | =item x <number> |
|
|
90 | |
|
|
91 | The x position of the object when it is on a map. |
|
|
92 | |
|
|
93 | =item y <number> |
|
|
94 | |
|
|
95 | The y position of the object when it is on a map. |
|
|
96 | |
|
|
97 | =item map (internal) |
|
|
98 | |
|
|
99 | The map the object is on. |
70 | |
100 | |
71 | =item invisible <number> |
101 | =item invisible <number> |
72 | |
102 | |
73 | If the <number> is greater than 0 the object is invisible. |
103 | If the <number> is greater than 0 the object is invisible. |
74 | For players this field reflects the duration of the invisibility |
104 | For players this field reflects the duration of the invisibility |
… | |
… | |
98 | |
128 | |
99 | This means: the lower the speed field is (but still above MIN_ACTIVE_SPEED) |
129 | This means: the lower the speed field is (but still above MIN_ACTIVE_SPEED) |
100 | the more seldom the object is processed. And the higher the speed field is |
130 | the more seldom the object is processed. And the higher the speed field is |
101 | the more often the object is processed. |
131 | the more often the object is processed. |
102 | |
132 | |
|
|
133 | =item connected <number> |
|
|
134 | |
|
|
135 | When this field is set the object will be linked to a connection with the |
|
|
136 | id <number>. What happens when the connection is 'activated' depends on the |
|
|
137 | type of the object. |
|
|
138 | |
|
|
139 | When FLAG_ACTIVATE_ON_PUSH and FLAG_ACTIVATE_ON_RELEASE they will control |
|
|
140 | when to activate the object, see description of these below for further details. |
|
|
141 | |
103 | =item no_drop (0|1) |
142 | =item no_drop (0|1) |
104 | |
143 | |
105 | Sets the flag FLAG_NO_DROP. |
144 | Sets the flag FLAG_NO_DROP. |
106 | See Flags section below. |
145 | See Flags section below. |
107 | |
146 | |
… | |
… | |
113 | =item is_used_up (0|1) |
152 | =item is_used_up (0|1) |
114 | |
153 | |
115 | Sets the flag FLAG_IS_USED_UP. |
154 | Sets the flag FLAG_IS_USED_UP. |
116 | See Flags section below. |
155 | See Flags section below. |
117 | |
156 | |
|
|
157 | =item changing (0|1) |
|
|
158 | |
|
|
159 | Sets the flag FLAG_CHANGING. |
|
|
160 | See Flags section below. |
|
|
161 | |
118 | =item auto_apply (0|1) |
162 | =item auto_apply (0|1) |
119 | |
163 | |
120 | Sets the flag FLAG_AUTO_APPLY. |
164 | Sets the flag FLAG_AUTO_APPLY. |
121 | See Flags section below. |
165 | See Flags section below. |
122 | |
166 | |
… | |
… | |
151 | See Flags section below. |
195 | See Flags section below. |
152 | |
196 | |
153 | =item editable (more than deprecated) |
197 | =item editable (more than deprecated) |
154 | |
198 | |
155 | This field had a special meaning for crossedit, which used parts |
199 | This field had a special meaning for crossedit, which used parts |
156 | of the server code for editing. Wherever you see this attribute being |
200 | of the server code for editing. Wherever you see this field being |
157 | set in an archetype ignore it and/or remove it. No code interprets this |
201 | set in an archetype ignore it and/or remove it. No code interprets this |
158 | field anymore. |
202 | field anymore. |
159 | |
203 | |
160 | =back |
204 | =back |
161 | |
205 | |
… | |
… | |
188 | this object is removed or not, see the Force type below for the meaning |
232 | this object is removed or not, see the Force type below for the meaning |
189 | of the duration field in this context. |
233 | of the duration field in this context. |
190 | |
234 | |
191 | If FLAG_APPLIED is not set the object is destroyed. |
235 | If FLAG_APPLIED is not set the object is destroyed. |
192 | |
236 | |
|
|
237 | =item FLAG_CHANGING |
|
|
238 | |
|
|
239 | If the 'state' field of the object is 0 the object will be processed periodically. |
|
|
240 | Otherwise it won't "change"; |
|
|
241 | |
193 | =item FLAG_IS_A_TEMPLATE (internal use) |
242 | =item FLAG_IS_A_TEMPLATE (internal use) |
194 | |
243 | |
195 | This flag is set on the inventory of generators like CREATORs and CONVERTERs, |
244 | This flag is set on the inventory of generators like CREATORs and CONVERTERs, |
196 | or other objects that have the flags FLAG_GENERATOR and FLAG_CONTENT_ON_GEN set. |
245 | or other objects that have the flags FLAG_GENERATOR and FLAG_CONTENT_ON_GEN set. |
197 | |
246 | |
… | |
… | |
203 | |
252 | |
204 | This flag has only meaning for objects that can be linked together |
253 | This flag has only meaning for objects that can be linked together |
205 | with the 'connected' field and controls wether the object should |
254 | with the 'connected' field and controls wether the object should |
206 | be activated when the connection is 'pushed' or it is 'released'. |
255 | be activated when the connection is 'pushed' or it is 'released'. |
207 | |
256 | |
|
|
257 | What 'pushed' and 'released' means depends on the object that |
|
|
258 | activates the connection. |
|
|
259 | |
208 | This flag is by default on. |
260 | This flag is by default on. |
209 | |
261 | |
210 | =item FLAG_ACTIVATE_ON_RELEASE |
262 | =item FLAG_ACTIVATE_ON_RELEASE |
211 | |
263 | |
212 | This flag has only meaning for objects that can be linked together |
264 | This flag has only meaning for objects that can be linked together |
213 | with the 'connected' field and controls wether the object should |
265 | with the 'connected' field and controls wether the object should |
214 | be activated when the connection is 'pushed' or it is 'released'. |
266 | be activated when the connection is 'pushed' or it is 'released'. |
215 | |
267 | |
|
|
268 | What 'pushed' and 'released' means depends on the object that |
|
|
269 | activates the connection. |
|
|
270 | |
216 | This flag is by default on. |
271 | This flag is by default on. |
217 | |
272 | |
218 | =item FLAG_NO_STEAL |
273 | =item FLAG_NO_STEAL |
219 | |
274 | |
220 | When this flag is set this object can't be stolen. The flag will be |
275 | When this flag is set this object can't be stolen. The flag will be |
… | |
… | |
243 | This flag indicates whether something reflects spells, like spell reflecting |
298 | This flag indicates whether something reflects spells, like spell reflecting |
244 | amuletts. |
299 | amuletts. |
245 | |
300 | |
246 | =back |
301 | =back |
247 | |
302 | |
248 | =head2 Description of type specific attributes |
303 | =head2 Description of type specific fields and behaviour |
249 | |
304 | |
250 | The beginning of the headers of the following subsection |
305 | The beginning of the headers of the following subsection |
251 | are the server internal names for the objects types, see include/define.h. |
306 | are the server internal names for the objects types, see include/define.h. |
252 | |
307 | |
253 | =head3 TRANSPORT - type 2 - Player transports |
308 | =head3 TRANSPORT - type 2 - Player transports |
254 | |
309 | |
255 | This type is implemented by the transport extension and has currently no special |
310 | This type is implemented by the transport extension and has currently no special |
256 | attributes that affect it. |
311 | fields that affect it. |
257 | |
312 | |
258 | =head3 ROD - type 3 - Rods that fire spells |
313 | =head3 ROD - type 3 - Rods that fire spells |
259 | |
314 | |
260 | Rods contain spells and can be fired by a player. |
315 | Rods contain spells and can be fired by a player. |
261 | |
316 | |
262 | =over 4 |
317 | =over 4 |
263 | |
318 | |
264 | =item level <number> |
319 | =item level <number> |
265 | |
320 | |
266 | This attribute is used for calculating the spell level that can be fired |
321 | This field is used for calculating the spell level that can be fired |
267 | with this rod, it's also the maximum level of the spell that can be fired. |
322 | with this rod, it's also the maximum level of the spell that can be fired. |
268 | The level of the spell that is being fired depends mostly on |
323 | The level of the spell that is being fired depends mostly on |
269 | the 'use magic item' skill level of the player and 1/10 of the level of the |
324 | the 'use magic item' skill level of the player and 1/10 of the level of the |
270 | rod is added as bonus. |
325 | rod is added as bonus. |
271 | |
326 | |
… | |
… | |
563 | |
618 | |
564 | This is the range of the bolt, each space it advances this field is decreased. |
619 | This is the range of the bolt, each space it advances this field is decreased. |
565 | |
620 | |
566 | =back |
621 | =back |
567 | |
622 | |
|
|
623 | =head3 ARROW - type 13 - Arrows |
|
|
624 | |
|
|
625 | This is the type for objects that represent projectiles like arrows. |
|
|
626 | The movement of THROWN_OBJs behave similar to this type. |
|
|
627 | |
|
|
628 | Flying arrows are stopped either when they hit something blocking |
|
|
629 | (move_block) or something which is alive. |
|
|
630 | If it hits something that is alive, which doesn't have FLAG_REFL_MISSILE |
|
|
631 | set, it will inflict damage. If FLAG_REFL_MISSILE is set it will inflict |
|
|
632 | damage with a small chance which is affected by the 'level' field of the arrow. |
|
|
633 | |
|
|
634 | If FLAG_REFLECTING is set on the arrow it will bounce off everything |
|
|
635 | that is not alive and blocks it's movement. |
|
|
636 | |
|
|
637 | When an arrow is being shot it's dam, wc, attacktype, slaying fields will |
|
|
638 | be saved in the sp, hp, grace and spellarg fields of the object, to restore them |
|
|
639 | once the arrow has been stopped. |
|
|
640 | |
|
|
641 | =over 4 |
|
|
642 | |
|
|
643 | =item dam <number> |
|
|
644 | |
|
|
645 | The amount of damage that is being done to the victim that gets hit. |
|
|
646 | This field is recomputed when the arrow is fired and will consist |
|
|
647 | of the sum of a damage bonus (see description of the BOW type), |
|
|
648 | the arrows 'dam' field, the bows 'dam' field, the bows 'magic' field |
|
|
649 | and the arrows magic field. |
|
|
650 | |
|
|
651 | =item wc <number> |
|
|
652 | |
|
|
653 | The weaponclass of the arrow, which has effect on the propability of hitting. |
|
|
654 | |
|
|
655 | It is recomputed when the arrow is being fired by this formula: |
|
|
656 | |
|
|
657 | wc = 20 - bow->magic - arrow->magic - (skill->level or shooter->level) |
|
|
658 | - dex_bonus - thaco_bonus - arrow->stats.wc - bow->stats.wc + wc_mod |
|
|
659 | |
|
|
660 | When the arrow is not being shot by an player dex_bonus and thaco_bonus and the |
|
|
661 | level is not added. |
|
|
662 | |
|
|
663 | The wc_mod is dependend on the fire mode of the bow. For a more detailed |
|
|
664 | explanation of dex_bonus, thaco_bonus and wc_mod please consult the code. |
|
|
665 | |
|
|
666 | =item magic <number> |
|
|
667 | |
|
|
668 | This field is added to the damage of the arrow when it is shot and |
|
|
669 | will also improve it's speed by 1/5 of it's value. |
|
|
670 | |
|
|
671 | =item attacktype <attacktype> |
|
|
672 | |
|
|
673 | Bitfield which decides the attacktype of the damage, see include/attackinc.h |
|
|
674 | On fireing the attacktype of the bow is added to the arrows attacktype. |
|
|
675 | |
|
|
676 | =item level <number> (interally used) |
|
|
677 | |
|
|
678 | The level of the arrow, this affects the propability of piercing FLAG_REFL_MISSILE, |
|
|
679 | see above in the ARROW description. |
|
|
680 | |
|
|
681 | The level is set when the arrow is fired to either the skill level or the |
|
|
682 | shooters level. |
|
|
683 | |
|
|
684 | =item speed <number> (internal) |
|
|
685 | |
|
|
686 | This field shouldn't be set directly in the archetype, the arrow will get it's |
|
|
687 | speed from the bow. This fields value has to be atleast 0.5 or otherwise the |
|
|
688 | arrow will be stopped immediatly. |
|
|
689 | |
|
|
690 | On fireing the speed of the arrow is computed of 1/5 of the |
|
|
691 | sum of the damage bonus (see BOW), bow magic and arrow magic. After that 1/7 |
|
|
692 | of the bows 'dam' field is added to the speed of the arrow. |
|
|
693 | |
|
|
694 | The minimum speed of an arrow is 1.0. |
|
|
695 | |
|
|
696 | While flying the arrows speed is decreased by 0.05 each time it's moved. |
|
|
697 | |
|
|
698 | If the speed is above 10.0 it goes straight through the creature it hits and |
|
|
699 | it's speed is reduced by 1. If the speed is lower or equal 10.0 the arrow is |
|
|
700 | stopped and either sticked into the victim (see weight field description) or |
|
|
701 | put on it's map square (if it didn't break, see description of the food field). |
|
|
702 | |
|
|
703 | =item weight <number> |
|
|
704 | |
|
|
705 | This field is the weight of the arrow, if the weight is below or equal 5000 (5 kg) |
|
|
706 | the arrow will stick in the victim it hits. Otherwise it will fall to the ground. |
|
|
707 | |
|
|
708 | =item food <number> |
|
|
709 | |
|
|
710 | The breaking percentage. 100% means: breaks on usage for sure. |
|
|
711 | |
|
|
712 | =item inventory (internal) |
|
|
713 | |
|
|
714 | If the flying/moving object has something in it's inventory and it stops, it |
|
|
715 | will be replaced with it's inventory. Otherwise it will be handled as usual, |
|
|
716 | which means: it will be calculated whether the arrow breaks and it will be |
|
|
717 | reset for reuse. |
|
|
718 | |
|
|
719 | =item slaying <string> |
|
|
720 | |
|
|
721 | When the bow that fires this arrow has it's slaying field set it is copied |
|
|
722 | to the arrows slaying field. Otherwise the arrows slaying field remains. |
|
|
723 | |
|
|
724 | =item move_type <movetype> (internally used) |
|
|
725 | |
|
|
726 | This field is set when the arrow is shot to MOVE_FLY_LOW. |
|
|
727 | |
|
|
728 | =item move_on <movetype> (internally used) |
|
|
729 | |
|
|
730 | This field is set when the arrow is shot to MOVE_FLY_LOW and MOVE_WALK. |
|
|
731 | |
|
|
732 | =item race <string> |
|
|
733 | |
|
|
734 | The race field is a unique key that assigns arrows, bows and quivers. When |
|
|
735 | shooting an arrow the bows race is used to search for arrows (which have the |
|
|
736 | same race as the bow) in the players inventory and will recursively search in |
|
|
737 | the containers (which are applied and have the same race as the bow and the arrow). |
|
|
738 | |
|
|
739 | =back |
|
|
740 | |
|
|
741 | =head3 BOW - type 14 - Bows, those that fire ARROWs |
|
|
742 | |
|
|
743 | TODO, but take into account ARROW description above |
568 | |
744 | |
569 | =head3 WEAPON - type 15 - Weapons |
745 | =head3 WEAPON - type 15 - Weapons |
570 | |
746 | |
571 | This type is for general hack and slash weapons like swords, maces |
747 | This type is for general hack and slash weapons like swords, maces |
572 | and daggers and and .... |
748 | and daggers and and .... |
… | |
… | |
691 | - weapon speed (last_sp): weapon_speed is calculated by: (last_sp * 2 - magic) / 2 |
867 | - weapon speed (last_sp): weapon_speed is calculated by: (last_sp * 2 - magic) / 2 |
692 | (minium is 0) |
868 | (minium is 0) |
693 | |
869 | |
694 | =item ac <number> |
870 | =item ac <number> |
695 | |
871 | |
696 | the amount of ac points the player's ac is decreased |
872 | the amount of ac points the player's ac is decreased when applying this object. |
697 | |
873 | |
698 | =item wc <number> |
874 | =item wc <number> |
699 | |
875 | |
700 | the amount of wc points the player's wc is decreased |
876 | the amount of wc points the player's wc is decreased when applying this object. |
701 | |
877 | |
702 | =back |
878 | =back |
703 | |
879 | |
704 | =head4 Player inherits following flags from weapons: |
880 | =head4 Player inherits following flags from weapons: |
705 | |
881 | |
… | |
… | |
723 | |
899 | |
724 | This field stores the hits the monster did yet. |
900 | This field stores the hits the monster did yet. |
725 | |
901 | |
726 | =back |
902 | =back |
727 | |
903 | |
|
|
904 | =head3 CREATOR - type 42 - Object creators |
|
|
905 | |
|
|
906 | Once a creator is activated by a connection it creates a number of objects |
|
|
907 | (cloned from it's inventory or a new object derived from the archetype |
|
|
908 | named in the other_arch slot). |
|
|
909 | |
|
|
910 | If FLAG_LIVESAFE is set the number of uses is unlimited. |
|
|
911 | |
|
|
912 | =over 4 |
|
|
913 | |
|
|
914 | =item hp <number> |
|
|
915 | |
|
|
916 | If FLAG_LIVE_SAVE is not set it is the absolute number of times the creator can |
|
|
917 | be used. |
|
|
918 | |
|
|
919 | =item speed <number> |
|
|
920 | |
|
|
921 | If speed is set the creator will create an object periodically, |
|
|
922 | see speed and speed_left fields in general object field description |
|
|
923 | for more details on how this period works. |
|
|
924 | |
|
|
925 | =item slaying <string> |
|
|
926 | |
|
|
927 | If set the generated object's name and |
|
|
928 | title will be set to this. |
|
|
929 | |
|
|
930 | =item other_arch <string> |
|
|
931 | |
|
|
932 | If the inventory of the creator is empty new objects |
|
|
933 | will be derived from the archetype named by <string>. |
|
|
934 | |
|
|
935 | =item connected <number> |
|
|
936 | |
|
|
937 | See generic object field section. |
|
|
938 | |
|
|
939 | =back |
|
|
940 | |
728 | =head3 DRINK - type 54 - Drinkable stuff |
941 | =head3 DRINK - type 54 - Drinkable stuff |
729 | |
942 | |
730 | See FOOD description. |
943 | See FOOD description. |
731 | |
944 | |
732 | =head3 CHECK_INV - type 64 - Inventory checkers |
945 | =head3 CHECK_INV - type 64 - Inventory checkers |
… | |
… | |
778 | If this field is set the inventory checker will search for an object which |
991 | If this field is set the inventory checker will search for an object which |
779 | has the archetype name that matches <string>. |
992 | has the archetype name that matches <string>. |
780 | |
993 | |
781 | =item connected <connection id> |
994 | =item connected <connection id> |
782 | |
995 | |
783 | This is the connection that will be activated. |
996 | This is the connection that will be activated. The connection is |
|
|
997 | 'pushed' when someone enters the space with the inventory checker, |
|
|
998 | and it is 'released' when he leaves it. |
|
|
999 | |
|
|
1000 | See also the description of the connected field in the generic object field |
|
|
1001 | section. |
784 | |
1002 | |
785 | =back |
1003 | =back |
786 | |
1004 | |
787 | =head3 FLESH - type 72 - Organs and body parts |
1005 | =head3 FLESH - type 72 - Organs and body parts |
788 | |
1006 | |
789 | See FOOD description. |
1007 | See FOOD description. |
790 | |
1008 | |
791 | =head3 MISC_OBJECT - type 79 - Misc. objects |
1009 | =head3 MISC_OBJECT - type 79 - Misc. objects |
792 | |
1010 | |
793 | A type for any object that has no special behaviour. |
1011 | A type for any object that has no special behaviour. |
|
|
1012 | |
|
|
1013 | =head3 LAMP - type 82 - A lamp |
|
|
1014 | |
|
|
1015 | This object makes light. |
|
|
1016 | |
|
|
1017 | =head3 DUPLICATOR - type 83 - Duplicators or: Multiplicators |
|
|
1018 | |
|
|
1019 | This type of objects multiplies objects that are above it when it is activated. |
|
|
1020 | You can even multiply by 0, which will destroy the object. |
|
|
1021 | |
|
|
1022 | =over 4 |
|
|
1023 | |
|
|
1024 | =item level <number> |
|
|
1025 | |
|
|
1026 | The multiplicator, if set to 0 or lower it will destroy the objects above it. |
|
|
1027 | |
|
|
1028 | =item other_arch <string> |
|
|
1029 | |
|
|
1030 | The archetype name of the objects that should be multiplied. |
|
|
1031 | |
|
|
1032 | =item connected <number> |
|
|
1033 | |
|
|
1034 | See generic object field section. |
|
|
1035 | |
|
|
1036 | =back |
794 | |
1037 | |
795 | =head3 HOLE - type 94 - Holes |
1038 | =head3 HOLE - type 94 - Holes |
796 | |
1039 | |
797 | Holes are holes in the ground where objects can fall through. When the hole |
1040 | Holes are holes in the ground where objects can fall through. When the hole |
798 | opens and/or is completly open all objects above it fall through (more |
1041 | opens and/or is completly open all objects above it fall through (more |
799 | precisely: if their head is above the hole). |
1042 | precisely: if their head is above the hole). |
|
|
1043 | |
|
|
1044 | When the HOLE is activated it's speed is set to 0.5. |
800 | |
1045 | |
801 | Trapdoors can only transfer the one who falls through to other coordinates |
1046 | Trapdoors can only transfer the one who falls through to other coordinates |
802 | on the B<same> map. |
1047 | on the B<same> map. |
803 | |
1048 | |
804 | =over 4 |
1049 | =over 4 |
… | |
… | |
849 | =over 4 |
1094 | =over 4 |
850 | |
1095 | |
851 | =item dam <number> |
1096 | =item dam <number> |
852 | |
1097 | |
853 | Each time the poisoning is processed (which is determined by the speed and speed_left |
1098 | Each time the poisoning is processed (which is determined by the speed and speed_left |
854 | fields, see the general object attributes above) it hits the player with |
1099 | fields, see the general object fields above) it hits the player with |
855 | <number> damage and the AT_INTERNAL attacktype (means: it will simply |
1100 | <number> damage and the AT_INTERNAL attacktype (means: it will simply |
856 | hit the player with no strings attached). |
1101 | hit the player with no strings attached). |
857 | |
1102 | |
858 | =item food <number> |
1103 | =item food <number> |
859 | |
1104 | |
… | |
… | |
871 | inventory. |
1116 | inventory. |
872 | |
1117 | |
873 | Forces only take effect on the player if they have set FLAG_APPLIED. |
1118 | Forces only take effect on the player if they have set FLAG_APPLIED. |
874 | |
1119 | |
875 | Whether the duration field is processed or not a tick is controlled via the |
1120 | Whether the duration field is processed or not a tick is controlled via the |
876 | speed and speed_left field. Look above at the generic description of these |
1121 | speed and speed_left field. Look above in the generic object field description. |
877 | fields. |
|
|
878 | |
1122 | |
879 | NOTE: Setting FLAG_IS_USED_UP on an force will also consider the 'food' field |
1123 | NOTE: Setting FLAG_IS_USED_UP on an force will also consider the 'food' field |
880 | like stated above in the FLAG_IS_USED_UP description. BUT: If the food field reaches |
1124 | like stated above in the FLAG_IS_USED_UP description. BUT: If the food field reaches |
881 | 0 before duration and FLAG_APPLIED is set, the force will last for 'duration'. |
1125 | 0 before duration and FLAG_APPLIED is set, the force will last for 'duration'. |
882 | If the FLAG_APPLIED is not set the force is removed when food reaches 0. |
1126 | If the FLAG_APPLIED is not set the force is removed when food reaches 0. |