Exemple #1
0
        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);
     }
 }
Exemple #4
0
    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);
            }
        }
    }