XML:BINA/OBJC/PART

From OniGalore
< XML:BINA‎ | OBJC
Revision as of 14:45, 21 May 2009 by Paradox-01 (talk | contribs) (forgot update event)
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 commands depend on particle events

  • particle particle_name update
  • particle particle_name pulse
  • particle particle_name start
  • particle particle_name stop
  • particle particle_name bgfx_start
  • particle particle_name bgfx_stop
  • particle particle_name hit_wall
  • particle particle_name hit_char
  • particle particle_name lifetime
  • particle particle_name explode
  • particle particle_name brokenlink
  • particle particle_name create (create counts also as update event)
  • particle particle_name die
  • particle particle_name newattractor
  • particle particle_name delay_start
  • particle particle_name delay_stop


note about wannabe-damaging particle

Fire and gas particle alone are useless until you try inserting a damage effect right there. In original game it's made with a trigger volume.

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> :
(? = real meaning is unknown)
4 - ?, used by <Class>env_shinzom_sound</Class> <Tag>zombient</Tag>
5 - ?, used only once and that's in compound and it doesn't even work because the file is missing (<Class>env_sturm_sound</Class> <Tag>sturm_ambient</Tag>) but nevertheless used in the BSL file
7 - ?, used by yellow objective circles, mad bomber particle in level 3 bio lab, dish elavator red warning env_emlite_e01
12 - ?, used for non-animated particles (e.g. lamp lights, images and captions like the level 1 training room captions)
13 - ?, used for animated images (e.g. fire) and moving particles (e.g. falling snow, forcefield and compound dish particle)
15 - ?, used for <Class>objective_e01</Class> <Tag>fight</Tag> and <Class>env_splash_e02</Class> <Tag>OutroSplash</Tag>
  • <Decal>
<XScale> : (horizontal scaling; float value ("1" seems to show image in original size))
<YScale> : (vertical scaling; float value)