[Crossfire-wiki] [Crossfire DokuWiki] page changed: dev:objects
no-reply_wiki at metalforge.org
no-reply_wiki at metalforge.org
Wed Dec 19 21:39:38 CST 2007
A page in your DokuWiki was added or changed. Here are the details:
Date : 2007/12/19 21:39
User : kbulgrien
Edit Summary: Typo fixes; merge SVN 6974, 6985
@@ -6,13 +6,13 @@
====== How to create new archetypes and bitmaps ======
- Determine if you really need a new archetype. Archetypes are only needed if you are adding new images, or the archetype you are creating will be of general interest. Don't make a new arch if all you really need to do is customize an existing archetype.
- Figure out which directory/category the object will belong to. This will determine the appropriate location for it inside the 'arch' directory. For objects with many animations or that are very large, you may want to make a new subdirectory.
- - Create a bitmap. It must be dividable by 32 in both height and width. The file format should be .PNG 256 colour and use transparancy.
+ - Create a bitmap. It must be dividable by 32 in both height and width. The file format should be .PNG 256 colour and use transparency.
- create additional bitmaps if you want animation or directional facing.
- - split the bitmaps up into 32x32 bitmaps and named according to the naming.doc conventions in the arch tar package. Note, this is not really necessary at current time - non splitted images should work properly, but some older clients may have problems with it. (you can use the script "splitxbm" which is included below).
+ - split the bitmaps up into 32x32 bitmaps and named according to the naming.doc conventions in the arch tar package. Note, this is not really necessary at current time - non-split images should work properly, but some older clients may have problems with it. (you can use the script "splitxbm" which is included below).
- Create an archetype entry. The file should be called object.arc, where object is whatever the new object is. This is by far the most complicated step. First read "crossfire.doc" for an introduction on how to create archetypes.
- * Look at other similary archetypes to see how they have been done.
+ * Look at other similarly archetypes to see how they have been done.
* If you only made one 32x32 bitmap, you will only need one archetype, but if you made a larger bitmap which is cut down to several 32x32 bitmaps, you will need to use "linked" archetypes. To create a linked archetype, add a 'More' line filed by the next piece. The X and Y coordinates in this next piece determine the offset from the head (first) object.
* When making multipart objects, they should be rectangular. Non rectangular may work, but has not been tested. Note that for these multipart objects, in most cases, only the values in the head portion are used (eg, hp, damage, etc for monsters).
* See the section later in this document about animations.
- If your archetype is a creature or NPC you might want to give it abilities such as firebreathing or magical attacks. You put these abilities into the treasures file in the appropriate entry as invisible objects. This is also how you can give inventory like bows or swords as well. Look at the other entries in the treasures file for the format. Note that if an existing entry in the treasures file does what you want, use it for your new archetype. There is no requirement that each archetype has a unique treasure list.
@@ -81,9 +81,9 @@
damage). The attack code goes through all the attacktypes, and
calculates the damage that each will cause. It uses the highest damage
total that any of these attacktypes will use.
- For attacktypes that don't deal phyiscal damage but instead effect
+ For attacktypes that don't deal physical damage but instead effect
the creature in some way (drain, slow, paralyze, etc), the resistance
in general reduces the effect (duration, amount drained, etc).
@@ -100,9 +100,9 @@
/* if the attack_variable movement is left out of the monster archetype, or is*/
/* set to zero */
/* the standard mode of movement from previous versions of crossfire will be */
/* used. the upper four bits of movement data are not in effect when the monst*/
- /* er has an enemy. these should only be used for non agressive monsters. */
+ /* er has an enemy. these should only be used for non aggressive monsters. */
/* to program a monsters movement add the attack movement numbers to the movem*/
/* ment numbers example a monster that moves in a circle until attacked and */
/* then attacks from a distance: */
/* CIRCLE1 = 32 */
@@ -330,16 +330,16 @@
sleep + (any) = sleep until woken, then do any of the other things...
neutral + random_movement = move randomly around all the time.
neutral (alone) = stand still until attacked, then attack and move.
- stand_still + (any) = do anything except moveing
+ stand_still + (any) = do anything except moving
In addition it can have run_away set to which percentage of full
hit-points the npc will run away at.
And then there is the NPC features made by Karl Holland (see attack_movement)
- Note that scared creatures will become unscared at some point, so it
+ Note that scared creatures will become unafraid at some point, so it
is typically not useful to set this in maps or in archetypes.
===== NPC's Speak out =====
@@ -695,9 +695,9 @@
FLAG_ANIMATE is not set is for arrows and other objects in which the anim
field is instead used to determine what face to draw for different facings of
the object.
- facings is used in conjunctin with FLAG_ANIMATE. This is a states
+ facings is used in conjunction with FLAG_ANIMATE. This is a states
the number of facing the objects has (2, 4, or 8 - 1 is the default).
The number of faces in the anim/mina sequence must be a multiple of
num facings..
@@ -720,9 +720,9 @@
order is kept. So with only 2 facings, the first half in the group will be
used when the creature is pointing to the right, second half to the left.
- anim_speed is used to determine how often the object is animated. IF
+ anim_speed is used to determine how often the object is animated. If
anim_speed is 0, then the object is animated anytime it gets an action.
If anim_speed is nonzero, then every anim_speed ticks, the object is
animated (irregardless of how fast the item is) last_anim is used internally
only to determine how many ticks have passed since the item was last
@@ -924,9 +924,9 @@
* hp, sp = (x,y) of the destination on the new map.
===== Lore =====
- Lore is a free form text field similiar to the msg bug. Its syntax is
+ Lore is a free form text field similar to the msg bug. Its syntax is
lore
..
..
@@ -958,17 +958,17 @@
It is possible to use string names instead of the numeric bitmask in
the move_fields below. It is strongly encouraged that the string names be
used for improved readability. In addition, using string names, especially
- 'all', will result in easier maintability in the future. For example, if you
- specify 'move_block 31' right now, that is equivalant of all. However, if new
+ 'all', will result in easier maintainability in the future. For example, if you
+ specify 'move_block 31' right now, that is equivalent of all. However, if new
move types are added, using a numeric option will not block the new movement
types, where if 'move_block all' was used, it continue to block everything.
The string names are same as the MOVE_ defines, but with the MOVE_ portion
removed, eg, 'walk', 'fly_low', 'fly_high', etc. Multiple types can be
- listed, seperated by a space. In addition, a - (minus) can precede the name,
- which means to negate that type. These are all equivalant:
+ listed, separated by a space. In addition, a - (minus) can precede the name,
+ which means to negate that type. These are all equivalent:
<code>
move_block 6
move_block fly_low fly_low
@@ -976,9 +976,9 @@
move_block all -swim -walk -boat
</code>
Note the order when using the -(negation) is important - the string is parsed
- left to right. This is not equivalant to the above:
+ left to right. This is not equivalent to the above:
<code>
move_block -swim -walk -boat all
</code>
@@ -1027,9 +1027,9 @@
These bitmasks represents for what movement types this object is activated on/off. Replaces the walk/fly_on/off values
=== move_slow ===
- Like move_block, but represents what movement types are slowed on this space. Note that it is not possible to specifiy different penalties for different movement types in the same object. However, multiple objects with different move_slow values (and penalties) can be put on the same space. This replaced FLAG_SLOW_MOVE, which is converted to only slow down walking movement.
+ Like move_block, but represents what movement types are slowed on this space. Note that it is not possible to specify different penalties for different movement types in the same object. However, multiple objects with different move_slow values (and penalties) can be put on the same space. This replaced FLAG_SLOW_MOVE, which is converted to only slow down walking movement.
=== move_slow_penalty (was slow_move) ===
How much the player is slowed down.
@@ -1059,10 +1059,8 @@
* FLAG_FLY_OFF -> move_off
* FLAG_PASS_THRU -> was unused, would be move_type
* FLAG_CAN_PASS_THRU -> was unused, would be move_type
- === Load/Save behaviour and backward compatability ===
- The loader knows about certain old flags (walk_on, blocked, etc) and sets up the appropriate bitmasks. When data is saved, it is saved as the move_... with actual bitmasks.
=== Special player notes ===
Player can only pick up items if MOVE_WALK is set (this may need to be expanded down the road). Basic idea is that if you are flying, can't reach the ground, if swimming, don't really have any free hands to grab anything.
@@ -1137,11 +1135,11 @@
* food: if negative, disease is permanent. Otherwise, decreases at <speed>, disease goes away at food=0, set to "maxgrace" on infection.
* speed is the speed of the disease, how fast "disease moves" occur.
* last_sp is the lethargy imposed on the player by the disease. A lethargy of "1" reduces the players speed to 1% of its normal value.
* maxsp how much mana is sapped per "disease move". if negative, a %-age is taken.
- * ac: every "disease move" the severity of the symptoms are increased by ac/100. Therefore severity = 1 + (accumlated_progression)/100
+ * ac: every "disease move" the severity of the symptoms are increased by ac/100. Therefore severity = 1 + (accumulated_progression)/100
* last_eat increases food usage if negative.
- * last_grace: reduction in the diseases' contageousness every time it infects someone new. This limits how many generations a disease can propagate.
+ * last_grace: reduction in the diseases' contagiousness every time it infects someone new. This limits how many generations a disease can propagate.
==== Symptoms ====
| Stats | Modify stats |
| hp | Modify regen |
@@ -1163,9 +1161,9 @@
===== Bows & arrows =====
- Missile weapons (type BOW) can be used to shoot missiles (type ARROW). The most common wepons are bows and crossbows but other weapons are also easy to implement (e.g. a sling). The following variables have the same meaning for both weapons and bullets:
+ Missile weapons (type BOW) can be used to shoot missiles (type ARROW). The most common weapons are bows and crossbows but other weapons are also easy to implement (e.g. a sling). The following variables have the same meaning for both weapons and bullets:
| race | type of missile (identifies weapon and missile pairs) |
| dam | the basic damage |
| wc | the basic wc |
@@ -1208,9 +1206,9 @@
Player movers are objects which move objects above them. These objects must be alive. They are directional, so players can be made to move in a pattern, and so can monsters.
Motion is involuntary. Additionally, players or monsters can be paralyzed so that they MUST move along a chain of movers.
- Multisquare monsters can be moved by movers, however enough space is required.
+ Multi-square monsters can be moved by movers, however enough space is required.
Here is the meaning of various fields:
| attacktype | if nonzero, paralyzes anyone it moves (so they are forced to move along a chain). Default values is 0 |
| maxsp | the number of moves that the paralysis will rob the player of, if unset, and attacktype is nonzero, this becomes 2. By default, it is zero |
@@ -1394,9 +1392,9 @@
Whenever an object that is connected gets activated, all other objects
with the same connected tag also gets pushed. For some objects
(pedestals, inventory checkers) this is likely to be meaningless. However,
if something like an altar is pushed in this fashion, it will no longer
- be usuable (only take one sacrifice, and being activated in this fashion
+ be usable (only take one sacrifice, and being activated in this fashion
makes it so that it looks to have been activated.)
One trick for connected objects that you want activated once: Set your
initial connects to a set (or multiple sets) of iron spikes that are in
@@ -1534,14 +1532,14 @@
| applied | set if object is readied/worn/etc. |
| unpaid | set if object is unpaid (internal) |
| no_pick <1> | set if O can't be taken |
| no_pass <1> | set if O can't be passed. (eg, a closed door) |
- | walk_on <1> | O is applied by anything walking onto it |
- | walk_off <1> | O is applied by anything walking off it |
- | fly_on <1> | O is applied by anything flying onto it |
- | fly_off <1> | O is applied by anything flying off it |
+ | walk_on <1> | O is applied by anything walking onto it (obsolete -- use move_on walk instead) |
+ | walk_off <1> | O is applied by anything walking off it (obsolete -- use move_off walk instead) |
+ | fly_on <1> | O is applied by anything flying onto it (obsolete -- use move_on fly_low instead) |
+ | fly_off <1> | O is applied by anything flying off it (obsolete -- use move_off fly_low instead) |
| is_animated <1> | set if O is animated |
- | flying <1> | set if O is flying (used in fly_on/fly_off) |
+ | flying <1> | set if O is flying (obsolete -- use move_off fly_low instead) |
| monster <1> | set if O is a monster |
| friendly <1> | set if O will make a monster help player instead of attacking |
| generator <1> | set if O is a generator |
| auto_apply <1> | O is applied when it is loaded (for instance, some chests open automatically when the map is loaded) |
IP-Address : 70.254.39.97
Old Revision: http://wiki.metalforge.net/doku.php/dev:objects?rev=1196617274
New Revision: http://wiki.metalforge.net/doku.php/dev:objects
--
This mail was generated by DokuWiki at
http://wiki.metalforge.net/
More information about the crossfire-wiki
mailing list