From cf1fce9bc341b497126598b7115c36895d41e4e6 Mon Sep 17 00:00:00 2001 From: shavit Date: Wed, 26 Dec 2018 23:06:51 +0200 Subject: [PATCH] Fixed CS:GO chat colors. --- addons/sourcemod/scripting/shavit-chat.sp | 26 +++++++++++------------ addons/sourcemod/scripting/shavit-core.sp | 10 ++++----- 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/addons/sourcemod/scripting/shavit-chat.sp b/addons/sourcemod/scripting/shavit-chat.sp index aa2c8bce..d1563172 100644 --- a/addons/sourcemod/scripting/shavit-chat.sp +++ b/addons/sourcemod/scripting/shavit-chat.sp @@ -339,23 +339,21 @@ public Action Hook_SayText2(UserMsg msg_id, any msg, const int[] players, int pl if(gB_Protobuf) { - Protobuf pbmsg = msg; + Protobuf pbmsg = UserMessageToProtobuf(msg); client = pbmsg.ReadInt("ent_idx"); pbmsg.ReadString("msg_name", sMessage, 32); pbmsg.ReadString("params", sOriginalName, MAXLENGTH_NAME, 0); pbmsg.ReadString("params", sOriginalText, MAXLENGTH_TEXT, 1); - delete pbmsg; } else { - BfRead bfmsg = msg; + BfRead bfmsg = UserMessageToBfRead(msg); client = bfmsg.ReadByte(); bfmsg.ReadByte(); // chat parameter bfmsg.ReadString(sMessage, 32); bfmsg.ReadString(sOriginalName, MAXLENGTH_NAME); bfmsg.ReadString(sOriginalText, MAXLENGTH_TEXT); - delete bfmsg; } if(client == 0) @@ -493,7 +491,10 @@ void Frame_SendText(DataPack pack) if(gB_Protobuf) { - Protobuf pbmsg = view_as(hSayText2); + // show colors in cs:go + Format(sText, MAXLENGTH_BUFFER, " %s", sText); + + Protobuf pbmsg = UserMessageToProtobuf(hSayText2); pbmsg.SetInt("ent_idx", client); pbmsg.SetBool("chat", true); pbmsg.SetString("msg_name", sText); @@ -503,17 +504,14 @@ void Frame_SendText(DataPack pack) { pbmsg.AddString("params", ""); } - - delete pbmsg; } else { - BfWrite bfmsg = view_as(hSayText2); + BfWrite bfmsg = UserMessageToBfWrite(hSayText2); bfmsg.WriteByte(client); bfmsg.WriteByte(true); bfmsg.WriteString(sText); - delete bfmsg; } EndMessage(); @@ -1041,7 +1039,10 @@ void PreviewChat(int client, int rank) { if(gB_Protobuf) { - Protobuf pbmsg = view_as(hSayText2); + // show colors in cs:go + Format(sTextFormatting, MAXLENGTH_BUFFER, " %s", sTextFormatting); + + Protobuf pbmsg = UserMessageToProtobuf(hSayText2); pbmsg.SetInt("ent_idx", client); pbmsg.SetBool("chat", true); pbmsg.SetString("msg_name", sTextFormatting); @@ -1050,17 +1051,14 @@ void PreviewChat(int client, int rank) { pbmsg.AddString("params", ""); } - - delete pbmsg; } else { - BfWrite bfmsg = view_as(hSayText2); + BfWrite bfmsg = UserMessageToBfWrite(hSayText2); bfmsg.WriteByte(client); bfmsg.WriteByte(true); bfmsg.WriteString(sTextFormatting); - delete bfmsg; } } diff --git a/addons/sourcemod/scripting/shavit-core.sp b/addons/sourcemod/scripting/shavit-core.sp index 022e162f..969221de 100644 --- a/addons/sourcemod/scripting/shavit-core.sp +++ b/addons/sourcemod/scripting/shavit-core.sp @@ -1138,7 +1138,10 @@ public int Native_PrintToChat(Handle handler, int numParams) if(gB_Protobuf) { - Protobuf pbmsg = view_as(CloneHandle(hSayText2)); + // show colors in cs:go + Format(sBuffer, 300, " %s", sBuffer); + + Protobuf pbmsg = UserMessageToProtobuf(hSayText2); pbmsg.SetInt("ent_idx", client); pbmsg.SetBool("chat", !gB_StopChatSound); pbmsg.SetString("msg_name", sBuffer); @@ -1148,17 +1151,14 @@ public int Native_PrintToChat(Handle handler, int numParams) { pbmsg.AddString("params", ""); } - - delete pbmsg; } else { - BfWrite bfmsg = view_as(CloneHandle(hSayText2)); + BfWrite bfmsg = UserMessageToBfWrite(hSayText2); bfmsg.WriteByte(client); bfmsg.WriteByte(!gB_StopChatSound); bfmsg.WriteString(sBuffer); - delete bfmsg; } EndMessage();