diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index 9e6154e8f..5b2e11156 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -3227,8 +3227,26 @@ public class MapLogic { trailHero.setSkinTime(skinTime); heroInfo.put(id,trailHero); } + + MapInfoProto.TrialHeroInfoSaveResponse.Builder response = MapInfoProto.TrialHeroInfoSaveResponse.newBuilder(); + for(Map.Entry entry:heroInfo.entrySet()){ + TrailHero trailHero = entry.getValue(); + int remainHp = trailHero.getProperty().get(HeroAttributeEnum.CurHP.getPropertyId()); + int maxHp = trailHero.getProperty().get(HeroAttributeEnum.Hp.getPropertyId()); + //判断血量万分比,如果小于0.01%返回0.01% + int calHp = remainHp>0? (int) (remainHp * 10000D / maxHp > 0 ? remainHp * 10000D / maxHp : 1) :0; + MapInfoProto.TrialHeroInfo info = MapInfoProto.TrialHeroInfo.newBuilder().setHeroId(entry.getKey()) + .setTmpId(trailHero.getTmpId()) + .setHeroHp(calHp) + .setStar(trailHero.getStar()) + .setLevel(trailHero.getLevel()) + .setSkinId(trailHero.getSkinId()) + .build(); + response.addHeroes(info); + } + mapManager.updateTrailHeroInfo(heroInfo); - MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); + MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true); } /**