From 416a93b98143e70a818dcef574e7141aa00a98db Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 20 Apr 2021 10:25:38 +0800 Subject: [PATCH 01/17] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E6=8E=92=E8=A1=8C=E6=A6=9C=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/rank/rankImpl/CarDealyGuildRank.java | 8 -------- .../rank/rankImpl/DeathPathEveryGuildRank.java | 15 +-------------- .../rank/rankImpl/DeathPathTotalGuildRank.java | 10 +--------- .../logic/rank/rankImpl/GuildSheJiScoreRank.java | 6 +----- 4 files changed, 3 insertions(+), 36 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CarDealyGuildRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CarDealyGuildRank.java index 206cf0309..ddd65640b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CarDealyGuildRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CarDealyGuildRank.java @@ -27,10 +27,6 @@ public class CarDealyGuildRank extends AbstractRank{ @Override protected void getOptional(int index, ZSetOperations.TypedTuple data, PlayerInfoProto.RankResponse.Builder builder) throws Exception { - User everyUser = UserManager.getUser(Integer.parseInt(data.getValue()), true); - if (everyUser == null){ - return; - } String value = data.getValue(); int guildId = Integer.parseInt(value); GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId); @@ -46,10 +42,6 @@ public class CarDealyGuildRank extends AbstractRank{ CommonProto.UserRank everyRank = CommonProto.UserRank.newBuilder() .setGuildName(familyName) .setRankInfo(everyRankInfo) - .setSex(everyUser.getPlayerInfoManager().getSex()) - .setUserSkin(everyUser.getPlayerInfoManager().getUserSkin()) - .setUserTitle(everyUser.getPlayerInfoManager().getUserTitle()) - .setUserMount(everyUser.getPlayerInfoManager().getUserMount()) .build(); builder.addRanks(everyRank); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/DeathPathEveryGuildRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/DeathPathEveryGuildRank.java index d162341f0..949cbff9d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/DeathPathEveryGuildRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/DeathPathEveryGuildRank.java @@ -22,15 +22,6 @@ public class DeathPathEveryGuildRank extends AbstractRank { protected void getOptional(int index, ZSetOperations.TypedTuple data, PlayerInfoProto.RankResponse.Builder builder) { GuildInfo guildInfo = GuilidManager.guildInfoMap.get(Integer.parseInt(data.getValue())); - User everyUser = null; - try{ - everyUser = UserManager.getUser(Integer.parseInt(data.getValue()), true); - if (everyUser == null){ - return; - } - }catch(Exception e){ - e.printStackTrace(); - } CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder() .setRank(index) .setParam1(getParam1(data.getScore())) @@ -39,11 +30,7 @@ public class DeathPathEveryGuildRank extends AbstractRank { CommonProto.UserRank.Builder everyRank = CommonProto.UserRank.newBuilder() .setUid(guildInfo.getId()) .setGuildName(guildInfo.getName()) - .setRankInfo(everyRankInfo) - .setSex(everyUser.getPlayerInfoManager().getSex()) - .setUserSkin(everyUser.getPlayerInfoManager().getUserSkin()) - .setUserTitle(everyUser.getPlayerInfoManager().getUserTitle()) - .setUserMount(everyUser.getPlayerInfoManager().getUserMount()); + .setRankInfo(everyRankInfo); builder.addRanks(everyRank); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/DeathPathTotalGuildRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/DeathPathTotalGuildRank.java index 3b0890cab..aca685928 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/DeathPathTotalGuildRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/DeathPathTotalGuildRank.java @@ -40,10 +40,6 @@ public class DeathPathTotalGuildRank extends AbstractRank{ } protected void getOptional(int index, ZSetOperations.TypedTuple data, PlayerInfoProto.RankResponse.Builder builder) throws Exception { - User everyUser = UserManager.getUser(Integer.parseInt(data.getValue()), true); - if (everyUser == null){ - return; - } GuildInfo guildInfo = GuilidManager.guildInfoMap.get(Integer.parseInt(data.getValue())); DeathChallengeCount countInfo = RedisUtil.getInstence().get(RedisKey.DEATH_PATH_TOTAL_CHALLENGE_COUNT, String.valueOf(guildInfo.getId()), DeathChallengeCount.class); CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder() @@ -54,11 +50,7 @@ public class DeathPathTotalGuildRank extends AbstractRank{ CommonProto.UserRank.Builder everyRank = CommonProto.UserRank.newBuilder() .setUid(guildInfo.getId()) .setGuildName(guildInfo.getName()) - .setRankInfo(everyRankInfo) - .setSex(everyUser.getPlayerInfoManager().getSex()) - .setUserSkin(everyUser.getPlayerInfoManager().getUserSkin()) - .setUserTitle(everyUser.getPlayerInfoManager().getUserTitle()) - .setUserMount(everyUser.getPlayerInfoManager().getUserMount()); + .setRankInfo(everyRankInfo); builder.addRanks(everyRank); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/GuildSheJiScoreRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/GuildSheJiScoreRank.java index a85d738ea..b4e80dfea 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/GuildSheJiScoreRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/GuildSheJiScoreRank.java @@ -46,11 +46,7 @@ public class GuildSheJiScoreRank extends AbstractRank { .setUid(user.getId()) .setLevel(user.getPlayerInfoManager().getLevel()) .setGuildName(guildInfo.getName()) - .setRankInfo(everyRankInfo) - .setSex(user.getPlayerInfoManager().getSex()) - .setUserSkin(user.getPlayerInfoManager().getUserSkin()) - .setUserTitle(user.getPlayerInfoManager().getUserTitle()) - .setUserMount(user.getPlayerInfoManager().getUserMount()); + .setRankInfo(everyRankInfo); builder.addRanks(everyRank); } From ffbd9ac4014dcfce3416e2b214842f93c649d4dc Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 20 Apr 2021 10:45:37 +0800 Subject: [PATCH 02/17] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E7=A5=AD=E7=A5=80=20?= =?UTF-8?q?=E6=8F=B4=E5=8A=A9=20=E6=89=93=E5=8D=B0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/thread/task/MinuteTask.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java index 25ce52e99..9cb88110a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java @@ -197,7 +197,7 @@ public class MinuteTask extends Thread { for(Map.Entry guildInfoEntry:guildInfoMap.entrySet()){ RedisUtil.getInstence().del(RedisKey.getKey(RedisKey.GUILD_RED_PACKAGE_RANK,String.valueOf(guildInfoEntry.getKey()),false)); guildInfoEntry.getValue().reSetFete(); - + LOGGER.info("{}更新公会祭祀完毕",guildInfoEntry.getValue().getName()); SimpleTransaction transaction = SimpleTransaction.current(); GuildInfo guildInfo = guildInfoEntry.getValue(); Set sendUids = new HashSet<>(); @@ -218,6 +218,8 @@ public class MinuteTask extends Thread { guildMyInfo.setGuildHelpReward(false); guildMyInfo.setGuildHelpTime(0); } + LOGGER.info("{}更新公会援助完毕",guildInfoEntry.getValue().getName()); + SimpleTransaction.remove(); //处理公会援助信息 From ed597fd9032b1bdd659dc3194ff65a86768927b9 Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 19 Apr 2021 16:48:00 +0800 Subject: [PATCH 03/17] =?UTF-8?q?=E5=A4=A7=E9=97=B9=E5=A4=A9=E5=AE=AB,?= =?UTF-8?q?=E6=8B=9B=E5=8B=9F=E6=98=9F=E7=BA=A7=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/hero/HeroLogic.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) 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 91b42e349..413007f0c 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 @@ -1238,7 +1238,7 @@ public class HeroLogic{ // 聚合::根据openlevel倒序,输出list List collect = rankUpConfigs.stream().sorted(Comparator.comparing(SCHeroRankUpConfig::getOpenLevel).reversed()).collect(Collectors.toList()); for(SCHeroRankUpConfig scHeroRankUpConfig : collect){ - if (heroLevel >= scHeroRankUpConfig.getOpenLevel()){ + if (heroLevel > scHeroRankUpConfig.getOpenLevel()){ if (scHeroRankUpConfig.getOpenStar() > 10){ continue; } @@ -1265,7 +1265,7 @@ public class HeroLogic{ // 聚合:根据openlevel倒叙排序,输出成list List collect = rankUpConfigs.stream().sorted(Comparator.comparing(SCHeroRankUpConfig::getOpenLevel).reversed()).collect(Collectors.toList()); for(SCHeroRankUpConfig scHeroRankUpConfig : collect){ - if (heroLevel >= scHeroRankUpConfig.getLimitLevel()){ + if (heroLevel > scHeroRankUpConfig.getLimitLevel()){ return scHeroRankUpConfig.getId(); } } @@ -1292,9 +1292,11 @@ public class HeroLogic{ // 聚合::根据openlevel倒序,输出list List collect = rankUpStar.stream().sorted(Comparator.comparing(SCHeroRankUpConfig::getOpenLevel).reversed()).collect(Collectors.toList()); for(SCHeroRankUpConfig val : collect){ - if (heroLevel >= val.getOpenLevel()){ + if (heroLevel > val.getOpenLevel()){ + // 计算星级需要+1操作 + int result = val.getOpenStar()+1; // 机器人生成星级,最高10星 - return val.getOpenStar()>10?10:val.getOpenStar(); + return result>10?10:result; } } } @@ -1306,7 +1308,7 @@ public class HeroLogic{ // 聚合:根据openlevel倒叙排序,输出成list List collect = rankUpBreak.stream().sorted(Comparator.comparing(SCHeroRankUpConfig::getOpenLevel).reversed()).collect(Collectors.toList()); for(SCHeroRankUpConfig val : collect){ - if (heroLevel >= val.getLimitLevel()){ + if (heroLevel > val.getLimitLevel()){ return val.getOpenStar()>10?10:val.getOpenStar(); } } From 305f2879ed266305c61b1adb8b8feb44a77c21a6 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Mon, 19 Apr 2021 20:20:25 +0800 Subject: [PATCH 04/17] =?UTF-8?q?=E7=A4=BE=E7=A8=B7=E5=A4=A7=E5=85=B8?= =?UTF-8?q?=E6=8E=92=E8=A1=8C=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/rank/rankImpl/GuildSheJiScoreRank.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/GuildSheJiScoreRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/GuildSheJiScoreRank.java index b4e80dfea..a85d738ea 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/GuildSheJiScoreRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/GuildSheJiScoreRank.java @@ -46,7 +46,11 @@ public class GuildSheJiScoreRank extends AbstractRank { .setUid(user.getId()) .setLevel(user.getPlayerInfoManager().getLevel()) .setGuildName(guildInfo.getName()) - .setRankInfo(everyRankInfo); + .setRankInfo(everyRankInfo) + .setSex(user.getPlayerInfoManager().getSex()) + .setUserSkin(user.getPlayerInfoManager().getUserSkin()) + .setUserTitle(user.getPlayerInfoManager().getUserTitle()) + .setUserMount(user.getPlayerInfoManager().getUserMount()); builder.addRanks(everyRank); } From 0ac4200f7c1c7fdddb35f2ea3d18052f2c92b8f4 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Fri, 30 Apr 2021 22:57:24 +0800 Subject: [PATCH 05/17] =?UTF-8?q?=E8=80=81=E7=8E=A9=E5=AE=B6=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/dao/PlayerManager.java | 2 +- .../com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) 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 65036a3d1..32437ec97 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 @@ -74,7 +74,7 @@ public class PlayerManager extends MongoBase { private Set reds = new CopyOnWriteArraySet<>(); // private RechargeInfo rechargeInfo; - private NewRechargeInfo newRechargeInfo = new NewRechargeInfo(); + private NewRechargeInfo newRechargeInfo; private Map monthCard = new HashMap<>();//月卡信息 private Set monthCardDailyTake = new HashSet<>(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index f21c09411..72b90a666 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -67,15 +67,15 @@ public class BuyGoodsNewLogic { * 登录刷新礼包 */ public static boolean refreshWelfareState(User user) throws Exception { - dailyRefresh(user); - sendDailyMailReward(user); - boolean needChange = false; - List pAddList = new ArrayList<>(); NewRechargeInfo info = user.getPlayerInfoManager().getNewRechargeInfo(); if(info == null){ info = new NewRechargeInfo(); user.getPlayerInfoManager().setNewRechargeInfo(info); } + dailyRefresh(user); + sendDailyMailReward(user); + boolean needChange = false; + List pAddList = new ArrayList<>(); for(Map.Entry entry : SRechargeCommodityNewConfig.configMap.entrySet()){ //获取处理类 RechargeHandler rechargeHandler = getRechargeHandler(entry.getValue().getOtype()); From 575accafa7e9c3c99f092c70a19c178745e6d829 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 4 May 2021 10:22:06 +0800 Subject: [PATCH 06/17] =?UTF-8?q?=E7=B4=AF=E8=AE=A1=E5=85=85=E5=80=BC?= =?UTF-8?q?=E9=92=B1=E6=95=B0=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reportBeans_37/Repot37EventUtil.java | 3 +- .../jieling/handler/GetPlayerInfoHandler.java | 2 +- .../reportEvent/ChargeAmountEventHandler.java | 5 ++-- .../ljsd/jieling/logic/dao/PlayerManager.java | 8 ++--- .../ljsd/jieling/logic/dao/RechargeInfo.java | 29 +++++++++---------- .../jieling/logic/store/BuyGoodsNewLogic.java | 13 +++++++++ .../ljsd/jieling/logic/store/StoreLogic.java | 2 +- 7 files changed, 38 insertions(+), 24 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/dataReport/reportBeans_37/Repot37EventUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/dataReport/reportBeans_37/Repot37EventUtil.java index 685be7679..147b820a6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/dataReport/reportBeans_37/Repot37EventUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/dataReport/reportBeans_37/Repot37EventUtil.java @@ -4,6 +4,7 @@ import com.google.gson.Gson; import com.ljsd.jieling.config.json.SDK37Constans; import com.ljsd.jieling.config.reportData.DataMessageUtils; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; import com.ljsd.jieling.util.MD5Util; import util.TimeUtils; @@ -38,7 +39,7 @@ public class Repot37EventUtil { report37RoleLeveBean.setRole_grade_u_time(TimeUtils.getTimeStamp(System.currentTimeMillis())); report37RoleLeveBean.setRole_grade_desc("null"); report37RoleLeveBean.setBalance("null");//todo - report37RoleLeveBean.setTotal_pay_amoun(String.valueOf(user.getPlayerInfoManager().getNewRechargeInfo().getRr()*100)); + report37RoleLeveBean.setTotal_pay_amoun(String.valueOf(BuyGoodsNewLogic.getAllAmount(user) *100)); report37RoleLeveBean.setTotal_online_time(user.getPlayerInfoManager().getOnlineTime()); report37RoleLeveBean.setGuild_id("");//todo report37RoleLeveBean.setGuild_name("0");//todo 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 85aa7614f..d3abd1bb9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -205,7 +205,7 @@ public class GetPlayerInfoHandler extends BaseHandler{ .setQuestionState(questState) .setSoulEquipPool(equipPool) .addAllPlayedMapTypes(mapManager.getPlayedMapType()) - .setAmount(newRechargeInfo.getRr()) + .setAmount(BuyGoodsNewLogic.getAllAmount(user)) .setVipDaily(playerInfoManager.getHadTakeDailyBoxVip()) .setMissingRefreshCount(vipPrivilageValue) .addAllMonthinfos(PlayerLogic.getInstance().getMonthCardInfo(user)) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/reportEvent/ChargeAmountEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/reportEvent/ChargeAmountEventHandler.java index 207c4138b..b495bcb65 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/reportEvent/ChargeAmountEventHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/reportEvent/ChargeAmountEventHandler.java @@ -1,6 +1,7 @@ package com.ljsd.jieling.ktbeans.reportEvent; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; import java.util.Date; import java.util.HashMap; @@ -19,10 +20,10 @@ public class ChargeAmountEventHandler extends CommonEventHandler { Map setOnceProperties = new HashMap<>(); - setProperties.put("charge_amount",user.getPlayerInfoManager().getNewRechargeInfo().getRr()); + setProperties.put("charge_amount", BuyGoodsNewLogic.getAllAmount(user)); setProperties.put("last_recharge_time",new Date()); setOnceProperties.put("first_charge_time",new Date()); - setOnceProperties.put("first_charge_amount",user.getPlayerInfoManager().getNewRechargeInfo().getRr()); + setOnceProperties.put("first_charge_amount",BuyGoodsNewLogic.getAllAmount(user)); userProperties.put(1,setProperties); userProperties.put(2,setOnceProperties); return userProperties; 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 32437ec97..a4604eb8c 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 @@ -73,7 +73,7 @@ public class PlayerManager extends MongoBase { private Set reds = new CopyOnWriteArraySet<>(); -// private RechargeInfo rechargeInfo; + private RechargeInfo rechargeInfo; private NewRechargeInfo newRechargeInfo; private Map monthCard = new HashMap<>();//月卡信息 private Set monthCardDailyTake = new HashSet<>(); @@ -467,9 +467,9 @@ public class PlayerManager extends MongoBase { removeString(getMongoKey() +".vipInfo."+privilageId); } -// public RechargeInfo getRechargeInfo() { -// return rechargeInfo; -// } + public RechargeInfo getRechargeInfo() { + return rechargeInfo; + } // // public void setRechargeInfo(RechargeInfo rechargeInfo) { // rechargeInfo.init(this.getRootId(), getMongoKey()+".rechargeInfo"); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/RechargeInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/RechargeInfo.java index 73d41210a..de6f631f4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/RechargeInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/RechargeInfo.java @@ -1,15 +1,14 @@ -//package com.ljsd.jieling.logic.dao; +package com.ljsd.jieling.logic.dao; + +import com.ljsd.common.mogodb.MongoBase; +import io.netty.util.internal.ConcurrentSet; +import org.springframework.data.annotation.Transient; + +import java.util.*; + +public class RechargeInfo extends MongoBase{ // -//import com.ljsd.common.mogodb.MongoBase; -//import config.SRechargeCommodityConfig; -//import io.netty.util.internal.ConcurrentSet; -//import org.springframework.data.annotation.Transient; -// -//import java.util.*; -// -//public class RechargeInfo extends MongoBase{ -// -// private double saveAmt;//累计充值 + private double saveAmt;//累计充值; // // private double monthSaveAmt ; //月卡累计总额 // private double smonthSaveAmt ; //豪华月卡累计总额 @@ -144,9 +143,9 @@ // } // // -// public double getSaveAmt() { -// return saveAmt; -// } + public double getSaveAmt() { + return saveAmt; + } // // public long getCreateTime() { // return createTime; @@ -270,4 +269,4 @@ // } // // -//} +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index 72b90a666..fd380dba4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -21,6 +21,7 @@ import com.ljsd.jieling.logic.activity.event.NewWelfareEvent; import com.ljsd.jieling.logic.activity.event.NewWelfareTypeEnum; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.dao.PlayerManager; +import com.ljsd.jieling.logic.dao.RechargeInfo; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.VipInfo; import com.ljsd.jieling.logic.dao.root.User; @@ -63,6 +64,18 @@ public class BuyGoodsNewLogic { return RechargeType.getHandler(type); } + + //获取充值总金额,结合前面的 + public static double getAllAmount(User user){ + PlayerManager playerInfoManager = user.getPlayerInfoManager(); + NewRechargeInfo newRechargeInfo = playerInfoManager.getNewRechargeInfo(); + RechargeInfo rechargeInfo = playerInfoManager.getRechargeInfo(); + double amount = newRechargeInfo.getRr(); + if(rechargeInfo!=null){ + amount+=rechargeInfo.getSaveAmt(); + } + return amount; + } /** * 登录刷新礼包 */ 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 0699ae154..ec4962334 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 @@ -559,7 +559,7 @@ public class StoreLogic implements IEventHandler { int[] buyRule = sStoreConfig.getBuyRule(); if(buyRule!=null&&buyRule.length>0){ //充值金额购买条件判断 - if(buyRule[0]==1&&playerInfoManager.getNewRechargeInfo().getRr() Date: Sat, 8 May 2021 16:36:18 +0800 Subject: [PATCH 07/17] =?UTF-8?q?=E6=96=B0=E7=A4=BC=E5=8C=85=E5=AD=98?= =?UTF-8?q?=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/store/newRechargeInfo/bean/AbstractWelfareBag.java | 4 +++- .../logic/store/newRechargeInfo/bean/PerpetualWelfareBag.java | 4 ++-- .../logic/store/newRechargeInfo/bean/PushWelfareBag.java | 4 ++-- .../logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java | 4 ++-- .../logic/store/newRechargeInfo/bean/TimeLimitWelfareBag.java | 4 ++-- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java index fd5a8d102..9a192faf8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java @@ -60,7 +60,7 @@ public class AbstractWelfareBag extends MongoBase{ } } - public AbstractWelfareBag(int modId, int type, long startTime, long endTime, int limit, int dailyUpdate, int continueDays, boolean open, long lastBuyTime, int buyTimes, long refreshTime, int[] privilege, int timeType, String[][] condition, boolean isUserBuyRefresh) { + public AbstractWelfareBag(int modId, int type, long startTime, long endTime, int limit, int dailyUpdate, int continueDays, boolean open, long lastBuyTime, int buyTimes, long refreshTime, int[] privilege, int timeType, String[][] condition, boolean isUserBuyRefresh,String mongoKey,int rootId) { this.modId = modId; this.type = type; this.startTime = startTime; @@ -76,6 +76,8 @@ public class AbstractWelfareBag extends MongoBase{ this.timeType = timeType; this.condition = condition; this.isUserBuyRefresh = isUserBuyRefresh; + this.setMongoKey(mongoKey); + this.setRootId(rootId); } public boolean buy() { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/PerpetualWelfareBag.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/PerpetualWelfareBag.java index 8be9d2f90..cf7d48846 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/PerpetualWelfareBag.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/PerpetualWelfareBag.java @@ -41,7 +41,7 @@ public class PerpetualWelfareBag extends AbstractWelfareBag { } } - public PerpetualWelfareBag(int modId, int type, long startTime, long endTime, int limit, int dailyUpdate, int continueDays, boolean open, long lastBuyTime, int buyTimes, long refreshTime, int[] privilege, int timeType, String[][] condition, boolean isUserBuyRefresh) { - super(modId, type, startTime, endTime, limit, dailyUpdate, continueDays, open, lastBuyTime, buyTimes, refreshTime, privilege, timeType, condition, isUserBuyRefresh); + public PerpetualWelfareBag(int modId, int type, long startTime, long endTime, int limit, int dailyUpdate, int continueDays, boolean open, long lastBuyTime, int buyTimes, long refreshTime, int[] privilege, int timeType, String[][] condition, boolean isUserBuyRefresh,String mongoKey,int rootId) { + super(modId, type, startTime, endTime, limit, dailyUpdate, continueDays, open, lastBuyTime, buyTimes, refreshTime, privilege, timeType, condition, isUserBuyRefresh,mongoKey,rootId); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/PushWelfareBag.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/PushWelfareBag.java index aee58e887..8e30ead3b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/PushWelfareBag.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/PushWelfareBag.java @@ -19,8 +19,8 @@ public class PushWelfareBag extends AbstractWelfareBag { user.getPlayerInfoManager().getNewRechargeInfo().addPush(this); } - public PushWelfareBag(int modId, int type, long startTime, long endTime, int limit, int dailyUpdate, int continueDays, boolean open, long lastBuyTime, int buyTimes, long refreshTime, int[] privilege, int timeType, String[][] condition, boolean isUserBuyRefresh) { - super( modId, type, startTime, endTime, limit, dailyUpdate, continueDays, open, lastBuyTime, buyTimes, refreshTime, privilege, timeType, condition, isUserBuyRefresh); + public PushWelfareBag(int modId, int type, long startTime, long endTime, int limit, int dailyUpdate, int continueDays, boolean open, long lastBuyTime, int buyTimes, long refreshTime, int[] privilege, int timeType, String[][] condition, boolean isUserBuyRefresh,String mongoKey,int rootId) { + super( modId, type, startTime, endTime, limit, dailyUpdate, continueDays, open, lastBuyTime, buyTimes, refreshTime, privilege, timeType, condition, isUserBuyRefresh, mongoKey,rootId); } @Override diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java index bde2d5c4a..7fe48efd7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java @@ -50,8 +50,8 @@ public class ReceiveWelfareBag extends AbstractWelfareBag { } } - public ReceiveWelfareBag(int modId, int type, long startTime, long endTime, int limit, int dailyUpdate, int continueDays, boolean open, long lastBuyTime, int buyTimes, long refreshTime, int[] privilege, int timeType, String[][] condition, boolean isUserBuyRefresh, boolean bought) { - super( modId, type, startTime, endTime, limit, dailyUpdate, continueDays, open, lastBuyTime, buyTimes, refreshTime, privilege, timeType, condition, isUserBuyRefresh); + public ReceiveWelfareBag(int modId, int type, long startTime, long endTime, int limit, int dailyUpdate, int continueDays, boolean open, long lastBuyTime, int buyTimes, long refreshTime, int[] privilege, int timeType, String[][] condition, boolean isUserBuyRefresh, boolean bought,String mongoKey,int rootId) { + super( modId, type, startTime, endTime, limit, dailyUpdate, continueDays, open, lastBuyTime, buyTimes, refreshTime, privilege, timeType, condition, isUserBuyRefresh,mongoKey,rootId); this.bought = bought; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/TimeLimitWelfareBag.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/TimeLimitWelfareBag.java index 6ebc005be..ee4ea864f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/TimeLimitWelfareBag.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/TimeLimitWelfareBag.java @@ -30,7 +30,7 @@ public class TimeLimitWelfareBag extends AbstractWelfareBag { } } - public TimeLimitWelfareBag(int modId, int type, long startTime, long endTime, int limit, int dailyUpdate, int continueDays, boolean open, long lastBuyTime, int buyTimes, long refreshTime, int[] privilege, int timeType, String[][] condition, boolean isUserBuyRefresh) { - super(modId, type, startTime, endTime, limit, dailyUpdate, continueDays, open, lastBuyTime, buyTimes, refreshTime, privilege, timeType, condition, isUserBuyRefresh); + public TimeLimitWelfareBag(int modId, int type, long startTime, long endTime, int limit, int dailyUpdate, int continueDays, boolean open, long lastBuyTime, int buyTimes, long refreshTime, int[] privilege, int timeType, String[][] condition, boolean isUserBuyRefresh,String mongoKey,int rootId) { + super(modId, type, startTime, endTime, limit, dailyUpdate, continueDays, open, lastBuyTime, buyTimes, refreshTime, privilege, timeType, condition, isUserBuyRefresh,mongoKey,rootId); } } From a8c23221a01ab074e4b45aaa621f9b63e4d2202f Mon Sep 17 00:00:00 2001 From: mengchengzhen <13682025901@163.com> Date: Sat, 8 May 2021 17:37:35 +0800 Subject: [PATCH 08/17] =?UTF-8?q?=E6=96=B0=E7=A4=BC=E5=8C=85=E8=B6=85?= =?UTF-8?q?=E5=80=BC=E5=9F=BA=E9=87=91=E8=AE=B0=E5=BD=95=E9=A2=86=E5=8F=96?= =?UTF-8?q?=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java index 7fe48efd7..4f0303980 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java @@ -50,9 +50,10 @@ public class ReceiveWelfareBag extends AbstractWelfareBag { } } - public ReceiveWelfareBag(int modId, int type, long startTime, long endTime, int limit, int dailyUpdate, int continueDays, boolean open, long lastBuyTime, int buyTimes, long refreshTime, int[] privilege, int timeType, String[][] condition, boolean isUserBuyRefresh, boolean bought,String mongoKey,int rootId) { + public ReceiveWelfareBag(int modId, int type, long startTime, long endTime, int limit, int dailyUpdate, int continueDays, boolean open, long lastBuyTime, int buyTimes, long refreshTime, int[] privilege, int timeType, String[][] condition, boolean isUserBuyRefresh, boolean bought,long getRewardTime,String mongoKey,int rootId) { super( modId, type, startTime, endTime, limit, dailyUpdate, continueDays, open, lastBuyTime, buyTimes, refreshTime, privilege, timeType, condition, isUserBuyRefresh,mongoKey,rootId); this.bought = bought; + this.getRewardTime = getRewardTime; } @Override From e0462df216d042d5dc1991fc6daa0e6f61e3f393 Mon Sep 17 00:00:00 2001 From: mengchengzhen <13682025901@163.com> Date: Mon, 10 May 2021 09:42:51 +0800 Subject: [PATCH 09/17] =?UTF-8?q?=E6=96=B0=E7=A4=BC=E5=8C=85=E7=81=B5?= =?UTF-8?q?=E5=85=BD=E7=A4=BC=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/store/BuyGoodsNewLogic.java | 32 ++++++++++++++++--- .../newRechargeInfo/NewRechargeInfo.java | 29 +++++++++++------ .../java/com/ljsd/jieling/util/ItemUtil.java | 5 +++ 3 files changed, 51 insertions(+), 15 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index 455786b8d..71bb7412b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -197,6 +197,9 @@ public class BuyGoodsNewLogic { sendGoodsByType(user,config,dropByBag); if(config.getAccumulativeRecharge() == 1){ + if(info.getMaxSingleR() < price){ + info.setMaxSingleR(price); + } info.setRr(MathUtils.doubleAdd(price,info.getRr())); //处理月卡 user.getPlayerInfoManager().getMonthCard(); @@ -677,13 +680,17 @@ public class BuyGoodsNewLogic { return; } int popup = 0; + boolean push = false; for(SPackPushConfig con : list){ int bagId = judgePushCondition(user,con); //条件成功 if(bagId > 0 && info.getNextPushTime() < System.currentTimeMillis()){ popup = bagId; info.setNextPushTime(System.currentTimeMillis() + con.getcDTime() * TimeUtils.HOUR); - createPushBag(bagId,user,num); + boolean tempPush = createPushBag(bagId,user,num); + if(!push){ + push = tempPush; + } } } List goodsBagInfo = new ArrayList<>(SRechargeCommodityNewConfig.configMap.size()); @@ -692,8 +699,7 @@ public class BuyGoodsNewLogic { MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.ALL_GIFTGOODS_INDICATION_VALUE, goodsBuild, true); if(popup != 0){ if(isFiveStarBag(popup)){ - if(info.getTEMP_LIMIT()= info.FIVESTARLIMIT){ + return false; + }else{ + info.getTempLimitMap().put(bagId,nn+num); + } + }else{ + info.getTempLimitMap().put(bagId,num); + } if(isFiveStarBag(bagId) && info.getPushMap().get(bagId) != null){ AbstractWelfareBag bag = info.getPushMap().get(bagId); bag.setLimit((bag.getLimit()+num)>info.FIVESTARLIMIT?info.FIVESTARLIMIT:(bag.getLimit()+num)); @@ -847,6 +868,7 @@ public class BuyGoodsNewLogic { bag.setLimit(num); } } + return true; } /** diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/NewRechargeInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/NewRechargeInfo.java index dcd238d21..7b62d31bf 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/NewRechargeInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/NewRechargeInfo.java @@ -11,6 +11,7 @@ import java.util.Map; public class NewRechargeInfo extends MongoBase { private double rr;//累计充值 + private double maxSingleR;//单次最大充值金额 private double monthRr ; //月卡累计总额 private double sMonthRr ; //豪华月卡累计总额 @@ -30,8 +31,8 @@ public class NewRechargeInfo extends MongoBase { private long nextPushTime; //上次推送时间 private long lastRefreshTime; - private int TEMP_LIMIT = 0; public static int FIVESTARLIMIT = 2;//临时五星成长礼每天最多两次 + private Map tempLimitMap = new HashMap<>();//五星成长礼每天购买次数 public boolean checkOneGoodsIsOverTimeByPrivilege(int privilegeId){ @@ -259,15 +260,6 @@ public class NewRechargeInfo extends MongoBase { updateString("nextPushTime",nextPushTime); } - public int getTEMP_LIMIT() { - return TEMP_LIMIT; - } - - public void setTEMP_LIMIT(int TEMP_LIMIT) { - this.TEMP_LIMIT = TEMP_LIMIT; - updateString("TEMP_LIMIT",TEMP_LIMIT); - } - public long getLastRefreshTime() { return lastRefreshTime; } @@ -276,4 +268,21 @@ public class NewRechargeInfo extends MongoBase { this.lastRefreshTime = lastRefreshTime; updateString("lastRefreshTime",lastRefreshTime); } + + public double getMaxSingleR() { + return maxSingleR; + } + + public void setMaxSingleR(double maxSingleR) { + this.maxSingleR = maxSingleR; + updateString("maxSingleR",maxSingleR); + } + + public Map getTempLimitMap() { + return tempLimitMap; + } + + public void setTempLimitMap(Map tempLimitMap) { + this.tempLimitMap = tempLimitMap; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index 73bbd5321..47855173d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -32,6 +32,7 @@ import com.ljsd.jieling.logic.item.ItemLogic; import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.player.PlayerLogic; +import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; import com.ljsd.jieling.network.session.ISession; import rpc.protocols.CommonProto; import rpc.protocols.MessageTypeProto; @@ -1658,6 +1659,10 @@ public class ItemUtil { } dropBuilder.addPokemon(CBean2Proto.getPokemon(pokemon)); SSpiritAnimal animal = STableManager.getConfig(SSpiritAnimal.class).get(entry.getKey()); + if(animal.getQuality()== 5){ + ISession session = OnlineUserManager.getSessionByUid(user.getId()); + BuyGoodsNewLogic.openPush(session,user,8,5,1); + } ReportUtil.onReportEvent(user,ReportEventEnum.GET_BEAST.getType(),entry.getKey(),animal.getQuality(),reason); if (animal.getQuality() >= SSpecialConfig.getIntegerValue(SSpecialConfig.ANIMAL_BROADCAST_QUALITY)&&reason!=BIReason.COMPOS_HERO_REWARD) { //策划资质改成星级 String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("animal_get_broadcast_content", new Object[]{user.getPlayerInfoManager().getNickName(), animal.getName()},new int[]{0,1}); From c66939c5757d3152b113a3b64bdcf9fe09dfff9e Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 10 May 2021 14:39:38 +0800 Subject: [PATCH 10/17] =?UTF-8?q?=E6=9C=80=E9=AB=98=E7=AD=89=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/handler/GameGM/GMRequestHandler.java | 1 - .../src/main/java/com/ljsd/jieling/util/ItemUtil.java | 5 ++++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java index 281414447..d4996291d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java @@ -112,7 +112,6 @@ public class GMRequestHandler extends BaseHandler{ prarm1 = Integer.parseInt(commandArray[1]); if (prarm1 ==1){ prarm3 = commandArray[2].replace(",","#"); - // prarm2 = Integer.parseInt(commandArray[2]); }else{ if (gmCommandType == GlobalGm.RESET_USER_NAME){ prarm3 = commandArray[2]; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index 47855173d..b08ce0c1f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -839,14 +839,17 @@ public class ItemUtil { public static void userLevelUp(User user, long addExp) throws Exception { PlayerManager playerInfoManager = user.getPlayerInfoManager(); if (addExp <= 0) { + // 负值验证 return; } - int maxExp = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(SPlayerLevelConfig.getsPlayerLevelConfigMap().size()).getExp(); + int maxNum = SPlayerLevelConfig.getsPlayerLevelConfigMap().size()-1; + int maxExp = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(maxNum).getExp(); if (playerInfoManager.getExp() >= maxExp) { return; } int curExp = MathUtils.setBetweenWithMax(playerInfoManager.getExp() + (int)addExp, 0, maxExp); int oldLevel = playerInfoManager.getLevel(); + // 当前等级表配置 SPlayerLevelConfig sPlayerLevelConfig = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(oldLevel); int levelUpExp; if (sPlayerLevelConfig == null) { From 489529c8274bc7ac7a1bedbb8ae6d9bd25777f9e Mon Sep 17 00:00:00 2001 From: mengchengzhen <13682025901@163.com> Date: Mon, 10 May 2021 16:03:12 +0800 Subject: [PATCH 11/17] =?UTF-8?q?=E5=8F=96=E6=B6=88=E7=81=B5=E5=85=BD?= =?UTF-8?q?=E7=A4=BC=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/util/ItemUtil.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index b08ce0c1f..a73fb5940 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -1662,10 +1662,10 @@ public class ItemUtil { } dropBuilder.addPokemon(CBean2Proto.getPokemon(pokemon)); SSpiritAnimal animal = STableManager.getConfig(SSpiritAnimal.class).get(entry.getKey()); - if(animal.getQuality()== 5){ - ISession session = OnlineUserManager.getSessionByUid(user.getId()); - BuyGoodsNewLogic.openPush(session,user,8,5,1); - } +// if(animal.getQuality()== 5){ +// ISession session = OnlineUserManager.getSessionByUid(user.getId()); +// BuyGoodsNewLogic.openPush(session,user,8,5,1); +// } ReportUtil.onReportEvent(user,ReportEventEnum.GET_BEAST.getType(),entry.getKey(),animal.getQuality(),reason); if (animal.getQuality() >= SSpecialConfig.getIntegerValue(SSpecialConfig.ANIMAL_BROADCAST_QUALITY)&&reason!=BIReason.COMPOS_HERO_REWARD) { //策划资质改成星级 String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("animal_get_broadcast_content", new Object[]{user.getPlayerInfoManager().getNickName(), animal.getName()},new int[]{0,1}); From 88f10366590128d15b5e696ca09c42276be8f636 Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 10 May 2021 16:12:38 +0800 Subject: [PATCH 12/17] =?UTF-8?q?=E7=AD=89=E7=BA=A7=E5=9B=9E=E6=BB=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index b08ce0c1f..24346e252 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -842,8 +842,7 @@ public class ItemUtil { // 负值验证 return; } - int maxNum = SPlayerLevelConfig.getsPlayerLevelConfigMap().size()-1; - int maxExp = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(maxNum).getExp(); + int maxExp = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(SPlayerLevelConfig.getsPlayerLevelConfigMap().size()).getExp(); if (playerInfoManager.getExp() >= maxExp) { return; } From 9457e48c5c5b86bc3107e5c035f1b9064ede5132 Mon Sep 17 00:00:00 2001 From: duhui Date: Tue, 11 May 2021 14:09:21 +0800 Subject: [PATCH 13/17] =?UTF-8?q?=E8=AE=A1=E7=AE=97=E6=88=98=E5=8A=9B?= =?UTF-8?q?=E6=96=B9=E6=B3=95,=E9=83=A8=E5=88=86=E6=B3=A8=E9=87=8A?= =?UTF-8?q?=E6=97=A7=E9=80=BB=E8=BE=91=E5=88=A0=E9=99=A4,=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E5=8F=AF=E5=9B=9E=E6=BB=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/hero/HeroLogic.java | 71 ++++--------------- 1 file changed, 15 insertions(+), 56 deletions(-) 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 139ae772a..b1bbe1f23 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 @@ -1676,6 +1676,15 @@ public class HeroLogic{ } } } + + /** + * 计算队伍战力 + * @param user + * @param hero + * @param isForce + * @param teamId + * @return + */ public Map calHeroNotBufferAttribute(User user, Hero hero,boolean isForce,int teamId){ Map heroAllAttribute = calHeroAllAttribute(user, hero,isForce); heroAllAttribute.put(HeroAttributeEnum.CurHP.getPropertyId(),heroAllAttribute.get(GlobalsDef.HP_TYPE)); @@ -1690,7 +1699,8 @@ public class HeroLogic{ if(teamId!=0){ int heroNum = user.getTeamPosManager().getTeamPosForHero().get(teamId).size(); if(teamId==GlobalsDef.TRIAL_TEAM){ - heroNum = 5;//森罗环境固定为5 + //森罗环境固定为5 + heroNum = 5; } int[][] pokemonAttr = calPokemonAttribute(pokemonManager); for(int i = 0 ; i > iterator = hero.getEquipByHongmengPositionMap(user.getHeroManager()).entrySet().iterator(); -// Map suiteNumByIdMap = new HashMap<>(); // 套装list初始化 ArrayList suiteNumList = new ArrayList<>(); while (iterator.hasNext()){ @@ -1756,7 +1765,6 @@ public class HeroLogic{ } combinedAttribute(propertyValueByIdMap,heroAllAttribute); equipForce+=sEquipConfig.getScore(); -// suiteNumByIdMap.put(sEquipConfig.getId(),suiteNumByIdMap.getOrDefault(sEquipConfig.getSuiteID(),0)+1); // 添加到套装list suiteNumList.add(sEquipConfig); } @@ -1783,39 +1791,6 @@ public class HeroLogic{ num-=1; } } -// if(!suiteNumByIdMap.isEmpty()){ -// suiteNumByIdMap.forEach((suiteId,suiteNums)->{ -// SEquipSuiteConfig sEquipSuiteConfig =SEquipSuiteConfig.config.get(suiteId); -// if( null!=sEquipSuiteConfig){ -// Map suitePropertyMap = sEquipSuiteConfig.getSuiteMap().get(suiteNums); -// if(suitePropertyMap!=null){ -// combinedAttribute(suitePropertyMap,heroAllAttribute); -// } -// } -// }); -// } - if(needRemove){ - AyyncWorker ayyncWorker = new AyyncWorker(user,true,user1 -> { - Map heroMap = user1.getHeroManager().getHeroMap(); - for(Hero heroTmp : heroMap.values()){ - Iterator> iterator1 = heroTmp.getEquipByHongmengPositionMap(user.getHeroManager()).entrySet().iterator(); - boolean isUpate = false; - while (iterator1.hasNext()){ - Map.Entry next = iterator1.next(); - Integer equipId = next.getValue(); - PropertyItem equip = equipMap.get(equipId); - if(equip == null){ - iterator1.remove(); - isUpate = true; - } - } - if(isUpate){ - heroTmp.setEquipByPositionMap(heroTmp.getEquipByHongmengPositionMap(user.getHeroManager())); - } - } - }); - ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker); - } //工坊科技树加成 Map techProfressionMap = user.getWorkShopController().getTechnologyMap().get(scHero.getProfession()); @@ -1897,13 +1872,9 @@ public class HeroLogic{ } } if(levelProperty!=0){ -// System.out.println("宝器强化共鸣"+"......"+propertyToString(config.get(levelProperty).getProperty())); - combinedAttribute(config.get(levelProperty).getProperty(),heroAllAttribute); } if(buildLevelProperty!=0){ -// System.out.println("宝器精炼共鸣"+"......"+propertyToString(config.get(buildLevelProperty).getProperty())); - combinedAttribute(config.get(buildLevelProperty).getProperty(),heroAllAttribute); } } @@ -1917,8 +1888,7 @@ public class HeroLogic{ } }); - -// //皮肤、称号加成 +// //皮肤、称号加成 -- 前端未实现,暂时注释 // int decoration = user.getPlayerInfoManager().getDecoration(); // int designation = user.getPlayerInfoManager().getDesignation(); // if(decoration!=0&&SPlayerAppearance.sPlayerAppearanceMap.get(decoration)!=null){ @@ -1927,12 +1897,13 @@ public class HeroLogic{ // combinedAttribute(SPlayerAppearance.sPlayerAppearanceMap.get(designation).getProperty(),heroAllAttribute); // } // -// //坐骑加成 +// //坐骑加成 -- 前端未实现,暂时注释 // if(user.getPlayerInfoManager().getRide()!=0){ // int rideLevel = user.getPlayerInfoManager().getRideLevel(); // int[][] property = SPlayerMountLevelUp.sPlayerMountLevelUpMap.get(rideLevel).getProperty(); // combinedAttribute(property,heroAllAttribute); // } + //公会技能加成 Map guildSkill = user.getGuildMyInfo().getGuildSkill(); if(guildSkill.containsKey(scHero.getProfession())){ @@ -1952,9 +1923,7 @@ public class HeroLogic{ combinedAttribute(arraySkills,heroAllAttribute); } - //阵营光环加成 - if(teamId!=0){ try { int[][] elementEffect = CombatLogic.getInstance().elementEffect(user,teamId); @@ -1991,8 +1960,6 @@ public class HeroLogic{ } }); - - if(!heroSkillAdMap.isEmpty()){ combinedAttribute(heroSkillAdMap,heroAllAttribute); heroSkillAdMap.clear(); @@ -2046,14 +2013,6 @@ public class HeroLogic{ return heroAllAttribute; } - private String propertyToString(int[][] property){ - StringBuilder builder = new StringBuilder(); - for(int[] pro:property){ - builder.append(pro[0]).append("#").append(pro[1]).append("\n"); - } - return builder.toString(); - } - /** * 计算机器人英雄熟悉 * @param scHero From 1d8fea9f960b9adc57b5c6b639d0ae717987ab46 Mon Sep 17 00:00:00 2001 From: duhui Date: Tue, 11 May 2021 17:59:49 +0800 Subject: [PATCH 14/17] =?UTF-8?q?=E4=BF=AE=E8=A1=8C,=E6=9C=AA=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/dao/HeroManager.java | 38 ++++++++++++++++++- .../ljsd/jieling/logic/hero/HeroLogic.java | 3 +- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java index 1fc8ded0c..dffed29b8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java @@ -22,7 +22,9 @@ public class HeroManager extends MongoBase { private Map mustRandomCount= new HashMap<>(); - private Map randomPoolInfo = new HashMap<>();//每个池子抽了多少次的信息 + //每个池子抽了多少次的信息 + private Map randomPoolInfo = new HashMap<>(); + private Map heroHandBook = new HashMap<>(); private Set heroHandBookEnabled = new HashSet<>(); @@ -51,6 +53,16 @@ public class HeroManager extends MongoBase { // 鸿蒙碑最大等级,添加限制, private Set hongmengMaxLevel = new HashSet<>(); + // 修行境界等级 + private int practiceLevel; + /** + * 装备得紫府神印 + * key: 神印id + * value: 0 通用 + * -1 未添加英雄 + */ + private Map purpleMansionSeal = new HashMap<>(); + public void updateRandCount(int type,int count){ updateString("totalCount." + type, count); totalCount.put(type,count); @@ -262,5 +274,29 @@ public class HeroManager extends MongoBase { randomPoolInfo.put(poolId,randomPoolInfo.getOrDefault(poolId,0)+1); updateString("randomPoolInfo", randomPoolInfo); } + + + public int getPracticeLevel() { + return practiceLevel; + } + + public void setPracticeLevel(int practiceLevel) { + this.practiceLevel = practiceLevel; + updateString("practiceLevel", practiceLevel); + } + + public void addPracticeLevel() { + this.practiceLevel+=1; + updateString("practiceLevel", practiceLevel); + } + + public Map getPurpleMansionSeal() { + return purpleMansionSeal; + } + + public void setPurpleMansionSeal(Map purpleMansionSeal) { + this.purpleMansionSeal = purpleMansionSeal; + updateString("purpleMansionSeal", purpleMansionSeal); + } } 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 b1bbe1f23..e1b45dda7 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 @@ -186,8 +186,9 @@ public class HeroLogic{ if(type==4){ Map equipMap = user.getEquipManager().getEquipMap(); for(PropertyItem equipInfo: equipMap.values()){ - if(equipInfo instanceof Jewel) + if(equipInfo instanceof Jewel) { equipList.add(CBean2Proto.getEquipProto(equipInfo)); + } } }else { throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); From e494248bd36d383b0c0cec2fbdbf206265ebfb53 Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 13 May 2021 11:47:17 +0800 Subject: [PATCH 15/17] =?UTF-8?q?=E6=89=93=E8=A1=A8=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/src/main/java/ExcelUtils.java | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/test/src/main/java/ExcelUtils.java b/test/src/main/java/ExcelUtils.java index cdc3fc337..8d96b7fa1 100644 --- a/test/src/main/java/ExcelUtils.java +++ b/test/src/main/java/ExcelUtils.java @@ -1,14 +1,12 @@ -import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFCell; -import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.*; import java.util.*; public class ExcelUtils { private static boolean isWrite = true; - private static String excelPath ="E:\\work\\data_execl\\master_en\\base_data\\"; //excel 文件 + private static String excelPath ="D:\\A-duhui\\project\\data_execl\\master_zh_c\\base_data\\"; //excel 文件 // private static String excelPath ="D:/excel/0.94/data_execl/Map_data/"; //excel 文件 private static String path = "conf/server/"; private static Set oldFileNames = new HashSet<>(); @@ -363,29 +361,16 @@ public class ExcelUtils { //读取excel private static Workbook readExcel(String filePath) { - Workbook wb = null; if (filePath == null) { return null; } - String extString = filePath.substring(filePath.lastIndexOf(".")); - InputStream is; try { - is = new FileInputStream(filePath); - if (".xls".equals(extString)) { - return wb = new HSSFWorkbook(is); - } else if (".xlsx".equals(extString)) { - wb = new XSSFWorkbook(is); - return wb; - } else { - return wb = null; - } - - } catch (FileNotFoundException e) { - e.printStackTrace(); + InputStream is = new FileInputStream(filePath); + return WorkbookFactory.create(is); } catch (Exception e) { e.printStackTrace(); } - return wb; + return null; } public static Object getCellFormatValue(Cell cell,Cell cellType) { From b51cd010a35f914940d865be9cdd3aaf22c9581e Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 14 May 2021 11:12:47 +0800 Subject: [PATCH 16/17] =?UTF-8?q?=E4=BF=AE=E8=A1=8C=E5=8A=9F=E8=83=BD1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/globals/BIReason.java | 2 + .../jieling/handler/GetPlayerInfoHandler.java | 7 +- .../hero/ReplacePurpleMansionSealHandler.java | 102 ++++++++++++++++++ .../handler/hero/UpPracticeLevelHandler.java | 81 ++++++++++++++ .../ljsd/jieling/logic/dao/HeroManager.java | 30 +++--- .../jieling/logic/dao/PurpleMansionSeal.java | 76 +++++++++++++ .../ljsd/jieling/logic/hero/HeroLogic.java | 81 +++++++++++--- .../com/ljsd/jieling/util/CBean2Proto.java | 20 +++- .../src/main/java/config/SXiuXian.java | 61 +++++++++++ .../src/main/java/config/SXiuXianSkill.java | 41 +++++++ 10 files changed, 462 insertions(+), 39 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/hero/ReplacePurpleMansionSealHandler.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/hero/UpPracticeLevelHandler.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PurpleMansionSeal.java create mode 100644 tablemanager/src/main/java/config/SXiuXian.java create mode 100644 tablemanager/src/main/java/config/SXiuXianSkill.java 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 26e946fe2..0426a53c6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -329,4 +329,6 @@ public interface BIReason { int EQUIP_UPLEVEL_COST = 1092;//装备升星消耗 int EQUIP_UPLEVEL_REWARD = 1093;//装备升星获得 int TA_SUI_LING_XIAO = 1094;//踏碎凌霄 + + int UP_PRACTICE_LEVEL = 1100;//修行升级 } \ No newline at end of file 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 d3abd1bb9..cfa6866a7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -219,6 +219,8 @@ public class GetPlayerInfoHandler extends BaseHandler{ .addAllUserMountList(CBean2Proto.getUserMountList(user)) .addAllUserSkinList(CBean2Proto.getUserSkinList(user)) .addAllUserTitleList(CBean2Proto.getUserTitleList(user)) + .setPracticeLevel(heroManager.getPracticeLevel()) + .addAllSealList(CBean2Proto.getPurpleMansionSealInfo(user)) .build(); ReportUtil.onReportEvent(user, ReportEventEnum.APP_LOGIN.getType()); try { @@ -227,14 +229,11 @@ public class GetPlayerInfoHandler extends BaseHandler{ MessageUtil.sendIndicationMessage(iSession, 1, MessageTypeProto.MessageType.WorldLevelIndication_VALUE, PlayerInfoProto.WorldLevelIndication.newBuilder().setWorldLeve(GlobleSystemLogic.getGloableWorldLeveCache()).build(), true); MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GET_PLAYERINFO_RESPONSE_VALUE, getPlayerInfoResponse, true); - // DoFix.getInstance().loginFix(user); if(playerInfoManager.getIsdayFirst()==0){ playerInfoManager.setIsdayFirst(1); } RedisUtil.getInstence().set(RedisKey.USER_LOGIN_URL + userId, RPCServerTask.userCallBackUrl); - /*if(user.getPlayerInfoManager().getGuidePoints().get(1)!=-1){ - user.getPlayerInfoManager().updateGuidePoint(1,-1); - }*/ + } catch (Exception e) { e.printStackTrace(); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/ReplacePurpleMansionSealHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/ReplacePurpleMansionSealHandler.java new file mode 100644 index 000000000..1643142ac --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/ReplacePurpleMansionSealHandler.java @@ -0,0 +1,102 @@ +package com.ljsd.jieling.handler.hero; + +import com.google.protobuf.GeneratedMessage; +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.dao.PurpleMansionSeal; +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.CBean2Proto; +import com.ljsd.jieling.util.MessageUtil; +import org.springframework.stereotype.Component; +import rpc.protocols.CommonProto; +import rpc.protocols.HeroInfoProto; +import rpc.protocols.MessageTypeProto; + +import java.util.List; +import java.util.Map; +/** + * @Author hj + * @Description 修改神印状态 + * 三种类型 + * 1: oldSealId != newSealId : 替换神印 + * 2: oldSealId == newSealId && newSealId.subId == subId : 卸载神印 + * 3: oldSealId == newSealId && newSealId.subId != subId : 替换神印英雄 + * @Date $ $ + * @Param $ + * @return $ + **/ + +@Component +public class ReplacePurpleMansionSealHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.ReplacePurpleMansionSealRequest; + } + + @Override + public void processWithProto(ISession iSession, HeroInfoProto.ReplacePurpleMansionSealRequest proto) throws Exception { + // 用户信息 + User user = UserManager.getUser(iSession.getUid()); + if (user == null) { + throw new ErrorCodeException(ErrorCode.UNKNOWN); + } + + // 获取参数 + int oldSealId = proto.getOldSealId(); + int newSealId = proto.getNewSealId(); + String subId = proto.getSubId(); + + // 神印列表 + Map sealMap = user.getHeroManager().getPurpleMansionSeal(); + + // 替换神印 + if (oldSealId != newSealId){ + PurpleMansionSeal newSeal = sealMap.get(newSealId); + if (newSeal == null){ + throw new ErrorCodeException("神印不存在!"); + } + if (newSeal.getType() == 1 && (subId == null || "".equals(subId))){ + throw new ErrorCodeException("英雄id不能为空!"); + } + // 旧神印状态修改 + PurpleMansionSeal oldSeal = sealMap.get(oldSealId); + if (oldSeal != null){ + oldSeal.setState(0); + user.getHeroManager().putPurpleMansionSeal(oldSeal); + } + + // 新神印状态修改 + newSeal.setState(1); + // 附属英雄id修改,类型之后需要读表 + if (!newSeal.getSubId().equals(subId) && newSeal.getType() == 1){ + newSeal.setSubId(subId); + } + user.getHeroManager().putPurpleMansionSeal(newSeal); + } + // 相同神印 + else { + PurpleMansionSeal seal = sealMap.get(newSealId); + // 卸载神印 + if (seal.getSubId().equals(subId)){ + seal.setState(0); + } + // 替换英雄id + else { + if (seal.getType() != 1){ + throw new ErrorCodeException("神印类型错误!"); + } + seal.setSubId(subId); + } + user.getHeroManager().putPurpleMansionSeal(seal); + } + + // 返回最新神印列表 + List sealInfo = CBean2Proto.getPurpleMansionSealInfo(user); + HeroInfoProto.ReplacePrupleMansionSealResponse build = HeroInfoProto.ReplacePrupleMansionSealResponse.newBuilder().addAllSealList(sealInfo).build(); + + MessageUtil.sendMessage(iSession,1,MessageTypeProto.MessageType.ReplacePurpleMansionSealResponse_VALUE,build,true); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/UpPracticeLevelHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/UpPracticeLevelHandler.java new file mode 100644 index 000000000..ab41bd960 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/UpPracticeLevelHandler.java @@ -0,0 +1,81 @@ +package com.ljsd.jieling.handler.hero; + +import com.google.protobuf.GeneratedMessage; +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.dao.PurpleMansionSeal; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.util.ItemUtil; +import config.SXiuXian; +import config.SXiuXianSkill; +import manager.STableManager; +import org.springframework.stereotype.Component; +import rpc.protocols.HeroInfoProto; +import rpc.protocols.MessageTypeProto; +/** + * @Author hj + * @Description 修行玩法,升级 + * @Date $ $ + * @Param $ + * @return $ + **/ +@Component +public class UpPracticeLevelHandler extends BaseHandler { + + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.UpPracticeLevelRequest; + } + + @Override + public GeneratedMessage processWithProto(int uid, HeroInfoProto.UpPracticeLevelRequest proto) throws Exception { + // 用户信息 + User user = UserManager.getUser(uid); + if (user == null) { + throw new ErrorCodeException(ErrorCode.UNKNOWN); + } + + // 获取当前等级和之后的等级 + int level = user.getHeroManager().getPracticeLevel(); + if (level <= 0){ + level = 1; + } + + SXiuXian xiuXian = STableManager.getConfig(SXiuXian.class).get(level); + SXiuXian xiuXian2 = STableManager.getConfig(SXiuXian.class).get(level+1); + if (xiuXian == null || xiuXian2 == null){ + throw new ErrorCodeException("已修行至世间巅峰"); + } + + // 山河社稷图的星星,先用等级代替,之后要改 + int star = user.getPlayerInfoManager().getLevel(); + if (star < xiuXian.getNeedStarNum()){ + throw new ErrorCodeException("无法破境,请前往山河社稷图获取更多星星!"); + } + + // 验证道具消耗 + boolean cost = ItemUtil.itemCost(user, xiuXian.getLevelUpCost(), BIReason.UP_PRACTICE_LEVEL, 0); + if (!cost){ + throw new ErrorCodeException("道具不足!",ErrorCode.ITEM_NOT_ENOUGH); + } + + // 升级 + user.getHeroManager().setPracticeLevel(xiuXian2.getId()); + + // 添加技能 + if (xiuXian2.getTeamSkill() != null){ + for (int seal : xiuXian2.getTeamSkill()) { + SXiuXianSkill xianSkill = STableManager.getConfig(SXiuXianSkill.class).get(seal); + // 添加新神印 + PurpleMansionSeal purpleMansionSeal = new PurpleMansionSeal(seal, xianSkill.getType(),"",0); + user.getHeroManager().putPurpleMansionSeal(purpleMansionSeal); + } + } + + return HeroInfoProto.UpPracticeLevelResponse.newBuilder().setPracticeLevel(xiuXian2.getId()).build(); + } + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java index dffed29b8..4d4176aef 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java @@ -7,10 +7,7 @@ import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.hero.HongMengAttributeEnum; import config.SSpecialConfig; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; +import java.util.*; public class HeroManager extends MongoBase { @@ -53,15 +50,14 @@ public class HeroManager extends MongoBase { // 鸿蒙碑最大等级,添加限制, private Set hongmengMaxLevel = new HashSet<>(); - // 修行境界等级 + /** + * 修行等级 + */ private int practiceLevel; /** - * 装备得紫府神印 - * key: 神印id - * value: 0 通用 - * -1 未添加英雄 + * 紫府神印 */ - private Map purpleMansionSeal = new HashMap<>(); + private Map purpleMansionSeal = new HashMap<>(); public void updateRandCount(int type,int count){ updateString("totalCount." + type, count); @@ -285,18 +281,18 @@ public class HeroManager extends MongoBase { updateString("practiceLevel", practiceLevel); } - public void addPracticeLevel() { - this.practiceLevel+=1; - updateString("practiceLevel", practiceLevel); - } - - public Map getPurpleMansionSeal() { + public Map getPurpleMansionSeal() { return purpleMansionSeal; } - public void setPurpleMansionSeal(Map purpleMansionSeal) { + public void setPurpleMansionSeal(Map purpleMansionSeal) { this.purpleMansionSeal = purpleMansionSeal; updateString("purpleMansionSeal", purpleMansionSeal); } + + public void putPurpleMansionSeal(PurpleMansionSeal seal) { + purpleMansionSeal.put(seal.getSealId(),seal); + updateString("purpleMansionSeal", purpleMansionSeal); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PurpleMansionSeal.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PurpleMansionSeal.java new file mode 100644 index 000000000..aa6d7a44e --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PurpleMansionSeal.java @@ -0,0 +1,76 @@ +package com.ljsd.jieling.logic.dao; + +/** + * @Author hj + * @Description //TODO $ + * @Date $ $ + * @Param $ + * @return $ + **/ + +import com.ljsd.common.mogodb.MongoBase; + +public class PurpleMansionSeal extends MongoBase { + + /** + * 印章id + */ + private int sealId; + /** + * 印章类型 + */ + private int type; + /** + * 附属id,英雄id + */ + private String subId; + /** + * 状态 + * 0:未使用 + * 1:已使用 + */ + private int state; + + public PurpleMansionSeal(int sealId, int type, String subId, int state) { + this.sealId = sealId; + this.type = type; + this.subId = subId; + this.state = state; + } + + public int getSealId() { + return sealId; + } + + public void setSealId(int sealId) { + this.sealId = sealId; + updateString("sealId", sealId); + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + updateString("type", type); + } + + public String getSubId() { + return subId; + } + + public void setSubId(String subId) { + this.subId = subId; + updateString("subId", subId); + } + + public int getState() { + return state; + } + + public void setState(int state) { + this.state = state; + updateString("state", state); + } +} 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 e1b45dda7..8cb52bed3 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 @@ -29,7 +29,6 @@ import com.ljsd.jieling.logic.fight.passiveSkillCal.PassiveskillCalEnum; import com.ljsd.jieling.logic.item.ItemLogic; import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.player.PlayerLogic; -import com.ljsd.jieling.network.server.ProtocolsManager; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.*; import config.*; @@ -46,7 +45,6 @@ import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; -import java.util.stream.Stream; public class HeroLogic{ private static final Logger LOGGER = LoggerFactory.getLogger(HeroLogic.class); @@ -1446,27 +1444,14 @@ public class HeroLogic{ skillList.addAll(tempHero.getPassiveSkills(1, hero.getBreakIdByHongMeng(user.getHeroManager()))); skillList.addAll(tempHero.getPassiveSkills(2, hero.getStarBreakId())); } - //装备没有技能不用计算 -// Map equipByPositionMap = hero.getEquipByPositionMap(); -// if(!equipByPositionMap.isEmpty()){ -// Map equipMap = hero.getCreateType()==1?user.getExpeditionManager().getEquipMap():user.getEquipManager().getEquipMap(); -// for(Integer position : equipSkillPositionTemaplge){ -// Integer equipId = equipByPositionMap.get(position); -// if(equipId==null){ -// continue; -// } -// int skillId = equipMap.get(equipId).getSkill(); -// if(skillId!=0){ -// skillList.add(skillId); -// } -// } -// } + //魂印 Map soulEquipByPositionMap = hero.getSoulEquipByPositionMap(); Map config = STableManager.getConfig(SEquipConfig.class); soulEquipByPositionMap.values().forEach(e->{ Arrays.stream(config.get(e).getPassiveSkill()).forEach(skillList::add); }); + //法宝技能 int[] equipTalismana = tempHero.getEquipTalismana(); if(equipTalismana.length<1 ||hero.getStar()skillList.add(i)); } }); + + // 紫府神印技能 + Collection seals = user.getHeroManager().getPurpleMansionSeal().values(); + seals.forEach(v->{ + // 使用中神印 + if (v.getState() == 1){ + // 附身神印 + if (v.getType() == 1){ + if (v.getSubId().equals(hero.getId())){ + getPurpleMansionSealSkill(v.getSealId(),tempHero,skillList); + } + } + // 通用神印 + else { + getPurpleMansionSealSkill(v.getSealId(),tempHero,skillList); + } + } + }); + return skillList; } + /** + * 获取紫府神印技能 + * @param sealId + * @param tempHero + * @param skillList + */ + private void getPurpleMansionSealSkill(int sealId,SCHero tempHero,List skillList){ + SXiuXianSkill xianSkill = STableManager.getConfig(SXiuXianSkill.class).get(sealId); + // 技能数组转list + int skillId = xianSkill.getSkillId(); + // 适用范围 + int[] fitList = xianSkill.getFitList(); + switch (fitList[0]){ + case 0: + // 不限 + skillList.add(skillId); + break; + case 1: + // 阵营限制 + if (tempHero.getPropertyName() == fitList[1]){ + skillList.add(skillId); + } + break; + case 2: + // 职业限制 + if (tempHero.getProfession() == fitList[1]){ + skillList.add(skillId); + } + break; + default: + break; + } + } + public void coverSkill(List heroSkillList){ Set coverSkillIds = new HashSet<>(); heroSkillList.forEach(skill->{ @@ -1889,6 +1927,15 @@ public class HeroLogic{ } }); + // 修行等级属性加成 + Map xiuXianMap = STableManager.getConfig(SXiuXian.class); + int practiceLevel = user.getHeroManager().getPracticeLevel(); + xiuXianMap.values().forEach(v->{ + if (v.getId() >= practiceLevel && v.getTotalPros() != null){ + combinedAttribute(v.getTotalPros(),heroAllAttribute); + } + }); + // //皮肤、称号加成 -- 前端未实现,暂时注释 // int decoration = user.getPlayerInfoManager().getDecoration(); // int designation = user.getPlayerInfoManager().getDesignation(); 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 def20ef6d..54337bf71 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -698,11 +698,29 @@ public class CBean2Proto { return builder.build(); } - public static CommonProto.TeamSimpleInfo getSimpleTeamInfoByHero(User user, Hero hero,int position){ return CommonProto.TeamSimpleInfo.newBuilder().setHeroid(hero.getId()).setHeroTid(hero.getTemplateId()).setLevel(hero.getLevel(user.getHeroManager())).setStar(hero.getStar()).setPosition(position).setSkinId(hero.getSkin()).build(); } public static CommonProto.TeamSimpleInfo getSimpleTeamInfoByPokeMon(Pokemon pokemon,int position){ return CommonProto.TeamSimpleInfo.newBuilder().setHeroid(pokemon.getId()).setHeroTid(pokemon.getTmpId()).setLevel(pokemon.getLevel()).setStar(pokemon.getStar()).setPosition(position).build(); } + + /** + * 获取紫府神印list by proto + * @param user + * @return + */ + public static List getPurpleMansionSealInfo(User user){ + ArrayList list = new ArrayList<>(); + user.getHeroManager().getPurpleMansionSeal().values().forEach(v->{ + CommonProto.PurpleMansionSeal seal = CommonProto.PurpleMansionSeal.newBuilder() + .setId(v.getSealId()) + .setType(v.getType()) + .setSubId(v.getSubId()) + .setState(v.getState()) + .build(); + list.add(seal); + }); + return list; + } } diff --git a/tablemanager/src/main/java/config/SXiuXian.java b/tablemanager/src/main/java/config/SXiuXian.java new file mode 100644 index 000000000..91b389231 --- /dev/null +++ b/tablemanager/src/main/java/config/SXiuXian.java @@ -0,0 +1,61 @@ +package config; + +import manager.STableManager; +import manager.Table; + +import java.util.Map; + +@Table(name ="XiuXian") +public class SXiuXian implements BaseConfig { + + private int id; + + private int realmId; + + private int realmLevel; + + private int[][] levelUpCost; + + private int[][] totalPros; + + private int needStarNum; + + private int[] teamSkill; + + + @Override + public void init() throws Exception { + + } + + + public int getId() { + return id; + } + + public int getRealmId() { + return realmId; + } + + public int getRealmLevel() { + return realmLevel; + } + + public int[][] getLevelUpCost() { + return levelUpCost; + } + + public int[][] getTotalPros() { + return totalPros; + } + + public int getNeedStarNum() { + return needStarNum; + } + + public int[] getTeamSkill() { + return teamSkill; + } + + +} \ No newline at end of file diff --git a/tablemanager/src/main/java/config/SXiuXianSkill.java b/tablemanager/src/main/java/config/SXiuXianSkill.java new file mode 100644 index 000000000..ab5d14cef --- /dev/null +++ b/tablemanager/src/main/java/config/SXiuXianSkill.java @@ -0,0 +1,41 @@ +package config; + +import manager.STableManager; +import manager.Table; + +import java.util.HashMap; +import java.util.Map; + +@Table(name ="XiuXianSkill") +public class SXiuXianSkill implements BaseConfig { + + private int id; + + private int type; + + private int[] fitList; + + private int skillId; + + @Override + public void init() throws Exception { + + } + + + public int getId() { + return id; + } + + public int getType() { + return type; + } + + public int[] getFitList() { + return fitList; + } + + public int getSkillId() { + return skillId; + } +} \ No newline at end of file From 23d1b680805cb6c19b403b7b75bf72eb6b28fe1a Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 17 May 2021 09:37:16 +0800 Subject: [PATCH 17/17] =?UTF-8?q?=E4=BF=AE=E8=A1=8C2.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EndExpeditionBattleRequest.java | 2 +- .../GetExpeditionRequestHandler.java | 2 +- .../HeroNodeGetInfoRequestHandler.java | 2 +- .../Expedition/HeroNodeRequestHandler.java | 2 +- .../handler/GameGM/GMRequestHandler.java | 4 +- .../jieling/handler/GetAllHerosHandler.java | 2 +- .../hero/DoHeroChangeRequestHandler.java | 2 +- .../handler/hero/UpPracticeLevelHandler.java | 20 ++++++- .../ljsd/jieling/logic/hero/HeroLogic.java | 9 ++- .../jieling/logic/player/PlayerLogic.java | 2 +- .../com/ljsd/jieling/util/CBean2Proto.java | 59 +++++++++++++------ .../java/com/ljsd/jieling/util/ItemUtil.java | 2 +- 12 files changed, 74 insertions(+), 34 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java index d7d2b6984..274b4bea2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java @@ -287,7 +287,7 @@ public class EndExpeditionBattleRequest extends BaseHandler heroList = new ArrayList<>(); Map heroMap = user.getExpeditionManager().getHeroMap(); for(Hero hero : heroMap.values()){ - heroList.add(CBean2Proto.getHero(hero)); + heroList.add(CBean2Proto.getHero(user,hero)); } builder.addAllHeroList(heroList); Map equipMap = user.getExpeditionManager().getEquipMap(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/HeroNodeGetInfoRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/HeroNodeGetInfoRequestHandler.java index 98ba0285b..749403da0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/HeroNodeGetInfoRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/HeroNodeGetInfoRequestHandler.java @@ -110,7 +110,7 @@ public class HeroNodeGetInfoRequestHandler extends BaseHandler sealInfo = CBean2Proto.getPurpleMansionSealInfo(user); + HeroInfoProto.PurpleMansionSealIndication build2 = HeroInfoProto.PurpleMansionSealIndication.newBuilder().addAllSealList(sealInfo).build(); + MessageUtil.sendIndicationMessage(iSession,1, MessageTypeProto.MessageType.PurpleMansionSealIndication_VALUE,build2,true); } - return HeroInfoProto.UpPracticeLevelResponse.newBuilder().setPracticeLevel(xiuXian2.getId()).build(); + // 升级返回 + HeroInfoProto.UpPracticeLevelResponse build = HeroInfoProto.UpPracticeLevelResponse.newBuilder().setPracticeLevel(xiuXian2.getId()).build(); + MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.UpPracticeLevelResponse_VALUE,build,true); } } 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 8cb52bed3..128c6ed62 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 @@ -1497,6 +1497,9 @@ public class HeroLogic{ SXiuXianSkill xianSkill = STableManager.getConfig(SXiuXianSkill.class).get(sealId); // 技能数组转list int skillId = xianSkill.getSkillId(); + if (skillId <= 0){ + return; + } // 适用范围 int[] fitList = xianSkill.getFitList(); switch (fitList[0]){ @@ -1930,11 +1933,11 @@ public class HeroLogic{ // 修行等级属性加成 Map xiuXianMap = STableManager.getConfig(SXiuXian.class); int practiceLevel = user.getHeroManager().getPracticeLevel(); - xiuXianMap.values().forEach(v->{ - if (v.getId() >= practiceLevel && v.getTotalPros() != null){ + for (SXiuXian v : xiuXianMap.values()) { + if (practiceLevel >= v.getId() && v.getTotalPros() != null){ combinedAttribute(v.getTotalPros(),heroAllAttribute); } - }); + } // //皮肤、称号加成 -- 前端未实现,暂时注释 // int decoration = user.getPlayerInfoManager().getDecoration(); 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 3143688c8..d742e082f 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 @@ -625,7 +625,7 @@ public class PlayerLogic { builder.addEquip(CBean2Proto.getEquipProto(equipId)); } builder.setForce(HeroLogic.getInstance().calForce(heroNotBufferAttribute)); - builder.setHero(CBean2Proto.getHero(hero)); + builder.setHero(CBean2Proto.getHero(userInMem,hero)); Map guildSkill = userInMem.getGuildMyInfo().getGuildSkill(); int profession = SCHero.getsCHero().get(hero.getTemplateId()).getProfession(); Integer skill = guildSkill.getOrDefault(profession, 0); 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 54337bf71..998006b2a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -24,6 +24,7 @@ import util.StringUtil; import util.TimeUtils; import java.util.*; +import java.util.stream.Collectors; public class CBean2Proto { @@ -205,7 +206,7 @@ public class CBean2Proto { return userMountLists; } - public static CommonProto.Hero getHero(Hero hero){ + public static CommonProto.Hero getHero(User user, Hero hero){ List soulPoss = new ArrayList<>(); Map soulEquipMap = hero.getSoulEquipByPositionMap(); if(soulEquipMap!=null&&!soulEquipMap.isEmpty()){ @@ -216,24 +217,26 @@ public class CBean2Proto { soulPoss.add(builder.build()); } } + return CommonProto.Hero - .newBuilder() - .setId(hero.getId()) - .setHeroId(hero.getTemplateId()) - .setLevel(hero.getOriginalLevel()) - .setStar(hero.getStar()) - .setBreakId(hero.getBreakId()) - .setStarBreakId(hero.getStarBreakId()) - .setCreateTime(hero.getCreateTime()) - .addAllEquipIdList(hero.getEquipByPositionMap().values()) - .setEspecialEquipLevel(hero.getEspecialEquipLevel()) - .addAllSoulPos(soulPoss) - .setLockState(hero.getIsLock()) - .addAllJewels(hero.getJewelInfo()) - .setCreatetype(hero.getCreateType()) - .setChangeId(hero.getChangeId()) - .setSkinId(hero.getSkin()) - .build(); + .newBuilder() + .setId(hero.getId()) + .setHeroId(hero.getTemplateId()) + .setLevel(hero.getOriginalLevel()) + .setStar(hero.getStar()) + .setBreakId(hero.getBreakId()) + .setStarBreakId(hero.getStarBreakId()) + .setCreateTime(hero.getCreateTime()) + .addAllEquipIdList(hero.getEquipByPositionMap().values()) + .setEspecialEquipLevel(hero.getEspecialEquipLevel()) + .addAllSoulPos(soulPoss) + .setLockState(hero.getIsLock()) + .addAllJewels(hero.getJewelInfo()) + .setCreatetype(hero.getCreateType()) + .setChangeId(hero.getChangeId()) + .setSkinId(hero.getSkin()) + .addAllSealIdList(getSealIdListByHero(user,hero)) + .build(); } /* public static CommonProto.Hero getRobotHero(SCHero scHero, SArenaRobotConfig sArenaRobotConfig) throws Exception { @@ -723,4 +726,24 @@ public class CBean2Proto { }); return list; } + + /** + * 获取英雄身上的神印id列表 + * @param user + * @param hero + * @return + */ + private static List getSealIdListByHero(User user, Hero hero){ + ArrayList list = new ArrayList<>(); + Collection values = user.getHeroManager().getPurpleMansionSeal().values(); + for (PurpleMansionSeal v : values) { + if (v.getState() == 1){ + if (v.getType() == 1 && !v.getSubId().equals(hero.getId())){ + continue; + } + list.add(v.getSealId()); + } + } + return list; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index 592e9d318..6e8966ee3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -1276,7 +1276,7 @@ public class ItemUtil { heroManager.addHero(hero); // 鸿蒙阵推送 HeroLogic.getInstance().addOrUpdateHongmeng(OnlineUserManager.getSessionByUid(user.getId())); - heroList.add(CBean2Proto.getHero(hero)); + heroList.add(CBean2Proto.getHero(user,hero)); SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); if (scHero.getStar() >= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_lottery_content_parm)) { //策划资质改成星级 String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("lamp_lottery_content", new Object[]{playerInfoManager.getNickName(), scHero.getStar(), scHero.getReadingName()},new int[]{0,0,1});