back_recharge
wangyuan 2019-03-28 18:32:08 +08:00
parent d40956b247
commit fc15794db3
4 changed files with 7 additions and 11 deletions

View File

@ -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 getPlayerInfoResponse
= PlayerInfoProto.GetPlayerInfoResponse.newBuilder() = PlayerInfoProto.GetPlayerInfoResponse.newBuilder()
.setPlayer(player) .setPlayer(player)

View File

@ -67,7 +67,7 @@ public class MapLogic {
public void enterMap(ISession iSession, int mapId, int teamId, MessageTypeProto.MessageType messageType) throws Exception { public void enterMap(ISession iSession, int mapId, int teamId, MessageTypeProto.MessageType messageType) throws Exception {
int uid = iSession.getUid(); int uid = iSession.getUid();
User user = UserManager.getUser(uid); User user = UserManager.getUser(uid);
int energy = user.getPlayerInfoManager().getEnergy(); int energy = user.getPlayerInfoManager().getEnergy(false);
MapManager mapManager = user.getMapManager(); MapManager mapManager = user.getMapManager();
if (teamId == 0) { if (teamId == 0) {
LOGGER.info("enterMap() uid=>{} teamId =>{} ", uid, teamId); LOGGER.info("enterMap() uid=>{} teamId =>{} ", uid, teamId);

View File

@ -138,11 +138,6 @@ public class PlayerManager extends MongoBase {
} }
public void setMapId(int mapId) throws Exception { public void setMapId(int mapId) throws Exception {
if(mapId == 0){
setLastUpdateEnergyTime((int)(System.currentTimeMillis()/1000));
} else {
setLastUpdateEnergyTime(GlobalsDef.BATTLING);
}
updateString("mapId", mapId); updateString("mapId", mapId);
this.mapId = mapId; this.mapId = mapId;
} }
@ -165,8 +160,8 @@ public class PlayerManager extends MongoBase {
this.clientVersion = clientVersion; this.clientVersion = clientVersion;
} }
public int getEnergy() { public int getEnergy(boolean isInMap) {
if(lastUpdateEnergyTime != GlobalsDef.BATTLING && energy< SGameSetting.getGameSetting().getInitialEnergy()){ if(!isInMap && energy< SGameSetting.getGameSetting().getInitialEnergy()){
int updateTime = (int)(System.currentTimeMillis()/1000); int updateTime = (int)(System.currentTimeMillis()/1000);
int[] energyRecoverSpeed = SGameSetting.getGameSetting().getEnergyRecoverSpeed(); int[] energyRecoverSpeed = SGameSetting.getGameSetting().getEnergyRecoverSpeed();
int addValue = (updateTime - lastUpdateEnergyTime)/60/energyRecoverSpeed[1] * energyRecoverSpeed[0]; int addValue = (updateTime - lastUpdateEnergyTime)/60/energyRecoverSpeed[1] * energyRecoverSpeed[0];

View File

@ -17,7 +17,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
public class CBean2Proto { 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 CommonProto.Player player = CommonProto.Player
.newBuilder() .newBuilder()
.setUid(uid) .setUid(uid)
@ -28,7 +28,7 @@ public class CBean2Proto {
.setFamilyId(playerManager.getFamilyId()) .setFamilyId(playerManager.getFamilyId())
.setHead(playerManager.getHead()) .setHead(playerManager.getHead())
.setCurMapId((maxMapId == 0 && mapId == 0) ? 100 : mapId) .setCurMapId((maxMapId == 0 && mapId == 0) ? 100 : mapId)
.setEnergy(playerManager.getEnergy()) .setEnergy(playerManager.getEnergy(isInMap))
.setLastUpdateEnergyTime(playerManager.getLastUpdateEnergyTime()) .setLastUpdateEnergyTime(playerManager.getLastUpdateEnergyTime())
.setServerTime((int)(System.currentTimeMillis()/1000)) .setServerTime((int)(System.currentTimeMillis()/1000))
.build(); .build();