From c7d61c098d82d092c242cf3f38bcd373189e0b9c Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 7 Sep 2019 13:56:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A0=E5=B0=BD=E6=9C=AC=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/handler/map/MapLogic.java | 13 +++++++++++-- .../com/ljsd/jieling/handler/map/MapManager.java | 4 ++++ 2 files changed, 15 insertions(+), 2 deletions(-) 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 4148792b1..5f363a2a0 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 @@ -1295,8 +1295,13 @@ public class MapLogic { Map heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,teamId); int per = (int)(checkResult[i+2] / (double) heroAllAttribute.get(HeroAttributeEnum.Hp.getPropertyId())*10000); mapManager.updateEndlessHeroHp(team.get(i).getHeroId(),per); - mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]); + if(heroAllAttribute.get(HeroAttributeEnum.CurHP)==0){ + mapManager.removeOneHeroAttribute(hero.getId()); + }else{ + mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]); + } } + } if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4) { endlessRefreshMonster(session,destoryXY); @@ -1539,7 +1544,11 @@ public class MapLogic { Map heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,teamId); int per =(int) (checkResult[i+2] / (double) heroAllAttribute.get(HeroAttributeEnum.Hp.getPropertyId())*10000); mapManager.updateEndlessHeroHp(team.get(i).getHeroId(),per); - mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]); + if(heroAllAttribute.get(HeroAttributeEnum.CurHP)==0){ + mapManager.removeOneHeroAttribute(hero.getId()); + }else{ + mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]); + } } } CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMonsterGroup.getRewardgroup(), 1, 1, BIReason.MAP_GENERAL_FIGHT_REWARD); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java index 01eb1e989..e58b32069 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java @@ -411,6 +411,10 @@ public class MapManager extends MongoBase { heroAllAttributeMap.get(id).put(attribute,value); updateString("heroAllAttributeMap." + id +"." + attribute, value); } + public void removeOneHeroAttribute(String id){ + heroAllAttributeMap.remove(id); + removeString(getMongoKey()+".heroAllAttributeMap."+id); + } public Map> getHeroAllAttributeMap() { return heroAllAttributeMap;