COH ProjectFile: Difference between revisions

From OuroDev
m 8 revisions imported: Importing Portal Corps Wiki pages and history - Feb 6, 2020
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== COH Project File (Work in Progress) ==
== COH Project File (Work in Progress) ==


The Concept of this is simple...
Current Features Already Implemented
</BR>The tool (No Title yet) I am working on will create a Standard or User Package.
* Extract BINs From some PIGG Files
 
* Extract Character Classes, PowerSets, PowerCategories, Origins, Powers and few other CrypticS String Defs Structures directly from BIN
</BR><B>The Standard Package</B>
* Convert Classes Extracted to Usable XML
*Would be i24 Oroborus released original files imported from BIN/DEF and converted to XML.
* Rebuild BINs that were extracted for above classes
*Idea was/is to create a common format wrapper for files that parse easily, and don't require a bunch of separate tools.
* Extract MessageStore Language Files and use for pulling strings for editing classes above
 
* Some very Basic UI Forms for viewing some of the XML Files
</BR><B>The User Project</B>
* A Managed system for interacting with all the data.
*Will contain copies of Standard files that have edits or new files added.
* Not reliant on C Code, or Specific to any future branched projects.
*In other words the idea is to be able to tell what files you have altered, without altering the originals.
* Usage of a Project File for Standard Content and Modified Content to allow editing only what you need, and packing up the changes
 
</BR><B>The Tool</B>
*Will Import these XML Files
*Allow you to edit them in A GUI Window (Windows)
*Automate & Help in adding new classes etc.
*Edit Player Character Classes (Hero & Villain)
*Edit Enemy Classes
*Edit Language Entries
*Etc
 
</BR>When the User Project is Ready it would be exported, the tool will look to see what files need to be added and generate replacement Defs or other to be rebuilt by the assets.
</BR>Once all Assets are rebuilt, handle as normal.
</BR>In some cases I could see updates needing to be required to database etc, and if so a separate file could be generated with SQL or other commands to update those portions.


</BR><B><STRONG>I would like to stress that there are other "official versions" of tools that are tried and tested.</STRONG></B>
</BR><B><STRONG>I would like to stress that there are other "official versions" of tools that are tried and tested.</STRONG></B>


 
**Will be open source when somewhat stable.


DragonSire
DragonSire
Line 33: Line 20:


== XML Example (Work in Progress) ==
== XML Example (Work in Progress) ==
 
