Merge branch 'master' of http://60.1.1.230/backend/jieling_server
commit
b05268b766
|
@ -100,6 +100,8 @@ public class MapLogic {
|
|||
user.setMapManager(mapManager);
|
||||
}*/
|
||||
// 进入新地图
|
||||
SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(mapId);
|
||||
int type = sChallengeConfig.getType();
|
||||
if (mapManager.getCurMapId() == 0) {
|
||||
Map<Integer, SCMap> scMap = SCMap.sCMap.get(mapId);
|
||||
if (scMap == null) {
|
||||
|
@ -113,7 +115,6 @@ public class MapLogic {
|
|||
MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "该地图不存在");
|
||||
return;
|
||||
}
|
||||
SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(mapId);
|
||||
if (sChallengeConfig == null) {
|
||||
LOGGER.info("enterMap() uid=>{} sChallengeConfig == null =>{} ", uid, mapId);
|
||||
MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "该地图不存在");
|
||||
|
@ -144,7 +145,7 @@ public class MapLogic {
|
|||
MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "");
|
||||
return;
|
||||
}
|
||||
int type = sChallengeConfig.getType();
|
||||
|
||||
if (type == 1) {
|
||||
if (mapManager.getPlayGenMaps().contains(mapId)) {
|
||||
boolean enough = ItemUtil.itemCost(user, new int[][]{{Global.GENERALSTORY_TICKET, 1}}, BIReason.MAP_ENTER_CONSUME, mapId);
|
||||
|
@ -161,15 +162,6 @@ public class MapLogic {
|
|||
MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "no ticket");
|
||||
return;
|
||||
}
|
||||
}else if(type ==4){
|
||||
|
||||
List<TeamPosHeroInfo> teamPosForHero = user.getTeamPosManager().getTeamPosForHero().get(teamId);
|
||||
for (int i = 0; i <teamPosForHero.size() ; i++) {
|
||||
String endlessHeroId = teamPosForHero.get(i).getHeroId();
|
||||
int maxHp = HeroLogic.getInstance().calHeroNotBufferAttribute(user,user.getHeroManager().getHero(endlessHeroId),false).get(1);
|
||||
mapManager.addEndlessHero(teamPosForHero.get(i).getHeroId(),maxHp);
|
||||
}
|
||||
mapManager.setCurXY(mapManager.getEndlessMapInfo().getCurCell());
|
||||
}
|
||||
//todo 更新地圖次數
|
||||
mapManager.setCurMapId(mapId);
|
||||
|
@ -193,11 +185,33 @@ public class MapLogic {
|
|||
MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "地图错误,应进入" + mapManager.getCurMapId());
|
||||
return;
|
||||
}
|
||||
MapInfoProto.MapEnterResponse.Builder mapEnterResponse = MapInfoProto.MapEnterResponse.newBuilder();
|
||||
if(type ==4){
|
||||
List<TeamPosHeroInfo> teamPosForHero = user.getTeamPosManager().getTeamPosForHero().get(teamId);
|
||||
for (int i = 0; i <teamPosForHero.size() ; i++) {
|
||||
String endlessHeroId = teamPosForHero.get(i).getHeroId();
|
||||
int maxHp = HeroLogic.getInstance().calHeroNotBufferAttribute(user,user.getHeroManager().getHero(endlessHeroId),false).get(1);
|
||||
mapManager.addEndlessHero(teamPosForHero.get(i).getHeroId(),maxHp);
|
||||
}
|
||||
mapManager.setCurXY(mapManager.getEndlessMapInfo().getCurCell());
|
||||
EndlessMapInfo endlessMapInfo = mapManager.getEndlessMapInfo();
|
||||
for(Map.Entry<Integer,Map<Integer,String>> entry :endlessMapInfo.getMapSign().entrySet()){
|
||||
int curMapId = entry.getKey();
|
||||
for(Map.Entry<Integer,String> signEntry: entry.getValue().entrySet()){
|
||||
CommonProto.endlessSign sign = CommonProto.endlessSign.newBuilder()
|
||||
.setMapId(curMapId)
|
||||
.setCellId(signEntry.getKey())
|
||||
.setInfo(signEntry.getValue())
|
||||
.build();
|
||||
mapEnterResponse.addSigns(sign);
|
||||
}
|
||||
}
|
||||
}
|
||||
List<CommonProto.Cell> cells = new ArrayList<>(mapManager.getMapInfo().size());
|
||||
for (Map.Entry<Integer, Cell> entry : mapManager.getMapInfo().entrySet()) {
|
||||
cellToProto(cells, entry);
|
||||
}
|
||||
MapInfoProto.MapEnterResponse.Builder mapEnterResponse = MapInfoProto.MapEnterResponse.newBuilder();
|
||||
|
||||
mapEnterResponse.setLeftTime(getLeftTime(user, true));
|
||||
for (Map.Entry<Integer, Integer> buffEntry : mapManager.getFoodBufferMap().entrySet()) {
|
||||
if (buffEntry.getValue()==0) {
|
||||
|
@ -1103,8 +1117,9 @@ public class MapLogic {
|
|||
mapManager.updateHeroOneAttribute(teamPosHeroInfo.getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[teamPosHeroInfo.getPosition()+1]);
|
||||
}
|
||||
if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4&&teamId==401){
|
||||
for (TeamPosHeroInfo teamPosHeroInfo : team) {
|
||||
mapManager.updateEndlessHeroHp(teamPosHeroInfo.getHeroId(),checkResult[teamPosHeroInfo.getPosition()+1]);
|
||||
for (int i = 0 ; i <team.size();i++) {
|
||||
mapManager.updateEndlessHeroHp(team.get(i).getHeroId(),checkResult[i+2]);
|
||||
mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1331,8 +1346,9 @@ public class MapLogic {
|
|||
mapManager.updateHeroOneAttribute(teamPosHeroInfo.getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[teamPosHeroInfo.getPosition()+1]);
|
||||
}
|
||||
if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4&&teamId==401){
|
||||
for (TeamPosHeroInfo teamPosHeroInfo : team) {
|
||||
mapManager.updateEndlessHeroHp(teamPosHeroInfo.getHeroId(),checkResult[teamPosHeroInfo.getPosition()+1]);
|
||||
for (int i = 0 ; i <team.size();i++) {
|
||||
mapManager.updateEndlessHeroHp(team.get(i).getHeroId(),checkResult[i+2]);
|
||||
mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]);
|
||||
}
|
||||
}
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMonsterGroup.getRewardgroup(), 1, 1, BIReason.MAP_GENERAL_FIGHT_REWARD);
|
||||
|
@ -2739,6 +2755,9 @@ public class MapLogic {
|
|||
continue;
|
||||
}
|
||||
int calHp = HeroLogic.getInstance().calHeroFinalAttributeWhenInMap(user, heroEntry.getValue(), true).get(1);
|
||||
if(!endlessHeroInfo.containsKey(heroEntry.getKey())){
|
||||
mapManager.addEndlessHero(heroEntry.getKey(),calHp);
|
||||
}
|
||||
for (Map.Entry<String,EndlessHero> entry :endlessHeroInfo.entrySet()) {
|
||||
if (!entry.getKey().equals(heroEntry.getKey())) {
|
||||
continue;
|
||||
|
@ -2808,19 +2827,37 @@ public class MapLogic {
|
|||
* @param content
|
||||
* @param messageType
|
||||
*/
|
||||
public void setEndlessSign(ISession session,int mapId,int cellId, String content, MessageTypeProto.MessageType messageType) throws Exception {
|
||||
public void setEndlessSign(ISession session,int type,int mapId,int cellId, String content, MessageTypeProto.MessageType messageType) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
MapManager mapManager = user.getMapManager();
|
||||
boolean result = ShieldedWordUtils.checkName(content,false);
|
||||
String error;
|
||||
if (!result) {
|
||||
error = "输入有敏感字符";
|
||||
}else{
|
||||
mapManager.addEndlessSign(mapId,cellId,content);
|
||||
error = "设置成功";
|
||||
if (type == 1) {
|
||||
boolean result = ShieldedWordUtils.checkName(content, false);
|
||||
String error;
|
||||
if (!result) {
|
||||
error = "输入有敏感字符";
|
||||
} else {
|
||||
mapManager.addEndlessSign(mapId, cellId, content);
|
||||
error = "设置成功";
|
||||
}
|
||||
MapInfoProto.SignEndlessCellResponse response = MapInfoProto.SignEndlessCellResponse.newBuilder().setError(error).build();
|
||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), response, true);
|
||||
} else if (type == 2) {
|
||||
EndlessMapInfo endlessMapInfo = mapManager.getEndlessMapInfo();
|
||||
if (endlessMapInfo.getMapSign() == null) {
|
||||
MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "无尽副本暂无标记");
|
||||
return;
|
||||
}
|
||||
if (endlessMapInfo.getMapSign().get(mapId) == null) {
|
||||
MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "该地图无标记");
|
||||
return;
|
||||
}
|
||||
if (endlessMapInfo.getMapSign().get(mapId).get(cellId) == null) {
|
||||
MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "该点无标记");
|
||||
return;
|
||||
}
|
||||
mapManager.removeEndlessSign(mapId,cellId);
|
||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), null, true);
|
||||
}
|
||||
MapInfoProto.SignEndlessCellResponse response = MapInfoProto.SignEndlessCellResponse.newBuilder().setError(error).build();
|
||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -720,9 +720,13 @@ public class MapManager extends MongoBase {
|
|||
if(!endlessMapInfo.getMapSign().containsKey(mapId)){
|
||||
endlessMapInfo.getMapSign().put(mapId,new HashMap<>());
|
||||
}
|
||||
endlessMapInfo.getMapSign().get(mapId).put(mapId,info);
|
||||
endlessMapInfo.getMapSign().get(mapId).put(cellId,info);
|
||||
updateString("endlessMapInfo.mapSign."+mapId+"."+cellId,info);
|
||||
}
|
||||
public void removeEndlessSign(int mapId,int cellId){
|
||||
endlessMapInfo.getMapSign().get(mapId).remove(cellId);
|
||||
removeString(getMongoKey()+".endlessMapInfo.mapSign."+mapId+"."+cellId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ public class EndlessSetSignHandler extends BaseHandler {
|
|||
byte[] bytes = netData.parseClientProtoNetData();
|
||||
MapInfoProto.SignEndlessCellRequest request = MapInfoProto.SignEndlessCellRequest.parseFrom(bytes);
|
||||
CommonProto.endlessSign sign = request.getSign();
|
||||
MapLogic.getInstance().setEndlessSign(iSession,sign.getMapId(),sign.getCellId(),sign.getInfo(),MessageTypeProto.MessageType.ENDLESS_MAP_SIGN_RESPONSE);
|
||||
|
||||
MapLogic.getInstance().setEndlessSign(iSession,sign.getType(),sign.getMapId(),sign.getCellId(),sign.getInfo(),MessageTypeProto.MessageType.ENDLESS_MAP_SIGN_RESPONSE);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue