From 23d1b680805cb6c19b403b7b75bf72eb6b28fe1a Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 17 May 2021 09:37:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E8=A1=8C2.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EndExpeditionBattleRequest.java | 2 +- .../GetExpeditionRequestHandler.java | 2 +- .../HeroNodeGetInfoRequestHandler.java | 2 +- .../Expedition/HeroNodeRequestHandler.java | 2 +- .../handler/GameGM/GMRequestHandler.java | 4 +- .../jieling/handler/GetAllHerosHandler.java | 2 +- .../hero/DoHeroChangeRequestHandler.java | 2 +- .../handler/hero/UpPracticeLevelHandler.java | 20 ++++++- .../ljsd/jieling/logic/hero/HeroLogic.java | 9 ++- .../jieling/logic/player/PlayerLogic.java | 2 +- .../com/ljsd/jieling/util/CBean2Proto.java | 59 +++++++++++++------ .../java/com/ljsd/jieling/util/ItemUtil.java | 2 +- 12 files changed, 74 insertions(+), 34 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java index d7d2b6984..274b4bea2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java @@ -287,7 +287,7 @@ public class EndExpeditionBattleRequest extends BaseHandler heroList = new ArrayList<>(); Map heroMap = user.getExpeditionManager().getHeroMap(); for(Hero hero : heroMap.values()){ - heroList.add(CBean2Proto.getHero(hero)); + heroList.add(CBean2Proto.getHero(user,hero)); } builder.addAllHeroList(heroList); Map equipMap = user.getExpeditionManager().getEquipMap(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/HeroNodeGetInfoRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/HeroNodeGetInfoRequestHandler.java index 98ba0285b..749403da0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/HeroNodeGetInfoRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/HeroNodeGetInfoRequestHandler.java @@ -110,7 +110,7 @@ public class HeroNodeGetInfoRequestHandler extends BaseHandler sealInfo = CBean2Proto.getPurpleMansionSealInfo(user); + HeroInfoProto.PurpleMansionSealIndication build2 = HeroInfoProto.PurpleMansionSealIndication.newBuilder().addAllSealList(sealInfo).build(); + MessageUtil.sendIndicationMessage(iSession,1, MessageTypeProto.MessageType.PurpleMansionSealIndication_VALUE,build2,true); } - return HeroInfoProto.UpPracticeLevelResponse.newBuilder().setPracticeLevel(xiuXian2.getId()).build(); + // 升级返回 + HeroInfoProto.UpPracticeLevelResponse build = HeroInfoProto.UpPracticeLevelResponse.newBuilder().setPracticeLevel(xiuXian2.getId()).build(); + MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.UpPracticeLevelResponse_VALUE,build,true); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index 8cb52bed3..128c6ed62 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -1497,6 +1497,9 @@ public class HeroLogic{ SXiuXianSkill xianSkill = STableManager.getConfig(SXiuXianSkill.class).get(sealId); // 技能数组转list int skillId = xianSkill.getSkillId(); + if (skillId <= 0){ + return; + } // 适用范围 int[] fitList = xianSkill.getFitList(); switch (fitList[0]){ @@ -1930,11 +1933,11 @@ public class HeroLogic{ // 修行等级属性加成 Map xiuXianMap = STableManager.getConfig(SXiuXian.class); int practiceLevel = user.getHeroManager().getPracticeLevel(); - xiuXianMap.values().forEach(v->{ - if (v.getId() >= practiceLevel && v.getTotalPros() != null){ + for (SXiuXian v : xiuXianMap.values()) { + if (practiceLevel >= v.getId() && v.getTotalPros() != null){ combinedAttribute(v.getTotalPros(),heroAllAttribute); } - }); + } // //皮肤、称号加成 -- 前端未实现,暂时注释 // int decoration = user.getPlayerInfoManager().getDecoration(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 3143688c8..d742e082f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -625,7 +625,7 @@ public class PlayerLogic { builder.addEquip(CBean2Proto.getEquipProto(equipId)); } builder.setForce(HeroLogic.getInstance().calForce(heroNotBufferAttribute)); - builder.setHero(CBean2Proto.getHero(hero)); + builder.setHero(CBean2Proto.getHero(userInMem,hero)); Map guildSkill = userInMem.getGuildMyInfo().getGuildSkill(); int profession = SCHero.getsCHero().get(hero.getTemplateId()).getProfession(); Integer skill = guildSkill.getOrDefault(profession, 0); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java index 54337bf71..998006b2a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -24,6 +24,7 @@ import util.StringUtil; import util.TimeUtils; import java.util.*; +import java.util.stream.Collectors; public class CBean2Proto { @@ -205,7 +206,7 @@ public class CBean2Proto { return userMountLists; } - public static CommonProto.Hero getHero(Hero hero){ + public static CommonProto.Hero getHero(User user, Hero hero){ List soulPoss = new ArrayList<>(); Map soulEquipMap = hero.getSoulEquipByPositionMap(); if(soulEquipMap!=null&&!soulEquipMap.isEmpty()){ @@ -216,24 +217,26 @@ public class CBean2Proto { soulPoss.add(builder.build()); } } + return CommonProto.Hero - .newBuilder() - .setId(hero.getId()) - .setHeroId(hero.getTemplateId()) - .setLevel(hero.getOriginalLevel()) - .setStar(hero.getStar()) - .setBreakId(hero.getBreakId()) - .setStarBreakId(hero.getStarBreakId()) - .setCreateTime(hero.getCreateTime()) - .addAllEquipIdList(hero.getEquipByPositionMap().values()) - .setEspecialEquipLevel(hero.getEspecialEquipLevel()) - .addAllSoulPos(soulPoss) - .setLockState(hero.getIsLock()) - .addAllJewels(hero.getJewelInfo()) - .setCreatetype(hero.getCreateType()) - .setChangeId(hero.getChangeId()) - .setSkinId(hero.getSkin()) - .build(); + .newBuilder() + .setId(hero.getId()) + .setHeroId(hero.getTemplateId()) + .setLevel(hero.getOriginalLevel()) + .setStar(hero.getStar()) + .setBreakId(hero.getBreakId()) + .setStarBreakId(hero.getStarBreakId()) + .setCreateTime(hero.getCreateTime()) + .addAllEquipIdList(hero.getEquipByPositionMap().values()) + .setEspecialEquipLevel(hero.getEspecialEquipLevel()) + .addAllSoulPos(soulPoss) + .setLockState(hero.getIsLock()) + .addAllJewels(hero.getJewelInfo()) + .setCreatetype(hero.getCreateType()) + .setChangeId(hero.getChangeId()) + .setSkinId(hero.getSkin()) + .addAllSealIdList(getSealIdListByHero(user,hero)) + .build(); } /* public static CommonProto.Hero getRobotHero(SCHero scHero, SArenaRobotConfig sArenaRobotConfig) throws Exception { @@ -723,4 +726,24 @@ public class CBean2Proto { }); return list; } + + /** + * 获取英雄身上的神印id列表 + * @param user + * @param hero + * @return + */ + private static List getSealIdListByHero(User user, Hero hero){ + ArrayList list = new ArrayList<>(); + Collection values = user.getHeroManager().getPurpleMansionSeal().values(); + for (PurpleMansionSeal v : values) { + if (v.getState() == 1){ + if (v.getType() == 1 && !v.getSubId().equals(hero.getId())){ + continue; + } + list.add(v.getSealId()); + } + } + return list; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index 592e9d318..6e8966ee3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -1276,7 +1276,7 @@ public class ItemUtil { heroManager.addHero(hero); // 鸿蒙阵推送 HeroLogic.getInstance().addOrUpdateHongmeng(OnlineUserManager.getSessionByUid(user.getId())); - heroList.add(CBean2Proto.getHero(hero)); + heroList.add(CBean2Proto.getHero(user,hero)); SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); if (scHero.getStar() >= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_lottery_content_parm)) { //策划资质改成星级 String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("lamp_lottery_content", new Object[]{playerInfoManager.getNickName(), scHero.getStar(), scHero.getReadingName()},new int[]{0,0,1});