Difference between revisions of "Proc:Trap"

From WikiName
Jump to: navigation, search
(Triggers)
Line 19: Line 19:
 
{|class="abilitiestable" border="0" cellspacing="0" cellpadding="0"
 
{|class="abilitiestable" border="0" cellspacing="0" cellpadding="0"
 
! Value !! Description
 
! Value !! Description
 +
|-
 +
| Arrival
 +
| Activates when players enter the room.
 
|-
 
|-
 
| Command
 
| Command
 
| Activates when players enter a particular command.
 
| Activates when players enter a particular command.
 
|-
 
|-
| Generic
+
| Departure
| Activates when players enter the room or perform a command.
+
| Activates when players attempt to leave the room.
 +
|-
 +
| Every
 +
| Activates when the every interval occurs.
 
|-
 
|-
 
| MobileDeath
 
| MobileDeath
Line 137: Line 143:
 
| The amount of weight needed to activate the trigger.
 
| The amount of weight needed to activate the trigger.
 
|}
 
|}
 
  
 
= Effects =
 
= Effects =

Revision as of 22:56, 3 May 2015

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_INITIAL_CHARGES 1 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
Arrival Activates when players enter the room.
Command Activates when players enter a particular command.
Departure Activates when players attempt to leave the room.
Every Activates when the every interval occurs.
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_MIN_PRIME_LEVEL 0 The minimum prime level required to activate the trigger.
TRIGGER_MAX_PRIME_LEVEL 50 The maximum prime level allowed to activate the trigger. Note that immortals will only trigger the trap if TRIGGER_INCLUDE_IMMORTALS is also set.
TRIGGER_ACTIVATION_DELAY 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_SPELL_EXEMPTION_LIST No exemptions A colon (:) separated list of spells/skills that make the player exempt from activating the trigger.
TRIGGER_INCLUDE_MOBILES 0 (FALSE) Indicates whether 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_INCLUDE_IMMORTALS 0 (FALSE) Indicates whether immortals can trigger the trap. Best used when debugging or for helpful traps that perform tasks like opening doors.
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.


Command

The command trigger will activate if a player enters the specified command and arguments.

Key Default Description
COMMAND_NAME None Full name of the command
COMMAND_ARGUMENT_LIST No Arguments Colon (:) separated list of required arguments.


MobileDeath

The mobiledeath trigger will activate if a particular mobile is killed in this room. It ignores most of the trigger settings including TRIGGER_MIN_PRIME_LEVEL, TRIGGER_MAX_PRIME_LEVEL, and TRIGGER_SPELL_EXEMPTION_LIST.

Key Default Description
MOBILE_DEATH_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.


Pressure Plate

The pressure plate 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
PRESSURE_PLATE_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_SPELL_EXEMPTION_LIST 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.
EFFECTS_TARGET Actor A string value of "Actor" to target the person triggering the trap, or "Room" for the entire room, or a number from 1 to 32 indicating how many random eligible players/mobiles should be selected and affected.
EFFECTS_AFFECT_MOBILES 0 Boolean value indicating whether unrelated mobiles should be affected by the trap. If this value is left at zero, wandering mobiles will not be affected. Mobile followers (supplications, summoned undead, etc) will always be eligible 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.
EFFECTS_AFFECT_OBJECTS 0 Boolean value indicating whether objects in the room should be affected by the trap.
EFFECTS_ALLOW_DEATH 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.
EFFECTS_OVERRIDE_COMMAND 0 Boolean value indicating whether activation of the trap overrides the current command. Only relevant if a command triggers and activates the trap.
EFFECTS_BLOCK_DEPARTURE 0 Boolean value indicating whether activation of the trap blocks departure of the room. Only relevant if the trap is triggered and activated by attempting to exit the room.
EFFECTS_SKIP_LOOK_ON_ARRIVAL 0 Boolean value indicating whether activation of the trap should stop the affected players from looking when arriving at their destination. Only relevant if the trap is triggered and activated during arrival into a new room.


Supported effects:

Key Description
Damage Does damage to the selected targets.
DoorState Changes the state of up to 100 doors.
Lag Lags the selected targets.
Portal Opens a portal between two rooms.
SpawnMobiles Spawns one or more mobiles.
SpawnObjects Spawns one or more objects.
Teleport Teleports the selected targets from one room to another.
ZoneAlarm Either sets or clears the zone alarm.


Damage

The damage effect does damage to the players/mobiles that the trap targets.

Key Default Description
DAMAGE_DICE 1 The number of dice used when calculating damage.
DAMAGE_DIE_SIZE 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_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
DOOR_STATE_####_XXXX_STATE none Sets the door's state to either "OPEN", "CLOSED", or "LOCKED".
DOOR_STATE_####_XXXX_MESSAGE_UNLOCKING No message Message sent to the room if the effect causes the door to unlock.
DOOR_STATE_####_XXXX_MESSAGE_OPENING No message Message sent to the room if the effect causes the door to open.
DOOR_STATE_####_XXXX_MESSAGE_CLOSING No message Message sent to the room if the effect causes the door to close.
DOOR_STATE_####_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_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_TWO_WAY 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
SPAWN_MOBILE_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.
SPAWN_MOBILE_####_DESTINATION -1 Destination room to spawn the mobiles. If unspecified or set to -1, the current room is used.
SPAWN_MOBILE_####_QUANTITY 1 Number of mobiles to spawn with this vnum. The current maximum value is 10.
SPAWN_MOBILE_####_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
SPAWN_OBJECT_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.
SPAWN_OBJECT_####_DESTINATION -1 Destination room to spawn the objects. If unspecified or set to -1, the current room is used.
SPAWN_OBJECT_####_QUANTITY 1 Number of objects to spawn with this vnum. The current maximum value is 10.
SPAWN_OBJECT_####_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_LOOK_AT_DESTINATION 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
ZONE_ALARM_STATE 1 Boolean value indicating whether the alarm should be set (1) or cleared (0).
ZONE_ALARM_ACTIVATE_MESSAGE_ROOM No message Message sent to the room when the alarm is activated.
ZONE_ALARM_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_INITIAL_CHARGES -1

setproc room 0 TRIGGER_TYPE Password
setproc room 0 PASSWORD_VALUE muhahaha

setproc room 0 EFFECTS_LIST Teleport
setproc room 0 EFFECTS_AFFECT_ROOM 1

setproc room 0 TELEPORT_DESTINATION 8000
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