XML:BINA/OBJC/PART: Difference between revisions

From OniGalore
< XML:BINA‎ | OBJC
m (putting nav header parameters in more logical order)
No edit summary
 
Line 1: Line 1:
{{XML_OBJC_Header | prev=NEUT | type=PART | next=PATR | name=Particle}}
{{XML_OBJC_Header | prev=NEUT | type=PART | next=PATR | name=Particle}}


==General information==
* The XML on this page is based on OniSplit '''v0.9.61.0'''.
* BINACJBOParticle is level-specific (level''x''_Final.dat).


===general information===
==BSL support==
* The xml code on this page is based on onisplit '''v0.9.61.0'''
* '''BINACJBOParticle.oni''' is level specific. (It can be found in AE/AEInstaller/vanilla/level'''X'''_Final.dat)
 
 
===BSL support===
* http://ssg.oni2.net/commands.htm#dev-p3
* http://ssg.oni2.net/commands.htm#dev-p3


following command can kill different particle with same tag at once but only one of each, so don't double spawn
The following command kills a particle with a given name, but only the first one of that name, so don't double-spawn the particle:
* particle ''BSL_name'' kill (kill counts also as die event)
* particle ''BSL_name'' kill (kill counts also as die event)
following command reset particle
 
The following command resets a particle:
* particle ''BSL_name'' reset
* particle ''BSL_name'' reset
following commands depend on [[XML:BINA/PAR3#event_types|particle events]]
 
The following commands utilize the defined [[XML:BINA/PAR3#Event_types|particle events]].


{|class="wikitable" width="100%"
{|class="wikitable" width="100%"
Line 71: Line 71:
|}
|}


 
==Note about damaging particles==
===note about ''wannabe-damaging'' particle===
Damaging particles will make characters "flinch" no matter how little the damage. So particles are responsible for visualizing the danger and a trigger volume is responsible for dealing the damage.
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
  particle auto1fire start
Line 86: Line 85:
  }
  }


 
==File structure==
===file structure===
  <?xml version="1.0" encoding="utf-8"?>
  <?xml version="1.0" encoding="utf-8"?>
  <Oni>
  <Oni>
Line 95: Line 93:
  </Oni>
  </Oni>


'''''[...]''''' means at least one particle. Paste all particle data into there (this includes '''<font color="#0A0"><PART Id="..."></font>''' and '''<font color="#0A0"></PART></font>''' tag).
'''''[...]''''' means at least one particle. Paste all your particle data in there (this includes '''<font color="#0A0"><PART Id="..."></font>''' and '''<font color="#0A0"></PART></font>''' tag).


'''example'''
'''Example'''


[[Image:fire_particle.jpg|right|thumb]]
[[Image:fire_particle.jpg|right|thumb]]
Line 115: Line 113:
         '''<font color="#0A0"></PART></font>'''
         '''<font color="#0A0"></PART></font>'''


===tags===
==Tags==
* <Flags> : (unknown, usually empty)
* <Flags>: unknown, usually empty
* <Position> : (particle is created at this xyz-position)
* <Position>: particle is created at this XYZ position
* <Rotation> : (particle has xyz-rotation (in degrees))
* <Rotation>: particle has this XYZ rotation in degrees
* <Class> : (file name, can have up to 64 characters)
* <Class>: file name, can have up to 64 characters
* <Tag> : (name for BSL use, can have up to 48 characters)
* <Tag>: name for use in BSL, can have up to 48 characters
* <Flags> :
* <Flags>:
: NotInitiallyCreated
: NotInitiallyCreated
* <Decal> : (first comes X (horizontal) scaling (float value), then a space, then Y (vertical) scaling (float value); "1" seems to show image in original size which can be rather small in-game if actual decal file uses also a small scale)
* <Decal>: first comes the X (horizontal) scaling (float value), then a space, then the Y (vertical) scaling (float value); "1" seems to show the image at its original size, which can be rather small in-game if the actual decal file uses also a small scale


{{XML}}
{{XML}}

Latest revision as of 01:14, 3 April 2021

PART : Particle
XML modding tips
See HERE to start learning about XML modding.
See HERE if you are searching for information on how to handle object coordinates.
See HERE for some typical modding errors and their causes.
XML.png
XML

AKEV << Other file types >> CONS

TMBD << Other BINA >> ONIE

NEUT << Other OBJC >> PATR

switch to OBD page

General information

  • The XML on this page is based on OniSplit v0.9.61.0.
  • BINACJBOParticle is level-specific (levelx_Final.dat).

BSL support

The following command kills a particle with a given name, but only the first one of that name, so don't double-spawn the particle:

  • particle BSL_name kill (kill counts also as die event)

The following command resets a particle:

  • particle BSL_name reset

The following commands utilize the defined particle events.

BSL_name = <Tag> in BINACJBOParticle.xml / <Name> in ENVP
file_name = <Class> in BINACJBOParticle.xml / <ParticleClass> in ENVP
particle BSL_name update p3_callevent file_name 0
particle BSL_name pulse p3_callevent file_name 1
particle BSL_name start p3_callevent file_name 2
particle BSL_name stop p3_callevent file_name 3
particle BSL_name bgfx_start p3_callevent file_name 4
particle BSL_name bgfx_stop p3_callevent file_name 5
particle BSL_name hit_wall p3_callevent file_name 6
particle BSL_name hit_char p3_callevent file_name 7
particle BSL_name lifetime p3_callevent file_name 8
particle BSL_name explode p3_callevent file_name 9
particle BSL_name brokenlink p3_callevent file_name 10
particle BSL_name create (create counts also as update event) p3_callevent file_name 11
particle BSL_name die p3_callevent file_name 12
particle BSL_name newattractor p3_callevent file_name 13
particle BSL_name delay_start p3_callevent file_name 14
particle BSL_name delay_stop p3_callevent file_name 15

Note about damaging particles

Damaging particles will make characters "flinch" no matter how little the damage. So particles are responsible for visualizing the danger and a trigger volume is responsible 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);
}

File structure

<?xml version="1.0" encoding="utf-8"?>
<Oni>
   <Objects>
       [...]
   </Objects>
</Oni>

[...] means at least one particle. Paste all your particle data in there (this includes <PART Id="..."> and </PART> tag).

Example

Fire particle.jpg
       <PART Id="8463">
           <Header>
               <Flags></Flags>
               <Position>-1050 45 1610</Position>
               <Rotation>0 0 0</Rotation>
           </Header>
           <OSD>
               <Class>env_fire9_e01</Class>
               <Tag>auto1fire</Tag>
               <Flags>13</Flags>
               <DecalScale>1 1</DecalScale>
           </OSD>
       </PART>

Tags

  • <Flags>: unknown, usually empty
  • <Position>: particle is created at this XYZ position
  • <Rotation>: particle has this XYZ rotation in degrees
  • <Class>: file name, can have up to 64 characters
  • <Tag>: name for use in BSL, can have up to 48 characters
  • <Flags>:
NotInitiallyCreated
  • <Decal>: first comes the X (horizontal) scaling (float value), then a space, then the Y (vertical) scaling (float value); "1" seems to show the image at its original size, which can be rather small in-game if the actual decal file uses also a small scale