XML:BINA/OBJC/DOOR: Difference between revisions
Jump to navigation
Jump to search
Paradox-01 (talk | contribs) m (never noticed that ssg even listed the locklights) |
Paradox-01 (talk | contribs) mNo edit summary |
||
(17 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
= | {{XML_OBJC_Header | prev=CONS| type=DOOR | next=FLAG | name=Door}} | ||
==General information== | |||
* The XML on this page was tested with OniSplit version 0.9.61.0 and 0.9.82.0. | |||
* A BINACJBODOOR is level-specific (level''x''_Final.dat). | |||
* All original doors and their locklights can be seen [http://ssg.oni2.net/subfold/doors/doors.htm HERE]. | |||
==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 door. Paste all your door data into there (this includes the '''<font color="#0A0"><DOOR Id="..."></font>'''/'''<font color="#0A0"></DOOR></font>''' tag). | |||
==Example== | |||
For level import via [[XML:ONLV|XML master file]], use a pre-compiled (*.oni) file as part of a relative file path, e.g. '''doors/wh_door1dbl.oni''' | |||
'''<font color="#0A0"><DOOR Id="7233"></font>''' | |||
<Header> | |||
<Flags>Gunk</Flags> | |||
<Position>-652 0 -753</Position> | |||
<Rotation>0 0 0</Rotation> | |||
</Header> | |||
<OSD> | |||
'''<Class>wh_door1dbl</Class>''' | |||
<DoorId>1</DoorId> | |||
<KeyId>0</KeyId> | |||
<Flags>InitialLocked InDoorFrame DoubleDoor</Flags> | |||
<nowiki><Center>-652 16.5 -753</Center></nowiki> | |||
<SquaredActivationRadius>900</SquaredActivationRadius> | |||
<Texture1></Texture1> | |||
<Texture2></Texture2> | |||
<Events> | |||
<ActivateTurret TargetId="1" /> | |||
</Events> | |||
</OSD> | |||
'''<font color="#0A0"></DOOR></font>''' | |||
==Tags== | |||
{| class="wikitable" width=100% | |||
!width=280px| Tag | |||
!width=60px| Type | |||
! Description | |||
|- | |||
| <Objects> | |||
| - | |||
| | |||
|- | |||
| <DOOR Id="..."> | |||
| int32 | |||
| Use any number; no need to for it be unique. — For level imports, use <Door>. | |||
|- | |||
| <Header> | |||
| - | |||
| | |||
|- | |||
| <Flags> | |||
| flag | |||
| Object flags. Used during development, ignore them. — Optional tag for level import. | |||
|- | |||
| <Position> | |||
| float x3 | |||
| XYZ position. For new doors, use a Y of 0 if the ground plane is 0. — Optional tag for level import, but should be used in any case. | |||
func | |- | ||
| <Rotation> | |||
| float x3 | |||
| XYZ rotation. "chr_debug_characters = 1" shows the player's facing, which can be used for door's Y value. X and Z should be 0. — Optional tag for level import. | |||
|- | |||
| <OSD> | |||
| - | |||
| | |||
|- | |||
|valign="top"| <Class> | |||
|valign="top"| char[63] | |||
| <font color="#777777">DOOR</font>file<font color="#777777">.oni</font> <font color="#777777">(don't use file prefix/suffix)</font> For level import via [[XML:ONLV|XML master file]], use a pre-compiled (*.oni) file as part of a relative file path, e.g. '''doors/TCdouble.oni''' | |||
|- | |||
| <DoorId> | |||
| int16 | |||
| Can be used with [http://ssg.oni2.net/commands.htm#door BSL commands]. — Optional tag for level import but should be used in any case. | |||
|- | |||
| <KeyId> | |||
| int16 | |||
| Ignore it. — Optional tag for level import. | |||
|- | |||
|valign="top"| <Flags> | |||
|valign="top"| flag | |||
| Optional tag for level import. | |||
: None | |||
: InitialLocked | |||
:: Door is initially locked (at level load or after calling reset_mechanics) | |||
: InDoorFrame | |||
:: ? (no visible effect) | |||
: Manual | |||
:: Require player to press action key to open door | |||
: DoubleDoor | |||
:: A door with two parts | |||
: Mirror | |||
:: Mirrors door along its Z axis | |||
: OneWay | |||
:: One side locked, other side unlocked | |||
: Reverse | |||
:: One side unlocked, other side locked | |||
: Jammed | |||
:: Freeze door (can't open/close) | |||
: InitialOpen | |||
|- | |||
|valign="top"| <nowiki><Center></nowiki> | |||
|valign="top"| float x3 | |||
| X Y Z. <nowiki><Center></nowiki> Y is usually 15 units above door's <Position> Y. — Optional tag for level import, but should be used in any case. | |||
|- | |||
|valign="top"| <SquaredActivationRadius> | |||
|valign="top"| float | |||
| Optional tag for level import; default value is 900. | |||
|- | |||
|valign="top"| <Texture1> | |||
|valign="top"| char[63] | |||
| <font color="#777777">TXMP</font>file<font color="#777777">.oni</font> <font color="#777777">(don't use file prefix/suffix)</font> Used to replaces the doors default texture coming with the M3GM. — Optional tag for level import. | |||
'''Use a capitalized file name for this TXMP.''' | |||
|- | |||
| <Texture2> | |||
| char[63] | |||
| <font color="#777777">TXMP</font>file<font color="#777777">.oni</font> <font color="#777777">(don't use file prefix/suffix)</font> Can be used with double doors. — Optional tag for level import. | |||
'''Use a capitalized file name for this TXMP.''' | |||
|- | |||
| <Events> | |||
| int16 | |||
| You can use multiple events. — Optional tag for level import. | |||
|- | |||
|valign="top"| <Script Function="call_this_BSL_function" /> | |||
|valign="top"| char[32] | |||
| Name of BSL function. For example if you use "call_this_BSL_function" here, then write in your BSL script: | |||
''func call_this_BSL_function | |||
{ | { | ||
dmsg "hi" | |||
}'' | |||
|- | |||
| <ActivateTurret TargetId="''Id''" /> | |||
| int16 | |||
| | |||
''' | |- | ||
| <DeactivateTurret TargetId="''Id''" /> | |||
| int16 | |||
| | |||
|- | |||
| <ActivateConsole TargetId="''Id''" /> | |||
| int16 | |||
| | |||
|- | |||
| <DeactivateConsole TargetId="''Id''" /> | |||
| int16 | |||
| | |||
|- | |||
| <ActivateAlarm TargetId="''Id''" /> | |||
| int16 | |||
| | |||
|- | |||
| <DeactivateAlaram TargetId="''Id''" /> | |||
| int16 | |||
| | |||
|- | |||
| <ActivateTrigger TargetId="''Id''" /> | |||
| int16 | |||
| | |||
|- | |||
| <DeactivateTrigger TargetId="''Id''" /> | |||
| int16 | |||
| | |||
|- | |||
| <LockDoor TargetId="''Id''" /> | |||
| int16 | |||
| | |||
|- | |||
| <UnlockDoor TargetId="''Id''" /> | |||
| int16 | |||
| | |||
|} | |||
{{XML}} | |||
Latest revision as of 15:54, 12 May 2024
DOOR : Door | ||
---|---|---|
XML
AKEV << Other file types >> CONS TMBD << Other BINA >> ONIE CONS << Other OBJC >> FLAG |
General information
- The XML on this page was tested with OniSplit version 0.9.61.0 and 0.9.82.0.
- A BINACJBODOOR is level-specific (levelx_Final.dat).
- All original doors and their locklights can be seen HERE.
File structure
<?xml version="1.0" encoding="utf-8"?> <Oni> <Objects> [...] </Objects> </Oni>
[...] means at least one door. Paste all your door data into there (this includes the <DOOR Id="...">/</DOOR> tag).
Example
For level import via XML master file, use a pre-compiled (*.oni) file as part of a relative file path, e.g. doors/wh_door1dbl.oni
<DOOR Id="7233"> <Header> <Flags>Gunk</Flags> <Position>-652 0 -753</Position> <Rotation>0 0 0</Rotation> </Header> <OSD> <Class>wh_door1dbl</Class> <DoorId>1</DoorId> <KeyId>0</KeyId> <Flags>InitialLocked InDoorFrame DoubleDoor</Flags> <Center>-652 16.5 -753</Center> <SquaredActivationRadius>900</SquaredActivationRadius> <Texture1></Texture1> <Texture2></Texture2> <Events> <ActivateTurret TargetId="1" /> </Events> </OSD> </DOOR>
Tags
Tag | Type | Description |
---|---|---|
<Objects> | - | |
<DOOR Id="..."> | int32 | Use any number; no need to for it be unique. — For level imports, use <Door>. |
<Header> | - | |
<Flags> | flag | Object flags. Used during development, ignore them. — Optional tag for level import. |
<Position> | float x3 | XYZ position. For new doors, use a Y of 0 if the ground plane is 0. — Optional tag for level import, but should be used in any case. |
<Rotation> | float x3 | XYZ rotation. "chr_debug_characters = 1" shows the player's facing, which can be used for door's Y value. X and Z should be 0. — Optional tag for level import. |
<OSD> | - | |
<Class> | char[63] | DOORfile.oni (don't use file prefix/suffix) For level import via XML master file, use a pre-compiled (*.oni) file as part of a relative file path, e.g. doors/TCdouble.oni |
<DoorId> | int16 | Can be used with BSL commands. — Optional tag for level import but should be used in any case. |
<KeyId> | int16 | Ignore it. — Optional tag for level import. |
<Flags> | flag | Optional tag for level import.
|
<Center> | float x3 | X Y Z. <Center> Y is usually 15 units above door's <Position> Y. — Optional tag for level import, but should be used in any case. |
<SquaredActivationRadius> | float | Optional tag for level import; default value is 900. |
<Texture1> | char[63] | TXMPfile.oni (don't use file prefix/suffix) Used to replaces the doors default texture coming with the M3GM. — Optional tag for level import.
Use a capitalized file name for this TXMP. |
<Texture2> | char[63] | TXMPfile.oni (don't use file prefix/suffix) Can be used with double doors. — Optional tag for level import.
Use a capitalized file name for this TXMP. |
<Events> | int16 | You can use multiple events. — Optional tag for level import. |
<Script Function="call_this_BSL_function" /> | char[32] | Name of BSL function. For example if you use "call_this_BSL_function" here, then write in your BSL script:
func call_this_BSL_function { dmsg "hi" } |
<ActivateTurret TargetId="Id" /> | int16 | |
<DeactivateTurret TargetId="Id" /> | int16 | |
<ActivateConsole TargetId="Id" /> | int16 | |
<DeactivateConsole TargetId="Id" /> | int16 | |
<ActivateAlarm TargetId="Id" /> | int16 | |
<DeactivateAlaram TargetId="Id" /> | int16 | |
<ActivateTrigger TargetId="Id" /> | int16 | |
<DeactivateTrigger TargetId="Id" /> | int16 | |
<LockDoor TargetId="Id" /> | int16 | |
<UnlockDoor TargetId="Id" /> | int16 |