コード例 #1
0
ファイル: RoleMgr.cs プロジェクト: MaxLykoS/Elimination
    void CreateRole(BattleUserInfo info, Transform transform)
    {
        GameObject _playerPrefab = Resources.Load <GameObject>("Prefabs/PlayerInstance");

        roles.Add(new PlayerMovement(info.BattleID, Instantiate(_playerPrefab, transform.position, transform.rotation, playerRoot)));
        Debug.Log("创建角色" + info.BattleID);
    }
コード例 #2
0
    public void CreateBattle()
    {
        int randSeed = UnityEngine.Random.Range(0, 100);

        ThreadPool.QueueUserWorkItem((obj) =>
        {
            dic_battleUserUid = new Dictionary <int, int>();
            dic_udp           = new Dictionary <int, ServerClientUdp>();
            dic_battleReady   = new Dictionary <int, bool>();

            int userBattleID = 1;

            TcpEnterBattleMessage bm = new TcpEnterBattleMessage(randSeed);
            foreach (MatchUserInfo info in group)
            {
                dic_battleUserUid[info.uid] = userBattleID;

                ServerClientUdp clientUdp = new ServerClientUdp(info.conn.GetIP(), info.uid, HandleMsg);
                clientUdp.StartClientUdp();
                dic_udp[userBattleID]         = clientUdp;
                dic_battleReady[userBattleID] = false;

                BattleUserInfo _bUser = new BattleUserInfo(info.uid, userBattleID);
                bm.Add(_bUser);
                userBattleID++;
            }

            foreach (MatchUserInfo info in group)
            {
                //  发送BattleEnterMessage
                Protocol p = new Protocol(bm);
                info.conn.Send(new Protocol(bm));
            }
        });
    }
コード例 #3
0
    IEnumerator CreatRole(GameVector2[] _roleGrid)
    {
        Dictionary <string, GameObject> pre_roleModle   = new Dictionary <string, GameObject> ();
        List <BattleUserInfo>           list_battleUser = BattleData.Instance.list_battleUser;

        for (int i = 0; i < list_battleUser.Count; i++)
        {
            yield return(new WaitForEndOfFrame());

            BattleUserInfo _info = list_battleUser [i];

            GameObject _base = Instantiate(pre_roleBase, roleParent);
            GameObject _ui   = Instantiate(pre_roleUI, _base.transform);

            //			string _modleStr = string.Format("BattleScene/Role/RoleModel{0}",_info.roleID);
            string _modleStr = "BattleScene/Role/RoleModel";
            if (!pre_roleModle.ContainsKey(_modleStr))
            {
                pre_roleModle [_modleStr] = Resources.Load <GameObject> (_modleStr);
            }
            GameObject _modle = Instantiate(pre_roleModle [_modleStr]);

            GameVector2 _grid = _roleGrid [_info.battleID - 1];
            GameVector2 _pos  = BattleData.Instance.GetMapGridCenterPosition(_grid.x, _grid.y);

            RoleBase _roleCon = _base.GetComponent <RoleBase> ();
            _roleCon.InitData(_ui, _modle, _info.battleID, _pos);
            dic_role [_info.battleID] = _roleCon;
        }

        initFinish = true;
    }
コード例 #4
0
        private void OnRoomFull(MatchRoom room)
        {
            BattleUserInfo roomInfo = room.GetBattleUserInfo();

            for (int i = 0; i < room.numUsers; ++i)
            {
                MatchRoomUser user = room.GetUserAt(i);
                room.RemoveUser(user);
            }
            this._rooms.Remove(room);
            MatchRoomPool.Push(room);
            this.eventHandler(MatchEvent.Type.MatchSuccess, null, roomInfo);
        }
コード例 #5
0
ファイル: BattleCon.cs プロジェクト: mengtest/FrameSync
    private float finishTime;    //结束倒计时
    public void CreatBattle(int _battleID, List <MatchUserInfo> _battleUser)
    {
        int randSeed = UnityEngine.Random.Range(0, 100);

        ThreadPool.QueueUserWorkItem((obj) => {
            battleID          = _battleID;
            dic_battleUserUid = new Dictionary <int, int> ();
            dic_udp           = new Dictionary <int, ClientUdp> ();
            dic_battleReady   = new Dictionary <int, bool>();

            int userBattleID = 0;

            TcpEnterBattle _mes = new TcpEnterBattle();
            _mes.randSeed       = randSeed;
            for (int i = 0; i < _battleUser.Count; i++)
            {
                int _userUid = _battleUser [i].uid;
                userBattleID++;

                dic_battleUserUid [_userUid] = userBattleID;

                string _ip = UserManage.Instance.GetUserInfo(_userUid).socketIp;
                var _upd   = new ClientUdp();

                _upd.StartClientUdp(_ip, _userUid);
                _upd.delegate_analyze_message = AnalyzeMessage;
                dic_udp [userBattleID]        = _upd;
                dic_battleReady[userBattleID] = false;

                BattleUserInfo _bUser = new BattleUserInfo();
                _bUser.uid            = _userUid;
                _bUser.battleID       = userBattleID;
                _bUser.roleID         = _battleUser [i].roleID;

                _mes.battleUserInfo.Add(_bUser);
            }

            for (int i = 0; i < _battleUser.Count; i++)
            {
                int _userUid = _battleUser [i].uid;
                string _ip   = UserManage.Instance.GetUserInfo(_userUid).socketIp;
                ServerTcp.Instance.SendMessage(_ip, CSData.GetSendMessage <TcpEnterBattle>(_mes, SCID.TCP_ENTER_BATTLE));
            }
        }, null);
    }
コード例 #6
0
ファイル: MatchManager.cs プロジェクト: niuniuzhu/KOW
        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;
            }
        }
コード例 #7
0
ファイル: Message.cs プロジェクト: MaxLykoS/Elimination
 public void Add(BattleUserInfo info)
 {
     BattleUserInfos.Add(info);
 }
コード例 #8
0
ファイル: Room.cs プロジェクト: niuniuzhu/KOW
        internal BattleUserInfo GetBattleUserInfo()
        {
            BattleUserInfo roomInfo = new BattleUserInfo(this._numTeams, this._numUserPerTeam, this._users);

            return(roomInfo);
        }