// 根据id获得天赋效果信息 public void GetHeroAIInfo(int nConfigWarID, int nHeroID, ref SSchemeHeroAIConfig sHeroAIConfig) { if (!IsHasHeroAIInfo(nConfigWarID, nHeroID, ref sHeroAIConfig)) { sHeroAIConfig = null; } }
// 初始化csv表 protected void InitHeroAIConfigCsv(string stPath) { // string stSchemeAllText = File.ReadAllText(stPath); ScpReader reader = new ScpReader(stPath, true, 2); allHeroAIConfigTable = new Hashtable(); for (int i = 0; i < reader.GetRecordCount(); i++) { SSchemeHeroAIConfig sConfig = new SSchemeHeroAIConfig(); sConfig.nBattleFieldID = reader.GetInt(i, (int)HeroAI.EMT_BATTLEFIELDID, 0); sConfig.nHeroId = reader.GetInt(i, (int)HeroAI.EMT_HEROID, 0); sConfig.szAIIDArray = reader.GetString(i, (int)HeroAI.EMT_AI_IDLIST, ""); sConfig.szAIRankArray = reader.GetString(i, (int)HeroAI.EMT_AI_RANKLIST, ""); sConfig.szAIDESArray = reader.GetString(i, (int)HeroAI.EMT_AI_DESLIST, ""); sConfig.bIsOpen = reader.GetInt(i, (int)HeroAI.EMT_AI_ISOPEN, 0) == 1? true: false; // 配置检查 string szAIDescList = sConfig.szAIDESArray; string[] AIDescArrayStr = szAIDescList.Split(';'); int nAIDescArrayLength = AIDescArrayStr.Length; string szAIIDList = sConfig.szAIIDArray; string[] AIIDArrayStr = szAIDescList.Split(';'); int nAIIDArrayLength = AIIDArrayStr.Length; if (nAIDescArrayLength != nAIIDArrayLength) { Trace.LogError("配置出错 请检查 HeroAIConfig.csv 位置:=(" + (i + 1) + ")行"); } int keyID = sConfig.nBattleFieldID * KEY_ID_BASE + sConfig.nHeroId; allHeroAIConfigTable[keyID] = sConfig; } }
private bool IsHasHeroAIInfo(int nConfigWarID, int nHeroID, ref SSchemeHeroAIConfig sHeroAIConfig) { bool res = false; int key = nConfigWarID * KEY_ID_BASE + nHeroID; if (allHeroAIConfigTable.ContainsKey(key)) { sHeroAIConfig = allHeroAIConfigTable[key] as SSchemeHeroAIConfig; res = true; } return(res); }