// 计算宠物战队Buff效果aa public List <int> GetPetGroupBuff(sdGameActor kActor) { Hashtable kGroupTable = sdConfDataMgr.Instance().ParsedPetGroupsTable; if (kGroupTable == null) { return(null); } Hashtable kSapTable = sdConfDataMgr.Instance().ParsedPetSapsTable; if (kSapTable == null) { return(null); } // bool bIsPet = (kActor.GetActorType() == ActorType.AT_Pet); // 查找匹配的组合效果aa List <int> kValidSaps = new List <int>(); foreach (DictionaryEntry kEntry in kGroupTable) { Hashtable kGroupItem = kEntry.Value as Hashtable; if (kGroupItem == null) { continue; } if (bIsPet) { bool bHasPet = (bool)(kGroupItem["HasPet"]); if (!bHasPet) { continue; //< 组合对宠物无效aa } } else { bool bHasRole = (bool)(kGroupItem["HasRole"]); if (!bHasRole) { continue; //< 组合对角色无效aa } } bool bValid = true; for (int iIndex = 1; iIndex <= 4; ++iIndex) { string kSkillKey = "Data" + iIndex.ToString() + ".PetID"; int iPetTid = (int)kGroupItem[kSkillKey]; if (iPetTid > 0 && !IsPetInPetTeam(iPetTid)) { bValid = false; break; } } if (bValid) { int iSapId = (int)kGroupItem["SapID"]; kValidSaps.Add(iSapId); } } // 查找组合的效果 List <int> kBuffList = new List <int>(); foreach (int iSap in kValidSaps) { Hashtable kSapItem = kSapTable[iSap] as Hashtable; if (kSapItem == null) { continue; } for (int iIndex = 1; iIndex <= 6; ++iIndex) { string kSkillKey = "Skill" + iIndex.ToString() + ".SkillID"; int iSkillId = (int)kSapItem[kSkillKey]; if (iSkillId > 0) { kBuffList.Add(iSkillId); } } } return(kBuffList); }