예제 #1
0
파일: BaseDoc.cs 프로젝트: uvbs/FullSource
        private string mapName; // 当前场景名
        // end ahpho
        public BaseDoc(BaseForm parent, string filename /*, ref AtlIEKG3DScene baseFormScene*/)
        {
            m_form        = parent;
            m_view        = parent.VIEW;
            m_strFileName = filename;

            if (EditorLayer.UseSO3Logic)
            {
                // Init LogicEditor
                EngineLayer.ATLBase.InitLogicalEditorBase();

                LogicsLayer.SO3world.LoadEditorScene(filename);

                LogicsLayer.SO3world.AttachLogicalSceneTo3DScene();

                LogicsLayer.SO3world.NewLogicSceneConnectionAndBindLogicalSceneAndSceneEditor();
            }

            LogicsLayer.SO3world.NewLogicalDataAndAdviseWithSceneEditor();

            string strIniFile = m_strFileName + ".Logical";

            LogicsLayer.SO3world.LoadLogicalData(strIniFile);

            // 加载树所要的数据
            LogicsLayer.SO3world.GetLogicalDataPtr(ref m_DocLogical);
            LogicHelper.Init(m_DocLogical);
            mapName       = FileFolderHelper.GetMapName(m_strFileName);
            m_AllLogicObj = LogicHelper.DoImportOneTarget(strIniFile, mapName);
        }
