XML:BINA/OBJC/DOOR

From OniGalore
< XML:BINA‎ | OBJC
Revision as of 16:24, 10 April 2013 by Paradox-01 (talk | contribs) (reimports should be done without instance id, it can crash the game)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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 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