using System; using System.Collections.Generic; using System.Linq; namespace ET.Server { /// /// 创建房间 /// [MessageHandler(SceneType.Game)] public class C2G_CreatRoomHandler : AMRpcHandler { protected override async ETTask Run(Session session, C2G_CreatRoom request, G2C_CreatRoom response, Action reply) { Player player = session.GetComponent().GetMyPlayer(); if (player == null) { response.Error = ErrorCode.ERR_OperationError; response.Message = "玩家不存在或离线..."; reply(); return; } // 玩家是否有房间 if (player.RoomId > 0) { response.Error = ErrorCode.ERR_OperationError; response.Message = "玩家已在房间,不可创建房间..."; reply(); return; } Scene scene = session.DomainScene(); // 创建房间 Room room = scene.GetComponent().AddChild(player); // 绑定玩家房间 player.RoomId = room.RoomId; // 返回房间数据 response.Info = ProtoHelper.RoomToProto(room, player, null); reply(); await ETTask.CompletedTask; } } }