dw3gParser for Dota
A dota replay parser
A dota replay parser written in Delphi:
– Parsing of leaving/disconnecting times.
– Parsing of AFK times.
– Parsing of Chatlog.
– Parsing of heroes and skills picked.
– Parsing of Items bought.
– Minimap ping parsing.
– map command related trigger parsing.
* Juliusz ‘Julas’ Gonera php script, as I started porting his script in delphi.
* the WarCraft III Replay file and actions format description, both by blue & nagger.
* the php parser version of rush (from rush4hire.com) for the dota hero and items parser.
Download Latest Version: dW3gParser Setup 0.16 reV 1277
(alpha versions) v1: First released version. v2: Added color support to the chat log. Internals restructured. Fixed a few bugs. (warning added if w3xpath is not defined or if a file does not exists at this path.) v3: Added afk calculation. Internals restructured. (filename change, class spitted into differents file etc.) Fixed some bugs around the time conversion functions. Added a few options for displaying the actions. Added basic mini ping support Improved colorations. v4: Fixed a bug with chat color that were wrong. Added options to parse the events log. Added custom color support. Added an exit menuItem. v5: Changed the way actions are detected. This should add support to old replays, with different replay structure, with some limit (using w3g_actions.txt). Improved the item system detection to parse hero and dota items. (this now relies on w3g-julas-convert.php script.) Separated specific actions parsing to a new form. Enabled parsing of heroes and skill used for dota 6.34. (try doubleclicking on a player.) Coordonates of miniping are not exact. v6: Fixed an error that occured when the dot was not the system decimal separator. Added displaying of replay version information. Now, when loading a new replay, all existing fields are cleared. Added basic list of items bought per player. v7: Added miniping map support. Added a map system to allow changing the map used. v8: Fixed what triggered a RichEdit error for some replay. Added a few checks to avoid displaying a few 'impossible' events in skill window. Improved a bit the map filename system. Drasticly improved the skill system window to have it not go mad when -dm replay were encountered. Allmost of the skills/heroes/items for dota 6.34 should be parsed ok. v9: Added stringGrid auto sizing. Fixed a bug that was hiding the last item bought by an hero. Fixed the few hero skill that were left as unparsed. v10: Added the two new heroes to the script parsing part. v10b: Fixed a packaging issue where the map directory was not packed correctly. v10c: Fixed another packaging issue linked to the last dota map not being set up by default. v 0.11: Lots of changes: * Changed the version scheme. * a few bugfixes. * Added the project to Sourceforge.net . * introduced a c3g file format to describe custom maps, ladder maps with our without custom units. * dropped the old map system, the julas php script parsing to the profit of the c3g fileformat. * Added partial support to parse building and upgrades for normal ladder games. * switched from rar to 7zip for executable distribution. v 0.12: * c3g files are now versioned. * fixed a minor bug in the c3g file handling. * Added c3g files for dota allStars 6.38 and 6.38b. * fixed c3g files of 6.38b for some skills of sylabear and ogre magi that were not parsed correctly. * a few internal changes in the way the svn version was displayed in the program (usage of subwcrev.exe) and in the build step used to build the program. v 0.13 rc2: (svn rev:105) There were a lots of internal changes. (About 70 svn commits.). I'll list the most importants ones: * rc1 failed. (the executable was not working as intented.) * Dropped the c3g format usage for an xml format. * Implemented icons usage for skill items and heroes. * Added an xml report features for web based services. * Reworked the skill and hero detection. It is still not perfect but works better. It is not limited to one hero anymore. * Implemented max levels for skills, ultimates, stats and heroes for the various possible maps. * Added dota mode detection. * Implemented the detection of -ff command and ff in all chat. * Added a console executable to generate xml report (After a request from Hans2.) * Fixed a few skills that were incorrectly detected for dota 6.38b. * Enhanced the parser speed and added optionnal timing calculations. * Created an installer with nsis. (nullsoft installer). v 0.14 : (svn rev:114ish) * Added dota 6.39 xml file. * Added missing icons for new heroes. * Fixed a few wrongs icons. * Updated the action doc to reflect the new actions found in the replay of dota 6.39. v 0.14b: (svn rev:124ish) * Fixed a few icons. * Fixed a bug in error handling related to missing icons resulting in dead locking the program. * Added display of kill/death creepkills/ denies when these informations are available in the (dota) replay. v 0.14c: (svn rev:126ish) * Fixed icon of stout shield. * Added an option to copy the replay being parsed to the xml-report folded. v 0.14d: (svn rev:132ish) * Fixed icon for Elune's Arrow. * Fixed icon for Eul recipe. (it was the unknown code 'gfor'). * Fixed a bug in color handling when generating an xml report that would have caused a crash if observers/referers were present. v 0.14e: (svn rev:136ish) * Fixed a bug that made the parser crash under a Chinese version of windows. v 0.14f: (svn rev:141ish) * Fixed a crashing bug with dW3gParserConsole. * Added dota stats (kills/death/creep/denies) to xml report. * Updated the corresponding xlt to display these stats correctly. v 0.15a: (svn rev:173ish) * Updated the c3g-xml to the dota 6.43b version. * Fixed dota statistics accordingly. * Added dota winner side detection. * Changed the c3g-xml to use only hero classes as identifier. * Added an xml file to make links between images names and identifiers. * Fixed a few bugs in the xml parsing engine. * Added a system to localize the project. the various textbox, labels can have their captions and text properties changed by using preference -> activate dialog customization then by clicking on a control while pressing ctrl+shift. Contact me for more information on this subject. v 0.15b: (svn rev:190ish) * Fixed a bug that forbidden to browse, edit and create the list of map available for parsing. (in other words, when you tried to generate a new map it would fail...) * Fixed Mass Serpent Ward icon missing for Rastha. * Fixed Spiked Carapace icon missing for Nerub. * Cost of observer & sentry wards updated for version 6.43b version. * Dota Game mode not resetted when clear is done. * Added a few missing icons. * Added new items definition. * Fixed silence icon. * Fixed Butterfly price. * Fixed rigwarl icon bug. * Fixed Adaptive Strike name. * Fixed Grow Icon. * Fixed icon of Divided We Stand. * Fixed Fatal Bond and Shadow Word skill that were swapped. * Fixed reaper scythe definition (scepter). * Fixed POTM icon bug. * Fixed shallow Grave icon. * Fixed a bug in AFK engine definition. v 0.15c: (svn rev:194ish) * Forgot I have the program to open by default on my second monitor... which create funny results for people having only one monitor... v 0.15_999_1: ( pre 0.16 release) * Fixed the css / xml styles of images. * Removed unused (anymore) xml images related styles. * Implemented again calculation of levels for skills & heroes. * Implemented icon loading from the map. (maybe just perform icon extraction.) * Implemented icon extraction from the map. (->xml) * Implemented autogeneration of xml with any given map at runtime. * Allowed automatic extraction of a w3x map into xml. * Allowed extraction of images from the mpq files. * Allowed to use extracted images when the mpq can't be found or open. * Added a trailing space to the xml localized loading. (In order to help for the Chinese Kanjis displaying bug.) * Found out why zeus lightning bolt was linked with other heroes. * Reworked the skill - hero detection system in a statistical way. * Fixed the ignite like type spells (ignite 1 2, other spells are similar)... not being associated with a given hero. * Dropped the idea for alternative icons sets for xml style. v 0.15_999_2: * fixed a potential bug in map loading using storm.dll v 0.15_999_3: * Updated winner detection algorithm to fix the new version usage of action 0x6b in dota 6.44 map version. * Fixed a bug that disabled dota stats displaying for dota 6.44. * Fixed a bug in c3g xml generation. v 0.15_999_4: * Reworked the wc3xpath variable. * Fixed to c3g image loading not working (linked with path issues). v 0.15_999_5: * Added an option to export replays summary to an sql database. This feature is far from stable. More documentation will come in the future about it. The mysql table creation script is here https://svn.sourceforge.net/svnroot/dw3gparser/trunk/doc/sql.txt Check against svn revision 296 for this version of dw3gParser * Fixed a bug that caused the parser to crash with dota 6.45. v 0.15_999_6: * Made available an option to browse the associated mysql Database. * Fixed the command line version. v 0.15_999_7: * The sql interface is more stable. The creation scripts are available in /sql/create db.sql and /sql/create tables.sql the others scripts there are the one used by the program to get the data in and out of the database. * Fixed a few bugs related and not related to sql parsing. * The option to autoload replays should work far better, as some extensive memory leaking tracking has been done. Now this is still rather slow, it took about 2 hours to load 750 replays on an athlon 64 3500+. * Some sql statistics are available. * Fixed a potential crash problem when storm.dll was not detected. v 0.15_999_8: * Added an option to upload replays automatically to DotaLeague.com website or to dota-allstars website. * Fixed the search button not working in sql game form. v 0.15_999_9: * Fixed a bug that forbidden to generate xml reports. * Changed the way mysql is handled, to not produce errors when clicking on 'sqlize' when the database is not available. v 0.15_999_10: * Fixed a bug that forbidden to generate c3g-xml files in some condition. v 0.15_999_11: * Fixed a bug that caused the w3xpath variable to be not taken into account. v 0.15_999_12: * Fixed a minor bug that caused the tft executable to be not found. * The action form is now cleared each time actions are parsed again. * Updated Dota-league backend to fit the new site structure. * It is now possible to change the language used by the software. (German version available, tranlation done by Nexxus of Dota-League). * Added an event for detecting a savegame action. * Added a basic feature to detect hack gold transfer type. v 0.15_999_13: * Fixed a few bugs related with the localization saving. * Fixed a bug affecting localization linked with the xml parsing. * Fixed trailing a few 'trailing space' bugs affecting localization and number conversion. * Fixed a bug with chatlog becoming truncated in some rare case. (When a player messaged another player using the chatlog features.) * 'Gold hack' and 'replay not complete' warnings should not happend anymore in non interactive situations, they will be shown in log window. * Added support for -xl mode. * Some internal changes and code cleaning. v 0.15_999_14 * Fixed a bug affecting dota-league login. * Fixed some bugs related to localization. * Implemented APM calculation. (It is also in xml report.) * A lots of internal changes, including the following: * Reworked the action form. (available by hitting 'show action' button) * Added a list of orderstrings to the Ladder.xml file. The action form will contain all spell casted and used and various orders of action 0x10 -> 0x14. * Reworked the chatlog & event windows. * Added three new events in event windows, Rare attacks (which include attacks order against item), item being sold and item being transferred between players. * The event window will display the afk time of any player being afk for more than 110s. * An estimated time of total afk time is now available when double clicking on an hero( amognst with the stats.) * Added building information into c3g xml. (You might want to delete your c3g xml to regenerate them if you need the information.) * The mainform and actionform nows resize themselves if the application is resized. * Added client information to the xml generation. * Fixed Y axis that was inverted for minimap browsing. * Fixed a rare bug caused by players talking to observers and causing the chatlog to be truncated. * Fixed a rare bug causing the parser to not detect unpause due to pausing player leaving the game. (It's not a really bug but a game feature...)