XML:BINA/OBJC/PART: Difference between revisions
Jump to navigation
Jump to search
Paradox-01 (talk | contribs) m (cleaning up page) |
No edit summary |
||
(10 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{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). | |||
==BSL support== | |||
* http://ssg.oni2.net/commands.htm#dev-p3 | * http://ssg.oni2.net/commands.htm#dev-p3 | ||
following command | 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 '' | * particle ''BSL_name'' kill (kill counts also as die event) | ||
The following command resets a particle: | |||
{ | * particle ''BSL_name'' reset | ||
|width=50% | | |||
| | The following commands utilize the defined [[XML:BINA/PAR3#Event_types|particle events]]. | ||
{|class="wikitable" width="100%" | |||
|width=50%| | |||
: <font color="#777777">BSL_name = <Tag> in BINACJBOParticle.xml / <Name> in [[XML:ENVP|ENVP]]</font> | |||
| | |||
: <font color="#777777">file_name = <Class> in BINACJBOParticle.xml / <ParticleClass> in [[XML:ENVP|ENVP]]</font> | |||
|- | |- | ||
| particle '' | | particle ''BSL_name'' update | ||
| p3_callevent '' | | p3_callevent ''file_name'' 0 | ||
|- | |- | ||
| particle '' | | particle ''BSL_name'' pulse | ||
| p3_callevent '' | | p3_callevent ''file_name'' 1 | ||
|- | |- | ||
| particle '' | | particle ''BSL_name'' start | ||
| p3_callevent '' | | p3_callevent ''file_name'' 2 | ||
|- | |- | ||
| particle '' | | particle ''BSL_name'' stop | ||
| p3_callevent '' | | p3_callevent ''file_name'' 3 | ||
|- | |- | ||
| particle '' | | particle ''BSL_name'' bgfx_start | ||
| p3_callevent '' | | p3_callevent ''file_name'' 4 | ||
|- | |- | ||
| particle '' | | particle ''BSL_name'' bgfx_stop | ||
| p3_callevent '' | | p3_callevent ''file_name'' 5 | ||
|- | |- | ||
| particle '' | | particle ''BSL_name'' hit_wall | ||
| p3_callevent '' | | p3_callevent ''file_name'' 6 | ||
|- | |- | ||
| particle '' | | particle ''BSL_name'' hit_char | ||
| p3_callevent '' | | p3_callevent ''file_name'' 7 | ||
|- | |- | ||
| particle '' | | particle ''BSL_name'' lifetime | ||
| p3_callevent '' | | p3_callevent ''file_name'' 8 | ||
|- | |- | ||
| particle '' | | particle ''BSL_name'' explode | ||
| p3_callevent '' | | p3_callevent ''file_name'' 9 | ||
|- | |- | ||
| particle '' | | particle ''BSL_name'' brokenlink | ||
| p3_callevent '' | | p3_callevent ''file_name'' 10 | ||
|- | |- | ||
| particle '' | | particle ''BSL_name'' create <font color="#777777">(create counts also as update event)</font> | ||
| p3_callevent '' | | p3_callevent ''file_name'' 11 | ||
|- | |- | ||
| particle '' | | particle ''BSL_name'' die | ||
| p3_callevent '' | | p3_callevent ''file_name'' 12 | ||
|- | |- | ||
| particle '' | | particle ''BSL_name'' newattractor | ||
| p3_callevent '' | | p3_callevent ''file_name'' 13 | ||
|- | |- | ||
| particle '' | | particle ''BSL_name'' delay_start | ||
| p3_callevent '' | | 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. | |||
Damaging particles | |||
particle auto1fire start | particle auto1fire start | ||
Line 81: | Line 85: | ||
} | } | ||
==File structure== | |||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
<Oni | <Oni> | ||
< | <Objects> | ||
'''''[...]''''' | '''''[...]''''' | ||
</ | </Objects> | ||
</Oni> | </Oni> | ||
'''''[...]''''' means at least one particle. Paste all particle data | '''''[...]''''' 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''' | |||
[[Image:fire_particle.jpg|right|thumb]] | |||
'''<font color="#0A0"><PART Id="8463"></font>''' | |||
'''<font color="#0A0">< | |||
<Header> | <Header> | ||
<Flags> | <Flags></Flags> | ||
<Position>-1050 45 1610</Position> | <Position>-1050 45 1610</Position> | ||
<Rotation>0 0 0</Rotation> | <Rotation>0 0 0</Rotation> | ||
Line 108: | Line 109: | ||
<Tag>auto1fire</Tag> | <Tag>auto1fire</Tag> | ||
<Flags>13</Flags> | <Flags>13</Flags> | ||
< | <DecalScale>1 1</DecalScale> | ||
</OSD> | </OSD> | ||
'''<font color="#0A0"></ | '''<font color="#0A0"></PART></font>''' | ||
==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 | |||
{{XML}} | |||
Latest revision as of 01:14, 3 April 2021
PART : Particle | ||
---|---|---|
XML
AKEV << Other file types >> CONS TMBD << Other BINA >> ONIE NEUT << Other OBJC >> PATR |
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.
|
|
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
<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