CS:GO User Messages
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 );