XML:BINA/OBJC/DOOR: Difference between revisions

< XML:BINA‎ | OBJC
m (OBJC means "Objects", not "Object Collection")
mNo edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{XML_OBJC_Header | type=DOOR | prev=CMBT | next=FLAG | name=Door spawn list }}
{{XML_OBJC_Header | prev=CONS| type=DOOR | next=FLAG | name=Door}}


__TOC__
==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==
===general information===
* The xml code on this page was tested with onisplit version 0.9.61.0 and 0.9.82.0
* '''BINACJBODOOR.oni''' is level specific. (It can be found in AE/AEInstaller/vanilla/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>
Line 18: Line 14:
  </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).


'''''[...]''''' means at least one door. Paste all door data into there (this includes '''<font color="#0A0"><DOOR Id="..."></font>''' and '''<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'''
'''example'''
'''<font color="#0A0"><DOOR Id="7233"></font>'''
        '''<font color="#0A0"><DOOR Id="7233"></font>'''
    <Header>
            <Header>
        <Flags>Gunk</Flags>
                <Flags>Gunk</Flags>
        <Position>-652 0 -753</Position>
                <Position>-652 0 -753</Position>
        <Rotation>0 0 0</Rotation>
                <Rotation>0 0 0</Rotation>
    </Header>
            </Header>
    <OSD>
            <OSD>
        '''<Class>wh_door1dbl</Class>'''
                <Class>wh_door1dbl</Class>
        <DoorId>1</DoorId>
                <DoorId>1</DoorId>
        <KeyId>0</KeyId>
                <KeyId>0</KeyId>
        <Flags>InitialLocked InDoorFrame DoubleDoor</Flags>
                <Flags>InitialLocked InDoorFrame DoubleDoor</Flags>
        <nowiki><Center>-652 16.5 -753</Center></nowiki>
                <nowiki><Center>-652 16.5 -753</Center></nowiki>
        <SquaredActivationRadius>900</SquaredActivationRadius>
                <SquaredActivationRadius>900</SquaredActivationRadius>
        <Texture1></Texture1>
                <Texture1></Texture1>
        <Texture2></Texture2>
                <Texture2></Texture2>
        <Events>
                <Events>
            <ActivateTurret TargetId="1" />
                    <ActivateTurret TargetId="1" />
        </Events>
                </Events>
    </OSD>
            </OSD>
'''<font color="#0A0"></DOOR></font>'''
        '''<font color="#0A0"></DOOR></font>'''
 


===tags===
==Tags==
{| class="wikitable" width=100%
{| class="wikitable" width=100%
!width=280px| tag
!width=280px| Tag
!width=60px| type
!width=60px| Type
! description
! Description
|-
| <?xml version="1.0" encoding="utf-8"?>
| float, flag
| Don't change this.
|-
| <Oni>
| -
|
|-
|-
| <Objects>
| <Objects>
Line 64: Line 51:
| <DOOR Id="...">
| <DOOR Id="...">
| int32
| int32
| Use any number. No need to be unique. -- For level import use <Door>.
| Use any number; no need to for it be unique. For level imports, use <Door>.
|-
|-
| <Header>
| <Header>
Line 72: Line 59:
| <Flags>
| <Flags>
| flag
| flag
| Object flags. Used in the past, ignore them. -- Optional tag for level import.
| Object flags. Used during development, ignore them. Optional tag for level import.
|-
|-
| <Position>
| <Position>
| float x3
| float x3
| X Y Z position. For original doors use Y=0 if ground plane is 0. -- Optional tag for level import but should be used in any case.
| 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>
| <Rotation>
| float x3
| float x3
| X Y Z 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.
| 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>
| <OSD>
Line 88: Line 75:
|valign="top"| <Class>
|valign="top"| <Class>
|valign="top"| char[63]
|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 use absolute or relative file path, e.g. ''doors/TCdouble.oni''
| <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>
| <DoorId>
| int16
| 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.
| 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>
| <KeyId>
| int16
| int16
| Ignore it. -- Optional tag for level import.
| Ignore it. Optional tag for level import.
|-
|-
|valign="top"| <Flags>
|valign="top"| <Flags>
Line 103: Line 90:
: None
: None
: InitialLocked
: InitialLocked
:: door is initially locked (at level load or after calling reset_mechanics)
:: Door is initially locked (at level load or after calling reset_mechanics)
: InDoorFrame
: InDoorFrame
:: ? (no visible effect)
:: ? (no visible effect)
: Manual
: Manual
:: require player to press '''action''' to open door
:: Require player to press action key to open door
: DoubleDoor
: DoubleDoor
:: a door with two parts
:: A door with two parts
: Mirror
: Mirror
:: mirrors door along its Z axis
:: Mirrors door along its Z axis
: OneWay
: OneWay
:: one side locked, other side unlocked
:: One side locked, other side unlocked
: Reverse
: Reverse
:: one side unlocked, other side locked
:: One side unlocked, other side locked
: Jammed
: Jammed
:: freeze door (can't open/close)
:: Freeze door (can't open/close)
: InitialOpen
: InitialOpen
|-
|-
|valign="top"| <nowiki><Center></nowiki>
|valign="top"| <nowiki><Center></nowiki>
|valign="top"| float x3
|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.
| 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"| <SquaredActivationRadius>
Line 130: Line 117:
|valign="top"| <Texture1>
|valign="top"| <Texture1>
|valign="top"| char[63]
|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.
| <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>
| <Texture2>
| char[63]
| 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.
| <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>
| <Events>
| int16
| int16
| You can use multiple events. -- Optional tag for level import.
| You can use multiple events. Optional tag for level import.
|-
|-
|valign="top"| <Script Function="call_this_BSL_function" />
|valign="top"| <Script Function="call_this_BSL_function" />
|valign="top"| char[32]
|valign="top"| char[32]
| Name of BSL function. For example if you use "call_this_BSL_function" here then write in BSL file:
| 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
  ''func call_this_BSL_function
  {
  {
Line 188: Line 177:
|
|
|}
|}


{{XML}}
{{XML}}

Latest revision as of 15:54, 12 May 2024

DOOR : Door
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

CONS << Other OBJC >> FLAG

switch to OBD page

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.
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
<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