XML:BINA/OBJC/PART
Jump to navigation
Jump to search
general information
- BINACJBOParticle.oni is level specific. (It can be found in edition/GameDataFolder/levelXX_... )
BSL support
following command can kill different particle with same tag at once but only one of each, so don't double spawn
- particle particle_name kill (kill counts also as die event)
following command reset particle
- particle particle_name reset
following commands depend on particle events
particle particle_name update | p3_callevent particle_name 0 |
particle particle_name pulse | p3_callevent particle_name 1 |
particle particle_name start | p3_callevent particle_name 2 |
particle particle_name stop | p3_callevent particle_name 3 |
particle particle_name bgfx_start | p3_callevent particle_name 4 |
particle particle_name bgfx_stop | p3_callevent particle_name 5 |
particle particle_name hit_wall | p3_callevent particle_name 6 |
particle particle_name hit_char | p3_callevent particle_name 7 |
particle particle_name lifetime | p3_callevent particle_name 8 |
particle particle_name explode | p3_callevent particle_name 9 |
particle particle_name brokenlink | p3_callevent particle_name 10 |
particle particle_name create (create counts also as update event) | p3_callevent particle_name 11 |
particle particle_name die | p3_callevent particle_name 12 |
particle particle_name newattractor | p3_callevent particle_name 13 |
particle particle_name delay_start | p3_callevent particle_name 14 |
particle particle_name delay_stop | p3_callevent particle_name 15 |
note about wannabe-damaging particle
Damaging particles would make characters "flinch" no matter how little the damage. So, particle are responsible for visualizing the danger and a trigger volume for dealing the damage.
particle auto1fire start ### TV inside function func void fire_damage(string ai_name) { dprint fire_hurt_konoko ### ignore the "fire_hurt_konoko" ### all characters get damage because the TV is registered for all teams (255) ### ps: this damage cannot be absorbed by a shield chr_poison (ai_name, 5, 30, 30); }
XML structure
<?xml version="1.0" encoding="utf-8"?> <Oni Version="0.9.28.0"> <ObjectCollection> [...] </ObjectCollection> </Oni>
[...] means at least one particle. Paste all particle data into there (this includes <Object ...> and </Object> tag).
example
<Object Id="8463" Type="PART"> <Header> <Flags>0</Flags> <Position>-1050 45 1610</Position> <Rotation>0 0 0</Rotation> </Header> <OSD> <Class>env_fire9_e01</Class> <Tag>auto1fire</Tag> <Flags>13</Flags> <Decal> <XScale>1</XScale> <YScale>1</YScale> </Decal> </OSD> </Object>
tags
- <Flags> : (unknown, usually 0)
- <Position> : (particle is created at this xyz-position)
- <Rotation> : (particle has xyz-rotation (in degrees))
- <Class> : (file name, can have up to 64 characters)
- <Tag> : (name for BSL use, can have up to 48 characters)
- <Flags> :
- 1 - unknown, looks dead
- 2 - not initially created
- 4 - unknown, looks dead, might have been sound related in the past
- 8 - unknown, looks dead
- <Decal>
- <XScale> : (horizontal scaling; float value ("1" seems to show image in original size))
- <YScale> : (vertical scaling; float value)