XML:BINA/OBJC/TRGV: Difference between revisions

From OniGalore
< XML:BINA‎ | OBJC
Jump to navigation Jump to search
(Created page with '=BINA/OBJC/TRGV: trigger volumes (TV)= '''general information''' * '''BINACJBOTrigger Volume.oni''' is level specific. (It can be found in edition/GameDat...')
 
mNo edit summary
Line 1: Line 1:
=[[OBD:BINA/OBJC/TRGV|BINA/OBJC/TRGV]]: trigger volumes (TV)=
=[[OBD:BINA/OBJC/TRGV|BINA/OBJC/TRGV]]: trigger volumes (TV)=
{{Template:XMLModdingHints}}


'''general information'''
'''general information'''
* '''BINACJBOTrigger Volume.oni''' is level specific. (It can be found in edition/GameDataFolder/level''XX''_... )
* '''BINACJBOTrigger Volume.oni''' is level specific. (It can be found in edition/GameDataFolder/level''XX''_... )
* See [[XML basic tutorial|HERE]] if you don't know how to convert an oni file into XML and vice versa.
* See [[OBD_talk:BINA/OBJC|HERE]] if you are searching for more general information such as how to handle object coordinates.





Revision as of 12:04, 7 August 2011

BINA/OBJC/TRGV: trigger volumes (TV)

Template:XMLModdingHints

general information

  • BINACJBOTrigger Volume.oni is level specific. (It can be found in edition/GameDataFolder/levelXX_... )


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

trigger_volume_preview.jpg

used BSL commands in screen shot:

  • debug_triggers = 1
  • chr_nocollision 0 1
  • chr_debug_characters = 1
  • chr_location 0 x y z
       <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.