Merge branch 'master' of http://60.1.1.230/backend/jieling_server
commit
a1cf44bbca
|
@ -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(),user.getMapManager());
|
||||||
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)
|
||||||
|
|
|
@ -67,8 +67,8 @@ 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(false);
|
|
||||||
MapManager mapManager = user.getMapManager();
|
MapManager mapManager = user.getMapManager();
|
||||||
|
int energy = mapManager.getEnergy();
|
||||||
if (teamId == 0) {
|
if (teamId == 0) {
|
||||||
LOGGER.info("enterMap() uid=>{} teamId =>{} ", uid, teamId);
|
LOGGER.info("enterMap() uid=>{} teamId =>{} ", uid, teamId);
|
||||||
MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "");
|
MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "");
|
||||||
|
@ -131,7 +131,7 @@ public class MapLogic {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int leftEnergy = energy - scMapConfig.getEnergyConfused();
|
int leftEnergy = energy - scMapConfig.getEnergyConfused();
|
||||||
user.getPlayerInfoManager().setEnergy(leftEnergy);
|
mapManager.setEnergy(leftEnergy);
|
||||||
mapManager.setCurMapId(mapId);
|
mapManager.setCurMapId(mapId);
|
||||||
initMap(mapManager, user);
|
initMap(mapManager, user);
|
||||||
user.setMapManager(mapManager);
|
user.setMapManager(mapManager);
|
||||||
|
|
|
@ -4,8 +4,10 @@ package com.ljsd.jieling.handler.map;
|
||||||
|
|
||||||
import com.ljsd.common.mogodb.MongoBase;
|
import com.ljsd.common.mogodb.MongoBase;
|
||||||
import com.ljsd.jieling.config.SAccomplishmentConfig;
|
import com.ljsd.jieling.config.SAccomplishmentConfig;
|
||||||
|
import com.ljsd.jieling.config.SGameSetting;
|
||||||
import com.ljsd.jieling.core.GlobalsDef;
|
import com.ljsd.jieling.core.GlobalsDef;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
|
import com.ljsd.jieling.util.MathUtils;
|
||||||
import org.springframework.data.mongodb.core.mapping.Field;
|
import org.springframework.data.mongodb.core.mapping.Field;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
@ -39,6 +41,10 @@ public class MapManager extends MongoBase {
|
||||||
|
|
||||||
private Map<Integer, MapMission> allMissionProgress = new ConcurrentHashMap<>();
|
private Map<Integer, MapMission> allMissionProgress = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
|
private int energy;
|
||||||
|
|
||||||
|
private int lastUpdateEnergyTime;
|
||||||
|
|
||||||
public MapManager() {
|
public MapManager() {
|
||||||
this.setRootCollection(User._COLLECTION_NAME);
|
this.setRootCollection(User._COLLECTION_NAME);
|
||||||
}
|
}
|
||||||
|
@ -62,6 +68,11 @@ public class MapManager extends MongoBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCurMapId(int curMapId) throws Exception {
|
public void setCurMapId(int curMapId) throws Exception {
|
||||||
|
if(curMapId == 0){
|
||||||
|
setLastUpdateEnergyTime((int)(System.currentTimeMillis()/1000));
|
||||||
|
}else{
|
||||||
|
setLastUpdateEnergyTime(GlobalsDef.BATTLING);
|
||||||
|
}
|
||||||
updateString("curMapId", curMapId);
|
updateString("curMapId", curMapId);
|
||||||
this.curMapId = curMapId;
|
this.curMapId = curMapId;
|
||||||
}
|
}
|
||||||
|
@ -193,4 +204,34 @@ public class MapManager extends MongoBase {
|
||||||
updateString( "allMissionProgress." + mapMission.getMapId(), mapMission);
|
updateString( "allMissionProgress." + mapMission.getMapId(), mapMission);
|
||||||
allMissionProgress.put(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 mapId;
|
||||||
|
|
||||||
private int energy;
|
|
||||||
|
|
||||||
private int lastUpdateEnergyTime;
|
|
||||||
|
|
||||||
private long createTime; //创建时间
|
private long createTime; //创建时间
|
||||||
|
|
||||||
private String clientVersion;
|
private String clientVersion;
|
||||||
|
@ -160,31 +156,4 @@ public class PlayerManager extends MongoBase {
|
||||||
this.clientVersion = clientVersion;
|
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.SGameSetting;
|
||||||
import com.ljsd.jieling.config.SMonsterConfig;
|
import com.ljsd.jieling.config.SMonsterConfig;
|
||||||
import com.ljsd.jieling.core.GlobalsDef;
|
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.MapMission;
|
||||||
import com.ljsd.jieling.handler.map.TemporaryItems;
|
import com.ljsd.jieling.handler.map.TemporaryItems;
|
||||||
import com.ljsd.jieling.logic.dao.*;
|
import com.ljsd.jieling.logic.dao.*;
|
||||||
|
@ -17,7 +18,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,boolean isInMap) {
|
public static CommonProto.Player getPlayer(int uid, PlayerManager playerManager, int maxMapId, int mapId, MapManager mapManager) {
|
||||||
CommonProto.Player player = CommonProto.Player
|
CommonProto.Player player = CommonProto.Player
|
||||||
.newBuilder()
|
.newBuilder()
|
||||||
.setUid(uid)
|
.setUid(uid)
|
||||||
|
@ -28,8 +29,8 @@ 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(isInMap))
|
.setEnergy(mapManager.getEnergy())
|
||||||
.setLastUpdateEnergyTime(playerManager.getLastUpdateEnergyTime())
|
.setLastUpdateEnergyTime(mapManager.getLastUpdateEnergyTime())
|
||||||
.setServerTime((int)(System.currentTimeMillis()/1000))
|
.setServerTime((int)(System.currentTimeMillis()/1000))
|
||||||
.build();
|
.build();
|
||||||
return player;
|
return player;
|
||||||
|
|
Loading…
Reference in New Issue