예제 #2
0
파일: BaseForm.cs 프로젝트: weimingtom/pap2
        /// <summary>
        /// 初始化数据库连接
        /// </summary>
        private void InitSqlConnection()
        {
            IniStructure m_inis;
            string       content;

            string   fileName = Path.Combine(Application.StartupPath, "GameDesingerTools_Public.ini");
            FileInfo fi       = new FileInfo(fileName);

            if (fi.Exists)
            {
                content = FileFolderHelper.FileToString(fileName);
                SymmetricCode sm = new SymmetricCode();
                content = sm.Decrypto(content);

                m_inis = IniStructure.ReadIniWithContent(content);
                string connectString = m_inis.GetValue("General", "ConnString");
                Conn = new SqlConnection(connectString);
            }
            else
            {
                MessageBox.Show("读取配置信息失败,请确认GameDesingerTools_Public.ini文件在程序目录中!", "初始化",
                                MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            fileName = Path.Combine(Application.StartupPath, "GameDesingerTools.ini");
            fi       = new FileInfo(fileName);
            if (fi.Exists)
            {
                content = FileFolderHelper.FileToString(fileName);
                m_inis  = IniStructure.ReadIniWithContent(content);
                rootDir = m_inis.GetValue("General", "RootDir");
            }
        }
예제 #3
0
        private void buttonOpen_Click(object sender, EventArgs e)
        {
            string filename = FileFolderHelper.BrowseFile(new string[] { "Map" }, Application.StartupPath + "/data/source/maps/");

            if (filename == string.Empty)
            {
                return;
            }

            UpdateHistory(filename);
            OpenDoc(filename);
        }
예제 #4
0
        static public void Init()
        {
            MainFrm     = new MainForm();
            MainFrmHwnd = (int)MainFrm.Handle;

            Helper.SetAdditionalEnvPath(Application.StartupPath);


            string   iniFile = Application.StartupPath + "/" + configFile;
            FileInfo file    = new FileInfo(iniFile);

            if (!file.Exists)
            {
                MessageBox.Show("配置文件 " + configFile + " 不存在。\r\n程序即将退出。");
                Application.Exit();
            }
            StringBuilder sbEngineDir = new StringBuilder(MAX_PATH);

            FileFolderHelper.ReadIniFile("General", "RootDir", "", sbEngineDir, MAX_PATH, iniFile);
            EngineDir      = sbEngineDir.ToString().Trim();
            Helper.RootDir = EngineDir.TrimEnd(new char[] { '\\' });

            DirectoryInfo dir = new DirectoryInfo(EngineDir);

            if (!dir.Exists)
            {
                MessageBox.Show("引擎目录不存在。请重新设定" + configFile + "\r\n程序即将退出。");
                Application.Exit();
            }
            else // 检查是否是正确的客户端路径
            {
                string engineResourcePath = Path.Combine(EngineDir, "KG3DEngine.dll");
                if (!File.Exists(engineResourcePath))
                {
                    MessageBox.Show("引擎目录不正确。请重新设定" + configFile + "\r\n程序即将退出。");
                    Application.Exit();
                }
                else // 检查uselogic有没有打开
                {
                    StringBuilder configString = new StringBuilder(MAX_PATH);
                    iniFile = Path.Combine(EngineDir, "config.ini");
                    FileFolderHelper.ReadIniFile("ENGINEOPTION", "UseLogical", "", configString, MAX_PATH, iniFile);
                    string useLogic = configString.ToString().Trim();

                    if (useLogic != "1")
                    {
                        MessageBox.Show("config.ini没有设置打开逻辑。请重新设定" + configFile + "\r\n程序即将退出。");
                        Application.Exit();
                    }
                }
            }
        }
예제 #5
0
        /// <summary>
        /// 初始化npc阵营数据表
        /// </summary>
        private void InitNpcOrderTable()
        {
            string   filePath = string.Format("{0}\\settings\\NpcOrder\\OrderList.tab", Helper.RootDir);
            FileInfo fi       = new FileInfo(filePath);

            if (fi.Exists)
            {
                string   content   = FileFolderHelper.FileToString(filePath);
                string[] lines     = content.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
                bool     firstLine = true;

                foreach (string s in lines)
                {
                    if (firstLine)
                    {
                        firstLine = false;
                    }
                    else
                    {
                        string   line          = s.TrimEnd(new char[] { '\r', ' ' });
                        string[] data          = line.Split(new char[] { '\t' }, StringSplitOptions.RemoveEmptyEntries);
                        string   orderID       = data[0];
                        string   orderName     = data[3];
                        string   orderFile     = data[1];
                        string   orderFilePath = string.Format("{0}\\settings\\NpcOrder\\{1}", Helper.RootDir, orderFile);

                        int      orderCount    = 0;
                        FileInfo orderFileInfo = new FileInfo(orderFilePath);

                        if (orderFileInfo.Exists)
                        {
                            content = FileFolderHelper.FileToString(orderFilePath);
                            string[] orderLines = content.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
                            orderCount = orderLines.Length - 1;
                            if (orderCount < 0)
                            {
                                orderCount = 0;
                            }

                            DataRow dataRow = npcOrderTable.NewRow();
                            dataRow["ID"]    = orderID;
                            dataRow["Name"]  = orderName;
                            dataRow["Count"] = orderCount;
                            npcOrderTable.Rows.Add(dataRow);
                        }
                    }
                }
            }
        }
예제 #6
0
        private void InitTopView_Tga(string strMapName)
        {
            bool          bTPScale = false, bTPStartX = false, bTPStartY = false, bTPWidth = false, bTPHeight = false, bTPLogicXStart = false, bTPLogicZStart = false;
            StringBuilder sb = new StringBuilder(MAX_PATH);

            float fScale = 0.0f;
            int   width = 0, height = 0;

            string pureMapName = FileFolderHelper.GetMapName(strMapName);

            if (pureMapName == "测试1")
            {
                pureMapName = "测试";
            }

            string iniFile = Path.Combine(EditorLayer.EngineDir, string.Format("data/source/maps/{0}minimap/config.ini", pureMapName));

            FileFolderHelper.ReadIniFile("middlemap0", "scale", "", sb, MAX_PATH, iniFile);
            bTPScale = float.TryParse(sb.ToString(), out fScale);
            FileFolderHelper.ReadIniFile("middlemap0", "startx", "", sb, MAX_PATH, iniFile);
            bTPStartX = float.TryParse(sb.ToString(), out m_fMiddleMapStartX);
            FileFolderHelper.ReadIniFile("middlemap0", "starty", "", sb, MAX_PATH, iniFile);
            bTPStartY = float.TryParse(sb.ToString(), out m_fMiddleMapStartY);
            FileFolderHelper.ReadIniFile("middlemap0", "width", "", sb, MAX_PATH, iniFile);
            bTPWidth = int.TryParse(sb.ToString(), out width);
            FileFolderHelper.ReadIniFile("middlemap0", "height", "", sb, MAX_PATH, iniFile);
            bTPHeight = int.TryParse(sb.ToString(), out height);
            if (!bTPScale || !bTPStartX || !bTPStartY || !bTPWidth || !bTPHeight)
            {
                MessageBox.Show(string.Format("数据错误!请检查{0}的数据。", iniFile));
            }

            string mapLogicalIni = Path.Combine(EditorLayer.EngineDir, string.Format("data/source/maps/{0}/{1}.Map.Logical", pureMapName, FileFolderHelper.GetMapName(strMapName)));

            FileFolderHelper.ReadIniFile("MAIN", "LogicalSceneXStart", "", sb, MAX_PATH, mapLogicalIni);
            bTPLogicXStart = float.TryParse(sb.ToString(), out m_fLogicStartX);
            FileFolderHelper.ReadIniFile("MAIN", "LogicalSceneZStart", "", sb, MAX_PATH, mapLogicalIni);
            bTPLogicZStart = float.TryParse(sb.ToString(), out m_fLogicStartZ);
            if (!bTPLogicXStart || !bTPLogicZStart)
            {
                MessageBox.Show(string.Format("数据错误!请检查{0}的数据。", mapLogicalIni));
            }

            m_fLogicTotalWidth  = width / fScale;
            m_fLogicTotalHeight = height / fScale;

            previewform = new Preview(curMapWidth, curMapHeight, m_scenesceneeditor, m_fLogicTotalWidth, m_fLogicTotalHeight, m_fMiddleMapStartX, m_fMiddleMapStartY, m_fLogicStartX, m_fLogicStartZ);
        }
예제 #7
0
        public void OpenForm(string filename)
        {
            BaseForm frm = null;

            frm = new BaseForm(filename, this);
            //frm.m_EngineManager = EngineLayer.EngineMgr;
            frm.Text        = FileFolderHelper.FullPathToFileName(filename);
            frm.MdiParent   = this;
            frm.WindowState = FormWindowState.Maximized;
            // ahpho suntao
            frm.CameraLookAtBox = cameraLocationBox.TextBox;
            frm.CamerSpeedBar   = sliderItem1;
            // end ahpho
            frm.Show();
            frm.Update();

            m_ActiveFrm = frm;
        }
예제 #8
0
        private void UpdateHistory(string filename)
        {
            string strfile    = Path.Combine(Application.StartupPath, "DesignerSceneEditor.history");
            string strHistory = FileFolderHelper.FileToString(strfile);

            string[] historys = strHistory.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
            if (historys.Length < 4)
            {
                bool bHistoryContainsThisDoc = false;
                foreach (string history in historys)
                {
                    if (history == filename)
                    {
                        bHistoryContainsThisDoc = true;
                        break;
                    }
                }

                if (!bHistoryContainsThisDoc)
                {
                    string strContent = strHistory + (historys.Length == 0 ? string.Empty : "\r\n") + filename;
                    FileFolderHelper.StringToFile(strContent, strfile);
                }
            }
            else
            {
                bool bHistoryContainsThisDoc = false;
                foreach (string history in historys)
                {
                    if (history == filename)
                    {
                        bHistoryContainsThisDoc = true;
                        break;
                    }
                }

                if (!bHistoryContainsThisDoc)
                {
                    string[] newhistorys = new string[] { historys[1], historys[2], historys[3], filename };
                    string   content     = newhistorys[0] + "\r\n" + newhistorys[1] + "\r\n" + newhistorys[2] + "\r\n" + newhistorys[3];
                    FileFolderHelper.StringToFile(content, strfile);
                }
            }
        }
예제 #9
0
        private void LoadHistory()
        {
            string strfile    = Path.Combine(Application.StartupPath, "DesignerSceneEditor.history");
            string strHistory = FileFolderHelper.FileToString(strfile);

            if (strHistory.Length == 0)
            {
                return;
            }

            string[] historys = strHistory.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
            foreach (string history in historys)
            {
                DevComponents.DotNetBar.ButtonItem newitem = new DevComponents.DotNetBar.ButtonItem();
                newitem.ImagePaddingHorizontal = 8;
                newitem.Name   = history;
                newitem.Text   = history;
                newitem.Click += new System.EventHandler(this.historyItem_Click);

                this.buttonOpen.SubItems.Add(newitem);
            }
        }