From 7c7c3e6bb67f10cf3969fa7e7f8ac55dfe68f648 Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Thu, 20 May 2021 15:41:33 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=B9=E6=9D=83=E7=AD=89=E7=BA=A7=E5=A5=96?= =?UTF-8?q?=E5=8A=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Battle/Logic/HardStageEventManager.lua | 1 - luafight/Modules/Battle/Readme.txt | 2 + .../com/ljsd/jieling/globals/BIReason.java | 1 + .../StartHardStageRequestHandler.java | 4 +- .../handler/vip/VipLevelRewardGetHandler.java | 49 +++++++++++++++++++ .../handler/vip/VipLevelRewardHandler.java | 42 ++++++++++++++++ .../logic/mission/main/VipMissionIdsType.java | 7 ++- .../jieling/logic/player/PlayerLogic.java | 21 ++++++++ .../src/main/java/config/SVipLevelConfig.java | 5 ++ 9 files changed, 129 insertions(+), 3 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/vip/VipLevelRewardGetHandler.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/vip/VipLevelRewardHandler.java diff --git a/luafight/Modules/Battle/Logic/HardStageEventManager.lua b/luafight/Modules/Battle/Logic/HardStageEventManager.lua index ee1657c80..42d274399 100644 --- a/luafight/Modules/Battle/Logic/HardStageEventManager.lua +++ b/luafight/Modules/Battle/Logic/HardStageEventManager.lua @@ -38,7 +38,6 @@ function this.OnBuffAdd(caster,target,buff) if caster and target and buff then if caster.camp==0 and buff.type==BuffName.Control then local type=buff.ctrlType - LogError("ctrltype=="..type) if ctrlNumList[type] then ctrlNumList[type]=ctrlNumList[type]+1 else diff --git a/luafight/Modules/Battle/Readme.txt b/luafight/Modules/Battle/Readme.txt index 923ec8145..44a78b2c6 100644 --- a/luafight/Modules/Battle/Readme.txt +++ b/luafight/Modules/Battle/Readme.txt @@ -1,3 +1,5 @@ +v1.0.34 + 1. 战斗去除log v1.0.33 1. 同步被动逻辑 v1.0.32 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java index a6c7dd5d7..7295c2aa0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -331,5 +331,6 @@ public interface BIReason { int TA_SUI_LING_XIAO = 1094;//踏碎凌霄 int HARD_STAGE_GET = 1095; int UP_PRACTICE_LEVEL = 1100;//修行升级 + int SVIP_LEVEL_REWARD = 1101;//特权升级等级奖励 } \ No newline at end of file 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 21e17fde7..79f46b96d 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 @@ -139,7 +139,9 @@ public class StartHardStageRequestHandler extends BaseHandler0){ + Poster.getPoster().dispatchEvent(new ShanHeSheJiTuStarEvent(iSession.getUid(), 2, starSum)); + } ItemUtil.drop(user, dropList.stream().mapToInt(Integer::intValue).toArray(), drop, 1, 0, BIReason.HARD_STAGE_GET); fightStartResponse.setDrop(drop); Map chapt = user.getHardStageManager().getChapterMap(user); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/vip/VipLevelRewardGetHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/vip/VipLevelRewardGetHandler.java new file mode 100644 index 000000000..8c35e89af --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/vip/VipLevelRewardGetHandler.java @@ -0,0 +1,49 @@ +package com.ljsd.jieling.handler.vip; + +import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; +import config.SVipLevelConfig; +import org.springframework.stereotype.Component; +import rpc.protocols.CommonProto; +import rpc.protocols.MessageTypeProto; +import rpc.protocols.PlayerInfoProto; + +@Component +//@Deprecated //vip +public class VipLevelRewardGetHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.VIP_LEVEL_STATE_REWARD_REQUEST; + } + + public void processWithProto(ISession iSession, PlayerInfoProto.VipLevelStateRewardRequset proto) throws Exception { + int rewardId= proto.getVipLevelId(); + SVipLevelConfig sVipLevelConfig = SVipLevelConfig.getsVipLevelConfigMap().get(rewardId); + if(sVipLevelConfig == null){ + return; + } + User user = UserManager.getUser(iSession.getUid()); + if(!user.getUserMissionManager().getVipMissionIdsType().getVipRewardMap().containsKey(rewardId)){ + return; + } + if(user.getUserMissionManager().getVipMissionIdsType().getVipRewardMap().get(rewardId)!=1){ + return; + } + user.getUserMissionManager().getVipMissionIdsType().getVipRewardMap().put(rewardId,2); + + user.getUserMissionManager().setVipMissionIdsType(user.getUserMissionManager().getVipMissionIdsType()); + + int[][] reward = sVipLevelConfig.getReward(); + CommonProto.Drop.Builder drop = ItemUtil.drop(UserManager.getUser(iSession.getUid()), reward, BIReason.SVIP_LEVEL_REWARD); + + PlayerInfoProto.VipLevelStateRewardResponse.Builder fightStartResponse = PlayerInfoProto.VipLevelStateRewardResponse.newBuilder(); + fightStartResponse.setDrop(drop); + MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.VIP_LEVEL_STATE_REWARD_RESPONSE.getNumber(), fightStartResponse.build(), true); + } + +} 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 new file mode 100644 index 000000000..385284ae3 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/vip/VipLevelRewardHandler.java @@ -0,0 +1,42 @@ +package com.ljsd.jieling.handler.vip; + +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.MessageUtil; +import org.springframework.stereotype.Component; +import rpc.protocols.CommonProto; +import rpc.protocols.MessageTypeProto; +import rpc.protocols.PlayerInfoProto; + +import java.util.Map; + +@Component +public class VipLevelRewardHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.VIP_LEVEL_STATE_REQUEST; + } + + public void processWithProto(ISession iSession, PlayerInfoProto.VipLevelStateRequset proto) throws Exception { + + User user = UserManager.getUser(iSession.getUid()); + PlayerInfoProto.VipLevelStateResponse.Builder response = PlayerInfoProto.VipLevelStateResponse.newBuilder(); + Map vipRewardMap = user.getUserMissionManager().getVipMissionIdsType().getVipRewardMap(); + for(int i = user.getPlayerInfoManager().getVipLevel();i>=1;i--){ + if(!vipRewardMap.containsKey(i) && i!=0){ + vipRewardMap.put(i,0); + } + } + user.getUserMissionManager().setVipMissionIdsType(user.getUserMissionManager().getVipMissionIdsType()); + vipRewardMap.forEach((key,val)->{ + CommonProto.KeyVal.Builder keyVal = CommonProto.KeyVal.newBuilder(); + keyVal.setKey(key); + keyVal.setVal(val); + response.addVipState(keyVal); + }); + MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.VIP_LEVEL_STATE_RESPONSE.getNumber(), response.build(), true); + } + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/VipMissionIdsType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/VipMissionIdsType.java index 808da763a..5cc6fe736 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/VipMissionIdsType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/VipMissionIdsType.java @@ -1,5 +1,6 @@ package com.ljsd.jieling.logic.mission.main; +import com.google.common.collect.Maps; import com.ljsd.jieling.logic.dao.CumulationData; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mission.MissionLoigc; @@ -12,10 +13,12 @@ import config.STaskConfig; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.Set; public class VipMissionIdsType extends AbstractMissionType{ + private Map vipRewardMap = Maps.newHashMap();//vip等级奖励领取情况 public VipMissionIdsType(){ } @@ -99,5 +102,7 @@ public class VipMissionIdsType extends AbstractMissionType{ } - + public Map getVipRewardMap() { + return vipRewardMap; + } } 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 560cfcfb3..b4a7c3f5c 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 @@ -1,5 +1,6 @@ package com.ljsd.jieling.logic.player; +import com.google.common.collect.Maps; import com.ljsd.GameApplication; import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig; import com.ljsd.jieling.config.clazzStaticCfg.TaskStaticConfig; @@ -263,6 +264,24 @@ public class PlayerLogic { int vipLevel = playerInfoManager.getVipLevel(); playerInfoManager.setVipLevel(vipLevel+1); + //特权等级奖励 + MaprewardMap = user.getUserMissionManager().getVipMissionIdsType().getVipRewardMap(); + 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(); + rewardMap.forEach((key,val)->{ + CommonProto.KeyVal.Builder keyVal = CommonProto.KeyVal.newBuilder(); + keyVal.setKey(key); + keyVal.setVal(val); + vipLevelStateResponse.addVipState(keyVal); + }); + user.getUserMissionManager().onGameEvent(user,GameEvent.VIP_LEVLUP,playerInfoManager.getVipLevel()); CombatLogic.getInstance().getNewAdventureReward(user, true,TimeUtils.nowInt()); List missionList = new ArrayList<>(); @@ -276,6 +295,8 @@ public class PlayerLogic { Poster.getPoster().dispatchEvent(new UserMainTeamForceEvent(session.getUid())); MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.VIP_LEVELUP_RESPONSE_VALUE,builder.build(),true); ReportUtil.onReportEvent(user, ReportEventEnum.VIP_LEVEL_UP.getType()); + //特权等级奖励 + MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.VIP_LEVEL_STATE_RESPONSE.getNumber(), vipLevelStateResponse.build(), true); } diff --git a/tablemanager/src/main/java/config/SVipLevelConfig.java b/tablemanager/src/main/java/config/SVipLevelConfig.java index 8e8d85235..86316615e 100644 --- a/tablemanager/src/main/java/config/SVipLevelConfig.java +++ b/tablemanager/src/main/java/config/SVipLevelConfig.java @@ -22,6 +22,7 @@ public class SVipLevelConfig implements BaseConfig { private int moneyLimit; private int[][] property; + private int[][] reward; @Override @@ -74,4 +75,8 @@ public class SVipLevelConfig implements BaseConfig { public int[][] getProperty() { return property; } + + public int[][] getReward() { + return reward; + } } \ No newline at end of file