1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace ET.Server
- {
- /// <summary>
- /// 创建房间
- /// </summary>
- [MessageHandler(SceneType.Game)]
- public class C2G_CreatRoomHandler : AMRpcHandler<C2G_CreatRoom, G2C_CreatRoom>
- {
- protected override async ETTask Run(Session session, C2G_CreatRoom request, G2C_CreatRoom response, Action reply)
- {
- Player player = session.GetComponent<SessionPlayerComponent>().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<GameRoomComponent>().AddChild<Room, Player>(player);
-
- // 绑定玩家房间
- player.RoomId = room.RoomId;
-
- // 返回房间数据
- response.Info = ProtoHelper.RoomToProto(room, player, null);
- reply();
- await ETTask.CompletedTask;
- }
- }
- }
|