From fc15794db3c9bf3d107584cada30bc335bc32913 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Thu, 28 Mar 2019 18:32:08 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B2=BE=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/handler/GetPlayerInfoHandler.java | 3 ++- .../main/java/com/ljsd/jieling/handler/map/MapLogic.java | 2 +- .../java/com/ljsd/jieling/logic/dao/PlayerManager.java | 9 ++------- .../src/main/java/com/ljsd/jieling/util/CBean2Proto.java | 4 ++-- 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index fa907af06..b068fba83 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -50,7 +50,8 @@ public class GetPlayerInfoHandler extends BaseHandler{ } - CommonProto.Player player = CBean2Proto.getPlayer(userId, user.getPlayerInfoManager(), user.getPlayerInfoManager().getMapId(), user.getMapManager().getCurMapId()); + boolean isInMap = user.getMapManager().getCurMapId() != 0; + CommonProto.Player player = CBean2Proto.getPlayer(userId, user.getPlayerInfoManager(), user.getPlayerInfoManager().getMapId(), user.getMapManager().getCurMapId(),isInMap); PlayerInfoProto.GetPlayerInfoResponse getPlayerInfoResponse = PlayerInfoProto.GetPlayerInfoResponse.newBuilder() .setPlayer(player) 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 7aa10b9b4..906e04b21 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 @@ -67,7 +67,7 @@ public class MapLogic { public void enterMap(ISession iSession, int mapId, int teamId, MessageTypeProto.MessageType messageType) throws Exception { int uid = iSession.getUid(); User user = UserManager.getUser(uid); - int energy = user.getPlayerInfoManager().getEnergy(); + int energy = user.getPlayerInfoManager().getEnergy(false); MapManager mapManager = user.getMapManager(); if (teamId == 0) { LOGGER.info("enterMap() uid=>{} teamId =>{} ", uid, teamId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java index 727f4eafd..ca7f2bb41 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java @@ -138,11 +138,6 @@ public class PlayerManager extends MongoBase { } public void setMapId(int mapId) throws Exception { - if(mapId == 0){ - setLastUpdateEnergyTime((int)(System.currentTimeMillis()/1000)); - } else { - setLastUpdateEnergyTime(GlobalsDef.BATTLING); - } updateString("mapId", mapId); this.mapId = mapId; } @@ -165,8 +160,8 @@ public class PlayerManager extends MongoBase { this.clientVersion = clientVersion; } - public int getEnergy() { - if(lastUpdateEnergyTime != GlobalsDef.BATTLING && energy< SGameSetting.getGameSetting().getInitialEnergy()){ + public int getEnergy(boolean isInMap) { + if(!isInMap && energy< SGameSetting.getGameSetting().getInitialEnergy()){ int updateTime = (int)(System.currentTimeMillis()/1000); int[] energyRecoverSpeed = SGameSetting.getGameSetting().getEnergyRecoverSpeed(); int addValue = (updateTime - lastUpdateEnergyTime)/60/energyRecoverSpeed[1] * energyRecoverSpeed[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 a18bf0085..a524ed511 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -17,7 +17,7 @@ import java.util.concurrent.CopyOnWriteArrayList; public class CBean2Proto { - public static CommonProto.Player getPlayer(int uid, PlayerManager playerManager, int maxMapId, int mapId) { + public static CommonProto.Player getPlayer(int uid, PlayerManager playerManager, int maxMapId, int mapId,boolean isInMap) { CommonProto.Player player = CommonProto.Player .newBuilder() .setUid(uid) @@ -28,7 +28,7 @@ public class CBean2Proto { .setFamilyId(playerManager.getFamilyId()) .setHead(playerManager.getHead()) .setCurMapId((maxMapId == 0 && mapId == 0) ? 100 : mapId) - .setEnergy(playerManager.getEnergy()) + .setEnergy(playerManager.getEnergy(isInMap)) .setLastUpdateEnergyTime(playerManager.getLastUpdateEnergyTime()) .setServerTime((int)(System.currentTimeMillis()/1000)) .build();