游戏里面有很多涉及套装效果的功能,比如8星套装,当玩家拥有一定数量的8星或9星或10星装备,比如5件时,这时就会获得一个额外的属性加成,8星套,9星套,10星套加成的效果是不一样的。所以需要计算玩家当前是几星套,然后给玩家增加相应的属性加成。计算套装等级的方法如下:
//遍历玩家身上的装备
std::map<int, int> equip_map; //装备位置索引,星星数
for (int i = 0; i < 5; ++i) {
equip_map[i] = i位置索引处装备星星数;
}
//计算套装等级
int equip_lvl = 0; //套装等级
for (int i = 最大星套等级; i >= 1; --i) {
int equip_num = 0; //i星套数量
for (auto &itor : equip_map) {
if (itor.second >= i) ++equip_num;
}
if (equip_num == 5) {
equip_lvl = i;
break;
}
}