Crossfire Server, Trunk
Shooting Weapon

Description

Shooting weapons like bows/crossbows are used to shoot projectiles (arrows/bolts). Shooting weapons and normal (melee) weapons can be wielded both at the same time. Like with any other equipment, stats/bonuses from shooting weapons are directly inherited to the player.

It's very easy to add new pairs of weapons & projectiles. Just set matching <ammunition class> both for shooting weapon and projectile.

Type defined by:

Attributes

Attribute Field Description
ammunition class object::race

Only projectiles with matching <ammunition class> can be fired with this weapon. For normal bows set "arrows", for normal crossbows set "crossbow bolts".

In certain cases, the ammunition class is displayed in the game. Hence, when you create a new ammunition class, choose an intuitive name like "missiles", "spirit bolts" - whatever.

artifact object::artifact If defined, refers to an artifact to get values from.
base damage living::dam The <base damage> significantly affects the damage done by using this weapon. This damage is added to the projectile damage and then (if <ignore strength> disabled) a bonus according to the player's strength is added.
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.
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.
charisma living::Cha The player's charisma will rise/fall by the given value while wearing this shooting weapon.
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.
constitution living::Con The player's constitution will rise/fall by the given value while wearing this shooting weapon.
curse FLAG_CURSED A cursed shooting weapon cannot be unwielded unless the curse is removed.
damnation FLAG_DAMNED A damned shooting weapon cannot be unwielded unless the curse is removed. Removing damnations is a tick harder than removing curses.
description object::msg This text describes the weapons' "story". Every decent artifact weapon should have such a description.
dexterity living::Dex The player's dexterity will rise/fall by the given value while wearing this shooting weapon.
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.
godgiven item FLAG_STARTEQUIP A godgiven item vanishes as soon as the player drops it to the ground.
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.
ignore strength FLAG_NO_STRENGTH Usually the player's strength takes effect on the damage done by the shooting weapon. If <ignore strength> is set, the player's strength is ignored.
image object::face The image-name defines what image is displayed for this object in-game.
intelligence living::Int The player's intelligence will rise/fall by the given value while wearing this shooting weapon.
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.
item power object::item_power

The <item power> value measures how "powerful" an artifact is. Players will only be able to wear equipment with a certain total amount of <item power>, depending on their own level. This is the only way to prevent low level players to wear "undeserved" equipment (like gifts from other players or cheated items).

It is very important to adjust the <item power> value carefully for every artifact you create! If zero/unset, the CF server will calculate a provisional value at runtime, but this is never going to be an accurate measurement of <item power>.

luck bonus living::luck With positive luck bonus, the player is more likely to succeed in all sorts of things (spell-casting, praying, ...). Unless the <luck bonus> is very high, the effect will be barely visible in-game. Luck bonus on one piece of equipment should never exceed 3, and such bonus should not be too frequently available.
magic bonus object::magic <Magic bonus> improves the quality of the shooting weapon. I'm not sure what exactly is increased - maybe weapon class? However, <magic bonus> seems to have a little bit of positive influence on your chance to hit.
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.
power living::Pow The player's power will rise/fall by the given value while wearing this shooting weapon.
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.
race restriction race_restriction If this is set to a : separated (with leading and trailing :) list of races, only players of this race will be able to apply the item.
shooting speed living::sp

After shooting a projectile, the player is frozen for a short period of time (to prevent shooting arrows machine-gun-like). The greater <shooting speed>, the shorter this period of time. 1 is minimum (=worst) and 100 is maximum (=best) value.

You shouldn't set <shooting speed> lower than 10. YOU MUST NOT SET IT TO ZERO! (That would freeze the player for eternity).

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".
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.
strength living::Str The player's strength will rise/fall by the given value while wearing this shooting weapon.
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.
unique item FLAG_UNIQUE Unique items exist only one time on a server. If the item is taken, lost or destroyed - it's gone for good.
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.
weapon class living::wc This value is supposed to be the base <weapon class>, but it seems to have rather little effect. High values are good here, low values bad.
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 ;) ).
wisdom living::Wis The player's wisdom will rise/fall by the given value while wearing this shooting weapon.