Trigger event

From Blood Wiki
(Difference between revisions)
Jump to: navigation, search
m
 
(41 intermediate revisions by one user not shown)
Line 1: Line 1:
Trigger event (verb ''to trigger'') is most useful event. It allows interaction between many game aspects.
+
{{TOCRIGHT}}
 +
Trigger event (verb '''''to trigger''''') is most useful event. It allows interaction between game objects.
  
It happens when trigger get touched, on monster dies, each object can have it's own behavior and launch trigger event under it's own circumstances.
+
Many entities can trigger other entities, or be triggered. For example you could open and close a door with a button, so here the button triggers the door. Not only buttons can trigger things, for example enemy could trigger a door when dies.
  
But structure of event is same all the time.
+
In Blood Omnicide, trigger event can have custom instructions which is used to control the way entities react to the event.  
  
=== Event input ===
+
===Event input===
  
 
* self - entity trigger event is being processed on
 
* self - entity trigger event is being processed on
Line 11: Line 12:
 
* parameters - instructions for trigger event, fetched from "targetparm" field of self.
 
* parameters - instructions for trigger event, fetched from "targetparm" field of self.
  
=== Event rules ===
+
===Event rules===
  
 
* Instructions are case insensative
 
* Instructions are case insensative
 +
* Instruction keywords are separated by space and TAB (except for braces)
 
* ';' is the separator between instructions
 
* ';' is the separator between instructions
* If trigger instructions not begin with "SELECT ", "SELECT TARGETS;" is automatically added
+
* If trigger instructions not begin with "SELECT ", scripts automatically executes "SELECT TARGETS" at beginning.
 
* Empty instructions defaults to "SELECT TARGETS;CALL"
 
* Empty instructions defaults to "SELECT TARGETS;CALL"
  
= Instructions =
+
==Instructions==
  
{| width=85% cellspacing=0 cellpadding=4 border=1 style="border-collapse: collapse"
+
'''SELECT/ADD'''
! width=2% | Order
+
:Starts (select) or expands (add) selection of [[Entity | entities]].
! width=10% | Syntax
+
:* SELECT TARGETS - select entity to which i'm targeted
! width=88% | Description
+
:* SELECT TARGETERS - select entities which are targeted to me
|-
+
:* SELECT BYID ''<id1> <id2> <id3> ... <idX>'' - select entities by their save id's
| align=center | 1
+
:* SELECT BYTARGETNAME ''<targetname1> <targetname2> ... <targetnameX>'' - select entities by their targetnames
| SELECT/ADD
+
| Starts (select) and expands (add) selection of [[Entity | entities]], which will be called.
+
  
* SELECT TARGETS - select entity to which i'm targeted
+
'''INFOPORTION ''OPERATOR'''''
* SELECT TARGETERS - select entities which are targeted to me
+
:Manipulate [[Infoportions | infoportions]] on activator:
* SELECT BYID ''<id1> <id2> <id3> ... <idX>'' - select entities by their save id's
+
:* '''INFO SET''' ''infoportion'' - add/update infoportion
* SELECT BYTARGETNAME ''<targetname1> <targetname2> ... <targetnameX>'' - select entities by their save id's
+
:* '''INFO DEL''' ''infoportion'' - delete infoportion
|-
+
:* '''INFO INC''' ''infoportion'' ''increase_by'' - increase infoportion value by 1 or by custom value (of presented)
| align=center | 2
+
:* '''INFO DEC''' ''infoportion'' ''decrease_by'' - increase infoportion value by 1 or by custom value (of presented)
| INFOPORTION <OPERATOR>
+
| Manipulate [[Infoportion | infoportions]] on activator.
+
  
* INFOPORTION SET ''infoportion'' - add/update infoportion
+
'''CALL'''
* INFOPORTION DEL ''infoportion'' - delete infoportion
+
:This triggers all selected entities with their default action.
* INFOPORTION INC ''infoportion'' ''[increase_by]'' - increase infoportion value by 1 or by custom value (of presented)
+
:Can prefix this instruction with <classname:>. In this case trigger event will only be processed on entities with matching class name.
* INFOPORTION DEC ''infoportion'' ''[decrease_by]'' - increase infoportion value by 1 or by custom value (of presented)
+
:Examples:
|-
+
::select targets;effect_light:call
| align=center | 3
+
::select byid 145;call
| CALL
+
| This triggers all selected entities with their default action.
+
  
Can prefix this instruction with <classname:>. In this case trigger event will only be processed on entities with matching class name.
+
'''''CUSTOM ACTION'''''
 +
:One of object's supported custom trigger actions. Classname filter is supported.
 +
:Examples:
 +
::select targets;effect_light:on
 +
::select byid 145;trigger_puzzle:toggle 2 1 3
  
Examples:
+
'''BREAK or NOCALL'''
 +
:Immediately exit trigger event.
  
select targets;effect_light:call
+
==Event keys==
  
select byid 145;call
+
Trigger event have general keys that is used for it.
|-
+
| align=center | 4
+
| <CUSTOM ACTION>
+
| One of object's supported custom trigger actions. Classname filter is supported.
+
  
Examples:
+
Sometimes this keys are used by other kind of events too. This special behavior (if presented) is defined in particular class reference.
  
select targets;effect_light:on
+
{{entity fields}}
 
+
select byid 145;trigger_puzzle:toggle 2 1 3
+
|-
+
| align=center | 5
+
| BREAK or NOCALL
+
| Immediately exit trigger event.
+
|}
+
 
