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_... )
- 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.
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)