XML:BINA/OBJC/DOOR: Difference between revisions

m
no edit summary
mNo edit summary
mNo edit summary
 
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
=[[OBD:BINA/OBJC/DOOR|BINA/OBJC/DOOR]]: doors=
{{XML_OBJC_Header | prev=CONS| type=DOOR | next=FLAG | name=Door}}


{{Template:XMLModdingHints}}
==General information==
{| border=0 cellspacing=20 cellpadding=0 align=center
* The XML on this page was tested with OniSplit version 0.9.61.0 and 0.9.82.0.
| The xml code on this page is based on onisplit '''v0.9.61.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].


'''general information'''
==File structure==
* '''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.]
 
 
'''XML structure'''
  <?xml version="1.0" encoding="utf-8"?>
  <?xml version="1.0" encoding="utf-8"?>
  <Oni>
  <Oni>
Line 19: 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'''
'''<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>'''


'''example'''
==Tags==
        '''<font color="#0A0"><DOOR Id="7233"></font>'''
{| class="wikitable" width=100%
            <Header>
!width=280px| Tag
                <Flags>Gunk</Flags>
!width=60px| Type
                <Position>-652 0 -753</Position>
! Description
                <Rotation>0 0 0</Rotation>
|-
            </Header>
| <Objects>
            <OSD>
| -
                <Class>wh_door1dbl</Class>
|
                <DoorId>1</DoorId>
|-
                <KeyId>0</KeyId>
| <DOOR Id="...">
                <Flags>InitialLocked InDoorFrame DoubleDoor</Flags>
| int32
                <nowiki><Center>-652 16.5 -753</Center></nowiki>
| Use any number; no need to for it be unique. — For level imports, use <Door>.
                <SquaredActivationRadius>900</SquaredActivationRadius>
|-
                <Texture1></Texture1>
| <Header>
                <Texture2></Texture2>
| -
                <Events>
|
                    <ActivateTurret TargetId="1" />
|-
                    <Script Function="door_test" />
| <Flags>
                </Events>
| flag
            </OSD>
| Object flags. Used during development, ignore them. — Optional tag for level import.
        '''<font color="#0A0"></DOOR></font>'''
|-
 
| <Position>
 
| float x3
### in BSL file
| 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 door_test
|-
| <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 "[r.door test]"
      dmsg "hi"
dmsg "target turret is set active and BSL function is triggered"
}''
dmsg "by any character which comes into specified radius"
|-
}
| <ActivateTurret TargetId="''Id''" />
 
| int16
 
|
'''OSD flags'''
|-
None
| <DeactivateTurret TargetId="''Id''" />
InitialLocked
| int16
InDoorFrame
|
Manual
|-
DoubleDoor
| <ActivateConsole TargetId="''Id''" />
Mirror
| int16
OneWay
|
Reverse
|-
Jammed
| <DeactivateConsole TargetId="''Id''" />
InitialOpen
| 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
|
|}


'''events'''
{{XML}}
<Script Function="''calling_this_BSL_function''" />
<ActivateTurret TargetId="''Id''" />
<DeactivateTurret TargetId="''Id''" />
<ActivateConsole TargetId="''Id''" />
<DeactivateConsole TargetId="''Id''" />
<ActivateAlarm TargetId="''Id''" />
<DeactivateAlaram TargetId="''Id''" />
<ActivateTrigger TargetId="''Id''" />
<DeactivateTrigger TargetId="''Id''" />
<LockDoor TargetId="''Id''" />
<UnlockDoor TargetId="''Id''" />
8,464

edits