Merge branch 'dev_dh_bt' into bt/newhero

back_recharge
duhui 2023-04-19 15:41:04 +08:00
commit b2f025713d
4 changed files with 27 additions and 7 deletions

View File

@ -201,6 +201,11 @@ public class Hero extends MongoBase implements Comparable<Hero>,Cloneable {
updateString("faxiangList",faxiangList);
}
public void setFaxiang(Set<String> list) {
faxiangList = list;
updateString("faxiangList",faxiangList);
}
public void uninstallFaxiang(String key) {
this.faxiangList.remove(key);
updateString("faxiangList",faxiangList);

View File

@ -74,13 +74,13 @@ public class EquipLogic {
for (String faxiangId : heroFaxiangList) {
Faxiang heroFaxiang = equipManager.getFaxiang(faxiangId);
if (heroFaxiang == null){
hero.uninstallFaxiang(faxiangId);
removeList.add(faxiangId);
LOGGER.error("法相不存在装备库中已卸载uid:{}, hero:{}, faxiang:{}",user.getId(),heroID,faxiangId);
continue;
}
SFaxiangConfig heroFaxiangConfig = SFaxiangConfig.faxiangMap.get(heroFaxiang.getItemId());
if (heroFaxiangConfig == null){
hero.uninstallFaxiang(faxiangId);
removeList.add(faxiangId);
LOGGER.error("法相不存在配置表中已卸载uid:{}, hero:{}, faxiang:{}",user.getId(),heroID,faxiangId);
continue;
}

View File

@ -4448,10 +4448,13 @@ public class HeroLogic {
// 法相
Set<String> faxiangList = hero.getFaxiangList();
if (faxiangList != null && !faxiangList.isEmpty()){
for (String key : faxiangList) {
hero.uninstallFaxiang(key);
user.getEquipManager().unloadFaxiang(key);
Iterator<String> iterator = faxiangList.iterator();
while (iterator.hasNext()){
String next = iterator.next();
user.getEquipManager().unloadFaxiang(next);
iterator.remove();
}
hero.setFaxiang(faxiangList);
}
}
int breakId = hero.getBreakId();

View File

@ -1270,8 +1270,20 @@ public class PlayerLogic {
}
EquipManager equipManager = userInMem.getEquipManager();
Map<String, PropertyItem> equipMap = equipManager.getEquipMap();
for(String equipId : hero.getJewelInfo()){
CommonProto.Equip.Builder toBuilder = CBean2Proto.getEquipProto(equipMap.get(equipId),userInMem).toBuilder();
// 宝器
for(String equipId : hero.getJewelInfo()){
PropertyItem propertyItem = equipMap.get(equipId);
Jewel jewel = null;
if (propertyItem instanceof Jewel){
jewel = (Jewel) propertyItem;
}else {
jewel = equipManager.getJewelMap().get(equipId);
if (jewel == null){
LOGGER.error("查看英雄信息,法宝找不到:{}",equipId);
continue;
}
}
CommonProto.Equip.Builder toBuilder = CBean2Proto.getEquipProto(jewel,userInMem).toBuilder();
builder.addEquip(toBuilder);
}
for(int equipId : hero.getEquipByHongmengPositionMap(userInMem.getHeroManager()).values()){