Exemple #1
0
 private void FillOneEndTemplate(ref Template OneTemplate, ref DataRow[] templateRows, ref string CurrentTemplateMapName)
 {
     int mapid = Convert.ToInt32(m_htMapId[CurrentTemplateMapName]);
     int nX = 0;
     int nY = 0;
     GetNearestEnd(templateRows, ref nX, ref nY);
     OneTemplate.strGuideColumnValues = string.Format("{0}-{1}-{2}", nX, nY, mapid);
 }
Exemple #2
0
        private void FillOneKill_DropTemplate(ref Template OneTemplate, ref DataRow[] templateRows, ref string CurrentTemplateMapName)
        {
            int mapid = Convert.ToInt32(m_htMapId[CurrentTemplateMapName]);            
            RegionInfo region = m_htRegionInfo[CurrentTemplateMapName] as RegionInfo;
            Hashtable htGreeyIds = m_htMapNameHashTableGreeyIds[CurrentTemplateMapName] as Hashtable;
            if (region == null || htGreeyIds == null)
            {
                return;            
            } 

            int nTemplateId = OneTemplate.nQuestColumnValue;
            string greeyIds = string.Empty;
            if (htGreeyIds.ContainsKey(nTemplateId))
            {
                greeyIds = htGreeyIds[nTemplateId].ToString();
            }
            else
            {
                int nX = 0;
                int nY = 0;
                int nGreeyId = 0;
             
                ArrayList arrGreeyId = new ArrayList();
                for (int i = 0; i < templateRows.Length; ++i)
                {
                    nX = Convert.ToInt32(templateRows[i][nXColumnName]);
                    nY = Convert.ToInt32(templateRows[i][nYColumnName]);
                    if (region.GetGreyDegree(nX, nY, ref nGreeyId))
                    {
                        if (arrGreeyId.Contains(nGreeyId))
                            continue;
                        arrGreeyId.Add(nGreeyId);
                    }
                }
                for (int j = 0; j < arrGreeyId.Count; ++j)
                {
                    greeyIds += string.Format("{0},", arrGreeyId[j]);
                }
                if (greeyIds.Length > 0)
                {
                    greeyIds = string.Format("'{0}'", greeyIds.Substring(0, greeyIds.Length - 1));
                }                 
                htGreeyIds[nTemplateId] = greeyIds;
            }

            OneTemplate.strGuideColumnValues = string.Format("{0}-{1}", greeyIds, mapid);


        }
Exemple #3
0
        private void FillOneTemplate(ref Template OneTemplate)
        {
            if (OneTemplate.type == TemplateType.NONE ||
                OneTemplate.nQuestColumnValue == 0 ||
                OneTemplate.emQuestColumnType == QuestColumnType.UNKNOWN
                )
                return;

            DataRow[] templateRows = null;
            string CurrentTemplateMapName = m_strCurrentMapName;
            if (!UpdateCurrentMapName(OneTemplate.nQuestColumnValue, OneTemplate.type, OneTemplate.emQuestColumnType, ref templateRows, ref CurrentTemplateMapName))
            {
                //所有地图都不存在此tempateId(OneTemplate.nQuestColumnValue)
                return;
            }
            switch (OneTemplate.emQuestColumnType)
            {
                case QuestColumnType.START:
                    FillOneStartTemplate(ref OneTemplate, ref templateRows, ref CurrentTemplateMapName);
                    break;
                case QuestColumnType.END:
                    FillOneEndTemplate(ref OneTemplate, ref templateRows, ref CurrentTemplateMapName);
                    break;
                case QuestColumnType.KILL_DROP:
                   // FillOneKill_DropTemplate(ref OneTemplate, ref templateRows, ref CurrentTemplateMapName);
                    int mapid = Convert.ToInt32(m_htMapId[CurrentTemplateMapName]);
                    string greeyIds = "''";
                    OneTemplate.strGuideColumnValues = string.Format("{0}-{1}", greeyIds, mapid);
                    break;
                default:
                    return;
            }
                  
        }
Exemple #4
0
        private void FillOneStartTemplate(ref Template OneTemplate, ref DataRow[] templateRows, ref string CurrentTemplateMapName)
        {          
            int mapid = Convert.ToInt32(m_htMapId[CurrentTemplateMapName]);
            nStartX = Convert.ToInt32(templateRows[0][nXColumnName]);
            nStartY = Convert.ToInt32(templateRows[0][nYColumnName]);
            OneTemplate.strGuideColumnValues = string.Format("{0}-{1}-{2}", nStartX, nStartY, mapid);
 
        }