<source>
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<COH_ProjectFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<COH_ProjectFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
Line 42: Line 29:
   <ReleaseDate>01/01/2020</ReleaseDate>
   <ReleaseDate>01/01/2020</ReleaseDate>
   <COH_PC_Heroes>
   <COH_PC_Heroes>
     <COH_PC_Hero>
     <COH_PC_Hero EntryType="CharacterClass_Player_Hero" Name="Blaster" Path=".\Class_Blaster.xml" />
      <Name>Blaster</Name>
    <COH_PC_Hero EntryType="CharacterClass_Player_Hero" Name="Controller" Path=".\Class_Controller.xml" />
      <Path>.\CharacterClasses\PlayerClasses\Heroes\Class_Blaster.xml</Path>
    <COH_PC_Hero EntryType="CharacterClass_Player_Hero" Name="Defender" Path=".\Class_Defender.xml" />
      <EntryType>CharacterClass_Player_Hero</EntryType>
    <COH_PC_Hero EntryType="CharacterClass_Player_Hero" Name="Scrapper" Path=".\Class_Scrapper.xml" />
    </COH_PC_Hero>
    <COH_PC_Hero EntryType="CharacterClass_Player_Hero" Name="Tanker" Path=".\Class_Tanker.xml" />
    <COH_PC_Hero>
    <COH_PC_Hero EntryType="CharacterClass_Player_Hero" Name="Peacebringer" Path=".\Class_Peacebringer.xml" />
      <Name>Controller</Name>
    <COH_PC_Hero EntryType="CharacterClass_Player_Hero" Name="Warshade" Path=".\Class_Warshade.xml" />
      <Path>.\CharacterClasses\PlayerClasses\Heroes\Class_Controller.xml</Path>
      <EntryType>CharacterClass_Player_Hero</EntryType>
    </COH_PC_Hero>
    <COH_PC_Hero>
      <Name>Defender</Name>
      <Path>.\CharacterClasses\PlayerClasses\Heroes\Class_Defender.xml</Path>
      <EntryType>CharacterClass_Player_Hero</EntryType>
    </COH_PC_Hero>
    <COH_PC_Hero>
      <Name>Scrapper</Name>
      <Path>.\CharacterClasses\PlayerClasses\Heroes\Class_Scrapper.xml</Path>
      <EntryType>CharacterClass_Player_Hero</EntryType>
    </COH_PC_Hero>
    <COH_PC_Hero>
      <Name>Tanker</Name>
      <Path>.\CharacterClasses\PlayerClasses\Heroes\Class_Tanker.xml</Path>
      <EntryType>CharacterClass_Player_Hero</EntryType>
    </COH_PC_Hero>
    <COH_PC_Hero>
      <Name>Peacebringer</Name>
      <Path>.\CharacterClasses\PlayerClasses\Heroes\Class_Peacebringer.xml</Path>
      <EntryType>CharacterClass_Player_Hero</EntryType>
    </COH_PC_Hero>
    <COH_PC_Hero>
      <Name>Warshade</Name>
      <Path>.\CharacterClasses\PlayerClasses\Heroes\Class_Warshade.xml</Path>
      <EntryType>CharacterClass_Player_Hero</EntryType>
    </COH_PC_Hero>
   </COH_PC_Heroes>
   </COH_PC_Heroes>
   <COH_PC_Villians>
   <COH_PC_Villians>
     <COH_PC_Villian>
     <COH_PC_Villian EntryType="CharacterClass_Player_Villian" Name="Brute" Path=".\Class_Brute.xml" />
      <Name>Brute</Name>
    <COH_PC_Villian EntryType="CharacterClass_Player_Villian" Name="Stalker" Path=".\Class_Stalker.xml" />
      <Path>.\CharacterClasses\PlayerClasses\Villians\Class_Brute.xml</Path>
    <COH_PC_Villian EntryType="CharacterClass_Player_Villian" Name="Mastermind" Path=".\Class_Mastermind.xml" />
      <EntryType>CharacterClass_Player_Villian</EntryType>
    <COH_PC_Villian EntryType="CharacterClass_Player_Villian" Name="Dominator" Path=".\Class_Dominator.xml" />
    </COH_PC_Villian>
    <COH_PC_Villian EntryType="CharacterClass_Player_Villian" Name="Corruptor" Path=".\Class_Corruptor.xml" />
    <COH_PC_Villian>
    <COH_PC_Villian EntryType="CharacterClass_Player_Villian" Name="Widow" Path=".\Class_Arachnos_Widow.xml" />
      <Name>Stalker</Name>
    <COH_PC_Villian EntryType="CharacterClass_Player_Villian" Name="Soldier" Path=".\Class_Arachnos_Soldier.xml" />
      <Path>.\CharacterClasses\PlayerClasses\Villians\Class_Stalker.xml</Path>
      <EntryType>CharacterClass_Player_Villian</EntryType>
    </COH_PC_Villian>
    <COH_PC_Villian>
      <Name>Mastermind</Name>
      <Path>.\CharacterClasses\PlayerClasses\Villians\Class_Mastermind.xml</Path>
      <EntryType>CharacterClass_Player_Villian</EntryType>
    </COH_PC_Villian>
    <COH_PC_Villian>
      <Name>Dominator</Name>
      <Path>.\CharacterClasses\PlayerClasses\Villians\Class_Dominator.xml</Path>
      <EntryType>CharacterClass_Player_Villian</EntryType>
    </COH_PC_Villian>
    <COH_PC_Villian>
      <Name>Corruptor</Name>
      <Path>.\CharacterClasses\PlayerClasses\Villians\Class_Corruptor.xml</Path>
      <EntryType>CharacterClass_Player_Villian</EntryType>
    </COH_PC_Villian>
    <COH_PC_Villian>
      <Name>Widow</Name>
      <Path>.\CharacterClasses\PlayerClasses\Villians\Class_Arachnos_Widow.xml</Path>
      <EntryType>CharacterClass_Player_Villian</EntryType>
    </COH_PC_Villian>
    <COH_PC_Villian>
      <Name>Soldier</Name>
      <Path>.\CharacterClasses\PlayerClasses\Villians\Class_Arachnos_Soldier.xml</Path>
      <EntryType>CharacterClass_Player_Villian</EntryType>
    </COH_PC_Villian>
   </COH_PC_Villians>
   </COH_PC_Villians>
   <COH_Enemies>
   <COH_Enemies>
     <COH_Enemy>
     <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Fire" Path=".\Class_Minion_Fire.xml" />
      <Name>Minion Fire</Name>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Grunt" Path=".\Class_Minion_Grunt.xml" />
      <Path>.\CharacterClasses\EnemyClasses\Class_Minion_Fire.xml</Path>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Henchman" Path=".\Class_Minion_Henchman.xml" />
      <EntryType>CharacterClass_EnemyClass</EntryType>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Monument" Path=".\Class_Minion_Monument.xml" />
    </COH_Enemy>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion OilSlickTarget" Path=".\Class_Minion_OilSlickTarget.xml" />
    <COH_Enemy>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Pets" Path=".\Class_Minion_Pets.xml" />
      <Name>Minion Grunt</Name>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Practice" Path=".\Class_Minion_Practice.xml" />
      <Path>.\CharacterClasses\EnemyClasses\Class_Minion_Grunt.xml</Path>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion PraetorianGrunt" Path=".\Class_Minion_PraetorianGrunt.xml" />
      <EntryType>CharacterClass_EnemyClass</EntryType>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion PraetorianSmall" Path=".\Class_Minion_PraetorianSmall.xml" />
    </COH_Enemy>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Small Agressive" Path=".\Class_Minion_Small_Agressive.xml" />
    <COH_Enemy>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Small" Path=".\Class_Minion_Small.xml" />
      <Name>Minion Henchman</Name>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Swarm" Path=".\Class_Minion_Swarm.xml" />
      <Path>.\CharacterClasses\EnemyClasses\Class_Minion_Henchman.xml</Path>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Turret" Path=".\Class_Minion_Turret.xml" />
      <EntryType>CharacterClass_EnemyClass</EntryType>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion UnkillableNPC" Path=".\Class_Minion_UnkillableNPC.xml" />
    </COH_Enemy>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Lt Grunt" Path=".\Class_Lt_Grunt.xml" />
    <COH_Enemy>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Lt Sniper" Path=".\Class_Lt_Sniper.xml" />
      <Name>Minion Monument</Name>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Lt Turret" Path=".\Class_Lt_Turret.xml" />
      <Path>.\CharacterClasses\EnemyClasses\Class_Minion_Monument.xml</Path>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Lt Henchman" Path=".\Class_Lt_Henchman.xml" />
      <EntryType>CharacterClass_EnemyClass</EntryType>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Lt LongRangeDrone" Path=".\Class_Lt_LongRangeDrone.xml" />
    </COH_Enemy>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Lt PraetorianGrunt" Path=".\Class_Lt_PraetorianGrunt.xml" />
    <COH_Enemy>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Archvillain" Path=".\Class_Boss_Archvillain.xml" />
      <Name>Minion OilSlickTarget</Name>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Archvillain_Flying" Path=".\Class_Boss_Archvillain_Flying.xml" />
      <Path>.\CharacterClasses\EnemyClasses\Class_Minion_OilSlickTarget.xml</Path>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Elite" Path=".\Class_Boss_Elite.xml" />
      <EntryType>CharacterClass_EnemyClass</EntryType>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss EliteTurret" Path=".\Class_Boss_EliteTurret.xml" />
    </COH_Enemy>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Grunt" Path=".\Class_Boss_Grunt.xml" />
    <COH_Enemy>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Guard" Path=".\Class_Boss_Guard.xml" />
      <Name>Minion Pets</Name>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Hamidon" Path=".\Class_Boss_Hamidon.xml" />
      <Path>.\CharacterClasses\EnemyClasses\Class_Minion_Pets.xml</Path>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss HeavyPet" Path=".\Class_Boss_HeavyPet.xml" />
      <EntryType>CharacterClass_EnemyClass</EntryType>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Henchman" Path=".\Class_Boss_Henchman.xml" />
    </COH_Enemy>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss HugeDevice" Path=".\Class_Boss_HugeDevice.xml" />
    <COH_Enemy>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Mito" Path=".\Class_Boss_Mito.xml" />
      <Name>Minion Practice</Name>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Monster" Path=".\Class_Boss_Monster.xml" />
      <Path>.\CharacterClasses\EnemyClasses\Class_Minion_Practice.xml</Path>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Monster_Flying" Path=".\Class_Boss_Monster_Flying.xml" />
      <EntryType>CharacterClass_EnemyClass</EntryType>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss PraetorianArchvillain" Path=".\Class_Boss_PraetorianArchvillain.xml" />
    </COH_Enemy>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss PraetorianAVLowPerception" Path=".\Class_Boss_PraetorianAVLowPerception.xml" />
    <COH_Enemy>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss PraetorianElite" Path=".\Class_Boss_PraetorianElite.xml" />
      <Name>Minion PraetorianGrunt</Name>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss PraetorianGrunt" Path=".\Class_Boss_PraetorianGrunt.xml" />
      <Path>.\CharacterClasses\EnemyClasses\Class_Minion_PraetorianGrunt.xml</Path>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Reichsman" Path=".\Class_Boss_Reichsman.xml" />
      <EntryType>CharacterClass_EnemyClass</EntryType>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Rularuu" Path=".\Class_Boss_Rularuu.xml" />
    </COH_Enemy>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss RularuuCoP" Path=".\Class_Boss_RularuuCoP.xml" />
    <COH_Enemy>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss RularuuFM" Path=".\Class_Boss_RularuuFM.xml" />
      <Name>Minion PraetorianSmall</Name>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Shield" Path=".\Class_Boss_Shield.xml" />
      <Path>.\CharacterClasses\EnemyClasses\Class_Minion_PraetorianSmall.xml</Path>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Signature_Pets" Path=".\Class_Boss_Signature_Pets.xml" />
      <EntryType>CharacterClass_EnemyClass</EntryType>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Turret" Path=".\Class_Boss_Turret.xml" />
    </COH_Enemy>
    <COH_Enemy>
      <Name>Minion Small Agressive</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Minion_Small_Agressive.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Minion Small</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Minion_Small.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Minion Swarm</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Minion_Swarm.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Minion Turret</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Minion_Turret.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Minion UnkillableNPC</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Minion_UnkillableNPC.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Lt Grunt</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Lt_Grunt.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Lt Sniper</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Lt_Sniper.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Lt Turret</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Lt_Turret.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Lt Henchman</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Lt_Henchman.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Lt LongRangeDrone</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Lt_LongRangeDrone.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Lt PraetorianGrunt</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Lt_PraetorianGrunt.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss Archvillain</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_Archvillain.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss Archvillain_Flying</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_Archvillain_Flying.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss Elite</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_Elite.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss EliteTurret</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_EliteTurret.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss Grunt</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_Grunt.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss Guard</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_Guard.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss Hamidon</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_Hamidon.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss HeavyPet</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_HeavyPet.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss Henchman</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_Henchman.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss HugeDevice</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_HugeDevice.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss Mito</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_Mito.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss Monster</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_Monster.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss Monster_Flying</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_Monster_Flying.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss PraetorianArchvillain</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_PraetorianArchvillain.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss PraetorianAVLowPerception</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_PraetorianAVLowPerception.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss PraetorianElite</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_PraetorianElite.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss PraetorianGrunt</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_PraetorianGrunt.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss Reichsman</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_Reichsman.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss Rularuu</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_Rularuu.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss RularuuCoP</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_RularuuCoP.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss RularuuFM</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_RularuuFM.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss Shield</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_Shield.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss Signature_Pets</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_Signature_Pets.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
    <COH_Enemy>
      <Name>Boss Turret</Name>
      <Path>.\CharacterClasses\EnemyClasses\Class_Boss_Turret.xml</Path>
      <EntryType>CharacterClass_EnemyClass</EntryType>
    </COH_Enemy>
   </COH_Enemies>
   </COH_Enemies>
  <COH_PowerCategories>
    <COH_PowerCategory EntryType="PowerCategory" Name="Blaster (Ranged)" Path=".\Blaster_Ranged.xml" />
    <COH_PowerCategory EntryType="PowerCategory" Name="Blaster (Support)" Path=".\Blaster_Support.xml" />
  </COH_PowerCategories>
  <COH_PowerSets>
    <COH_PowerSet EntryType="PowerSets" Name="Archery" Path=".\Blaster_Ranged\Blaster_Ranged.Archery.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Assault Rifle" Path=".\Blaster_Ranged\Blaster_Ranged.Assault_Rifle.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Beam Rifle" Path=".\Blaster_Ranged\Blaster_Ranged.Beam_Rifle.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Dark Blast" Path=".\Blaster_Ranged\Blaster_Ranged.Dark_Blast.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Dual Pistols" Path=".\Blaster_Ranged\Blaster_Ranged.Dual_Pistols.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Electrical Blast" Path=".\Blaster_Ranged\Blaster_Ranged.Electrical_Blast.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Energy Blast" Path=".\Blaster_Ranged\Blaster_Ranged.Energy_Blast.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Fire Blast" Path=".\Blaster_Ranged\Blaster_Ranged.Fire_Blast.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Ice Blast" Path=".\Blaster_Ranged\Blaster_Ranged.Ice_Blast.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Psychic Blast" Path=".\Blaster_Ranged\Blaster_Ranged.Psychic_Blast.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Radiation Blast" Path=".\Blaster_Ranged\Blaster_Ranged.Radiation_Blast.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Sonic Attack" Path=".\Blaster_Ranged\Blaster_Ranged.Sonic_Attack.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Water Blast" Path=".\Blaster_Ranged\Blaster_Ranged.Water_Blast.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Wind Blast" Path=".\Blaster_Ranged\Blaster_Ranged.Wind_Blast.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Darkness Manipulation" Path=".\Blaster_Support\Blaster_Support.Darkness_Manipulation.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Electricity Manipulation" Path=".\Blaster_Support\Blaster_Support.Electricity_Manipulation.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Energy Manipulation" Path=".\Blaster_Support\Blaster_Support.Energy_Manipulation.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Fire Manipulation" Path=".\Blaster_Support\Blaster_Support.Fire_Manipulation.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Gadgets" Path=".\Blaster_Support\Blaster_Support.Gadgets.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Ice_Manipulation" Path=".\Blaster_Support\Blaster_Support.Ice_Manipulation.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Martial Manipulation" Path=".\Blaster_Support\Blaster_Support.Martial_Manipulation.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Mental Manipulation" Path=".\Blaster_Support\Blaster_Support.Mental_Manipulation.xml" />
  </COH_PowerSets>
