Exemplo n.º 1
0
        private void OnExport(object sender, EventArgs e)
        {
            int i, nString;

            _lb_output.Items.Clear();

            _lb_output.Items.Add("Exporting !");

            _lb_output.Refresh();
            _lb_output.Invalidate();

            CheckBox[] chkbox = new CheckBox[(int)eSTRING.MAX]
            {
                _chk_string, _chk_help1,
                _chk_item, _chk_setitem,
                _chk_option, _chk_opt_rare,
                _chk_npcname,
                _chk_quest,
                _chk_skill, _chk_sskill,
                _chk_action,
                _chk_combo,
                _chk_affinity,
                _chk_lacarette,
                _chk_itemcollection
            };

            CheckBox[] chk_nation = new CheckBox[(int)eNATION.MAX]
            {
                _chk_nation_dev,
                _chk_nation_ger, _chk_nation_fra, _chk_nation_ita, _chk_nation_pol, _chk_nation_esp,
                _chk_nation_bra, _chk_nation_mex,
                _chk_nation_rus,
                _chk_nation_usa,
                _chk_nation_tha,
                _chk_nation_uk,
            };


            _BitString = 0;
            _BitNation = 0;

            for (i = 0; i < (int)eSTRING.MAX; ++i)
            {
                if (chkbox[i].Checked == true)
                {
                    _BitString |= (1 << i);
                }
            }

            string path = Directory.GetCurrentDirectory();

            path += "\\";

            const string ini_name = "config.ini";

            UTIL.INI ini_reader = new UTIL.INI(path + ini_name);
            string   strRet, strNation;

            string strPathKey = "Path_Ship";

            if (_radio_pre.Checked == true)
            {
                strPathKey = "Path_Pre";
            }

            for (i = 0; i < (int)eNATION.MAX; ++i)
            {
                if (chk_nation[i].Checked == true)
                {
                    _BitNation |= (1 << i);

                    strNation = ((eNATION)(i)).ToString();
                    strRet    = ini_reader.GetIniValue(strPathKey, strNation);

                    if (strRet == string.Empty)
                    {
                        using (FolderBrowserDialog dialog = new FolderBrowserDialog())
                        {
                            dialog.Description         = strNation + " Set Data Path";
                            dialog.ShowNewFolderButton = false;
                            dialog.SelectedPath        = path;

                            if (dialog.ShowDialog() == DialogResult.OK)
                            {
                                ini_reader.SetIniValue(strPathKey, ((eNATION)(i)).ToString(), dialog.SelectedPath + "\\");
                            }
                        }
                    }
                }
            }

            for (nString = 0; nString < (int)eSTRING.MAX; ++nString)
            {
                if ((_BitString & (1 << nString)) != 0)
                {
                    QueryProc(nString);

                    for (i = 0; i < (int)eNATION.MAX; ++i)
                    {
                        if ((_BitNation & (1 << i)) != 0)
                        {
                            switch (nString)
                            {
                            case (int)eSTRING.STRING:
                                exportData(nString, i, "strClient", "a_index", 1, "a_string");
                                break;

                            case (int)eSTRING.HELP1:
                                exportData(nString, i, "strHelp", "a_index", 2, "a_name", "a_desc");
                                break;

                            case (int)eSTRING.ITEM:
                                exportData(nString, i, "strItem", "a_index", 2, "a_name", "a_descr");
                                break;

                            case (int)eSTRING.ITEM_SET:
                                exportData(nString, i, "strSetItem", "a_set_idx", 1, "a_set_name");
                                break;

                            case (int)eSTRING.OPTION:
                                exportData(nString, i, "strOption", "a_index", 1, "a_name");
                                break;

                            case (int)eSTRING.OPTION_RARE:
                                exportData(nString, i, "strRareOption", "a_index", 1, "a_prefix");
                                break;

                            case (int)eSTRING.NPC_NAME:
                                // descr ??
                                exportData(nString, i, "strNpcName", "a_index", 2, "a_name", "a_descr");
                                break;

                            case (int)eSTRING.QUEST:
                                exportData(nString, i, "strQuest", "a_index", 4, "a_name", "a_desc", "a_desc2", "a_desc3");
                                break;

                            case (int)eSTRING.SKILL:
                                exportData(nString, i, "strSkill", "a_index", 3, "a_name", "a_client_description", "a_client_tooltip");
                                break;

                            case (int)eSTRING.SKILL_SPECIAL:
                                exportData(nString, i, "strSSkill", "a_index", 2, "a_name", "a_desc");
                                break;

                            case (int)eSTRING.ACTION:
                                exportData(nString, i, "strAction", "a_index", 2, "a_name", "a_client_description");
                                break;

                            case (int)eSTRING.COMBO:
                                exportData(nString, i, "strCombo", "a_index", 1, "a_name");
                                break;

                            case (int)eSTRING.AFFINITY:
                                exportData(nString, i, "strAffinity", "a_index", 1, "a_name");
                                break;

                            case (int)eSTRING.LACARETTE:
                                exportData(nString, i, "strLacarette", "a_index", 1, "a_name");
                                break;

                            case (int)eSTRING.ITEMCOLLECTION:
                                exportData(nString, i, "strItemCollection", "a_theme", 2, "a_theme_string", "a_desc_string");
                                break;
                            }
                        }
                    } // for (i
                }
            }         // for (nString

            _lb_output.SelectedIndex = _lb_output.Items.Add("Exported Completed!");
        }
