From 12b92a425032b6535790a0af9eb4f925ca34a6e9 Mon Sep 17 00:00:00 2001 From: "DESKTOP-98AVA47\\Administrator" Date: Sat, 23 Oct 2021 01:36:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B1=E9=B8=A3=E8=A3=85=E5=A4=87=E7=9C=8B?= =?UTF-8?q?=E4=B8=8D=E5=88=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/player/PlayerLogic.java | 6 ++- .../com/ljsd/jieling/util/CBean2Proto.java | 44 +++++++++++++++++-- 2 files changed, 46 insertions(+), 4 deletions(-) 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 95335e68c..e0d8cc1d1 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 @@ -1245,7 +1245,11 @@ public class PlayerLogic { builder.addEquip(CBean2Proto.getEquipProtoyx(jewels.get(equipId),user)); } // 装备 - for(int equipId : hero.getEquipByPositionMap().values()){ + Collection equipList =hero.getEquipByPositionMap().values(); + if(equipList.size() ==0 ){ + equipList = hero.getEquipByHongmengPositionMap(user.getHeroManager()).values(); + } + for(int equipId : equipList){ heroBuilder.addEquipIdList(equipId); builder.addEquip(CBean2Proto.getEquipProto(equipId)); } 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 d5c64d7df..1899906bb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -354,7 +354,7 @@ public class CBean2Proto { .setFirstOrMini(function); } - public static CommonProto.Hero getHero(Hero hero){ + public static CommonProto.Hero getHero(Hero hero,HeroManager heroManager){ List soulPoss = new ArrayList<>(); Map soulEquipMap = hero.getSoulEquipByPositionMap(); if(soulEquipMap!=null&&!soulEquipMap.isEmpty()){ @@ -365,7 +365,12 @@ public class CBean2Proto { soulPoss.add(builder.build()); } } + //Collection equipList = hero.getEquipByHongmengPositionMap(heroManager).values(); + Collection equipList =hero.getEquipByPositionMap().values(); + if(equipList.size() ==0 ){ + equipList = hero.getEquipByHongmengPositionMap(heroManager).values(); + } return CommonProto.Hero .newBuilder() .setId(hero.getId()) @@ -375,7 +380,8 @@ public class CBean2Proto { .setBreakId(hero.getBreakId()) .setStarBreakId(hero.getStarBreakId()) .setCreateTime(hero.getCreateTime()) - .addAllEquipIdList(hero.getEquipByPositionMap().values()) + //.addAllEquipIdList(hero.getEquipByPositionMap().values()) + .addAllEquipIdList(equipList) .setEspecialEquipLevel(hero.getEspecialEquipLevel()) .addAllSoulPos(soulPoss) .setLockState(hero.getIsLock()) @@ -386,6 +392,38 @@ public class CBean2Proto { .build(); } + public static CommonProto.Hero getHero(Hero hero){ + List soulPoss = new ArrayList<>(); + Map soulEquipMap = hero.getSoulEquipByPositionMap(); + if(soulEquipMap!=null&&!soulEquipMap.isEmpty()){ + for (Map.Entry entry:soulEquipMap.entrySet()){ + CommonProto.SoulPos.Builder builder = CommonProto.SoulPos.newBuilder(); + builder.setEquipId(entry.getValue()); + builder.setPosition(entry.getKey()); + 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(); + } + /*** * 获取鸿蒙阵英雄属性 * @param hero @@ -393,7 +431,7 @@ public class CBean2Proto { * @return */ public static CommonProto.Hero getHeroByHongMeng(Hero hero,HeroManager heroManager){ - CommonProto.Hero hero1 = getHero(hero); + CommonProto.Hero hero1 = getHero(hero,heroManager); CommonProto.Hero.Builder builder = hero1.toBuilder(); builder.setLevel(hero.getLevel(heroManager)); builder.setBreakId(hero.getBreakIdByHongMeng(heroManager));