示例#1
0
        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
        }
示例#2
0
        public static void PlayUISound(GUISoundType soundType)
        {
            if (sounds == null)
            {
                return;
            }

            int soundIndex = (int)soundType;

            if (soundIndex < 0 || soundIndex >= sounds.Length)
            {
                return;
            }

            sounds[soundIndex].Play();
        }