[Objects] Dragonlord's Arena

Started by Sparrow, Today at 07:33 AM

Previous topic - Next topic

Sparrow

Content Type: Object(s).
Original Author: Original Arena made by FromSoftware in ELDEN RING.
Source Link: Ripped from ELDEN RING.
Modifications: Converted to .dff, .txd, .col
Modified By: Me. (Sparrow)
Authorized By Original Author?: Couldn't get in touch with him.
Content Screenshots: https://imgchest.com/p/o24ae5noe7l

Additional Info
Size: 4.64 MB for low textures and 13.87 MB for high textures

Links
Low Texture: https://www.mediafire.com/file/az03k1txr0jfx1t/DragonlordArenaL_unp.7z/file
High Texture: https://www.mediafire.com/file/ep35uth4ldg9rsu/DragonlordArenaHI_unp.7z/file


Server-side Info

objects.xml:
<object id="0">
<flags value="0" />
<texture path="PlacidusaxArena.txd" />
<collision path="PA_Center.col" />
<model path="PA_Center.dff" distance="2000" />
</object>
<object id="1">
<flags value="0" />
<texture path="PlacidusaxArena.txd" />
<collision path="PA_FirstCircle.col" />
<model path="PA_FirstCircle.dff" distance="2000" />
</object>
<object id="2">
<flags value="0" />
<texture path="PlacidusaxArena.txd" />
<collision path="PA_SmallPillar.col" />
<model path="PA_SmallPillar.dff" distance="2000" />
</object>
<object id="3">
<flags value="0" />
<texture path="PlacidusaxArena.txd" />
<collision path="PA_SecondCircle.col" />
<model path="PA_SecondCircle.dff" distance="2000" />
</object>
<object id="4">
<flags value="0" />
<texture path="PlacidusaxArena.txd" />
<collision path="PA_ThirdCircle.col" />
<model path="PA_ThirdCircle.dff" distance="2000" />
</object>
<object id="5">
<flags value="0" />
<texture path="PlacidusaxArena.txd" />
<collision path="PA_FourthCircle.col" />
<model path="PA_FourthCircle.dff" distance="2000" />
</object>
<object id="6">
<flags value="0" />
<texture path="PlacidusaxArena.txd" />
<collision type="none" />
<model path="PA_FourthCircleSK.dff" distance="2000" />
</object>
<object id="7">
<flags value="0" />
<texture path="PlacidusaxArena.txd" />
<collision path="PA_FifthCircle.col" />
<model path="PA_FifthCircle.dff" distance="2000" />
</object>
<object id="8">
<flags value="0" />
<texture path="PlacidusaxArena.txd" />
<collision path="PA_Wall.col" />
<model path="PA_Wall.dff" distance="2000" />
</object>
<object id="9">
<flags value="0" />
<texture path="PlacidusaxArena.txd" />
<collision type="none" />
<model path="PA_WallSK.dff" distance="2000" />
</object>
<object id="10">
<flags value="0" />
<texture path="PlacidusaxArena.txd" />
<collision path="PA_MidPillar.col" />
<model path="PA_MidPillar.dff" distance="2000" />
</object>
<object id="11">
<flags value="0" />
<texture path="PlacidusaxArena.txd" />
<collision path="PA_BigPillarPt1.col" />
<model path="PA_BigPillarPt1.dff" distance="2000" />
</object>
<object id="12">
<flags value="0" />
<texture path="PlacidusaxArena.txd" />
<collision path="PA_BigPillarPt2.col" />
<model path="PA_BigPillarPt2.dff" distance="2000" />
</object>
<object id="13">
<flags value="0" />
<texture path="Skybox.txd" />
<collision path="Skybox.col" />
<model path="Skybox.dff" distance="4000" />
</object>


Function to create the Arena:
function DragonlordArena()
{
local Arena_pos = Vector(-460.45, 1056.87, 500);

/* Rotation Angle Function */
function RotationAngle(Angle)
{
try
{
return 3.1415926535897932384626433832795*Angle/180;
}
catch (e)
return null;
}

/* Center */
CreateObject(6000, 1, Arena_pos, 255);
/* First Circle: Rotate by 30 degrees. */
for (local i = 1; i <= 360/30; i++)
{
CreateObject(6001, 1, Arena_pos, 255).RotateToEuler(Vector(0, 0, RotationAngle(30)*i), 0);
}
/* Small Pillar, 2nd, 3rd, 4th, 5th Circles/SK: Rotate by 15 degrees. */
for (local i = 1; i <= 360/15; i++)
{
CreateObject(6002, 1, Arena_pos, 255).RotateToEuler(Vector(0, 0, RotationAngle(15)*i), 0);
CreateObject(6003, 1, Arena_pos, 255).RotateToEuler(Vector(0, 0, RotationAngle(15)*i), 0);
CreateObject(6004, 1, Arena_pos, 255).RotateToEuler(Vector(0, 0, RotationAngle(15)*i), 0);
CreateObject(6005, 1, Arena_pos, 255).RotateToEuler(Vector(0, 0, RotationAngle(15)*i), 0);
CreateObject(6006, 1, Arena_pos, 255).RotateToEuler(Vector(0, 0, RotationAngle(15)*i), 0);
CreateObject(6007, 1, Arena_pos, 255).RotateToEuler(Vector(0, 0, RotationAngle(15)*i), 0);
}
/* Wall, WallSK, BigPillar Pt1/Pt2: Rotate by 18 degrees. */
for (local i = 1; i <= 360/18; i++)
{
CreateObject(6008, 1, Arena_pos, 255).RotateToEuler(Vector(0, 0, RotationAngle(18)*i), 0);
CreateObject(6009, 1, Arena_pos, 255).RotateToEuler(Vector(0, 0, RotationAngle(18)*i), 0);
CreateObject(6011, 1, Arena_pos, 255).RotateToEuler(Vector(0, 0, RotationAngle(18)*i), 0);
CreateObject(6012, 1, Arena_pos, 255).RotateToEuler(Vector(0, 0, RotationAngle(18)*i), 0);
CreateObject(6012, 1, Vector(Arena_pos.x, Arena_pos.y, Arena_pos.z +16.08), 255).RotateToEuler(Vector(0, 0, RotationAngle(18)*i), 0);
CreateObject(6012, 1, Vector(Arena_pos.x, Arena_pos.y, Arena_pos.z +32.16), 255).RotateToEuler(Vector(0, 0, RotationAngle(18)*i), 0);
CreateObject(6012, 1, Vector(Arena_pos.x, Arena_pos.y, Arena_pos.z +48.24), 255).RotateToEuler(Vector(0, 0, RotationAngle(18)*i), 0);
}
/* Mid Pillar: Rotate by 6 degrees. */
for (local i = 1; i <= 360/6; i++)
{
CreateObject(6010, 1, Arena_pos, 255).RotateToEuler(Vector(0, 0, RotationAngle(6)*i), 0);
}
/* Skybox */
CreateObject(6013, 1, Arena_pos, 255);
}

Notes:
- Function is needed since each object/dff is only a part of the whole arena. DragonlordArena() iterates those objects to form a full circle. Think of it as a pizza slice before the function and a whole pizza after the function.
- To change the arena's location, change the coordinates in this line: local Arena_pos = Vector(-460.45, 1056.87, 500);