⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chatroom.cs

📁 网络游戏征服的服务端部分完整源码 VC编译 绝少的源码 有兴趣的可以
💻 CS
字号:
using System;
using System.Collections;

namespace CO_Full_Server
{
	/// <summary>
	/// Summary description for ChatRoom.
	/// </summary>
	public class ChatRoom
	{
		private string m_Name = "";
		private string m_Password = "";
		private COClient m_Moderator;
		private ArrayList m_Members = new ArrayList(2);

		public string Name
		{
			get
			{
				return m_Name;
			}
			set
			{
				m_Name = value;
			}
		}

		public string Password
		{
			set
			{
				m_Password = value;
			}
		}

		public ChatRoom(string Name, string Password, COClient Moderator)
		{
			m_Name = Name;
			m_Password = Password;
			m_Moderator = Moderator;
		}

		public ChatRoom(string Name, COClient Moderator)
		{
			m_Name = Name;
			m_Password = "";
			m_Moderator = Moderator;
		}

		public void SendMessage(string Text, COClient Sender)
		{
			foreach (COClient Client in m_Members)
			{
				if (Client != Sender)
					Client.SendData(PacketBuilder.Message(Client.MessageID, Sender.Char.Name, m_Name, Text, World.ChatType.Team));
			}
		}

		public bool Join(COClient Client, string Password)
		{
			if ((m_Password == "" || m_Password == Password) && !m_Members.Contains(Client))
			{
				m_Members.Add(Client);
				SendMessage(Client.Char.Name + " has joined the room.", Client);
				ListMembers(Client);
				return true;
			}
			else
			{
				return false;
			}
		}

		public void ListMembers(COClient Client)
		{
			string Members = "Current users in this room: ";
			string [] Send;
			foreach (COClient Cli in m_Members)
			{
				if (Members.Length % 150 < 16)
					Members += "\n";
				Members = Members + Cli.Char.Name + ", ";
			}

			Send = Members.Split(new char[]{'\n'});

			foreach (string Message in Send)
			{
				Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", Client.Char.Name, Message, World.ChatType.Talk));
			}

		}

		public bool Leave(COClient Sender)
		{
			SendMessage(Sender.Char.Name + " has left the room.", Sender);
			m_Members.Remove(Sender);
			return m_Members.Count == 0;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -