From 5c0a4802b94804416bdbb611336d5033e105a5ab Mon Sep 17 00:00:00 2001 From: lvxinran Date: Mon, 2 Aug 2021 10:55:37 +0800 Subject: [PATCH 01/16] =?UTF-8?q?=E6=B2=A1=E5=B0=8F=E6=80=AA=E6=97=B6?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E4=BD=BF=E7=94=A8=E7=82=B8=E5=BC=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/map/mapType/TowerMap.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java index 14bf88cb5..9b8424603 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java @@ -627,10 +627,6 @@ public class TowerMap extends AbstractMap { if(mapManager.getTrialInfo().getEnergy()==-1){ throw new ErrorCodeException(ErrorCode.USE_BOMB_BOSS); } - boolean isUse = ItemUtil.itemCost(user,bomb,BIReason.BOMB_CONSUME,mapManager.getCurMapId()); - if(!isUse){ - throw new ErrorCodeException(ErrorCode.USE_BOMB_NO_BOSS); - } Map sEventPointConfig = STableManager.getConfig(SEventPointConfig.class); Set destoryCell = new HashSet<>(); Map configMap = MapPointConfig.scMapEventMap; @@ -656,6 +652,14 @@ public class TowerMap extends AbstractMap { destoryCell.add(entry.getValue().getPointId()); } } + if(monsterAmount==0){ + //没有小怪,无需使用炸弹 + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + boolean isUse = ItemUtil.itemCost(user,bomb,BIReason.BOMB_CONSUME,mapManager.getCurMapId()); + if(!isUse){ + throw new ErrorCodeException(ErrorCode.USE_BOMB_NO_BOSS); + } LOGGER.info("几种:{}",mapInfo.size()); int[] x = Arrays.stream(destoryCell.toArray(new Integer[destoryCell.size()])).mapToInt(Integer::valueOf).toArray(); BehaviorUtil.destoryPoints(user,x); From 3e396b771a660cce2f6a3ee149a1dc40d3de8baa Mon Sep 17 00:00:00 2001 From: lvxinran Date: Mon, 2 Aug 2021 10:55:52 +0800 Subject: [PATCH 02/16] =?UTF-8?q?=E9=94=99=E8=AF=AF=E6=8F=90=E7=A4=BA?= =?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/exception/ErrorCode.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 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 ee4ff549b..3931099ab 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java @@ -166,12 +166,12 @@ public enum ErrorCode implements IErrorCode { BAG_FULL(135,"背包内存储空间不足,无法领取附件"), - HONGMENG_ING(139,"英雄在鸿蒙阵中,操作失败"), - - LOCK_FILL(140,"锁定数量已满,无法刷新"), + LOCK_FILL(138,"锁定数量已满,无法刷新"), + TOWER_NO_SIMPLE_MONSTER(139,"没有小怪,无需使用炸弹"), + CHAMPION_BET_GUESS_OVER_TIME(140,"巅峰赛竞猜超时,请重新进入页面"), REDPACKET_DAILY_LIMIT(141,"今日福利红包已达领取上限"), - CHAMPION_BET_GUESS_OVER_TIME(142,"巅峰赛竞猜超时,请重新进入页面"), - CHAT_NOT_CROSS(143,"聊天检查 没有跨服分组"), + HONGMENG_ING(142,"英雄在鸿蒙阵中,操作失败"), + CHAT_NOT_CROSS(143,"聊天检查,没有跨服分组"), ; private static final Set CodeSet = new HashSet<>(); From e6f55bb76f6e9acdf124e7a3ec27753ed07c5fde Mon Sep 17 00:00:00 2001 From: lvxinran Date: Mon, 2 Aug 2021 10:56:13 +0800 Subject: [PATCH 03/16] =?UTF-8?q?=E5=88=A0=E6=8E=89=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E7=89=A9=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/handler/map/MapLogic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index b720cbdc8..b4de485bb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -2834,7 +2834,7 @@ public class MapLogic { Item item1 = user.getItemManager().getItem(item.getId()); if(item1!=null){ if(item1.getItemId()==0){ - user.getItemManager().removeItem(0); + user.getItemManager().removeItem(item.getId()); continue; } System.out.println("======================清理无尽副本道具,玩家:{ " + uid + " },道具id:{ " + item1.getItemId() + " }"); From 28a7882999b21324caf6bade1dcca8c5bd0aba47 Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 13 Sep 2021 00:29:30 +0800 Subject: [PATCH 04/16] =?UTF-8?q?=E8=B7=A8=E6=9C=8Dbug=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 | 4 ++ .../ljsd/jieling/logic/mail/MailLogic.java | 5 +- .../jieling/logic/rank/CrossRankManager.java | 54 ++++++++++--------- .../logic/rank/rankImpl/CrossArenaRank.java | 1 + 4 files changed, 36 insertions(+), 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 80c6945c2..715fed8d9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java @@ -208,12 +208,15 @@ public class GlobleSystemLogic implements IEventHandler { } public void doSplit(){ + LOGGER.info("跨服分组验证处理"); if(!GameApplication.serverProperties.isArenaCross()){ + LOGGER.error("跨服分组,测试服不做分组"); return; } RedisUtil redisUtil = RedisUtil.getInstence(); Object matched = redisUtil.get(RedisKey.MATCHED_SPLIT_KEY); if(matched!=null){ + LOGGER.error("跨服分组,获取key:【MATCHED_SPLIT_KEY】失败, info:{}",matched.toString()); return; } SMServerArenaSetting setting = STableManager.getConfig(SMServerArenaSetting.class).get(1); @@ -221,6 +224,7 @@ public class GlobleSystemLogic implements IEventHandler { boolean lock = redisUtil.lock("SERVER_SPLIT_REDIS_LOCK", TimeUtils.ONE_MINUTE * 2); if(!lock){ //没有拿到锁直接返回 + LOGGER.error("跨服分组,未获取到锁"); return; } //这里为所有服务器的世界等级 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java index 92f4ccb65..058804cc2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java @@ -434,9 +434,10 @@ public class MailLogic { public void sendCrossServerIndication(){ int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup(); int result = crossGroup == -1 ? 0 : 1; - PlayerInfoProto.IsCrossResponse build = PlayerInfoProto.IsCrossResponse.newBuilder().setIsCross(result).build(); + PlayerInfoProto.IsCrossIndication build = PlayerInfoProto.IsCrossIndication.newBuilder().setIsCross(result).build(); for(ISession session:OnlineUserManager.sessionMap.values()){ - MessageUtil.sendIndicationMessage(session.getUid(),build); + LOGGER.info("=====================开始跨服,推送数据到玩家信息:{},分组id:{}",session.getUid(),crossGroup); + MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.IsCrossIndication_VALUE,build,true); } } 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 3796716ab..ab01fa4aa 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 @@ -47,38 +47,40 @@ public class CrossRankManager { * 跨服排行处理 */ public void crossRankHandle(boolean choice){ - if (choice || !isTime()){ - // 不是处理数据的服务器 - return; - } - for (RankEnum value : RankEnum.values()) { - int type = value.getType(); - boolean rank2 = RankContext.isCrossRank2(type); - if (rank2){ - //跨服 - if(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); - Map cacheMap = RedisUtil.getInstence().getMapValues(RedisKey.FAMILY_INFO, "", Integer.class, GuildCache.class); - Set> range = RedisUtil.getInstence().getZsetreverseRangeWithScores(rank.getRedisKey(), "", 0, 100, true); - for (ZSetOperations.TypedTuple tuple : range) { - if (tuple.getValue().length() == 8){ - rank.crossUserCache(Integer.parseInt(tuple.getValue())); - }else { - GuildCache cache = cacheMap.get(Integer.valueOf(tuple.getValue())); - if (cache != null){ - rank.crossUserCache(cache.getLeaderUId()); + // 时间验证 + if (choice || isTime()){ + // 全部排行遍历 + for (RankEnum value : RankEnum.values()) { + int type = value.getType(); + boolean rank2 = RankContext.isCrossRank2(type); + if (rank2){ + //跨服 + if(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); + Map cacheMap = RedisUtil.getInstence().getMapValues(RedisKey.FAMILY_INFO, "", Integer.class, GuildCache.class); + Set> range = RedisUtil.getInstence().getZsetreverseRangeWithScores(rank.getRedisKey(), "", 0, 100, true); + for (ZSetOperations.TypedTuple tuple : range) { + if (tuple.getValue().length() == 8){ + rank.crossUserCache(Integer.parseInt(tuple.getValue())); + }else { + GuildCache cache = cacheMap.get(Integer.valueOf(tuple.getValue())); + if (cache != null){ + rank.crossUserCache(cache.getLeaderUId()); + } } + RedisUtil.getInstence().zsetAddOne(key,tuple.getValue(),tuple.getScore()); } - RedisUtil.getInstence().zsetAddOne(key,tuple.getValue(),tuple.getScore()); + LOGGER.info("=====================跨服排行榜处理========,key:{}",key); } - LOGGER.info("=====================跨服排行榜处理========,key:{}",key); } } } + // 更新时间 + isTime(); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java index 71dcdc68d..625209228 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java @@ -108,6 +108,7 @@ public class CrossArenaRank extends AbstractRank { @Override public PlayerInfoProto.RankResponse getCrossRank(int uid, String rkey, int page, int rankEndLine) throws Exception { + rkey = Integer.toString(GlobleSystemLogic.getInstence().getCrossGroup()); return getRank(uid,rkey,page,rankEndLine); } } From fdf2e28b6fc87d0bddb4490fd7e2122037aee818 Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 2 Aug 2021 11:18:03 +0800 Subject: [PATCH 05/16] =?UTF-8?q?=E8=B7=A8=E6=9C=8D=E6=8E=92=E8=A1=8C?= =?UTF-8?q?=E6=88=98=E5=8A=9B=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java | 1 + 1 file changed, 1 insertion(+) 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 b9d4101c3..7a60d3328 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 @@ -771,6 +771,7 @@ public class PlayerLogic { } CommonProto.Hero.Builder heroBuilder = CommonProto.Hero.newBuilder().setLevel(hero.getLevel()).setEspecialEquipLevel(hero.getEspecialEquipLevel()).setStar(hero.getStar()).setId(hero.getId()).setHeroId(hero.getTemplateId()).setBreakId(hero.getBreakId()).setStarBreakId(hero.getStarBreakId()); PlayerInfoProto.ViewHeroInfoResponse.Builder builder = PlayerInfoProto.ViewHeroInfoResponse.newBuilder(); + Map heroNotBufferAttribute = hero.getAttributeMapByTeam().getOrDefault(teamId,new HashMap<>()); for(Map.Entry item : heroNotBufferAttribute.entrySet()){ builder.addSpecialEffects(CommonProto.SpecialEffects.newBuilder().setPropertyId(item.getKey()).setPropertyValue(item.getValue().intValue()).build()); From 4f8f6cd44d23c082da624578fcd49ce566f1d90c Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 2 Aug 2021 11:18:54 +0800 Subject: [PATCH 06/16] =?UTF-8?q?=E8=B7=A8=E6=9C=8D=E6=88=98=E5=8A=9B?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/crossService/CrossServiceLogic.java | 2 +- .../main/java/com/ljsd/jieling/logic/rank/CrossRankManager.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 1ae2e81b2..4771cc7ed 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 @@ -214,7 +214,7 @@ public class CrossServiceLogic { if (collect.isEmpty()){ continue; } - Map attribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero, false, teamId); + Map attribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero, true, teamId); arenaOfHero.putAttributeMapByTeam(teamId,attribute); } return arenaOfHero; 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 ab01fa4aa..452a9e5db 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 @@ -68,7 +68,7 @@ public class CrossRankManager { rank.crossUserCache(Integer.parseInt(tuple.getValue())); }else { GuildCache cache = cacheMap.get(Integer.valueOf(tuple.getValue())); - if (cache != null){ + if (cache != null && cache.getLeaderUId() != 0){ rank.crossUserCache(cache.getLeaderUId()); } } From cc0574a4a63516b139d7505d74b308f07c59b854 Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 2 Aug 2021 13:34:35 +0800 Subject: [PATCH 07/16] =?UTF-8?q?=E8=B7=A8=E6=9C=8D=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java | 7 +++++-- .../java/com/ljsd/jieling/logic/family/GuildLogic.java | 4 +++- .../src/main/java/com/ljsd/jieling/util/CBean2Proto.java | 4 +++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java index eb9d191e3..2f1f2373e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java @@ -23,6 +23,7 @@ import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.gm.ArenaOfUser; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.family.CrossDeathPathLogic; import com.ljsd.jieling.logic.fight.*; import com.ljsd.jieling.logic.fight.result.FightResult; import com.ljsd.jieling.logic.hero.HeroLogic; @@ -969,11 +970,12 @@ public class ArenaLogic { Object get = RedisUtil.getInstence().hget(RedisKey.ARENA_PROUD_COUNT, String.valueOf(enemy.getId())); int proudTime = get==null?1:Integer.parseInt((String)get); int enemyId = enemy.getId(); + String serverName = CrossDeathPathLogic.getInstance().getServerNameByDeathPath(enemy.getPlayerManager().getServerId()); CommonProto.ArenaPersonInfo personInfoBuild = CommonProto.ArenaPersonInfo.newBuilder() .setUid(enemyId) .setLevel(enemy.getPlayerManager().getLevel()) .setName(enemy.getPlayerManager().getName()) - .setServername(enemy.getPlayerManager().getServerName()) + .setServername(serverName) .setTotalForce(enemy.getHeroManager().getTotalForce()) .setUserTitle(enemy.getPlayerManager().getUserTitle()) .setUserMount(enemy.getPlayerManager().getUserMount()) @@ -993,13 +995,14 @@ public class ArenaLogic { int enemyId = enemy.getEnemyId(); SArenaRobotConfig sArenaRobotConfig = SArenaRobotConfig.getsArenaRobotConfigById(enemyId); CommonProto.Team teamBuild = CommonProto.Team.newBuilder().addAllHeroTid(sArenaRobotConfig.getHeroList()).build(); + String serverName = CrossDeathPathLogic.getInstance().getServerNameByDeathPath(enemy.getServerID()); CommonProto.ArenaPersonInfo personInfoBuild = CommonProto.ArenaPersonInfo.newBuilder() .setUid(enemy.getEnemyId_UUid()) .setLevel(sArenaRobotConfig.getRobotLevel()) .setName(enemy.getRandomName()==null?"":enemy.getRandomName()) .setScore(sArenaRobotConfig.getRobotScore()) .setTotalForce(sArenaRobotConfig.getTotalForce()) - .setServername(CrossServiceLogic.getInstance().findServerName(enemy.getServerID())) + .setServername(serverName) .setUserSkin(80012) .setGender(enemy.isGender()?1:0) .setRank(rank) 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 a2e503b4c..2ec675de4 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 @@ -823,7 +823,7 @@ public class GuildLogic { throw new ErrorCodeException(ErrorCode.FAMILY_IN_SENSITIVE); }else{ if(type==1){ - if(content.length()<0||content.length()>32){ + if(content.length() > 32){ throw new ErrorCodeException(ErrorCode.ANNOUNCE_SIZE); } guildInfo.setAnnounce(content); @@ -835,6 +835,8 @@ public class GuildLogic { throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); } guildInfo.setName(content); + // 缓存同步 + RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_INFO,"",String.valueOf(guildInfo.getId()),GuildCache.create(guildInfo)); } MessageUtil.sendMessage(session,resultCode,msgId,response,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 512df7354..4c16deb27 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -14,6 +14,7 @@ import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.gm.ArenaOfHero; import com.ljsd.jieling.logic.dao.root.GuildInfo; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.family.CrossDeathPathLogic; import com.ljsd.jieling.logic.fight.CombatLogic; import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.logic.store.newRechargeInfo.NewRechargeInfo; @@ -550,7 +551,8 @@ public class CBean2Proto { chatInfo.setMessageId(messageId); chatInfo.setUserTitle(playerInfoManager.getUserTitle()); chatInfo.setPracticeLevel(user.getHeroManager().getPracticeLevel()); - chatInfo.setServerName(CrossServiceLogic.getInstance().findServerName(GameApplication.serverId)); + String serverName = CrossDeathPathLogic.getInstance().getServerNameByDeathPath(GameApplication.serverId); + chatInfo.setServerName(serverName); return chatInfo.build(); } From cde4df5928e3c36d2827f9acf1ad71991b02c4b8 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 7 Aug 2021 14:03:30 +0800 Subject: [PATCH 08/16] =?UTF-8?q?=E7=BD=97=E6=B5=AE=E6=8E=92=E8=A1=8C?= =?UTF-8?q?=E7=AD=89=E7=BA=A7=E4=B8=8D=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/arena/ArenaLogic.java | 2 +- .../java/com/ljsd/jieling/logic/dao/CrossArenaEnemy.java | 8 +++++++- .../ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java index eb9d191e3..78501edae 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java @@ -860,7 +860,7 @@ public class ArenaLogic { int server = random.nextInt(groupList.size()); rank.addRank(robotIndex,String.valueOf(crossGroup),robotNum-robotIndex); SArenaRobotConfig config = SArenaRobotConfig.getsArenaRobotConfigById(robotIds.get(robotIndex)); - robotInfo.put(String.valueOf(robotIndex),new CrossArenaEnemy(robotIds.get(robotIndex),robotIndex,groupList.get(server),0,0,random.nextBoolean(),PlayerLogic.getInstance().getRandomName2WithOutVerify(),config.getTotalForce())); + robotInfo.put(String.valueOf(robotIndex),new CrossArenaEnemy(robotIds.get(robotIndex),robotIndex,groupList.get(server),0,0,random.nextBoolean(),PlayerLogic.getInstance().getRandomName2WithOutVerify(),config.getTotalForce(),config.getRoleLv())); } LOGGER.info("跨服信息初始化结束"); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CrossArenaEnemy.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CrossArenaEnemy.java index 8525c3903..3a8bacf23 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CrossArenaEnemy.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CrossArenaEnemy.java @@ -17,6 +17,7 @@ public class CrossArenaEnemy { private boolean gender; private String randomName; private int totalForce; + private int level; public CrossArenaEnemy(int enemyId, int enemyId_UUid, int serverID, int enemyType, int enemyStatus, int rank) { this.enemyId = enemyId; @@ -27,12 +28,13 @@ public class CrossArenaEnemy { this.rank = rank; } - public CrossArenaEnemy(int enemyId,int enemyId_UUid, int serverID, int enemyType, int enemyStatus,boolean gender,String randomName,int totalForce) { + public CrossArenaEnemy(int enemyId,int enemyId_UUid, int serverID, int enemyType, int enemyStatus,boolean gender,String randomName,int totalForce,int level) { this(enemyId,enemyId_UUid,serverID,enemyType,enemyStatus); this.gender=gender; this.randomName = randomName; this.totalForce = totalForce; + this.level = level; } public CrossArenaEnemy(int enemyId,int enemyId_UUid, int serverID, int enemyType, int enemyStatus) { this.enemyId = enemyId; @@ -91,4 +93,8 @@ public class CrossArenaEnemy { public int getTotalForce() { return totalForce; } + + public int getLevel() { + return level; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java index 625209228..8d2ddb34e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java @@ -62,7 +62,7 @@ public class CrossArenaRank extends AbstractRank { CommonProto.UserRank.Builder everyRank = CommonProto.UserRank.newBuilder() .setUid(mapEntry.getEnemyId_UUid()) .setUserName(mapEntry.getRandomName()) - .setLevel(100) + .setLevel(mapEntry.getLevel()==0?100:mapEntry.getLevel()) .setUserSkin(80012) .setRankInfo(everyRankInfo) .setServerName(CrossServiceLogic.getInstance().findServerName(mapEntry.getServerID())) From ea93c562cc17c376140990835f742aca4f575ada Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 2 Aug 2021 14:37:52 +0800 Subject: [PATCH 09/16] =?UTF-8?q?=E8=B7=A8=E6=9C=8D=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/rank/rankImpl/MainLevelRank.java | 3 ++- .../logic/rank/rankImpl/ShanHeSheJiTuChapterRank.java | 4 +++- .../jieling/logic/rank/rankImpl/ShanHeSheJiTuStarRank.java | 4 +++- .../java/com/ljsd/jieling/thread/task/DataReportTask.java | 5 ----- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/MainLevelRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/MainLevelRank.java index 75ea91f51..57bd21024 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/MainLevelRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/MainLevelRank.java @@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.rank.rankImpl; import rpc.protocols.CommonProto; import rpc.protocols.PlayerInfoProto; import org.springframework.data.redis.core.ZSetOperations; +import util.TimeUtils; import java.util.*; @@ -60,6 +61,6 @@ public class MainLevelRank extends AbstractRank { @Override public double getScore(double... data) { - return data[0]+ data[1]/Math.pow(10,8); + return data[0]+ TimeUtils.getDoubleTime(); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/ShanHeSheJiTuChapterRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/ShanHeSheJiTuChapterRank.java index 237eee752..72121a957 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/ShanHeSheJiTuChapterRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/ShanHeSheJiTuChapterRank.java @@ -1,5 +1,7 @@ package com.ljsd.jieling.logic.rank.rankImpl; +import util.TimeUtils; + public class ShanHeSheJiTuChapterRank extends AbstractRank{ public ShanHeSheJiTuChapterRank(int type, String redisKey) { @@ -12,7 +14,7 @@ public class ShanHeSheJiTuChapterRank extends AbstractRank{ @Override public double getScore(double... data) { - return data[0]; + return data[0]+ TimeUtils.getDoubleTime(); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/ShanHeSheJiTuStarRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/ShanHeSheJiTuStarRank.java index 6ac26ad0d..3c47b85d3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/ShanHeSheJiTuStarRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/ShanHeSheJiTuStarRank.java @@ -1,5 +1,7 @@ package com.ljsd.jieling.logic.rank.rankImpl; +import util.TimeUtils; + public class ShanHeSheJiTuStarRank extends AbstractRank{ public ShanHeSheJiTuStarRank(int type, String redisKey) { @@ -12,7 +14,7 @@ public class ShanHeSheJiTuStarRank extends AbstractRank{ @Override public double getScore(double... data) { - return data[0]; + return data[0]+ TimeUtils.getDoubleTime(); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/DataReportTask.java b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/DataReportTask.java index e4705a520..2f1358e8c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/DataReportTask.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/DataReportTask.java @@ -1,13 +1,8 @@ package com.ljsd.jieling.thread.task; -import com.ljsd.GameApplication; -import com.ljsd.jieling.config.reportData.DataMessageUtils; import com.ljsd.jieling.ktbeans.ReportUserEvent; import com.ljsd.jieling.ktbeans.ReportUtil; import org.springframework.stereotype.Component; - -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; @Component public class DataReportTask extends Thread { From d08086fe7817debd5048ce4559f0dd782bbfcbe3 Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 9 Aug 2021 17:44:19 +0800 Subject: [PATCH 10/16] =?UTF-8?q?=E8=B7=A8=E6=9C=8Dbug=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/GlobleSystemLogic.java | 7 ++- .../jieling/logic/rank/CrossRankManager.java | 59 +++++++++---------- .../logic/rank/rankImpl/CrossArenaRank.java | 25 +++++++- 3 files changed, 53 insertions(+), 38 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 715fed8d9..bd21ef353 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java @@ -256,9 +256,6 @@ public class GlobleSystemLogic implements IEventHandler { index++; } - // 跨服排行榜处理 - CrossRankManager.getInstance().cleanCrossRank(); - CrossRankManager.getInstance().crossRankHandle(true); redisUtil.putMapEntrys(RedisKey.SERVER_SPLIT_INFO,"",split); //发分组邮件 @@ -269,6 +266,10 @@ public class GlobleSystemLogic implements IEventHandler { redisUtil.del(RedisKey.CHAT_CROSS_MSG_ID+i); } + // 跨服排行榜处理 + CrossRankManager.getInstance().cleanCrossRank(); + CrossRankManager.getInstance().crossRankHandle(true); + //释放分布式锁 redisUtil.del("SERVER_SPLIT_REDIS_LOCK"); 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 452a9e5db..024e98b24 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 @@ -52,30 +52,27 @@ public class CrossRankManager { // 全部排行遍历 for (RankEnum value : RankEnum.values()) { int type = value.getType(); - boolean rank2 = RankContext.isCrossRank2(type); - if (rank2){ - //跨服 - if(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); - Map cacheMap = RedisUtil.getInstence().getMapValues(RedisKey.FAMILY_INFO, "", Integer.class, GuildCache.class); - Set> range = RedisUtil.getInstence().getZsetreverseRangeWithScores(rank.getRedisKey(), "", 0, 100, true); - for (ZSetOperations.TypedTuple tuple : range) { - if (tuple.getValue().length() == 8){ - rank.crossUserCache(Integer.parseInt(tuple.getValue())); - }else { - GuildCache cache = cacheMap.get(Integer.valueOf(tuple.getValue())); - if (cache != null && cache.getLeaderUId() != 0){ - rank.crossUserCache(cache.getLeaderUId()); - } + //跨服 + 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); + Map cacheMap = RedisUtil.getInstence().getMapValues(RedisKey.FAMILY_INFO, "", Integer.class, GuildCache.class); + Set> range = RedisUtil.getInstence().getZsetreverseRangeWithScores(rank.getRedisKey(), "", 0, 100, true); + for (ZSetOperations.TypedTuple tuple : range) { + if (tuple.getValue().length() == 8){ + rank.crossUserCache(Integer.parseInt(tuple.getValue())); + }else { + GuildCache cache = cacheMap.get(Integer.valueOf(tuple.getValue())); + if (cache != null && cache.getLeaderUId() != 0){ + rank.crossUserCache(cache.getLeaderUId()); } - RedisUtil.getInstence().zsetAddOne(key,tuple.getValue(),tuple.getScore()); } - LOGGER.info("=====================跨服排行榜处理========,key:{}",key); + RedisUtil.getInstence().zsetAddOne(key,tuple.getValue(),tuple.getScore()); } + LOGGER.info("=====================跨服排行榜处理========,key:{}",key); } } } @@ -116,17 +113,15 @@ public class CrossRankManager { public void cleanCrossRank(){ for (RankEnum value : RankEnum.values()) { int type = value.getType(); - if (RankContext.isCrossRank2(type)) { - //跨服 - if (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); - LOGGER.info("=====================跨服排行榜清理========,key:{}", key); - } + //跨服 + 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); + LOGGER.info("=====================跨服排行榜清理========,key:{}", key); } } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java index 8d2ddb34e..260dc44ff 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java @@ -5,6 +5,7 @@ import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.logic.GlobleSystemLogic; import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic; import com.ljsd.jieling.logic.dao.CrossArenaEnemy; +import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.gm.ArenaOfUser; import com.ljsd.jieling.logic.dao.root.User; import config.SArenaRobotConfig; @@ -13,6 +14,7 @@ import rpc.protocols.CommonProto; import rpc.protocols.PlayerInfoProto; import java.net.UnknownHostException; +import java.util.Set; /** * @author lvxinran @@ -88,9 +90,10 @@ public class CrossArenaRank extends AbstractRank { .setServerName(query.getPlayerManager().getServerName()) .setSex(0); builder.addRanks(everyRank); - } } + } + @Override protected void getMyInfo(User user, String rkey, PlayerInfoProto.RankResponse.Builder allUserResponse){ int myRank= RedisUtil.getInstence().getZSetreverseRank(redisKey,rkey,Integer.toString(user.getId())).intValue(); Double zSetScore = RedisUtil.getInstence().getZSetScore(redisKey, rkey, Integer.toString(user.getId())); @@ -108,7 +111,23 @@ public class CrossArenaRank extends AbstractRank { @Override public PlayerInfoProto.RankResponse getCrossRank(int uid, String rkey, int page, int rankEndLine) throws Exception { - rkey = Integer.toString(GlobleSystemLogic.getInstence().getCrossGroup()); - return getRank(uid,rkey,page,rankEndLine); + if(rankEndLine==-1){ + rankEndLine = 100; + } + User user = UserManager.getUser(uid); + if (page == 0) { + page = 1; + } + int start = (page - 1) * rankEndLine, end = page * rankEndLine - 1; + int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup(); + Set> scores = + RedisUtil.getInstence().getZsetreverseRangeWithScores(redisKey, String.valueOf(crossGroup), start, end, false); + if(start % rankEndLine == 0){ + start++; + } + PlayerInfoProto.RankResponse.Builder allUserResponse = getCrossAllUserResponse(scores,start); + //当前用户信息 + getCrossMyInfo(user,rkey,allUserResponse); + return allUserResponse.build(); } } From 69a15015debe5ee8d4a1a77136e2108f97326378 Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 16 Aug 2021 00:03:52 +0800 Subject: [PATCH 11/16] =?UTF-8?q?=E8=B7=A8=E6=9C=8D=E6=8E=92=E8=A1=8C?= =?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/logic/GlobleSystemLogic.java | 7 +++---- .../java/com/ljsd/jieling/logic/rank/CrossRankManager.java | 4 +--- .../com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java | 4 +--- 3 files changed, 5 insertions(+), 10 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 bd21ef353..0e405bc85 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java @@ -227,6 +227,9 @@ public class GlobleSystemLogic implements IEventHandler { LOGGER.error("跨服分组,未获取到锁"); return; } + // 跨服排行榜处理 + CrossRankManager.getInstance().cleanCrossRank(); + //这里为所有服务器的世界等级 Map worldLevelMap = redisUtil.getMapValues(RedisKey.SERVER_WORLDLEVE_INFO,"",String.class,Integer.class); LOGGER.info("跨服开始分组"); @@ -266,10 +269,6 @@ public class GlobleSystemLogic implements IEventHandler { redisUtil.del(RedisKey.CHAT_CROSS_MSG_ID+i); } - // 跨服排行榜处理 - CrossRankManager.getInstance().cleanCrossRank(); - CrossRankManager.getInstance().crossRankHandle(true); - //释放分布式锁 redisUtil.del("SERVER_SPLIT_REDIS_LOCK"); 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 024e98b24..f163da11a 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 @@ -48,7 +48,7 @@ public class CrossRankManager { */ public void crossRankHandle(boolean choice){ // 时间验证 - if (choice || isTime()){ + if (isTime()){ // 全部排行遍历 for (RankEnum value : RankEnum.values()) { int type = value.getType(); @@ -76,8 +76,6 @@ public class CrossRankManager { } } } - // 更新时间 - isTime(); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java index ebb8162f3..cd9b97cc1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java @@ -252,7 +252,6 @@ public abstract class AbstractRank implements IRank { } private CommonProto.UserRank.Builder getOneUserRank(User everyUser,CommonProto.RankInfo.Builder everyRankInfo){ - String serverName = CrossServiceLogic.getInstance().getServerNameByUId(everyUser.getId()); return CommonProto.UserRank.newBuilder() .setUid(everyUser.getId()) .setUserName(everyUser.getPlayerInfoManager().getNickName()) @@ -265,8 +264,7 @@ public abstract class AbstractRank implements IRank { .setUserSkin(everyUser.getPlayerInfoManager().getUserSkin()) .setUserTitle(everyUser.getPlayerInfoManager().getUserTitle()) .setUserMount(everyUser.getPlayerInfoManager().getUserMount()) - .setPracticeLevel(everyUser.getHeroManager().getPracticeLevel()) - .setServerName(serverName); + .setPracticeLevel(everyUser.getHeroManager().getPracticeLevel()); } public CommonProto.UserRank.Builder getCrossOneUserRank(ArenaOfUser query, CommonProto.RankInfo.Builder everyRankInfo){ From c5686fcd14c56d23f1c9ac96191c5f03a8256498 Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 16 Aug 2021 00:16:20 +0800 Subject: [PATCH 12/16] =?UTF-8?q?=E8=B7=A8=E6=9C=8D=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/logic/rank/CrossRankManager.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 f163da11a..51627e193 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 @@ -119,7 +119,8 @@ public class CrossRankManager { AbstractRank rank = RankContext.getRankEnum(type); String key = RedisUtil.getInstence().getKey(rank.getCrossRedisKey(),"",false); RedisUtil.getInstence().del(key); - LOGGER.info("=====================跨服排行榜清理========,key:{}", key); + time = 0L; + LOGGER.info("=====================跨服排行榜清理========,key:{},time:{}",key,time); } } } From 3e9de07975655ae51190b4c33913f100163e3feb Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 7 Aug 2021 00:17:47 +0800 Subject: [PATCH 13/16] =?UTF-8?q?=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF?= =?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/handler/map/mapType/TowerMap.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java index 9b8424603..8a44dd4b4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java @@ -654,7 +654,7 @@ public class TowerMap extends AbstractMap { } if(monsterAmount==0){ //没有小怪,无需使用炸弹 - throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + throw new ErrorCodeException(ErrorCode.TOWER_NO_SIMPLE_MONSTER); } boolean isUse = ItemUtil.itemCost(user,bomb,BIReason.BOMB_CONSUME,mapManager.getCurMapId()); if(!isUse){ From 8e3790eaa6a53a234dd6ac59db8ed4716e22e32a Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 7 Aug 2021 15:04:16 +0800 Subject: [PATCH 14/16] =?UTF-8?q?=E9=9D=92=E9=BE=99=E7=A7=98=E5=AE=9D?= =?UTF-8?q?=E7=A9=BA=E9=82=AE=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/activity/TreasureActivity.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java index bc4699a87..9d1c20525 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java @@ -226,6 +226,9 @@ public class TreasureActivity extends AbstractActivity { private void dropByState(List dropList,int curState,int targetState,int missionId){ STreasureSunlongConfig rewardConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(id).get(missionId); if(curState==ActivityType.WILL_TAKE){ + if(rewardConfig.getReward()==null||rewardConfig.getReward().length<1){ + return; + } dropList.add(rewardConfig.getReward()); if(targetState == ActivityType.FINISH_TAKED){ dropList.add(rewardConfig.getTreasureReward()); From 3048f8a3055342d741a7391e283c9983e23f8500 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 7 Aug 2021 17:18:46 +0800 Subject: [PATCH 15/16] =?UTF-8?q?=E5=85=85=E5=80=BC=E5=89=8D=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/store/CheckBuyGoodsHandler.java | 26 ++++++++++++++++ .../jieling/logic/store/BuyGoodsNewLogic.java | 30 ++++++++++++++++++- .../java/com/ljsd/jieling/util/UUIDEnum.java | 1 + 3 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/store/CheckBuyGoodsHandler.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/store/CheckBuyGoodsHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/store/CheckBuyGoodsHandler.java new file mode 100644 index 000000000..7547220b4 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/store/CheckBuyGoodsHandler.java @@ -0,0 +1,26 @@ +package com.ljsd.jieling.handler.store; + +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; +import com.ljsd.jieling.network.session.ISession; +import org.springframework.stereotype.Component; +import rpc.protocols.MessageTypeProto; +import rpc.protocols.PlayerInfoProto; + +/** + * @author lvxinran + * @date 2021/5/10 + * @discribe + */ +@Component +public class CheckBuyGoodsHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.CHECK_BUY_GOODS_REQUEST; + } + + @Override + public void processWithProto(ISession iSession, PlayerInfoProto.CheckBuyGoodsRequest proto) throws Exception { + BuyGoodsNewLogic.checkBuyGoods(iSession,proto.getGoodsId()); + } +} 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 d2a267bac..06d420fc6 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 @@ -4,6 +4,8 @@ import com.ljsd.GameApplication; import com.ljsd.jieling.config.reportData.DataMessageUtils; import com.ljsd.jieling.core.VipPrivilegeType; import com.ljsd.jieling.db.mongo.MongoUtil; +import com.ljsd.jieling.db.redis.RedisKey; +import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; @@ -723,7 +725,7 @@ public class BuyGoodsNewLogic { } } - private static int judgePushCondition(User user,SPackPushConfig con){ +private static int judgePushCondition(User user,SPackPushConfig con){ int[] scope = con.getScopeId(); if(scope[0] == 1){//主线关卡 int mainLevel = user.getMainLevelManager().getFightId(); @@ -850,4 +852,30 @@ public class BuyGoodsNewLogic { } return i; } + public static void checkBuyGoods(ISession session,int goodsId) throws Exception { + int uid = session.getUid(); + User user = UserManager.getUser(uid); + SRechargeCommodityNewConfig sRechargeCommodityConfig =SRechargeCommodityNewConfig.getConfigById(goodsId); + if(null ==sRechargeCommodityConfig) { + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + String order ; + if(sRechargeCommodityConfig.getPrice()==0){ + order = "0";//免费礼包不需要订单号 + }else { + //生成cp订单号 + order = createOrder(user); +// CPOrder cpOrder = new CPOrder(order, String.valueOf(TimeUtils.now()), String.valueOf(goodsId)); +// RedisUtil.getInstence().set(RedisKey.CP_ORDER,order,cpOrder); + } + PlayerInfoProto.CheckBuyGoodsResponse response = PlayerInfoProto.CheckBuyGoodsResponse.newBuilder().setOrderId(order).build(); + + MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.CHECK_BUY_GOODS_RESPONSE_VALUE,response); + + + } + private static String createOrder(User user){ + return KeyGenUtils.produceIdByModule(UUIDEnum.ORDER, user.getId()); + } + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/UUIDEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/util/UUIDEnum.java index 579dc3dad..4fe1ca7e3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/UUIDEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/UUIDEnum.java @@ -14,6 +14,7 @@ public enum UUIDEnum { JEWEL(10), SpecialMonster(11), ROBOT_UUID(12), + ORDER(13), HardStage(15), ; From e875b3688d6da25d6a09c02dfe57d91ce98d4e8b Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 7 Aug 2021 19:24:47 +0800 Subject: [PATCH 16/16] =?UTF-8?q?=E5=90=8E=E7=BB=AD=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/store/BuyGoodsNewLogic.java | 1 + 1 file changed, 1 insertion(+) 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 06d420fc6..3ffa53ad0 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 @@ -859,6 +859,7 @@ private static int judgePushCondition(User user,SPackPushConfig con){ if(null ==sRechargeCommodityConfig) { throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } + //todo 这里要加购买礼包的校验,然后把发货时的校验删掉 String order ; if(sRechargeCommodityConfig.getPrice()==0){ order = "0";//免费礼包不需要订单号