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 760fbfc22..f4f39bb1e 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 @@ -1307,7 +1307,7 @@ public class MapLogic { if (hero == null) { continue; } - heroForces += HeroLogic.getInstance().calHeoForce(user, hero); + heroForces += HeroLogic.getInstance().calHeoForce(user, hero,true); crossInfo.getHeroIds().add(hero.getTemplateId()); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java index b2e39f082..7f583bbfa 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java @@ -97,7 +97,7 @@ public class ArenaLogic { .build()); }else{ User user = UserManager.getUser(enemyId); - int totalForce = HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.TEAM_ARENA_DEFENSE); + int totalForce = HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.TEAM_ARENA_DEFENSE,false); List teamPosHeroInfoList = user.getTeamPosManager().getTeamPosForHero().get(GlobalsDef.TEAM_ARENA_DEFENSE); Map heroMap = user.getHeroManager().getHeroMap(); List heroTids = new ArrayList<>(teamPosHeroInfoList.size()); @@ -169,7 +169,7 @@ public class ArenaLogic { myscoreChange = calScore(myscore, defScore,fightResult); arenaRecord.setAttackId(uid); arenaRecord.setDefScore(defScoreChange); - arenaRecord.setAttackForce( HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.TEAM_ARENA_DEFENSE)); + arenaRecord.setAttackForce( HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.TEAM_ARENA_DEFENSE,false)); arenaRecord.setCreateTime((int)(System.currentTimeMillis()/1000)); arenaRecord.setId(KeyGenUtils.produceIdByModule(UUIDEnum.ARENARECORD,Integer.toString(uid))); RedisUtil.getInstence().putMapEntry(RedisKey.ARENA_RRECORD,Integer.toString(challengeUid),arenaRecord.getId(),arenaRecord); @@ -398,7 +398,7 @@ public class ArenaLogic { int score =item.getScore().intValue(); int uid = Integer.parseInt(value); User user = UserManager.getUser(uid); - int totalForce = HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.TEAM_ARENA_DEFENSE); + int totalForce = HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.TEAM_ARENA_DEFENSE,false); List teamPosHeroInfoList = user.getTeamPosManager().getTeamPosForHero().get(GlobalsDef.TEAM_ARENA_DEFENSE); Map heroMap = user.getHeroManager().getHeroMap(); List heroTids = new ArrayList<>(teamPosHeroInfoList.size()); 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 ca9bf548a..8c50b92c5 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 @@ -929,9 +929,9 @@ public class HeroLogic { } - public int calHeoForce(User user, Hero hero){ + public int calHeoForce(User user, Hero hero,boolean isMyself){ Map heroAllAttribute; - if(user.getMapManager().getCurMapId() == 0){ + if(isMyself && user.getMapManager().getCurMapId() == 0){ heroAllAttribute=calHeroNotBufferAttribute(user, hero); }else{ heroAllAttribute = calHeroFinalAttributeWhenInMap(user, hero); @@ -1229,18 +1229,18 @@ public class HeroLogic { return false; } - public int calTeamTotalForce(User user,int teamId){ + public int calTeamTotalForce(User targetUser,int teamId,boolean isMyself){ int totalForce =0; - List teamPosHeroInfoList = user.getTeamPosManager().getTeamPosForHero().get(teamId); + List teamPosHeroInfoList = targetUser.getTeamPosManager().getTeamPosForHero().get(teamId); if(teamPosHeroInfoList == null || teamPosHeroInfoList.isEmpty()){ return totalForce; } for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfoList) { - Hero hero = user.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); + Hero hero = targetUser.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); if (hero == null) { continue; } - totalForce +=calHeoForce(user, hero); + totalForce +=calHeoForce(targetUser, hero,isMyself); } return totalForce; }