Jump to content

- - - - -

Notice To Third Party Tool Developers: Xml Data Changes

Updated

No replies to this topic

#1 Kyle Lawrence

    Staff

  • 24 posts

Posted 05 May 2014 - 01:39 PM

Please be aware of additional changes mentioned here.

Hello MechWarriors!

We are aware that there exist many third party tools built to offer our players a richer experience when enjoying their time to MechWarrior Online. We are also aware that some of these tools rely on the XML data packaged with the game. Recently, some of the formats/schemas of these XML files are undergoing changes to benefit future work.

With these changes, we realize that the third party tools created by the community may see problems when attempting to parse these files during future updates. For anyone maintaining a third party site or tool please refer to the following information regarding the upcoming format changes to ensure your site/tool is able to function when this release goes live.

These changes are going live as of May 6th, 2014

Be aware that more changes will be coming as new features are implemented. We will do our best to provide you those details when those updates are coming and we look forward to seeing our third party community grow right alongside us.




Note: These notes are geared towards our technically inclined players and third party tools developers. No changes explained here will have any effect on in-game performance or functionality.

ItemStats.xml

1) Mech elements have a new, simpler format.

Our attempt here was to remove as much redundant data when defining a mech. The new format is shown here:

<MechList>
<b><Mech id="1" chassis="hunchback" name="hbk-4g"/></b>
<Mech id="2" chassis="hunchback" name="hbk-4p"/>
<Mech id="3" chassis="jenner" name="jr7-d"/>
<Mech id="4" chassis="jenner" name="jr7-f"/>
...
</MechList>

The rest of the data in the old format… (old format shown below)

<Mech id="1" name="hbk-4g" mdf="hunchbackhbk-4g.mdf" defaultloadout="LibsMechLoadouthbk-4g.xml">
<Loc nameTag="@hbk-4g" descTag="@hbk-4g_desc" iconTag="MechIconshbk-4g.png" shortNameTag="@hbk-4g_short" coords="260,200!197,118!326,118!407,202!125,202!350,345!180,345!262,80" coords2="205,185!110,110!300,110!410,200!75,240!325,365!120,365!225,60"/>
</Mech>

..is either no longer used (in the case of cords) or is dynamically inferred from the new information given (chassis and name).

2) Hardpoint search keys are now identified with each weapon. The hardpoint search criteria file is no longer used. An example is given here:

<WeaponList>
<Weapon id="1000" name="AutoCannon20" HardpointAliases="AutoCannon,Ballistic">
<Loc nameTag="@AC20" descTag="@AC20_desc" iconTag="StoreIconsAutoCannon20.dds" />
...
</Weapon>
</WeaponList>

This scenario is most likely not a problem for our third party tool developers, but I thought it deserved a mention just in case.

3) UpgradeTypes now use a string to identify their type instead of a number.

<UpgradeTypeList>
<UpgradeType id="2810" name="StandardArmorType">
<Loc nameTag="@StandardArmorType" descTag="@StandardArmorType_desc" shortNameTag="@Standard" iconTag="UpgradeIconsupgradeIcon_ArmorStandard.png"/>
<UpgradeTypeStats type="Armor" slots="0" pointMultiplier="2" associatedItem="2800" />
</UpgradeType>
...
</UpgradeTypeList>


Mech Definition and Loadout files

1) Default weapon groups were removed from the Mech Definition Files (ObjectsMechs[mech][mech].mdf) and now live alongside the weapons identified in the mech loadout file (LibsMechLoadout[mech].xml)

<component Name="left_torso" Armor="62">
<Weapon ItemID="1027" WeaponGroup="4" />

Again, this has no bearing on in-game play, it was simply done for code structure and maintainability reasons.

Also note that the matching hardpoint ID is no longer mentioned here (as it was not actually needed).

2) Armor, Structure, and Heatsink upgrade selections in the mech loadout files have been set specifically to use IDs of UpgradeType items in the ItemStats.xml

<Loadout MechID="103" Public="1" Name="ATLAS AS7-BH">
<Upgrades>
<Armor ItemID="2810" />
<Structure ItemID="3101" />
<HeatSinks ItemID="3003" />
<Artemis Equipped="0" />
</Upgrades>

As you can see, no change was made to the Artemis mention.

3) Every single mech definition file (.mdf) and mech loadout file (.xml) has been updated in the following patch to reflect these format changes.

Wrap-up



We understand that these changes may be an inconvenience, but we hope they will provide you, as they’ve provided us, a cleaner model of our game data.

Your Friendly Neighborhood Tools Engineer,
-Kyle Lawrence




More changes are going live as of May 20th, 2014

ItemStats.xml is no more!

We've removed ItemStats.xml and replaced it with a set of folders:

  • Armor
  • Boosters
  • Items
  • Mechs
  • Modules
  • UpgradeTypes
  • Weapons

These folders correspond to the separate item lists in the original ItemStats.xml. Inside each of these folders can be any number of XML files that now hold item definitions. The formats have stayed the same since the 6th, this was simply a restructuring of the data to allow for more efficient management by our developers.




An example of one of the "new" XML files is ArmorArmorTypes.xml:
<ArmorTypeList>
<ArmorType id="2800" name="Standard">
<Loc nameTag="@StandardArmor" descTag="@StandardArmor_desc" shortNameTag="@Standard" iconTag="UpgradeIconsupgradeIcon_ArmorStandard.png"/>
<ArmorTypeStats slots="0" pointMultiplier="2" />
</ArmorType>
<ArmorType id="2801" name="FerroFibrous">
<Loc nameTag="@FerroFibrous" descTag="@FerroFibrous_desc" shortNameTag="@FerroFibrous_short" iconTag="UpgradeIconsupgradeIcon_ArmorFerrousFibre.png"/>
<ArmorTypeStats slots="14" pointMultiplier="2.24" />
</ArmorType>
</ArmorTypeList>


Thanks again!

Your Friendly Neighborhood Tools Engineer,
-Kyle Lawrence


Please leave your feedback about this update in the Official Feedback Thread. Thank you!





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users