dW3gParser (The d stands for delphi) current version: v 0.16_12 Legacy Release console version: 0.5 ************************************************************************************ ******* IMPORTANT NOTICE ****** ************************************************************************************ The project is hosted on sourceforge: https://sourceforge.net/projects/dw3gparser (Old Related discussion on banlist forums:) http://www.banlist.nl/phpBB3/viewtopic.php?t=10120 I don't like much the sourceforge release system, hence no release there on month. That does not mean I stopped coding on this project. So any recent or bug fixed binaries is ought to be found here: http://esby.free.fr/prog/dW3gParser/ If you need to contact me can either contact me: * contact me via the sourceforge project boards (bug trackers...) * on quakenet IRC network under the 'esby' nickname. * on Freenode IRC network under the 'esby' nickname. * mail me, to get my mail, look at the place where the recent svn binaries are hosted and replace the first dot by a @ in the server name. ************************************************************************************ ******* WIKI ****** ************************************************************************************ The installation & troubleshooting FAQ is located on the wiki: There is also a basic usage guide there. http://dw3gparser.wiki.sourceforge.net/ ************************************************************************************ ******* IMPORTANT NOTICE (PART 2) ****** ************************************************************************************ I am dropping the support of Delphi toward Dw3gParser. Which means, I won't work on it unless I need to fix small bugs on it. This is what I call a legacy release. I am working on a new version, DLL / GUI based on lazarus http://www.lazarus.freepascal.org/ I'll probably keep the same name for the GUI (dw3gParser) and i'll change the library (DLL) name. Except possible bugfixes to this legacy release until I have no more reasons to switch definitely over the lazarus tree. SVN TREES: https://dw3gparser.svn.sourceforge.net/svnroot/dw3gparser/dw3g This tree hosts the old dw3gparser repositery. Which should compile under Delphi 6. https://dw3gparser.svn.sourceforge.net/svnroot/dw3gparser/lw3g This tree hosts the new repostitery, you'll probably need a recent svn snapshot of Lazarus to compile it. YOu'll also need Vampyre image library to compile it. https://dw3gparser.svn.sourceforge.net/svnroot/dw3gparser/pw3g This tree hosts an updated dota php parser. It is designed towards dota and only for it. It uses xml files and xslt technology to represent the data. ************************************************************************************ ******* DESCRIPTION ****** ************************************************************************************ A parser for w3g files (savegame format used by warcraft III and warcraft II expansion). dW3gParser is based on: * 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. * the gifimage library, from Anders Melander and upgraded to delphi 7 by Finn Tolderlund. The licence is Gpl v2, with the following exception: the program Wc3banlist is granted to use the units and code freely. So far I tested it only for w3x replays, now I don't know if it would work for old w3 replays. Thanks to: * The people who originally documented the w3g format. * All the person who contributed to this tool, including the banlist.nl community. Subversion log: http://dw3gparser.svn.sourceforge.net/viewvc/dw3gparser/trunk/?view=log Version history: (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...) v 0.16_1: * Legacy release. * There have been a lot of changes between this version (03 april 2009) and the 0.15_999_14 release. (7 october 2007). * Most were bugfixes, some were improvement, you'll have to discover the changes yourself, I am very lazy to write the changes. * You can check the http://dw3gparser.wiki.sourceforge.net/ to read FAQ installation and a few notes on the basic usage of the GUI. v 0.16_2: (bugfix) v 0.16_3: (bugfix) v 0.16_4: - 2011-02-01 * the swearing filter got a custom form to configure it. You can now associate a score with a keyword. Detected keywords will add to a player score. * you can now select a player chat by using the contextual mouse menu. * double clicking on a player on the action form will get you to select only him. v 0.16_5: (bugFix) - 2017-09-18 (yeah, I havn't touched the code since 7 years...) * fixed a crash linked to some dota (non officials?) variants named 6.88p2 - those adds 0x6b actions that are not standard with the previous ones known - issue reported by Jackpro555 v 0.16_6: (bugFix) - 2018-04-15 * fixed another crash linked to some dota (non officials?) variants ... - issue reported by Jackpro555 v 0.16_7: (bugFix) - 2018-07-02 * fixed Afk detection related to some dota (non officials?) variants ... - issue reported by Jackpro555 v 0.16_8: (bugFix) - 2018-08-18 * fixed Afk detection related to some dota (non officials?) variants ... - issue reported by Jackpro555 v 0.16_9: (bugFix) - 2018-10-18 * fixed Afk detection related to some dota (non officials?) variants ... - issue reported by Jackpro555 v 0.16_10: (bugFix) - 2018-11-04 * fixed a (rare) bug related with handling replays containing anomaly. v 0.16_11: (bugFix) - 2018-11-10 * Fixed an issue with some actions (eg: 0x14) being padded by four 0x0. * Fixed image loading for maps that does not contain the fileextension... v 0.16_12: (bugFix) - 2021-10-16 * Fixed a bug with 0x6B action APBan triggering a convert error message. V 0.17* will be reserved for the lazarus tree. Note: If people wants to submit new localization, they just have to copy the _EN file in ini/ressources folder and modify those files to create a new locale. Submit them back to me to have them included in the parser. There are files waiting for a CN (chinese) localization and a FR (french) localization... I am lazy to do the french one... Other localization are possible to implement by creating a new local code (eg: EE for estonian etc.) (Now the code still has to be changed to allow them to be used.) (beta versions) none yet. Possibly planned in a near future: Check toFix.txt in svn repositery. * any suggestion? So ... What This can do: * parsing game infos and such. * getting player name, leaving time and disconnect/leaving state, even if the replay was not done by the host. (need to test on more replay to be sure.) * parsing chatlog. * getting basic items that were bought by players (it is not implemented in the GUI, but the code exists and works somehow (linked to parsing actions)) Some extra notes: * parsing recipe is not possible for now as recipes are trigger based, there is no trace of the item created in the replay. but they could be emulated with an inventory feature. * Getting when an hero was killed is not possible. Don't ask me when it will comes, it's not possible unless on relying on map specific tricks. * Don't hesitate to submits bugs either to the banlist.nl associated thread or to the sourceforge bug forums. * If some people wants to write guides on how using this, I can put those guides in the installer or add links, depending what is the most convenient way. svn $Id: readme.txt 1300 2021-10-18 20:20:15Z esby $