From 1f8108b5bbdf4f3036cf42246971e565b5120b77 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Thu, 2 Jul 2020 16:16:52 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E6=8F=B4=E5=8A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/family/GuildLogic.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java index 2f15ca05d..8b52860e3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java @@ -593,6 +593,18 @@ public class GuildLogic { RedisUtil.getInstence().removeMapEntrys(RedisKey.USER_LEVEL_GUILD_INFO,"",String.valueOf(applyId)); Poster.getPoster().dispatchEvent(new GuildForceChangeEvent(targetUser.getId(),targetUser.getPlayerInfoManager().getGuildId(),1,targetUser.getPlayerInfoManager().getMaxForce())); + + Family.GuildHelpInfoIndication.Builder builder = Family.GuildHelpInfoIndication.newBuilder(); + for (Map.Entry entry : targetUser.getGuildMyInfo().getGuidHelpInfo().entrySet()) { + builder.addGuildHelpInfo(CommonProto.GuildHelpInfo.newBuilder() + .setHadtakenum(targetUser.getGuildMyInfo().getGuidHelpHadTakeInfo().getOrDefault(entry.getKey(),0)) + .setType(entry.getKey()) + .setNum(entry.getValue())); + } + + //notify all change + Family.GuildHelpInfoIndication build = builder.setUid(targetUser.getId()).setName(targetUser.getPlayerInfoManager().getNickName()).build(); + GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(guildInfo.getId()), MessageTypeProto.MessageType.GuildHelpInfoIndication,build); // targetUser.getUserMissionManager().onGameEvent(targetUser, GameEvent.JOIN_FAMILY); }finally { RedisUtil.getInstence().releaseDistributedLock(RedisKey.OPERATE_FAMILY_APPLY_JOIN,Integer.toString(applyId), Integer.toString(applyId)); From 2c5348131da3dc2d99163a9ba30546b30a479107 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Thu, 2 Jul 2020 18:18:32 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E6=8F=B4=E5=8A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReliveExpeditionHeroRequest.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/ReliveExpeditionHeroRequest.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/ReliveExpeditionHeroRequest.java index 1d10cdb06..222657fd3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/ReliveExpeditionHeroRequest.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/ReliveExpeditionHeroRequest.java @@ -71,16 +71,16 @@ public class ReliveExpeditionHeroRequest extends BaseHandler ids = new HashSet<>(); // 更新队伍血量 - List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(1001); - Iterator iterator = teamPosHeroInfos.iterator(); - while (iterator.hasNext()){ - TeamPosHeroInfo teamPosHeroInfo = iterator.next(); - Hero hero = user.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); - if (hero == null) { - continue; - } - ids.add(hero.getId()); - } + //List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(1001); + // Iterator iterator = teamPosHeroInfos.iterator(); +// while (iterator.hasNext()){ +// TeamPosHeroInfo teamPosHeroInfo = iterator.next(); +// Hero hero = user.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); +// if (hero == null) { +// continue; +// } +// ids.add(hero.getId()); +// } expeditionManager.getHeroHPWithChange().clear(); From 47595e498fe56556fcacbc65587746dd519f6f9f Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Fri, 3 Jul 2020 09:54:09 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E7=AB=9E=E6=8A=80=E5=9C=BA=E5=A5=96?= =?UTF-8?q?=E5=8A=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TakeArenaBattleRewardRequestHandler.java | 58 +++++++++++++++++++ .../ljsd/jieling/logic/dao/ArenaManager.java | 18 ++++-- .../ljsd/jieling/logic/family/GuildLogic.java | 16 ++++- .../ljsd/jieling/logic/hero/HeroLogic.java | 4 +- .../ljsd/jieling/thread/ThreadManager.java | 2 +- .../com/ljsd/jieling/util/MessageUtil.java | 4 +- .../main/java/config/SArenaBattleReward.java | 34 +++++++++++ 7 files changed, 125 insertions(+), 11 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/arena/TakeArenaBattleRewardRequestHandler.java create mode 100644 tablemanager/src/main/java/config/SArenaBattleReward.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/arena/TakeArenaBattleRewardRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/arena/TakeArenaBattleRewardRequestHandler.java new file mode 100644 index 000000000..497ec52b8 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/arena/TakeArenaBattleRewardRequestHandler.java @@ -0,0 +1,58 @@ +package com.ljsd.jieling.handler.arena; + +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.ArenaManager; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.protocols.ArenaInfoProto; +import com.ljsd.jieling.protocols.CommonProto; +import com.ljsd.jieling.protocols.MessageTypeProto; +import com.ljsd.jieling.util.ItemUtil; +import config.SArenaBattleReward; +import manager.STableManager; + +/** + * Description: des + * Author: zsx + * CreateDate: 2020/7/6 21:19 + */ +public class TakeArenaBattleRewardRequestHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return null; + } + + @Override + public GeneratedMessage processWithProto(int uid, ArenaInfoProto.TakeArenaBattleRewardRequest proto) throws Exception { + + int missionId = proto.getMissionId(); + //check cfg + SArenaBattleReward sArenaBattleReward = STableManager.getConfig(SArenaBattleReward.class).get(missionId); + if(sArenaBattleReward==null){ + throw new ErrorCodeException(ErrorCode.CFG_NULL); + } + + User user = UserManager.getUser(uid); + ArenaManager arenaManager = user.getArenaManager(); + //幂等 + boolean contains = arenaManager.getHadTakeReward().contains(missionId); + if(contains){ + throw new ErrorCodeException(ErrorCode.HAD_TAKE_REWARD); + } + + //check condition + boolean b = sArenaBattleReward.getBattleTimes() > arenaManager.getFailNums() + arenaManager.getSuccessNums(); + if(b){ + throw new ErrorCodeException(ErrorCode.SERVER_DEFINE); + } + arenaManager.getHadTakeReward().add(missionId); + //drop + int[][] reward = sArenaBattleReward.getReward(); + CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.EXPEDITION_BOX_REWARD); + return ArenaInfoProto.TakeArenaBattleRewardResponse.newBuilder().setDrop(drop).build(); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ArenaManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ArenaManager.java index 94211e640..aed29cf7d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ArenaManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ArenaManager.java @@ -2,10 +2,7 @@ package com.ljsd.jieling.logic.dao; import com.ljsd.common.mogodb.MongoBase; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; public class ArenaManager extends MongoBase { @@ -26,7 +23,7 @@ public class ArenaManager extends MongoBase { private List arenaEnemies; - + private List hadTakeReward; public void updateChallenge(int fightResult){ if(fightResult == 1){ @@ -89,12 +86,14 @@ public class ArenaManager extends MongoBase { this.count=0; this.flushTime=0; this.flushNums=0; + hadTakeReward=new LinkedList<>(); updateString("season",season); updateString("failNums",failNums); updateString("successNums",successNums); updateString("count",count); updateString("flushTime",flushTime); updateString("flushNums",flushNums); + updateString("hadTakeReward",hadTakeReward); } public int getTopMaxRank() { @@ -105,4 +104,13 @@ public class ArenaManager extends MongoBase { this.topMaxRank = topMaxRank; updateString("topMaxRank",topMaxRank); } + + public List getHadTakeReward() { + if(null ==hadTakeReward){ + hadTakeReward= new LinkedList<>(); + } + updateString("hadTakeReward",hadTakeReward); + return hadTakeReward; + } + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java index a5ee13d28..78e024cc1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java @@ -593,6 +593,18 @@ public class GuildLogic { RedisUtil.getInstence().removeMapEntrys(RedisKey.USER_LEVEL_GUILD_INFO,"",String.valueOf(applyId)); Poster.getPoster().dispatchEvent(new GuildForceChangeEvent(targetUser.getId(),targetUser.getPlayerInfoManager().getGuildId(),1,targetUser.getPlayerInfoManager().getMaxForce())); + + Family.GuildHelpInfoIndication.Builder builder = Family.GuildHelpInfoIndication.newBuilder(); + for (Map.Entry entry : targetUser.getGuildMyInfo().getGuidHelpInfo().entrySet()) { + builder.addGuildHelpInfo(CommonProto.GuildHelpInfo.newBuilder() + .setHadtakenum(targetUser.getGuildMyInfo().getGuidHelpHadTakeInfo().getOrDefault(entry.getKey(),0)) + .setType(entry.getKey()) + .setNum(entry.getValue())); + } + + //notify all change + Family.GuildHelpInfoIndication build = builder.setUid(targetUser.getId()).setName(targetUser.getPlayerInfoManager().getNickName()).build(); + GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(guildInfo.getId()), MessageTypeProto.MessageType.GuildHelpInfoIndication,build); // targetUser.getUserMissionManager().onGameEvent(targetUser, GameEvent.JOIN_FAMILY); }finally { RedisUtil.getInstence().releaseDistributedLock(RedisKey.OPERATE_FAMILY_APPLY_JOIN,Integer.toString(applyId), Integer.toString(applyId)); @@ -1380,10 +1392,11 @@ public class GuildLogic { RedisUtil.getInstence().putMapEntry(RedisKey.USER_LEVEL_GUILD_INFO,"",String.valueOf(user.getId()),guildId); //删除战力 Poster.getPoster().dispatchEvent(new GuildForceChangeEvent(user.getId(),user.getPlayerInfoManager().getGuildId(),3,0-user.getPlayerInfoManager().getMaxForce())); - //notify all + //notify ALL Family.GuildHelpInfoIndication.Builder build = Family.GuildHelpInfoIndication.newBuilder(); for (Map.Entry entry : user.getGuildMyInfo().getGuidHelpInfo().entrySet()) { //通知前端清除公会成员援助信息 + build.setUid(user.getId()); build.addGuildHelpInfo(CommonProto.GuildHelpInfo.newBuilder().setType(entry.getKey()).setNum(-1)); } GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(user.getPlayerInfoManager().getGuildId()), MessageTypeProto.MessageType.GuildHelpInfoIndication,build.build()); @@ -1435,4 +1448,5 @@ public class GuildLogic { MailLogic.getInstance().sendMail(user.getId(),title,content,mailReward,(int) (TimeUtils.now()/1000), Global.MAIL_EFFECTIVE_TIME); } + } 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 ffbe21899..8f72b4fd8 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 @@ -1707,9 +1707,9 @@ public class HeroLogic{ float score = sPropertyConfig.getScore(); result += propertyValue*score; - LOGGER.info("the propertyId={} the value is ={},propertyValue={},score={},result ={},the value={}",propertyId,propertyValue*score,propertyValue,score,result,propertyValue*score); + // LOGGER.info("the propertyId={} the value is ={},propertyValue={},score={},result ={},the value={}",propertyId,propertyValue*score,propertyValue,score,result,propertyValue*score); } - System.out.println(result); + // System.out.println(result); return (int)result; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/thread/ThreadManager.java b/serverlogic/src/main/java/com/ljsd/jieling/thread/ThreadManager.java index 42693997d..e6fc252bb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/thread/ThreadManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/thread/ThreadManager.java @@ -121,7 +121,7 @@ public class ThreadManager implements IManager { scheduledFutureSets.add(scheduledExecutor.scheduleAtFixedRate(platConfigureTask, 10, SLEEP_INTEVAL_TIME, TimeUnit.SECONDS)); scheduledFutureSets.add( scheduledExecutor.scheduleAtFixedRate(new MinuteTask(), delayForMinute, 60, TimeUnit.SECONDS)); scheduledFutureSets.add( scheduledExecutor.scheduleAtFixedRate(new SecondsTask(), 0, 1, TimeUnit.SECONDS)); - scheduledFutureSets.add( scheduledExecutor.scheduleAtFixedRate(new FetchBloodyEndDataThread(), 0, 1, TimeUnit.SECONDS)); + // scheduledFutureSets.add( scheduledExecutor.scheduleAtFixedRate(new FetchBloodyEndDataThread(), 0, 1, TimeUnit.SECONDS)); scheduledFutureSets.add( scheduledExecutor.scheduleAtFixedRate(new Thread(){ public void run () { long lastMilis = System.currentTimeMillis(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/MessageUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/MessageUtil.java index 908a1d741..e9d3308df 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/MessageUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/MessageUtil.java @@ -38,8 +38,8 @@ public class MessageUtil { backMessage = new byte[0]; } else { backMessage = generatedMessage.toByteArray(); - if (backMessage.length != 0) - LOGGER.info("\r\n" + "uid:" + uid + ":\r\n" + JsonFormat.printToString(generatedMessage)); + //if (backMessage.length != 0) + //LOGGER.info("\r\n" + "uid:" + uid + ":\r\n" + JsonFormat.printToString(generatedMessage)); } int length = PackageConstant.UID_FIELD_LEN + PackageConstant.TOKEN_LEN diff --git a/tablemanager/src/main/java/config/SArenaBattleReward.java b/tablemanager/src/main/java/config/SArenaBattleReward.java new file mode 100644 index 000000000..51b84328d --- /dev/null +++ b/tablemanager/src/main/java/config/SArenaBattleReward.java @@ -0,0 +1,34 @@ +package config; + +import manager.Table; + +@Table(name ="ArenaBattleReward") +public class SArenaBattleReward implements BaseConfig { + + private int id; + + private int battleTimes; + + private int[][] reward; + + + @Override + public void init() throws Exception { + + } + + + public int getId() { + return id; + } + + public int getBattleTimes() { + return battleTimes; + } + + public int[][] getReward() { + return reward; + } + + +} \ No newline at end of file From 1505163dd00b67b0f6878a8d3d1e068836ac0909 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Fri, 3 Jul 2020 10:18:42 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=BF=BD=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index a54a280f4..3cc7bacf0 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ luafight/BattleRecord/*.txt luafight/BattleRecord/*.json serverlogic/src/main/com.ljsd.jieling.thrift conf/server/*.txt +serverlogic/src/main/resources/application.properties +test/src/main/java/ExcelUtils.java \ No newline at end of file From 54e8854bc4680baf762acdbf53cd8ba2d0aed669 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Fri, 3 Jul 2020 10:29:15 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=BF=BD=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 3cc7bacf0..674b117fb 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,4 @@ luafight/LogError/*.json luafight/BattleRecord/*.txt luafight/BattleRecord/*.json serverlogic/src/main/com.ljsd.jieling.thrift -conf/server/*.txt -serverlogic/src/main/resources/application.properties -test/src/main/java/ExcelUtils.java \ No newline at end of file +conf/server/*.txt \ No newline at end of file From 61d614eaff862aaf788c6836a2c7f3da9f5c54e5 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Sat, 4 Jul 2020 22:17:32 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E4=BA=94=E6=98=9F=E6=88=90=E9=95=BF?= =?UTF-8?q?=E7=A4=BCbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java index 3fe6f58c0..9ef5cdb23 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java @@ -285,10 +285,10 @@ public class BuyGoodsLogic { }else { rechargeInfo.putDyGoodsCanBuyTimes(goodsId,dytime); } -// List goodsBagInfo = new ArrayList<>(SRechargeCommodityConfig.rechargeCommodityConfigMap.size()); -// BuyGoodsLogic.getGoodsBagInfo(uid, goodsBagInfo,false); -// PlayerInfoProto.AllGiftGoodsIndication build = PlayerInfoProto.AllGiftGoodsIndication.newBuilder().addAllGiftGoodsInfo(goodsBagInfo).build(); -// MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.ALL_GIFTGOODS_INDICATION_VALUE,build,true); + List goodsBagInfo = new ArrayList<>(SRechargeCommodityConfig.rechargeCommodityConfigMap.size()); + BuyGoodsLogic.getGoodsBagInfo(uid, goodsBagInfo,false); + PlayerInfoProto.AllGiftGoodsIndication build = PlayerInfoProto.AllGiftGoodsIndication.newBuilder().addAllGiftGoodsInfo(goodsBagInfo).build(); + MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.ALL_GIFTGOODS_INDICATION_VALUE,build,true); } } From 4459f03ce09f2471a60fcdefed43c3b50f14070c Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Sat, 4 Jul 2020 22:54:40 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E3=80=90ID1008162=E3=80=91=E6=8C=82?= =?UTF-8?q?=E6=9C=BA=E5=A5=96=E5=8A=B1bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/logic/player/PlayerLogic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 e740410cd..8c81bc3d1 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 @@ -246,7 +246,7 @@ public class PlayerLogic { int vipLevel = playerInfoManager.getVipLevel(); playerInfoManager.setVipLevel(vipLevel+1); user.getUserMissionManager().onGameEvent(user,GameEvent.VIP_LEVLUP,playerInfoManager.getVipLevel()); -// CombatLogic.getInstance().getNewAdventureReward(user, true); + CombatLogic.getInstance().getNewAdventureReward(user, true,TimeUtils.nowInt()); List missionList = new ArrayList<>(); MissionLoigc.getVipMission(user,missionList); CommonProto.VipBaseInfo vipInfoProto = CommonProto.VipBaseInfo.newBuilder() From 8253bdcc6a10c63262686025ff61f5ef020491d9 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Mon, 6 Jul 2020 18:13:57 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E6=89=93=E7=82=B9=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- serverlogic/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/serverlogic/build.gradle b/serverlogic/build.gradle index 86eb404bc..6ed4ea80b 100644 --- a/serverlogic/build.gradle +++ b/serverlogic/build.gradle @@ -39,6 +39,7 @@ dependencies { compile("com.fasterxml.jackson.core:jackson-databind:2.3.3") compile group: 'com.googlecode.protobuf-java-format', name: 'protobuf-java-format', version: '1.2' compile group: 'com.google.code.gson', name: 'gson', version: '2.2.4' + compile group: 'cn.thinkingdata', name: 'thinkingdatasdk', version: '1.5.1' // compile("org.luaj:luaj-jse:3.0.1") compile("org.apache.thrift:libthrift:0.9.2") compile("com.alibaba:fastjson:1.2.47") From 5043f26ac65a149fdf6607aa438f4a04555c175a Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Mon, 6 Jul 2020 20:43:10 +0800 Subject: [PATCH 9/9] =?UTF-8?q?TASK=E3=80=90ID1008168=E3=80=91=E3=80=90?= =?UTF-8?q?=E5=A4=A7=E9=97=B9=E5=A4=A9=E5=AE=AB=E3=80=91=E6=8B=9B=E5=8B=9F?= =?UTF-8?q?=E7=A5=9E=E5=B0=86=E7=9A=84=E7=AD=89=E7=BA=A7=EF=BC=8C=E8=B7=9F?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=8F=8F=E8=BF=B0=E7=9A=84=E4=B8=8D=E4=B8=80?= =?UTF-8?q?=E6=A0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReliveExpeditionHeroRequest.java | 2 +- .../java/com/ljsd/jieling/logic/dao/Hero.java | 30 ++++++++++---- .../logic/expedition/ExpeditionLogic.java | 41 ++++++++++++++----- 3 files changed, 55 insertions(+), 18 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/ReliveExpeditionHeroRequest.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/ReliveExpeditionHeroRequest.java index 222657fd3..88b6e6013 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/ReliveExpeditionHeroRequest.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/ReliveExpeditionHeroRequest.java @@ -86,7 +86,7 @@ public class ReliveExpeditionHeroRequest extends BaseHandler())); MessageUtil.sendIndicationMessage(iSession, 1, MessageTypeProto.MessageType.EXPEDITION_NOINFO_INDICATION_VALUE, builder.build(), true); } else { 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 44785b33e..a75a062f5 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 @@ -60,12 +60,28 @@ public class Hero extends MongoBase { this.id = KeyGenUtils.produceIdByModule(UUIDEnum.HERO, uid); this.templateId = heroTid; this.level = initStar; - int[] heroStar = SItem.getsItemMap().get(heroTid).getHeroStar(); - this.star =heroStar[1] ; + SCHero hero1 = SCHero.getsCHero().get(heroTid); + int initCfgStar = hero1.getStar(); + int maxStar = hero1.getMaxRank(); + if(hero.getStar()maxStar){ + this.star=maxStar; + }else { + this.star = hero.getStar(); + } + + if(initCfgStar!=hero.getStar()){ + Map scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE,initCfgStar); + if(scHeroRankUpConfigByType!=null) { + SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByType.get(hero.getStar()-1); + starBreakId = scHeroRankUpConfig.getId(); + } + } + this.equipByPositionMap = new HashMap<>(); this.soulEquipByPositionMap = hero.soulEquipByPositionMap; this.breakId = hero.breakId; - this.starBreakId = hero.starBreakId; this.createTime = (int)(System.currentTimeMillis()/1000); this.speed = hero.speed; this.especialEquipLevel = hero.especialEquipLevel; @@ -85,10 +101,10 @@ public class Hero extends MongoBase { this.especialEquipLevel = 1; if(initStar!=scHero.getStar()){ Map scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE,scHero.getStar()); - if(scHeroRankUpConfigByType!=null) { - SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByType.get(initStar-1); - starBreakId = scHeroRankUpConfig.getId(); - } + if(scHeroRankUpConfigByType!=null) { + SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByType.get(initStar-1); + starBreakId = scHeroRankUpConfig.getId(); + } } createTime = (int)(System.currentTimeMillis()/1000); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java index 091b4ef78..e83c1b6f0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java @@ -480,10 +480,10 @@ public class ExpeditionLogic { } int ints = staffsSet.size()+1;//默认品质 try { - ints = MathUtils.randomFromWeight(cfg.getHolyProbability()); + ints = MathUtils.randomFromWeight(cfg.getHolyProbability()); }catch (Exception e){ break; - // e.printStackTrace(); + // e.printStackTrace(); } Map type2holy2weight = STableManager.getFigureConfig(CommonStaticConfig.class).getType2holy2weight(ints); int i1 = ranndomFromWeight(type2holy2weight); @@ -747,7 +747,7 @@ public class ExpeditionLogic { } SExpeditionHolyConfig orDefault = effectItems.getOrDefault(sExpeditionHolyConfig.geteffect(), null); if(null!=orDefault&&sExpeditionHolyConfig.gettype()<=orDefault.gettype()){ - continue; + continue; } effectItems.put(sExpeditionHolyConfig.geteffect(),sExpeditionHolyConfig); } @@ -874,8 +874,8 @@ public class ExpeditionLogic { // if(isTemp){ // user.getExpeditionManager().addEquipToTemp(user, newequip); // }else { - user.getExpeditionManager().addEquip(user, newequip); - // } + user.getExpeditionManager().addEquip(user, newequip); + // } newHero.updateEquipPositionMap(next.getKey(), newequip.getId()); } @@ -889,11 +889,11 @@ public class ExpeditionLogic { Jewel j = (Jewel) propertyItem; Jewel newequip = new Jewel(user.getId(), j.getEquipId()); - // if(isTemp){ - // user.getExpeditionManager().addEquipToTemp(user, newequip); - // }else { - user.getExpeditionManager().addEquip(user, newequip); - // } + // if(isTemp){ + // user.getExpeditionManager().addEquipToTemp(user, newequip); + // }else { + user.getExpeditionManager().addEquip(user, newequip); + // } newHero.addJewel(newequip.getId()); } if(isTemp){ @@ -919,9 +919,30 @@ public class ExpeditionLogic { //random ids TreeSet tempid = new TreeSet<>(); + Set tempType = new HashSet<>(); + int i=0; while (tempid.size()1000){ + LOGGER.error("getRandomTidException:条件不匹配"); + break; + } int i1 = ranndomFromWeight(cfg); + SExpeditionRecruitConfig sExpeditionRecruitConfig = STableManager.getConfig(SExpeditionRecruitConfig.class).get(i1); + SCHero hero1 = SCHero.getsCHero().get(sExpeditionRecruitConfig.getHeroId()); + i++; + if(hero1==null){ + LOGGER.error("英雄配置不存在"+i1); + continue; + } + int propertyName = hero1.getPropertyName(); + if(tempType.contains(propertyName)){ + continue; + } + tempid.add(i1); + tempType.add(propertyName); + i++; + } return tempid;