/// <summary> /// 广播加载进度 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SendLoading(object sender, ElapsedEventArgs e)//广播进度并判断 { bool Temp = true; ProtocolBytes bytes = new ProtocolBytes(); bytes.SetProtocol(Fursion_Protocol.Loading); RoomInitInfo roomplayerInfo = new RoomInitInfo(); foreach (Player player in MemberList.Values) { RoomPlayer roomPlayer = player.TempData.PlayerGameInfo; roomplayerInfo.RoomPlayers.Add(roomPlayer); } bytes.AddData(JsonConvert.SerializeObject(roomplayerInfo)); foreach (Player player in MemberList.Values) { if (player != null && player.UDPClient != null) { UDP.instance.SocketSend(bytes, player.UDPClient); } } foreach (Player player in MemberList.Values) { Temp &= player.TempData.PlayerGameInfo.LoadingProgressBool; } if (Temp) { ToStart(); } }
/// <summary> /// 进入加载阶段 /// </summary> /// <param name="roomInitInfo"></param> public void ToLoadingStage(RoomInitInfo roomInitInfo) { SelectTime.Dispose(); ProtocolBytes protocol = new ProtocolBytes(); protocol.SetProtocol(Fursion_Protocol.Loading); protocol.AddData(JsonConvert.SerializeObject(roomInitInfo)); foreach (Player player1 in MemberList.Values) { UDP.instance.SocketSend(protocol, player1.UDPClient); } LoadTimer.Enabled = true; MaxWaitLoadingTimer.Enabled = true; }
/// <summary> /// 客户端模型选择锁定函数,并判断是否全部锁定 /// </summary> /// <param name="select"></param> public void LockSelect() { RoomInitInfo roomplayerInfo = new RoomInitInfo(); bool AllLockSelect = true; foreach (Player player in MemberList.Values) { roomplayerInfo.RoomPlayers.Add(player.TempData.PlayerGameInfo); AllLockSelect &= player.TempData.PlayerGameInfo.LockSelect; } if (AllLockSelect) { ToLoadingStage(roomplayerInfo); } }