back_recharge
parent
6e413a7129
commit
271ffd9b3d
|
@ -50,8 +50,7 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
|||
|
||||
|
||||
}
|
||||
boolean isInMap = user.getMapManager().getCurMapId() != 0;
|
||||
CommonProto.Player player = CBean2Proto.getPlayer(userId, user.getPlayerInfoManager(), user.getPlayerInfoManager().getMapId(), user.getMapManager().getCurMapId(),isInMap);
|
||||
CommonProto.Player player = CBean2Proto.getPlayer(userId, user.getPlayerInfoManager(), user.getPlayerInfoManager().getMapId(), user.getMapManager().getCurMapId(),user.getMapManager());
|
||||
PlayerInfoProto.GetPlayerInfoResponse getPlayerInfoResponse
|
||||
= PlayerInfoProto.GetPlayerInfoResponse.newBuilder()
|
||||
.setPlayer(player)
|
||||
|
|
|
@ -67,8 +67,8 @@ 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(false);
|
||||
MapManager mapManager = user.getMapManager();
|
||||
int energy = mapManager.getEnergy();
|
||||
if (teamId == 0) {
|
||||
LOGGER.info("enterMap() uid=>{} teamId =>{} ", uid, teamId);
|
||||
MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "");
|
||||
|
@ -131,7 +131,7 @@ public class MapLogic {
|
|||
return;
|
||||
}
|
||||
int leftEnergy = energy - scMapConfig.getEnergyConfused();
|
||||
user.getPlayerInfoManager().setEnergy(leftEnergy);
|
||||
mapManager.setEnergy(leftEnergy);
|
||||
mapManager.setCurMapId(mapId);
|
||||
initMap(mapManager, user);
|
||||
user.setMapManager(mapManager);
|
||||
|
|
|
@ -4,8 +4,10 @@ package com.ljsd.jieling.handler.map;
|
|||
|
||||
import com.ljsd.common.mogodb.MongoBase;
|
||||
import com.ljsd.jieling.config.SAccomplishmentConfig;
|
||||
import com.ljsd.jieling.config.SGameSetting;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.util.MathUtils;
|
||||
import org.springframework.data.mongodb.core.mapping.Field;
|
||||
|
||||
import java.util.*;
|
||||
|
@ -39,6 +41,10 @@ public class MapManager extends MongoBase {
|
|||
|
||||
private Map<Integer, MapMission> allMissionProgress = new ConcurrentHashMap<>();
|
||||
|
||||
private int energy;
|
||||
|
||||
private int lastUpdateEnergyTime;
|
||||
|
||||
public MapManager() {
|
||||
this.setRootCollection(User._COLLECTION_NAME);
|
||||
}
|
||||
|
@ -62,6 +68,11 @@ public class MapManager extends MongoBase {
|
|||
}
|
||||
|
||||
public void setCurMapId(int curMapId) throws Exception {
|
||||
if(curMapId == 0){
|
||||
setLastUpdateEnergyTime((int)(System.currentTimeMillis()/1000));
|
||||
}else{
|
||||
setLastUpdateEnergyTime(GlobalsDef.BATTLING);
|
||||
}
|
||||
updateString("curMapId", curMapId);
|
||||
this.curMapId = curMapId;
|
||||
}
|
||||
|
@ -193,4 +204,34 @@ public class MapManager extends MongoBase {
|
|||
updateString( "allMissionProgress." + mapMission.getMapId(), mapMission);
|
||||
allMissionProgress.put(mapMission.getMapId(),mapMission);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public int getEnergy() {
|
||||
if(curMapId==0 && energy< SGameSetting.getGameSetting().getInitialEnergy()){
|
||||
int updateTime = (int)(System.currentTimeMillis()/1000);
|
||||
int[] energyRecoverSpeed = SGameSetting.getGameSetting().getEnergyRecoverSpeed();
|
||||
int addValue = (updateTime - lastUpdateEnergyTime)/60/energyRecoverSpeed[1] * energyRecoverSpeed[0];
|
||||
if(addValue != 0){
|
||||
int curEnergy = MathUtils.setBetweenWithMax(energy + addValue,0,SGameSetting.getGameSetting().getInitialEnergy());
|
||||
setEnergy(curEnergy);
|
||||
setLastUpdateEnergyTime(updateTime);
|
||||
}
|
||||
}
|
||||
return energy;
|
||||
}
|
||||
|
||||
public void setLastUpdateEnergyTime(int lastUpdateEnergyTime) {
|
||||
updateString("lastUpdateEnergyTime", lastUpdateEnergyTime);
|
||||
this.lastUpdateEnergyTime = lastUpdateEnergyTime;
|
||||
}
|
||||
|
||||
public void setEnergy(int energy) {
|
||||
updateString("energy", energy);
|
||||
this.energy = energy;
|
||||
}
|
||||
|
||||
public int getLastUpdateEnergyTime() {
|
||||
return lastUpdateEnergyTime;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,10 +32,6 @@ public class PlayerManager extends MongoBase {
|
|||
|
||||
private int mapId;
|
||||
|
||||
private int energy;
|
||||
|
||||
private int lastUpdateEnergyTime;
|
||||
|
||||
private long createTime; //创建时间
|
||||
|
||||
private String clientVersion;
|
||||
|
@ -160,31 +156,4 @@ public class PlayerManager extends MongoBase {
|
|||
this.clientVersion = clientVersion;
|
||||
}
|
||||
|
||||
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];
|
||||
if(addValue != 0){
|
||||
int curEnergy = MathUtils.setBetweenWithMax(energy + addValue,0,SGameSetting.getGameSetting().getInitialEnergy());
|
||||
setEnergy(curEnergy);
|
||||
setLastUpdateEnergyTime(updateTime);
|
||||
}
|
||||
}
|
||||
return energy;
|
||||
}
|
||||
|
||||
public void setLastUpdateEnergyTime(int lastUpdateEnergyTime) {
|
||||
updateString("lastUpdateEnergyTime", lastUpdateEnergyTime);
|
||||
this.lastUpdateEnergyTime = lastUpdateEnergyTime;
|
||||
}
|
||||
|
||||
public void setEnergy(int energy) {
|
||||
updateString("energy", energy);
|
||||
this.energy = energy;
|
||||
}
|
||||
|
||||
public int getLastUpdateEnergyTime() {
|
||||
return lastUpdateEnergyTime;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.ljsd.jieling.util;
|
|||
import com.ljsd.jieling.config.SGameSetting;
|
||||
import com.ljsd.jieling.config.SMonsterConfig;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.handler.map.MapManager;
|
||||
import com.ljsd.jieling.handler.map.MapMission;
|
||||
import com.ljsd.jieling.handler.map.TemporaryItems;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
|
@ -17,7 +18,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
|||
public class CBean2Proto {
|
||||
|
||||
|
||||
public static CommonProto.Player getPlayer(int uid, PlayerManager playerManager, int maxMapId, int mapId,boolean isInMap) {
|
||||
public static CommonProto.Player getPlayer(int uid, PlayerManager playerManager, int maxMapId, int mapId, MapManager mapManager) {
|
||||
CommonProto.Player player = CommonProto.Player
|
||||
.newBuilder()
|
||||
.setUid(uid)
|
||||
|
@ -28,8 +29,8 @@ public class CBean2Proto {
|
|||
.setFamilyId(playerManager.getFamilyId())
|
||||
.setHead(playerManager.getHead())
|
||||
.setCurMapId((maxMapId == 0 && mapId == 0) ? 100 : mapId)
|
||||
.setEnergy(playerManager.getEnergy(isInMap))
|
||||
.setLastUpdateEnergyTime(playerManager.getLastUpdateEnergyTime())
|
||||
.setEnergy(mapManager.getEnergy())
|
||||
.setLastUpdateEnergyTime(mapManager.getLastUpdateEnergyTime())
|
||||
.setServerTime((int)(System.currentTimeMillis()/1000))
|
||||
.build();
|
||||
return player;
|
||||
|
|
Loading…
Reference in New Issue