+
= Event keys =
+
 
+
Trigger event have general keys that is used for it, sometimes this keys are used by other kind of events too. This special behavior is defined in particular class reference.
+
 
+
{| cellspacing=0 cellpadding=5 border=1 style="border-collapse: collapse"
+
! width=10% | Name
+
! width=10% | Key
+
! width=70% | Description
+
! width=10% | Default value
+
|-
+
| colspan=3 | '''Common item keys'''
+
 
|-
 
|-
 
| Target
 
| Target
 
| target
 
| target
| This entity till be triggered when item is picked.
+
| All entities with matching targetname will be triggered.
 
|-
 
|-
 
| Target parameters
 
| Target parameters
 
| targetparm
 
| targetparm
| Instructions for trigger event; Type "nocall" here to disable trigger event.
+
| When entity is triggered, this is instructions for trigger event (see instructions above);
 
|-
 
|-
 
| Targetname
 
| Targetname
 
| targetname
 
| targetname
| If set, item becomes hidden and got spawned when triggered. If target is set, item will perform spawn move from the center of it's targeter.
+
| Entities with matching target will trigger this entity.
|}
+
{{entity fields end}}
 +
 
 +
== See also ==
 +
* [[Pattern script]]
 +
 
 +
{{finished}}

Latest revision as of 04:19, 23 November 2012

Contents

Trigger event (verb to trigger) is most useful event. It allows interaction between game objects.

Many entities can trigger other entities, or be triggered. For example you could open and close a door with a button, so here the button triggers the door. Not only buttons can trigger things, for example enemy could trigger a door when dies.

In Blood Omnicide, trigger event can have custom instructions which is used to control the way entities react to the event.

[edit] Event input

  • self - entity trigger event is being processed on
  • activator - who lets event go (usually player)
  • parameters - instructions for trigger event, fetched from "targetparm" field of self.

[edit] Event rules

  • Instructions are case insensative
  • Instruction keywords are separated by space and TAB (except for braces)
  • ';' is the separator between instructions
  • If trigger instructions not begin with "SELECT ", scripts automatically executes "SELECT TARGETS" at beginning.
  • Empty instructions defaults to "SELECT TARGETS;CALL"

[edit] Instructions

SELECT/ADD

Starts (select) or expands (add) selection of entities.
  • SELECT TARGETS - select entity to which i'm targeted
  • SELECT TARGETERS - select entities which are targeted to me
  • SELECT BYID <id1> <id2> <id3> ... <idX> - select entities by their save id's
  • SELECT BYTARGETNAME <targetname1> <targetname2> ... <targetnameX> - select entities by their targetnames

INFOPORTION OPERATOR

Manipulate infoportions on activator:
  • INFO SET infoportion - add/update infoportion
  • INFO DEL infoportion - delete infoportion
  • INFO INC infoportion increase_by - increase infoportion value by 1 or by custom value (of presented)
  • INFO DEC infoportion decrease_by - increase infoportion value by 1 or by custom value (of presented)

CALL

This triggers all selected entities with their default action.
Can prefix this instruction with <classname:>. In this case trigger event will only be processed on entities with matching class name.
Examples:
select targets;effect_light:call
select byid 145;call

CUSTOM ACTION

One of object's supported custom trigger actions. Classname filter is supported.
Examples:
select targets;effect_light:on
select byid 145;trigger_puzzle:toggle 2 1 3

BREAK or NOCALL

Immediately exit trigger event.

[edit] Event keys

Trigger event have general keys that is used for it.

Sometimes this keys are used by other kind of events too. This special behavior (if presented) is defined in particular class reference.

Key Description Default value
Target target All entities with matching targetname will be triggered.
Target parameters targetparm When entity is triggered, this is instructions for trigger event (see instructions above);
Targetname targetname Entities with matching target will trigger this entity.

[edit] See also

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox