Exemplo n.º 1
0
 public void MsgtoSer_StartGame(NetworkConnection cliconn, Msg_StartGame climsg)
 {
     if (climsg.comcode == ComCode.StartGame)
     {
         H.klog($"Server got msg to start game at room {climsg.roomid}");
         if (GameMan._ins.roomTab_ser.ContainsKey(climsg.roomid))
         {
             GameMan.Room ro = GameMan._ins.roomTab_ser[climsg.roomid];
             // sending loading message to leader and all other member
             Msg_StartGame mess = new Msg_StartGame {
                 sceneName = "Scene_001", comcode = ComCode.StartGame, load_scene_command = true
             };
             ro.leader.Send(mess);
             for (int i = 0; i < ro.members.Count; i++)
             {
                 ro.members[i].Send(mess);
             }
             GameMan._ins.SetupMatchIns(climsg.roomid);
         }
     }
     else if (climsg.comcode == ComCode.SceneLoading)
     {
         H.klog($"This client {cliconn.connectionId} finishes loading scene");
         if (GameMan._ins.roomTab_ser.ContainsKey(climsg.roomid))
         {
             GameMan.Room ro = GameMan._ins.roomTab_ser[climsg.roomid];
             if (ro.members.Count == 0)
             {
                 ro.leader.Send(new Msg_StartGame {
                     comcode = ComCode.StartGame, rdyNspawn = true
                 });
             }
             else
             {
                 ro.allDoneLoading += 1;
                 if (ro.allDoneLoading == (ro.members.Count + 1))
                 {
                     ro.allDoneLoading = 0;
                     Msg_StartGame msg = new Msg_StartGame {
                         comcode = ComCode.StartGame, rdyNspawn = true, load_scene_command = false
                     };
                     ro.leader.Send(msg);
                     for (int i = 0; i < ro.members.Count; i++)
                     {
                         ro.members[i].Send(msg);
                     }
                 }
             }
         }
     }
 }
Exemplo n.º 2
0
 public void MsgtoCli_StartGame(Msg_StartGame sermsg)
 {
     if (sermsg.comcode == ComCode.StartGame)
     {
         if (sermsg.load_scene_command)
         {
             sceneloading = SceneManager.LoadSceneAsync(sermsg.sceneName);
         }
         else
         {
             if (sermsg.rdyNspawn)
             {
                 ReadySpawn();
             }
         }
     }
 }
Exemplo n.º 3
0
        void OnMsg_L2C_RepLogin(Deserializer reader)
        {
            var msg = reader.Parse <NetMsg.Lobby.Msg_RepLogin>();

            _playerID = msg.playerId;
            Debug.Log("PlayerID " + _playerID + " roomId:" + msg.roomId);
            if (msg.roomId > 0)
            {
                IsReconnected = true;
                InitRoom(msg.ip, msg.port, NetworkDefine.NetKey);
                var subMsg = new Msg_StartGame();
                subMsg.Deserialize(new Deserializer(msg.childMsg));
                reconnectedInfo = subMsg;
                StartRoom();
            }
            else
            {
                EventHelper.Trigger(EEvent.OnLoginResult, msg);
            }
        }
Exemplo n.º 4
0
        void OnMsg_L2C_ReqInit(Deserializer reader)
        {
            var msg = reader.Parse <NetMsg.Lobby.Msg_RepInit>();

            _playerID = msg.playerId;
            Debug.Log("PlayerID " + _playerID + " roomId:" + msg.roomId);
            if (msg.roomId > 0)
            {
                IsReconnected = true;
                InitRoom(msg.ip, msg.port, NetworkDefine.NetKey);
                var subMsg = new Msg_StartGame();
                subMsg.Deserialize(new Deserializer(msg.childMsg));
                reconnectedInfo = subMsg;
                StartRoom();
            }
            else
            {
                SendCreateRoomMsg();
            }
        }
Exemplo n.º 5
0
        public void OpenRecordFile(string path)
        {
            var bytes     = File.ReadAllBytes(path);
            var reader    = new Deserializer(Compressor.Decompress(bytes));
            var TypeId    = reader.GetInt();
            var RoomId    = reader.GetInt();
            var Seed      = reader.GetInt();
            var AllActors = reader.GetBytes_255();
            var msg       = new Msg_RepMissFrame();

            msg.startTick = 0;
            msg.Deserialize(reader);
            var msgStartGame = new Msg_StartGame();

            msgStartGame.RoomID          = RoomId;
            msgStartGame.Seed            = Seed;
            msgStartGame.AllActors       = AllActors;
            msgStartGame.SimulationSpeed = 60;
            MaxRunTick  = msg.frames.Length + 1;
            IsVideoMode = true;
            framesInfo  = msg;
            gameInfo    = msgStartGame;
        }
Exemplo n.º 6
0
 public static void StartGame(Msg_StartGame msg)
 {
     UnityEngine.Debug.Log("StartGame");
     Instance.StartGame(msg.mapId, msg.playerInfos, msg.localPlayerId);
 }