Available from there (195 KB)
Extract it where you want, edit the .ini, and launch go.bat. It produce :
* log_extracted_txt (infos on all columns of all texts)
* log_errors.txt (check this for errors to correct, if any)
* log_warnings.txt (check this for warnings to correct, if any, and if you want)
Edit of 07/18/2004 :
* Test prop/param/min/max in all .txt (107 places)
* Bug fixed : Corrected a column name, so now 'HraltiMagicLvl' is found in Data\Global\Excel\Misc.txt
Edit of 05/19/2004 :
* Test Norm Uber and Ultra codes in Armor.txt and Weapons.txt
* Test numbers of inputs in CubeMain.txt
Edit of 05/11/2004 :
* checks if Levels are overlaping each other (SizeX/Y and OffsetX/Y in Levels.txt)
Edit of 05/11/2004 :
* checks if Levels are linked properly by at least 1 Vis
* check if each Vis have a valid Warp
Edit of 05/11/2004 :
* checks 78 primary keys
* checks 574 external keys
* added a .ini user's option : 'be_strict' (be strict on case-sensitive codes comparison, or not)
* check for correctly linked monsters, via Id / BaseId / NextInClass in MonStats.txt
Edit of 04/26/2004 :
* Test if all player class has the exact same number of skills (in Skills.txt)
The program is destined to evolve, and the hardest part should be done
Here's an extract of the log_extracted_txt. on my computer (without any mod) :
Code: Select all
extracted from d2exp.mpq : Data\Global\Excel\AutoMagic.txt
* 3386 bytes (3 KB)
* 38 columns * 37 rows
* 1 : Name is at column 1
* 2 : version is at column 2
* 3 : spawnable is at column 3
* 4 : rare is at column 4
(...)
* 41 : add is at column 38
Code: Select all
In Data\Global\Excel\UniqueItems.txt :
* WARNING : 'index' at row 31 (Azurewrath) is same as in row 304 (Azurewrath)
* WARNING : 'index' at row 395 (Rainbow Facet) is same as in row 396 (Rainbow Facet)
* WARNING : 'index' at row 396 (Rainbow Facet) is same as in row 397 (Rainbow Facet)
* WARNING : 'index' at row 397 (Rainbow Facet) is same as in row 398 (Rainbow Facet)
* WARNING : 'index' at row 398 (Rainbow Facet) is same as in row 399 (Rainbow Facet)
* WARNING : 'index' at row 399 (Rainbow Facet) is same as in row 400 (Rainbow Facet)
* WARNING : 'index' at row 400 (Rainbow Facet) is same as in row 401 (Rainbow Facet)
* WARNING : 'index' at row 401 (Rainbow Facet) is same as in row 402 (Rainbow Facet)
In Data\Global\Excel\Levels.txt :
* WARNING : 'Warp1' (-1) at row 28 (Act 1 - Monastery) should use a Warp ID (not -1)
* WARNING : 'Warp0' (-1) at row 29 (Act 1 - Courtyard 1) should use a Warp ID (not -1)
* WARNING : 'Warp1' (-1) at row 29 (Act 1 - Courtyard 1) should use a Warp ID (not -1)
* WARNING : 'Warp0' (-1) at row 30 (Act 1 - Barracks) should use a Warp ID (not -1)
* WARNING : 'Warp1' (-1) at row 34 (Act 1 - Courtyard 2) should use a Warp ID (not -1)
* WARNING : 'Warp0' (-1) at row 35 (Act 1 - Cathedral) should use a Warp ID (not -1)
* WARNING : 'Warp1' (-1) at row 109 (Act 4 - Lava 1) should use a Warp ID (not -1)
* WARNING : 'Warp0' (-1) at row 110 (Act 4 - Diablo 1) should use a Warp ID (not -1)
In Data\Global\Excel\Levels.txt :
* WARNING : Level Id 3 (Act 1 - Wilderness 2) at row 5 overlap
level Id 4 (Act 1 - Wilderness 3) at row 6 in Normal difficulty
* WARNING : Level Id 3 (Act 1 - Wilderness 2) at row 5 overlap
level Id 4 (Act 1 - Wilderness 3) at row 6 in Nightmare difficulty
* WARNING : Level Id 3 (Act 1 - Wilderness 2) at row 5 overlap
level Id 4 (Act 1 - Wilderness 3) at row 6 in Hell difficulty
Code: Select all
==================
Check primary keys
==================
In Data\Global\Excel\Objects.txt :
* ERROR : 'Id' at row 410 (408) is same as in row 413 (408)
* ERROR : 'Id' at row 411 (409) is same as in row 414 (409)
===================
Check external keys
===================
In Data\Global\Excel\CharStats.txt :
* ERROR : 'StartSkill' (fire bolt) at row 3 (Sorceress) not found
* ERROR : 'StartSkill' (raise skeleton) at row 4 (Necromancer) not found
In Data\Global\Excel\MagicPrefix.txt :
* ERROR : 'itype1' (staff) at row 447 (Burning) not found
* ERROR : 'itype1' (staff) at row 448 (Blazing) not found
* ERROR : 'itype1' (staff) at row 449 (Volcanic) not found
* ERROR : 'itype1' (staff) at row 450 (Sparking) not found
* ERROR : 'itype1' (staff) at row 451 (Charged) not found
* ERROR : 'itype1' (staff) at row 452 (Powered) not found
* ERROR : 'itype1' (staff) at row 453 (Chilling) not found
* ERROR : 'itype1' (staff) at row 454 (Freezing) not found
* ERROR : 'itype1' (staff) at row 455 (Glacial) not found
In Data\Global\Excel\MagicSuffix.txt :
* ERROR : 'itype2' (ring ) at row 436 (of Nova Shield) not found
* ERROR : 'itype2' (ring ) at row 437 (of Nova Shield) not found
* ERROR : 'itype2' (ring ) at row 438 (of Nova Shield) not found
In Data\Global\Excel\Missiles.txt :
* ERROR : 'EType' ( ) at row 572 (world stone chip 1) not found
* ERROR : 'EType' ( ) at row 573 (world stone chip 2) not found
* ERROR : 'EType' ( ) at row 574 (world stone chip 3) not found
* ERROR : 'EType' ( ) at row 575 (world stone chip 4) not found
* ERROR : 'EType' ( ) at row 626 (icesparkle) not found
* ERROR : 'EType' ( ) at row 627 (baalfx control) not found
* ERROR : 'EType' ( ) at row 628 (baalfx spirit 1) not found
* ERROR : 'EType' ( ) at row 629 (baalfx spirit 2) not found
* ERROR : 'EType' ( ) at row 630 (baalfx spirit 3) not found
* ERROR : 'EType' ( ) at row 631 (baalfx spirit 4) not found
* ERROR : 'EType' ( ) at row 632 (baalfx spirit 5) not found
* ERROR : 'EType' ( ) at row 633 (baalfx baal head appear) not found
* ERROR : 'EType' ( ) at row 634 (baalfx baal head 1) not found
* ERROR : 'EType' ( ) at row 635 (baalfx baal head 2) not found
* ERROR : 'EType' ( ) at row 636 (baalfx baal head 3) not found
* ERROR : 'EType' ( ) at row 637 (baalfx tyreal debris 1) not found
* ERROR : 'EType' ( ) at row 638 (baalfx tyreal debris 2) not found
* ERROR : 'EType' ( ) at row 639 (baalfx tyreal debris 3) not found
* ERROR : 'EType' ( ) at row 640 (baalfx tyreal debris break) not found
* ERROR : 'EType' ( ) at row 641 (worldstone shake) not found
In Data\Global\Excel\SetItems.txt :
* ERROR : 'prop3' (Light) at row 125 (Naj's Circlet) not found
In Data\Global\Excel\Skills.txt :
* ERROR : 'summon' (ClayGolem) at row 77 (Clay Golem) not found
* ERROR : 'summon' (BloodGolem) at row 87 (BloodGolem) not found
* ERROR : 'summon' (IronGolem) at row 92 (IronGolem) not found
* ERROR : 'summon' (FireGolem) at row 96 (FireGolem) not found
In Data\Global\Excel\Skills.txt :
* ERROR : 'sumskill1' (dodge) at row 34 (Valkyrie) not found
* ERROR : 'sumskill1' (holy fire) at row 96 (FireGolem) not found
In Data\Global\Excel\Skills.txt :
* ERROR : 'sumskill2' (avoid) at row 34 (Valkyrie) not found
In Data\Global\Excel\States.txt :
* ERROR : 'skill' (redemption) at row 101 (redeemed) not found
In Data\Global\Excel\UniqueItems.txt :
* ERROR : 'prop6' (*enr) at row 24 (Ironstone) not found
* ERROR : 'prop6' (*hp) at row 38 (Blacktongue) not found
* ERROR : 'prop6' (*hp) at row 55 (The Grim Reaper) not found
* ERROR : 'prop6' (*charged) at row 217 (Crow Caw) not found
In Data\Global\Excel\UniqueItems.txt :
* ERROR : 'prop7' (*hit-skill) at row 189 (Warpspear) not found
* ERROR : 'prop7' (*vit) at row 220 (Skullder's Ire) not found
In Data\Global\Excel\UniqueItems.txt :
* ERROR : 'prop8' (*gethit-skill) at row 189 (Warpspear) not found
* ERROR : 'prop8' (*enr) at row 220 (Skullder's Ire) not found
* ERROR : 'prop8' (*mana) at row 252 (Veil of Steel) not found
* ERROR : 'prop8' (*mana) at row 257 (Hellslayer) not found
In Data\Global\Excel\UniqueItems.txt :
* ERROR : 'prop9' (*enr) at row 54 (Woestave) not found
* ERROR : 'prop9' (*mana) at row 261 (The Cranium Basher) not found
In Data\Global\Excel\UniqueItems.txt :
* ERROR : 'prop10' (*enr) at row 267 (Stormspire) not found
==============
Specific tests
==============
In Data\Global\Excel\MonStats.txt :
* ERROR : chain of 'BaseId' with "diablo" have more than 1 empty 'NextInClass' (2)
In Data\Global\Excel\Armor.txt :
* ERROR : Item 'code' (ci2) at row 117 (Tiara) has 'normcode' (ci1), expected (ci0)
* ERROR : Item 'code' (ci3) at row 118 (Diadem) has 'normcode' (ci1), expected (ci0)
In Data\Global\Excel\Weapons.txt :
* ERROR : 'code' (qf1) at row 175 (KhalimFlail) is not used in Norm/Uber/Ultra code columns
* ERROR : 'code' (qf2) at row 176 (SuperKhalimFlail) is not used in Norm/Uber/Ultra code columns
In Data\Global\Excel\MagicSuffix.txt :
* ERROR : Propertie (dmg-ac) : 'mod1min' (-25) should be <= than 'mod1max' (-40), row 13 (of Bashing)
* ERROR : Propertie (dmg-ac) : 'mod1min' (-10) should be <= than 'mod1max' (-20), row 14 (of Puncturing)
* ERROR : Propertie (dmg-ac) : 'mod1min' (-25) should be <= than 'mod1max' (-40), row 161 (of Bashing)
* ERROR : Propertie (dmg-ac) : 'mod1min' (-10) should be <= than 'mod1max' (-20), row 162 (of Puncturing)