Beispiel #1
0
    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);
        }
    }
Beispiel #2
0
    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));
            }
        }
    }
Beispiel #3
0
    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);
        }
    }
Beispiel #4
0
    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);
    }
Beispiel #6
0
    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>();
        }
    }
Beispiel #7
0
    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);
    }
Beispiel #8
0
    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);
    }