From d0a68e81c5f2c6e4b5f14e1c09d91753deb9d893 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Mon, 11 Oct 2021 14:21:23 +0800 Subject: [PATCH 01/22] =?UTF-8?q?=E7=A5=9E=E9=AD=82=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/exception/ErrorCode.java | 1 + .../hero/HeroGodSoulBindRequestHandler.java | 50 +++++++++++++++++++ .../java/com/ljsd/jieling/logic/dao/Hero.java | 49 ++++++++++++++++++ 3 files changed, 100 insertions(+) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java b/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java index 4d312b3bc..97dcf3fec 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java @@ -173,6 +173,7 @@ public enum ErrorCode implements IErrorCode { HONGMENG_ING(142,"英雄在鸿蒙阵中,操作失败"), CHAT_NOT_CROSS(143,"聊天检查,没有跨服分组"), SIXIANG_UP_LIMIT(144,"强化已达上限"), + GOD_SOUL_BIND(145,"选中英雄已被当前神魂绑定,操作失败"), ; private static final Set CodeSet = new HashSet<>(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java new file mode 100644 index 000000000..1764f6cc2 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java @@ -0,0 +1,50 @@ +package com.ljsd.jieling.handler.hero; +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.dao.Hero; +import com.ljsd.jieling.logic.dao.HeroManager; +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.HeroInfoProto; +import rpc.protocols.MessageTypeProto; + +import java.util.*; + +@Component +public class HeroGodSoulBindRequestHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.HERO_GOD_SOUL_BIND_REQUEST; + } + + //神魂进阶绑定协议 + @Override + public void processWithProto(ISession session, HeroInfoProto.HeroGodSoulBindRequest proto) throws Exception { + String heroId=proto.getHeroId(); + int godSoulLv=proto.getGodSoulLv(); + ListbindHeroList= proto.getBindHerosList(); + int uid = session.getUid(); + User user = UserManager.getUser(uid); + HeroManager heroManager= user.getHeroManager(); + Hero upHero=heroManager.getHero(heroId); + for (String _heroId : bindHeroList) { + if (upHero.CheckGodSoulIsBind(_heroId)) { + LOGGER.error("选中的英雄已经被当前升级神魂英雄绑定"); + throw new ErrorCodeException(ErrorCode.GOD_SOUL_BIND); + } + } + for (String _bindHeroId : bindHeroList) { + Hero bindHero=heroManager.getHero(_bindHeroId); + bindHero.setGodSoulBeBindMap(1,heroId,godSoulLv); + } + upHero.setGodSoulBindMap(1,godSoulLv,bindHeroList); + for (String bindHeroId : bindHeroList) { + heroManager.getHero(bindHeroId).setGodSoulBeBindMap(1,heroId,godSoulLv); + } + MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.HERO_GOD_SOUL_BIND_RESPONSE_VALUE, null,true); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java index 63c20a662..d9e2fa9a6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java @@ -55,6 +55,12 @@ public class Hero extends MongoBase implements Comparable,Cloneable { private int skin; + ///神魂绑定英雄 神魂等级: + private Map>godSoulBindMap=new HashMap<>(); + + //被神魂绑定英雄 英雄动态id:英雄神魂等级(反绑) + private MapgodSoulBeBindMap=new HashMap<>(); + public Hero() { //绑定关系 this.setRootCollection(User._COLLECTION_NAME); @@ -463,6 +469,49 @@ public class Hero extends MongoBase implements Comparable,Cloneable { updateString("skin", skin); } + public Map> getGodSoulBindMap() { + return godSoulBindMap; + } + + ///神魂绑定 changeType 1:增加或者修改 2:移除 + public void setGodSoulBindMap(int changeType,int lv,ListheroIds) { + if (changeType==1){ + godSoulBindMap.put(lv,heroIds); + }else { + for (Map.Entry> integerSetEntry : godSoulBindMap.entrySet()) { + if (integerSetEntry.getKey()>=lv){ + godSoulBindMap.remove(integerSetEntry.getKey()); + } + } + } + updateString("godSoulBindMap", godSoulBindMap); + } + + public Map getGodSoulBeBindMap() { + return godSoulBeBindMap; + } + + ///设置被神魂绑定关系 changeType 1:增加 2:移除 + public void setGodSoulBeBindMap(int changeType,String heroId,int godSoulLv) { + if (changeType==1){ + godSoulBeBindMap.put(heroId,godSoulLv); + }else{ + godSoulBeBindMap.remove(heroId); + } + updateString("godSoulBeBindMap", godSoulBeBindMap); + } + + ///检测该英雄是否已经被当前英雄绑定 + public boolean CheckGodSoulIsBind(String _heroId){ + for (Map.Entry> listEntry : godSoulBindMap.entrySet()) { + if (listEntry.getValue().contains(_heroId)){ + return true; + } + } + return false; + } + + @Override public int compareTo(Hero o) { int compareValue = o.getOriginalLevel() - this.getOriginalLevel(); From afa7a8932abde11a19025692b3c842693d9933ee Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Thu, 21 Oct 2021 18:31:41 +0800 Subject: [PATCH 02/22] =?UTF-8?q?=E7=A5=9E=E5=B0=86=E7=A5=9E=E9=AD=82?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hero/HeroGodSoulBindRequestHandler.java | 5 +--- .../ljsd/jieling/logic/dao/HeroManager.java | 26 +++++++++++++++++-- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java index 1764f6cc2..ba8716ecb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java @@ -37,14 +37,11 @@ public class HeroGodSoulBindRequestHandler extends BaseHandler>godSoulBindMap=hero.getGodSoulBindMap(); + for (Map.Entry> integerListEntry : godSoulBindMap.entrySet()) { + ListheroList=integerListEntry.getValue(); + for (String bindId : heroList) { + Hero bingHero= heroMap.get(bindId); + bingHero.setGodSoulBeBindMap(2,heroId,0); + } + } + MapgodSoulBeBindMap=hero.getGodSoulBeBindMap(); + for (Map.Entry stringIntegerEntry : godSoulBeBindMap.entrySet()) { + Hero bingHero= heroMap.get(stringIntegerEntry.getKey()); + bingHero.setGodSoulBindMap(2,stringIntegerEntry.getValue(),null); } } From 24d471a7eda7781b85d77262c4a64f6af261f526 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Fri, 22 Oct 2021 13:20:17 +0800 Subject: [PATCH 03/22] =?UTF-8?q?=E7=A5=9E=E9=AD=82=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9=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 | 2 +- .../ljsd/jieling/logic/hero/HeroLogic.java | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) 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 30aab7c39..05921e82e 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 @@ -266,7 +266,7 @@ public class HeroManager extends MongoBase { } } - ///移除英雄设置相关神魂信息 + ///移除英雄设置神魂绑定相关信息 public void removeHeroGodSoul(String heroId){ Hero hero= heroMap.get(heroId); Map>godSoulBindMap=hero.getGodSoulBindMap(); 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 6b875ce6c..01ac785cd 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 @@ -5757,4 +5757,33 @@ public class HeroLogic { fBuilder.setLikableRemainTime(remainTime); } + ///神魂绑定检测条件是否满足 + public boolean CheckHeroBindCondition(User user,String heroId,ListbindHeroList,int heroRankupId,int needNum){ + SHeroRankupGroup heroRankupGroup=STableManager.getConfig(SHeroRankupGroup.class).get(heroRankupId); + Hero hero= user.getHeroManager().getHero(heroId); + int num=0; + for (String heroDId : bindHeroList) { + Hero bindHero= user.getHeroManager().getHero(heroDId); + if (bindHero.getStar()0){ + if (bindHero.getTemplateId()==heroRankupGroup.getIsId()) { + num++; + } + }else if(heroRankupGroup.getIssame()>0) { + if (bindHero.getTemplateId()==hero.getTemplateId()) { + num++; + } + }else { + SCHero heroConfig=SCHero.getsCHero().get(bindHero.getTemplateId()); + SCHero bindHeroConfig=SCHero.getsCHero().get(bindHero.getTemplateId()); + if (heroConfig.getPropertyName()==bindHeroConfig.getPropertyName()){ + num++; + } + } + if (num>=needNum){ + return true; + } + } + return false; + } } From d2b1ce8966569bc363d06f969fe235d7dac5e6c7 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Fri, 22 Oct 2021 14:05:36 +0800 Subject: [PATCH 04/22] =?UTF-8?q?=E7=A5=9E=E9=AD=82=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/hero/HeroGodSoulBindRequestHandler.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java index ba8716ecb..2c4fd0b13 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java @@ -8,6 +8,7 @@ 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 config.SCHero; import org.springframework.stereotype.Component; import rpc.protocols.HeroInfoProto; import rpc.protocols.MessageTypeProto; @@ -31,6 +32,7 @@ public class HeroGodSoulBindRequestHandler extends BaseHandler Date: Fri, 22 Oct 2021 16:56:32 +0800 Subject: [PATCH 05/22] =?UTF-8?q?=E7=A5=9E=E9=AD=82=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/exception/ErrorCode.java | 1 + .../hero/HeroGodSoulBindRequestHandler.java | 12 +++++++++++- .../java/com/ljsd/jieling/logic/dao/Hero.java | 3 ++- .../com/ljsd/jieling/util/CBean2Proto.java | 10 +++++++++- tablemanager/src/main/java/config/SCHero.java | 18 ++++++++++++++++++ 5 files changed, 41 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java b/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java index 17f587f37..cb593a939 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java @@ -177,6 +177,7 @@ public enum ErrorCode implements IErrorCode { RIDING_SWARD_BET_TWO(146,"一轮比赛最多押注两次!"), PRACTICE_LEVE_DOWN(147,"修行等级不足"), GOD_SOUL_BIND(148,"选中英雄已被当前神魂绑定,操作失败"), + HANDLE_FAILED(149,"操作失败"), ; private static final Set CodeSet = new HashSet<>(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java index 2c4fd0b13..b2a08a5b3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java @@ -6,6 +6,7 @@ import com.ljsd.jieling.logic.dao.Hero; import com.ljsd.jieling.logic.dao.HeroManager; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.MessageUtil; import config.SCHero; @@ -33,8 +34,17 @@ public class HeroGodSoulBindRequestHandler extends BaseHandler,Cloneable { } ///检测该英雄是否已经被当前英雄绑定 - public boolean CheckGodSoulIsBind(String _heroId){ + public boolean CheckGodSoulIsBind(int level,String _heroId){ for (Map.Entry> listEntry : godSoulBindMap.entrySet()) { + if (listEntry.getKey()==level)continue; if (listEntry.getValue().contains(_heroId)){ return true; } 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 be3ebc913..c9510448e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -403,7 +403,14 @@ public class CBean2Proto { soulPoss.add(builder.build()); } } - + ListgodSoulList=new ArrayList<>(); + for (Map.Entry> godSoul : hero.getGodSoulBindMap().entrySet()) { + CommonProto.HeroGodSoulInfo godSoulInfo=CommonProto.HeroGodSoulInfo.newBuilder() + .setLevel(godSoul.getKey()) + .addAllHeros(godSoul.getValue()) + .build(); + godSoulList.add(godSoulInfo); + } return CommonProto.Hero .newBuilder() .setId(hero.getId()) @@ -421,6 +428,7 @@ public class CBean2Proto { .setCreatetype(hero.getCreateType()) .setChangeId(hero.getChangeId()) .setSkinId(hero.getSkin()) + .addAllGodSoulList(godSoulList) .build(); } diff --git a/tablemanager/src/main/java/config/SCHero.java b/tablemanager/src/main/java/config/SCHero.java index 33e196b85..74d633413 100644 --- a/tablemanager/src/main/java/config/SCHero.java +++ b/tablemanager/src/main/java/config/SCHero.java @@ -64,6 +64,12 @@ public class SCHero implements BaseConfig{ private int joinWishDay; + private int[][] soul; + + private int[][] soulSkill; + + private int isSoulOpen; + private Map secondaryFactorMap; private Map> skillListByStar; @@ -360,4 +366,16 @@ public class SCHero implements BaseConfig{ public int getJoinWishDay() { return joinWishDay; } + + public int[][] getSoul() { + return soul; + } + + public int[][] getSoulSkill() { + return soulSkill; + } + + public int getIsSoulOpen() { + return isSoulOpen; + } } From ccf037d878de7b340113ff0ccb83164490a264ee Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Mon, 25 Oct 2021 15:10:16 +0800 Subject: [PATCH 06/22] =?UTF-8?q?=E7=A5=9E=E9=AD=82=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/dao/Hero.java | 8 ++++++++ .../src/main/java/com/ljsd/jieling/util/CBean2Proto.java | 1 + 2 files changed, 9 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java index a89a27b3d..22d8c4edf 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java @@ -58,6 +58,8 @@ public class Hero extends MongoBase implements Comparable,Cloneable { ///神魂绑定英雄 神魂等级: private Map>godSoulBindMap=new HashMap<>(); + private int godSoulLv; + //被神魂绑定英雄 英雄动态id:英雄神魂等级(反绑) private MapgodSoulBeBindMap=new HashMap<>(); @@ -484,6 +486,8 @@ public class Hero extends MongoBase implements Comparable,Cloneable { } } } + this.godSoulLv=godSoulBindMap.size(); + updateString("godSoulLv", godSoulLv); updateString("godSoulBindMap", godSoulBindMap); } @@ -491,6 +495,10 @@ public class Hero extends MongoBase implements Comparable,Cloneable { return godSoulBeBindMap; } + public int getGodSoulLv() { + return godSoulLv; + } + ///设置被神魂绑定关系 changeType 1:增加 2:移除 public void setGodSoulBeBindMap(int changeType,String heroId,int godSoulLv) { if (changeType==1){ 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 c9510448e..741ea2c60 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -429,6 +429,7 @@ public class CBean2Proto { .setChangeId(hero.getChangeId()) .setSkinId(hero.getSkin()) .addAllGodSoulList(godSoulList) + .setGodSoulLv(hero.getGodSoulLv()) .build(); } From 30a3220741116293b8e4888f91114c134865aa7f Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Tue, 26 Oct 2021 16:26:35 +0800 Subject: [PATCH 07/22] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=A5=9E=E5=B0=86?= =?UTF-8?q?=E7=A5=9E=E9=AD=82=E7=9B=B8=E5=85=B3=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/fight/FamilyHeroInfo.java | 8 +++++++- .../handler/activity/TasuilingxiaoHandler.java | 2 +- .../handler/champion/ChampinGetHandler.java | 2 ++ .../handler/champion/ChampionBetInfoHandler.java | 2 ++ .../java/com/ljsd/jieling/kefu/Cmd_role_gm.java | 2 +- .../com/ljsd/jieling/logic/blood/BloodLogic.java | 2 +- .../java/com/ljsd/jieling/logic/dao/TaSuiHero.java | 9 ++++++++- .../ljsd/jieling/logic/expedition/BattleNode.java | 2 +- .../ljsd/jieling/logic/expedition/SpecialNode.java | 2 +- .../ljsd/jieling/logic/family/GuildFightLogic.java | 1 + .../com/ljsd/jieling/logic/player/PlayerLogic.java | 14 ++++++++------ .../java/com/ljsd/jieling/util/CBean2Proto.java | 2 +- 12 files changed, 34 insertions(+), 14 deletions(-) diff --git a/fightmanager/src/main/java/com/ljsd/fight/FamilyHeroInfo.java b/fightmanager/src/main/java/com/ljsd/fight/FamilyHeroInfo.java index 1ec37bc86..218c4d8d4 100644 --- a/fightmanager/src/main/java/com/ljsd/fight/FamilyHeroInfo.java +++ b/fightmanager/src/main/java/com/ljsd/fight/FamilyHeroInfo.java @@ -9,6 +9,7 @@ public class FamilyHeroInfo { private int star; private Map attribute; private int position; + private int godSoulLv; public int getTempleteId() { return templeteId; @@ -22,6 +23,10 @@ public class FamilyHeroInfo { return star; } + public int getGodSoulLv() { + return godSoulLv; + } + public Map getAttribute() { return attribute; } @@ -47,12 +52,13 @@ public class FamilyHeroInfo { } - public FamilyHeroInfo(int templeteId, int level, int star, Map attribute, int position) { + public FamilyHeroInfo(int templeteId, int level, int star, Map attribute, int position,int godSoulLv) { this.templeteId = templeteId; this.level = level; this.star = star; this.attribute = attribute; this.position = position; + this.godSoulLv=godSoulLv; } public FamilyHeroInfo(int templeteId, int level, int star, Map attribute) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/TasuilingxiaoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/TasuilingxiaoHandler.java index ff62fe19b..7ede4a49f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/TasuilingxiaoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/TasuilingxiaoHandler.java @@ -137,7 +137,7 @@ public class TasuilingxiaoHandler extends BaseHandler heroMap = new HashMap<>(); for(TeamPosHeroInfo hero:teamPosForHero){ Hero myHero = user.getHeroManager().getHero(hero.getHeroId()); - TaSuiHero taSuiHero = new TaSuiHero(myHero.getTemplateId(),myHero.getOriginalLevel(),myHero.getStar()); + TaSuiHero taSuiHero = new TaSuiHero(myHero.getTemplateId(),myHero.getOriginalLevel(),myHero.getStar(),myHero.getGodSoulLv()); heroMap.put(hero.getPosition(),taSuiHero); } user.getHeroManager().setTaSuiHeroMap(heroMap); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/champion/ChampinGetHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/champion/ChampinGetHandler.java index 6d342d569..819247942 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/champion/ChampinGetHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/champion/ChampinGetHandler.java @@ -165,6 +165,7 @@ public class ChampinGetHandler extends BaseHandler { .setStar(familyHeroInfo.getStar()) .setLevel(familyHeroInfo.getLevel()) .setPosition(familyHeroInfo.getPosition()) + .setGodSoulLv(familyHeroInfo.getGodSoulLv()) .build() ); } @@ -201,6 +202,7 @@ public class ChampinGetHandler extends BaseHandler { .setStar(familyHeroInfo.getStar()) .setLevel(familyHeroInfo.getLevel()) .setPosition(familyHeroInfo.getPosition()) + .setGodSoulLv(familyHeroInfo.getGodSoulLv()) .build() ); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/champion/ChampionBetInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/champion/ChampionBetInfoHandler.java index 329564471..1ae55501f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/champion/ChampionBetInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/champion/ChampionBetInfoHandler.java @@ -197,6 +197,7 @@ public class ChampionBetInfoHandler extends BaseHandler robotHeroAttribute = HeroLogic.getInstance().calRobotHeroAttribute(scHero, robotLevel, 0, differDemonsId, differDemonsLv, false); - heroAllAttribute.put(heroTid.toString(), new FamilyHeroInfo(heroTid, robotLevel, heroStar, robotHeroAttribute,inner++)); + heroAllAttribute.put(heroTid.toString(), new FamilyHeroInfo(heroTid, robotLevel, heroStar, robotHeroAttribute,inner++,0)); // String property = HeroLogic.getInstance().getRobotHeroProperty(sArenaRobotConfig,scHero,propertySb,robotHeroAttribute).toString(); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/blood/BloodLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/blood/BloodLogic.java index be3b82183..846a27c9e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/blood/BloodLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/blood/BloodLogic.java @@ -73,7 +73,7 @@ public class BloodLogic { } } int position = heroInfo.getPosition(); - heroAllAttribute.put(heroInfo.getHeroId(), new FamilyHeroInfo(hero.getTemplateId(), hero.getLevel(user.getHeroManager()),hero.getStar(), heroAttributeMap,position)); + heroAllAttribute.put(heroInfo.getHeroId(), new FamilyHeroInfo(hero.getTemplateId(), hero.getLevel(user.getHeroManager()),hero.getStar(), heroAttributeMap,position,hero.getGodSoulLv())); } return heroAllAttribute; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/TaSuiHero.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/TaSuiHero.java index a04a7e3d9..f90259f20 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/TaSuiHero.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/TaSuiHero.java @@ -13,6 +13,8 @@ public class TaSuiHero { private int star; + private int godSoulLv; + public int getTempId() { return tempId; } @@ -25,9 +27,14 @@ public class TaSuiHero { return star; } - public TaSuiHero(int tempId, int leve, int star) { + public int getGodSoulLv() { + return godSoulLv; + } + + public TaSuiHero(int tempId, int leve, int star,int godSoulLv) { this.tempId = tempId; this.leve = leve; this.star = star; + this.godSoulLv=godSoulLv; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/BattleNode.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/BattleNode.java index 64828ce8c..ae76aa003 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/BattleNode.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/BattleNode.java @@ -200,7 +200,7 @@ public class BattleNode extends AbstractExpedition { Map longAttribute = new HashMap<>(); robotHeroAttribute.forEach((k,v)->longAttribute.put(k,(long)v)); force+=HeroLogic.getInstance().calForce(longAttribute); - heroAllAttribute.put(id.toString(), new FamilyHeroInfo(id, property.getId(), property.getStar(), longAttribute,innerPosition++)); + heroAllAttribute.put(id.toString(), new FamilyHeroInfo(id, property.getId(), property.getStar(), longAttribute,innerPosition++,0)); } fightInfo.setForce(force); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/SpecialNode.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/SpecialNode.java index 112db70c2..1e6cd753d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/SpecialNode.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/SpecialNode.java @@ -70,7 +70,7 @@ public class SpecialNode extends AbstractExpedition { int force = HeroLogic.getInstance().calForce(longAttribute); fightInfo.setForce(force); //试炼节点 放到第二个位置上 - heroAllAttribute.put(Integer.toString(heroId), new FamilyHeroInfo(heroId,level,robot.getStar(),longAttribute,2)); + heroAllAttribute.put(Integer.toString(heroId), new FamilyHeroInfo(heroId,level,robot.getStar(),longAttribute,2,0)); fightInfo.updateHeroSkill(String.valueOf(heroId),skills.substring(0,skills.length()-1)); // 获取灵兽信息 SRobotProperty property = STableManager.getConfig(SRobotProperty.class).get(level); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java index b8e3aa7a1..e97ea45ba 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java @@ -131,6 +131,7 @@ public class GuildFightLogic { .setHeroTid(familyHeroInfo.getTempleteId()) .setStar(familyHeroInfo.getStar()) .setLevel(familyHeroInfo.getLevel()) + .setGodSoulLv(familyHeroInfo.getGodSoulLv()) .build() ); Map attribute = entry.getValue().getAttribute(); 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 83730f64e..ca60cb314 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 @@ -572,7 +572,7 @@ public class PlayerLogic { Map taSuiHeroMap = user.getHeroManager().getTaSuiHeroMap(); for(Map.Entry entry:taSuiHeroMap.entrySet()){ TaSuiHero hero = entry.getValue(); - CommonProto.TeamSimpleInfo info = CommonProto.TeamSimpleInfo.newBuilder().setHeroTid(hero.getTempId()).setLevel(hero.getLeve()).setStar(hero.getStar()).setPosition(entry.getKey()).build(); + CommonProto.TeamSimpleInfo info = CommonProto.TeamSimpleInfo.newBuilder().setHeroTid(hero.getTempId()).setLevel(hero.getLeve()).setStar(hero.getStar()).setPosition(entry.getKey()).setGodSoulLv(hero.getGodSoulLv()).build(); teamInfo.addTeam(info); } teamInfo.setTotalForce(user.getHeroManager().getTaSuiLingXiaoRankForce()); @@ -634,7 +634,7 @@ public class PlayerLogic { for(Map.Entry item : sArenaRobotConfig.getHeroMapList().entrySet()){ Integer heroTid = item.getKey(); Integer heroStar = item.getValue().getStar(); - teamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder().setHeroid(String.valueOf(heroTid)).setHeroTid(heroTid).setLevel(sArenaRobotConfig.getRoleLv()).setStar(heroStar).setPosition(position++).build()); + teamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder().setHeroid(String.valueOf(heroTid)).setHeroTid(heroTid).setLevel(sArenaRobotConfig.getRoleLv()).setStar(heroStar).setPosition(position++).setGodSoulLv( item.getValue().getGodSoulLv()).build()); } oneInfo.setTeam(teamInfo); //TODO 玉虚论道三队伍 @@ -734,7 +734,7 @@ public class PlayerLogic { for(Map.Entry item : sArenaRobotConfig.getHeroMapList().entrySet()){ Integer heroTid = item.getKey(); Integer heroStar = item.getValue().getStar(); - teamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder().setHeroid(String.valueOf(heroTid)).setHeroTid(heroTid).setLevel(sArenaRobotConfig.getRoleLv()).setStar(heroStar).setPosition(position++).build()); + teamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder().setHeroid(String.valueOf(heroTid)).setHeroTid(heroTid).setLevel(sArenaRobotConfig.getRoleLv()).setStar(heroStar).setPosition(position++).setGodSoulLv(item.getValue().getGodSoulLv()).build()); } teamInfo.setTotalForce(sArenaRobotConfig.getYxldTotalForce1()); @@ -742,7 +742,7 @@ public class PlayerLogic { for(Map.Entry item : sArenaRobotConfig.getHeroMapList2().entrySet()){ Integer heroTid = item.getKey(); Integer heroStar = item.getValue().getStar(); - teamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder().setHeroid(String.valueOf(heroTid)).setHeroTid(heroTid).setLevel(sArenaRobotConfig.getRoleLv()).setStar(heroStar).setPosition(position++).build()); + teamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder().setHeroid(String.valueOf(heroTid)).setHeroTid(heroTid).setLevel(sArenaRobotConfig.getRoleLv()).setStar(heroStar).setPosition(position++).setGodSoulLv(item.getValue().getGodSoulLv()).build()); } teamInfo.setTotalForce(sArenaRobotConfig.getYxldTotalForce2()); @@ -750,7 +750,7 @@ public class PlayerLogic { for(Map.Entry item : sArenaRobotConfig.getHeroMapList3().entrySet()){ Integer heroTid = item.getKey(); Integer heroStar = item.getValue().getStar(); - teamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder().setHeroid(String.valueOf(heroTid)).setHeroTid(heroTid).setLevel(sArenaRobotConfig.getRoleLv()).setStar(heroStar).setPosition(position++).build()); + teamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder().setHeroid(String.valueOf(heroTid)).setHeroTid(heroTid).setLevel(sArenaRobotConfig.getRoleLv()).setStar(heroStar).setPosition(position++).setGodSoulLv(item.getValue().getGodSoulLv()).build()); } teamInfo.setTotalForce(sArenaRobotConfig.getYxldTotalForce3()); } @@ -774,7 +774,7 @@ public class PlayerLogic { Map taSuiHeroMap = user.getHeroManager().getTaSuiHeroMap(); for(Map.Entry entry:taSuiHeroMap.entrySet()){ TaSuiHero hero = entry.getValue(); - CommonProto.TeamSimpleInfo info = CommonProto.TeamSimpleInfo.newBuilder().setHeroTid(hero.getTempId()).setLevel(hero.getLeve()).setStar(hero.getStar()).setPosition(entry.getKey()).build(); + CommonProto.TeamSimpleInfo info = CommonProto.TeamSimpleInfo.newBuilder().setHeroTid(hero.getTempId()).setLevel(hero.getLeve()).setStar(hero.getStar()).setPosition(entry.getKey()).setGodSoulLv(hero.getGodSoulLv()).build(); teamInfo.addTeam(info); } teamInfo.setTotalForce(user.getHeroManager().getTaSuiLingXiaoRankForce()); @@ -899,6 +899,7 @@ public class PlayerLogic { .setStar(hero.getStar()) .setPosition(heroInfo.getPosition()) .setSkinId(hero.getSkin()) + .setGodSoulLv(hero.getGodSoulLv()) .build()); } } @@ -969,6 +970,7 @@ public class PlayerLogic { .setStar(hero.getStar()) .setPosition(heroInfo.getPosition()) .setSkinId(hero.getSkin()) + .setGodSoulLv(hero.getGodSoulLv()) .build()); } } 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 741ea2c60..4680abb6e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -1082,7 +1082,7 @@ public class CBean2Proto { } 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(); + return CommonProto.TeamSimpleInfo.newBuilder().setHeroid(hero.getId()).setHeroTid(hero.getTemplateId()).setLevel(hero.getLevel(user.getHeroManager())).setStar(hero.getStar()).setPosition(position).setSkinId(hero.getSkin()).setGodSoulLv(hero.getGodSoulLv()).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(); From e16f2947cac0f044ff89eac2d1c2601197f2da3e Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Wed, 27 Oct 2021 13:39:12 +0800 Subject: [PATCH 08/22] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=A5=9E=E9=AD=82?= =?UTF-8?q?=E7=AD=89=E7=BA=A7=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java | 1 + 1 file changed, 1 insertion(+) 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 4680abb6e..b420d263b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -389,6 +389,7 @@ public class CBean2Proto { .setCreatetype(hero.getCreateType()) .setChangeId(hero.getChangeId()) .setSkinId(hero.getSkin()) + .setGodSoulLv(hero.getGodSoulLv()) .build(); } From 434b929b87eb2fd0bf50c4d89733e19e05c0eeb0 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Wed, 27 Oct 2021 16:32:09 +0800 Subject: [PATCH 09/22] =?UTF-8?q?=E7=A5=9E=E9=AD=82=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=BC=80=E5=90=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java | 1 + 1 file changed, 1 insertion(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java index d7ccc6443..7e99fb305 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java @@ -72,6 +72,7 @@ public enum FunctionIdEnum { CrossSevenWorld(112,new SevenWorldFunction()),//七界试炼 FourQua(113,null),//四象心法 Likable(114,null),//好感度 + GodSoul(116,null),//神魂 WeekGood(9091,null), ; From 540018f4842062c0b98bf5942dbe22b2f3b338e9 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Thu, 28 Oct 2021 14:23:27 +0800 Subject: [PATCH 10/22] =?UTF-8?q?=E7=A5=9E=E9=AD=82=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/hero/HeroGodSoulBindRequestHandler.java | 4 ++++ .../src/main/java/com/ljsd/jieling/logic/dao/Hero.java | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java index b2a08a5b3..6ef036075 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java @@ -34,6 +34,10 @@ public class HeroGodSoulBindRequestHandler extends BaseHandler,Cloneable { if (changeType==1){ godSoulBindMap.put(lv,heroIds); }else { - for (Map.Entry> integerSetEntry : godSoulBindMap.entrySet()) { - if (integerSetEntry.getKey()>=lv){ - godSoulBindMap.remove(integerSetEntry.getKey()); + int curLv= godSoulBindMap.size(); + for (int i = 1; i < curLv+1; i++) { + if (i>=lv){ + godSoulBindMap.remove(i); } } } From 149b0a21862994f0e9a27cddb123cbf1ee1322b0 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Thu, 28 Oct 2021 15:09:51 +0800 Subject: [PATCH 11/22] =?UTF-8?q?=E7=A5=9E=E9=AD=82=E6=8A=80=E8=83=BD?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E8=84=9A=E6=9C=AC=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/logic/hero/HeroLogic.java | 8 ++++++++ 1 file changed, 8 insertions(+) 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 5695d836a..9e7485f2b 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 @@ -1932,6 +1932,14 @@ public class HeroLogic { } }); + //神魂技能 + for (int i = 0; i < tempHero.getSoulSkill().length; i++) { + if (i Date: Thu, 28 Oct 2021 15:32:36 +0800 Subject: [PATCH 12/22] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B7=A8=E6=9C=8D?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E7=A5=9E=E5=B0=86=E7=A5=9E=E9=AD=82=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/CoreService.java | 1 + .../crossService/CrossServiceLogic.java | 1 + .../jieling/logic/dao/gm/ArenaOfHero.java | 9 ++ .../jieling/logic/player/PlayerLogic.java | 2 + .../ljsd/jieling/thrift/idl/ArenaOfHero.java | 110 +++++++++++++++++- .../com/ljsd/jieling/util/CBean2Proto.java | 1 + serverlogic/src/main/thrift/idl/core.thrift | 1 + .../ljsd/jieling/thrift/idl/ArenaOfHero.java | 110 +++++++++++++++++- 8 files changed, 225 insertions(+), 10 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/CoreService.java b/serverlogic/src/main/java/com/ljsd/CoreService.java index 2a5085881..d81cbe4bf 100644 --- a/serverlogic/src/main/java/com/ljsd/CoreService.java +++ b/serverlogic/src/main/java/com/ljsd/CoreService.java @@ -237,6 +237,7 @@ public class CoreService implements RPCRequestIFace.Iface { arenaOfHero.setCreateTime(hero.getCreateType()); arenaOfHero.setChangeId(hero.getChangeId()); arenaOfHero.setSkin(hero.getSkin()); + arenaOfHero.setGodSoulLv(hero.getGodSoulLv()); for (Map.Entry> entry : teamMap.entrySet()) { Integer teamId = entry.getKey(); List teamList = entry.getValue(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/crossService/CrossServiceLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/crossService/CrossServiceLogic.java index 14f758a9d..96879af5c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/crossService/CrossServiceLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/crossService/CrossServiceLogic.java @@ -241,6 +241,7 @@ public class CrossServiceLogic { arenaOfHero.setCreateTime(hero.getCreateType()); arenaOfHero.setChangeId(hero.getChangeId()); arenaOfHero.setSkin(hero.getSkin()); + arenaOfHero.setGodSoulLv(hero.getGodSoulLv()); for (Map.Entry> entry : teamMap.entrySet()) { Integer teamId = entry.getKey(); List teamList = entry.getValue(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/gm/ArenaOfHero.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/gm/ArenaOfHero.java index b06932eda..bb336554b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/gm/ArenaOfHero.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/gm/ArenaOfHero.java @@ -25,6 +25,7 @@ public class ArenaOfHero { private int createType; private int changeId; private int skin; + private int godSoulLv;//神魂等级 private Set jewelInfo = new HashSet<>(); private Map attributeMap = new HashMap<>(); private Map> attributeMapByTeam = new HashMap<>(); @@ -167,4 +168,12 @@ public class ArenaOfHero { public void setSkin(int skin) { this.skin = skin; } + + public int getGodSoulLv() { + return godSoulLv; + } + + public void setGodSoulLv(int godSoulLv) { + this.godSoulLv = godSoulLv; + } } 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 ca60cb314..7239f9288 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 @@ -1077,6 +1077,7 @@ public class PlayerLogic { .setStar(hero.getStar()) .setPosition(heroInfo.getPosition()) .setSkinId(hero.getSkin()) + .setGodSoulLv(hero.getGodSoulLv()) .build()); } } @@ -1157,6 +1158,7 @@ public class PlayerLogic { .setStar(hero.getStar()) .setPosition(heroInfo.getPosition()) .setSkinId(hero.getSkin()) + .setGodSoulLv(hero.getGodSoulLv()) .build()); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/thrift/idl/ArenaOfHero.java b/serverlogic/src/main/java/com/ljsd/jieling/thrift/idl/ArenaOfHero.java index c006af38c..2eb006953 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/thrift/idl/ArenaOfHero.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/thrift/idl/ArenaOfHero.java @@ -34,7 +34,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2021-10-21") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2021-10-28") public class ArenaOfHero implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ArenaOfHero"); @@ -55,6 +55,7 @@ public class ArenaOfHero implements org.apache.thrift.TBase, SchemeFactory> schemes = new HashMap, SchemeFactory>(); static { @@ -79,6 +80,7 @@ public class ArenaOfHero implements org.apache.thrift.TBase attributeMap; // optional public Map> attributeMapByTeam; // optional public Map> attributeMapByTeamBattle; // optional + public int godSoulLv; // optional /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ public enum _Fields implements org.apache.thrift.TFieldIdEnum { @@ -98,7 +100,8 @@ public class ArenaOfHero implements org.apache.thrift.TBase byName = new HashMap(); @@ -147,6 +150,8 @@ public class ArenaOfHero implements org.apache.thrift.TBase metaDataMap; static { Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); @@ -251,6 +257,8 @@ public class ArenaOfHero implements org.apache.thrift.TBase attributeMap; 16:optional map> attributeMapByTeam ; 17:optional map> attributeMapByTeamBattle ; + 18:optional i32 godSoulLv;//神魂等级 } struct PropertyItem { diff --git a/serverlogic/src/main/thrift/idl/gen-java/com/ljsd/jieling/thrift/idl/ArenaOfHero.java b/serverlogic/src/main/thrift/idl/gen-java/com/ljsd/jieling/thrift/idl/ArenaOfHero.java index c006af38c..2eb006953 100644 --- a/serverlogic/src/main/thrift/idl/gen-java/com/ljsd/jieling/thrift/idl/ArenaOfHero.java +++ b/serverlogic/src/main/thrift/idl/gen-java/com/ljsd/jieling/thrift/idl/ArenaOfHero.java @@ -34,7 +34,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2021-10-21") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2021-10-28") public class ArenaOfHero implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ArenaOfHero"); @@ -55,6 +55,7 @@ public class ArenaOfHero implements org.apache.thrift.TBase, SchemeFactory> schemes = new HashMap, SchemeFactory>(); static { @@ -79,6 +80,7 @@ public class ArenaOfHero implements org.apache.thrift.TBase attributeMap; // optional public Map> attributeMapByTeam; // optional public Map> attributeMapByTeamBattle; // optional + public int godSoulLv; // optional /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ public enum _Fields implements org.apache.thrift.TFieldIdEnum { @@ -98,7 +100,8 @@ public class ArenaOfHero implements org.apache.thrift.TBase byName = new HashMap(); @@ -147,6 +150,8 @@ public class ArenaOfHero implements org.apache.thrift.TBase metaDataMap; static { Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); @@ -251,6 +257,8 @@ public class ArenaOfHero implements org.apache.thrift.TBase Date: Fri, 29 Oct 2021 13:26:43 +0800 Subject: [PATCH 13/22] =?UTF-8?q?=E7=A5=9E=E9=AD=82=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E6=88=98=E6=96=97=E7=9B=B8=E5=85=B3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/map/behavior/BehaviorUtil.java | 1 + .../ljsd/jieling/logic/fight/FightUtil.java | 6 ++++ .../eventhandler/SevenWorldFightHandler.java | 1 + .../ljsd/jieling/logic/hero/HeroLogic.java | 30 ++++++++++++++----- .../jieling/logic/player/PlayerLogic.java | 12 ++++++-- 5 files changed, 41 insertions(+), 9 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java index 93ae0e4b6..45b22b06e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java @@ -269,6 +269,7 @@ public class BehaviorUtil { .setPosition(teamPosHeroInfo.getPosition()) .setStar(hero.getStar()) .setSkinId(hero.getSkin()) + .setGodSoulLv(hero.getGodSoulLv()) .build(); heroFightInfos.add(heroFightInfo); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java index e2964d59b..66a7c79e0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java @@ -331,6 +331,7 @@ public class FightUtil { .setStar(hero.getStar()) .setPosition(teamPosHeroInfo.getPosition()) .setSkinId(hero.getSkin()) + .setGodSoulLv(hero.getGodSoulLv()) .build(); heroFightInfos.add(heroFightInfo); } @@ -398,6 +399,7 @@ public class FightUtil { .setStar(hero.getStar()) .setPosition(teamPosHeroInfo.getPosition()) .setSkinId(hero.getSkin()) + .setGodSoulLv(hero.getGodSoulLv()) .build(); heroFightInfos.add(heroFightInfo); } @@ -438,6 +440,7 @@ public class FightUtil { .setPosition(teamPosHeroInfo.getPosition()) .setSkinId(hero.getSkin()) .setStar(hero.getStar()) + .setGodSoulLv(hero.getGodSoulLv()) .build(); heroFightInfos.add(heroFightInfo); } @@ -661,6 +664,7 @@ public class FightUtil { .setPosition(teamPosHeroInfo.getPosition()) .setStar(hero.getStar()) .setSkinId(hero.getSkin()) + .setGodSoulLv(hero.getGodSoulLv()) .build(); heroFightInfos.add(heroFightInfo); } @@ -707,6 +711,7 @@ public class FightUtil { .setPosition(teamPosHeroInfo.getPosition()) .setStar(hero.getStar()) .setSkinId(hero.getSkin()) + .setGodSoulLv((hero.getGodSoulLv())) .build(); heroFightInfos.add(heroFightInfo); } @@ -747,6 +752,7 @@ public class FightUtil { .setPosition(teamPosHeroInfo.getPosition()) .setStar(hero.getStar()) .setSkinId(hero.getSkin()) + .setGodSoulLv(hero.getGodSoulLv()) .build(); heroFightInfos.add(heroFightInfo); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/eventhandler/SevenWorldFightHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/eventhandler/SevenWorldFightHandler.java index 4657d2539..cdaa3c9c0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/eventhandler/SevenWorldFightHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/eventhandler/SevenWorldFightHandler.java @@ -109,6 +109,7 @@ public class SevenWorldFightHandler implements IFightEventProcesor { .setStar(hero.getStar()) .setSkinId(hero.getSkin()) .setForceScore(HeroLogic.getInstance().calTeamForce(user,teamId)) + .setGodSoulLv(hero.getGodSoulLv()) .build(); heroFightInfos.add(heroFightInfo); } 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 9adc5c24b..e6be3783a 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 @@ -68,6 +68,7 @@ import java.math.BigDecimal; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.IntToDoubleFunction; import java.util.stream.Collectors; public class HeroLogic { @@ -1932,15 +1933,10 @@ public class HeroLogic { } } }); - - //神魂技能 - for (int i = 0; i < tempHero.getSoulSkill().length; i++) { - if (i0){ + skillList.addAll(GetGodSoulSkill(hero.getTemplateId(),hero.getGodSoulLv())); } - return skillList; } @@ -2310,6 +2306,14 @@ public class HeroLogic { } sb.append(sPlayerHeadIcon.getSkill()[0][0]).append(DIVISION); } + + //神魂技能 + if (hero.getGodSoulLv()>0) { + ListgodSoulSkills= HeroLogic.getInstance().GetGodSoulSkill(hero.getTemplateId(),hero.getGodSoulLv()); + for (Integer godSoulSkill : godSoulSkills) { + sb.append(godSoulSkill).append(DIVISION); + } + } return sb; } @@ -5800,4 +5804,16 @@ public class HeroLogic { } return false; } + + ///获取英雄神魂技能 + public List GetGodSoulSkill(int heroTId,int godSoulLv){ + ListskillList=new ArrayList<>(); + SCHero tempHero = SCHero.getsCHero().get(heroTId); + for (int[] ints : tempHero.getSoulSkill()) { + if (ints[0]<=godSoulLv){ + skillList.add(ints[1]); + } + } + return skillList; + } } 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 a0e918569..6ca8288dc 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 @@ -572,7 +572,13 @@ public class PlayerLogic { Map taSuiHeroMap = user.getHeroManager().getTaSuiHeroMap(); for(Map.Entry entry:taSuiHeroMap.entrySet()){ TaSuiHero hero = entry.getValue(); - CommonProto.TeamSimpleInfo info = CommonProto.TeamSimpleInfo.newBuilder().setHeroTid(hero.getTempId()).setLevel(hero.getLeve()).setStar(hero.getStar()).setPosition(entry.getKey()).setGodSoulLv(hero.getGodSoulLv()).build(); + CommonProto.TeamSimpleInfo info = CommonProto.TeamSimpleInfo.newBuilder() + .setHeroTid(hero.getTempId()) + .setLevel(hero.getLeve()) + .setStar(hero.getStar()) + .setPosition(entry.getKey()) + .setGodSoulLv(hero.getGodSoulLv()) + .build(); teamInfo.addTeam(info); } teamInfo.setTotalForce(user.getHeroManager().getTaSuiLingXiaoRankForce()); @@ -1378,7 +1384,7 @@ public class PlayerLogic { CommonProto.Hero.Builder heroBuilder = CommonProto.Hero.newBuilder(). setLevel(hero.getLevel(user.getHeroManager())) .setEspecialEquipLevel(hero.getEspecialEquipLevel()) - .setStar(hero.getStar()).setId(hero.getId()) + .setStar(hero.getStar()).setId(hero.getId()).setGodSoulLv(hero.getGodSoulLv()) .setHeroId(hero.getTemplateId()) .setBreakId(hero.getBreakIdByHongMeng(user.getHeroManager())) .setStarBreakId(hero.getStarBreakId()); @@ -1423,6 +1429,7 @@ public class PlayerLogic { } // 皮肤 heroBuilder.setSkinId(hero.getSkin()); + heroBuilder.setGodSoulLv(hero.getGodSoulLv()); // 英雄技能 int profession = SCHero.getsCHero().get(hero.getTemplateId()).getProfession(); int skill = user.getGuildMyInfo().getGuildSkill().getOrDefault(profession, 0); @@ -1471,6 +1478,7 @@ public class PlayerLogic { } // 皮肤 heroBuilder.setSkinId(hero.getSkin()); + heroBuilder.setGodSoulLv(hero.getGodSoulLv()); // 英雄技能 int profession = SCHero.getsCHero().get(hero.getTemplateId()).getProfession(); int skill = query.getGuildSkill().getOrDefault(profession, 0); From 5c0c449856e43a19c6a056153b281753590495a3 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Mon, 1 Nov 2021 18:32:03 +0800 Subject: [PATCH 14/22] =?UTF-8?q?=E7=A5=9E=E9=AD=82=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E6=9D=A1=E4=BB=B6=E4=BB=A3=E7=A0=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hero/HeroGodSoulBindRequestHandler.java | 4 +- .../ljsd/jieling/logic/hero/HeroLogic.java | 51 +++++++++++-------- 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java index 6ef036075..3fe0ba560 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java @@ -38,13 +38,15 @@ public class HeroGodSoulBindRequestHandler extends BaseHandlerbindHeroList,int heroRankupId,int needNum){ + /** + * 检测神魂绑定方法 + * @param user + * @param heroId 当前神将 + * @param bindHeroList 绑定的神将列表 + * @param heroRankupId 神将绑定条件id + * @param needNum 需要神将数量 + * @param index 检测开始索引 + * @return + */ + public boolean CheckHeroBindCondition(User user,String heroId,ListbindHeroList,int heroRankupId,int needNum,int index){ + if (needNum+index>=bindHeroList.size())//首先判断数量是否满足条件 + { + return false; + } SHeroRankupGroup heroRankupGroup=STableManager.getConfig(SHeroRankupGroup.class).get(heroRankupId); - Hero hero= user.getHeroManager().getHero(heroId); - int num=0; - for (String heroDId : bindHeroList) { - Hero bindHero= user.getHeroManager().getHero(heroDId); - if (bindHero.getStar()0){ - if (bindHero.getTemplateId()==heroRankupGroup.getIsId()) { - num++; + for (int i = index; i < needNum+index; i++) { + Hero bindHero= user.getHeroManager().getHero(bindHeroList.get(i)); + Hero hero= user.getHeroManager().getHero(heroId); + if (bindHero.getStar()0){//需要指定神将 + if (bindHero.getTemplateId()!=heroRankupGroup.getIsId()) { + return false; } - }else if(heroRankupGroup.getIssame()>0) { - if (bindHero.getTemplateId()==hero.getTemplateId()) { - num++; + }else if(heroRankupGroup.getIssame()>0) {//需要相同神将 + if (bindHero.getTemplateId()!=hero.getTemplateId()) { + return false; } }else { - SCHero heroConfig=SCHero.getsCHero().get(bindHero.getTemplateId()); + SCHero heroConfig=SCHero.getsCHero().get(hero.getTemplateId()); SCHero bindHeroConfig=SCHero.getsCHero().get(bindHero.getTemplateId()); - if (heroConfig.getPropertyName()==bindHeroConfig.getPropertyName()){ - num++; + if (heroConfig.getPropertyName()!=bindHeroConfig.getPropertyName()){//需要同系神将 + return false; } } - if (num>=needNum){ - return true; - } } - return false; + return true; } ///获取英雄神魂技能 From 7c1b05d419a8ac765b81d32293b08d57f7a1462b Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Mon, 1 Nov 2021 18:54:48 +0800 Subject: [PATCH 15/22] =?UTF-8?q?-=E7=A5=9E=E9=AD=82=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 6a7100496..566f370b6 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 @@ -5786,7 +5786,7 @@ public class HeroLogic { * @return */ public boolean CheckHeroBindCondition(User user,String heroId,ListbindHeroList,int heroRankupId,int needNum,int index){ - if (needNum+index>=bindHeroList.size())//首先判断数量是否满足条件 + if (needNum+index>bindHeroList.size())//首先判断数量是否满足条件 { return false; } From 667c1a18451759350e1f7e5d768e7d35961ca6ad Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Tue, 2 Nov 2021 10:27:29 +0800 Subject: [PATCH 16/22] =?UTF-8?q?=E7=A5=9E=E9=AD=82=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E4=BF=AE=E6=94=B9=E6=8F=90=E4=BA=A4?= 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, 10 insertions(+), 2 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 566f370b6..c2c1d5b26 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 @@ -5808,8 +5808,16 @@ public class HeroLogic { }else { SCHero heroConfig=SCHero.getsCHero().get(hero.getTemplateId()); SCHero bindHeroConfig=SCHero.getsCHero().get(bindHero.getTemplateId()); - if (heroConfig.getPropertyName()!=bindHeroConfig.getPropertyName()){//需要同系神将 - return false; + if (heroRankupGroup.getIsSameClan()>0){//需要同系神将 + if (heroConfig.getPropertyName()!=bindHeroConfig.getPropertyName()){ + return false; + } + } + + if (heroRankupGroup.getIsSameJob()>0) {//需要同职业 + if (heroConfig.getProfession()!=bindHeroConfig.getProfession()){ + return false; + } } } } From 45d11881a1be51e6012e985ca3de5564f89f0f86 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Tue, 2 Nov 2021 10:28:26 +0800 Subject: [PATCH 17/22] =?UTF-8?q?=E6=BC=8F=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tablemanager/src/main/java/config/SHeroRankupGroup.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tablemanager/src/main/java/config/SHeroRankupGroup.java b/tablemanager/src/main/java/config/SHeroRankupGroup.java index daa872aa5..8f385e1c8 100644 --- a/tablemanager/src/main/java/config/SHeroRankupGroup.java +++ b/tablemanager/src/main/java/config/SHeroRankupGroup.java @@ -18,6 +18,8 @@ public class SHeroRankupGroup implements BaseConfig { private int[] items; private int[][] itemCamp; + + private int isSameJob; @Override public void init() throws Exception { @@ -50,4 +52,8 @@ public class SHeroRankupGroup implements BaseConfig { public int[][] getItemCamp() { return itemCamp; } + + public int getIsSameJob() { + return isSameJob; + } } \ No newline at end of file From fb69e8de2e0718343bd0beec9850b1ff1551845f Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Mon, 8 Nov 2021 00:06:49 +0800 Subject: [PATCH 18/22] =?UTF-8?q?=E5=91=A8=E5=8D=A1=E6=89=93=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/activity/WeekCardHandler.java | 4 +- .../handler/activity/WeekCardInfoHandler.java | 7 +- .../jieling/logic/GlobalDataManaager.java | 6 +- .../activity/activityLogic/WeekCardLogic.java | 69 ++++++++++++++++--- .../jieling/logic/store/BuyGoodsNewLogic.java | 4 +- 5 files changed, 69 insertions(+), 21 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/WeekCardHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/WeekCardHandler.java index d25402994..6e48f60cf 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/WeekCardHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/WeekCardHandler.java @@ -34,8 +34,7 @@ public class WeekCardHandler extends BaseHandler weekCard = user.getPlayerInfoManager().getWeekCard(); ActivityProto.WeekCardRewardResponse.Builder res = ActivityProto.WeekCardRewardResponse.newBuilder(); @@ -71,6 +70,5 @@ public class WeekCardHandler extends BaseHandler weekCardList = WeekCardLogic.getInstance().initAllWeekCardInfo(user); res.addAllAllWeekCardInfo(weekCardList); - MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.WeekCardInfoResponse.getNumber(), res.build(), true);*/ + MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.WeekCardInfoResponse.getNumber(), res.build(), true); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index 0eaaff511..a785e3a34 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -407,8 +407,6 @@ public class GlobalDataManaager implements IManager { public static void checkNeedReFlush(ISession session,User user,PlayerInfoProto.FivePlayerUpdateIndication.Builder fBuilder) throws Exception { // 需要隔天刷新的字段统一在这里处理 if (TimeUtils.isOverTime(0,user.getPlayerInfoManager().getLoginTime())) { - //周卡每日刷新 - //WeekCardLogic.getInstance().sendWeekCardInitInfo(session); //活动刷新 ActivityLogic.getInstance().flushEveryDay(user,fBuilder); PlayerLogic.getInstance().vipflushEveryDay(user,fBuilder); @@ -434,6 +432,10 @@ public class GlobalDataManaager implements IManager { SevenWorldLogic.getInstance().sevenWorldInfoIndication(session); // 御剑行 RidingSwardLogic.getInstance().zeroClearRidingSwardByUser(user); + //周卡每日刷新 + WeekCardLogic.getInstance().sendWeekCardInitInfo(session); + //周卡邮件发放未领取奖励 + WeekCardLogic.getInstance().sendWeekCardRewardMail(session); // GuildChallengeLogic.getInstance().resetBossDamage(user); if(TimeUtils.isSpanTime(user.getPlayerInfoManager().getLoginTime(),TimeUtils.now(),1,0)){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java index c60b80648..753655411 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java @@ -1,22 +1,25 @@ package com.ljsd.jieling.logic.activity.activityLogic; +import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.WeekCardInfo; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.MessageUtil; +import config.SErrorCodeEerverConfig; +import config.SWeekcardConfig; import config.SWeekcardRotationConfig; import manager.STableManager; import rpc.protocols.ActivityProto; import rpc.protocols.CommonProto; import rpc.protocols.MessageTypeProto; +import util.StringUtil; import util.TimeUtils; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; public class WeekCardLogic { @@ -25,7 +28,6 @@ public class WeekCardLogic { public static class Instance { public final static WeekCardLogic instance = new WeekCardLogic(); - } public static WeekCardLogic getInstance() { @@ -39,7 +41,54 @@ public class WeekCardLogic { res.addAllAllWeekCardInfo(weekCardList); //MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.WeekCardIndicationInfoResponse, res.build(), true); MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.WeekCardIndicationInfoResponse_VALUE,res.build(),true); + } + public void sendWeekCardRewardMail(ISession session)throws Exception{ + //发每周未领取的奖励 + User user = UserManager.getUser(session.getUid()); + Map weekCard = user.getPlayerInfoManager().getWeekCard(); + MapdropMap = new HashMap<>(); + boolean isSave = false; + for(WeekCardInfo weekCardVal:weekCard.values()){ + Map config = STableManager.getConfig(SWeekcardConfig.class); + if(!config.containsKey(weekCardVal.getId())){ + continue; + } + if(!weekCardVal.isBuy()){ + continue; + } + if(TimeUtils.isSameWeek7(weekCardVal.getBugTime())){ + continue; + } + if(Calendar.DAY_OF_WEEK - weekCardVal.getLeaveGetRewardDays()>0){ + for(int i= (Calendar.DAY_OF_WEEK - weekCardVal.getLeaveGetRewardDays());i>0;i--){ + int [][]drop =config.get(weekCardVal.getId()).getBaseReward(); + for(int[] single:drop){ + if(dropMap.containsKey(single[0])){ + dropMap.put(single[0],dropMap.get(single[0])+single[1]); + }else{ + dropMap.put(single[0],single[1]); + } + } + } + weekCardVal.setBuy(false); + weekCardVal.setBugTime(0); + isSave =true; + int [][] dropArray= dropMap.entrySet().stream().map(n->new int[]{n.getKey(),n.getValue()}).toArray(int[][]::new); + /*String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("MsRankContent",new Object[]{(i + 1)},new int[0],"#"); + MailLogic.getInstance().sendMail(arenaRankfilt.get(i), title, content, + StringUtil.parseArrayToString(config.getSeasonReward()), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME);*/ + MailLogic.getInstance().sendMail(user.getId(), "周卡未领取奖励", "周卡奖励", + StringUtil.parseArrayToString(dropArray), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME); + }else{ + weekCardVal.setBuy(false); + weekCardVal.setBugTime(0); + isSave = true; + } + if(isSave){ + user.getPlayerInfoManager().setWeekCard(weekCard); + } + } } public List initAllWeekCardInfo(User user) throws Exception{ @@ -54,7 +103,6 @@ public class WeekCardLogic { boolean isSaveToDb =false; List weekCardList=new ArrayList<>(); for(int i= 1;i=cardType[0][0]&&level<=cardType[1][0]){ - return cardType[0]; + if(cardType.length>1){ + if(level>=cardType[0][0]&&level<=cardType[1][0]){ + return cardType[0]; + }else { + return cardType[1]; + } }else { - return cardType[1]; + return cardType[0]; } } } 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 12229c888..c3a6de4a5 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 @@ -402,8 +402,8 @@ public class BuyGoodsNewLogic { } //周卡 if(type==GiftGoodsType.WEEKCARD){ - //WeekCardLogic.getInstance().buyWeekCard(user,config.getId()); - //WeekCardLogic.getInstance().sendWeekCardInitInfo(session); + WeekCardLogic.getInstance().buyWeekCard(user,config.getId()); + WeekCardLogic.getInstance().sendWeekCardInitInfo(session); } if(drop!=null&&session!=null){ PlayerInfoProto.DirectBuyIndication build = PlayerInfoProto.DirectBuyIndication.newBuilder().setDrop(drop).build(); From 5c70df47dbe674d9c80a7d047c8a7e416bc31096 Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 4 Nov 2021 10:11:42 +0800 Subject: [PATCH 19/22] =?UTF-8?q?=E8=B7=A8=E6=9C=8D=E5=88=86=E7=BB=84?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/db/redis/RedisKey.java | 6 ++-- .../com/ljsd/jieling/db/redis/RedisUtil.java | 22 ++++++------ .../ljsd/jieling/logic/GlobleSystemLogic.java | 26 ++++++++++++-- .../jieling/logic/rank/CrossRankManager.java | 36 +++++++++++++------ .../logic/sevenworld/SevenWorldLogic.java | 1 - .../ljsd/jieling/thread/task/MinuteTask.java | 4 +-- 6 files changed, 64 insertions(+), 31 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java index 4e395336c..1896b5360 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java @@ -1,8 +1,5 @@ package com.ljsd.jieling.db.redis; -import com.ljsd.jieling.db.mongo.AreaManager; -import com.ljsd.jieling.logic.GlobleSystemLogic; - import java.util.HashSet; import java.util.Set; @@ -356,7 +353,8 @@ public class RedisKey { public static final String GUILD_LEADER_CACHE = "GUILD_LEADER_CACHE"; - public static final String CROSS_RANK_UPDATE_VERSION = "CROSS_RANK_UPDATE_VERSION"; + public static final String CROSS_RANK_UPDATE = "CROSS_RANK_UPDATE"; + public static final String CROSS_RANK_DELETE = "CROSS_RANK_DELETE"; //玉虚论道 public static final String CROSS_YUXULUNDAO_RANK = "CROSS_YUXULUNDAO_RANK";//排行榜信息 废弃 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java index 06baa0356..7d90c1f13 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java @@ -1429,27 +1429,27 @@ public class RedisUtil { if (result == null){ result = AreaManager.areaId + RedisKey.Delimiter_colon + type + RedisKey.Delimiter_colon + key; } - deathPathKeyHandler(result); - helpHeroKeyHandler(result); - + // 保存需要清理的key + saveRemoveKeyHandler(result); return result;} /** - * 十绝阵rediskey处理 + * 保存需要清理的key */ - private void deathPathKeyHandler(String key){ + private void saveRemoveKeyHandler(String key){ + // 十绝阵相关 if(key.contains("DEATH_PATH")){ RedisUtil.getInstence().sSet(RedisKey.DEATH_PATH_DELETE,key); } - } - - /** - * 助战rediskey处理 - */ - private void helpHeroKeyHandler(String key){ + // 助战相关 if(key.contains("HELP_FIGHT")){ RedisUtil.getInstence().sSet(RedisKey.HELP_FIGHT_DELETE,key); } + // 跨服排行榜相关 + if(key.contains("CROSS_RANK_UPDATE")){ + RedisUtil.getInstence().sSet(RedisKey.CROSS_RANK_DELETE,key); + } + } private static final String LOCK_SUCCESS = "OK"; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java index 6d2a6a400..17390e2b5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java @@ -285,13 +285,20 @@ public class GlobleSystemLogic implements IEventHandler { redisUtil.del(RedisKey.CHAT_CROSS_MSG_ID+i); } + // 重新分组,需要删除旧排行榜数据,重新分组 + redisUtil.delVague(RedisKey.CROSS_RANK_DELETE,"CROSS_RANK_UPDATE:.*"); + //释放分布式锁 redisUtil.del("SERVER_SPLIT_REDIS_LOCK"); LOGGER.info("跨服分组结束"); // splitInfo = RedisUtil.getInstence().getMapValues(RedisKey.SERVER_SPLIT_INFO,"",String.class,Integer.class); } - //获取当前区服的跨服区组 -1为未在分组内 + + /** + * 获取当前区服的跨服区组 -1为未在分组内 + * @return + */ public int getCrossGroup(){ //测试服不参与分组和跨服 if(!GameApplication.serverProperties.isArenaCross()){ @@ -299,8 +306,23 @@ public class GlobleSystemLogic implements IEventHandler { } Integer group = RedisUtil.getInstence().getMapValue(RedisKey.SERVER_SPLIT_INFO, "", String.valueOf(GameApplication.serverId), Integer.class); crossGroup = group==null?-1:group; + return crossGroup; + } - return crossGroup; + /** + * 获取和当前分组同一分组的服务器id + * @return + */ + public List getCrossServersByGroup(){ + int group = getCrossGroup(); + Map values = RedisUtil.getInstence().getMapValues(RedisKey.SERVER_SPLIT_INFO, "", String.class, Integer.class); + ArrayList list = new ArrayList<>(); + for (Map.Entry entry : values.entrySet()) { + if (entry.getValue() == group){ + list.add(entry.getKey()); + } + } + return list; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/CrossRankManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/CrossRankManager.java index bb46ad155..bef2f70c7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/CrossRankManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/CrossRankManager.java @@ -1,5 +1,6 @@ package com.ljsd.jieling.logic.rank; +import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.logic.GlobleSystemLogic; import com.ljsd.jieling.logic.dao.GuilidManager; @@ -11,6 +12,7 @@ import org.slf4j.LoggerFactory; import org.springframework.data.redis.core.ZSetOperations; import util.TimeUtils; +import java.util.List; import java.util.Map; import java.util.Set; @@ -45,7 +47,7 @@ public class CrossRankManager { /** * 跨服排行处理 */ - public void crossRankHandle(boolean choice){ + public void crossRankHandle(){ // 时间验证 if (isTime()){ // 全部排行遍历 @@ -57,11 +59,20 @@ public class CrossRankManager { int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup(); if(crossGroup != -1){ AbstractRank rank = RankContext.getRankEnum(type); - // 获取本服排行榜数据 - Set> range = RedisUtil.getInstence().getZsetreverseRangeWithScores(rank.getRedisKey(), "", 0, 100, true); - // 批量放入跨服排行榜 + // 获取跨服key String key = RedisUtil.getInstence().getKey(rank.getCrossRedisKey(),"",false); - RedisUtil.getInstence().zsetAddAall(key,range); + // 清理旧榜数据 + RedisUtil.getInstence().del(key); + // 获取本组的服务器列表 + List servers = GlobleSystemLogic.getInstence().getCrossServersByGroup(); + for (String server : servers) { + String localKey = RedisUtil.getInstence().getKey(server, rank.getRedisKey(), false); + // 获取本地服排行榜数据 + Set> range = + RedisUtil.getInstence().getZsetreverseRangeWithScores(localKey,"",0,100, false); + // 批量放入跨服排行榜 + RedisUtil.getInstence().zsetAddAall(key,range); + } LOGGER.info("=====================跨服排行榜处理========,key:{}",key); } } @@ -74,14 +85,17 @@ public class CrossRankManager { * @return */ private boolean isTime(){ - long now = TimeUtils.now(); - long twoHour = TimeUtils.HOUR * 2; - if (now >= twoHour+time){ - time = now; - return true; - }else{ + int group = GlobleSystemLogic.getInstence().getCrossGroup(); + if (group == -1){ return false; } + String key = RedisUtil.getInstence().getKey(RedisKey.CROSS_RANK_UPDATE, String.valueOf(group), false); + Object object = RedisUtil.getInstence().get(key); + if (object != null){ + return false; + } + RedisUtil.getInstence().set(key,"1",TimeUtils.HOUR * 2); + return true; } /** diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/sevenworld/SevenWorldLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/sevenworld/SevenWorldLogic.java index ed973c79e..673bf18d1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/sevenworld/SevenWorldLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/sevenworld/SevenWorldLogic.java @@ -11,7 +11,6 @@ import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.ktbeans.ReportEventEnum; import com.ljsd.jieling.ktbeans.ReportUtil; import com.ljsd.jieling.logic.GlobleSystemLogic; -import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic; import com.ljsd.jieling.logic.dao.Hero; import com.ljsd.jieling.logic.dao.TeamEnum; import com.ljsd.jieling.logic.dao.TeamPosHeroInfo; 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 b26853c17..c2b28460b 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 @@ -163,10 +163,10 @@ public class MinuteTask extends Thread { } try { - CrossRankManager.getInstance().crossRankHandle(false); + CrossRankManager.getInstance().crossRankHandle(); }catch (Exception e){ e.printStackTrace(); - LOGGER.error("跨服排行榜初始化一次,Exception::=>{}",e.toString()); + LOGGER.error("跨服排行榜初始化异常,Exception::=>{}",e.toString()); } try { From 8f35b31222b4ed01cbd27dd0bb1e773dd36672b7 Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 4 Nov 2021 10:47:51 +0800 Subject: [PATCH 20/22] =?UTF-8?q?=E8=B7=A8=E6=9C=8D=E6=8E=92=E8=A1=8C?= =?UTF-8?q?=E6=A6=9C=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/GlobleSystemLogic.java | 2 -- .../jieling/logic/rank/CrossRankManager.java | 26 ------------------- 2 files changed, 28 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java index 17390e2b5..f661c6d59 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java @@ -243,8 +243,6 @@ public class GlobleSystemLogic implements IEventHandler { LOGGER.error("跨服分组,未获取到锁"); return; } - // 跨服排行榜处理 - CrossRankManager.getInstance().cleanCrossRank(); //这里为所有服务器的世界等级 Map worldLevelMap = redisUtil.getMapValues(RedisKey.SERVER_WORLDLEVE_INFO,"",String.class,Integer.class); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/CrossRankManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/CrossRankManager.java index bef2f70c7..9004b45de 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/CrossRankManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/CrossRankManager.java @@ -39,11 +39,6 @@ public class CrossRankManager { return CrossRankManager.Instance.INSTANCE; } - /** - * 上次排行榜初始化时间 - */ - private long time = 0L; - /** * 跨服排行处理 */ @@ -109,25 +104,4 @@ public class CrossRankManager { LOGGER.info("==================工会缓存处理============="); } - /** - * 清理跨服排行榜 - */ - public void cleanCrossRank(){ - for (RankEnum value : RankEnum.values()) { - int type = value.getType(); - //跨服 - if (RankContext.isCrossRank2(type) && RankContext.isCrossRank(type)) { - // 获取分组id,是否跨服 - int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup(); - if (crossGroup != -1) { - AbstractRank rank = RankContext.getRankEnum(type); - String key = RedisUtil.getInstence().getKey(rank.getCrossRedisKey(),"",false); - RedisUtil.getInstence().del(key); - time = 0L; - LOGGER.info("=====================跨服排行榜清理========,key:{},time:{}",key,time); - } - } - } - } - } From 2f675017fa0fc6aa9dd717c9a69aec1da57a1d9d Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Thu, 4 Nov 2021 10:59:12 +0800 Subject: [PATCH 21/22] =?UTF-8?q?=E8=8B=B1=E9=9B=84=E5=9B=BE=E9=89=B4bug?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/core/GlobalsDef.java | 2 +- .../handler/GameGM/GMRequestHandler.java | 2 ++ .../jieling/handler/GetPlayerInfoHandler.java | 18 ++++++++++++++++-- .../com/ljsd/jieling/kefu/Cmd_addhero.java | 2 +- .../ljsd/jieling/logic/dao/HeroManager.java | 2 +- .../com/ljsd/jieling/logic/hero/HeroLogic.java | 6 +++--- 6 files changed, 24 insertions(+), 8 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java b/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java index a8734cc74..c8041dd27 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java @@ -2,7 +2,7 @@ package com.ljsd.jieling.core; public interface GlobalsDef { String DEFAULT_NAME = "无名妖灵师"; - int VERSION_CODE=1;//后端兼容版本号 + int VERSION_CODE=2;//后端兼容版本号 int MAP_MISSION_RETURN = -9999; int MAP_MISSION_FAILURE = -10000; 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 19424bcae..b24eadae0 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 @@ -152,6 +152,7 @@ public class GMRequestHandler extends BaseHandler{ Hero hero = cUser.getHeroManager().getHeroMap().get(heroId); if(prarm2-hero.getStar()>0){ hero.upStar(prarm2-hero.getStar()); + cUser.getHeroManager().addHeroHandBook(hero.getTemplateId(),hero.getStar()); SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); Map scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE,scHero.getStar()); Map scHeroRankUpConfigByTypeTree = new TreeMap<>(scHeroRankUpConfigByType); @@ -365,6 +366,7 @@ public class GMRequestHandler extends BaseHandler{ maxStar = heroStarId+1>maxStar?heroStarId+1:maxStar; } heroTmp.upStar(maxStar-heroTmp.getStar()); + cUser.getHeroManager().addHeroHandBook(heroTmp.getTemplateId(),heroTmp.getStar()); SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByType.get(maxStar-1); cUser.getUserMissionManager().onGameEvent(cUser, GameEvent.HERO_LEVEL_UP,heroTmp.getOriginalLevel(),scHeroRankUpConfig.getOpenLevel()); heroTmp.setLevel(scHeroRankUpConfig.getOpenLevel()); 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 092eb7df5..d7c1a2d22 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -160,8 +160,13 @@ public class GetPlayerInfoHandler extends BaseHandler{ }); } - if (playerInfoManager.getVersionCode()!= GlobalsDef.VERSION_CODE) { - calPractiveSkillData(user); + if (playerInfoManager.getVersionCode()< GlobalsDef.VERSION_CODE) { + if (playerInfoManager.getVersionCode()<1){ + calPractiveSkillData(user); + } + if (playerInfoManager.getVersionCode()<2){ + calHeroHandBookData(user); + } playerInfoManager.setVersionCode(GlobalsDef.VERSION_CODE); } // 处理玩家旧头像框,兼容,一个玩家只执行一次 @@ -352,6 +357,9 @@ public class GetPlayerInfoHandler extends BaseHandler{ } //修行技能数据兼容 private void calPractiveSkillData(User user) { + if (!user.getHeroManager().getPracticeSkillMap().isEmpty()) { + return; + } Map xiuxianConfigMap = STableManager.getConfig(SXiuXian.class); for (int i = 1; i <= user.getHeroManager().getPracticeLevel(); i++) { SXiuXian xiuxianConfig = xiuxianConfigMap.get(i); @@ -361,5 +369,11 @@ public class GetPlayerInfoHandler extends BaseHandler{ } } } + ///英雄图鉴数据兼容 + private void calHeroHandBookData(User user){ + for (Map.Entry heroEntry : user.getHeroManager().getHeroMap().entrySet()) { + user.getHeroManager().addHeroHandBook(heroEntry.getValue().getTemplateId(),heroEntry.getValue().getStar()); + } + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_addhero.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_addhero.java index 51e7cecdf..5a22f66c6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_addhero.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_addhero.java @@ -37,7 +37,7 @@ public class Cmd_addhero extends GmRoleAbstract{ }else { hero.upStar(prarm2-hero.getStar()); } - + getUser().getHeroManager().addHeroHandBook(hero.getTemplateId(),hero.getStar()); Map scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE,scHero.getStar()); Map scHeroRankUpConfigByTypeTree = new TreeMap<>(scHeroRankUpConfigByType); SCHeroRankUpConfig scHeroRankUpConfig = ((TreeMap) scHeroRankUpConfigByTypeTree).lowerEntry(hero.getStar()).getValue(); 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 05921e82e..66c612ddb 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 @@ -293,7 +293,7 @@ public class HeroManager extends MongoBase { } public void addHeroHandBook(int heroId,int star){ - if(heroHandBook.containsKey(heroId)){ + if(heroHandBook.containsKey(heroId)&&heroHandBook.get(heroId)>=star){ return; } heroHandBook.put(heroId,Math.max(heroHandBook.getOrDefault(heroId,0),star)); 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 541097d3d..2f2ba30a6 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 @@ -1549,7 +1549,7 @@ public class HeroLogic { // 消耗道具 ItemUtil.itemCost(user, removeItemMap, BIReason.COMPLEX_EQUIP_CONSUME, 0); - rankUpHeroExecute(targetHero); + rankUpHeroExecute(user,targetHero); user.getHeroManager().addHeroStar(targetHero.getTemplateId(), targetHero.getStar()); Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(), targetHero.getTemplateId(), targetHero.getStar())); Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.UPSTAR.getType(), targetHero.getTemplateId())); @@ -1609,7 +1609,7 @@ public class HeroLogic { } - private void rankUpHeroExecute(Hero hero) throws Exception { + private void rankUpHeroExecute(User user,Hero hero) throws Exception { //是否解锁法宝 SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting(); int[][] equipTalismanaUnlock = gameSetting.getEquipTalismanaUnlock(); @@ -1621,8 +1621,8 @@ public class HeroLogic { } } } - hero.upStar(1); + user.getHeroManager().addHeroHandBook(hero.getTemplateId(),hero.getStar()); } From 8ef68e0a986114c325a28a735d002b043a732459 Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Mon, 8 Nov 2021 00:04:52 +0800 Subject: [PATCH 22/22] =?UTF-8?q?=E5=91=A8=E5=8D=A1=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/GlobalDataManaager.java | 4 ++-- .../activity/activityLogic/WeekCardLogic.java | 17 +++++++++++------ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index a785e3a34..62c8b2b8d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -432,10 +432,10 @@ public class GlobalDataManaager implements IManager { SevenWorldLogic.getInstance().sevenWorldInfoIndication(session); // 御剑行 RidingSwardLogic.getInstance().zeroClearRidingSwardByUser(user); - //周卡每日刷新 - WeekCardLogic.getInstance().sendWeekCardInitInfo(session); //周卡邮件发放未领取奖励 WeekCardLogic.getInstance().sendWeekCardRewardMail(session); + //周卡每日刷新 + WeekCardLogic.getInstance().sendWeekCardInitInfo(session); // GuildChallengeLogic.getInstance().resetBossDamage(user); if(TimeUtils.isSpanTime(user.getPlayerInfoManager().getLoginTime(),TimeUtils.now(),1,0)){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java index 753655411..60ce53bd0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java @@ -74,12 +74,6 @@ public class WeekCardLogic { weekCardVal.setBuy(false); weekCardVal.setBugTime(0); isSave =true; - int [][] dropArray= dropMap.entrySet().stream().map(n->new int[]{n.getKey(),n.getValue()}).toArray(int[][]::new); - /*String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("MsRankContent",new Object[]{(i + 1)},new int[0],"#"); - MailLogic.getInstance().sendMail(arenaRankfilt.get(i), title, content, - StringUtil.parseArrayToString(config.getSeasonReward()), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME);*/ - MailLogic.getInstance().sendMail(user.getId(), "周卡未领取奖励", "周卡奖励", - StringUtil.parseArrayToString(dropArray), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME); }else{ weekCardVal.setBuy(false); weekCardVal.setBugTime(0); @@ -88,6 +82,14 @@ public class WeekCardLogic { if(isSave){ user.getPlayerInfoManager().setWeekCard(weekCard); } + if(dropMap.size()>0){ + int [][] dropArray= dropMap.entrySet().stream().map(n->new int[]{n.getKey(),n.getValue()}).toArray(int[][]::new); + String title = SErrorCodeEerverConfig.getI18NMessage("WeekcardReward_mail_title"); + String content = SErrorCodeEerverConfig.getI18NMessage("WeekcardReward_mail_txt"); + // 排行奖励 + MailLogic.getInstance().sendMail(user.getId(), title, content, + StringUtil.parseArrayToString(dropArray), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME); + } } } @@ -102,6 +104,9 @@ public class WeekCardLogic { Map config = STableManager.getConfig(SWeekcardRotationConfig.class); boolean isSaveToDb =false; List weekCardList=new ArrayList<>(); + if(weekCardType == null || weekCardType.length ==0){ + return weekCardList; + } for(int i= 1;i