XML:BINA/OBJC/PART

From OniGalore
< XML:BINA‎ | OBJC
Revision as of 15:06, 13 December 2009 by Paradox-01 (talk | contribs) (cleaning up page)
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

fire_preview.png

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