Exemple #5
0
        public bool Run()
        {
            const int TEMPLATECOUNT = 16;
            Template[] arrTemplate = new Template[TEMPLATECOUNT];
            string strMapName = string.Empty;
            int nQuestId = 0;
            int nStartMapId = 0;
            int nEndMapId = 0;

            InitArrTemplate(arrTemplate);

            if (m_sqlConn.State == System.Data.ConnectionState.Closed)
            {
                m_sqlConn.Open();
            }
            string strSql_tbl_quests = ConstructSqlSelect(arrTemplate);
            SqlDataAdapter da = new SqlDataAdapter(strSql_tbl_quests, m_sqlConn);
            DataSet ds = new DataSet();
            da.Fill(ds, QuestsTableName);

            foreach (DataRow dr in ds.Tables[QuestsTableName].Rows)
            {
                Prepare(arrTemplate, ref nQuestId, ref strMapName, ref nStartMapId, ref nEndMapId, dr);                
                m_oneQuest.CurrentMapName = strMapName;
                m_oneQuest.CurrentStartMapId = nStartMapId;
                m_oneQuest.CurrentEndMapId = nEndMapId;
                LoadData(arrTemplate);
                UpdateOneQuestDirect(arrTemplate, nQuestId);
            }
            DeleteNotExists();
            if (m_sqlConn.State == System.Data.ConnectionState.Open)
            {
                m_sqlConn.Close();
            }
            return true;
        }
Exemple #6
0
 public bool FillDate(Template[] temp)
 {
     nStartX = 0;
     nStartY = 0;
     for (int i = 0; i < temp.Length; ++i)
     {
         FillOneTemplate(ref temp[i]);
     }
     return true;
 }
Exemple #7
0
        private string ConstructSqlUpdate(Template[] arrTemplate, int nQuestId)
        {
            string strRet = string.Empty;
            string strSet = string.Empty;           

            foreach (Template temp in arrTemplate)
            {
                string[] cellNames = temp.strGuideColumnNames.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                string[] cellValues = temp.strGuideColumnValues.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries);
                if (cellValues.Length < cellNames.Length)
                {
                    //error:
                    continue;
                }
                for (int i = 0; i < cellNames.Length; ++i)
                {
                    strSet += string.Format(
                        "{0} = {1},",
                        cellNames[i], cellValues[i]                        
                        );
                }
            }
            if (strSet == string.Empty)
            {
                strSet = string.Format("QuestID = {0},", nQuestId);
            }

            strRet = string.Format("update {2} set {0} where QuestID = {1}", strSet.Substring(0, strSet.Length - 1), nQuestId, QuestGuideTableName);

            return strRet;
        }
Exemple #8
0
        private void UpdateOneQuestDirect(Template[] arrTemplate, int nQuestId)
        {
            string strSql = ConstructSqlUpdate(arrTemplate, nQuestId);

            if (Helper.SqlNoneQureyExcute(m_sqlConn, strSql) == 0)
            {
                strSql = ConstructSqlInsert(arrTemplate, nQuestId);
                Helper.SqlNoneQureyExcute(m_sqlConn, strSql);
            }
        }
Exemple #9
0
        private string ConstructSqlInsert(Template[] arrTemplate, int nQuestId)
        {
            string strRet = string.Empty;
            string strColumns = string.Empty;
            string strValues = string.Empty;

            foreach (Template temp in arrTemplate)
            {
                if (temp.strGuideColumnValues != string.Empty)
                {
                    strColumns += string.Format("{0},", temp.strGuideColumnNames);
                    strValues += string.Format("{0},", temp.strGuideColumnValues);
                }
                
            }  
            strRet = string.Format("insert into {3} ({0} QuestId) values({1} {2})", strColumns, strValues, nQuestId, QuestGuideTableName).Replace('-', ',');
            

            return strRet;

        }
Exemple #10
0
 private void LoadData(Template[] arrTemplate)
 {
     m_oneQuest.FillDate(arrTemplate); 
 }
Exemple #11
0
 private void Prepare(Template[] arrTemplate, ref int questId, ref string mapName, ref int startMapId, ref int endMapId, DataRow dr)
 {
     for (int i = 0; i < arrTemplate.Length; ++i)
     {
         arrTemplate[i].strGuideColumnValues = string.Empty;
         if (dr.IsNull(arrTemplate[i].strQuestColumnName))
         {
             arrTemplate[i].nQuestColumnValue = 0;
         }
         else
         {
             arrTemplate[i].nQuestColumnValue = Convert.ToInt32(dr[arrTemplate[i].strQuestColumnName]);                    
         }
         
     }
     questId = dr.IsNull("QuestId") ? 0 : Convert.ToInt32(dr["QuestId"]);
     mapName = dr["_Cat"].ToString();
     startMapId = dr.IsNull("StartMapId") ? 0 : Convert.ToInt32(dr["StartMapId"]);
     endMapId = dr.IsNull("EndMapId") ? 0 : Convert.ToInt32(dr["EndMapId"]);
 }
