XML:BINA/OBJC/DOOR: Difference between revisions

From OniGalore
< XML:BINA‎ | OBJC
(+ temp + cat)
(xml tags table)
Line 5: Line 5:


===general information===
===general information===
* The xml code on this page is based on onisplit '''v0.9.61.0'''
* 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''_... )
* '''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.]
* All original doors and their locklights can be seen [http://ssg.oni2.net/subfold/doors/doors.htm HERE.]
Line 39: Line 39:
                 <Events>
                 <Events>
                     <ActivateTurret TargetId="1" />
                     <ActivateTurret TargetId="1" />
                    <Script Function="door_test" />
                 </Events>
                 </Events>
             </OSD>
             </OSD>
         '''<font color="#0A0"></DOOR></font>'''
         '''<font color="#0A0"></DOOR></font>'''


===script function example===
### in BSL file
func door_test
{
dmsg "[r.door test]"
dmsg "target turret is set active and BSL function is triggered"
dmsg "by any character which comes into specified radius"
}


===tags===
===tags===
: <Class> name of [[XML:DOOR|DOOR]] class file
{| class="wikitable" width=100%
: <Texture1> can be used to replace the texture of DOOR's embedded M3GM
!width=280px| tag
 
!width=60px| type
===OSD flags===
! description
None
|-
InitialLocked
| <?xml version="1.0" encoding="utf-8"?>
InDoorFrame
| float, flag
Manual
| Don't change this.
DoubleDoor
|-
Mirror
| <Oni>
  OneWay
| -
  Reverse
|
  Jammed
|-
  InitialOpen
| <Objects>
| -
|
|-
| <DOOR Id="...">
| int32
| Use any number. No need to be unique. -- For level import you can also use <Door>.
|-
| <Header>
| -
|
|-
| <Flags>
| flag
| Object flags. Used in the past, ignore them. -- Optional tag for level import.
|-
| <Position>
| 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.
|-
| <Rotation>
| 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.
|-
| <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 use absolute or 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''' 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.
|-
| <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.
|-
| <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 BSL file:
  ''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
|
|}


===events===
<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''" />


{{XML}}
{{XML}}

Revision as of 15:51, 12 March 2013

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

CMBT << Other OBJC >> FLAG

switch to OBD page


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/levelXX_... )
  • 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 door data into there (this includes <DOOR Id="..."> and </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
<?xml version="1.0" encoding="utf-8"?> float, flag Don't change this.
<Oni> -
<Objects> -
<DOOR Id="..."> int32 Use any number. No need to be unique. -- For level import you can also use <Door>.
<Header> -
<Flags> flag Object flags. Used in the past, ignore them. -- Optional tag for level import.
<Position> 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.
<Rotation> 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.
<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 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.
<Texture2> char[63] TXMPfile.oni (don't use file prefix/suffix) Can be used with double doors. -- Optional tag for level import.
<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 BSL file:
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