Crossfire Server, Trunk  R20513
Transport

Description

A transport is an object that helps the player move. It should not be confused an EXIT, which instantaneously transport a player from one map to another.

Instead, a transport may let the player move faster, give him move types they don't have, etc. A simple example of this would a horse. It doesn't let the player move anyplace he normally couldn't go, but lets him get there faster. Ships would be another case - the player normally can't move across water, but with a ship, he can.

Type defined by:

Attributes

Attribute Field Description
animation full anim_full It may be desirable to have different animations to denote what the transport looks like if someone is on it vs. not (mounted horse vs. just a horse). This is used to denote what it will look like when loaded. If the transport becomes empty, it will fall back to the archetype animation.
artifact obj::artifact If defined, refers to an artifact to get values from.
base speed base_speed This is only needed if <weight speed ratio> is set - it is used to know what the base speed to use in the calculation (since speed is getting clobbered). If this is not set and <weight speed ratio> is set, the archetype's speed will be used.
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.
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.
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.
face full face_full It may be desirable to have different faces to denote what the transport looks like if someone is on it vs. not (mounted horse vs. just a horse). This is used to denote what it will look like when loaded. If the transport becomes empty, it will fall back to the archetype face.
glow radius obj::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 obj::face The image-name defines what image is displayed for this object in-game.
invisible obj::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.
material obj::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.
move allow obj::move_allow The move type the transport grants, regardless of other objects on this square.
move type obj::move_type The move type the transport uses.
movement speed obj::speed How fast the transport moves.
name obj::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 obj::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.
passenger limit passenger_limit How many players this transport can hold. Thus, boats can transport a party (this being set to 6) while horses could only transport a single person. If this is not set, a default of 1 will be used.
plural name obj::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.
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.
smooth level obj::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.
title obj::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 obj::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 obj::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 ;) ).
weight limit obj::container How much this transport can carry.
weight speed ratio weight_speed_ratio

This value is taken as a percentage which is multiplied against against the weight this transport is carrying (the player) - this is then divided by weight_limit to determine the effective loading to determine effective object speed, eg:

speed = <base speed> - (<base speed> * <weight in transport> * <weight speed ratio>) / (<weight limit> 100)

Thus, if <weight factor> is 0, this object will move the same speed no matter how loaded it is. If it is 100, then if the transport is fully loaded, it moves at a crawl. In a sense, this somewhat mimics the player movement speed. Large transports, like boats, should likely be largely unaffected by weight (maybe have this value at 10), where something like a horse would have a relatively high value.