From e74a860a80e82b6e7ea9aae63132df24161755dd Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Mon, 24 May 2021 18:49:46 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E7=89=B9=E6=9D=83=E7=AD=89=E7=BA=A7?= =?UTF-8?q?=E5=A5=96=E5=8A=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/vip/VipLevelRewardHandler.java | 3 ++- .../com/ljsd/jieling/logic/player/PlayerLogic.java | 12 ++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/vip/VipLevelRewardHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/vip/VipLevelRewardHandler.java index 385284ae3..5f704b32c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/vip/VipLevelRewardHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/vip/VipLevelRewardHandler.java @@ -24,9 +24,10 @@ public class VipLevelRewardHandler extends BaseHandler vipRewardMap = user.getUserMissionManager().getVipMissionIdsType().getVipRewardMap(); + //针对已有特权等级玩家的兼容 for(int i = user.getPlayerInfoManager().getVipLevel();i>=1;i--){ if(!vipRewardMap.containsKey(i) && i!=0){ - vipRewardMap.put(i,0); + vipRewardMap.put(i,1); } } user.getUserMissionManager().setVipMissionIdsType(user.getUserMissionManager().getVipMissionIdsType()); 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 3dc60a151..276077fe7 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 @@ -266,12 +266,20 @@ public class PlayerLogic { playerInfoManager.setVipLevel(vipLevel+1); //特权等级奖励 MaprewardMap = user.getUserMissionManager().getVipMissionIdsType().getVipRewardMap(); - if(!rewardMap.containsKey(playerInfoManager.getVipLevel())){ + + for(int i = user.getPlayerInfoManager().getVipLevel();i>=1;i--){ + if(!rewardMap.containsKey(i) && i!=0){ + rewardMap.put(i,1); + } + } + + + /*if(!rewardMap.containsKey(playerInfoManager.getVipLevel())){ rewardMap.put(playerInfoManager.getVipLevel(),0); } if(rewardMap.get(playerInfoManager.getVipLevel())==0){ rewardMap.put(playerInfoManager.getVipLevel(),1); - } + }*/ user.getUserMissionManager().setVipMissionIdsType(user.getUserMissionManager().getVipMissionIdsType()); PlayerInfoProto.VipLevelStateResponse.Builder vipLevelStateResponse = PlayerInfoProto.VipLevelStateResponse.newBuilder(); From e74314c6c7d80e00eb77d7aee4340068a9991e4b Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Tue, 25 May 2021 11:40:43 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=B1=B1=E6=B2=B3=E7=A4=BE=E7=A8=B7?= =?UTF-8?q?=E6=88=90=E5=B0=B1=E4=BB=BB=E5=8A=A1=20=20=E5=BF=83=E9=AD=94?= =?UTF-8?q?=E8=AF=95=E7=82=BC=E6=89=AB=E8=8D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StartHardStageRequestHandler.java | 4 ++ .../mapHandler/SweepBattleRequestHandler.java | 57 +++++++++++++++++++ .../jieling/logic/dao/CumulationData.java | 21 +++++++ .../ljsd/jieling/logic/mission/GameEvent.java | 3 + .../jieling/logic/mission/MissionLoigc.java | 6 ++ .../jieling/logic/mission/MissionType.java | 3 + .../mission/data/DataManagerDistributor.java | 6 ++ .../data/HardStageNodeDataManager.java | 16 ++++++ .../data/HardStageStarsDataManager.java | 16 ++++++ .../event/MissionEventDistributor.java | 12 ++++ 10 files changed, 144 insertions(+) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/SweepBattleRequestHandler.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/HardStageNodeDataManager.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/HardStageStarsDataManager.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hardStage/StartHardStageRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hardStage/StartHardStageRequestHandler.java index 9fa7962f8..bf9952ba8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hardStage/StartHardStageRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hardStage/StartHardStageRequestHandler.java @@ -21,6 +21,7 @@ import com.ljsd.jieling.logic.fight.FightUtil; import com.ljsd.jieling.logic.hardStage.HardStageChapter; import com.ljsd.jieling.logic.hardStage.HardStageLogic; import com.ljsd.jieling.logic.hardStage.HardStageNode; +import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.FightDataUtil; import com.ljsd.jieling.util.MessageUtil; @@ -183,6 +184,9 @@ public class StartHardStageRequestHandler extends BaseHandler{ + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.SWEEP_DEMON_REQUEST; + } + + + @Override + public void processWithProto(ISession iSession, FightInfoProto.SweepDemonRequest proto) throws Exception { + User user = UserManager.getUser(iSession.getUid()); + + int id =proto.getId(); + SFloodConfig sFloodConfig = STableManager.getConfig(SFloodConfig.class).get(id); + if(sFloodConfig == null){ + return; + } + CommonProto.Drop.Builder drop = ItemUtil.drop(user, sFloodConfig.getReward(), BIReason.MONSTERATTACK_REWARD); + boolean freeCount = PlayerLogic.getInstance().check(user, 2025, 1); + if(!freeCount){ + boolean feeCount = PlayerLogic.getInstance().check(user, 2026, 1); + if(!feeCount){ + return; + }else { + user.getPlayerInfoManager().updateVipPrivilage(2026,1); + } + }else { + user.getPlayerInfoManager().updateVipPrivilage(2025,1); + } + FightInfoProto.SweepDemonResponse.Builder res = FightInfoProto.SweepDemonResponse.newBuilder(); + res.setDrop(drop); + MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.SWEEP_DEMON_RESPONSE.getNumber(), res.build(), true); + + } + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java index c2f962904..e4eff7e1b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java @@ -173,6 +173,11 @@ public class CumulationData { // 鸿蒙碑等级 public int hongmeng_tablet_level; + //山河社稷星星数 + public int hardstage_stars; + //山河社稷章节数 + public int hardstage_node; + public Result updateData(MissionType missionType, Object...parm) throws Exception { return DataManagerDistributor.updateData(this, missionType,parm); } @@ -399,4 +404,20 @@ public class CumulationData { public void setHongmeng_tablet_level(int hongmeng_tablet_level) { this.hongmeng_tablet_level = hongmeng_tablet_level; } + + public int getHardstage_stars() { + return hardstage_stars; + } + + public void setHardstage_stars(int hardstage_stars) { + this.hardstage_stars = hardstage_stars; + } + + public int getHardstage_node() { + return hardstage_node; + } + + public void setHardstage_node(int hardstage_node) { + this.hardstage_node = hardstage_node; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java index 4d878ad5f..ac7e6e3b4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java @@ -111,4 +111,7 @@ public enum GameEvent { COW_FLY_SKY_REFRESH,//牛气冲天刷新 COW_FLY_SKY_REWEARD,//牛气冲天奖励 + + HARSTAGE_STARS,//山河社稷图星数 + HARSTAGE_NODE,//山河社稷图通关章节 } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java index d385e2260..eb59b9841 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java @@ -926,6 +926,12 @@ public class MissionLoigc { case EXPEDITION_FLOOR_TIMES: count = cumulationData.expedition_floor_times.get(missionSubType[0]); break; + case HARSTAGE_STARS: + count = cumulationData.hardstage_stars; + break; + case HARSTAGE_NODE: + count = cumulationData.hardstage_node; + break; //100以后类型继承 AbstractDataManager default: count = 0; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java index 220a34548..587185c01 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java @@ -126,6 +126,9 @@ public enum MissionType { HONGMENG_RESONANCE_LATTICE(119),//鸿蒙阵共鸣格子 HONGMENG_TABLET_LEVEL(120),// 鸿蒙碑等级 + + HARSTAGE_STARS(121),//山河社稷图获得总星星数 + HARSTAGE_NODE(122),//山河社稷图通关章节 ; private int missionType; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java index d210db01f..11280f05b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java @@ -145,6 +145,12 @@ public class DataManagerDistributor { // 鸿蒙阵 judges.put(MissionType.HONGMENG_RESONANCE_LATTICE, new HongMengResonanceDataManager()); judges.put(MissionType.HONGMENG_TABLET_LEVEL, new HongMengLevelDataManager()); + + //山河社稷图 + judges.put(MissionType.HARSTAGE_STARS, new HardStageStarsDataManager()); + judges.put(MissionType.HARSTAGE_NODE, new HardStageNodeDataManager()); + + } public static CumulationData.Result updateData(CumulationData data, MissionType missionType, Object...parm) throws Exception { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/HardStageNodeDataManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/HardStageNodeDataManager.java new file mode 100644 index 000000000..6bed97fb3 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/HardStageNodeDataManager.java @@ -0,0 +1,16 @@ +package com.ljsd.jieling.logic.mission.data; + +import com.ljsd.jieling.logic.dao.CumulationData; +import com.ljsd.jieling.logic.mission.MissionType; + +/** + * 山河社稷章节数 + */ +public class HardStageNodeDataManager implements BaseDataManager { + @Override + public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) { + int nums = (int)parm[0]; + data.setHardstage_node(nums); + return new CumulationData.Result(missionType); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/HardStageStarsDataManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/HardStageStarsDataManager.java new file mode 100644 index 000000000..4494c2ec9 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/HardStageStarsDataManager.java @@ -0,0 +1,16 @@ +package com.ljsd.jieling.logic.mission.data; + +import com.ljsd.jieling.logic.dao.CumulationData; +import com.ljsd.jieling.logic.mission.MissionType; + +/** + * 山河社稷星数 + */ +public class HardStageStarsDataManager implements BaseDataManager { + @Override + public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) { + int nums = (int)parm[0]; + data.setHardstage_stars(nums); + return new CumulationData.Result(missionType); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java index 1c6016810..879792840 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java @@ -428,6 +428,18 @@ public class MissionEventDistributor { eventEnumListMap.put(GameEvent.HONGMENG_TABLET_LEVEL, typeList); eventProcessor.put(GameEvent.HONGMENG_TABLET_LEVEL, new CumulationDataEventProcessor()); + //山河社稷图 + typeList = new ArrayList<>(); + typeList.add(MissionType.HARSTAGE_STARS); + eventEnumListMap.put(GameEvent.HARSTAGE_STARS, typeList); + eventProcessor.put(GameEvent.HARSTAGE_STARS, new CumulationDataEventProcessor()); + + typeList = new ArrayList<>(); + typeList.add(MissionType.HARSTAGE_NODE); + eventEnumListMap.put(GameEvent.HARSTAGE_NODE, typeList); + eventProcessor.put(GameEvent.HARSTAGE_NODE, new CumulationDataEventProcessor()); + + } public static final ThreadLocal>> threadMissionChangeList = From 202b170cd5e88ed5cbb0aab37cf412492d31f352 Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Wed, 26 May 2021 11:09:58 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=BF=83=E9=AD=94=E8=AF=95=E7=82=BC?= =?UTF-8?q?=E6=89=AB=E8=8D=A1,=E4=B8=80=E9=94=AE=E6=89=AB=E8=8D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapHandler/SweepBattleRequestHandler.java | 49 ++++++++++++++----- .../jieling/logic/player/PlayerLogic.java | 38 ++++++++++++++ .../ljsd/jieling/logic/store/StoreLogic.java | 10 ++-- .../src/main/java/config/SSpecialConfig.java | 2 + 4 files changed, 83 insertions(+), 16 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/SweepBattleRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/SweepBattleRequestHandler.java index 345e3cf20..13355eb8b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/SweepBattleRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/SweepBattleRequestHandler.java @@ -11,14 +11,21 @@ import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; +import com.sun.deploy.util.ArrayUtil; +import com.sun.tools.javac.util.ArrayUtils; import config.SFloodConfig; +import config.SSpecialConfig; import manager.STableManager; +import org.assertj.core.util.Lists; import org.springframework.stereotype.Component; import rpc.protocols.CommonProto; import rpc.protocols.FightInfoProto; import rpc.protocols.MessageTypeProto; import rpc.protocols.PlayerInfoProto; +import java.util.List; +import java.util.Map; + @Component public class SweepBattleRequestHandler extends BaseHandler{ @Override @@ -30,28 +37,44 @@ public class SweepBattleRequestHandler extends BaseHandler dropList = Lists.newArrayList(); + boolean isOnekey= proto.getOnkeySweep(); + boolean isSuccess = false; + CommonProto.Drop.Builder drop = null; + //判断是否挑战过 + if(user.getMapManager().getLastMonsterAttack()0){ + int[][] reward = new int[times*sFloodConfig.getReward().length][2]; + for(int i =0;i vipInfo = user.getPlayerInfoManager().getVipInfo(); + if(privilageTypeId == 0){ + return 0; + } + List sPrivilegeTypeConfigs = SPrivilegeTypeConfig.privilegeByType.get(privilageTypeId); + List typePrivileges = new ArrayList<>(); + for(SPrivilegeTypeConfig config:sPrivilegeTypeConfigs){ + if(!vipInfo.containsKey(config.getId())){ + continue; + } + typePrivileges.add(config.getId()); + } + if(typePrivileges.isEmpty()){ + return 0; + } + int levelUpdateCount = 0; + for(Integer privilageId:typePrivileges){ + VipInfo info = vipInfo.get(privilageId); + if(info.getEffectTime()!=0&&TimeUtils.now()/1000>info.getEffectTime()){ + continue; + } + int mCount = getMaxCountByPrivilege(user,privilageId); + if(mCount==-1){ + return 0; + } + if(info.getCount()>= mCount){ + continue; + } + if(info.getEffectTime()!=0&&TimeUtils.now()/1000>info.getEffectTime()){ + continue; + } + levelUpdateCount+=mCount-info.getCount(); + user.getPlayerInfoManager().updateVipPrivilage(privilageId, mCount-info.getCount()); + } + return levelUpdateCount; + } // private boolean priviliageCheck(User user, int privilageTypeId, int checkNum,boolean isUpdate){ // Map vipInfo = user.getPlayerInfoManager().getVipInfo(); // if(privilageTypeId == 0){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java index ec4962334..c19e611d5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java @@ -514,7 +514,9 @@ public class StoreLogic implements IEventHandler { if(sStoreConfig.getOpenPrivilege()!=null){ PlayerInfoProto.PrivilegeIndication.Builder indication = PlayerInfoProto.PrivilegeIndication.newBuilder(); int[] openPrivilege = sStoreConfig.getOpenPrivilege(); - for(int privilege:openPrivilege){ + + for(int i=0;i