public void onPlayerEnter(object data) { Room.Player player = (Room.Player)data; int local = CommonUtil.Util.getLocalBySeat(player.seat); //ADD PLAYER _realPlayer[local] = createPlayer(player); showWaitImg(false, local); if (local == (int)CommonDefine.SEAT.SELF) { if (_inRoomPlayerNum == 2) { showWaitImg(true, (int)CommonDefine.SEAT.TOP); } else if (_inRoomPlayerNum == 3) { showWaitImg(true, (int)CommonDefine.SEAT.RIGHT); showWaitImg(true, (int)CommonDefine.SEAT.LEFT); } else if (_inRoomPlayerNum == 4) { showWaitImg(true, (int)CommonDefine.SEAT.RIGHT); showWaitImg(true, (int)CommonDefine.SEAT.LEFT); showWaitImg(true, (int)CommonDefine.SEAT.TOP); } _currentTime = 0; //开启等待计时 InvokeRepeating("updateClock", 0.0f, 1.0f); } }
void onPlayerEnter(object data) { Room.Player player = (Room.Player)data; int local = CommonUtil.Util.getLocalBySeat(player.seat); //ADD PLAYER _realPlayer[local] = createPlayer(player); showWaitImg(false, local); if (local == (int)CommonDefine.SEAT.SELF) { if (player.isOwner) { updateRoomActionType(CommonDefine.eRoomActionType.CAN_DISSOLVE); } else { updateRoomActionType(CommonDefine.eRoomActionType.CAN_LEAVE_ROOM); } for (int i = 0; i < _inRoomGridLevel; i++) { showWaitImg(true, CommonUtil.Util.getLocalBySeat(i)); } } }
void onPlayerEnter(object data) { Room.Player player = (Room.Player)data; int local = CommonUtil.Util.getLocalBySeat(player.seat); if (_players [CommonUtil.Util.getLocalBySeat(player.seat)] != null) { Destroy(_players[CommonUtil.Util.getLocalBySeat(player.seat)].gameObject); _players [CommonUtil.Util.getLocalBySeat(player.seat)] = null; } _players[CommonUtil.Util.getLocalBySeat(player.seat)] = createPlayer(player); if (_roomRule.playerNum == 2) { //对家跳到下家位置 if (local == (int)CommonDefine.SEAT.TOP) { _players[local].transform.position = this.transform.Find("PlayerInfoPanel/Player" + (int)CommonDefine.SEAT.RIGHT).transform.position; } } else if (_roomRule.playerNum == 3) { //上家位置调到对家 if (local == (int)CommonDefine.SEAT.LEFT) { _players[local].transform.position = this.transform.Find("PlayerInfoPanel/Player" + (int)CommonDefine.SEAT.TOP).transform.position; } } if (CommonUtil.Util.getLocalBySeat(player.seat) != (int)CommonDefine.SEAT.SELF) { Vector3 prep = _players [local].transform.position; float c = prep.x; float offset = (c - _players [local].transform.right.x) / 0.75f * 0.125f; _players [local].transform.position = new Vector3(prep.x - offset, prep.y, 0.0f); } //进来之后自动准备 if (player.state == CommonDefine.PLAYER_STATE.STATE_TYPE_SITDOWN) { OnPlayerClickReadyBtn(); } //更新等待界面 if (_roomRule.type == CommonDefine.eCreateRoomType.ROOM_PLAZA || _roomRule.type == CommonDefine.eCreateRoomType.ROOM_CLASSIC_PLAZA) { _lianQiWaitPanel.onPlayerEnter(data); } }
public Player createPlayer(Room.Player data) { Player player = Instantiate(_playerPrefab, new Vector3(0, 0, 0), Quaternion.identity); player.transform.SetParent(this.transform.Find("PlayerInfoPanel")); bool self = CommonUtil.Util.getLocalBySeat(data.seat) == (int)CommonDefine.SEAT.SELF; player.updatePlayer(self, data.isOwner, data.seat, data.head, data.sex, data.name); //位置根据local来 player.transform.position = this.transform.Find("PlayerInfoPanel/Player" + CommonUtil.Util.getLocalBySeat(data.seat)).transform.position; //player.transform.localScale = player.transform.localScale * CommonUtil.Util.getScreenScale(); return(player); }
//玩家进入房间 void OnPlayerEnter(Message msg) { msgPlayerInfo resp = msgPlayerInfo.deserialize(msg); SelfData self = Account.getSelfData(); if (resp.userID != self.userID && Room.Room.playerList.Count == 0) { Debug.Log("第一个进来的玩家不是自己,这会导致座位错误,无法处理,出错!"); return; } //将数据写入游戏房间数据 Room.Player player = new Room.Player(); player.charm = resp.charm; player.draw = resp.draw; player.escapse = resp.escape; player.vip = resp.vip; player.gold = resp.gold; player.head = resp.headUrl; player.lose = resp.lose; player.name = resp.name; player.score = resp.score; player.seat = resp.seat; player.sex = resp.sex; player.state = CommonDefine.PLAYER_STATE.STATE_TYPE_SITDOWN; // 默认坐下状态,接下来要准备 player.userID = resp.userID; player.win = resp.win; player.isOwner = Room.Room.owner == resp.userID; player.talentList = new List <eTalentType> (); //进来的如果是自己,则初始化天赋列表 //从自己的数据中获取 if (resp.userID == self.userID) { //self player.talentList.AddRange(self.talentList); } //原则上来说,第一个进入的必须是自己,否则不应该处理 Room.Room.addPlayer(player); //显示用户, 此处需要将seat转为local RoomEvent.EM().InvokeEvent(RoomEvent.EVENT.PLAER_ENTER, player); }
private void __OnRegistered(ZG.Network.Node node) { if (node == null || __playerNames == null || __playerMap == null) { return; } string playerName; if (!__playerNames.TryGetValue(node.index, out playerName)) { return; } Player player; if (!__playerMap.TryGetValue(playerName, out player)) { return; } if (player.index >= 0 && player.index < 4) { if (__roomMap == null) { return; } Room room; if (!__roomMap.TryGetValue(player.roomName, out room) || room == null) { return; } Room.Player temp = room.Get(player.index); if (temp == null) { temp = new Room.Player(room); temp.index = player.index; } temp.instance = node == null ? null : node.GetComponent <MahjongServerPlayer>(); } }
public RoomPlayer createPlayer(Room.Player data) { int local = CommonUtil.Util.getLocalBySeat(data.seat); RoomPlayer player = Instantiate(_roomPlayerPrefab, new Vector3(0, 0, 0), Quaternion.identity); player.transform.SetParent(_roomPlayer[local].transform); int total = data.win + data.lose + data.draw; float winRate = 0.0f; if (total != 0) { winRate = 100 * 1.0f * data.win / (data.win + data.lose + data.draw); } player.updateRoomPlayer(RoomPlayer.eRoomPlayerType.ROOM_WIAT, local, data.vip, winRate, data.head, data.isOwner, data.name); player.transform.localPosition = new Vector3(0, 0, 0); player.transform.localScale = player.transform.localScale * CommonUtil.Util.getScreenScale(); return(player); }
protected override bool _Unregister(NetworkReader reader, int connectionId, short index) { if (!base._Unregister(reader, connectionId, index)) { return(false); } if (__playerNames != null) { string name; if (__playerNames.TryGetValue(index, out name)) { if (__playerMap != null) { Player player; if (__playerMap.TryGetValue(name, out player)) { if (__roomMap != null) { Room room; if (__roomMap.TryGetValue(player.roomName, out room) && room != null) { if (room.isRunning) { if (GetConnectionCount(room.index) < 2) { room.Break(); } else if (reader != null) { switch ((MahjongQuitType)reader.ReadByte()) { case MahjongQuitType.DestroyRoom: room.Break(); break; default: return(false); } } return(false); } Room.Player temp = room.Get(player.index); if (temp != null) { temp.index = -1; } if (GetCount(room.index) < 2) { if (__roomNames != null) { __roomNames.RemoveAt(room.index); } __roomMap.Remove(player.roomName); } } } __playerMap.Remove(name); } } __playerNames.RemoveAt(index); } } return(true); }