XML:BINA/OBJC/TRGV
Jump to navigation
Jump to search
BINA/OBJC/TRGV: trigger volumes (TV)
general information
- BINACJBOTrigger Volume.oni is level specific. (It can be found in edition/GameDataFolder/levelXX_... )
- See HERE if you don't know how to convert an oni file into XML and vice versa.
- See HERE if you are searching for more general information such as how to handle object coordinates.
XML structure
<?xml version="1.0" encoding="utf-8"?> <Oni Version="0.9.28.0"> <ObjectCollection> [...] </ObjectCollection> </Oni>
[...] means at least one trigger volumen. Paste all tv data into there (this includes <Object ...> and </Object> tag).
example
used BSL commands in screen shot:
|
<Object Id="8749" Type="TRGV"> <Header> <Flags>1</Flags> <Position>-651.5666 -298 -633.4166</Position> <Rotation>0 0 0</Rotation> </Header> <OSD> <Name>trigger_volume_46</Name> <Scripts> <Entry>train_block2</Entry> <Inside></Inside> <Exit>block_path</Exit> </Scripts> <Teams>255</Teams> <Size>46 31 46</Size> <TriggerVolumeId>46</TriggerVolumeId> <ParentId>0</ParentId> <Notes></Notes> <Flags>128</Flags> </OSD> </Object>
start + size = end - 651.5666 + 46 = -605.5666 = x_blue_line_end - 298 + 31 = -267 = y_blue_line_end - 633.4166 + 46 = -587.4166 = z_blue_line_end
tags
- <Flags> : (unknown)
- <Position> : (a volume corner)
- <Rotation> : (xyz-rataion in degrees)
- <Name> : (can have up to 63 characters)
- <Scripts> : (BSL functions; each can have up to 32 characters)
- <Entry> : (called up when character enters the TV)
- <Inside> : (called while character is inside the TV)
- (This one is triggered at every frame (60 times per second) unless the trigger-only-once flag is set. Continuous triggering is typically needed for fire or gas damage.)
- <Exit> : (called up when character leaves the TV)
- <Teams>
- 1 - Konoko
- 2 - TCTF
- 4 - Syndicate
- 8 - Neutral
- 16 - SecurityGuard
- 32 - RogueKonoko
- 64 - Switzerland
- 128 - SyndicateAccessory
- (every combination is possible)
- 255 - all teams (1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255)
- <Size> : (volume)
- <TriggerVolumeId> : (used by BSL command "trigvolume_corpse ID")
- <ParentId> : ...
- <Notes> : (space for 128 characters)
- <Flags>
- 1 - "entry" function called only once (otherwise called every time character enters the TV)
- 2 - "inside" function called only once (otherwise called at every frame while character is in the TV)
- 4 - "exit" function called only once (otherwise called every time character leaves the TV)
- 8 - "entry" function disabled (can be enabled with "trigvolume_enable tv_name entry 1")
- 16 - "inside" function disabled (can be enabled with "trigvolume_enable tv_name inside 1")
- 32 - "exit" function disabled (can be enabled with "trigvolume_enable tv_name exit 1")
- 64 - all 3 functions disabled (master switch, can be enabled with "trigvolume_enable tv_name all 1")
- 128 - only player characters can fire off the TV
Resetting the trigger volume
- trigvolume_reset(string tv_name) resets the TV to its preset state. The primary use of this is to re-enable "entry", "inside" or "exit" calls once the TV has been triggered (only necessary if the respective trigger-only-once flags are set of course). Note that some or all the TV functions are disabled at level load, you'll have to enable them manually after resetting the TV.