private void OnEvent(MatchUserEvent.Type type, MatchUser sender, MatchState state) { switch (type) { case MatchUserEvent.Type.AddToGrading: //{ // Protos.CS2GC_AddToMatch response = ProtoCreator.Q_CS2GC_AddToMatch(); // CS.instance.userMgr.GetUser( e.user.id ).Send( response ); //} break; case MatchUserEvent.Type.RemoveFromGrading: { CSUser user = CS.instance.userMgr.GetUser(sender.id); this._userToMatchUser.Remove(user); Protos.CS2GC_RemoveFromMatch response = ProtoCreator.Q_CS2GC_RemoveFromMatch(); user.Send(response); } break; case MatchUserEvent.Type.AddToLounge: case MatchUserEvent.Type.RemoveFromLounge: { Protos.CS2GC_MatchState pMatchState = ProtoCreator.Q_CS2GC_MatchState(); for (int i = 0; i < state.numTeam; i++) { MatchUser[] matchUsers = state.tUsers[i]; for (int j = 0; j < state.numUserPerTeam; j++) { MatchUser matchUser = matchUsers[j]; if (matchUser == null) { Protos.CS2GC_PlayerInfo playerInfo = new Protos.CS2GC_PlayerInfo { Vaild = false, }; pMatchState.PlayerInfos.Add(playerInfo); } else { CSUser user = CS.instance.userMgr.GetUser(matchUser.id); Protos.CS2GC_PlayerInfo playerInfo = new Protos.CS2GC_PlayerInfo { Vaild = true, GcNID = user.gcNID, Team = i, ActorID = user.actorID, Nickname = user.nickname, Avatar = user.avatar, Gender = user.gender, Money = user.money, Diamoned = user.diamoned, Rank = user.rank }; pMatchState.PlayerInfos.Add(playerInfo); } } } this.Broadcast(state.users, pMatchState); } break; case MatchUserEvent.Type.MatchSuccess: this.BeginBattle(state); break; } }
private void OnEvent(MatchEvent.Type type, MatchRoomUser sender, BattleUserInfo battleUserInfo) { switch (type) { case MatchEvent.Type.AddToRoom: { Protos.CS2GC_AddToMatch response = ProtoCreator.Q_CS2GC_AddToMatch(); CS.instance.userMgr.GetUser(sender.id).Send(response); } break; case MatchEvent.Type.RemoveFromRoom: { Protos.CS2GC_RemoveFromMatch response = ProtoCreator.Q_CS2GC_RemoveFromMatch(); CS.instance.userMgr.GetUser(sender.id).Send(response); } break; case MatchEvent.Type.RoomInfo: { Protos.CS2GC_MatchState pMatchState = ProtoCreator.Q_CS2GC_MatchState(); int c1 = battleUserInfo.tUsers.Length; for (int i = 0; i < c1; i++) { BattleUser[] roomUsers = battleUserInfo.tUsers[i]; int c2 = roomUsers.Length; for (int j = 0; j < c2; j++) { BattleUser roomUser = roomUsers[j]; if (roomUser == null) { Protos.CS2GC_PlayerInfo playerInfo = new Protos.CS2GC_PlayerInfo { Vaild = false, }; pMatchState.PlayerInfos.Add(playerInfo); } else { CSUser user = CS.instance.userMgr.GetUser(roomUser.id); Protos.CS2GC_PlayerInfo playerInfo = new Protos.CS2GC_PlayerInfo { Vaild = true, GcNID = user.gcNID, Team = i, ActorID = user.actorID, Nickname = user.nickname, Avatar = user.avatar, Gender = user.gender, Money = user.money, Diamoned = user.diamoned, Rank = user.rank }; pMatchState.PlayerInfos.Add(playerInfo); } } } CS.instance.battleEntry.Broadcast(battleUserInfo.users, pMatchState); } break; case MatchEvent.Type.MatchSuccess: foreach (MatchRoomUser user in battleUserInfo.users) { this._userIDToRoomUser.Remove(user.id); } CS.instance.battleEntry.BeginBattle(battleUserInfo.users, battleUserInfo.tUsers); break; } }