User Tools

Site Tools


xg:triggers

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
xg:triggers [2017-03-20 06:41] – [Event types] skyjakexg:triggers [2019-11-26 08:59] (current) – [Trigger types flags] skyjake
Line 1: Line 1:
 +====== XG triggers ======
 +
 +An [[xg:line_type|Line Type]]'s [[xg:line_activation|activation type]] concerns the event(s) that lead to the //triggering// of the line's class.
 +
 +A trigger is made up of two parts: 
 +
 +  *  triggerer/object type (e.g. player, monster, missile etc)
 +  *  event type (e.g. cross, push etc)
 +
 +For instance, a player crossing a line is an event (player_cross) that could trigger an XG line. XG lines can be triggered by numerous different events (see below). It is also possible to assign multiple trigger events to an XG line and freely mix n' match activation/deactivation trigger events. 
 +
 +An example would be a switch that can be activated when shot as well as when the player "uses" it. Once triggered, a line's class //might// be executed depending on the line's "event type" (see below), the current "state" of the line (ie active/inactive) and the [[xg:activation requirements]].
 +
 +In order to function correctly an XG line definition **MUST** specify at least one trigger event and one function type. However, there is an exception to this rule. If no trigger events are defined then the line's class can **ONLY** be triggered remotely (eg by a line using the [[xg:class:chain_sequence|Chain Sequence]]).
 +
 +
 +===== Event types =====
 +
 +
 +The flags listed below are used to define the type of events that can activate and deactivate a line. Combining the flags is allowed so lines can be activated or deactivated by several kinds of events. The line can also be set to be activated with one type of event and deactivated with another one. 
 +
 +There are two versions of each flag, suffixed **_a** and **_d**. Using the former activates the line (providing it's inactive) when the event in question occurs. The latter does the opposite. A flag with no suffix contains both the **_a** and **_d** versions (in other words that event can activate and deactivate the line).
 +
 +To set the trigger event(s) and initial state within an Line Class definition use Flags e.g.:
 +  
 +  Flags = player_use_a | active
 +
 +
 +===== Initial state flags =====
 +
 +==== active ====
 +
 +
 +The line is initially active. If this flag is not set, the line is inactive after the map has been loaded.
 +
 +
 +===== Trigger types flags =====
 +
 +
 +<note>Chain trigger events are not affected by these flags.</note>
 +
 +  ; player_use
 +  : Use events from a player mobj can activate/deactivate the line.
 +  ; other_use
 +  : Use events from a mobj that is not a player can activate/deactivate the line.
 +  ; player_shoot
 +  : Shoot events (caused by impact weapons: fist, chainsaw, pistol, shotguns, chaingun) whose originator is a player can activate/deactivate the line.
 +  ; other_shoot
 +  : Shoot events (caused by impact weapons: fist, chainsaw, pistol, shotguns, chaingun) whose originator is not a player mobj can activate/deactivate the line.
 +  ; any_cross
 +  : Cross events (mobj origin crosses the line while moving) from any kind of mobj can activate/deactivate the line.
 +  ; monster_cross
 +  : Cross events (mobj origin crosses the line while moving)from mobjs that have the [[mf_countkill]] flag can activate/deactivate the line.
 +  ; player_cross
 +  : Cross events (mobj origin crosses the line while moving) from player mobjs can activate/deactivate the line.
 +  ; missile_cross
 +  : Cross events (mobj origin crosses the line while moving) from mobjs that have the [[mf_missile]] flag can activate/deactivate the line.
 +  ; player_hit
 +  : Hit events (line blocks mobj movement) from player mobjs can activate/deactivate the line.
 +  ; other_hit
 +  : Hit events (line blocks mobj movement) from non-player mobjs can activate/deactivate the line.
 +  ; monster_hit
 +  : Hit events (line blocks mobj movement) from mobjs that have the [[mf_countkill]] flag can activate/ deactivate the line.
 +  ; missile_hit
 +  : Hit events (line blocks mobj movement) from mobjs that have the [[mf_missile]] flag can activate/deactivate the line.
 +  ; any_hit 
 +  : Hit events (line blocks mobj movement) from any kind of mobj can activate/deactivate the line.
 +  ; ticker
 +  : This is special kind of activation. It is done remotely by Ticker events (can happen up to 35 times per second controlled by Ticker start time, Ticker end time and Ticker tics) can activate/deactivate the line.
  
xg/triggers.txt · Last modified: 2019-11-26 08:59 by skyjake