Advertisement
Guest User

Untitled

a guest
Aug 30th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.19 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.   "fmt"
  5.   "log"
  6.   "os"
  7.   "strings"
  8.  
  9.   "github.com/dotabuff/manta"
  10. )
  11.  
  12. func main() {
  13.   // Create a new parser instance from a file. Alternatively see NewParser([]byte)
  14.   f, err := os.Open("my_replay.dem")
  15.   if err != nil {
  16.     log.Fatalf("unable to open file: %s", err)
  17.   }
  18.   defer f.Close()
  19.  
  20.   p, err := manta.NewStreamParser(f)
  21.   if err != nil {
  22.     log.Fatalf("unable to create parser: %s", err)
  23.   }
  24.    
  25.     p.OnPacketEntity(func(pe *manta.PacketEntity, eventType manta.EntityEventType) error {
  26.  
  27.         switch eventType {
  28.  
  29.         case manta.EntityEventType_Update:
  30.            
  31.             if strings.Contains(pe.ClassName, "CDOTA_Unit_Hero") {
  32.                 entityNameIndex, _ := pe.Fetch("CEntityIdentity.m_nameStringableIndex")
  33.                
  34.                 entityName, _  := p.LookupStringByIndex("EntityNames",entityNameIndex.(int32))
  35.                
  36.                 m_cellX, _ := pe.FetchFloat32("DT_DOTA_BaseNPC.m_cellX");
  37.                
  38.                         fmt.Println(p.Tick, entityName, m_cellX)
  39.  
  40.             }
  41.         }
  42.         return nil
  43.     })
  44.   // Start parsing the replay!
  45.   p.Start()
  46.  
  47.   log.Printf("Parse Complete!\n")
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement