XML:BINA/OBJC/TRIG: Difference between revisions
Paradox-01 (talk | contribs) mNo edit summary |
Paradox-01 (talk | contribs) mNo edit summary |
||
Line 44: | Line 44: | ||
'''XML structure''' | '''XML structure''' | ||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
<Oni | <Oni> | ||
< | <Objects> | ||
'''''[...]''''' | '''''[...]''''' | ||
</ | </Objects> | ||
</Oni> | </Oni> | ||
'''''[...]''''' means at least one trigger. Paste all trigger data into there (this includes '''<font color="#0A0">< | '''''[...]''''' means at least one trigger. Paste all trigger data into there (this includes '''<font color="#0A0"><TRIG Id="..."></font>''' and '''<font color="#0A0"></TRIG></font>''' tag). | ||
'''example''' | '''example''' | ||
Line 58: | Line 58: | ||
|} | |} | ||
'''<font color="#0A0">< | '''<font color="#0A0"><TRIG Id="8136"></font>''' | ||
<Header> | <Header> | ||
<Flags> | <Flags></Flags> | ||
<Position>-445 68 -1362</Position> | <Position>-445 68 -1362</Position> | ||
<Rotation>270 8.65141646E-06 180.000015</Rotation> | <Rotation>270 8.65141646E-06 180.000015</Rotation> | ||
Line 75: | Line 75: | ||
<Offset_0077>0</Offset_0077> | <Offset_0077>0</Offset_0077> | ||
<Events> | <Events> | ||
<Script Function="calling_this_BSL_function" /> | |||
<ActivateTurret TargetId="1" /> | <ActivateTurret TargetId="1" /> | ||
<DeactivateTurret TargetId="2" /> | |||
<ActivateConsole TargetId="3" /> | |||
<DeactivateConsole TargetId="4" /> | |||
<ActivateAlarm TargetId="5" /> | |||
<DeactivateAlaram TargetId="6" /> | |||
<ActivateTrigger TargetId="7" /> | |||
<DeactivateTrigger TargetId="8" /> | |||
<LockDoor TargetId="9" /> | |||
<UnlockDoor TargetId="10" /> | |||
</Events> | </Events> | ||
</OSD> | </OSD> | ||
'''<font color="#0A0"></ | '''<font color="#0A0"></TRIG></font>''' | ||
'''tags''' | '''tags''' | ||
Line 117: | Line 127: | ||
:* <DeactivateTurret TargetId="Id" /> | :* <DeactivateTurret TargetId="Id" /> | ||
:* <ActivateConsole TargetId="Id" /> | :* <ActivateConsole TargetId="Id" /> | ||
:* <DeactivateConsole TargetId="Id" / | :* <DeactivateConsole TargetId="Id" /> | ||
:* <ActivateAlarm TargetId="Id" /> | :* <ActivateAlarm TargetId="Id" /> | ||
:* <DeactivateAlaram TargetId="Id" /> | :* <DeactivateAlaram TargetId="Id" /> | ||
Line 123: | Line 133: | ||
:* <DeactivateTrigger TargetId="Id" /> | :* <DeactivateTrigger TargetId="Id" /> | ||
:* <LockDoor TargetId="Id" /> | :* <LockDoor TargetId="Id" /> | ||
:* <UnlockDoor TargetId="Id" / | :* <UnlockDoor TargetId="Id" /> | ||
:: (You can have more than one and different event types at same time.) | :: (You can have more than one and different event types at same time.) | ||
'''laser movements''' | |||
The hardest part in setting up triggers was pointing them in the correct direction. After much testing here are the Rotation numbers for each direction. - EdT | |||
http://edt.oni2.net/Lair_Tutorial/Triggerface0.jpg | |||
Laser Direction 0<br> | |||
<Rotation>0 90 0</Rotation> Moves left of position<br> | |||
<Rotation>180 90 0</Rotation> Moves right of position<br> | |||
<Rotation>270 90 0</Rotation>Moves above position<br> | |||
<Rotation>90 90 0</Rotation> Moves below position | |||
Laser Direction 90<br> | |||
<Rotation>0 180 0</Rotation> Moves left of position<br> | |||
<Rotation>180 180 0</Rotation> Moves right of position<br> | |||
<Rotation>270 180 0</Rotation>Moves above position<br> | |||
<Rotation>90 180 0</Rotation> Moves below position | |||
Laser Direction 180<br> | |||
<Rotation>0 270 0</Rotation> Moves left of position<br> | |||
<Rotation>180 270 0</Rotation> Moves right of position<br> | |||
<Rotation>270 270 0</Rotation>Moves above position<br> | |||
<Rotation>90 270 0</Rotation> Moves below position<br> | |||
Laser Direction 270<br> | |||
<Rotation>0 0 0</Rotation> Moves left of position<br> | |||
<Rotation>180 0 0</Rotation> Moves right of position<br> | |||
<Rotation>270 0 0</Rotation>Moves above position<br> | |||
<Rotation>90 0 0</Rotation> Moves below position |
Revision as of 10:52, 12 September 2011
general notes
- BINACJBOTrigger.oni is level specific. (It can be found in edition/GameDataFolder/levelXX_... )
BSL support
command | description | example |
---|---|---|
marketing_line_off | turns the laser line off | marketing_line_off = 1 |
trig_activate trigger_id:int | activates a trigger | trig_activate 2 |
trig_deactivate trigger_id:int | deactivates a trigger | trig_deactivate 2 |
trig_hide trigger_id:int | hides a trigger, disables also laser | trig_hide 91 |
trig_show trigger_id:int | shows a trigger | trig_show 91 |
trig_speed trigger_id:int volume:float | sets a triggers speed | trig_speed 514 .15 |
trig_reset trigger_id:int | resets a trigger to non-triggered state | trig_reset 91 |
XML structure
<?xml version="1.0" encoding="utf-8"?> <Oni> <Objects> [...] </Objects> </Oni>
[...] means at least one trigger. Paste all trigger data into there (this includes <TRIG Id="..."> and </TRIG> tag).
example
<TRIG Id="8136"> <Header> <Flags></Flags> <Position>-445 68 -1362</Position> <Rotation>270 8.65141646E-06 180.000015</Rotation> </Header> <OSD> <Class>trigger_long</Class> <TriggerId>1</TriggerId> <Flags>44</Flags> <LaserColor>0 0 255</LaserColor> <StartPosition>0</StartPosition> <Speed>0</Speed> <EmitterCount>3</EmitterCount> <Offset_0075>0</Offset_0075> <Offset_0077>0</Offset_0077> <Events> <Script Function="calling_this_BSL_function" /> <ActivateTurret TargetId="1" /> <DeactivateTurret TargetId="2" /> <ActivateConsole TargetId="3" /> <DeactivateConsole TargetId="4" /> <ActivateAlarm TargetId="5" /> <DeactivateAlaram TargetId="6" /> <ActivateTrigger TargetId="7" /> <DeactivateTrigger TargetId="8" /> <LockDoor TargetId="9" /> <UnlockDoor TargetId="10" /> </Events> </OSD> </TRIG>
tags
- <Flags> : unknown
- <Position> : (trigger is spawned at this xyz-position)
- <Rotation> : (trigger has xyz-rotation (in degrees))
- <Class>
- trigger_arc
- trigger_circle
- trigger_evilbrain
- trigger_long
- trigger_long4x
- trigger_long4xzag
- trigger_rectangle
- trigger_sb3A
- trigger_sb3B
- trigger_short
- (link by name to the TRIG instance (trigger class), which holds the M3GM of the rail and links to TRGE (laser emitter class) and OBAN (animation of the emitters))
- (Screenshot of each would be good.)
- <TriggerId> : (used by BSL commands)
- <Flags> :
- 4 - active?
- 8 - initial active
- 10 - reverse
- 20 - pingpong
- 40 - unknown
- 80 - unknown
- <LaserColor> : (RGB range, e.g. <LaserColor>255 0 77</LaserColor>)
- <StartPosition> : (float value; start position of the trigger in the rail; range from 0 (bottom) to 1 (top) in connection to the spawn point of the trigger (spawn point = bottom))
- <Speed> : (float value; reference: 0 means no movement, 1 is slow, and 2 is fast)
- <EmitterCount> : (number of laser emitters in one trigger rail)
- <Offset_0075> : (laser is on for a number of frames you set here)
- <Offset_0077> : (laser is off for a nubmer of frames you set here)
- (example: when you set 360 (at offset 0x75) and 120 (at offset 0x77) then the laser gets disabled after 6 seconds for 2 seconds, then loops; note that the laser will be off all if you set 0x75 to 0 and 0x77 to a number bigger than 0)
- <Events>
- <Script Function="calling_this_BSL_function" />
- <ActivateTurret TargetId="Id" />
- <DeactivateTurret TargetId="Id" />
- <ActivateConsole TargetId="Id" />
- <DeactivateConsole TargetId="Id" />
- <ActivateAlarm TargetId="Id" />
- <DeactivateAlaram TargetId="Id" />
- <ActivateTrigger TargetId="Id" />
- <DeactivateTrigger TargetId="Id" />
- <LockDoor TargetId="Id" />
- <UnlockDoor TargetId="Id" />
- (You can have more than one and different event types at same time.)
laser movements
The hardest part in setting up triggers was pointing them in the correct direction. After much testing here are the Rotation numbers for each direction. - EdT
Laser Direction 0
<Rotation>0 90 0</Rotation> Moves left of position
<Rotation>180 90 0</Rotation> Moves right of position
<Rotation>270 90 0</Rotation>Moves above position
<Rotation>90 90 0</Rotation> Moves below position
Laser Direction 90
<Rotation>0 180 0</Rotation> Moves left of position
<Rotation>180 180 0</Rotation> Moves right of position
<Rotation>270 180 0</Rotation>Moves above position
<Rotation>90 180 0</Rotation> Moves below position
Laser Direction 180
<Rotation>0 270 0</Rotation> Moves left of position
<Rotation>180 270 0</Rotation> Moves right of position
<Rotation>270 270 0</Rotation>Moves above position
<Rotation>90 270 0</Rotation> Moves below position
Laser Direction 270
<Rotation>0 0 0</Rotation> Moves left of position
<Rotation>180 0 0</Rotation> Moves right of position
<Rotation>270 0 0</Rotation>Moves above position
<Rotation>90 0 0</Rotation> Moves below position