From dcad481e532b908abae31dd885d40033bd6e6609 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 30 Jun 2021 17:20:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E8=8B=B1=E9=9B=84=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/player/ViewHeroInfoHandler.java | 55 +++++++++++-------- .../jieling/logic/player/PlayerLogic.java | 31 +++++++++++ 2 files changed, 62 insertions(+), 24 deletions(-) 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;