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); }
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); }
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; } }
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); }
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; }
public bool FillDate(Template[] temp) { nStartX = 0; nStartY = 0; for (int i = 0; i < temp.Length; ++i) { FillOneTemplate(ref temp[i]); } return true; }
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; }
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); } }
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; }
private void LoadData(Template[] arrTemplate) { m_oneQuest.FillDate(arrTemplate); }
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"]); }
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; }
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); }