CS:GO User Messages

From Valve Developer Community
Revision as of 09:31, 3 January 2013 by Supergurj (talk | contribs) (Added writeup on protobuf format CS:GO user messages)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
User Messages in CS:GO

User 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

On Windows, follow these steps to generate C++ classes from CS:GO .proto files. For this tutorial we'll assume all packages are extracted to the same folder and that the CS:GO .proto files are copied there as well.

  • Download the protocol buffer compiler protoc-2.3.0 and extract it. This tool is required to generate C++ classes from CS:GO .proto files.
  • Download protobuf-2.3.0 and extract it. This package contains files that are included by CS:GO .proto files
  • Download netmessages.proto and cstrike15_usermessages.proto. The latter contains user message definitions.
  • Switch to the folder that contains all the above and compile the .proto files as follows.
protoc --proto_path=. --proto_path=protobuf-2.3.0\src --cpp_out=. cstrike15_usermessages.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 );