private void CheckDBVersion() { try { // DB最小版本為0; int InitDBVersion = 0; int LocalDBVersion = 0; int ToDBVersion = PaperLess_Emeeting.Properties.Settings.Default.NowDBVersion; string DB_FilePath = Path.Combine(ClickOnceTool.GetDataPath(), PaperLess_Emeeting.Properties.Settings.Default.PaperLessDB_Path); string ConfigIni_FilePath = Path.Combine(ClickOnceTool.GetDataPath(), PaperLess_Emeeting.Properties.Settings.Default.ConfigIni_Path); if (File.Exists(ConfigIni_FilePath) == true) { IniFileTool ini = new IniFileTool(ConfigIni_FilePath); try { int.TryParse(ini.IniReadValue("DB", "Version"), out LocalDBVersion); } catch (Exception ex) { LogTool.Debug(ex); } bool Success = UpdateDBVersion(LocalDBVersion); if (Success == true) { ini.IniWriteValue("DB", "Version", ToDBVersion.ToString()); } else { throw new Exception("DB更新失敗!"); } } else { //在嘗試更新一次,避免DB沒有更新到 UpdateDBVersion(LocalDBVersion); using (var writer = new FileStream(ConfigIni_FilePath, FileMode.OpenOrCreate)) { } IniFileTool ini = new IniFileTool(ConfigIni_FilePath); ini.IniWriteValue("DB", "Version", ToDBVersion.ToString()); } } catch (Exception ex) { LogTool.Debug(ex); } }
/** * Parses the level directory. */ private void LoadLevelMenuItems() { string[] files = Directory.GetFiles(this.iniPath); foreach (string fileName in files) { if (fileName.EndsWith(".ini")) { IniFileTool iniFileTool = new IniFileTool(fileName); string levelName = iniFileTool.getValue("level", "name", "Unnamed level"); int levelCompleted = PlayerPrefs.GetInt(fileName); if (levelCompleted != 0) //if the level has been completed, show it in the level name { levelName = levelName + " (Score: " + levelCompleted + ")"; } this.items.AddLast(new LevelMenu.LevelMenuItem(levelName, fileName)); } } }
private void CheckDBVersion() { try { int result = 0; int nowDBVersion = Settings.Default.NowDBVersion; Path.Combine(ClickOnceTool.GetDataPath(), Settings.Default.PaperLessDB_Path); string text = Path.Combine(ClickOnceTool.GetDataPath(), Settings.Default.ConfigIni_Path); if (File.Exists(text)) { IniFileTool iniFileTool = new IniFileTool(text); try { int.TryParse(iniFileTool.IniReadValue("DB", "Version"), out result); } catch (Exception ex) { LogTool.Debug(ex); } if (!UpdateDBVersion(result)) { throw new Exception("DB更新失敗!"); } iniFileTool.IniWriteValue("DB", "Version", nowDBVersion.ToString()); } else { UpdateDBVersion(result); using (new FileStream(text, FileMode.OpenOrCreate)) { } IniFileTool iniFileTool2 = new IniFileTool(text); iniFileTool2.IniWriteValue("DB", "Version", nowDBVersion.ToString()); } } catch (Exception ex2) { LogTool.Debug(ex2); } }
private void LoadLevelFile(string levelPath) //levelPath eg. levels/level1.ini { IniFileTool iniReader = new IniFileTool(levelPath, true); levelDuration = iniReader.getValue("level", "durationInSecs", 30); //loads the time GameObject.Find("GameInfoObject").GetComponent <GameInfo>().levelName = iniReader.getValue("level", "name", "Unnamed level"); //the following loop will load the times and wolves into the wolvesToSpawn dictionary int numberOfGroups = iniReader.getNumberOfGroups(); for (int i = 0; i < numberOfGroups; i++) { string groupName = iniReader.getGroupByIndex(i); int sec = ConvertStringToInt(groupName); if (sec != -1) //is a group that specifies time { string wolves = iniReader.getValue(groupName, "spawn", "wolf"); string message = iniReader.getValue(groupName, "message", ""); wolvesToSpawn.Add(sec, wolves.Split(';')); //sets the time as value and wolves obtained from the level file to the dictionary messages.Add(sec, message); //Adds a message to the list } } //Loading defined sceneObjects int numberOfObjects = iniReader.getNumberOfKeys("sceneObjects"); for (int i = 0; i < numberOfObjects; i++) { String newObj = iniReader.getValueByIndex("sceneObjects", i, null); if (newObj != null) //there is a new object to add { string[] objSettings = newObj.Split(';'); string objName = objSettings[0]; Vector3 position = new Vector3(ConvertStringToFloat(objSettings[1]), ConvertStringToFloat(objSettings[2]), ConvertStringToFloat(objSettings[3])); SpawnGameObject(objName, -1, position, Quaternion.identity); } } }