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); }
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)); } }); }
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; }
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); }
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); }
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; } }
public void Add(BattleUserInfo info) { BattleUserInfos.Add(info); }
internal BattleUserInfo GetBattleUserInfo() { BattleUserInfo roomInfo = new BattleUserInfo(this._numTeams, this._numUserPerTeam, this._users); return(roomInfo); }