Edit:
This page only exists now as a historical example of the evolution of D2io. This generator was a very crude attempt to quickly help build the database. After writing this, we instead moved onto directly parsing the game files. This was accomplished by using this resource: https://github.com/blizzhackers/d2data, which enumerates all the internal Diablo2 textfiles as JSON objects. After writing a parser and converter for this, we managed to populate much of the game database in a more elegant and automated fashion.
To streamline the contribution speed of this site, I decided to write a parser/markup generator for monster auxiliary data. It's really simple to use. You quite literally go to a D2 website (I'll link the specific one) and copy the tables there. Then you paste the tables into notepad++, and replace "/t" with "_". This helps delimit the data segments, and is required. Then, after the data looks pretty, you start the program, and enter in each table row as they're requested. When you're done, the program will generate the monster auxiliary markup, which you can copy and paste into a contribution post. It might take a few minutes to familiarize yourself with the data layout that's expected, but after that, really anyone can do it.
Known Bugs:
N/AInstructions:
1. Find a monster that does not have auxiliary data in monsters/2. Click: "Add aux data for MONSTER_NAME 1" on the left.
3. Go to https://diablo2.diablowiki.net/Main_Page and search for the monster you're submitting. (This is the required website, because the generator expects the layout it provides)
4. Open Notepad++
5. Copy the Stats chart so it looks like this:
6. Paste that data into Notepad++
7. Search and Replace "/t" with "_" and make everything a single line. (Some data tables paste weird)
8. Your data should look like this:
9. Copy the Defenses chart like this:
10. Repeat the same steps from step 7 and 8, pasting this data directly below the first row.
11. Copy the Resistances chart like this:
12. Repeat the same steps from step 7 and 8, pasting this data directly below the second row.
(Your data should look like this:)
13. Self-define the monster's attack1 and attack2 damage and attack rating. This is the difficult part. Teebling has stated that the input for this needs to be simple. We cannot define extravagant poison damage, or added elemental damage. He wants just the BASE damage range, with no additional modifiers. Some monsters, such as Bone Ash, has mathematical formulas and stuff for their attacks, and some monsters have no attack rating, or attack ratings that match both attack1 and attack2. Here is an example of what we're looking for:
See how there's nothing except for the base damage and base attack ratings? That's what we want it to look like. If you're doing a monster that has something like "10-20 + 1-40 Lightning damage", you should ONLY enter in "10-20", NOT "10-20 + 1-40 Lightning Damge" or whatever it says. There CANNOT be any exotic characters in the input other than "-". My generator won't crash if you do this, but the website itself does not support this sort of input, and your submision will be flagged for errors.
You can also leave attack1 and attack2 NULL in generator app by entering "null" when prompted for them. This is useful for monsters that have no way of simply defining said attacks, or monsters that have no attacks, like Coldworm the Burrower.
When all is said and done, your document should now look like this:
(You can also have spaces between the slashes, but it's more readable without them)
14. Start the Auxiliary Data Generator app
15. Enter the base monster type or enter "null" for super unique monsters, which do not require this field. Finding the base monster type is something you're going to have to search for. As an example, Bartuc the Bloody is a base monster type of " Council Member". This will take trial and error, because the base monster types are not explicitly defined on the aforementioned website in which we're gleaning this data from.
16. Input the rows as they're requested. When you get to the Resistances column, you must enter in an integer which symbolizes the resistance table layout. This is important. Some monster web pages have different layouts. (We've only found two layouts currently; be sure to report it to us if you find another!) If the app crashes while you're entering data, check your data and try again.
17. If everything works well, it will print out the markup in the console. Copy and paste this output into the contribution submission. (You may need to submit it, then edit it to access the markup directly)
18. Submit the monster auxiliary data.
19. Done! Rinse and repeat for every monster in the database!
Disclaimer:
Clearly, this app is not fully tested. I made it in the span of probably two hours. There are probably quite a few edge cases that are not yet known about. If you find one, tell me and I'll try to patch it. Otherwise, you would be better off doing it the old fashioned way.v1.3 Source Code & Recent Build:
https://drive.google.com/file/d/1myyxEM ... sp=sharingIf you just want to spelunk the source itself, here's a pastebin link:
Krythic
507