I have decompiled the file data.cpk in the cpk directory of the game with the software : yace0.31
Then in the decompilation I recovered in the folder data => stage. My 2 stages where I want to add the portal to make them communicate.
I used XenoXmlConverter.exe to edit in XML the 2 *.map files
I added the following objects in the first *.map file:
<Object>
<!--debug_startOffset :0x970-->
<name value="GATE_to_exem2" />
<hitboxGroupIndex value="16" />
<unk_04 u16="0x1" />
<unk_04b u16="0x0" />
<unk_0A u8="0x5" />
<unk_0B u8="0x0" />
<unk_20 float="1.99999988" />
<ListEntity>
<!--index : 0-->
<Entity>
<!--debug_startOffset :0x306c-->
<!--few holes in [0 (most), 0x11], go up to 0x74-->
<s4n2_unk_0 u32="0x0" />
<Visual>
<name value="ACT02_gate" />
<ListLod>
<Lod distance="10000.000000" Nsk="COM\COMa02.nsk" Emm="COM\COMa02.emm" />
</ListLod>
<Emb filename="COM\COMa02.emb" />
<Ema filename="COM\COMa02.ema" />
<!--0 (most), 4-->
<s4n2b_unk_0 u32="0x0" />
<s4n2b_unk_5 u32="0xffffffff" />
<s4n2b_unk_6 u32="0xffffffff" />
<!--only 2, 3 or 0xffffffff (none and most). sound like another index to something, may be twice animation.-->
<s4n2b_unk_8 u32="0xffffffff" />
<s4n2b_unk_9 float="60.0" />
<s4n2b_unk_10 float="60.0" />
</Visual>
<TransformMatrix4x3>
<!--Future version will have position, rotation (degree), and scale. Here the easy part (without knowing matrix) is last line is positionXYZ.-->
<L0 f32s="1.0, 0.0, 0.0" />
<L1 f32s="0.0, 1.0, 0.0" />
<L2 f32s="0.0, 0.0, 1.0" />
<L3 f32s="0.0, 0.0, 1.19247488e-007" />
</TransformMatrix4x3>
</Entity>
</ListEntity>
<ListVirtualSubPart>
<!--index : 0-->
<VirtualSubPart>
<!--debug_startOffset :0x2fa0-->
<!--only 0x0 (most), 0x1-->
<unk_2 u16="0x0" />
<!--only 0, 0xffff (most)-->
<unk_2b u16="0xffff" />
<!--[0.0 (most), 1000000.0]-->
<unk_4 float="0.0" />
<!--[0.0 (most), 3.0]-->
<unk_5 float="0.0" />
<ListIndexCouple>
<!--index : 0-->
<IndexCouple Index0="10" Index1="1" />
</ListIndexCouple>
<SubPart>
<Width X="60.0" Y="60.0" Z="60.0" />
<!--Future version will use Rotation degrees-->
<Quaternion X="0.0" Y="0.0" Z="0.0" W="1.0" />
<!--few holes in [0, 0xe] , 4 at most-->
<unk_0 u16="0x1" />
<!--[0,7], plus 0xffff (most) for none-->
<unk_0b u16="0xffff" />
<!--0 (most), 1, 3, 7, 0xff -->
<unk_1 u16="0x0" />
<!--0, 2 (most)-->
<unk_1b u16="0x0" />
<!--0, 2, 4, 5, 9, 0x19, 0xffffffff (most)-->
<unk_2 u32="0xffffffff" />
<!--[0.031900, 24098666.0], 1.0 at most. lots of uniques values, and progress, like a animation-->
<unk_3 float="1.0" />
<!--[-184.657913, 186.816162], 0.0 at most. could be some degrees ?-->
<unk_4 float="0.0" />
<!--[-175.524277, 188.422974], 0.000000 (most) -->
<unk_5 float="0.0" />
<!--[-186.247391, 176.994080], 0.0 (most)-->
<unk_6 float="0.0" />
<!--[-192.804337, 140.889252], 0.0 (most)-->
<unk_7 float="0.0" />
<!--[-106.711281, 114.855453], 0.0 (most)-->
<unk_8 float="0.0" />
<!--[-185.846497, 198.041656] 0.0 at most-->
<unk_9 float="0.0" />
<!--[-279.467529, 259.390625], 0.0 (most). lots of values, look like for animation-->
<unk_10 float="0.0" />
<!--[-260.461700, 122.487022], 0.0 (most). lots of values-->
<unk_11 float="0.0" />
<!--[-463.797577, 387.593781], 0.0 (most). lots of values-->
<unk_12 float="3.81469727e-006" />
<!--[0.0, 841637952.0], 1.0 (most). lots of values near 0. there also have strange too high values-->
<unk_13 float="4188.79004" />
</SubPart>
<TransformMatrix4x3>
<!--Future version will have position, rotation (degree), and scale. Here the easy part (without knowing matrix) is last line is positionXYZ.-->
<L0 f32s="1.0, 0.0, 0.0" />
<L1 f32s="0.0, 1.0, 0.0" />
<L2 f32s="0.0, 0.0, 1.0" />
<L3 f32s="0.0, 0.0, 0.0" />
</TransformMatrix4x3>
</VirtualSubPart>
</ListVirtualSubPart>
<Action>
<!--debug_startOffset :0x2ff0-->
<unk_0 u32="0" />
<unk_1a u8="0x2" />
<!--only 0 (most), 0x10, 0x20, 0x30, 0x40, 0x70-->
<unk_1b u8="0x30" />
<unk_1c u8="0x0" />
<!--only 0 (most) or 0x80-->
<unk_1d u8="0x80" />
<ListCommand>
<Command>
<function name="CHANGE AREA" />
<!--0, 1, 2, 3 (most), 4-->
<unk_1a u8="0x3" />
<unk_1b u8="0x0" />
<!--seam to be 2 x uint4 , with one is flags: 0, 4, 5, 7, 0x10, 0x64, 0x65, 0x66, 0x67, 0x68, 0x6a, 0x6b, 0x6c, 0x6e, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0xc8, 0xca, 0xcc, 0xcd, 0xd1, 0xd2, 0xd3, 0xf8, 0xfb-->
<unk_1c u8="0x65" />
<!--0 (most) or 0xff-->
<unk_1d u8="0x0" />
<ListParameter />
</Command>
</ListCommand>
</Action>
<TransformMatrix4x3>
<L0 f32s="-1.0, -6.27832947e-007, 0.0" />
<L1 f32s="-6.27832947e-007, 1.0, -6.27832947e-007" />
<L2 f32s="3.94174195e-013, -6.27832947e-007, -1.0" />
<L3 f32s="-1.97087095e-012, 15.0000029, 30.0" />
</TransformMatrix4x3>
</Object>
<HitboxGroup>
<name value="GATE_to_exem2" />
<ListHitbox>
<!--index : 0-->
<Hitbox>
<name value="BOX" />
<!--holes in [1, 0xf7], and go to 0x43a. 0xffff (none and most) the holes are explain by sibling-->
<child u16="0xffff" />
<!--only 0 or 0xffff (most)-->
<unk_a0 u16="0xffff" />
<!--[2, 0x43d], 0xffff (none and most). seam to confirm sibling, with relation of child-->
<sibling u16="0xffff" />
<!--only 0x0 (most), 0xffff (none). So could be like unk_a0 or all have only 0 as parent ? -->
<parent u16="0xffff" />
<ListOnDestruction>
<!--index : 0-->
<DestructionGroup>
<!--index : 0-->
<Destruction>
<!--few hole in [0 (most), 0x11]-->
<unk_0 u32="0x0" />
<!--from 0x0 (most) to 0x1240b-->
<unk_1 u32="0x0" />
<unk_2 u32="0x0" />
<!--look pretty the same as unk_1, but until 0x112aa-->
<unk_5 u32="0x0" />
<!--from 0 (most) to 0x6159-->
<unk_6 u32="0x0" />
<!--only 0.0, 0.01 (most)-->
<unk_7 float="0.0" />
<DestructionSubPart>
<yaw float="-7.2570765e-006" />
<pitch float="1.66020436e-005" />
<roll float="-5.3679214e-006" />
<!--1 (most), 2, 3-->
<unk_0 u32="2" />
<!--[-30.776886 , 1.893005] + 55.799999, 0.0 at most-->
<unk_1 float="0.0" />
<!--[-58.922211, 35.0], 0.0 (most)-->
<unk_2 float="0.0" />
<!--[-0.359985, 1.434509] plus -463.797607, -5.0, 20.0. 0.0 at most-->
<unk_3 float="3.81469727e-006" />
<!--[0.05, 707.106812], 0.5 (most)-->
<unk_7 float="10.0" />
<!--[0.0, 210.0], 0.5 (most)-->
<unk_8 float="0.0" />
<!--[0.0, 700.0], 0.5 (most)-->
<unk_9 float="0.0" />
<unk_10 float="0.0" />
<unk_11 float="0.0" />
<!---210.0, 0.0 (most)]-->
<unk_12 float="0.0" />
<!--only 0 (most), or 7.721795e-10-->
<unk_13 float="0.0" />
</DestructionSubPart>
<DestructionSubPart>
<yaw float="-7.2570765e-006" />
<pitch float="1.66020436e-005" />
<roll float="-5.3679214e-006" />
<!--1 (most), 2, 3-->
<unk_0 u32="2" />
<!--[-30.776886 , 1.893005] + 55.799999, 0.0 at most-->
<unk_1 float="0.0" />
<!--[-58.922211, 35.0], 0.0 (most)-->
<unk_2 float="0.0" />
<!--[-0.359985, 1.434509] plus -463.797607, -5.0, 20.0. 0.0 at most-->
<unk_3 float="3.81469727e-006" />
<!--[0.05, 707.106812], 0.5 (most)-->
<unk_7 float="10.0" />
<!--[0.0, 210.0], 0.5 (most)-->
<unk_8 float="0.0" />
<!--[0.0, 700.0], 0.5 (most)-->
<unk_9 float="0.0" />
<unk_10 float="0.0" />
<unk_11 float="0.0" />
<!---210.0, 0.0 (most)]-->
<unk_12 float="0.0" />
<!--only 0 (most), or 7.721795e-10-->
<unk_13 float="0.0" />
</DestructionSubPart>
</Destruction>
</DestructionGroup>
</ListOnDestruction>
<ListHavokFiles />
<CollisionGeometry>
<!--debug_startOffset_vertex = 0x0-->
<!--debug_startOffset_faces = 0x0-->
</CollisionGeometry>
</Hitbox>
</ListHitbox>
</HitboxGroup>
I added the following objects in the 2nd *.map file:
<Object>
<!--debug_startOffset :0x970-->
<name value="GATE_to_exem1" />
<hitboxGroupIndex value="16" />
<unk_04 u16="0x1" />
<unk_04b u16="0x0" />
<unk_0A u8="0x5" />
<unk_0B u8="0x0" />
<unk_20 float="1.99999988" />
<ListEntity>
<!--index : 0-->
<Entity>
<!--debug_startOffset :0x306c-->
<!--few holes in [0 (most), 0x11], go up to 0x74-->
<s4n2_unk_0 u32="0x0" />
<Visual>
<name value="ACT02_gate" />
<ListLod>
<Lod distance="10000.000000" Nsk="COM\COMa02.nsk" Emm="COM\COMa02.emm" />
</ListLod>
<Emb filename="COM\COMa02.emb" />
<Ema filename="COM\COMa02.ema" />
<!--0 (most), 4-->
<s4n2b_unk_0 u32="0x0" />
<s4n2b_unk_5 u32="0xffffffff" />
<s4n2b_unk_6 u32="0xffffffff" />
<!--only 2, 3 or 0xffffffff (none and most). sound like another index to something, may be twice animation.-->
<s4n2b_unk_8 u32="0xffffffff" />
<s4n2b_unk_9 float="60.0" />
<s4n2b_unk_10 float="60.0" />
</Visual>
<TransformMatrix4x3>
<!--Future version will have position, rotation (degree), and scale. Here the easy part (without knowing matrix) is last line is positionXYZ.-->
<L0 f32s="1.0, 0.0, 0.0" />
<L1 f32s="0.0, 1.0, 0.0" />
<L2 f32s="0.0, 0.0, 1.0" />
<L3 f32s="0.0, 0.0, 1.19247488e-007" />
</TransformMatrix4x3>
</Entity>
</ListEntity>
<ListVirtualSubPart>
<!--index : 0-->
<VirtualSubPart>
<!--debug_startOffset :0x2fa0-->
<!--only 0x0 (most), 0x1-->
<unk_2 u16="0x0" />
<!--only 0, 0xffff (most)-->
<unk_2b u16="0xffff" />
<!--[0.0 (most), 1000000.0]-->
<unk_4 float="0.0" />
<!--[0.0 (most), 3.0]-->
<unk_5 float="0.0" />
<ListIndexCouple>
<!--index : 0-->
<IndexCouple Index0="10" Index1="1" />
</ListIndexCouple>
<SubPart>
<Width X="60.0" Y="60.0" Z="60.0" />
<!--Future version will use Rotation degrees-->
<Quaternion X="0.0" Y="0.0" Z="0.0" W="1.0" />
<!--few holes in [0, 0xe] , 4 at most-->
<unk_0 u16="0x1" />
<!--[0,7], plus 0xffff (most) for none-->
<unk_0b u16="0xffff" />
<!--0 (most), 1, 3, 7, 0xff -->
<unk_1 u16="0x0" />
<!--0, 2 (most)-->
<unk_1b u16="0x0" />
<!--0, 2, 4, 5, 9, 0x19, 0xffffffff (most)-->
<unk_2 u32="0xffffffff" />
<!--[0.031900, 24098666.0], 1.0 at most. lots of uniques values, and progress, like a animation-->
<unk_3 float="1.0" />
<!--[-184.657913, 186.816162], 0.0 at most. could be some degrees ?-->
<unk_4 float="0.0" />
<!--[-175.524277, 188.422974], 0.000000 (most) -->
<unk_5 float="0.0" />
<!--[-186.247391, 176.994080], 0.0 (most)-->
<unk_6 float="0.0" />
<!--[-192.804337, 140.889252], 0.0 (most)-->
<unk_7 float="0.0" />
<!--[-106.711281, 114.855453], 0.0 (most)-->
<unk_8 float="0.0" />
<!--[-185.846497, 198.041656] 0.0 at most-->
<unk_9 float="0.0" />
<!--[-279.467529, 259.390625], 0.0 (most). lots of values, look like for animation-->
<unk_10 float="0.0" />
<!--[-260.461700, 122.487022], 0.0 (most). lots of values-->
<unk_11 float="0.0" />
<!--[-463.797577, 387.593781], 0.0 (most). lots of values-->
<unk_12 float="3.81469727e-006" />
<!--[0.0, 841637952.0], 1.0 (most). lots of values near 0. there also have strange too high values-->
<unk_13 float="4188.79004" />
</SubPart>
<TransformMatrix4x3>
<!--Future version will have position, rotation (degree), and scale. Here the easy part (without knowing matrix) is last line is positionXYZ.-->
<L0 f32s="1.0, 0.0, 0.0" />
<L1 f32s="0.0, 1.0, 0.0" />
<L2 f32s="0.0, 0.0, 1.0" />
<L3 f32s="0.0, 0.0, 0.0" />
</TransformMatrix4x3>
</VirtualSubPart>
</ListVirtualSubPart>
<Action>
<!--debug_startOffset :0x2ff0-->
<unk_0 u32="0" />
<unk_1a u8="0x2" />
<!--only 0 (most), 0x10, 0x20, 0x30, 0x40, 0x70-->
<unk_1b u8="0x30" />
<unk_1c u8="0x0" />
<!--only 0 (most) or 0x80-->
<unk_1d u8="0x80" />
<ListCommand>
<Command>
<function name="CHANGE AREA" />
<!--0, 1, 2, 3 (most), 4-->
<unk_1a u8="0x3" />
<unk_1b u8="0x0" />
<!--seam to be 2 x uint4 , with one is flags: 0, 4, 5, 7, 0x10, 0x64, 0x65, 0x66, 0x67, 0x68, 0x6a, 0x6b, 0x6c, 0x6e, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0xc8, 0xca, 0xcc, 0xcd, 0xd1, 0xd2, 0xd3, 0xf8, 0xfb-->
<unk_1c u8="0x65" />
<!--0 (most) or 0xff-->
<unk_1d u8="0x0" />
<ListParameter />
</Command>
</ListCommand>
</Action>
<TransformMatrix4x3>
<L0 f32s="-1.0, -6.27832947e-007, 0.0" />
<L1 f32s="-6.27832947e-007, 1.0, -6.27832947e-007" />
<L2 f32s="3.94174195e-013, -6.27832947e-007, -1.0" />
<L3 f32s="-1.97087095e-012, 15.0000029, 30.0" />
</TransformMatrix4x3>
</Object>
<HitboxGroup>
<name value="GATE_to_exem1" />
<ListHitbox>
<!--index : 0-->
<Hitbox>
<name value="BOX" />
<!--holes in [1, 0xf7], and go to 0x43a. 0xffff (none and most) the holes are explain by sibling-->
<child u16="0xffff" />
<!--only 0 or 0xffff (most)-->
<unk_a0 u16="0xffff" />
<!--[2, 0x43d], 0xffff (none and most). seam to confirm sibling, with relation of child-->
<sibling u16="0xffff" />
<!--only 0x0 (most), 0xffff (none). So could be like unk_a0 or all have only 0 as parent ? -->
<parent u16="0xffff" />
<ListOnDestruction>
<!--index : 0-->
<DestructionGroup>
<!--index : 0-->
<Destruction>
<!--few hole in [0 (most), 0x11]-->
<unk_0 u32="0x0" />
<!--from 0x0 (most) to 0x1240b-->
<unk_1 u32="0x0" />
<unk_2 u32="0x0" />
<!--look pretty the same as unk_1, but until 0x112aa-->
<unk_5 u32="0x0" />
<!--from 0 (most) to 0x6159-->
<unk_6 u32="0x0" />
<!--only 0.0, 0.01 (most)-->
<unk_7 float="0.0" />
<DestructionSubPart>
<yaw float="-7.2570765e-006" />
<pitch float="1.66020436e-005" />
<roll float="-5.3679214e-006" />
<!--1 (most), 2, 3-->
<unk_0 u32="2" />
<!--[-30.776886 , 1.893005] + 55.799999, 0.0 at most-->
<unk_1 float="0.0" />
<!--[-58.922211, 35.0], 0.0 (most)-->
<unk_2 float="0.0" />
<!--[-0.359985, 1.434509] plus -463.797607, -5.0, 20.0. 0.0 at most-->
<unk_3 float="3.81469727e-006" />
<!--[0.05, 707.106812], 0.5 (most)-->
<unk_7 float="10.0" />
<!--[0.0, 210.0], 0.5 (most)-->
<unk_8 float="0.0" />
<!--[0.0, 700.0], 0.5 (most)-->
<unk_9 float="0.0" />
<unk_10 float="0.0" />
<unk_11 float="0.0" />
<!---210.0, 0.0 (most)]-->
<unk_12 float="0.0" />
<!--only 0 (most), or 7.721795e-10-->
<unk_13 float="0.0" />
</DestructionSubPart>
<DestructionSubPart>
<yaw float="-7.2570765e-006" />
<pitch float="1.66020436e-005" />
<roll float="-5.3679214e-006" />
<!--1 (most), 2, 3-->
<unk_0 u32="2" />
<!--[-30.776886 , 1.893005] + 55.799999, 0.0 at most-->
<unk_1 float="0.0" />
<!--[-58.922211, 35.0], 0.0 (most)-->
<unk_2 float="0.0" />
<!--[-0.359985, 1.434509] plus -463.797607, -5.0, 20.0. 0.0 at most-->
<unk_3 float="3.81469727e-006" />
<!--[0.05, 707.106812], 0.5 (most)-->
<unk_7 float="10.0" />
<!--[0.0, 210.0], 0.5 (most)-->
<unk_8 float="0.0" />
<!--[0.0, 700.0], 0.5 (most)-->
<unk_9 float="0.0" />
<unk_10 float="0.0" />
<unk_11 float="0.0" />
<!---210.0, 0.0 (most)]-->
<unk_12 float="0.0" />
<!--only 0 (most), or 7.721795e-10-->
<unk_13 float="0.0" />
</DestructionSubPart>
</Destruction>
</DestructionGroup>
</ListOnDestruction>
<ListHavokFiles />
<CollisionGeometry>
<!--debug_startOffset_vertex = 0x0-->
<!--debug_startOffset_faces = 0x0-->
</CollisionGeometry>
</Hitbox>
</ListHitbox>
</HitboxGroup>
I have all recompiled the xml files with : XenoXmlConverter.exe
Then I recompiled all with xv2stacreat.exe and the following tutorial:
animegamemods.net/thread/2855/creating-stage-xv2-creatorI put the targets stage and all the other parameters.
I added the 2 courses with : xv2ins.exe
In the script.x2qs file of creation of my parallel quest I have put :
Action PortalControl("exem1", "exem2", true, true)
Action PortalControl("exem2", "exem1", true, true)
Then I added my parallel quest with xv2ins.exe
I launched the game and my parallel quest and in the 1st stage the gate is displayed but not activated. Did I forget something ?