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; } }
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(); } }