Exemple #12
0
        private string ConstructSqlSelect(Template[] arrTemplate)
        {
            string strRet = string.Empty;
            string strColumns = string.Empty;

            for (int i = 0; i < arrTemplate.Length - 1; ++i)
            {
                strColumns += arrTemplate[i].strQuestColumnName + ",";
            }
            strColumns += arrTemplate[arrTemplate.Length - 1].strQuestColumnName;

            strRet = string.Format("select QuestID, _Cat, StartMapId, EndMapId, {0} from {1}", strColumns, QuestsTableName);

            return strRet;

        }
Exemple #13
0
        private void InitArrTemplate(Template[] arrTemplate)        { 
            arrTemplate[0].Init("StartDoodadTemplateID", TemplateType.DOODAD_TEMPLATE, "StartDoodadTemplateID_nX, StartDoodadTemplateID_nY, StartDoodadTemplateID_MapID", QuestColumnType.START);
            arrTemplate[1].Init("StartNpcTemplateID", TemplateType.NPC_TEMPLATE, "StartNpcTemplateID_nX, StartNpcTemplateID_nY, StartNpcTemplateID_MapId", QuestColumnType.START);

            arrTemplate[2].Init("EndDoodadTemplateID", TemplateType.DOODAD_TEMPLATE, "EndDoodadTemplateID_nX, EndDoodadTemplateID_nY, EndDoodadTemplateID_MapId", QuestColumnType.END);
            arrTemplate[3].Init("EndNpcTemplateID", TemplateType.NPC_TEMPLATE, "EndNpcTemplateID_nX, EndNpcTemplateID_nY, EndNpcTemplateID_MapId", QuestColumnType.END);

            arrTemplate[4].Init("DropDoodadTemplateID1", TemplateType.DOODAD_TEMPLATE, "DropDoodadTemplateID1_Areas, DropDoodadTemplateID1_MapId", QuestColumnType.KILL_DROP);
            arrTemplate[5].Init("DropDoodadTemplateID2", TemplateType.DOODAD_TEMPLATE, "DropDoodadTemplateID2_Areas, DropDoodadTemplateID2_MapId", QuestColumnType.KILL_DROP);
            arrTemplate[6].Init("DropDoodadTemplateID3", TemplateType.DOODAD_TEMPLATE, "DropDoodadTemplateID3_Areas, DropDoodadTemplateID3_MapId", QuestColumnType.KILL_DROP);
            arrTemplate[7].Init("DropDoodadTemplateID4", TemplateType.DOODAD_TEMPLATE, "DropDoodadTemplateID4_Areas, DropDoodadTemplateID4_MapId", QuestColumnType.KILL_DROP);

            arrTemplate[8].Init("DropNpcTemplateID1", TemplateType.NPC_TEMPLATE, "DropNpcTemplateID1_Areas, DropNpcTemplateID1_MapId", QuestColumnType.KILL_DROP);
            arrTemplate[9].Init("DropNpcTemplateID2", TemplateType.NPC_TEMPLATE, "DropNpcTemplateID2_Areas, DropNpcTemplateID2_MapId", QuestColumnType.KILL_DROP);
            arrTemplate[10].Init("DropNpcTemplateID3", TemplateType.NPC_TEMPLATE, "DropNpcTemplateID3_Areas, DropNpcTemplateID3_MapId", QuestColumnType.KILL_DROP);
            arrTemplate[11].Init("DropNpcTemplateID4", TemplateType.NPC_TEMPLATE, "DropNpcTemplateID4_Areas, DropNpcTemplateID4_MapId", QuestColumnType.KILL_DROP);

            arrTemplate[12].Init("KillNpcTemplateID1", TemplateType.NPC_TEMPLATE, "KillNpcTemplateID1_Areas, KillNpcTemplateID1_MapId", QuestColumnType.KILL_DROP);
            arrTemplate[13].Init("KillNpcTemplateID2", TemplateType.NPC_TEMPLATE, "KillNpcTemplateID2_Areas, KillNpcTemplateID2_MapId", QuestColumnType.KILL_DROP);
            arrTemplate[14].Init("KillNpcTemplateID3", TemplateType.NPC_TEMPLATE, "KillNpcTemplateID3_Areas, KillNpcTemplateID3_MapId", QuestColumnType.KILL_DROP);
            arrTemplate[15].Init("KillNpcTemplateID4", TemplateType.NPC_TEMPLATE, "KillNpcTemplateID4_Areas, KillNpcTemplateID4_MapId", QuestColumnType.KILL_DROP);
            
        }