diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/player/ViewHeroInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/player/ViewHeroInfoHandler.java index dcc1e82dc..b7556d705 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/player/ViewHeroInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/player/ViewHeroInfoHandler.java @@ -1,7 +1,13 @@ package com.ljsd.jieling.handler.player; import com.ljsd.jieling.db.mongo.AreaManager; +import com.ljsd.jieling.db.redis.RedisKey; +import com.ljsd.jieling.db.redis.RedisUtil; +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.GlobleSystemLogic; +import com.ljsd.jieling.logic.dao.CrossArenaEnemy; import com.ljsd.jieling.logic.dao.EquipManager; import com.ljsd.jieling.logic.dao.PropertyItem; import com.ljsd.jieling.logic.hero.HeroLogic; @@ -29,34 +35,35 @@ public class ViewHeroInfoHandler extends BaseHandler heros = query.getHeroManager().getHeros(); + + ArenaOfHero hero = heros.get(heroId); + if(hero == null){ + throw new ErrorCodeException(ErrorCode.newDefineCode("hero no")); + } + PlayerInfoProto.ViewHeroInfoResponse.Builder builder = PlayerInfoProto.ViewHeroInfoResponse.newBuilder(); + Map heroNotBufferAttribute = hero.getAttributeMap(); + for(Map.Entry item : heroNotBufferAttribute.entrySet()){ + builder.addSpecialEffects(CommonProto.SpecialEffects.newBuilder().setPropertyId(item.getKey()).setPropertyValue(item.getValue().intValue()).build()); + } + Map jewels = query.getHeroManager().getJewels(); + for(String equipId : hero.getJewelInfo()){ + builder.addEquip(CBean2Proto.getEquipProto(jewels.get(equipId))); + } + for(int equipId : hero.getEquipByPositionMap().values()){ + builder.addEquip(CBean2Proto.getEquipProto(equipId)); + } + builder.setForce(HeroLogic.getInstance().calForce(heroNotBufferAttribute)); + CommonProto.Hero.Builder heroBuilder = CommonProto.Hero.newBuilder().setLevel(hero.getLevel()).setEspecialEquipLevel(hero.getEspecialEquipLevel()).setStar(hero.getStar()).setId(hero.getId()).setHeroId(hero.getTemplateId()).setBreakId(hero.getBreakId()).setStarBreakId(hero.getStarBreakId()); + builder.setHero(heroBuilder); + return builder.build(); + + } + public void takeSevenScoreReward(ISession iSession) throws Exception { User user = UserManager.getUser(iSession.getUid()); int msgId = MessageTypeProto.MessageType.TAKE_SEVEN_HAPPY_REWARD_RESPONSE_VALUE;