Proc:Trap
Contents
Overview
The trap procedure allows builders to combine a single trigger with multiple effects. Some effects maybe be harmful, while others helpful. The settings for the trap are assigned via the setproc command.
Key | Default | Description |
---|---|---|
TRAP_INITIALCHARGES | 0 | The number of charges the trap has per zone reset. If this value is negative, the trap has infinite charges. |
Triggers
The trap may only have one trigger which is set in the TRIGGER_TYPE key value.
Value | Description |
---|---|
Generic | Activates when players enter the room or perform a command. |
MobileDeath | Activates when a particular mobile is killed. |
Password | Activates when a player says a particular word. |
PressurePlate | Activates when the sum of the weights of all players/mobiles in the room reach a particular threshhold. |
Trigger Settings
Global settings that may be applied to the trigger.
Key | Default | Description |
---|---|---|
TRIGGER_CHANCE | 100 | The percentage chance that the trigger will activate. |
TRIGGER_MINPRIMELEVEL | 0 | The minimum prime level required to activate the trigger. |
TRIGGER_MAXPRIMELEVEL | 40 | The maximum prime level allowed to activate the trigger. |
TRIGGER_ACTIVATIONDELAY | 0 | Approximate number of seconds to delay the effects after the trigger is activated. Note that setting this value allows for the player activating the trigger to escape - which means they may not be present for any of the effects. |
TRIGGER_SPELLEXEMPTIONLIST | No exemptions | A colon (:) separated list of spells/skills that make the player exempt from activating the trigger. |
TRIGGER_INCLUDEMOBILES | 0 (FALSE) | Indicates whether or not independant mobiles should be able to activate the trigger. If this value is left at zero, wandering mobiles will not activate the trap nor count toward cumulative activations such as pressure plate weights. Mobile followers (supplications, summoned undead, etc) are always able to activate the trigger unless their master's prime level falls outside the trigger's boundaries or unless the follower is affected by a spell in the spell exemption list. |
TRIGGER_MESSAGE_ACTOR | No message | Message sent to the player who activates the trigger. |
TRIGGER_MESSAGE_ROOM | No message | Message sent to the room when the trigger is activated. |
MobileDeath
The mobiledeath trigger will activate if a particular mobile is killed in this room. It ignores most of the trigger settings including TRIGGER_MINPRIMELEVEL, TRIGGER_MAXPRIMTELEVEL, and TRIGGER_SPELLEXEMPTIONLIST.
Key | Default | Description |
---|---|---|
MOBILEDEATH_VNUM | -1 | Vnum of the mobile to react to. |
Password
The password trigger will activate if a player says a particular word.
Key | Default | Description |
---|---|---|
PASSWORD_VALUE | (none) | The password. |
PressurePlate
The pressureplate trigger activates when the weight of the applicable players and mobiles crosses a threshhold. Players/mobiles affected by the fly or wraithform spells are not counted.
Key | Default | Description |
---|---|---|
PRESSUREPLATE_WEIGHT | 0 | The amount of weight needed to activate the trigger. |
Effects
Note that if a the trap has a non-zero activation time and is set to only affect the person triggering the trap, the person may be gone and the trap may affect noone.
Key | Default | Description |
---|---|---|
EFFECTS_SPELLEXEMPTIONLIST | Empty | Colon (:) separated list of spells that exempt the player/mobile from being affected by any of the trap's effects. |
EFFECTS_LIST | Empty | Colon (:) separated list of effects enabled for this trap. Effects are activated in the order they appear. |
Supported effects:
Key | Description |
---|---|
Damage | Does damage to one player/mobile or the room. |
DoorState | Changes the state of up to 100 doors. |
Lag | Lags the players or all players in the room. |
Portal | Opens a portal between two rooms. |
SpawnMobiles | Spawns one or more mobiles. |
SpawnObjects | Spawns one or more objects. |
Teleport | Teleports players/mobiles from one room to another. |
ZoneAlarm | Either sets or clears the zone alarm. |
Damage
The damage effect does damage to the player/mobile activating the trigger or the entire room.
Key | Default | Description |
---|---|---|
DAMAGE_DICE | 1 | The number of dice used when calculating damage. |
DAMAGE_DIESIZE | 1 | The size of the die or dice used when calculating damage. |
DAMAGE_ADDITIONAL | 0 | An amount added (or subtracted) to the damage total. |
DAMAGE_TYPE | Undefined | Type of damage done. |
DAMAGE_AFFECTROOM | 0 | Boolean value determining whether everyone in the room takes damage. |
DAMAGE_INCLUDEMOBILES | 0 | Boolean value determining whether unrelated mobiles take damage from the trap. If this value is left at zero, wandering mobiles will not take damage from the trap. Mobile followers (supplications, summoned undead, etc) will always take damage unless their master's prime level falls outside the trigger's boundaries or unless the follower is affected by a spell in the spell exemption list. |
DAMAGE_ALLOWDEATH | 0 | Boolean value determining whether players/mobiles can be killed by the trap. By default the player/mobile will be taken down to 0 hit points and stunned. It is strongly recommended that this only be changed in the most harshest of areas. |
DAMAGE_MESSAGE_ACTOR | No message | Message shown to the player receiving damage. |
DAMAGE_MESSAGE_ROOM | No message | Message shown to the room for the player receiving damage. |
DoorState
The doorstate effect can change the states of up to 100 doors. The effect automatically sets both sides of the door to match. In the table below, the key name uses #### to represent the virtual number of the room containing the door and XXXX to represent the direction of the door in that room.
Key | Default | Description |
---|---|---|
DOORSTATE_####_XXXX_STATE | none | Sets the door's state to either "OPEN", "CLOSED", or "LOCKED". |
DOORSTATE_####_XXXX_MESSAGE_UNLOCKING | No message | Message sent to the room if the effect causes the door to unlock. |
DOORSTATE_####_XXXX_MESSAGE_OPENING | No message | Message sent to the room if the effect causes the door to open. |
DOORSTATE_####_XXXX_MESSAGE_CLOSING | No message | Message sent to the room if the effect causes the door to close. |
DOORSTATE_####_XXXX_MESSAGE_LOCKING | No message | Message sent to the room if the effect causes the door to lock. |
Lag
The lag effect adds lag to the affected players.
Key | Default | Description |
---|---|---|
LAG_SECONDS | 0 | The number of seconds to lag the player. |
LAG_AFFECTROOM | 0 | Boolean value that determines if the entire room is affected. |
LAG_MESSAGE_ACTOR | No message | Message sent to the player when they are lagged. |
LAG_MESSAGE_ROOM | No message | Message sent to the room for each player that is lagged. |
Portal
The portal effect creates a portal from one room to another.
Key | Default | Description |
---|---|---|
PORTAL_SOURCE | -1 | Source room to create the portal. If not specified or set to -1, the proc uses the current room as the source. |
PORTAL_DESTINATION | -1 | Destination room used to create the portal. If not specified or set to -1, the proc will not run. |
PORTAL_DURATION | 3 hours | Number of hours before the portal will disappear. |
PORTAL_TWOWAY | 1 | Boolean value indicating whether or not the portal should be two-way. |
SpawnMobiles
The spawnmobiles effect will create mobiles in one or more rooms.
Key | Default | Description |
---|---|---|
SPAWNMOBILE_LIST | Empty | Colon (:) separated list of mobile vnums to create. The same vnum may be listed more than once, but will use the same settings for all mobiles with the same vnum. |
SPAWNMOBILE_####_DESTINATION | -1 | Destination room to spawn the mobiles. If unspecified or set to -1, the current room is used. |
SPAWNMOBILE_####_QUANTITY | 1 | Number of mobiles to spawn with this vnum. The current maximum value is 10. |
SPAWNMOBILE_####_MESSAGE_ROOM | No message | Message sent to the room for each mobile spawned. |
SpawnObjects
The spawnobjects effect will create mobiles in one or more rooms.
Key | Default | Description |
---|---|---|
SPAWNOBJECT_LIST | Empty | Colon (:) separated list of object vnums to create. The same vnum may be listed more than once, but will use the same settings for all objects with the same vnum. |
SPAWNOBJECT_####_DESTINATION | -1 | Destination room to spawn the objects. If unspecified or set to -1, the current room is used. |
SPAWNOBJECT_####_QUANTITY | 1 | Number of objects to spawn with this vnum. The current maximum value is 10. |
SPAWNOBJECT_####_MESSAGE_ROOM | No message | Message sent to the room for each object spawned. This message does not support $ replacement. |
Teleport
The teleport effect telports players and/or mobiles from one room to another.
Key | Default | Description |
---|---|---|
TELEPORT_SOURCE | -1 | Source room to teleport from. If unspecified or set to -1 the proc uses the current room. |
TELEPORT_DESTINATION | -1 | Destination room to teleport to. If unspecified or set to -1 the proc uses the current room. |
TELEPORT_AFFECTROOM | 0 | Boolean value indicating whether to teleport everyone in the source room. |
TELEPORT_LOOKATDESTINATION | 1 | Boolean value indicating whether players should automatically look in the room once they reach their destination. |
TELEPORT_MESSAGE_ACTOR | No message | Message sent to the player when they are teleported. |
TELEPORT_MESSAGE_SOURCE_ROOM | No message | Message sent to the source room when the player teleports away. |
TELEPORT_MESSAGE_DESTINATION_ROOM | No message | Message sent to the destination room when the player arrives. |
ZoneAlarm
The zonealarm effect either sets or clears the current zone's alarm.
Key | Default | Description |
---|---|---|
ZONEALARM_STATE | 1 | Boolean value indicating whether the alarm should be set (1) or cleared (0). |
ZONEALARM_ACTIVATE_MESSAGE_ROOM | No message | Message sent to the room when the alarm is activated. |
ZONEALARM_DEACTIVATE_MESSAGE_ROOM | No message | Message sent to the room when the alarm is deactivated. |
Enabling the Trap
Before the trap will be enabled, you must run the following commands:
- setproc room # PROC_ENABLED 1
- compile
Compiling will copy all the KVP into an internal data structure for faster execution. Failure to compile the trap after modifications will cause any old settings to remain in effect.
In addition, setting PROC_DEBUG to 1 will send extra debugging information to those in the room.
Sample Trap
setproc room 0 TRAP_INITIALCHARGES -1 setproc room 0 TRIGGER_TYPE Password setproc room 0 PASSWORD_VALUE muhahaha setproc room 0 EFFECTS_LIST Teleport setproc room 0 TELEPORT_DESTINATION 8000 setproc room 0 TELEPORT_AFFECTROOM 1 setproc room 0 TELEPORT_MESSAGE_ACTOR You are blinded for a moment. setproc room 0 TELEPORT_MESSAGE_SOURCE_ROOM $n disappears in a flash of light! setproc room 0 TELEPORT_MESSAGE_DESTINATION_ROOM $n appears in a flash of light! setproc room 0 PROC_ENABLED 1 compile