Crossfire Server, Trunk
|
Spell objects define a spell. When a spell is put in a spellbook, players can learn it by reading the book. Once learned, players can use the spell as often as they like. With increasing skill level of the player, spells may gain power but also increase cost.
Monsters can use spells which are put in their inventory (provided that certain "enabling" settings are correct). The monster's <treasurelist> can also be used to provide it with spells.
Type defined by:
Attribute | Field | Description |
---|---|---|
animation suffix | object::anim_suffix | If set, will apply a compound animation to the player or monster casting this spell. |
artifact | object::artifact | If defined, refers to an artifact to get values from. |
attuned paths | object::path_attuned | Spellpath for this spell. A player needs to not be denied this path to cast the spell. |
block view | FLAG_BLOCKSVIEW | If an item is set to block view, players (and monsters) cannot see beyond it unless they cross it or manage to stand on top. |
blocks prayers | blocks_prayer | Similar to damned, but does not appear in detect curse. |
casting time | object::casting_time | If the server uses spell casting times, this is the base number of ticks required for casting this spell. |
changing | FLAG_CHANGING | A <changing> object converts to <food> <other_arch> objects; when it's animation is done. For non-living objects <food> is checked: if it is zero, the change happens; otherwise <food> is decreased by one. I suggest you don't mess with this value - leave the default in place. |
client-sided randomized animation? | FLAG_CLIENT_ANIM_RANDOM | If defined, then the object's animation is client-sided. Similar objects are animated independently. |
client-sided synchronized animation? | FLAG_CLIENT_ANIM_SYNC | If defined, then the object's animation is client-sided. Similar objects are animated synchronized. |
consumed items | casting_requirements | If set, this is a comma-separated list of items the spell will require and consume to be cast by players and monsters. The format is '<optional count> item's name, etc.'. Examples: - 'water' will make the spell use one water per casting. - ' 2 diamonds' will make the spell use 2 diamonds per casting. |
cost grace | living::grace | How many base grace points this spell costs to cast. The effective cost can be based on the casting level, depending on server settings. |
create object | object::other_arch | For spells creating or launching things, the archetype to use. |
double grace cost per level | living::maxgrace | If non zero, the grace cost will increase <grace cost> per this value levels. |
double sp cost per level | living::maxsp | If non zero, the spellpoint cost will increase <spellpoint cost> per this value levels. |
duration | object::duration | Base spell effect duration. The actual duration will depend on the effective casting level. |
elevation | elevation | The elevation (height above sea level) of this square. It is used for weather calculations and should be in the range -32000..32000. The elevation of a tile must be set in the bottom-most game object; elevation values for non-bottom-most game objects are ignored by the Crossfire server. |
glow radius | object::glow_radius | If <glow radius> is set to a value greater zero, the object appears lit up on dark maps. <glow radius> can be a value between 0 and 4, the higher, the more light does the object emit. |
identified | FLAG_IDENTIFIED | If an item is identified, the player has full knowledge about it. |
identified animation | identified_animation | If defined, then the object will take this animation when identified. |
identified animation speed | identified_anim_speed | If defined, then the object will have this animation speed when identified. |
identified image | identified_face | If defined, then the object will take this appareance when identified. |
identified random animation? | identified_anim_random | If defined, then the object's animation is in a random sequence when identified. |
identified_name | identified_name | If defined, then the object will take this name when identified. |
identified_name_pl | identified_name_pl | If defined, then the object will take this plural name when identified. |
image | object::face | The image-name defines what image is displayed for this object in-game. |
immunity chance | immunity_chance | For mood change spells like "charm monster", the probability that a monster resisting the attack gets immune to it. |
invisible | object::invisible | Generally makes the object invisible. Depending on the object-type, some can be made visible by the show_invisible spell. If in doubt, test it. Putting an invisible object under the floor always prevents it from being shown. |
is used up | FLAG_IS_USED_UP | If set, decrement the <food> field at <speed>. When <food> reaches zero, remove the object. |
material | object::material | This bitmask-value informs the player of which material(s) the object consists. Material does also affect how likely the object can be destroyed by hazardous spell-effects. |
name | object::name | This is the name of the object, displayed to the player. |
non-pickable | FLAG_NO_PICK | If set, the object cannot be picked up (Neither by players nor monsters). |
number | object::nrof | This value determines the number of objects in one stack (for example: 100 gold coins => "number = 100"). You should set this at least to one, for any pickable object - otherwise it won't be mergeable into a stack. |
plural name | object::name_pl | This is the plural name of the object. A plural name must be set for all items that can be picked up and collected by the player. |
price adjustment | price_adjustment | If set, this is the buy and sell price adjustment ratio for the item. |
price adjustment for buying | price_adjustment_buy | If set, this is the adjustment ratio when buying the item. Ignored if <price> adjustment is set. |
price adjustment for selling | price_adjustment_sell | If set, this is the adjustment ratio when selling the item. Ignored if <price> adjustment is set. |
skill name | object::skill | The <skill name> matches the skill which is needed to cast this spell. This should be one out of "sorcery", "pyromancy", "evocation", "summoning" or "praying". If you want to fiddle with these, please take care not to upset the concept and balance of the various skills. |
smooth level | object::smoothlevel | If <smooth level> is set to a value greater zero, the object will be drawn partially over adjacent squares having a lower <smooth level> value. The value must be between 0 and 255 (inclusive); 0 means "never overlap adjacent squares". |
spell level | object::level | The level, without taking into account spellpath attenuation, required to cast this spell. |
spell type | object::subtype | The <spell type> defines the basic type of spell. Some of these types are of a more generic nature than others. |
spellpoint cost | living::sp | How many base spell points this spell costs to cast. The effective cost can be based on the casting level, depending on server settings. |
splitting | FLAG_SPLITTING | A <splitting> object converts to <food> <other_arch> objects; when it is hit physically. For non-living objects <food> is checked: if it is zero, the change happens; otherwise <food> is decreased by one. I suggest you don't mess with this value - leave the default in place. |
title | object::title | This is the object's title. Once an object is identified the title is attached to the name. Typical titles are "of Mostrai", "of xray vision" etc. |
unpaid | FLAG_UNPAID | An <unpaid> item cannot be used unless a player carried it over a shop mat, paying the demanded price. Setting this flag makes sense only for pickable items inside shops. |
value | object::value | Adds a certain value to the object: It will be worth that many times the default value from it's archetype (E.g. "value = 3" means three times worth the default value). Value for buying/selling will be further modified by various factors. Hence, testing values in-game is usually inevitable. |
weight | object::weight | This value defines the object's weight in grams (1000g is 1kg). Objects with zero weight are not pickable for players. Still, set the "non-pickable"-flag for explicitly non-pickable objects (hey, this is open source... you never know ;) ). |