Giter VIP home page Giter VIP logo

demoinfogo-linux's Introduction

Build Status

CS:GO Demos and Network Messages

Demos and network messages in CS:GO use Google's Protocol Buffers (protobuf). Protobuf is a message/object serialization language that generates code to serialize the objects efficiently. For information about protobuf, see https://developers.google.com/protocol-buffers/docs/overview

demoinfogo is a tool that parses CS:GO demo files (ending in .dem) and dumps out every message in the demo. Using this tool, third parties can parse the demo for various game events to generate information and statistics.

The repo contains the source code required to build this tool on linux. The source includes the proto files containing network message definitions.

Building demoinfogo

Prequisites:

  • On Debian/Ubuntu, install the essential build tools: sudo apt-get install build-essential
  • Additionally, if your Debian/Ubuntu OS is 64-bit, you'll also need g++ multilib: sudo apt-get install g++-multilib
  • On OSX, install the Command Line Tools: xcode-select install

In order to build demoinfogo, follow these steps:

  1. Run make get_protobuf to download protobuf 2.5.0 and extract it to the root of this repo.
  2. Run make protobuf to configure and compile it.
  3. Run make to compile and create demoinfogo

Both protobuf and demoinfogo are cross-compiled for 32-bit; otherwise it will not work.

Working with Network Messages

Building demoinfogo generates C++ classes from the network protobuf files. Follow these steps to generate these files for use in your application without building demoinfogo:

  1. Follow the instructions above for downloading and compiling protobuf 2.5.0 from source.
  2. Run make generated_proto. The generated C++ files are created in subdirectory named src/generated_proto.

You can now use the generated classes in your C++ code to send user messages. Here is an example of how to send the HintText message

CSingleUserRecipientFilter filter( this );
filter.MakeReliable();
CCSUsrMsg_HintText msg;
msg.set_text( "ExampleHint" );
SendUserMessage( filter, CS_UM_HintText, msg );

demoinfogo-linux's People

Contributors

kaimallea avatar rchh avatar spotify-kai avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.