Rune & Trap

Description

<![CDATA[ A rune is a magical enscription on the dungeon floor. Traps are just like runes except they are not magical in nature, and generally have a physical attack.

Runes hit any monster or person who steps on them for 'dam' damage with specified attack type. Alternatively, the rune could contain any spell, and will cast this spell when it detonates.

Many traps and runes are already defined in the archetypes.

Type defined by:

Attributes

Attribute

Field

Description

anim speed

obj::anim_speed

How fast to play this animation.

animation

obj::animation_id

The animation-name defines what animation is displayed for this object in-game. Note that a set animation will overrule the face.

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 of it.

can reflect missiles

FLAG_CAN_REFL_MISSILE

Object can reflect missiles. See reflect missiles.

can reflect spells

FLAG_CAN_REFL_SPELL

Object can reflect spells. See reflect spells.

cursed

FLAG_CURSED

The item is cursed. This object can't be removed when wielded or worn (without uncursing it). Remove curse will remove this flag.

damned

FLAG_DAMNED

Stronger form of curse. Item can't be removed when wielded or worn. Remove damnation will remove this flag.

detonation text

obj::msg

When the rune detonates, this text is displayed to the victim. For especially powerful runes, create an appropriate thrilling description. ;)

direct damage

liv::dam

<direct damage> specifies how much damage is done by the rune, if it doesn't contain a spell. This should be set in reasonable relation to the rune's level.

direction

obj::direction

The object's direction.

glow radius

obj::glow_radius

If <glow radius> is set to a value greater than 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.

image

obj::face

The image name defines what image is displayed for this object in-game.

inv. system object

FLAG_SYS_OBJECT

Marks an object as system object. System objects are ALWAYS invisible and hidden from the players.

System objects are put in layer 0.

invisible

FLAG_IS_INVISIBLE

Generally makes the object invisible. Invisible objects will be shown if the player has "see invisible" (from an item). To hide objects totally from detection, use "sys_object".

invoke direction

liv::maxsp

If set, the rune will cast it's containing spell (if any) in this <direction>. In most cases this appears useless because the spell directly hits the player.

is animated

FLAG_ANIMATE

If set, the object is animated and animation is used.

Note: Some special objects will use an animation NOT as animation but as frame list. Examples are buttons (which frames are changed by the object status of the button). IS_TURNABLE will enable direction turning for some object types. These flags are all system related. Be VERY careful when changing them.

is turnable

FLAG_IS_TURNABLE

System flag. Object can be turned into directions.

layer

obj::layer

This is the map layer the object will put in. The selected layer will affect where and how this object is shown on client side. Layer 0 is reserved for sys_object type objects and will NEVER be shown on client side. Layer 1 is for floor objects and layer 2 for floor masks. Layer 3 and 4 are for items on the ground. Layer 5 is for walls, layer 6 is reserved for players and layer 7 is for spell effects and high flying/visible objects like arrows.

magical

FLAG_IS_MAGICAL

If set, this object counts as "magical". Detect magic or identify will show this flag and the player will see a small blue M in the client's inventory part.

material

obj::material_real

The material defines the exact material of which the object consists. It is much more specific than <material class>, however only one material can be selected, not multiple.

<material> is not required to be set, it can be left 'undefined'.

material class

obj::material

This bitmask-value informs the player of which basic material(s) the object consists. Material class does also affect how likely the object can be destroyed by hazardous spell-effects, like firestorm.

name

obj::name

This is the name of the object, displayed to the player.

no prayers

FLAG_NO_CLERIC

If enabled, it is impossible for players to use prayers on that spot.

no spells

FLAG_NO_MAGIC

If enabled, it is impossible for players to use spells on that spot.

no teleport

FLAG_NO_TELEPORT

Marks an object as no teleport object. A no teleport object can't be teleported by teleporter except if the object is inside the inventory of another object which can be teleported.

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 goldcoins => "number = 100"). You should set this at least to one, for any pickable object - otherwise it won't be mergeable into a stack.

number of charges

liv::hp

The rune will detonate <number of charges> times before disappearing.

