法相bug修复

back_recharge
duhui 2023-04-19 14:52:28 +08:00
parent 82a4969341
commit e0d887806b
3 changed files with 13 additions and 5 deletions

View File

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

View File

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

View File

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