Пример #1
0
    public override void Init()
    {
        base.Init();

        LowMgr   = _LowDataMgr.instance;
        UserInfo = NetData.instance.GetUserInfo();

        EventDelegate.Set(transform.FindChild("BtnClose").GetComponent <UIButton>().onClick, Close);
        EventDelegate.Set(transform.FindChild("BtnApply").GetComponent <UIButton>().onClick, delegate() {
            if (0 < SelectTitleL && (UserInfo._LeftTitle == 0 ? 1 : UserInfo._LeftTitle) != SelectTitleL)
            {
                NetworkClient.instance.SendPMsgUseTitleC(SelectTitleL == 1 ? UserInfo._LeftTitle : SelectTitleL, SelectTitleL != 1);
            }

            if (0 < SelectTitleR && (UserInfo._RightTitle == 0 ? 2 : UserInfo._RightTitle) != SelectTitleR)
            {
                NetworkClient.instance.SendPMsgUseTitleC(SelectTitleR == 2 ? UserInfo._RightTitle : SelectTitleR, SelectTitleR != 2);
            }
            //Close();
        });

        EventDelegate.Set(GetCondition.gameObject.GetComponent <UIEventTrigger>().onClick, OnClickAchievLink);

        //LeftGrid.GetChild(0).gameObject.SetActive(false);
        //RightGrid.GetChild(0).gameObject.SetActive(false);
    }
    /// <summary>
    /// 장비강화재료 / 스킬강화재료 던전
    /// </summary>
    void OnClickEquipAndSkillDungeon(bool isEquip)
    {
        _LowDataMgr lowMgr = _LowDataMgr.instance;

        ViewObjs[0].SetActive(false);
        ViewObjs[1].SetActive(false);
        ViewObjs[2].SetActive(true);

        EquipLvGroup.transform.gameObject.SetActive(isEquip);
        SkillLvGroup.transform.gameObject.SetActive(!isEquip);

        byte          useEnergy = 0;
        List <string> itemList  = null;

        if (isEquip)
        {
            //장비강화
            DungeonTable.EquipInfo equipDungeonInfo = lowMgr.GetLowDataEquipBattle((byte)MaterialDungeonLevelDifficulty);
            if (equipDungeonInfo != null)
            {
                itemList  = equipDungeonInfo.RewardItemId.list;
                useEnergy = equipDungeonInfo.UseEnergy;
            }
        }
        else
        {
            //스킬강화
            DungeonTable.SkillInfo skillDungeonInfo = lowMgr.GetLowDataSkillBattle((byte)MaterialDungeonLevelDifficulty);
            if (skillDungeonInfo != null)
            {
                itemList  = skillDungeonInfo.RewardItemId.list;
                useEnergy = skillDungeonInfo.UseEnergy;
            }
        }

        bool canGo = NetData.instance.GetAsset(AssetType.Energy) >= useEnergy;

        MaterialDungeonStartBtn.transform.FindChild("Txt_num").GetComponent <UILabel>().text = useEnergy.ToString();
        MaterialDungeonStartBtn.transform.FindChild("Btn_on").gameObject.SetActive(canGo);
        MaterialDungeonStartBtn.transform.FindChild("Btn_off").gameObject.SetActive(!canGo);

        //드랍아이템
        int dropIconCount = MaterialDungetnDropItem.Length;

        for (int i = 0; i < dropIconCount; i++)
        {
            if (itemList.Count <= i)
            {
                MaterialDungetnDropItem[i].gameObject.SetActive(false);
                continue;
            }

            uint itemId = uint.Parse(itemList[i]);
            MaterialDungetnDropItem[i].gameObject.SetActive(true);
            InvenItemSlotObject slot = MaterialDungetnDropItem[i].GetChild(0).GetComponent <InvenItemSlotObject>();
            slot.SetLowDataItemSlot(itemId, 0, delegate(ulong key)
            {
                UIMgr.OpenDetailPopup(this, itemId);
            });
        }

        MaterialDungetnDropItem[0].parent.GetComponent <UIGrid>().Reposition();
        UIScrollView scroll = MaterialDungetnDropItem[0].parent.parent.GetComponent <UIScrollView>();

        if (scroll != null)
        {
            scroll.ResetPosition();
            scroll.enabled = itemList.Count <= 5 ? false : true;
        }

        EventDelegate.Set(MaterialDungeonStartBtn.onClick, delegate()
        {
            if (!canGo)
            {
                SceneManager.instance.SetNoticePanel(NoticeType.Message, 390);  //체력부족?
                return;
            }

            //여기서 시작해줌
            if (CurGameMode == GAME_MODE.SPECIAL_GOLD)
            {
                //uint level = NetData.instance.UserLevel;
                //byte dungeonId = 1;
                //while (true)
                //{
                //    DungeonTable.EquipInfo materialData = _LowDataMgr.instance.GetLowDataEquipBattle(dungeonId);
                //    if (materialData != null)
                //    {
                //        if (materialData.MinenterLv < level)
                //            break;
                //    }

                //    ++dungeonId;
                //}

                byte dungeonId = 1;
                DungeonTable.EquipInfo materialData = lowMgr.GetLowDataEquipBattle((byte)MaterialDungeonLevelDifficulty);

                if (materialData != null)
                {
                    dungeonId = materialData.Index;
                }

                if (dungeonId == 0)//혹시 모를 경우를 대비해 이렇게 막아놓는다.
                {
                    DungeonTable.EquipInfo mData = lowMgr.GetLowDataEquipBattle(1);

                    string msg = _LowDataMgr.instance.GetStringCommon(699);
                    msg        = string.Format(msg, mData.MinenterLv);
                    SceneManager.instance.SetNoticePanel(NoticeType.Message, 0, msg);
                    return;
                }

                OnGoldGameStart(dungeonId);
                //NetworkClient.instance.SendPMsgCoinBattleStartC(dungeonId);
            }

            else if (CurGameMode == GAME_MODE.SPECIAL_EXP)//경험치 스테이지로 들어감
            {
                //uint level = NetData.instance.UserLevel;
                //byte dungeonId = 1;
                //while (true)
                //{
                //    DungeonTable.SkillInfo skillData = _LowDataMgr.instance.GetLowDataSkillBattle(dungeonId);
                //    if (skillData != null)
                //    {
                //        if (skillData.MinenterLv <= level)
                //            break;
                //    }


                //    ++dungeonId;
                //}

                byte dungeonId = 1;
                DungeonTable.SkillInfo materialData = lowMgr.GetLowDataSkillBattle((byte)MaterialDungeonLevelDifficulty);

                if (materialData != null)
                {
                    dungeonId = materialData.Index;
                }

                if (dungeonId == 0)//혹시 모를 경우를 대비해 이렇게 막아놓는다.
                {
                    DungeonTable.SkillInfo skillData = lowMgr.GetLowDataSkillBattle(1);

                    string msg = _LowDataMgr.instance.GetStringCommon(699);
                    msg        = string.Format(msg, skillData.MinenterLv);
                    SceneManager.instance.SetNoticePanel(NoticeType.Message, 0, msg);
                    return;
                }

                OnExpGameStart(dungeonId);
                //NetworkClient.instance.SendPMsgExpBattleStartC(dungeonId);
            }
        });
    }
    void OnClickRaid(bool isMulty, int groupId)
    {
        ViewObjs[0].SetActive(false);
        ViewObjs[1].SetActive(true);
        ViewObjs[2].SetActive(false);
        CurGameMode = isMulty ? GAME_MODE.MULTI_RAID : GAME_MODE.RAID;
        CurSubMode  = groupId;

        uint          bossIdx    = 0;
        List <string> rewardList = null;
        List <string> itemList   = null;

        if (!isMulty)
        {
            List <DungeonTable.SingleBossRaidInfo> raidLowList = _LowDataMgr.instance.GetLowDataBossRaidList();

            int count = raidLowList.Count;
            for (int i = 0; i < count; i++)
            {
                DungeonTable.SingleBossRaidInfo raidLow = raidLowList[i];
                if (raidLow.Type != groupId || raidLow.level != CurLevelDifficulty)
                {
                    continue;
                }

                rewardList    = raidLowList[i].RewardId.list;
                bossIdx       = raidLowList[i].BossIdx;
                itemList      = raidLowList[i].ItemId.list;
                RaidDesc.text = _LowDataMgr.instance.GetStringStageData(raidLowList[i].stageDesc);
                break;
            }
        }
        else
        {
            List <DungeonTable.MultyBossRaidInfo> raidLowList = _LowDataMgr.instance.GetLowDataMultyBossInfoList((byte)groupId);
            int count = raidLowList.Count;
            for (int i = 0; i < count; i++)
            {
                DungeonTable.MultyBossRaidInfo raidLow = raidLowList[i];
                if (raidLow.level != CurLevelDifficulty)
                {
                    continue;
                }

                rewardList    = raidLowList[i].RewardId.list;
                bossIdx       = raidLow.BossIdx;
                itemList      = raidLow.ItemId.list;
                RaidDesc.text = _LowDataMgr.instance.GetStringStageData(raidLow.stageDesc);
                break;
            }
        }

        if (bossIdx <= 0)
        {
            Debug.LogError("not found boss Index Error " + CurSubMode);
            return;
        }

        UIHelper.CreateMonsterUIModel(RotationTargetList[0].transform, bossIdx, false, false, true, "DungeonPanel");

        //드랍 아이템 셋
        //드랍아이템은 나의 클래스에맞춰서 표시해준다
        //장비아이템의경우 가장 등급이 높은것으로
        int myClass = UIHelper.GetClassType(NetData.instance.GetUserInfo().GetCharIdx());

        _LowDataMgr lowMgr        = _LowDataMgr.instance;
        int         dropIconCount = RaidDropItem.Length;

        for (int i = 0; i < dropIconCount; i++)
        {
            if (rewardList.Count <= i)
            {
                RaidDropItem[i].gameObject.SetActive(false);
                continue;
            }

            //uint rewardItemId = uint.Parse(rewardList[i]);
            uint itemId = uint.Parse(itemList[i]);
            RaidDropItem[i].gameObject.SetActive(true);
            InvenItemSlotObject slot = RaidDropItem[i].GetChild(0).GetComponent <InvenItemSlotObject>();
            slot.SetLowDataItemSlot(itemId, 0, delegate(ulong key)
            {
                //UIMgr.OpenClickPopup(itemId, slot.transform.position);
                UIMgr.OpenDetailPopup(this, itemId);
            });
        }

        RaidDropItem[0].parent.GetComponent <UIGrid>().Reposition();
        UIScrollView scroll = RaidDropItem[0].parent.parent.GetComponent <UIScrollView>();

        if (scroll != null)
        {
            scroll.ResetPosition();
            scroll.enabled = rewardList.Count <= 5 ? false : true;
        }
    }
