public void AddChatMessage(ChatMessage message) { GameServer.Log(message.TextWithSender, ServerLog.MessageType.Chat); string displayedText = message.Text; if (message.Sender != null && !message.Sender.IsDead) { message.Sender.ShowSpeechBubble(2.0f, ChatMessage.MessageColor[(int)message.Type]); } #if CLIENT GameMain.NetLobbyScreen.NewChatMessage(message); //NilMod Chat Changes while (chatBox.CountChildren > GameMain.NilMod.ChatboxMaxMessages) { chatBox.RemoveChild(chatBox.children[0]); } if (!string.IsNullOrWhiteSpace(message.SenderName)) { displayedText = (message.Type == ChatMessageType.Private ? "[PM] " : "") + message.SenderName + ": " + displayedText; } GUITextBlock msg = new GUITextBlock(new Rectangle(0, 0, chatBox.Rect.Width - 40, 0), displayedText, ((chatBox.CountChildren % 2) == 0) ? Color.Transparent : Color.Black * 0.1f, message.Color, Alignment.Left, Alignment.TopLeft, "", null, true, GUI.SmallFont); msg.UserData = message.SenderName; msg.CanBeFocused = false; msg.Padding = new Vector4(20.0f, 0, 0, 0); float prevSize = chatBox.BarSize; msg.Padding = new Vector4(20, 0, 0, 0); chatBox.AddChild(msg); if ((prevSize == 1.0f && chatBox.BarScroll == 0.0f) || (prevSize < 1.0f && chatBox.BarScroll == 1.0f)) { chatBox.BarScroll = 1.0f; } GUISoundType soundType = GUISoundType.Message; if (message.Type == ChatMessageType.Radio) { soundType = GUISoundType.RadioMessage; } else if (message.Type == ChatMessageType.Dead) { soundType = GUISoundType.DeadMessage; } GUI.PlayUISound(soundType); #endif }
public static void PlayUISound(GUISoundType soundType) { if (sounds == null) { return; } int soundIndex = (int)soundType; if (soundIndex < 0 || soundIndex >= sounds.Length) { return; } sounds[soundIndex].Play(); }