From 4471d842e1aa9f49349c0d6711803926dde3e223 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 7 Aug 2019 15:35:34 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=97=A0=E5=B0=BD=E5=BC=80=E5=90=AF?= =?UTF-8?q?=E5=9C=B0=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; + } +} From b87d7a370e3f1fec06078841dd533d27868144e6 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Wed, 7 Aug 2019 16:30:09 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix=20=E5=90=88=E6=88=90=E8=8B=B1=E9=9B=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/map/MapLogic.java | 11 ++++--- .../ljsd/jieling/logic/dao/PlayerManager.java | 33 ------------------- .../ljsd/jieling/logic/dao/UserManager.java | 3 -- .../ljsd/jieling/logic/hero/HeroLogic.java | 2 +- 4 files changed, 7 insertions(+), 42 deletions(-) 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..d37a3c247 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 @@ -465,7 +465,7 @@ public class MapLogic { public void updateMap(ISession session, int curXY, int triggerXY, List cells, MessageTypeProto.MessageType messageType) throws Exception { - LOGGER.info("updateMap() curXY=>{},triggerXY=>{}", curXY, triggerXY); + LOGGER.info("updateMap() curXY=>{},triggerXY=>{},cells={}", curXY, triggerXY,cells); if (updateMapByOnlyConsumeActionPower(session, curXY, triggerXY, cells, messageType)) { return; } @@ -480,6 +480,7 @@ public class MapLogic { int uid = session.getUid(); User user = UserManager.getUser(uid); MapManager mapManager = user.getMapManager(); + int lastXY = mapManager.getCurXY(); if (mapManager.getMapInfo() == null) { LOGGER.info("mapManager.getMapInfo() == null"); MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); @@ -562,12 +563,12 @@ public class MapLogic { // LOGGER.info("updateMap() uid=>{} mapId =>{} eventId=>{}", uid, mapManager.getCurMapId(), cell.getEventId()); mapManager.updateFoodBufferByStep(cells.size()); if(!cells.isEmpty()){ - int lastXY = cells.get(0); if(cells.size() >2){ lastXY = cells.get(cells.size()-2); } - mapManager.setLastXY(lastXY); } + mapManager.setLastXY(lastXY); + LOGGER.info("the uid+{},the lastXy={}",uid,lastXY); MessageUtil.sendMessage(session, 1, messageType.getNumber(), mapUpdateResponse.build(), true); } @@ -1176,7 +1177,7 @@ public class MapLogic { } } CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); - FightInfoProto.FightEndResponse fightEndResponse = FightInfoProto.FightEndResponse + FightInfoProto.FastFightResponse build = FightInfoProto.FastFightResponse .newBuilder() .setResult(resultCode) .setEnventDrop(dropBuilder) @@ -1185,7 +1186,7 @@ public class MapLogic { .setLastXY(mapManager.getLastXY()) .build(); mapManager.setCurXY(mapManager.getLastXY()); - MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse, true); + MessageUtil.sendMessage(session, 1, messageType.getNumber(), build, true); return; } List team = user.getTeamPosManager().getTeamPosForHero().get(teamId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java index 0c7afbe80..196152f1d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java @@ -34,12 +34,6 @@ public class PlayerManager extends MongoBase { private String head; - private long gold; - - private int gem; - - private int chargeGem; - private int mapId; private long createTime; //创建时间 @@ -157,33 +151,6 @@ public class PlayerManager extends MongoBase { this.head = head; } - public long getGold() { - return gold; - } - - public void setGold(long gold) throws Exception { - updateString("gold", gold); - this.gold = gold; - } - - public int getGem() { - return gem; - } - - public void setGem(int gem) throws Exception { - updateString("gem", gem); - this.gem = gem; - } - - public int getChargeGem() { - return chargeGem; - } - - public void setChargeGem(int chargeGem) throws Exception { - updateString("chargeGem", chargeGem); - this.chargeGem = chargeGem; - } - public int getMapId() { return mapId; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java index f0fbbcd63..eb1bbd909 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java @@ -63,9 +63,6 @@ public class UserManager { playerManager.setLevel(1); playerManager.setExp(0); playerManager.setHead("image_head_1"); - playerManager.setGold(100000l); - playerManager.setGem(9999); - playerManager.setChargeGem(666); playerManager.updateGuidePoint(1,1); playerManager.setCreateTime(now); playerManager.setLoginTime(now); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index 8c44279bb..2b37d9883 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -1258,7 +1258,7 @@ public class HeroLogic { .newBuilder() .setDrop(drop) .build(); - user.getUserMissionManager().onGameEvent(user,GameEvent.COMPOS_HERO,sItem.getRewardGroup(),composeNum); + user.getUserMissionManager().onGameEvent(user,GameEvent.COMPOS_HERO,drop.getHero(0).getHeroId(),composeNum); MessageUtil.sendMessage(iSession,1,msgId,heroComposeResponse,true); } public String getQuality(int natural) { From 4105d7359c728e176a8c2c419101880f571b5a77 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Wed, 7 Aug 2019 17:32:51 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E9=82=AE=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/config/STreasureTaskConfig.java | 2 +- .../logic/activity/AbstractActivity.java | 6 ++++ .../jieling/logic/activity/ActivityLogic.java | 2 ++ .../logic/activity/DefaultEmptyActivity.java | 30 +++++++++++++++++++ .../jieling/logic/activity/IActivity.java | 2 ++ .../jieling/logic/player/PlayerLogic.java | 6 +++- 6 files changed, 46 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/STreasureTaskConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/STreasureTaskConfig.java index 1f414ac8b..866e7a17a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/STreasureTaskConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/STreasureTaskConfig.java @@ -51,7 +51,7 @@ public class STreasureTaskConfig implements BaseConfig { treasureTaskConfigByActivityMap.get(activityId).add(sTreasureTaskConfig); sTreasureTaskConfigListByTypeMapTmp.get(sTreasureTaskConfig.getTaskType()).add(sTreasureTaskConfig); if(sTreasureTaskConfig.getTaskType() == MissionType.SENVER_HAPPY.getMissionTypeValue()){ - + sTreasureSevenTaskConfigByActivityMapTmp.put(sTreasureTaskConfig.getActivityId(),sTreasureTaskConfig); } } sTreasureTaskConfigListByActivityMap = treasureTaskConfigByActivityMap; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java index d4da74132..054138946 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java @@ -158,6 +158,12 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { } + @Override + public void onActivityEndOnMySelf(User user) throws Exception { + + } + + public List getAllMissInfo(ActivityMission activityMission) { return getAllMissInfo(activityMission, null); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index c1348b198..586509aad 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -144,6 +144,7 @@ public class ActivityLogic { ActivityMission activityMission = activityMissionMap.get(activityId); if (activityMission != null) { activityManager.removeActivity(activityId); + ActivityTypeEnum.getActicityType(sGlobalActivity.getId()).onActivityEndOnMySelf(user); LOGGER.info("the uid={},remove the activity id ={}", user.getId(), activityId); if (builder != null) { builder.addCloseActivityId(activityId); @@ -162,6 +163,7 @@ public class ActivityLogic { ActivityMission activityMission = activityMissionMap.get(activityId); if (activityMission != null) { activityManager.removeActivity(activityId); + ActivityTypeEnum.getActicityType(sGlobalActivity.getId()).onActivityEndOnMySelf(user); LOGGER.info("the uid={},remove the activity id ={}", user.getId(), activityId); if (builder != null) { builder.addCloseActivityId(activityId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DefaultEmptyActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DefaultEmptyActivity.java index 5cf53aa07..7fb6a73d6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DefaultEmptyActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DefaultEmptyActivity.java @@ -1,9 +1,18 @@ package com.ljsd.jieling.logic.activity; +import com.ljsd.jieling.config.SErrorCodeEerverConfig; import com.ljsd.jieling.config.SGlobalActivity; +import com.ljsd.jieling.config.SSevenDaysScore; +import com.ljsd.jieling.config.STreasureTaskConfig; +import com.ljsd.jieling.core.GlobalsDef; +import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.logic.dao.ActivityMission; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.logic.mission.GameEvent; +import com.ljsd.jieling.logic.mission.main.TreasureMissionType; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; import java.util.ArrayList; @@ -25,4 +34,25 @@ public class DefaultEmptyActivity extends AbstractActivity{ user.getActivityManager().setSenvenTime(endTime); } } + + @Override + public void onActivityEndOnMySelf(User user) throws Exception { + SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); + if(sGlobalActivity.getType() == ActivityType.SERVERHAPPY){ + STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureSevenTaskConfigByActivityMap.get(id); + TreasureMissionType sevenHappyMissionType = user.getUserMissionManager().getSevenHappyMissionType(); + if(!sevenHappyMissionType.getRewardedMissionIds().get(sTreasureTaskConfig.getId())){ + int senvenScores = user.getUserMissionManager().getSevenHappyCumulationData().senvenScores; + sevenHappyMissionType.getDoingMissionIds().remove(sTreasureTaskConfig.getId()); + sevenHappyMissionType.getFinishMissionIds().remove(sTreasureTaskConfig.getId()); + sevenHappyMissionType.getRewardedMissionIds().set(sTreasureTaskConfig.getId()); + user.getUserMissionManager().setSevenHappyMissionType(sevenHappyMissionType); + SSevenDaysScore sSevenDaysScore = SSevenDaysScore.SSevenDaysScoreByActivityIdAndScoreMap.get(id).get(senvenScores); + String mailReward = ItemUtil.getMailReward(sSevenDaysScore.getReward()); + String title=SErrorCodeEerverConfig.getI18NMessage("opencarnival_activity_"+id+"_title"); + String content = SErrorCodeEerverConfig.getI18NMessage("opencarnival_activity_"+id+"_txt"); + MailLogic.getInstance().sendMail(user.getId(),title,content,mailReward,(int)(System.currentTimeMillis()/1000), Global.MAIL_EFFECTIVE_TIME); + } + } + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/IActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/IActivity.java index cd02330de..72bbbbbdc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/IActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/IActivity.java @@ -42,6 +42,8 @@ public interface IActivity { */ void onActivityEnd() throws Exception; + public void onActivityEndOnMySelf(User user) throws Exception; + List getAllMissInfo(ActivityMission activityMission, Set filter); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 571ef935a..613ebbac0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -402,8 +402,12 @@ public class PlayerLogic { return; } STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureSevenTaskConfigByActivityMap.get(treasureActivityId); - int senvenScores = user.getUserMissionManager().getSevenHappyCumulationData().senvenScores; TreasureMissionType sevenHappyMissionType = user.getUserMissionManager().getSevenHappyMissionType(); + if(sevenHappyMissionType.getRewardedMissionIds().get(sTreasureTaskConfig.getId())){ + MessageUtil.sendErrorResponse(iSession,0,msgId,"奖励已领取"); + return; + } + int senvenScores = user.getUserMissionManager().getSevenHappyCumulationData().senvenScores; sevenHappyMissionType.getDoingMissionIds().remove(sTreasureTaskConfig.getId()); sevenHappyMissionType.getFinishMissionIds().remove(sTreasureTaskConfig.getId()); sevenHappyMissionType.getRewardedMissionIds().set(sTreasureTaskConfig.getId());