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 64706a19e..f92c8b0d9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -39,7 +39,7 @@ public class GetPlayerInfoHandler extends BaseHandler{ User user = UserManager.getUserForLogin(userId); - CommonProto.Player player = CBean2Proto.getPlayer(userId, user.getPlayerInfoManager(), user.getMapManager().getCurMapId()); + CommonProto.Player player = CBean2Proto.getPlayer(userId, user.getPlayerInfoManager(), user.getMapManager().getMaxMapId(), user.getMapManager().getCurMapId()); PlayerInfoProto.GetPlayerInfoResponse getPlayerInfoResponse = PlayerInfoProto.GetPlayerInfoResponse.newBuilder() 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 c309bf1e8..92290e93d 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 @@ -63,25 +63,27 @@ 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); - List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId); - if (teamPosHeroInfos == null || teamPosHeroInfos.isEmpty()) { - MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "阵容不存在"); - return; - } - Set heroes = new HashSet<>(teamPosHeroInfos.size()); - for (TeamPosHeroInfo heroInfo : teamPosHeroInfos) { - Hero hero = user.getHeroManager().getHero(heroInfo.getHeroId()); - if (hero == null) { + MapManager mapManager = user.getMapManager(); + if (teamId != 0) { + List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId); + if (teamPosHeroInfos == null || teamPosHeroInfos.isEmpty()) { + MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "阵容不存在"); return; } - hero.setCurHp(HeroLogic.getInstance().calHeroAttribute(hero, GlobalsDef.HP_TYPE)); - heroes.add(heroInfo.getHeroId()); + Set heroes = new HashSet<>(teamPosHeroInfos.size()); + for (TeamPosHeroInfo heroInfo : teamPosHeroInfos) { + Hero hero = user.getHeroManager().getHero(heroInfo.getHeroId()); + if (hero == null) { + return; + } + hero.setCurHp(HeroLogic.getInstance().calHeroAttribute(hero, GlobalsDef.HP_TYPE)); + heroes.add(heroInfo.getHeroId()); + } + if (heroes.size() != teamPosHeroInfos.size()) { + return; + } + mapManager.setHeroes(heroes); } - if (heroes.size() != teamPosHeroInfos.size()) { - return; - } - MapManager mapManager = user.getMapManager(); - mapManager.setHeroes(heroes); if (mapManager.getCurMapId() == 0) { user.getPlayerInfoManager().setMapId(mapId); mapManager.setCurMapId(mapId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/STableManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/STableManager.java index 4c67ea436..1e67ddd71 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/STableManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/STableManager.java @@ -125,8 +125,8 @@ public class STableManager { public static Map> getMapConfig(Class clazz) throws Exception { Map> map = new HashMap<>(); String tableName = clazz.getAnnotation(Table.class).name(); - int mapType = 101; - for (int i = 101; i < 1000; i++) { + int mapType = 100; + for (int i = 100; i < 1000; i++) { Map mapConf = new HashMap<>(); tableName = tableName + "_"+ i; String path = SysUtil.getPath("conf", "server", tableName + ".txt"); 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 d2112d219..bab8f6bf4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -15,7 +15,7 @@ import java.util.concurrent.CopyOnWriteArrayList; public class CBean2Proto { - public static CommonProto.Player getPlayer(int uid, PlayerManager playerManager, int mapId) { + public static CommonProto.Player getPlayer(int uid, PlayerManager playerManager, int maxMapId, int mapId) { CommonProto.Player player = CommonProto.Player .newBuilder() .setUid(uid) @@ -25,7 +25,7 @@ public class CBean2Proto { .setVipLevel(playerManager.getVipLevel()) .setFamilyId(playerManager.getFamilyId()) .setHead(playerManager.getHead()) - .setCurMapId(mapId == 0 ? 101 : mapId) + .setCurMapId((maxMapId == 0 && mapId == 0) ? 100 : mapId) .build(); return player; }