XML:BINA/OBJC/DOOR: Difference between revisions

From OniGalore
< XML:BINA‎ | OBJC
Jump to navigation Jump to search
m (reimports should be done without instance id, it can crash the game)
m (copy-edit)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{XML_OBJC_Header | type=DOOR | prev=CMBT | next=FLAG | name=Door spawn collection }}
{{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 edition/GameDataFolder/level''XX''_... )
* 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==
 
'''<font color="#0A0"><DOOR Id="7233"></font>'''
'''example'''
    <Header>
        '''<font color="#0A0"><DOOR Id="7233"></font>'''
        <Flags>Gunk</Flags>
            <Header>
        <Position>-652 0 -753</Position>
                <Flags>Gunk</Flags>
        <Rotation>0 0 0</Rotation>
                <Position>-652 0 -753</Position>
    </Header>
                <Rotation>0 0 0</Rotation>
    <OSD>
            </Header>
        <Class>wh_door1dbl</Class>
            <OSD>
        <DoorId>1</DoorId>
                <Class>wh_door1dbl</Class>
        <KeyId>0</KeyId>
                <DoorId>1</DoorId>
        <Flags>InitialLocked InDoorFrame DoubleDoor</Flags>
                <KeyId>0</KeyId>
        <nowiki><Center>-652 16.5 -753</Center></nowiki>
                <Flags>InitialLocked InDoorFrame DoubleDoor</Flags>
        <SquaredActivationRadius>900</SquaredActivationRadius>
                <nowiki><Center>-652 16.5 -753</Center></nowiki>
        <Texture1></Texture1>
                <SquaredActivationRadius>900</SquaredActivationRadius>
        <Texture2></Texture2>
                <Texture1></Texture1>
        <Events>
                <Texture2></Texture2>
            <ActivateTurret TargetId="1" />
                <Events>
        </Events>
                    <ActivateTurret TargetId="1" />
    </OSD>
                </Events>
'''<font color="#0A0"></DOOR></font>'''
            </OSD>
        '''<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 50:
| <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 58:
| <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 74:
|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 use absolute or 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 89:
: 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 116:
|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 176:
|
|
|}
|}


{{XML}}
{{XML}}

Latest revision as of 01:19, 1 April 2021

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

<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 use absolute or 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