public void updateXpConfigToCache(SSchemeHeroXPskillConfig sConfig) { if (allHeroXPskillConfigTable.ContainsKey(sConfig.nHeroID)) { (allHeroXPskillConfigTable[sConfig.nHeroID] as List <SSchemeHeroXPskillConfig>).Add(sConfig); } else { List <SSchemeHeroXPskillConfig> heroXPskillList = new List <SSchemeHeroXPskillConfig>(); heroXPskillList.Add(sConfig); allHeroXPskillConfigTable[sConfig.nHeroID] = heroXPskillList; } }
// 初始化csv表 protected void InitHeroXPskillConfigCsv(string stPath) { ScpReader reader = new ScpReader(stPath, true, 2); allHeroXPskillConfigTable = new Hashtable(); for (int i = 0; i < reader.GetRecordCount(); i++) { SSchemeHeroXPskillConfig sConfig = new SSchemeHeroXPskillConfig(); sConfig.nHeroID = reader.GetInt(i, (int)XP_COL.HERO_ID, 0); // 英雄id sConfig.nXPSkillID = reader.GetInt(i, (int)XP_COL.SPELL_ID, 0); // 必杀技技能id sConfig.nXPType = reader.GetInt(i, (int)XP_COL.SPELL_TYPE, 0); // 技能类型(通用0,专属1) sConfig.bAutoActive = reader.GetInt(i, (int)XP_COL.SPELL_TYPE, 0) > 0; // 是否自动解锁(否0,是1) sConfig.nLockXPFragmentNum = reader.GetInt(i, (int)XP_COL.CHIP_NUM, 0); // 必杀技解锁所需碎片数 sConfig.nIconID = reader.GetInt(i, (int)XP_COL.ICON, 0); // 必杀技图标 sConfig.szXpName = reader.GetString(i, (int)XP_COL.NAME, ""); // 必杀技名字 sConfig.szLockDesc = reader.GetString(i, (int)XP_COL.LOCK_DESC, ""); // 必杀技未解锁时描述 sConfig.szNoLockDesc = reader.GetString(i, (int)XP_COL.UNLOCK_DESC, ""); // 必杀技解锁时描述 sConfig.bActiveGuide = reader.GetInt(i, (int)XP_COL.GUIDE, 0) > 0; // 解锁时是否引导(否0,是1) string strEffect = reader.GetString(i, (int)XP_COL.EFFECTS, ""); if (strEffect.Equals("")) { sConfig.effects = new List <System.String>(); } else { sConfig.effects = new List <System.String>(strEffect.Split(new Char[] { ';' })); // 对应光效列表可以有多个,用分号隔开 } if (sConfig.nHeroID == 0) { for (int nHeroID = 1; nHeroID < (int)VOCATION.VOCATION_MAX; ++nHeroID) { sConfig.nHeroID = nHeroID; updateXpConfigToCache(sConfig); } } else { updateXpConfigToCache(sConfig); } } }