Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "fmt"
- "log"
- "os"
- "strings"
- "github.com/dotabuff/manta"
- )
- func main() {
- // Create a new parser instance from a file. Alternatively see NewParser([]byte)
- f, err := os.Open("my_replay.dem")
- if err != nil {
- log.Fatalf("unable to open file: %s", err)
- }
- defer f.Close()
- p, err := manta.NewStreamParser(f)
- if err != nil {
- log.Fatalf("unable to create parser: %s", err)
- }
- p.OnPacketEntity(func(pe *manta.PacketEntity, eventType manta.EntityEventType) error {
- switch eventType {
- case manta.EntityEventType_Update:
- if strings.Contains(pe.ClassName, "CDOTA_Unit_Hero") {
- entityNameIndex, _ := pe.Fetch("CEntityIdentity.m_nameStringableIndex")
- entityName, _ := p.LookupStringByIndex("EntityNames",entityNameIndex.(int32))
- m_cellX, _ := pe.FetchFloat32("DT_DOTA_BaseNPC.m_cellX");
- fmt.Println(p.Tick, entityName, m_cellX)
- }
- }
- return nil
- })
- // Start parsing the replay!
- p.Start()
- log.Printf("Parse Complete!\n")
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement