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;
}
}
}