Exemplo n.º 2
0
        //----------------------------------------------------------------------------
        // args[0] - string 종류
        // args[1] - 국가
        //
        //----------------------------------------------------------------------------
        private bool exportData(params object[] args)
        {
            int    i;
            Int32  nString    = Convert.ToInt32(args[0]);
            Int32  nNation    = Convert.ToInt32(args[1]);
            string strOutName = args[2].ToString();
            string strIdxName = args[3].ToString();
            Int32  nOutCount  = Convert.ToInt32(args[4]);

            if (nOutCount == 0)
            {
                return(false);
            }

            string[] strOut = new string[nOutCount];

            for (i = 0; i < nOutCount; ++i)
            {
                strOut[i]  = args[5 + i].ToString();
                strOut[i] += NationPostfix[nNation];
            }

            // Log
            _lb_output.Items.Add(string.Format("{0}", strOutName));

            _lb_output.Refresh();
            _lb_output.Invalidate();

            // 출력 경로를 얻는다.
            string path = Directory.GetCurrentDirectory();

            path += "\\";
            const string ini_name = "config.ini";

            UTIL.INI ini_reader = new UTIL.INI(path + ini_name);

            string strPathKey = "Path_Ship";

            if (_radio_pre.Checked == true)
            {
                strPathKey = "Path_Pre";
            }

            string strPath = ini_reader.GetIniValue(strPathKey, ((eNATION)(nNation)).ToString());

            strPath += string.Format("{0}{1}.lod", strOutName, OutputNationPost[nNation]);

            FileStream fs =
                new FileStream(strPath, FileMode.Create, FileAccess.Write);
            BinaryWriter bw = new BinaryWriter(fs);

            DataTable dt = _sql2.dt;

            DataRow[] Rows = dt.Select(string.Format("{0} = MAX({0})", strIdxName));
            Int32     nMax = Convert.ToInt32(Rows[0][strIdxName]);

            bw.Write(dt.Rows.Count);
            bw.Write(nMax);

            Encoding encLatin_1 = Encoding.GetEncoding("ISO-8859-1");

            foreach (DataRow row in dt.Rows)
            {
                bw.Write(Convert.ToInt32(row[strIdxName]));

                for (i = 0; i < nOutCount; ++i)
                {
                    string strTmp = row[strOut[i]].ToString();

                    string debug = EncodingString(strTmp, (int)eNATION.DEV);
                    byte[] data  = encLatin_1.GetBytes(strTmp);

                    bw.Write(data.Length);
                    if (data.Length > 0)
                    {
                        bw.Write(data);
                    }
                }
            }

            bw.Close();
            fs.Close();

            return(true);
        }
Exemplo n.º 3
0
        public bool ConfigLoad(string fileName)
        {
            // ini 파일 읽기
            UTIL.INI ini = new UTIL.INI(fileName);
            int i;
            string strKey;

            int[] nMax = new int[(int)eSECTION.MAX]
            {
                _nLocalMax,
                _nPrefixMax,
                _nVerMax,
                _nLangMax
            };

            // Count
            for(i = 0; i < (int)eSECTION.MAX; ++i)
	        {
                nMax[i] = Convert.ToInt32(ini.GetIniValue(((eSECTION)(i)).ToString(), "Count"));
            }

            _nLocalMax = nMax[(int)eSECTION.LOCAL];
            _nPrefixMax = nMax[(int)eSECTION.DB_PREFIX];
            _nVerMax = nMax[(int)eSECTION.VERSION];
            _nLangMax = nMax[(int)eSECTION.LANGUAGE];

            // 로컬 스트링
            if (_nLocalMax > 0)
			    _strLocal = new string[nMax[(int)eSECTION.LOCAL]];

            for (i = 0; i < _nLocalMax; ++i)
		    {
                strKey = string.Format("{0}{1}", eKEY.LOCAL.ToString(), i);
                _strLocal[i] = ini.GetIniValue(eSECTION.LOCAL.ToString(), strKey);
		    }
	        
            // 프리픽스 스트링
            if (_nPrefixMax > 0)
                _strPreFix = new string[nMax[(int)eSECTION.DB_PREFIX]];

            for (i = 0; i < _nPrefixMax; ++i)
            {
                strKey = string.Format("{0}{1}", eKEY.PREFIX.ToString(), i);
                _strPreFix[i] = ini.GetIniValue(eSECTION.DB_PREFIX.ToString(), strKey);
            }

            // 버전 스트링
            if (_nVerMax > 0)
                _strVersion = new string[nMax[(int)eSECTION.VERSION]];

            for (i = 0; i < _nVerMax; ++i)
            {
                strKey = string.Format("{0}{1}", eKEY.VER.ToString(), i);
                _strVersion[i] = ini.GetIniValue(eSECTION.VERSION.ToString(), strKey);
            }

            // 랭귀지 스트링
            if (_nLangMax > 0)
                _strLang = new string[nMax[(int)eSECTION.LANGUAGE]];

            for (i = 0; i < _nLangMax; ++i)
            {
                strKey = string.Format("{0}{1}", eKEY.LANG.ToString(), i);
                _strLang[i] = ini.GetIniValue(eSECTION.LANGUAGE.ToString(), strKey);
            }

            return true;
        }