class RoomController:BaseController { public RoomController(){} //新建房间 public string CreateRoom(数据, 客户端, 系统){} //房间列表 public string ListRoom(数据, 客户端, 系统){} //加入房间 public string JoinRoom(数据, 客户端, 系统){} //离开房间 public string QuitRoom(数据,客户端, 系统){} }
class RoomController:BaseController { public RoomController(){} //新建房间 public string CreateRoom(string data, Client client, Server server){} //房间列表 public string ListRoom(string data, Client client, Server server){} //加入房间 public string JoinRoom(string data, Client client, Server server){} //离开房间 public string QuitRoom(string data, Client client, Server server){} }
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Common;using GameServer.Servers;namespace GameServer.Controller{ class RoomController:BaseController { public RoomController() { requestCode = RequestCode.Room; } //新建房间 public string CreateRoom(string data, Client client, Server server) { server.CreateRoom(client); return ((int)ReturnCode.Success).ToString()+","+ ((int)RoleType.Blue).ToString(); } //房间列表 public string ListRoom(string data, Client client, Server server) { StringBuilder sb = new StringBuilder(); foreach(Room room in server.GetRoomList()) { if (room.IsWaitingJoin()) { sb.Append(room.GetHouseOwnerData()+"|"); } } if (sb.Length == 0) { sb.Append("0");//没有房间返回0 } else { sb.Remove(sb.Length - 1, 1);//去掉中杠 } return sb.ToString(); } //加入房间 public string JoinRoom(string data, Client client, Server server) { int id = int.Parse(data); Room room = server.GetRoomById(id); if(room == null) { return ((int)ReturnCode.NotFound).ToString(); } else if (room.IsWaitingJoin() == false) { return ((int)ReturnCode.Fail).ToString(); } else { room.AddClient(client); string roomData = room.GetRoomData();//"returncode,roletype-id,username,tc,wc|id,username,tc,wc" room.BroadcastMessage(client, ActionCode.UpdateRoom, roomData); return ((int)ReturnCode.Success).ToString() + "," + ((int)RoleType.Red).ToString()+ "-" + roomData; } } //离开房间 public string QuitRoom(string data, Client client, Server server) { bool isHouseOwner = client.IsHouseOwner(); Room room = client.Room; if (isHouseOwner) { room.BroadcastMessage(client, ActionCode.QuitRoom, ((int)ReturnCode.Success).ToString()); room.Close(); return ((int)ReturnCode.Success).ToString(); } else { client.Room.RemoveClient(client); room.BroadcastMessage(client, ActionCode.UpdateRoom, room.GetRoomData()); return ((int)ReturnCode.Success).ToString(); } } }}