public async Task PlayerLeaveRoom(IUserGrain user) { S2C100006 content = new S2C100006(); content.UserId = user.GetPrimaryKeyLong(); content.RoomId = (int)this.GetPrimaryKeyLong(); MOMsg msg = new MOMsg(); msg.ActionId = 100006; msg.Content = content.ToByteString(); await RoomNotify(msg); _players.Remove(user.GetPrimaryKeyLong()); await user.UnsubscribeRoom(); }
public void Handle(object sender, Packet packet) { S2C100006 rep = S2C100006.Parser.ParseFrom(((MOPacket)packet).Packet.Content); if (rep.UserId == GameUser.Instance.UserId) { GlobalGame.IsGameStart = false; GlobalGame.Channel.Close(); GlobalGame.FrameCount = 0; GameUser.Instance.Players.Clear(); } else { PlayerData player; if (GameUser.Instance.Players.TryGetValue(rep.UserId, out player)) { GameUser.Instance.Players.Remove(rep.UserId); GameEntry.Entity.HideEntity(player.EntityId); } } }