</COH_ProjectFile>
</COH_ProjectFile>
</source>

Latest revision as of 10:02, 6 February 2020

COH Project File (Work in Progress)

Current Features Already Implemented

  • Extract BINs From some PIGG Files
  • Extract Character Classes, PowerSets, PowerCategories, Origins, Powers and few other CrypticS String Defs Structures directly from BIN
  • Convert Classes Extracted to Usable XML
  • Rebuild BINs that were extracted for above classes
  • Extract MessageStore Language Files and use for pulling strings for editing classes above
  • Some very Basic UI Forms for viewing some of the XML Files
  • A Managed system for interacting with all the data.
  • Not reliant on C Code, or Specific to any future branched projects.
  • Usage of a Project File for Standard Content and Modified Content to allow editing only what you need, and packing up the changes


I would like to stress that there are other "official versions" of tools that are tried and tested.

    • Will be open source when somewhat stable.

DragonSire "Reality is Boring"

XML Example (Work in Progress)

<?xml version="1.0" encoding="utf-8"?>
<COH_ProjectFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Name>CityofHeroes_StandardProject</Name>
  <Author>Crytic/Paragon Studios Revised by Ouroboros</Author>
  <Website />
  <Version>1.0.Alpha</Version>
  <ReleaseDate>01/01/2020</ReleaseDate>
  <COH_PC_Heroes>
    <COH_PC_Hero EntryType="CharacterClass_Player_Hero" Name="Blaster" Path=".\Class_Blaster.xml" />
    <COH_PC_Hero EntryType="CharacterClass_Player_Hero" Name="Controller" Path=".\Class_Controller.xml" />
    <COH_PC_Hero EntryType="CharacterClass_Player_Hero" Name="Defender" Path=".\Class_Defender.xml" />
    <COH_PC_Hero EntryType="CharacterClass_Player_Hero" Name="Scrapper" Path=".\Class_Scrapper.xml" />
    <COH_PC_Hero EntryType="CharacterClass_Player_Hero" Name="Tanker" Path=".\Class_Tanker.xml" />
    <COH_PC_Hero EntryType="CharacterClass_Player_Hero" Name="Peacebringer" Path=".\Class_Peacebringer.xml" />
    <COH_PC_Hero EntryType="CharacterClass_Player_Hero" Name="Warshade" Path=".\Class_Warshade.xml" />
  </COH_PC_Heroes>
  <COH_PC_Villians>
    <COH_PC_Villian EntryType="CharacterClass_Player_Villian" Name="Brute" Path=".\Class_Brute.xml" />
    <COH_PC_Villian EntryType="CharacterClass_Player_Villian" Name="Stalker" Path=".\Class_Stalker.xml" />
    <COH_PC_Villian EntryType="CharacterClass_Player_Villian" Name="Mastermind" Path=".\Class_Mastermind.xml" />
    <COH_PC_Villian EntryType="CharacterClass_Player_Villian" Name="Dominator" Path=".\Class_Dominator.xml" />
    <COH_PC_Villian EntryType="CharacterClass_Player_Villian" Name="Corruptor" Path=".\Class_Corruptor.xml" />
    <COH_PC_Villian EntryType="CharacterClass_Player_Villian" Name="Widow" Path=".\Class_Arachnos_Widow.xml" />
    <COH_PC_Villian EntryType="CharacterClass_Player_Villian" Name="Soldier" Path=".\Class_Arachnos_Soldier.xml" />
  </COH_PC_Villians>
  <COH_Enemies>
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Fire" Path=".\Class_Minion_Fire.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Grunt" Path=".\Class_Minion_Grunt.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Henchman" Path=".\Class_Minion_Henchman.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Monument" Path=".\Class_Minion_Monument.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion OilSlickTarget" Path=".\Class_Minion_OilSlickTarget.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Pets" Path=".\Class_Minion_Pets.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Practice" Path=".\Class_Minion_Practice.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion PraetorianGrunt" Path=".\Class_Minion_PraetorianGrunt.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion PraetorianSmall" Path=".\Class_Minion_PraetorianSmall.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Small Agressive" Path=".\Class_Minion_Small_Agressive.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Small" Path=".\Class_Minion_Small.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Swarm" Path=".\Class_Minion_Swarm.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion Turret" Path=".\Class_Minion_Turret.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Minion UnkillableNPC" Path=".\Class_Minion_UnkillableNPC.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Lt Grunt" Path=".\Class_Lt_Grunt.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Lt Sniper" Path=".\Class_Lt_Sniper.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Lt Turret" Path=".\Class_Lt_Turret.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Lt Henchman" Path=".\Class_Lt_Henchman.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Lt LongRangeDrone" Path=".\Class_Lt_LongRangeDrone.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Lt PraetorianGrunt" Path=".\Class_Lt_PraetorianGrunt.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Archvillain" Path=".\Class_Boss_Archvillain.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Archvillain_Flying" Path=".\Class_Boss_Archvillain_Flying.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Elite" Path=".\Class_Boss_Elite.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss EliteTurret" Path=".\Class_Boss_EliteTurret.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Grunt" Path=".\Class_Boss_Grunt.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Guard" Path=".\Class_Boss_Guard.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Hamidon" Path=".\Class_Boss_Hamidon.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss HeavyPet" Path=".\Class_Boss_HeavyPet.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Henchman" Path=".\Class_Boss_Henchman.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss HugeDevice" Path=".\Class_Boss_HugeDevice.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Mito" Path=".\Class_Boss_Mito.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Monster" Path=".\Class_Boss_Monster.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Monster_Flying" Path=".\Class_Boss_Monster_Flying.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss PraetorianArchvillain" Path=".\Class_Boss_PraetorianArchvillain.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss PraetorianAVLowPerception" Path=".\Class_Boss_PraetorianAVLowPerception.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss PraetorianElite" Path=".\Class_Boss_PraetorianElite.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss PraetorianGrunt" Path=".\Class_Boss_PraetorianGrunt.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Reichsman" Path=".\Class_Boss_Reichsman.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Rularuu" Path=".\Class_Boss_Rularuu.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss RularuuCoP" Path=".\Class_Boss_RularuuCoP.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss RularuuFM" Path=".\Class_Boss_RularuuFM.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Shield" Path=".\Class_Boss_Shield.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Signature_Pets" Path=".\Class_Boss_Signature_Pets.xml" />
    <COH_Enemy EntryType="CharacterClass_EnemyClass" Name="Boss Turret" Path=".\Class_Boss_Turret.xml" />
  </COH_Enemies>
  <COH_PowerCategories>
    <COH_PowerCategory EntryType="PowerCategory" Name="Blaster (Ranged)" Path=".\Blaster_Ranged.xml" />
    <COH_PowerCategory EntryType="PowerCategory" Name="Blaster (Support)" Path=".\Blaster_Support.xml" />
  </COH_PowerCategories>
  <COH_PowerSets>
    <COH_PowerSet EntryType="PowerSets" Name="Archery" Path=".\Blaster_Ranged\Blaster_Ranged.Archery.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Assault Rifle" Path=".\Blaster_Ranged\Blaster_Ranged.Assault_Rifle.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Beam Rifle" Path=".\Blaster_Ranged\Blaster_Ranged.Beam_Rifle.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Dark Blast" Path=".\Blaster_Ranged\Blaster_Ranged.Dark_Blast.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Dual Pistols" Path=".\Blaster_Ranged\Blaster_Ranged.Dual_Pistols.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Electrical Blast" Path=".\Blaster_Ranged\Blaster_Ranged.Electrical_Blast.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Energy Blast" Path=".\Blaster_Ranged\Blaster_Ranged.Energy_Blast.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Fire Blast" Path=".\Blaster_Ranged\Blaster_Ranged.Fire_Blast.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Ice Blast" Path=".\Blaster_Ranged\Blaster_Ranged.Ice_Blast.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Psychic Blast" Path=".\Blaster_Ranged\Blaster_Ranged.Psychic_Blast.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Radiation Blast" Path=".\Blaster_Ranged\Blaster_Ranged.Radiation_Blast.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Sonic Attack" Path=".\Blaster_Ranged\Blaster_Ranged.Sonic_Attack.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Water Blast" Path=".\Blaster_Ranged\Blaster_Ranged.Water_Blast.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Wind Blast" Path=".\Blaster_Ranged\Blaster_Ranged.Wind_Blast.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Darkness Manipulation" Path=".\Blaster_Support\Blaster_Support.Darkness_Manipulation.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Electricity Manipulation" Path=".\Blaster_Support\Blaster_Support.Electricity_Manipulation.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Energy Manipulation" Path=".\Blaster_Support\Blaster_Support.Energy_Manipulation.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Fire Manipulation" Path=".\Blaster_Support\Blaster_Support.Fire_Manipulation.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Gadgets" Path=".\Blaster_Support\Blaster_Support.Gadgets.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Ice_Manipulation" Path=".\Blaster_Support\Blaster_Support.Ice_Manipulation.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Martial Manipulation" Path=".\Blaster_Support\Blaster_Support.Martial_Manipulation.xml" />
    <COH_PowerSet EntryType="PowerSets" Name="Mental Manipulation" Path=".\Blaster_Support\Blaster_Support.Mental_Manipulation.xml" />
  </COH_PowerSets>
</COH_ProjectFile>