private void UpdateTitleQualification(int qualifyIndex) { WordType wordType = LearningInfo.Instance.currentWordType; PlayerData playerData = GameManager.Instance.persistDataManager.LoadPlayerData(); switch (wordType) { case WordType.Simple: Player.mainPlayer.titleQualificationsOfSimple[qualifyIndex] = true; playerData.titleQualificationsOfSimple[qualifyIndex] = true; break; case WordType.Medium: Player.mainPlayer.titleQualificationsOfMedium[qualifyIndex] = true; playerData.titleQualificationsOfMedium[qualifyIndex] = true; break; case WordType.Master: Player.mainPlayer.titleQualificationsOfMedium[qualifyIndex] = true; playerData.titleQualificationsOfMedium[qualifyIndex] = true; break; } DataHandler.SaveInstanceDataToFile <PlayerData>(playerData, CommonData.playerDataFilePath); }
/// <summary> /// 更新人物技能点并保存 /// </summary> public void AddOneSkillPointToPlayerDataFile() { PlayerData playerData = DataHandler.LoadDataToSingleModelWithPath <PlayerData>(CommonData.playerDataFilePath); playerData.skillNumLeft++; DataHandler.SaveInstanceDataToFile <PlayerData>(playerData, CommonData.playerDataFilePath, true); }
/// <summary> /// 更新人物金钱并保存 /// </summary> public void UpdateBuyGoldToPlayerDataFile() { PlayerData playerData = DataHandler.LoadDataToSingleModelWithPath <PlayerData>(CommonData.playerDataFilePath); playerData.totalGold = Player.mainPlayer.totalGold; DataHandler.SaveInstanceDataToFile <PlayerData>(playerData, CommonData.playerDataFilePath, true); }
/// <summary> /// Saves the learn info. /// </summary> // public void SaveLearnInfo(){ // // string learnInfoPath = string.Format ("{0}/{1}", CommonData.persistDataPath, "LearningInfo.json"); // // DataHandler.SaveInstanceDataToFile<LearningInfo> (learnInfo, learnInfoPath); // } /// <summary> /// Saves the player data. /// </summary> public void SaveCompletePlayerData() { string playerDataPath = Path.Combine(CommonData.persistDataPath, "PlayerData.json"); PlayerData playerData = new PlayerData(Player.mainPlayer); DataHandler.SaveInstanceDataToFile <PlayerData> (playerData, playerDataPath); }
/// <summary> /// 保存玩家角色数据 /// </summary> public void SaveCompletePlayerData() { string playerDataPath = CommonData.playerDataFilePath; PlayerData playerData = new PlayerData(Player.mainPlayer); DataHandler.SaveInstanceDataToFile <PlayerData> (playerData, playerDataPath, true); }
private void SaveGoodsInfoOfTrader() { string traderDataPath = Path.Combine(CommonData.originDataPath, "NPCs/Trader_TraderMan.json"); Trader trader = DataHandler.LoadDataToSingleModelWithPath <Trader> (traderDataPath); trader.goodsGroupList = allGoodsGroup; DataHandler.SaveInstanceDataToFile <Trader> (trader, traderDataPath); }
/// <summary> /// 重置本关地图事件记录 /// </summary> public void ResetCurrentMapEventRecord() { bool hasRecord = DataHandler.FileExist(CommonData.currentMapEventsRecordFilePath); if (hasRecord) { DataHandler.DeleteFile(CommonData.currentMapEventsRecordFilePath); } CurrentMapEventsRecord currentMapEventsRecord = null; DataHandler.SaveInstanceDataToFile <CurrentMapEventsRecord>(currentMapEventsRecord, CommonData.currentMapEventsRecordFilePath); }
/// <summary> /// 重置小地图记录 /// </summary> public void ResetMiniMapEventsRecord() { bool hasRecord = DataHandler.FileExist(CommonData.miniMapRecordFilePath); if (hasRecord) { DataHandler.DeleteFile(CommonData.miniMapRecordFilePath); } MiniMapRecord currentMinimapRecord = null; GameManager.Instance.gameDataCenter.currentMapMiniMapRecord = null; DataHandler.SaveInstanceDataToFile <MiniMapRecord>(currentMinimapRecord, CommonData.miniMapRecordFilePath); }
public static void GeneratePlayerJsonData() { Player p = TransformManager.FindTransform("Player").GetComponent <Player> (); // p.allEquipedEquipments = new Equipment[6]; p.physicalHurtScaler = 1.0f; p.magicalHurtScaler = 1.0f; p.critHurtScaler = 1.5f; PlayerData pd = new PlayerData(p); string originalPlayerDataPath = Path.Combine(CommonData.originDataPath, "OriginalPlayerData.json"); DataHandler.SaveInstanceDataToFile <PlayerData> (pd, originalPlayerDataPath); }
// [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)] // static public void CallbackInitialization() // { // //register the callback to be called everytime the scene is loaded // SceneManager.sceneLoaded += OnSceneLoaded; // } // // static private void OnSceneLoaded(Scene arg0, LoadSceneMode arg1) // { // switch (arg0.name) { // case "GameScene": // TransformManager.FindTransform ("GameLoader").GetComponent<GameLoader> ().SetUpHomeView (); // break; // case "ExploreScene": // int currentExploreLevel = GameManager.Instance.unlockedMaxChapterIndex; // // ResourceLoader exploreSceneLoader = ResourceLoader.CreateNewResourceLoader (); // // ResourceManager.Instance.LoadAssetsWithBundlePath (exploreSceneLoader, "explore/scene", () => { // // ExploreManager.Instance.GetComponent<ExploreManager> ().SetupExploreView (currentExploreLevel); // // }, true); // break; // // } // // } #warning 打包ios时需要在xcode中更改以下内容 /// <summary> /// 保存所有数据 /// 该方法用于和ios交互 /// xcode中UnityAppController.mm 修改如下 /* * - (void)applicationDidEnterBackground:(UIApplication*)application * { * UnitySendMessage("GameManager","SaveAllData",""); // 退回主界面时都进行保存操作 * ::printf("-> applicationDidEnterBackground()\n"); * } */ /// </summary> public void SaveAllData() { Debug.Log("save data "); if (Camera.main.GetComponent <GameLoader>().dataReady) { persistDataManager.SaveDataInExplore(null, true); } // 如果退出的时候游戏数据还没有ready,用备用数据存储一次,防止数据丢失 else if (persistDataManager.dataBackUp != null) { if (persistDataManager.dataBackUp.playerData != null) { DataHandler.SaveInstanceDataToFile <PlayerData>(persistDataManager.dataBackUp.playerData, CommonData.playerDataFilePath); } if (persistDataManager.dataBackUp.buyRecord != null) { DataHandler.SaveInstanceDataToFile <BuyRecord>(persistDataManager.dataBackUp.buyRecord, CommonData.buyRecordFilePath); } if (persistDataManager.dataBackUp.chatRecords != null) { DataHandler.SaveInstanceListToFile <HLHNPCChatRecord>(persistDataManager.dataBackUp.chatRecords, CommonData.chatRecordsFilePath); } if (persistDataManager.dataBackUp.currentMapEventsRecord != null) { DataHandler.SaveInstanceDataToFile <CurrentMapEventsRecord>(persistDataManager.dataBackUp.currentMapEventsRecord, CommonData.currentMapEventsRecordFilePath); } if (persistDataManager.dataBackUp.gameSettings != null) { DataHandler.SaveInstanceDataToFile <GameSettings>(persistDataManager.dataBackUp.gameSettings, CommonData.gameSettingsDataFilePath); } if (persistDataManager.dataBackUp.mapEventsRecords != null) { DataHandler.SaveInstanceListToFile <MapEventsRecord>(persistDataManager.dataBackUp.mapEventsRecords, CommonData.mapEventsRecordFilePath); } if (persistDataManager.dataBackUp.miniMapRecord != null) { DataHandler.SaveInstanceDataToFile <MiniMapRecord>(persistDataManager.dataBackUp.miniMapRecord, CommonData.miniMapRecordFilePath); } if (persistDataManager.dataBackUp.playRecords != null) { DataHandler.SaveInstanceListToFile <PlayRecord>(persistDataManager.dataBackUp.playRecords, CommonData.playRecordsFilePath); } persistDataManager.dataBackUp = null; } }
/// <summary> /// 没有旧版本时的安装逻辑 /// </summary> private void OnNewInstall() { GameSettings gameSettings = GameManager.Instance.gameDataCenter.gameSettings; string dateString = DateTime.Now.ToShortDateString(); gameSettings.installDateString = dateString; GameManager.Instance.persistDataManager.SaveGameSettings(); Player.mainPlayer.currentExploreStartDateString = dateString; PlayerData playerData = DataHandler.LoadDataToSingleModelWithPath <PlayerData>(CommonData.playerDataFilePath); playerData.currentExploreStartDateString = dateString; ApplicationInfo.Instance.currentVersion = GameManager.Instance.currentVersion; DataHandler.SaveInstanceDataToFile <ApplicationInfo>(ApplicationInfo.Instance, CommonData.applicationInfoFilePath); DataHandler.SaveInstanceDataToFile <PlayerData>(playerData, CommonData.playerDataFilePath, true); }
private void ResetPlayerDataAndSave() { Player.mainPlayer.InitializeMapIndex(); PlayerData playerData = new PlayerData(Player.mainPlayer); playerData.agentLevel = 1; playerData.maxHealth = maxHealth; playerData.originalMaxHealth = maxHealth; playerData.health = maxHealth; playerData.originalMaxMana = maxMana; playerData.maxMana = maxMana; playerData.mana = maxMana; playerData.originalAttack = attack; playerData.attack = attack; playerData.originalMagicAttack = magicAttack; playerData.magicAttack = magicAttack; playerData.originalArmor = armor; playerData.armor = armor; playerData.originalMagicResist = magicResist; playerData.magicResist = magicResist; playerData.originalDodge = dodge; playerData.dodge = dodge; playerData.originalCrit = crit; playerData.crit = crit; playerData.originalAttackSpeed = AttackSpeed.Slow; playerData.originalMoveSpeed = 20; playerData.originalArmorDecrease = 0; playerData.originalMagicResistDecrease = 0; playerData.originalCritHurtScaler = 1.5f; playerData.originalPhysicalHurtScaler = 1f; playerData.originalMagicalHurtScaler = 1f; playerData.originalExtraGold = 0; playerData.originalExtraExperience = 0; playerData.originalHealthRecovery = 0; playerData.originalMagicRecovery = 0; playerData.attackSpeed = AttackSpeed.Slow; playerData.moveSpeed = 20; playerData.armorDecrease = 0; playerData.magicResistDecrease = 0; playerData.critHurtScaler = 1.5f; playerData.physicalHurtScaler = 1f; playerData.magicalHurtScaler = 1f; playerData.extraGold = 0; playerData.extraExperience = 0; playerData.healthRecovery = 0; playerData.magicRecovery = 0; playerData.allEquipmentsInBag = new List <Equipment>(); playerData.allConsumablesInBag = new List <Consumables>(); playerData.allSkillScrollsInBag = new List <SkillScroll>(); playerData.allSpecialItemsInBag = new List <SpecialItem>(); playerData.allLearnedSkillsRecord = new List <SkillModel>(); playerData.allPropertyGemstonesInBag = new List <PropertyGemstone>(); playerData.maxUnlockLevelIndex = 0; playerData.currentLevelIndex = 0; playerData.totalGold = 0; playerData.experience = 0; playerData.isNewPlayer = false; playerData.needChooseDifficulty = true; playerData.skillNumLeft = 0; playerData.luckInOpenTreasure = 0; playerData.luckInMonsterTreasure = 0; DataHandler.SaveInstanceDataToFile <PlayerData>(playerData, CommonData.oriPlayerDataFilePath); }
/// <summary> /// 保存游戏设置 /// </summary> public void SaveGameSettings() { string gameSettingsPath = string.Format("{0}/{1}", CommonData.persistDataPath, "GameSettings.json"); DataHandler.SaveInstanceDataToFile <GameSettings> (GameManager.Instance.gameDataCenter.gameSettings, gameSettingsPath); }
/// <summary> /// 版本更新时数据处理 /// </summary> /// <param name="checkData">Check data.</param> /// <param name="sql">Sql.</param> private void OnVersionUpdate(CheckDataModel checkData, MySQLiteHelper sql) { //更新原始数据 if (checkData.chatRecords != null && checkData.chatRecords.Count > 0) { DataHandler.SaveInstanceListToFile <HLHNPCChatRecord>(checkData.chatRecords, CommonData.chatRecordsFilePath); } if (checkData.mapEventsRecords != null && checkData.mapEventsRecords.Count > 0) { DataHandler.SaveInstanceListToFile <MapEventsRecord>(checkData.mapEventsRecords, CommonData.mapEventsRecordFilePath); } if (checkData.gameSettings != null) { DataHandler.SaveInstanceDataToFile <GameSettings>(checkData.gameSettings, CommonData.gameSettingsDataFilePath); } if (checkData.miniMapRecord != null) { DataHandler.SaveInstanceDataToFile <MiniMapRecord>(checkData.miniMapRecord, CommonData.miniMapRecordFilePath); } if (checkData.currentMapEventsRecord != null) { DataHandler.SaveInstanceDataToFile <CurrentMapEventsRecord>(checkData.currentMapEventsRecord, CommonData.currentMapEventsRecordFilePath); } if (checkData.playRecords != null) { DataHandler.SaveInstanceListToFile <PlayRecord>(checkData.playRecords, CommonData.playRecordsFilePath); } if (checkData.buyRecord != null) { DataHandler.SaveInstanceDataToFile <BuyRecord>(checkData.buyRecord, CommonData.buyRecordFilePath, true); } sql.GetConnectionWith(CommonData.dataBaseName); sql.BeginTransaction(); if (checkData.learnedWordsInSimple.Count > 0) { Debug.Log(checkData.learnedWordsInSimple.Count); UpdateWordsDataBase(sql, 0, checkData.learnedWordsInSimple); } if (checkData.learnedWordsInMedium.Count > 0) { UpdateWordsDataBase(sql, 1, checkData.learnedWordsInMedium); } if (checkData.learnedWordsInMaster.Count > 0) { UpdateWordsDataBase(sql, 2, checkData.learnedWordsInMaster); } sql.EndTransaction(); sql.CloseConnection(CommonData.dataBaseName); WordType wordType = WordType.Simple; if (checkData.gameSettings != null) { wordType = checkData.gameSettings.wordType; } // 更新版本信息 ApplicationInfo.Instance.currentVersion = GameManager.Instance.currentVersion; DataHandler.SaveInstanceDataToFile <ApplicationInfo>(ApplicationInfo.Instance, CommonData.applicationInfoFilePath); if (checkData.playerData == null) { GameManager.Instance.persistDataManager.SaveCompletePlayerData(); return; } if (checkData.playerData.currentExploreStartDateString == null || checkData.playerData.currentExploreStartDateString == string.Empty) { string dateString = DateTime.Now.ToShortDateString(); Player.mainPlayer.currentExploreStartDateString = dateString; checkData.playerData.currentExploreStartDateString = dateString; } // 更新单词数据 if (checkData.playerData.maxWordContinuousRightRecord > 0) { switch (wordType) { case WordType.Simple: Player.mainPlayer.maxSimpleWordContinuousRightRecord = checkData.playerData.maxWordContinuousRightRecord; checkData.playerData.maxSimpleWordContinuousRightRecord = checkData.playerData.maxWordContinuousRightRecord; break; case WordType.Medium: Player.mainPlayer.maxMediumWordContinuousRightRecord = checkData.playerData.maxWordContinuousRightRecord; checkData.playerData.maxMediumWordContinuousRightRecord = checkData.playerData.maxWordContinuousRightRecord; break; case WordType.Master: Player.mainPlayer.maxMasterWordContinuousRightRecord = checkData.playerData.maxWordContinuousRightRecord; checkData.playerData.maxMasterWordContinuousRightRecord = checkData.playerData.maxWordContinuousRightRecord; break; } checkData.playerData.maxWordContinuousRightRecord = 0; } if (checkData.playerData.wordContinuousRightRecord > 0) { switch (wordType) { case WordType.Simple: Player.mainPlayer.simpleWordContinuousRightRecord = checkData.playerData.wordContinuousRightRecord; checkData.playerData.simpleWordContinuousRightRecord = checkData.playerData.wordContinuousRightRecord; break; case WordType.Medium: Player.mainPlayer.mediumWordContinuousRightRecord = checkData.playerData.wordContinuousRightRecord; checkData.playerData.mediumWordContinuousRightRecord = checkData.playerData.wordContinuousRightRecord; break; case WordType.Master: Player.mainPlayer.masterWordContinuousRightRecord = checkData.playerData.wordContinuousRightRecord; checkData.playerData.masterWordContinuousRightRecord = checkData.playerData.wordContinuousRightRecord; break; } checkData.playerData.wordContinuousRightRecord = 0; } if (checkData.playerData.titleQualifications != null) { bool hasOldVersionTitle = false; for (int i = 0; i < checkData.playerData.titleQualifications.Length; i++) { if (checkData.playerData.titleQualifications[i]) { hasOldVersionTitle = true; break; } } if (checkData.playerData.titleQualificationsOfSimple == null || checkData.playerData.titleQualificationsOfSimple.Length == 0) { checkData.playerData.titleQualificationsOfSimple = new bool[] { false, false, false, false, false, false }; } if (checkData.playerData.titleQualificationsOfMedium == null || checkData.playerData.titleQualificationsOfMedium.Length == 0) { checkData.playerData.titleQualificationsOfMedium = new bool[] { false, false, false, false, false, false }; } if (checkData.playerData.titleQualificationsOfMaster == null || checkData.playerData.titleQualificationsOfMaster.Length == 0) { checkData.playerData.titleQualificationsOfMaster = new bool[] { false, false, false, false, false, false }; } Player.mainPlayer.titleQualificationsOfSimple = checkData.playerData.titleQualificationsOfSimple; Player.mainPlayer.titleQualificationsOfMedium = checkData.playerData.titleQualificationsOfMedium; Player.mainPlayer.titleQualificationsOfMaster = checkData.playerData.titleQualificationsOfMaster; if (hasOldVersionTitle) { switch (wordType) { case WordType.Simple: Player.mainPlayer.titleQualificationsOfSimple = checkData.playerData.titleQualifications; checkData.playerData.titleQualificationsOfSimple = checkData.playerData.titleQualifications; break; case WordType.Medium: Player.mainPlayer.titleQualificationsOfMedium = checkData.playerData.titleQualifications; checkData.playerData.titleQualificationsOfMedium = checkData.playerData.titleQualifications; break; case WordType.Master: Player.mainPlayer.titleQualificationsOfMaster = checkData.playerData.titleQualifications; checkData.playerData.titleQualificationsOfMaster = checkData.playerData.titleQualifications; break; } checkData.playerData.titleQualifications = new bool[] { false, false, false, false, false, false }; } } DataHandler.SaveInstanceDataToFile <PlayerData>(checkData.playerData, CommonData.playerDataFilePath, true); }
/// <summary> /// 保存应用信息【主要是当前版本号】 /// </summary> public void SaveApplicationInfo() { DataHandler.SaveInstanceDataToFile <ApplicationInfo>(ApplicationInfo.Instance, CommonData.applicationInfoFilePath); }
/// <summary> /// 保存游戏购买记录 /// </summary> public void SaveBuyRecord() { DataHandler.SaveInstanceDataToFile <BuyRecord> (BuyRecord.Instance, CommonData.buyRecordFilePath, true); }
/// <summary> /// 保存当前关卡地图事件记录 /// </summary> public void SaveCurrentMapEventsRecords() { DataHandler.SaveInstanceDataToFile <CurrentMapEventsRecord>(GameManager.Instance.gameDataCenter.currentMapEventsRecord, CommonData.currentMapEventsRecordFilePath); }
/// <summary> /// 重置当前小地图记录并保存 /// </summary> public void ResetCurrentMapMiniMapRecordAndSave() { GameManager.Instance.gameDataCenter.currentMapMiniMapRecord = null; DataHandler.SaveInstanceDataToFile <MiniMapRecord>(null, CommonData.miniMapRecordFilePath); }
/// <summary> /// 保存当前小地图记录 /// </summary> public void SaveCurrentMapMiniMapRecord() { DataHandler.SaveInstanceDataToFile <MiniMapRecord>(GameManager.Instance.gameDataCenter.currentMapMiniMapRecord, CommonData.miniMapRecordFilePath); }