Beispiel #1
0
        //开始游戏
        public void StartGame(Actor_JoyLds_StartGame joyLdsPlayerInfos)
        {
            ResetData();                                                            //重置数据
            mCurrGameRoomState = JoyLdsGameState.BeingPlayCards;                    //当前房间的游戏状态
            UIComponent.GetUiView <JoyLandlordsRoomPanelComponent>().MathSucceed(); //匹配成功
            long selfUserId = Game.Scene.GetComponent <UserComponent>().pUserId;

            //创建用户角色
            for (int i = 0; i < joyLdsPlayerInfos.PlayerInfos.Count; i++)
            {
                if (joyLdsPlayerInfos.PlayerInfos[i].User.UserId == selfUserId)
                {
                    _joyLdsUserPlayer    = UIComponent.GetUiView <JoyLandlordsRoomPanelComponent>().ShowUserPlayerInfo(joyLdsPlayerInfos.PlayerInfos[i].SeatIndex);
                    pCurrUserPlayerIndex = joyLdsPlayerInfos.PlayerInfos[i].SeatIndex;
                    mRoomPlayerDic[i]    = _joyLdsUserPlayer;
                }
            }
            //创建其他玩家
            for (int i = 0; i < joyLdsPlayerInfos.PlayerInfos.Count; i++)
            {
                if (joyLdsPlayerInfos.PlayerInfos[i].User.UserId != selfUserId)
                {
                    JoyLdsBasePlayer joyLdsBasePlayer = UIComponent.GetUiView <JoyLandlordsRoomPanelComponent>().ShowOtherPlayer(joyLdsPlayerInfos.PlayerInfos[i].User, joyLdsPlayerInfos.PlayerInfos[i].SeatIndex);
                    mRoomPlayerDic[i] = joyLdsBasePlayer;
                }
            }
        }
        //开始游戏
        public static void StartGame(this JoyLdsRoom joyLdsRoom)
        {
            joyLdsRoom.Reset();//每次开始游戏前清空一下数据
            Actor_JoyLds_StartGame actorJoyLdsStartGame = new Actor_JoyLds_StartGame();

            actorJoyLdsStartGame.PlayerInfos.Clear();
            foreach (var player in joyLdsRoom.pJoyLdsPlayerDic.Values)
            {
                JoyLds_PlayerInfo joyLdsPlayer = new JoyLds_PlayerInfo();
                joyLdsPlayer.User      = player.pUser;
                joyLdsPlayer.SeatIndex = player.pSeatIndex;
                actorJoyLdsStartGame.PlayerInfos.Add(joyLdsPlayer);
            }
            foreach (var player in joyLdsRoom.pJoyLdsPlayerDic.Values)
            {
                player.StartGame(actorJoyLdsStartGame);
            }
            joyLdsRoom.Deal();//发了开始游戏的消息发 发牌消息
            joyLdsRoom.CurrRoomStateType = JoyLdsRoomStateType.GameIn;
        }
Beispiel #3
0
 //开始游戏
 public static void StartGame(this JoyLdsPlayer joyLdsPlayer, Actor_JoyLds_StartGame actorJoyLdsStartGame)
 {
     // joyLdsPlayer.SendUserGateMessage(
     //      new S2G_UserStartGame() {UserId = joyLdsPlayer.pUser.UserId, SessionActorId = joyLdsPlayer.Id});//通知用户所在的网关服开始游戏
     joyLdsPlayer.SendMessageUser(actorJoyLdsStartGame);//通知客户端开始游戏
 }