XML:BINA/OBJC/PART: Difference between revisions

From OniGalore
< XML:BINA‎ | OBJC
Jump to navigation Jump to search
m (really, I don't know why they used them, the flags looks pretty much dead)
m (cleaning up page)
Line 12: Line 12:
following command reset particle
following command reset particle
* particle ''particle_name'' reset
* particle ''particle_name'' reset
following commands depend on [[User:Paradox-01/for_WIP_pages#event_types|particle events]]
following commands depend on [[OBD_talk:BINA/PAR3#event_types|particle events]]
* particle ''particle_name'' update
 
* particle ''particle_name'' pulse
{|
* particle ''particle_name'' start
{{table}}
* particle ''particle_name'' stop
|width=50% | particle ''particle_name'' update
* particle ''particle_name'' bgfx_start
| p3_callevent ''particle_name'' 0
* particle ''particle_name'' bgfx_stop
|-
* particle ''particle_name'' hit_wall
| particle ''particle_name'' pulse
* particle ''particle_name'' hit_char
| p3_callevent ''particle_name'' 1
* particle ''particle_name'' lifetime
|-
* particle ''particle_name'' explode
| particle ''particle_name'' start
* particle ''particle_name'' brokenlink
| p3_callevent ''particle_name'' 2
* particle ''particle_name'' create (create counts also as update event)
|-
* particle ''particle_name'' die
| particle ''particle_name'' stop
* particle ''particle_name'' newattractor
| p3_callevent ''particle_name'' 3
* particle ''particle_name'' delay_start
|-
* particle ''particle_name'' delay_stop
| 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 <font color="#777777">(create counts also as update event)</font>
| 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
|}




Line 94: Line 129:
:: <XScale> : (horizontal scaling; float value ("1" seems to show image in original size))
:: <XScale> : (horizontal scaling; float value ("1" seems to show image in original size))
:: <YScale> : (vertical scaling; float value)
:: <YScale> : (vertical scaling; float value)
----
'''research notes'''
:: 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  -  not initially created and maybe something else
::: 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 - initially create and maybe something else
::: 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>
:Paradox, remember this is a bitset. So test each value 1, 2, 4, 8, 16(?)
:So...
:4 = 4 = ?
:5 = 4 + 1 = ?
:7 = 4 + 2 + 1 = ?
:12 = 8 + 4 = ?
:13 = 8 + 4 + 1 = ?
:15 = 8 + 4 + 2 + 1 = ?
:So...
:1 = ?
:2 = ?
:4 = ?
:8 = ?
:(: [[User:Gumby|Gumby]] 17:27, 22 May 2009 (UTC)
::Hmm...the BBB Dialog says that the only one that exists is NotInitiallyCreated. Not sure how accurate that is. :) [[User:Gumby|Gumby]] 17:40, 22 May 2009 (UTC)

Revision as of 15:06, 13 December 2009

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)