• Stars
    star
    152
  • Rank 244,685 (Top 5 %)
  • Language
    C++
  • License
    BSD 2-Clause "Sim...
  • Created over 10 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Linux, OSX port of Valve's demoinfogo tool

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 );

More Repositories

1

isMobile

A simple JS library that detects mobile devices.
TypeScript
2,356
star
2

csgo

A containerized dedicated server for Counter-Strike: Global Offensive
Shell
242
star
3

node-imgur

Upload images to imgur.com
JavaScript
176
star
4

node-googl

A Node.js url shortener and expander powered by Google
JavaScript
97
star
5

php-bbcode

A naive attempt at a BBCode "parser" written in PHP. It uses regex and thus fails at complex, nested tags.
PHP
22
star
6

steamcmd

SteamCMD docker container
Shell
13
star
7

jquery-bbcode

Easily transform textareas into BBCode WYSIWYG editors.
JavaScript
9
star
8

bbcode

A naive attempt at a BBCode "parser" written in JavaScript. It uses regex and thus fails at complex, nested tags.
JavaScript
5
star
9

zepto-fluid-carousel

A Zepto plug-in to create fluid, responsive carousels
JavaScript
4
star
10

vim-config

My personal Vim setup
Vim Script
3
star
11

input-validator

Input Validator is a javascript library that performs the most common types of validation on the web.
JavaScript
2
star
12

go-sitemap

A Go package for consuming sitemaps
Go
2
star
13

minicat

Automate your JS/CSS minification and concatenation process -- conditionally.
PHP
1
star
14

go-prism

Capture CS:GO gameplay data for analysis
C++
1
star
15

ballin

An HTML5 canvas game and project for collabraCode();
JavaScript
1
star
16

mms_sample_ext

Sample Metamod:Source Plugin for CSGO that also implements a SourceMod Extension
C++
1
star
17

csgo-base

Base docker image for CSGO dedicated servers
1
star
18

tsquery

tsQuery is a JavaScript library that wraps around the TeamSite FormAPI to simplify item addressing, and event handling for rapid data capture form development.
JavaScript
1
star
19

show-next-version

JavaScript
1
star