Page 12 of 19 FirstFirst ... 2 10 11 12 13 14 ... LastLast
Results 111 to 120 of 181

Thread: Dota 2 Demo File Format

  1. #111
    Basic Member
    Join Date
    Nov 2011
    Posts
    8
    +1 for the team chat being recorded in the replay file.

  2. #112
    hey guys. im fucking newbie in visual studio.

    can sm1 link me how to make some stuff. in fact i need some tool which will parse replay for players and their heroes and who win and mb game length

  3. #113
    sm1 plz help me. Ive managed to build dotainfo2. now i do need sm1 help me to make my dotinfo2 generate only CDemoFileInfo and winning team

  4. #114
    Basic Member Drake's Avatar
    Join Date
    Sep 2011
    Location
    Italy
    Posts
    29
    Sorry guys, someone noticed that deserializing DOTA_UM_ChatEvent or DOTA_UM_OverheadEvent sometimes does not work? Do you know if proto files has been changed since first release of demoinfo2.exe project?
    Dota 2 Italia Admin

    My system specs: Windows 7 64bit - AMD Phenom II X3 720 - ATI 6850 HD (latest drivers) - 4 GB RAM

  5. #115
    Basic Member
    Join Date
    Nov 2011
    Posts
    7
    Quote Originally Posted by SoloMidPlz View Post
    in fact i need some tool which will parse replay for players and their heroes and who win and mb game length
    This might be what you need.
    demSurfer - DotA 2 Replay Tool
    ---Have No Fear moz Is Here---

  6. #116
    Basic Member
    Join Date
    Oct 2011
    Posts
    72
    Anyone know how to fix the following error message when running demoinfo2 in cmd:

    libprotobuf error . src google protobuf message_lite.cc 123] can't parse message of type
    "CDOTAUserMsg_UnitEvent" because it is missing required fields: msg_type

    I do not get the error message when parsing older replays but do get it when parsing newer replays. It's frustrating because these messages were what I was using to tell when the battle started and which tower/barracks was killed. I found a work around for the tower/barracks kill but now my coding for deciphering when the battle begins is overly complex and not as accurate as before. Any help or a point in the right direction would be appreciated.

  7. #117
    Valve Developer Zoid's Avatar
    Join Date
    Sep 2011
    Posts
    1,065
    Looks like some messages were updated with additional fields, Razumov. I'll see if I can get an updated set of .proto files for the demotool soon.

  8. #118
    Basic Member
    Join Date
    Oct 2011
    Posts
    72
    Thanks for the reply Zoid. I was banging my head against the wall the other day trying to write some code to get an accurate game start using the fact that runes spawn every two minutes and a message appears when they get activated. Hopefully the updated files will allow me to return to getting the precise moment the game starts.

  9. #119
    Basic Member xXAVx's Avatar
    Join Date
    Apr 2012
    Posts
    43
    Hello onethirtyfive, all!
    I came here to dump all I have learned about PacketEntities after trying to crack'em for a few weeks, which is not much.

    First of all, we have some powerful command tools at our disposal, such as: cl_entityreport, cl_dota_showents, cl_predictioncopy_describe, cl_dumpplayer, dti_flush and even cl_flushentitypacket. Most of these commands allow you to count and see the entrails of the entities being exchanged between server and client. What is an entity, you say? As other posters have previously linked, DotA2 entities are everything: models, particles, light sources, flags, cooldowns, visibility, creeps, towers, items, EVERYTHING! The way the game works is by exchanging only entities that have changed within the last tick. The trick is to only exchange the entities that changed during the last tick, as to minimize the bandwidth. So, most of the exchanged entities are flagged as Delta by the DEMPacket. I believe that the (delta) entities somehow delimited by a 0xFF byte. Here's an example of a PacketEntities:

    DEM Packet Message, type Netmessages.CSVCMsg_PacketEntities:
    max_entries: 1457
    updated_entries: 5
    is_delta: true
    update_baseline: false
    baseline: 0
    delta_from: 4790
    Entity data (as byte array): 01 .02 .fc .ff .e5 .4a .00 .00 .00 .f8 .ff .db .02 .01 .fe .ff .1c .7a .3f .86 .a4 .22 .02 .ff .7f .f7 .fd .42 .c1 .82 .ff .bf .c7 .02


    As you can see, the PacketEntities claims to contain 5 entities. After further inspection of the data field, you will notice that there are always as many 0xff as updated_entries the packet claims to contain. This hints that the character 0xff is used to split entities within a PacketEntities packet. As onethirtyfive mentioned, the first entity seems to be a counter, which is encoded in a modified little endian 5bits+11bits. Unluckily, I am unable to relate this "counter" to any entity message, not even "DT_DOTAPlayer.m_nTickBase", which I am 99% it is. Why? Because after running some experimental DotA matches and dumping the list of exchanged entities (dti_flush), the entity counter reports that the entities exchanged the most are:


    1.- DT_DOTA_BaseNPC_Creep_Lane.m_vecOrigin: the position of all the creeps?
    2.- DT_DOTAPlayer.m_nTickBase: tick counter sent everytime?
    3.- DT_DOTA_Unit_Hero_Juggernaut.m_vecOrigin: the position of my hero?


    Again, as other posters have already mentioned, the entire list of entity properties is stored within SendTables, and at your disposal if you use Zoid's provided code.

    Still, the problem persists. It's a mystery how the entities are encoded, bit-wise, within the PacketEntities frames, and a big headache trying to reverse-engineer it. Valveeeee, HEEEELP!

    Lastly, for those interested in a Java implementation, here is the Java parser I have built. It's a straight translation of Zoid's C++ code into Java, with tons of debugging code. Use at your own risk (+ thanks to radonthetyrant for his heads up).

    Cheers.
    Last edited by xXAVx; 08-13-2012 at 04:49 AM. Reason: added source code

  10. #120
    Basic Member
    Join Date
    Nov 2011
    Posts
    2
    Quote Originally Posted by xXAVx View Post
    Valveeeee, HEEEELP!
    Seconding this. Have some ideas I really want to work on for Dota 2 related stuff but had no luck deciphering these.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •