Ejemplo n.º 1
0
    /// <summary>
    /// 请求大师分排行榜数据消息
    /// </summary>
    /// <param name="beginindex">排行榜等级</param>
    public void Ask4RankInfo(short beginindex = 0)
    {
        rankDataPromptUpdateState = true;
        GameKind_Enum currentGameID = (GameKind_Enum)currentgameid;

        if (0 == beginindex)
        {
            if (currentGameID == GameKind_Enum.GameKind_LandLords)
            {
                if (llrMasterList.Count > 0)
                {
                    RankDataPrompt(false);
                    return;
                }
            }
            else if (currentGameID == GameKind_Enum.GameKind_GuanDan)
            {
                if (terMasterList.Count > 0)
                {
                    RankDataPrompt(false);
                    return;
                }
            }
        }

        UMessage ask4RankDataMsg = new UMessage((uint)GameCity.EMSG_ENUM.CrazyCityMsg_APPLYMASTERRANKTOLOGIN);

        ask4RankDataMsg.Add(currentgameid);
        ask4RankDataMsg.Add(beginindex);
        NetWorkClient.GetInstance().SendMsg(ask4RankDataMsg);
    }
Ejemplo n.º 2
0
 /// <summary>
 /// 设置游戏类型
 /// </summary>
 /// <returns></returns>
 public void SetGameType(GameKind_Enum gametype)
 {
     if (gametype > GameKind_Enum.GameKind_None && gametype < GameKind_Enum.GameKind_Max)
     {
         GameType = gametype;
     }
 }
Ejemplo n.º 3
0
    /// <summary>
    /// 刷新排行榜数据
    /// </summary>
    /// <returns></returns>
    IEnumerator RefreshMasterRankPanel()
    {
        ResetRankPanel();
        if (ismaster)
        {
            GameKind_Enum CurGameKind = (GameKind_Enum)currentgameid;
            if (CurGameKind == GameKind_Enum.GameKind_LandLords)
            {
                yield return(new WaitUntil(() => llrMasterList.Count > 0));

                for (int index = 0; index < llrMasterList.Count;)
                {
                    if (!ismaster)
                    {
                        yield break;
                    }
                    if (LoadMasterItemResource(index, llrMasterList[index]))
                    {
                        index++;
                        yield return(new WaitForSecondsRealtime(0.1f));
                    }
                }
                RefreshSelfRank();
            }
            else if (CurGameKind == GameKind_Enum.GameKind_GuanDan)
            {
                yield return(new WaitUntil(() => terMasterList.Count > 0));

                for (int index = 0; index < terMasterList.Count;)
                {
                    if (!ismaster)
                    {
                        yield break;
                    }
                    if (LoadMasterItemResource(index, terMasterList[index]))
                    {
                        index++;
                        yield return(new WaitForSecondsRealtime(0.1f));
                    }
                }
                RefreshSelfRank();
            }
        }
        else
        {
            yield return(new WaitUntil(() => championList.Count > 0));

            for (int index = 0; index < championList.Count; ++index)
            {
                if (ismaster)
                {
                    yield break;
                }
                LoadChampionItemResource(championList[index]);
                yield return(new WaitForSecondsRealtime(0.1f));
            }
        }
        yield break;
    }
Ejemplo n.º 4
0
 /// <summary>
 /// 获得界面资源名称
 /// </summary>
 /// <param name="GameUIName"></param>
 /// <param name="GameKind"></param>
 /// <returns></returns>
 public string GetGameUIPrefabName(string GameUIName, GameKind_Enum GameKind)
 {
     if (GameUIDataDictionary.ContainsKey(GameUIName))
     {
         if (GameKind == GameKind_Enum.GameKind_Chess)
         {
             return(GameUIDataDictionary[GameUIName].VerticalPrefab);
         }
         return(GameUIDataDictionary[GameUIName].HorizontalPrefab);
     }
     return(string.Empty);
 }
Ejemplo n.º 5
0
    /// <summary>
    /// 加载匹配桌子资源
    /// </summary>
    /// <param name="gameKind">游戏类型</param>
    /// <param name="bundle">AB资源包</param>
    public void LoadMatchingTableResource(GameKind_Enum gameKind, AssetBundle bundle)
    {
        if (bundle == null || TableTfm != null)
        {
            return;
        }

        Transform canvasTfm = GameObject.Find("Canvas/Root").transform;

        if (canvasTfm == null)
        {
            return;
        }

        byte       playerNumPerDesk = 4;
        GameObject obj       = null;
        string     TableName = CCsvDataManager.Instance.GameUIDataMgr.GetGameUIPrefabName("MatchReady", GameMain.hall_.GameBaseObj.GetGameType());

        switch (gameKind)
        {
        case GameKind_Enum.GameKind_GouJi:
            playerNumPerDesk = 6;
            TableName        = "matching_table_Ready_6";
            break;

        case GameKind_Enum.GameKind_Chess:
            playerNumPerDesk = 2;
            break;

        case GameKind_Enum.GameKind_LandLords:
            playerNumPerDesk = 3;
            break;
        }

        obj = (GameObject)Instantiate(bundle.LoadAsset(TableName));
        obj.SetActive(false);
        TableTfm = obj.transform;
        TableTfm.SetParent(canvasTfm, false);

        Button btn = TableTfm.Find("bottom/Button_Invitation").GetComponent <Button>();

        btn.onClick.AddListener(OnClickDeskInvitate);
        btn = TableTfm.Find("bottom/Button_Ready").GetComponent <Button>();
        btn.onClick.AddListener(OnClickDeskReady);
        btn.gameObject.SetActive(false);
        btn = TableTfm.Find("Top/Button_Return").GetComponent <Button>();
        btn.onClick.AddListener(() => OnClickReturn(0));

        m_TipText = TableTfm.Find("Pop-up/ImagereadyTip/Text_time").GetComponent <Text>();

        UpdateMatchTablePlayerInfo(playerNumPerDesk);
    }
Ejemplo n.º 6
0
    bool BackTellRankInfo(uint msgType, UMessage msg)
    {
        GameKind_Enum gameid = (GameKind_Enum)msg.ReadByte();

        switch (gameid)
        {
        case GameKind_Enum.GameKind_LandLords:
            terMasterList.Clear();
            break;

        case GameKind_Enum.GameKind_GuanDan:
            llrMasterList.Clear();
            break;
        }
        return(true);
    }
Ejemplo n.º 7
0
    /// <summary>
    /// 初始化游戏文档界面
    /// </summary>
    public void InitGameDocumentPanelResource()
    {
        if (RootGameObject == null)
        {
            RootGameObject = GameObject.Find("Canvas/Root");
        }

        if (GameDocumentDictionary == null)
        {
            GameDocumentDictionary = new Dictionary <byte, GameObject>();
        }

        if (DocumentPanelGameObject == null)
        {
            GameDocumentDictionary.Clear();
            AssetBundle assetBundle = AssetBundleManager.GetAssetBundle(GameDefine.HallAssetbundleName);
            if (assetBundle)
            {
                Object LobbyGameRule = assetBundle.LoadAsset("Lobby_Game_Rule");
                DocumentPanelGameObject = (GameObject)GameMain.instantiate(LobbyGameRule);
                DocumentPanelGameObject.SetActive(false);
                DocumentPanelGameObject.transform.SetParent(RootGameObject.transform, false);

                //收集游戏规则介绍列表对象
                string childUiName;
                UnityEngine.Transform gameTransform = null;
                for (GameKind_Enum gameKind = GameKind_Enum.GameKind_CarPort; gameKind < GameKind_Enum.GameKind_Max; ++gameKind)
                {
                    childUiName   = "Left/Toggle_" + (byte)gameKind;
                    gameTransform = DocumentPanelGameObject.transform.Find(childUiName);
                    if (gameTransform)
                    {
                        gameTransform.gameObject.SetActive(false);
                        GameDocumentDictionary.Add((byte)gameKind, gameTransform.gameObject);
                    }
                }

                RightGameRule = DocumentPanelGameObject.transform.Find("Right/Game_Rule").gameObject;
            }
            InitGameDocumentPanelUIEvents();
        }
    }
Ejemplo n.º 8
0
    /// <summary>
    /// 创建约据房间数据
    /// </summary>
    /// <param name="GameID"></param>
    /// <returns></returns>
    public static AppointmentData CreateAppointmentData(GameKind_Enum GameID)
    {
        AppointmentData publicAppointmentData = null;

        switch (GameID)
        {
        case GameKind_Enum.GameKind_GuanDan:
            publicAppointmentData = new GuanDanAppointmentData(4);
            break;

        case GameKind_Enum.GameKind_Mahjong:
            publicAppointmentData = new MahjongAppointmentData(4);
            break;

        case GameKind_Enum.GameKind_CzMahjong:
            publicAppointmentData = new CzMahjongAppointmentData(4);
            break;

        case GameKind_Enum.GameKind_YcMahjong:
            publicAppointmentData = new YcMahjongAppointmentData(4);
            break;

        case GameKind_Enum.GameKind_GouJi:
            publicAppointmentData = new GoujiAppointmentData(6);
            break;

        case GameKind_Enum.GameKind_HongZhong:
            publicAppointmentData = new HzMahjongAppointmentData(4);
            break;

        case GameKind_Enum.GameKind_Chess:
            publicAppointmentData = new ChessAppointmentData(2);
            break;

        default:
            publicAppointmentData = new AppointmentData(3);
            break;
        }
        return(publicAppointmentData);
    }
Ejemplo n.º 9
0
    /// <summary>
    /// 获得约据游戏自定义规则。
    /// </summary>
    /// <param name="RuleTextData">游戏规则</param>
    /// <param name="GameID">游戏ID</param>
    public static void  GetAppointmentRuleTextData(ref string RuleTextData, GameKind_Enum GameID)
    {
        AppointmentData data = AppointmentDataManager.AppointmentDataInstance().GetCurrentAppointment();

        RuleTextData = "";
        if (data == null)
        {
            return;
        }

        if (GameID == GameKind_Enum.GameKind_LandLords)
        {
            if (data.maxpower == 250)
            {
                RuleTextData = "打" + data.playtimes.ToString() + "局 不封顶";
            }
            else
            {
                RuleTextData = "打" + data.playtimes.ToString() + "局 最高" + data.maxpower + "倍";
            }
        }
        else if (GameID == GameKind_Enum.GameKind_GuanDan)
        {
            GuanDanAppointmentData appointmentData = (GuanDanAppointmentData)data;
            if (appointmentData.terData_.playType == TePlayType.Times)
            {
                if (appointmentData.terData_.cp == CurrentPoker.Two)
                {
                    RuleTextData = "打" + appointmentData.terData_.times.ToString() + "局 双下" + appointmentData.terData_.score.ToString() + "分 打2";
                }
                else
                {
                    RuleTextData = "打" + appointmentData.terData_.times.ToString() + "局 双下" + appointmentData.terData_.score.ToString() + "分 随机打";
                }
            }

            else
            {
                if (appointmentData.terData_.vectory == 1)
                {
                    RuleTextData = "连续打 过A胜利";
                }
                else
                {
                    RuleTextData = "连续打 过" + appointmentData.terData_.vectory.ToString() + "胜利";
                }
            }
        }
        else if (GameID == GameKind_Enum.GameKind_Mahjong ||
                 GameID == GameKind_Enum.GameKind_YcMahjong ||
                 GameID == GameKind_Enum.GameKind_CzMahjong)
        {
            if (data.maxpower == 250 || data.maxpower == 0)
            {
                RuleTextData = "打" + data.playtimes.ToString() + "局 不封顶";
            }
            else
            {
                RuleTextData = "打" + data.playtimes.ToString() + "局 最高" + data.maxpower + "倍";
            }

            if (GameID == GameKind_Enum.GameKind_Mahjong)
            {
                MahjongAppointmentData mahjongData = (MahjongAppointmentData)data;
                RuleTextData += GameKind.HasFlag(0, mahjongData.palyType) ? "\n自摸加底" : "\n自摸加翻";
                RuleTextData += GameKind.HasFlag(1, mahjongData.palyType) ? "\n点杠花(点炮)\n" : "\n点杠花(自摸)\n";
                RuleTextData += GameKind.HasFlag(2, mahjongData.palyType) ? " 幺九将对" : "";
                RuleTextData += GameKind.HasFlag(3, mahjongData.palyType) ? " 门清中张" : "";
                RuleTextData += GameKind.HasFlag(4, mahjongData.palyType) ? " 天地胡" : "";
            }
            else if (GameID == GameKind_Enum.GameKind_CzMahjong)
            {
                CzMahjongAppointmentData mahjongData = (CzMahjongAppointmentData)data;

                RuleTextData += "\n";
                string[] wanFaName = { "包三口", " 包四口", " 擦背", " 吃" };
                for (int index = 0; index < 4; ++index)
                {
                    if (GameKind.HasFlag(index, mahjongData.wanFa))
                    {
                        RuleTextData += wanFaName[index];
                    }
                }

                string[] qiHuName = { "", "\n一番起胡", "\n硬一番起胡", "\n3花起胡", "\n4花起胡" };

                RuleTextData += qiHuName.Count() > 5 ? "" : qiHuName[mahjongData.qiHu];
                RuleTextData += "\n" + mahjongData.diHua + "底花";
            }
        }
        else if (GameID == GameKind_Enum.GameKind_GouJi)
        {
            GoujiAppointmentData gouJiData = (GoujiAppointmentData)(data);
            RuleTextData = "打" + gouJiData.playtimes.ToString() + "局 \n";
            string[] wanFaName = { "宣点\n", "开点发4\n", "憋三\n", "大王二杀一\n", "进贡\n" };
            for (int index = 0; index < 5; ++index)
            {
                if (GameKind.HasFlag(index, gouJiData.wanFa))
                {
                    RuleTextData += wanFaName[index];
                }
            }
        }
        else if (GameID == GameKind_Enum.GameKind_HongZhong)
        {
            HzMahjongAppointmentData mahjongData = (HzMahjongAppointmentData)(data);
            RuleTextData = "打" + mahjongData.playtimes.ToString() + "局 \n" + "抓鸟" + mahjongData.birdNum + "张 \n";
            string[] wanFaName = { "红中是赖子\n", "可以点炮\n", };
            for (int index = 0; index < 2; ++index)
            {
                if (GameKind.HasFlag(index, mahjongData.wanFa))
                {
                    RuleTextData += wanFaName[index];
                }
            }
        }
        else if (GameID == GameKind_Enum.GameKind_Chess)
        {
            ChessAppointmentData chessData = (ChessAppointmentData)(data);
            RuleTextData = "打" + chessData.playtimes.ToString() + "局 局时 " + chessData.ChessTime + "分";
        }
    }
Ejemplo n.º 10
0
 public CGameBase(GameKind_Enum gametype)
 {
     GameType  = gametype;
     GameMode  = GameTye_Enum.GameType_Normal;
     Bystander = false;
 }
Ejemplo n.º 11
0
 public CGameBase()
 {
     GameType  = GameKind_Enum.GameKind_None;
     GameMode  = GameTye_Enum.GameType_Normal;
     Bystander = false;
 }
Ejemplo n.º 12
0
    /// <summary>
    /// 登陆成功处理
    /// </summary>
    /// <param name="_msgType"></param>
    /// <param name="_ms"></param>
    /// <returns></returns>
    bool LoginSuccess(uint _msgType, UMessage _ms)
    {
        PlayerData playerdata        = GameMain.hall_.GetPlayerData();
        uint       lastLoginPlayerId = playerdata.GetPlayerID();

        playerdata.ReadPlayerData(_ms, ref CRankUI.Instance.m_fLeftCoinRankTime);
        //检测是否切换角色了
        if (lastLoginPlayerId != 0 && lastLoginPlayerId != playerdata.GetPlayerID())
        {
        }

        GameMain.hall_.IntelentType = Application.internetReachability;
        WriteAccountConfig();

        //GameMain.hall_.SendGetCoinRankData();

        //m_bIsSendMobileNum = false;
        CCustomDialog.CloseCustomWaitUI();
        GameMain.hall_.AfterLogin();


#if ScFish
        GameMain.hall_.OnClickRoomIconBtn((byte)GameKind_Enum.GameKind_Fishing, 1);
        return(true);
#endif


        //GameMain.hall_.LoadHallResource();
        if (playerdata.nGameMode_Before >= 0)
        {
            Debug.Log("断线重连GameId:" + playerdata.nGameKind_Before + ",GameMode:" + playerdata.nGameMode_Before);
            string        strSign           = string.Empty;
            GameKind_Enum CurbeforeGameKind = (GameKind_Enum)playerdata.nGameKind_Before;
            if (playerdata.nGameMode_Before == 0)
            {
                CurbeforeGameKind = (GameKind_Enum)(Mathf.Log(playerdata.nGameKind_Before, 2));
                for (GameKind_Enum gameKind = GameKind_Enum.GameKind_CarPort; gameKind < GameKind_Enum.GameKind_Max; ++gameKind)
                {
                    if (gameKind != GameKind_Enum.GameKind_LandLords && gameKind != GameKind_Enum.GameKind_Mahjong &&
                        gameKind != GameKind_Enum.GameKind_GuanDan && gameKind != GameKind_Enum.GameKind_YcMahjong &&
                        gameKind != GameKind_Enum.GameKind_CzMahjong && gameKind != GameKind_Enum.GameKind_GouJi &&
                        gameKind != GameKind_Enum.GameKind_HongZhong && gameKind != GameKind_Enum.GameKind_Answer &&
                        gameKind != GameKind_Enum.GameKind_Chess)
                    {
                        if (GameKind.HasFlag((int)gameKind, (int)playerdata.nGameKind_Before))
                        {
                            GameData gamedata = CCsvDataManager.Instance.GameDataMgr.GetGameData((byte)CurbeforeGameKind);
                            if (gamedata != null)
                            {
                                strSign += gamedata.GameName;
                            }
                            else
                            {
                                strSign += "未知游戏";
                            }
                        }
                    }
                }
            }

            if (!string.IsNullOrEmpty(strSign))
            {
                CCustomDialog.OpenCustomWaitUI(2014, strSign);
            }
            else
            {
                if (GameMain.hall_.contestui_)
                {
                    GameMain.hall_.contestui_.SetActive(false);
                }
                GameMain.hall_.ReconnectLoadGame(CurbeforeGameKind, (GameTye_Enum)playerdata.nGameMode_Before);
            }
        }
        else
        {
            if (Application.platform == RuntimePlatform.Android)
            {
#if UNITY_ANDROID && !UNITY_EDITOR
                AlipayWeChatPay.GetAndroidActivity().Call("GetGameRoomID");
#endif
            }
        }

        GameMain.hall_.ReconnectGameServer();

        UMessage activemsg = new UMessage((uint)GameCity.EMSG_ENUM.CrazyCityMsg_GETTODAYREDBAGINFO);
        activemsg.Add(GameMain.hall_.GetPlayerId());
        NetWorkClient.GetInstance().SendMsg(activemsg);

        BagDataManager.GetBagDataInstance();
        if (GameMain.hall_.GetPlayerData().itemNumber > 0)
        {
            UMessage bagmsg = new UMessage((uint)GameCity.EMSG_ENUM.CrazyCityMsg_REQUESTPLAYERPACKETINFO);
            bagmsg.Add(GameMain.hall_.GetPlayerId());
            NetWorkClient.GetInstance().SendMsg(bagmsg);
        }

        PlayerInfoUI.Instance.Ask4PlayerTotalData();

        return(true);
    }
