예제 #1
0
        public void BattleStartHandler(NetConnection connection, object data)
        {
            PlayerInitDatas inits = GCli.Deserialize <PlayerInitDatas>((byte[])data);

            GCli.ClearPacketHandler();
            room.SetActive(false);
            menu.SetActive(false);

            GCli.SetPacketHandler(MessageType.Snapshot, DataType.Bytes, SnapshotHandler);
            GCli.SetPacketHandler(MessageType.ReplyWon, DataType.Int32, ReplyWonHandler);
            GCli.SetPacketHandler(MessageType.BattleEnd, DataType.Null, BattleEndHandler);
            GCli.SetPacketHandler(MessageType.ReplySetBlock, DataType.Bytes, ReplySetBlockHandler);
            GCli.SetPacketHandler(MessageType.ReplyFire, DataType.Int32, ReplyFire);

            foreach (PlayerInitData init in inits.datas)
            {
                if (init.sync.userid == Players.userid)
                {
                    World.SetCoreFaction(init.faction);

                    Players.AddPlayer(init);
                }
            }
            foreach (PlayerInitData init in inits.datas)
            {
                if (init.sync.userid != Players.userid)
                {
                    Players.AddOtherPlayer(init);
                }
            }
        }
예제 #2
0
        public void SnapshotHandler(NetConnection connection, object data)
        {
            SnapShotData snap = GCli.Deserialize <SnapShotData>((byte[])data);

            Players.UpdatePlayerSyncData(snap.syncs);
            ui.AddBlocks(snap.pixels);
        }
예제 #3
0
        public void ConnectSuccessHandler(NetConnection connection, object data)
        {
            GCli.ClearPacketHandler();

            InitData init = GCli.Deserialize <InitData>((byte[])data);

            GameObject.Find("Canvas").GetComponent <UIScript>().SetInitData(init.bmps);
            Players.SetPlayer(init.sync);

            GCli.SetPacketHandler(MessageType.Snapshot, DataType.Bytes, SnapshotHandler);
        }
예제 #4
0
        public void ReplySetBlockHandler(NetConnection connection, object data)
        {
            BlockData block = GCli.Deserialize <BlockData>((byte[])data);

            World.SetBlock(block.x, block.y, block.z, block.blocktype);
        }
예제 #5
0
        public void ReplyRoomStateHandler(NetConnection connection, object data)
        {
            RoomState state = GCli.Deserialize <RoomState>((byte[])data);

            RefreshRoomUI(state);
        }
예제 #6
0
        public void ReplyLobbyStateHandler(NetConnection connection, object data)
        {
            LobbyState state = GCli.Deserialize <LobbyState>((byte[])data);

            RefreshLobbyUI(state);
        }
예제 #7
0
        public void SnapshotHandler(NetConnection connection, object data)
        {
            PlayerSyncDatas datas = GCli.Deserialize <PlayerSyncDatas>((byte[])data);

            Players.UpdatePlayerSyncData(datas.datas);
        }