one drop

FLAG_ONE_DROP

In the moment a player gets or applies this item, it will be flagged as godgiven and vanish when dropped to the ground.

If this flag is set for an item inside monster's quest_container with the quest being quest item type, the player will be able to find the item again, should he lose it.

permanent cursed

FLAG_PERM_CURSED

The item is permanently cursed. If this flag is set, applying or unapplying it will set "cursed 1" again. This flag can't be removed by remove curse.

permanent damned

FLAG_PERM_DAMNED

The item is permanently damned. If this flag is set, applying or unapplying it will set "damned 1" again. This flag can't be removed by remove damnation.

player only

FLAG_PLAYER_ONLY

If set, only players can enter the tile the object with this flag is on.

rune level

obj::level

This value sets the level the rune will cast the spell it contains at, if applicable. A level 99 rune casts a very, very mean spell of whatever. (<rune level> 0 runes won't detonate at all!)

Level also affects how easily a trap may be found and disarmed, and how much experience the player gets for doing so. Beware: High level runes can be quite a cheap source of experience! So either make them tough, or keep the level low.

spell

liv::sp

The selected <spell> defines the spell in the rune, if any. Many runes and all traps do direct damage.

spell name

obj::slaying

Name of the spell in the rune, if any. Slaying is optional, but if present, overrides the <spell> setting.

stackable

FLAG_CAN_STACK

If set, the item can be stacked. Careful, don't use on rings or other applyable items, it will lead to side effects.

Missiles are designed to be used as stacks for example.

start speed

obj::speed_left

When an active object (with 'speed' being non-zero) is put on a map, this value is used as counter. Every 'tick', 'speed' (if negative, value is turned positive before) is added to this value - if it is bigger than 0 the object 'will do something' and this counter is decreased with -1.0.

By default a normal object will be put on the map with start speed 0. It 'will do something' with the next coming 'tick'. Setting this value to -1.0 will put it on map but wait one full 'lifetime' round until it does something.

A 'fire object' should be put on map with start speed 0 - it should try to burn something in the moment it comes in the game. A bomb for example should be put with speed -1.0 on the map - it will stay then on map until the bomb becomes active - it explodes.

The 'lifetime' round is determinated by speed. A speed of 1.0 will give a 'lifetime' round of 1 tick - a speed of 0.01 100 ticks.

Special case: A negative speed value will add to start speed a random value between 0.0 to 0.9 . So, a speed of -0.1 with a start speed of -1.0 will result in speed 0.1 and start speed between -1.0 and -0.1. This is useful to let a row of same objects act in different tick ranges.

sub type

obj::sub_type1

This important value is used to define "sub types" for objects of the same object type. Examples are weapons, which are all from type WEAPON but can be different sub types like slash, cleave, two-handed, polearms and so on. This value goes to the client too.

Warning: Not all objects have a sub type and changing it without care can corrupt server AND/OR the clients. Normally this is not a subject to change outside arch definition.

summon amount

liv::maxhp

This should only be set to a summoning rune. It will then summon that many creatures of the kind <summon monster>.

summon monster

obj::race

If this is set to the arch name of any monster, together with <spell name> "summon evil monster", the rune will summon a bunch of those on detonation. (dam and attacktype will still be ignored in this case). Runes are even capable of summoning multi-square monsters, given enough space. You'd better test it though.

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 Yordan", "of xray vision" etc.

unpaid

FLAG_UNPAID

An <unpaid> item cannot be used unless the player carried it over a shop mat, paying the demanded price. Setting this flag makes sense only for items inside shops.

value

obj::value

Change an object's value.

visibility

liv::Cha

This value determines what fraction of the time the rune is visible: It'll be randomly visible 1 / <visibility> of the time. Also effects how easily the trap may be found.

weight

obj::weight

This value defines the object's weight in gram (1000g is 1kg). Objects with zero weight are not pickable for players. Still, set the "non-pickable" flag for explicitly non-pickable objects.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Generated on Sun Feb 7 00:02:47 2010 for Atrinik Server by  doxygen 1.6.1