Ejemplo n.º 13
0
    void InitRuleEvent(Transform rulebg, ESlefContestType createtype, GameKind_Enum gameKind)
    {
        if (rulebg == null)
        {
            return;
        }
        switch (createtype)
        {
        case ESlefContestType.TimeContest:
        {
            GameObject timebtn = rulebg.Find("shijian/Button_TimeSet").gameObject;
            XPointEvent.AutoAddListener(timebtn, OnOpenTimeSet, rulebg);
        }
        break;

        case ESlefContestType.PlayerNumberContest:
        {
            GameObject llfirstGroup = rulebg.Find("renshu").Find("ImageBG").gameObject;
            for (int index = 0; index < llfirstGroup.transform.childCount; index++)
            {
                Toggle toggle = llfirstGroup.transform.GetChild(index).gameObject.GetComponent <Toggle>();
                int    temp   = index;
                toggle.onValueChanged.AddListener(delegate(bool value)
                    {
                        CustomAudio.GetInstance().PlayCustomAudio(1004);
                        switch (gameKind)
                        {
                        case GameKind_Enum.GameKind_LandLords:
                            scr_.playernumber = SelfContestRule.llrplayerNumberList[temp];
                            break;

                        case GameKind_Enum.GameKind_GuanDan:
                            scr_.playernumber = SelfContestRule.gdplayerNumberList[temp];
                            break;
                        }
                        RefreshPlayerNumber((int)gameKind, createtype, true);
                    });
            }
        }
        break;
        }
        GameObject llsecondGroup = rulebg.Find("yusai").Find("ImageBG").gameObject;

        for (int index = 0; index < llsecondGroup.transform.childCount; index++)
        {
            Toggle toggle = llsecondGroup.transform.GetChild(index).gameObject.GetComponent <Toggle>();
            int    temp   = index;
            toggle.onValueChanged.AddListener(delegate(bool vale) {
                CustomAudio.GetInstance().PlayCustomAudio(1004);
                switch (gameKind)
                {
                case GameKind_Enum.GameKind_LandLords:
                    scr_.precontest = SelfContestRule.llrprecontestList[temp];
                    break;

                case GameKind_Enum.GameKind_GuanDan:
                    scr_.precontest = SelfContestRule.gdprecontestList[temp];
                    break;

                case GameKind_Enum.GameKind_Chess:
                    scr_.precontest   = SelfContestRule.gdprecontestChessList[temp];
                    scr_.finalcontest = scr_.precontest;
                    break;
                }
                RefreshPlayerNumber((int)gameKind, createtype, true);
            });
        }

        GameObject llthirdGroup = rulebg.Find("juesai").Find("ImageBG").gameObject;

        for (int index = 0; index < llthirdGroup.transform.childCount; index++)
        {
            Toggle toggle = llthirdGroup.transform.GetChild(index).gameObject.GetComponent <Toggle>();
            int    temp   = index;
            toggle.onValueChanged.AddListener(delegate(bool vale) {
                CustomAudio.GetInstance().PlayCustomAudio(1004);
                switch (gameKind)
                {
                case GameKind_Enum.GameKind_LandLords:
                    scr_.finalcontest = SelfContestRule.llrprecontestList[temp];
                    break;

                case GameKind_Enum.GameKind_GuanDan:
                    scr_.finalcontest = SelfContestRule.gdprecontestList[temp];
                    break;

                case GameKind_Enum.GameKind_Chess:
                    scr_.finalcontest = SelfContestRule.gdprecontestChessList[temp];
                    break;
                }
                RefreshPlayerNumber((int)gameKind, createtype, true);
            });
        }

        GameObject llforthGroup = rulebg.Find("feiyong").Find("ImageBG").gameObject;

        for (int index = 0; index < llforthGroup.transform.childCount; index++)
        {
            Toggle toggle = llforthGroup.transform.GetChild(index).gameObject.GetComponent <Toggle>();
            int    temp   = index;
            toggle.onValueChanged.AddListener(delegate(bool vale) {
                CustomAudio.GetInstance().PlayCustomAudio(1004);
                scr_.cost = SelfContestRule.costList[temp];
                RefreshPlayerNumber((int)gameKind, createtype, true);
            });
        }
    }