#if UNITY_EDITOR using IVDataFormat; using System.IO; using System.Numerics; using UnityEditor; using UnityEngine; public class CustomOptionWindow : EditorWindow { #region User [MenuItem("Custom/User Settings", priority = 1)] public static void OpenUserToken() { EditorWindow.GetWindow("User Settings"); } public const string KEY = "editortoken"; string userToken = null; private void OnGUI() { if (string.IsNullOrEmpty(userToken)) { userToken = PlayerPrefs.GetString(KEY, "input your token here"); } GUILayout.Space(10f); GUILayout.Label("User Token", EditorStyles.boldLabel); GUIStyle areastyle = new GUIStyle(GUI.skin.textArea); areastyle.wordWrap = true; areastyle.fixedHeight = 300f; userToken = EditorGUILayout.TextArea(userToken, areastyle); GUILayout.Label("* Input your login token and save."); GUILayout.Space(10f); if (GUILayout.Button("Save")) { if (!string.IsNullOrEmpty(userToken) && !userToken.Equals("input your token here")) { PlayerPrefs.SetString(KEY, userToken); PlayerPrefs.Save(); EditorUtility.DisplayDialog("Result", "User token saved.", "OK"); } else { userToken = "input your token here"; EditorUtility.DisplayDialog("Error!", "Please input correct token.", "OK"); } } } #endregion User #region Remove Datas [MenuItem("Custom/Remove Datas/Remove Play Data", priority = 11)] public static void RemovePlayData() { string strpath = Application.persistentDataPath + "/" + Global.ES3_PlayDatas; File.Delete(strpath); EditorUtility.DisplayDialog("Remove Play Data", strpath + " Removed!", "OK"); } [MenuItem("Custom/Remove Datas/Remove Currency Data", priority = 12)] public static void RemoveCurrencyData() { string strpath = Application.persistentDataPath + "/" + Global.ES3_PlayGoods; File.Delete(strpath); EditorUtility.DisplayDialog("Remove Currency Data", strpath + " Removed!", "OK"); } [MenuItem("Custom/Remove Datas/Remove Pass Data", priority = 13)] public static void RemoveCPassData() { string strpath = Application.persistentDataPath + "/" + Global.ES3_Pass; File.Delete(strpath); EditorUtility.DisplayDialog("Remove Pass Data", strpath + " Removed!", "OK"); } [MenuItem("Custom/Remove Datas/Remove All Save Datas", priority = 14)] public static void RemoveAllSaveDatas() { string[] strpaths = Directory.GetFiles(Application.persistentDataPath); string postfix = ".es3"; for (int i = 0; i < strpaths.Length; i++) { if (strpaths[i].EndsWith(postfix)) File.Delete(strpaths[i]); } EditorUtility.DisplayDialog("Remove All Datas", "Remove all save datas complete!\n" + Application.persistentDataPath, "OK"); } #endregion Remove Datas #region Add Goods [MenuItem("Custom/Add Goods/Add Gold", priority = 21)] public static void AddGold() { cGoodsData data = cGoodsData.Load(1); data.gold += new BigInteger(100000L); data.Save(1); EditorUtility.DisplayDialog("Add Goods", "Add Gold", "OK"); } [MenuItem("Custom/Add Goods/Add Dia", priority = 22)] public static void AddDia() { cGoodsData data = cGoodsData.Load(1); data.diaFree += 50000; data.Save(1); EditorUtility.DisplayDialog("Add Goods", "Add Dia", "OK"); } [MenuItem("Custom/Add Goods/Add Point", priority = 23)] public static void AddPoint() { cGoodsData data = cGoodsData.Load(1); data.point += 100; data.Save(1); EditorUtility.DisplayDialog("Add Goods", "Add Point", "OK"); } [MenuItem("Custom/Add Goods/Add Awaken Stone", priority = 24)] public static void AddAwakenStone() { cGoodsData data = cGoodsData.Load(1); data.gearAwakenStone += 500; data.Save(1); EditorUtility.DisplayDialog("Add Goods", "Add Awaken Stone", "OK"); } [MenuItem("Custom/Add Goods/Add Rein Stone", priority = 25)] public static void AddReinStone() { cGoodsData data = cGoodsData.Load(1); data.gearReinStone += 10000000; data.Save(1); EditorUtility.DisplayDialog("Add Goods", "Add Rein Stone", "OK"); } [MenuItem("Custom/Add Goods/Add Gacha Ticket Weapon", priority = 26)] public static void AddGachaWeapon() { cGoodsData data = cGoodsData.Load(1); data.gachaWeapon += 300; data.Save(1); EditorUtility.DisplayDialog("Add Goods", "Add Gacha Ticket Weapon", "OK"); } [MenuItem("Custom/Add Goods/Add Gacha Ticket Armor", priority = 27)] public static void AddGachaArmor() { cGoodsData data = cGoodsData.Load(1); data.gachaArmor += 300; data.Save(1); EditorUtility.DisplayDialog("Add Goods", "Add Gacha Ticket Armor", "OK"); } [MenuItem("Custom/Add Goods/Add Gacha Ticket Acce", priority = 28)] public static void AddGachaAcce() { cGoodsData data = cGoodsData.Load(1); data.gachaAcc += 300; data.Save(1); EditorUtility.DisplayDialog("Add Goods", "Add Gacha Ticket Acce", "OK"); } [MenuItem("Custom/Add Goods/Add Gacha Ticket Treasure", priority = 29)] public static void AddGachaTreasure() { cGoodsData data = cGoodsData.Load(1); data.gachaTreasure += 300; data.Save(1); EditorUtility.DisplayDialog("Add Goods", "Add Gacha Ticket Treasure", "OK"); } [MenuItem("Custom/Add Goods/Add Gear Box", priority = 41)] public static void AddGearBox() { cBoxData data = cBoxData.Load(1); int iendcode = cGoods.CBoxGeneralStart + 28; for (int key = cGoods.CBoxGeneralStart; key < iendcode; key++) { if (Random.Range(0, 2) > 0) continue; if (data.dicBoxCount.ContainsKey(key)) data.dicBoxCount[key] += 50; else data.dicBoxCount.Add(key, 50); } data.Save(1); EditorUtility.DisplayDialog("Add Goods", "Add Gear Box", "OK"); } [MenuItem("Custom/Add Goods/Add Pet Box", priority = 42)] public static void AddPetBox() { cBoxData data = cBoxData.Load(1); int iendcode = cGoods.CBoxPetStart + 28; for (int key = cGoods.CBoxPetStart; key < iendcode; key++) { if (Random.Range(0, 2) > 0) continue; if (data.dicBoxCount.ContainsKey(key)) data.dicBoxCount[key] += 10; else data.dicBoxCount.Add(key, 10); } data.Save(1); EditorUtility.DisplayDialog("Add Goods", "Add Pet Box", "OK"); } [MenuItem("Custom/Add Goods/Add Diary Box", priority = 43)] public static void AddDiaryBox() { cBoxData data = cBoxData.Load(1); int key = cGoods.CBoxDiary; if (data.dicBoxCount.ContainsKey(key)) data.dicBoxCount[key] += 20; else data.dicBoxCount.Add(key, 20); data.Save(1); EditorUtility.DisplayDialog("Add Goods", "Add Diary Box", "OK"); } #endregion Add Goods } #endif