Table of Contents

Chain sequence (XG class)

Class = chain_sequence

A chain sequence can be used to chain many different line types (of any class) behind one line. For example, using a chain sequence it is possible to have a switch in your level that opens a door, dims the lights and lowers a lift all at the same time, or at timed intervals.

A special line class that sends chain events to a copy of itself while active. This allows lines that perform a timed sequence of actions. If the line is deactivated the processing of the chain sequence is stopped. Each of the chain events will be an activating event.

Parameters

Prm Name Type Meaning
Ip0 Chain Flags Flagschsf_done_d disables the line after the chain sequence has been completed.
chsf_loop makes the sequence loop continuously.
Ip1‚Ip2,…Ip19 Line Type 0…18 Integers List of chains. ID numbers of line types. A zero ends the list. For example: Ip1 = 1002 Ip2 = 1004 Ip3 = 1010
Fp0 Float Randomness of intervals, in percents. A value of 100 means the actual interval of two chains is 0%…200% of the defined interval.
Fp1‚Fp2,…Fp19 Floats List of intervals, in seconds. They define the number of seconds to wait before processing the corresponding Chain event. For example, if Fp1 is 2 and Ip1 is 5210, the chain 5210 is processed two seconds after the activation of the chain sequence. For example: Fp1 = 1.5 Fp2 = 3 Fp3 = 10.35

Example

Line Type {
  ID = 9000
  Class = chain_sequence
  Flags = player_cross
  Flags2 = when_act | any
  Time = -1
  Count = 1
  Chain Flags = done_d
  Line Type 0 = 9002
  Line Type 1 = 9003
  Line Type 2 = 0
  Fp1 = 1
  Fp2 = 3
}

The line can only be activated by the player crossing it (Flags = player_cross), the line can be triggered in any game mode, and any skill setting (Flags2 = any). The line carrys out it's effect when activated (Flags2 = when_act). Once activated it waits 1 second (Fp1 = 1) before sending a chain event to Line ID 9002 (Ip1). Then after three seconds (Fp2 = 3) it sends a chain event to Line ID 9003 (Ip2). There are now no more lines to be triggered (Ip3 = 0) so it waits till the lines it has triggered have finished whatever they are doing (Ip0 = done_d) before deactivating itself. The Line can only be activated once (Count = 1)