Пример #4
0
    IEnumerator CreateEquipment()
    {
        uint charId = NetData.instance.GetUserInfo().GetCharIdx();

        uint[] equipId;
        if (charId == 11000)
        {
            equipId = new uint[] { 410002, 410012, 410022, 410032, 410042, 410102, 410112, 410122, 410132, 410142,
                                   410202, 410212, 410222, 410232, 410242, 410302, 410312, 410322, 410332, 410342, 410402, 410412,
                                   410422, 410432, 410442, 410502, 410512, 410522, 410532, 410542, 410602, 410612, 410622, 410632,
                                   410642, 410702, 410712, 410722, 410732, 410742, 410652, 410752, 410852, 510001 }
        }
        ;
        else if (charId == 12000)
        {
            equipId = new uint[] {
                420002, 420012, 420022, 420032, 420042, 420102, 420112, 420122, 420132, 420142, 420202, 420212, 420222, 420232, 420242, 420302,
                420312, 420322, 420332, 420342, 420402, 420412, 420422, 420432, 420442, 420502, 420512, 420522, 420532, 420542,
                420602, 420612, 420622, 420632, 420642, 420702, 420712, 420722, 420732, 420742, 420652, 420752, 420852, 520001
            }
        }
        ;
        else
        {
            equipId = new uint[] {
                430002, 430012, 430022, 430032, 430042, 430102, 430112, 430122, 430132, 430142,
                430202, 430212, 430222, 430232, 430242, 430302, 430312, 430322, 430332, 430342, 430402, 430412, 430422, 430432, 430442, 430502, 430512,
                430522, 430532, 430542, 430602, 430612, 430622, 430632, 430642, 430702, 430712, 430722, 430732, 430742, 430652, 430752, 430852, 530001
            }
        };

        int         count  = 0;
        _LowDataMgr lowMgr = _LowDataMgr.instance;

        while (count < equipId.Length)
        {
            Item.EquipmentInfo item = lowMgr.GetLowDataEquipItemInfo(equipId[count]);
            if (item == null)
            {
                break;
            }

            NetworkClient.instance.SendPMsgTalkCS((int)Sw.TALK_CHANNEL_TYPE.TALK_CHANNEL_PRIVATE, 0, "", string.Format("/aq {0} 1", equipId[count++]), 1);

            yield return(new WaitForSeconds(0.1f));
        }

        UIMgr.instance.AddPopup("알림", "의상 생성 치트키 끝", "확인", null, null, delegate() {
            base.Close();
        });
    }

    void CreateMaterials(string type, int amount)
    {
        int[] ids = null;
        if (type.Equals("asd"))
        {
            ids = new int[] {
                554009, 554010, 554011, 554012, 554013, 554014,
                560450, 560451, 560452, 560453, 560454, 560455, 560456,
                560461, 560462, 560463, 560464, 560465, 560466, 560467, 560468, 560469,
                560470, 560471, 560472, 560473, 560474, 560475, 560476, 560477, 560478, 560479, 560480,
                560500, 560510, 560511, 560512, 560513,
                560530, 560531, 560532, 560533,
                560550, 560551, 560558, 560559, 560560, 567700, 567701, 599008
            };
        }
        else if (type.Equals("shard"))
        {
            List <int> idList = new List <int>();
            List <Partner.PartnerDataInfo> parList = _LowDataMgr.instance.GetPartnerDataToList();
            for (int i = 0; i < parList.Count; i++)
            {
                if (idList.Contains((int)parList[i].ShardIdx))
                {
                    continue;
                }

                idList.Add((int)parList[i].ShardIdx);
            }

            ids = idList.ToArray();
        }
        else if (type.Equals("costume"))
        {
            uint charIdx = NetData.instance.GetUserInfo()._userCharIndex;
            if (charIdx.Equals(11000))
            {
                //권사 코스튬 조각
                ids = new int[] {
                    560100,
                    560101,
                    560102
                };
            }
            else if (charIdx.Equals(12000))
            {
                //명장 코스튬 조각
                ids = new int[] {
                    560200,
                    560201,
                    560202
                };
            }
            else if (charIdx.Equals(13000))
            {
                //협녀 코스튬 조각
                ids = new int[] {
                    560300,
                    560301,
                    560302
                };
            }
        }

        for (int i = 0; i < ids.Length; i++)
        {
            string key = string.Format("/ai {0} {1}", ids[i], amount);
            NetworkClient.instance.SendPMsgTalkCS((int)Sw.TALK_CHANNEL_TYPE.TALK_CHANNEL_PRIVATE, 0, "", key, 1);
        }
    }

    void OnClickSend()
    {
        string str = Input.value;

        if (string.IsNullOrEmpty(str))
        {
            return;
        }

        if (str.Contains(" ") && !str.Contains("game"))//&& (str.Contains(" ") || str.CompareTo("s") == 0 ) )
        {
            string[] value = str.Split(' ');
            if (value.Length <= 0)
            {
                return;
            }
            switch (value[0])
            {
            case "ag":
            case "ac":
            case "af":
            case "ah":
            case "aco":
            case "ar":
            case "alk":
            case "ae":
            {
                uint   amount = uint.Parse(value[1]);
                string send   = string.Format("/{0} {1}", value[0], amount);
                NetworkClient.instance.SendPMsgTalkCS((int)Sw.TALK_CHANNEL_TYPE.TALK_CHANNEL_PRIVATE, 0, "", send, 1);
            }
            break;

            case "ai":
            case "aq":
            case "act":
            {
                uint   id     = uint.Parse(value[1]);
                uint   amount = uint.Parse(value[2]);
                string send   = string.Format("/{0} {1} {2}", value[0], id, amount);
                NetworkClient.instance.SendPMsgTalkCS((int)Sw.TALK_CHANNEL_TYPE.TALK_CHANNEL_PRIVATE, 0, "", send, 1);
            }
            break;

            case "sp":
            {
                uint   amount = uint.Parse(value[1]);
                string send   = string.Format("/ai 599007 {0}", amount);
                NetworkClient.instance.SendPMsgTalkCS((int)Sw.TALK_CHANNEL_TYPE.TALK_CHANNEL_PRIVATE, 0, "", send, 1);
            }
            break;

            case "mal":
            {
                uint   amount = uint.Parse(value[1]);
                string send   = string.Format("/{0} {1}", value[0], amount);
                NetworkClient.instance.SendPMsgTalkCS((int)Sw.TALK_CHANNEL_TYPE.TALK_CHANNEL_PRIVATE, 0, "", send, 1);
            }
            break;

            case "s":
            {
                //uint amount = uint.Parse(value[1]);
                //string send = string.Format("/{0} {1}", value[0], amount);
                //NetworkClient.instance.SendPMsgTalkCS((int)Sw.TALK_CHANNEL_TYPE.TALK_CHANNEL_PRIVATE, 0, "", send, 1);
                NetworkClient.instance.SendPMsgBuyPowerC();
            }
            break;

            case "ku":
            {
                long   amount = long.Parse(value[1]);
                string send   = string.Format("/{0} {1}", value[0], amount);
                NetworkClient.instance.SendPMsgTalkCS((int)Sw.TALK_CHANNEL_TYPE.TALK_CHANNEL_PRIVATE, 0, "", send, 1);
            }
            break;

            case "asd":
            case "shard":
            case "costume":
            {
                int amount = int.Parse(value[1]);
                CreateMaterials(value[0], amount);
            }
            break;

            case "preview":
            {
                uint amount = uint.Parse(value[1]);
                SceneManager.instance.SetNoticePanel(NoticeType.GetMailItem, amount);
            }
            break;

            case "opentask":
            {
                uint   amount = uint.Parse(value[1]);
                string send   = string.Format("/{0} {1}", value[0], amount);
                NetworkClient.instance.SendPMsgTalkCS((int)Sw.TALK_CHANNEL_TYPE.TALK_CHANNEL_PRIVATE, 0, "", send, 1);
            }
            break;

            case "setskill":
                uint skillId = uint.Parse(value[1]);

                NetData.instance.GetUserInfo().GetEquipSKillSet().IsEquip = false;
                bool isSet = false;
                List <NetData.SkillSetData> skillData = NetData.instance.GetUserInfo()._SKillSetList;
                for (int i = 0; i < skillData.Count; i++)
                {
                    if (!skillData[i].SkillSetId.Equals(skillId))
                    {
                        continue;
                    }

                    isSet = true;
                    skillData[i].IsEquip = true;
                    break;
                }

                if (!isSet)
                {
                    SkillTables.SkillSetInfo info = _LowDataMgr.instance.GetLowDataSkillSet(skillId);
                    skillData.Add(new NetData.SkillSetData(true, new uint[] { 1, 1, 1, 1 }, new uint[] { info.skill1, info.skill2, info.skill3, info.skill4 }, skillId, 0));
                }
                break;
            }
        }
        else
        {
            if (str.Equals("allclear"))
            {
                StartCoroutine("_ClearAllStage");
                return;
            }
            if (str.Equals("questclear"))
            {
                StartCoroutine("QuestClear");
                return;
            }
            else if (str.Equals("allequip"))
            {
                StartCoroutine("CreateEquipment");
                return;
            }
            else if (str.Equals("cg"))
            {
                NetworkClient.instance.SendPMsgTalkCS((int)Sw.TALK_CHANNEL_TYPE.TALK_CHANNEL_PRIVATE, 0, "", "/cg", 1);

                string loginType  = PlayerPrefs.GetString("logintype", "none");
                string user_id    = PlayerPrefs.GetString("user_id", "none");
                string user_token = PlayerPrefs.GetString("user_token", "none");

                if (loginType.Equals("google"))
                {
                    PlayerPrefs.DeleteKey("logintype");
                    PlayerPrefs.DeleteKey("user_id");
                    PlayerPrefs.DeleteKey("user_token");
                    NetData.instance._LoginType = eLoginType.GUEST;
                }

                return;
            }
            else if (str.Equals("cfb"))
            {
                NetworkClient.instance.SendPMsgTalkCS((int)Sw.TALK_CHANNEL_TYPE.TALK_CHANNEL_PRIVATE, 0, "", "/cfb", 1);

                string loginType  = PlayerPrefs.GetString("logintype", "none");
                string user_id    = PlayerPrefs.GetString("user_id", "none");
                string user_token = PlayerPrefs.GetString("user_token", "none");

                if (loginType.Equals("facebook"))
                {
                    PlayerPrefs.DeleteKey("logintype");
                    PlayerPrefs.DeleteKey("user_id");
                    PlayerPrefs.DeleteKey("user_token");
                    NetData.instance._LoginType = eLoginType.GUEST;
                }

                return;
            }
            else if (str.Contains("game"))
            {
                string[] split = str.Split(' ');
                if (split[1].Contains("single"))
                {
                    string[] split2   = split[1].Split('_');
                    uint     stageNum = 0;
                    if (uint.TryParse(split2[1], out stageNum))
                    {
                        SceneManager.instance.ShowLoadingTipPanel(true, GAME_MODE.SINGLE, () =>
                        {
                            //이상태에서의 데이터를 저장
                            NetData.instance.MakePlayerSyncData(true);

                            SingleGameState.lastSelectStageId = stageNum;
                            SingleGameState.verifyToken       = 1023;
                            SingleGameState.IsTest            = true;
                            SingleGameState.StageQuestList    = new System.Collections.Generic.List <NetData.StageClearData>();
                            SingleGameState.CurStageName      = split[1];

                            SceneManager.instance.ActionEvent(_ACTION.PLAY_SINGLE);

                            base.GotoInGame();
                        });
                    }
                }
                else if (split[1].Contains("devildom_tower"))
                {
                    uint stageNum = 0;
                    List <DungeonTable.TowerInfo> list = _LowDataMgr.instance.GetLowDataTowerList();
                    for (int i = 0; i < list.Count; i++)
                    {
                        if (!list[i].mapName.Equals(split[1]))
                        {
                            continue;
                        }

                        stageNum = list[i].StageIndex;
                        break;
                    }

                    if (0 < stageNum)
                    {
                        SceneManager.instance.ShowLoadingTipPanel(true, GAME_MODE.TOWER, () =>
                        {
                            //이상태에서의 데이터를 저장
                            NetData.instance.MakePlayerSyncData(true);

                            TowerGameState.lastSelectStageId = stageNum;
                            TowerGameState.IsTest            = true;

                            SceneManager.instance.ActionEvent(_ACTION.PLAY_TOWER);
                            base.GotoInGame();
                        });
                    }
                }
                else if (split[1].Contains("Raid_Dungeon"))
                {
                    uint stageNum = 0;
                    List <DungeonTable.SingleBossRaidInfo> list = _LowDataMgr.instance.GetLowDataBossRaidList();
                    for (int i = 0; i < list.Count; i++)
                    {
                        if (!list[i].stageName.Equals(split[1]))
                        {
                            continue;
                        }

                        stageNum = list[i].raidId;
                        break;
                    }

                    if (0 < stageNum)
                    {
                        SceneManager.instance.ShowLoadingTipPanel(true, GAME_MODE.RAID, () =>
                        {
                            //이상태에서의 데이터를 저장
                            NetData.instance.MakePlayerSyncData(true);

                            RaidGameState.lastSelectStageId = stageNum;
                            RaidGameState.IsTest            = true;

                            SceneManager.instance.ActionEvent(_ACTION.PLAY_RAID);

                            base.GotoInGame();
                        });
                    }
                }
                else if (split[1].Contains("tower"))
                {
                    string[] split2   = split[1].Split('_');
                    uint     stageNum = 0;
                    if (uint.TryParse(split2[1], out stageNum))
                    {
                        SceneManager.instance.ShowLoadingTipPanel(true, GAME_MODE.TOWER, () =>
                        {
                            //이상태에서의 데이터를 저장
                            NetData.instance.MakePlayerSyncData(true);

                            TowerGameState.lastSelectStageId = stageNum;
                            TowerGameState.IsTest            = true;

                            SceneManager.instance.ActionEvent(_ACTION.PLAY_TOWER);

                            base.GotoInGame();
                        });
                    }
                }
                else if (split[1].Contains("raid"))
                {
                    string[] split2   = split[1].Split('_');
                    uint     stageNum = 0;
                    if (uint.TryParse(split2[1], out stageNum))
                    {
                        SceneManager.instance.ShowLoadingTipPanel(true, GAME_MODE.RAID, () =>
                        {
                            //이상태에서의 데이터를 저장
                            NetData.instance.MakePlayerSyncData(true);

                            RaidGameState.lastSelectStageId = stageNum;
                            RaidGameState.IsTest            = true;

                            SceneManager.instance.ActionEvent(_ACTION.PLAY_RAID);

                            base.GotoInGame();
                        });
                    }
                }
            }
            else if (str.Equals("q"))
            {
                if (!TownState.TownActive)
                {
                    InGameHUDPanel.ZeroDamagePlay_01 = !InGameHUDPanel.ZeroDamagePlay_01;
                }
            }
            else if (str.Equals("qq"))
            {
                if (!TownState.TownActive)
                {
                    InGameHUDPanel.ZeroDamagePlay = !InGameHUDPanel.ZeroDamagePlay;
                }
            }
            else if (str.Equals("cooltime"))
            {
                if (!TownState.TownActive)
                {
                    InGameHUDPanel.ZeroSkillCoolTime = !InGameHUDPanel.ZeroSkillCoolTime;
                }
            }
            else if (str.Equals("tutoreset"))
            {
                string key = string.Format("TutorialData_{0}.json", NetData.instance.GetUserInfo().GetCharUUID());
                if (PlayerPrefs.HasKey(key))
                {
                    PlayerPrefs.DeleteKey(key);
                }
            }
            else
            {
                SceneManager.instance.ShowLoadingTipPanel(true, GAME_MODE.NONE, () =>
                {
                    //이상태에서의 데이터를 저장
                    NetData.instance.MakePlayerSyncData(true);

                    TutorialGameState.StageName         = str;
                    TutorialGameState.lastSelectStageId = 1;
                    TutorialGameState.verifyToken       = 1023;

                    SceneManager.instance.ActionEvent(_ACTION.PLAY_TUTORIAL);

                    base.GotoInGame();
                });
            }

            base.Close();
        }
    }