Пример #1
0
        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;
            }
        }
Пример #2
0
        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;
            }
        }