From 4471d842e1aa9f49349c0d6711803926dde3e223 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 7 Aug 2019 15:35:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A0=E5=B0=BD=E5=BC=80=E5=90=AF=E5=9C=B0?= =?UTF-8?q?=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/map/EndlessMapInfo.java | 11 +++++++ .../ljsd/jieling/handler/map/EventType.java | 1 + .../ljsd/jieling/handler/map/MapLogic.java | 14 +++++++++ .../ljsd/jieling/handler/map/MapManager.java | 15 ++++++---- .../map/behavior/FourtySevenBehavior.java | 29 +++++++++++++++++++ 5 files changed, 65 insertions(+), 5 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtySevenBehavior.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EndlessMapInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EndlessMapInfo.java index 77f391b9d..a4a32dc85 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EndlessMapInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EndlessMapInfo.java @@ -2,6 +2,7 @@ package com.ljsd.jieling.handler.map; import java.util.HashMap; import java.util.Map; +import java.util.Set; public class EndlessMapInfo { private int curMapId; @@ -16,6 +17,8 @@ public class EndlessMapInfo { private int consumeExecution; + private Set openMap; + public int getCurMapId() { return curMapId; } @@ -68,4 +71,12 @@ public class EndlessMapInfo { public void setConsumeExecution(int consumeExecution) { this.consumeExecution = consumeExecution; } + + public Set getOpenMap() { + return openMap; + } + + public void setOpenMap(Set openMap) { + this.openMap = openMap; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EventType.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EventType.java index 25c0ed861..1aaeef02f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EventType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EventType.java @@ -108,6 +108,7 @@ public class EventType { public static final int fourtyFour = 44; public static final int fourtyfive = 45; public static final int fourtySix = 46; + public static final int fourtySeven = 47; public static final int updatePonintEvent = 1; 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 73eeb57fe..b180e1a21 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 @@ -2832,6 +2832,19 @@ public class MapLogic { } Map endlessHeroInfo = endlessMapInfo.getEndlessHeroInfo(); MapInfoProto.GetEndlessHeroResponse.Builder response = MapInfoProto.GetEndlessHeroResponse.newBuilder(); + //已开启地图处理 + Map sEndlessMapConfigMap = SEndlessMapConfig.sEndlessMapConfigMap; + if(endlessMapInfo.getOpenMap()==null||endlessMapInfo.getOpenMap().size()<1){ + Set openMap = new HashSet<>(); + for(Map.Entry entry :sEndlessMapConfigMap.entrySet()){ + openMap.add(entry.getKey()); + break; + } + mapManager.updateEndlessOpenedMap(openMap); + } + for(Integer map:mapManager.getEndlessMapInfo().getOpenMap()){ + response.addOpenMapId(map); + } for(Map.Entry heroEntry : heroManager.getHeroMap().entrySet()) { if(heroEntry.getValue().getLevel()<20){ continue; @@ -2880,6 +2893,7 @@ public class MapLogic { user.getTeamPosManager().updateTeamPosByTeamId(401,team); } + MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java index 83f2beafd..b56e1cd33 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java @@ -2,11 +2,9 @@ package com.ljsd.jieling.handler.map; import com.ljsd.common.mogodb.MongoBase; -import com.ljsd.jieling.config.SChallengeSetting; import com.ljsd.jieling.config.SGameSetting; import com.ljsd.jieling.config.SVipLevelConfig; import com.ljsd.jieling.core.GlobalsDef; -import com.ljsd.jieling.core.VipPrivilegeType; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.handler.mission.Mission; @@ -15,10 +13,13 @@ import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean; import com.ljsd.jieling.logic.dao.Item; import com.ljsd.jieling.logic.dao.PlayerManager; import com.ljsd.jieling.logic.dao.root.User; -import com.ljsd.jieling.util.*; +import com.ljsd.jieling.util.MathUtils; +import com.ljsd.jieling.util.TimeUtils; -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; public class MapManager extends MongoBase { @@ -738,6 +739,10 @@ public class MapManager extends MongoBase { updateString("endlessMapInfo.consumeExecution",endlessMapInfo.getConsumeExecution()); } + public void updateEndlessOpenedMap(Set mapIds){ + endlessMapInfo.setOpenMap(mapIds); + updateString("endlessMapInfo.openMap",mapIds); + } public int getLastXY() { return lastXY; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtySevenBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtySevenBehavior.java new file mode 100644 index 000000000..5daf6af3d --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtySevenBehavior.java @@ -0,0 +1,29 @@ +package com.ljsd.jieling.handler.map.behavior; + +import com.ljsd.jieling.handler.map.EventType; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.protocols.MapInfoProto; +import org.springframework.stereotype.Component; + +import java.util.Set; + +@Component +public class FourtySevenBehavior extends BaseBehavior { + @Override + public int getBehaviorType() { + return EventType.fourtySeven; + } + + @Override + public boolean process(int optionId, User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { + int targetMapId = behaviorTypeValues[0][0]; + Set openMap = user.getMapManager().getEndlessMapInfo().getOpenMap(); + if(openMap.contains(targetMapId)){ + return true; + }else{ + openMap.add(targetMapId); + user.getMapManager().updateEndlessOpenedMap(openMap); + } + return true; + } +}