示例#1
0
        private static void OnGetRoomInfo(MsgBase msgBase)
        {
            MsgGetRoomInfo   msg = (MsgGetRoomInfo)msgBase;
            RoomDetailScence roomDetailScence = ContainerBuilder.Resolve <RoomDetailScence>();

            roomDetailScence.Room = JsonConvert.DeserializeObject <Room>(msg.result);
        }
示例#2
0
文件: Room.cs 项目: cocos56/TanksWar
    //生成MsgGetRoomInfo协议
    public MsgBase ToMsg()
    {
        MsgGetRoomInfo msg   = new MsgGetRoomInfo();
        int            count = playerIds.Count;

        msg.players = new PlayerInfo[count];
        //players
        int i = 0;

        foreach (string id in playerIds.Keys)
        {
            Player     player     = PlayerManager.GetPlayer(id);
            PlayerInfo playerInfo = new PlayerInfo();
            //赋值
            playerInfo.id      = player.id;
            playerInfo.camp    = player.camp;
            playerInfo.win     = player.data.win;
            playerInfo.lost    = player.data.lost;
            playerInfo.isOwner = 0;
            if (isOwner(player))
            {
                playerInfo.isOwner = 1;
            }

            msg.players[i] = playerInfo;
            i++;
        }
        return(msg);
    }
示例#3
0
    //generate MsgGetRoomInfo protocol
    public MsgBase ToMsg()
    {
        MsgGetRoomInfo msg   = new MsgGetRoomInfo();
        int            count = playerDic.Count;

        msg.players = new PlayerInfo[count];
        //players
        int i = 0;

        foreach (string id in playerDic.Keys)
        {
            Player player = PlayerManager.GetPlayer(id);
            if (player == null)
            {
                continue;
            }
            PlayerInfo playerInfo = new PlayerInfo
            {
                id      = player.id,
                camp    = player.camp,
                isOwner = 0
            };

            if (IsOwner(player))
            {
                playerInfo.isOwner = 1;
            }

            msg.players[i] = playerInfo;
            i++;
        }
        return(msg);
    }
示例#4
0
    //收到玩家列表协议
    public void OnMsgGetRoomInfo(MsgBase msgBase)
    {
        MsgGetRoomInfo msg = (MsgGetRoomInfo)msgBase;

        //清除玩家列表
        for (int i = content1.childCount - 1; i >= 0; i--)
        {
            GameObject o = content1.GetChild(i).gameObject;
            Destroy(o);
        }
        for (int i = content2.childCount - 1; i >= 0; i--)
        {
            GameObject o = content2.GetChild(i).gameObject;
            Destroy(o);
        }
        //重新生成列表
        if (msg.players == null)
        {
            return;
        }
        for (int i = 0; i < msg.players.Length; i++)
        {
            GeneratePlayerInfo(msg.players[i]);
        }
    }
示例#5
0
        public static void MsgGetRoomInfo(ClientState c, MsgBase msgBase)
        {
            MsgGetRoomInfo msg  = (MsgGetRoomInfo)msgBase;
            User           user = c.user;

            if (user == null)
            {
                msg.code   = HttpStatusCode.Unauthorized;
                msg.result = "请先登录";
                NetManager.Send(c, msg);
                return;
            }

            Room room = RoomManager.GetRoom(user.RoomId);

            if (room == null)
            {
                msg.code   = HttpStatusCode.NotFound;
                msg.result = "房间不存在";
                return;
            }
            //获取玩家列表

            msg.code   = HttpStatusCode.OK;
            msg.result = JsonConvert.SerializeObject(room);
            NetManager.Send(c, msg);
        }
示例#6
0
    //收到玩家列表协议
    public void OnMsgGetRoomInfo(MsgBase msgBase)
    {
        MsgGetRoomInfo msg = (MsgGetRoomInfo)msgBase;

        //清除玩家列表
        for (int i = content.childCount - 1; i >= 0; i--)
        {
            GameObject o = content.GetChild(i).gameObject;
            Destroy(o);
        }
        //重新生成列表
        if (msg.players == null)
        {
            return;
        }
        for (int i = 0; i < msg.players.Length; i++)
        {
            string id = msg.players[i].id;
            if (id == GameMain.id)
            {
                if (msg.players[i].isOwner == 1)
                {
                    startButton.interactable = true;
                }
                else
                {
                    startButton.interactable = false;
                }
            }
            GeneratePlayerInfo(msg.players[i]);
        }
    }
示例#7
0
    //显示
    public override void OnShow(params object[] args)
    {
        //寻找组件
        startButton = skin.transform.Find("CtrlPanel/StartButton").GetComponent <Button>();
        closeButton = skin.transform.Find("CtrlPanel/CloseButton").GetComponent <Button>();
        content     = skin.transform.Find("ListPanel/Scroll View/Viewport/Content");
        playerObj   = skin.transform.Find("Player").gameObject;
        //不激活玩家信息
        playerObj.SetActive(false);
        //按钮事件
        startButton.onClick.AddListener(OnStartClick);
        closeButton.onClick.AddListener(OnCloseClick);
        startButton.onClick.AddListener(Audio.ButtonClick);
        closeButton.onClick.AddListener(Audio.ButtonClick);
        //协议监听
        NetManager.AddMsgListener("MsgGetRoomInfo", OnMsgGetRoomInfo);
        NetManager.AddMsgListener("MsgLeaveRoom", OnMsgLeaveRoom);
        NetManager.AddMsgListener("MsgStartBattle", OnMsgStartBattle);
        NetManager.AddMsgListener("MsgInitData", OnMsgInitData);
        //发送查询
        MsgGetRoomInfo msg = new MsgGetRoomInfo();

        NetManager.Send(msg);

        Audio.PlayLoop(Audio.bgRoomPanel);
    }
示例#8
0
	// public static void MsgEnterRoom(ClientState c, MsgBase msgBase){
	// 	MsgEnterRoom msg = (MsgEnterRoom)msgBase;
	// 	Player player = c.player;
	// 	if(player == null) return;
	// 	//已经在房间里
	// 	if(player.roomId >=0 ){
	// 		msg.result = 1;
	// 		player.Send(msg);
	// 		return;
	// 	}
	// 	//获取房间
	// 	Room room = RoomManager.GetRoom(msg.id);
	// 	if(room == null){
	// 		msg.result = 1;
	// 		player.Send(msg);
	// 		return;
	// 	}
	// 	//进入
	// 	if(!room.AddPlayer(player.id)){
	// 		msg.result = 1;
	// 		player.Send(msg);
	// 		return;
	// 	}
	// 	//返回协议	
	// 	msg.result = 0;
	// 	player.Send(msg);
	// }


	//获取房间信息
	public static void MsgGetRoomInfo(ClientState c, MsgBase msgBase){
		MsgGetRoomInfo msg = (MsgGetRoomInfo)msgBase;
		Player player = c.player;
		if(player == null) return;

		Room room = RoomManager.GetRoom(player.roomId);
		if(room == null){
			player.Send(msg);
			return;
		}

		player.Send(room.ToMsg());
	}