神将神魂绑定逻辑修改提交

back_recharge
yuanshuai 2021-10-21 18:31:41 +08:00
parent a389d200f5
commit afa7a8932a
2 changed files with 25 additions and 6 deletions

View File

@ -37,14 +37,11 @@ public class HeroGodSoulBindRequestHandler extends BaseHandler<HeroInfoProto.Her
throw new ErrorCodeException(ErrorCode.GOD_SOUL_BIND);
}
}
upHero.setGodSoulBindMap(1,godSoulLv,bindHeroList);
for (String _bindHeroId : bindHeroList) {
Hero bindHero=heroManager.getHero(_bindHeroId);
bindHero.setGodSoulBeBindMap(1,heroId,godSoulLv);
}
upHero.setGodSoulBindMap(1,godSoulLv,bindHeroList);
for (String bindHeroId : bindHeroList) {
heroManager.getHero(bindHeroId).setGodSoulBeBindMap(1,heroId,godSoulLv);
}
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.HERO_GOD_SOUL_BIND_RESPONSE_VALUE, null,true);
}
}

View File

@ -7,12 +7,14 @@ import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.hero.HongMengAttributeEnum;
import config.SLikeAbilityConfig;
import config.SSpecialConfig;
import org.omg.CORBA.PUBLIC_MEMBER;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.*;
public class HeroManager extends MongoBase {
private static final Logger LOGGER = LoggerFactory.getLogger(HeroManager.class);
/**
*
*/
@ -252,13 +254,33 @@ public class HeroManager extends MongoBase {
if (heroMap.containsKey(heroId)){
removeString(getMongoKey()+".heroMap." + heroId);
Poster.getPoster().dispatchEvent(new RemoveHeroEvent(uid,heroId));
removeHeroGodSoul(heroId);
heroMap.remove(heroId);
try {
if(UserManager.getUser(uid).getPlayerInfoManager().getMaxforceHero().equals(heroId)){
UserManager.getUser(uid).getPlayerInfoManager().setMaxforceHero("");
}
}catch (Exception e){}
}catch (Exception e){
LOGGER.info("removeHero uid={},heroId={},Exception={}",uid,heroId,e);
}
}
}
///移除英雄设置相关神魂信息
public void removeHeroGodSoul(String heroId){
Hero hero= heroMap.get(heroId);
Map<Integer, List<String>>godSoulBindMap=hero.getGodSoulBindMap();
for (Map.Entry<Integer, List<String>> integerListEntry : godSoulBindMap.entrySet()) {
List<String>heroList=integerListEntry.getValue();
for (String bindId : heroList) {
Hero bingHero= heroMap.get(bindId);
bingHero.setGodSoulBeBindMap(2,heroId,0);
}
}
Map<String,Integer>godSoulBeBindMap=hero.getGodSoulBeBindMap();
for (Map.Entry<String, Integer> stringIntegerEntry : godSoulBeBindMap.entrySet()) {
Hero bingHero= heroMap.get(stringIntegerEntry.getKey());
bingHero.setGodSoulBindMap(2,stringIntegerEntry.getValue(),null);
}
}