From 49544176438d3729cc7c468bb21a18e0e1a738c3 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 16 Apr 2021 10:31:51 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E9=80=9A=E7=94=A8=E7=A5=AD=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/UpHeroStarHandler.java | 13 +- .../ljsd/jieling/logic/hero/HeroLogic.java | 112 ++++++++++-------- .../main/java/config/SHeroRankupGroup.java | 5 +- .../com/ljsd/network/client/NettyClient.java | 9 +- 4 files changed, 82 insertions(+), 57 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/UpHeroStarHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/UpHeroStarHandler.java index d8a7b767a..93b1000ac 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/UpHeroStarHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/UpHeroStarHandler.java @@ -10,6 +10,7 @@ import rpc.protocols.HeroInfoProto; import rpc.protocols.MessageTypeProto; import org.springframework.stereotype.Component; +import java.util.ArrayList; import java.util.List; @Component @@ -36,10 +37,14 @@ public class UpHeroStarHandler extends BaseHandler heroIdsList = consumeMaterialsList.get(i).getHeroIdsList(); - String[] heroIds = new String[heroIdsList.size()]; - heroIdsList.toArray(heroIds); + for (HeroInfoProto.ConsumeMaterial material : consumeMaterialsList) { + List heroIdsList = new ArrayList<>(); + // 获取英雄id + material.getHeroIdsList().stream() + .filter(v->v.getType() == 1) + .forEach(v->heroIdsList.add(v.getItemId())); + String[] heroIds = heroIdsList.toArray(new String[0]); + // 验证神将是否可以消耗 useFunction = HeroLogic.getInstance().isUseFunction(iSession.getUid(), HongMengFunctionEnum.PASSIVE_EAT.getPropertyId(), heroIds); if (!useFunction){ throw new ErrorCodeException(ErrorCode.HONGMENG_ING); 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 494ab939f..3eba5e4c1 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 @@ -990,81 +990,98 @@ public class HeroLogic{ if(consumeMaterialInfoByPosition ==null){ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } - boolean canUse = true; - Set removeHeroIds = new HashSet<>(); + int needTotalHeroNums = 0; if(consumeMaterialInfoByPosition.size()!=consumeMaterialsList.size()){ throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); } //判断编队 for(HeroInfoProto.ConsumeMaterial consumeMaterial1 : consumeMaterialsList) { - List heroIdsList = consumeMaterial1.getHeroIdsList(); + List heroIdsList = new ArrayList<>(); + consumeMaterial1.getHeroIdsList().stream() + .filter(v->v.getType() == 1) + .forEach(v->heroIdsList.add(v.getItemId())); ErrorCode err = ItemLogic.getInstance().checkHeroResolve(heroIdsList, user); if(null!=err){ throw new ErrorCodeException(err); } } + List removeHeroIds = new ArrayList<>(); + HashMap removeItemMap = new HashMap<>(); StringBuilder reportConsumeHero = new StringBuilder(); + for(HeroInfoProto.ConsumeMaterial consumeMaterial1 : consumeMaterialsList){ int position = consumeMaterial1.getPosition(); SCHero.ConsumeMaterialInfo consumeMaterialInfo = consumeMaterialInfoByPosition.get(position); int nums = consumeMaterialInfo.getNums(); needTotalHeroNums+=nums; - List heroIdsList = consumeMaterial1.getHeroIdsList(); + List list = consumeMaterial1.getHeroIdsList(); SHeroRankupGroup sHeroRankupGroup = STableManager.getConfig(SHeroRankupGroup.class).get(consumeMaterialInfo.getGroupID()); int isSame = sHeroRankupGroup.getIssame(); int starLimit = sHeroRankupGroup.getStarLimit(); int isSameClan = sHeroRankupGroup.getIsSameClan(); int isId = sHeroRankupGroup.getIsId(); - for(String consumeHero : heroIdsList){ - Hero hero = heroManager.getHero(consumeHero); - if( null == hero ){ - throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); - } - //上报消耗的英雄数据 - if(reportConsumeHero.length()>0){ - reportConsumeHero.append("|"); - } - reportConsumeHero.append(hero.getTemplateId()).append("-").append(hero.getStar()).append("-").append(hero.getLevel(user.getHeroManager())); - - - if( 1 == isSame) { - if(hero.getTemplateId() != targetHero.getTemplateId()){ + List items = Arrays.stream(sHeroRankupGroup.getItems()).boxed().collect(Collectors.toList()); + for(HeroInfoProto.ConsumeItem consume : list){ + // 英雄 + if (consume.getType() == 1){ + Hero hero = heroManager.getHero(consume.getItemId()); + if( null == hero ){ throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); } - } - - if( starLimit != 0 ) { - if(hero.getStar() != starLimit){ - throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); + //上报消耗的英雄数据 + if(reportConsumeHero.length()>0){ + reportConsumeHero.append("|"); } - } + reportConsumeHero.append(hero.getTemplateId()).append("-").append(hero.getStar()).append("-").append(hero.getLevel(user.getHeroManager())); - if( 1 == isSameClan) { - SCHero scHeroTmp = SCHero.getsCHero().get(hero.getTemplateId()); - SCHero targetSHero = SCHero.getsCHero().get(targetHero.getTemplateId()); - if( scHeroTmp.getPropertyName() != targetSHero.getPropertyName() ){ - throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); - } - } - if( isId != 0) { - if(hero.getTemplateId() != isId){ - throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); + if( 1 == isSame) { + if(hero.getTemplateId() != targetHero.getTemplateId()){ + throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); + } } + + if( starLimit != 0 ) { + if(hero.getStar() != starLimit){ + throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); + } + } + + if( 1 == isSameClan) { + SCHero scHeroTmp = SCHero.getsCHero().get(hero.getTemplateId()); + SCHero targetSHero = SCHero.getsCHero().get(targetHero.getTemplateId()); + if( scHeroTmp.getPropertyName() != targetSHero.getPropertyName() ){ + throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); + } + } + + if(isId != 0) { + if(hero.getTemplateId() != isId){ + throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); + } + } + removeHeroIds.add(consume.getItemId()); + } + // 道具 + else { + if (!items.contains(Integer.parseInt(consume.getItemId()))){ + throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT); + } + Integer num = removeItemMap.getOrDefault(Integer.parseInt(consume.getItemId()), 0); + removeItemMap.put(Integer.parseInt(consume.getItemId()),num+1); } - removeHeroIds.add(consumeHero); } - + // 校验道具数量 + boolean cost = ItemUtil.checkCost(user, removeItemMap); + if (!cost){ + throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT); + } } - if(needTotalHeroNums!=removeHeroIds.size()){ - canUse=false; + if(needTotalHeroNums != (removeHeroIds.size()+removeItemMap.size())){ LOGGER.error("hero num not enough"); - } - - if(!canUse){ throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); } @@ -1074,16 +1091,16 @@ public class HeroLogic{ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } - //删除hero -// CommonProto.Drop.Builder baseBuilder = ItemLogic.getInstance().decomposeHero(session,new LinkedList<>(removeHeroIds),Collections.singleton(26),MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE); //改成归元获得,同时返还法宝获得 CommonProto.Drop.Builder baseBuilder = heroBackDrop(user,new ArrayList<>(removeHeroIds),10000,BIReason.UPHERO_DECOMPOS_HERO_REWARD,true); + // 删除英雄 for(String rmHeroId:removeHeroIds){ heroManager.removeHero(uid,rmHeroId); } + // 消耗道具 + ItemUtil.itemCost(user,removeItemMap,BIReason.COMPLEX_EQUIP_CONSUME,0); -// recyleHeroBySystem(user,removeHeroIds); rankUpHeroExecute(targetHero); Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),targetHero.getTemplateId(),targetHero.getStar())); if (targetHero.getStar()>=5&&targetHero.getStar()!=15){ @@ -1092,15 +1109,13 @@ public class HeroLogic{ } } -// if(targetHero.getStar()==5){ -// Poster.getPoster().dispatchEvent(new HeroFiveStarGetEvent(user.getId())); -// } targetHero.setStarBreakId(scHeroRankUpConfig.getId()); user.getUserMissionManager().onGameEvent(user,GameEvent.HERO_UP,2,targetHero.getTemplateId(),targetHero.getStar()); user.getUserMissionManager().onGameEvent(user,GameEvent.GET_HERO,targetHero.getTemplateId(),targetHero.getStar()); if(isInTeam(user,heroId,1)){ Poster.getPoster().dispatchEvent(new UserMainTeamForceEvent(session.getUid())); } + if (targetHero.getStar() >= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_awaken_hero_content_parm)) { Set hongmengMaxLevel = heroManager.getHongmengMaxLevel(); boolean add = hongmengMaxLevel.add(targetHero.getTemplateId()); @@ -1124,9 +1139,10 @@ public class HeroLogic{ } String consume = StringUtil.parseArrayToString(consumeMaterial); -// HERO_STRENGTHEN(13,"hero_strengthen", new CommonEventHandler(),new String[]{"hero_id","old_quality","new_quality","strengthen_type","cost_item_list","cost_hero_list"}), ReportUtil.onReportEvent(user, ReportEventEnum.HERO_STRENGTHEN.getType(),String.valueOf(targetHero.getTemplateId()),String.valueOf(oldStar),String.valueOf(targetHero.getStar()),consume,reportConsumeHero.toString()); } + + private void rankUpHeroExecute(Hero hero)throws Exception { //是否解锁法宝 SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting(); diff --git a/tablemanager/src/main/java/config/SHeroRankupGroup.java b/tablemanager/src/main/java/config/SHeroRankupGroup.java index 16d9478d9..0b8b8fb11 100644 --- a/tablemanager/src/main/java/config/SHeroRankupGroup.java +++ b/tablemanager/src/main/java/config/SHeroRankupGroup.java @@ -15,6 +15,7 @@ public class SHeroRankupGroup implements BaseConfig { private int isId; + private int[] items; @Override public void init() throws Exception { @@ -40,5 +41,7 @@ public class SHeroRankupGroup implements BaseConfig { return isId; } - + public int[] getItems() { + return items; + } } \ No newline at end of file diff --git a/test/src/main/java/com/ljsd/network/client/NettyClient.java b/test/src/main/java/com/ljsd/network/client/NettyClient.java index 76b7dcab4..df3c191b2 100644 --- a/test/src/main/java/com/ljsd/network/client/NettyClient.java +++ b/test/src/main/java/com/ljsd/network/client/NettyClient.java @@ -256,10 +256,11 @@ public class NettyClient { public HeroInfoProto.UpHeroStarRequest upHeroStar(){ String heroId = ""; List consumeMaterialsList = new ArrayList<>(); - consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(1).addHeroIds("").build()); - consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(2).addHeroIds("").build()); - consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(3).addHeroIds("").build()); - consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(4).addHeroIds("").build()); + HeroInfoProto.ConsumeItem.Builder builder = HeroInfoProto.ConsumeItem.newBuilder(); + consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(1).addHeroIds(builder).build()); + consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(2).addHeroIds(builder).build()); + consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(3).addHeroIds(builder).build()); + consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(4).addHeroIds(builder).build()); return HeroInfoProto.UpHeroStarRequest.newBuilder().setHeroId(heroId).addAllConsumeMaterials(consumeMaterialsList).build(); } From 509c9b57c81d2e56807c3f09ec99d444e46a952b Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 16 Apr 2021 14:24:48 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=81=93=E5=85=B7?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B:=E4=B8=87=E8=83=BD=E7=8B=97=E7=B2=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/globals/GlobalItemType.java | 2 ++ serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java | 1 + 2 files changed, 3 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java index eb8c78fa0..feac4a7d3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java @@ -32,6 +32,8 @@ public interface GlobalItemType { int SELECTSecretBox=20; // 自选宝箱(前端要区分) int SpecialMonster=21; // 灵兽 int SpecialMonsterItem=22; // 灵兽碎片 + // 万能狗粮 + int AllPowerful_DogFood = 25; //物品使用类型 int NO_USE = 0 ; //不使用 int RANDOM_USE = 1; // 随机使用 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index 20a93a930..fdb21d6d3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -543,6 +543,7 @@ public class ItemUtil { case GlobalItemType.RIDE: case GlobalItemType.SELECTSecretBox: case GlobalItemType.SpecialMonsterItem: + case GlobalItemType.AllPowerful_DogFood: itemType = GlobalItemType.ITEM; break; default: From 4761478c74f0bc2046d88146a1ce171d1f40cfb3 Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 19 Apr 2021 15:38:29 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E9=80=9A=E7=94=A8=E7=A5=AD=E5=93=81bug?= =?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 | 5 ++++- 1 file changed, 4 insertions(+), 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 3eba5e4c1..d8fcbe4a0 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 @@ -1001,7 +1001,10 @@ public class HeroLogic{ consumeMaterial1.getHeroIdsList().stream() .filter(v->v.getType() == 1) .forEach(v->heroIdsList.add(v.getItemId())); - ErrorCode err = ItemLogic.getInstance().checkHeroResolve(heroIdsList, user); + ErrorCode err = null; + if (heroIdsList.size() > 0){ + err = ItemLogic.getInstance().checkHeroResolve(heroIdsList, user); + } if(null!=err){ throw new ErrorCodeException(err); } From 174a0f799ab62f24ce97abb39aa6772c24a79dea Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 19 Apr 2021 17:53:44 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E5=90=8C=E7=B3=BB=E7=A5=AD=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/hero/HeroLogic.java | 31 ++++++++++++++++--- .../main/java/config/SHeroRankupGroup.java | 6 ++++ 2 files changed, 33 insertions(+), 4 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 d8fcbe4a0..e9f9fad3a 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 @@ -1025,7 +1025,10 @@ public class HeroLogic{ int starLimit = sHeroRankupGroup.getStarLimit(); int isSameClan = sHeroRankupGroup.getIsSameClan(); int isId = sHeroRankupGroup.getIsId(); + // 万能道具代替 List items = Arrays.stream(sHeroRankupGroup.getItems()).boxed().collect(Collectors.toList()); + // 专属道具代替 + int[][] itemCamp = sHeroRankupGroup.getItemCamp(); for(HeroInfoProto.ConsumeItem consume : list){ // 英雄 if (consume.getType() == 1){ @@ -1069,11 +1072,15 @@ public class HeroLogic{ } // 道具 else { - if (!items.contains(Integer.parseInt(consume.getItemId()))){ - throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT); + int itemId = Integer.parseInt(consume.getItemId()); + if (!items.contains(itemId)){ + boolean camp = upStartItemCamp(scHero.getPropertyName(), itemCamp, itemId); + if (!camp){ + throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT); + } } - Integer num = removeItemMap.getOrDefault(Integer.parseInt(consume.getItemId()), 0); - removeItemMap.put(Integer.parseInt(consume.getItemId()),num+1); + Integer num = removeItemMap.getOrDefault(itemId, 0); + removeItemMap.put(itemId,num+1); } } // 校验道具数量 @@ -1145,6 +1152,22 @@ public class HeroLogic{ ReportUtil.onReportEvent(user, ReportEventEnum.HERO_STRENGTHEN.getType(),String.valueOf(targetHero.getTemplateId()),String.valueOf(oldStar),String.valueOf(targetHero.getStar()),consume,reportConsumeHero.toString()); } + /** + * 升星验证同系道具 + * @param type + * @param itemCamp + * @param itemId + * @return + */ + private boolean upStartItemCamp(int type,int[][] itemCamp,int itemId){ + for (int[] ints : itemCamp) { + if (type == ints[0] && itemId == ints[1]){ + return true; + } + } + return false; + } + private void rankUpHeroExecute(Hero hero)throws Exception { //是否解锁法宝 diff --git a/tablemanager/src/main/java/config/SHeroRankupGroup.java b/tablemanager/src/main/java/config/SHeroRankupGroup.java index 0b8b8fb11..daa872aa5 100644 --- a/tablemanager/src/main/java/config/SHeroRankupGroup.java +++ b/tablemanager/src/main/java/config/SHeroRankupGroup.java @@ -16,6 +16,8 @@ public class SHeroRankupGroup implements BaseConfig { private int isId; private int[] items; + + private int[][] itemCamp; @Override public void init() throws Exception { @@ -44,4 +46,8 @@ public class SHeroRankupGroup implements BaseConfig { public int[] getItems() { return items; } + + public int[][] getItemCamp() { + return itemCamp; + } } \ No newline at end of file From 59b28c36e8ce1c6134391830140e05c23ae2cce2 Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Tue, 4 May 2021 00:24:50 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E7=AB=9E=E6=8A=80=E5=9C=BA=E4=BC=98?= =?UTF-8?q?=E5=8C=96=20=E8=B5=9B=E5=AD=A3=E9=87=8D=E7=BD=AE=E4=B8=8D?= =?UTF-8?q?=E6=B8=85=E7=A9=BA=E7=A7=AF=E5=88=86=EF=BC=8C=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E4=B8=BA=E4=B8=8A=E8=B5=9B=E5=AD=A3=E7=A7=AF=E5=88=86?= =?UTF-8?q?=E7=9A=84=E7=99=BE=E5=88=86=E6=AF=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/arena/ArenaLogic.java | 43 ++++++++++++------- 1 file changed, 28 insertions(+), 15 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 3827f9f3e..646ea0c31 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 @@ -27,6 +27,7 @@ import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.network.server.GlobalidHelper; import com.ljsd.jieling.network.server.WorldHelper; import com.ljsd.jieling.network.session.ISession; +import org.luaj.vm2.lib.jse.JseMathLib; import rpc.protocols.ArenaInfoProto; import rpc.protocols.CommonProto; import rpc.protocols.FightInfoProto; @@ -569,31 +570,43 @@ public class ArenaLogic { } public String getRewardByRank(int rank,int type){ - Map config = STableManager.getConfig(SArenaReward.class); - for(SArenaReward sArenaReward : config.values()){ - int minRank = sArenaReward.getMinRank(); - int maxRank = sArenaReward.getMaxRank(); - if(rank>=minRank && rank<=maxRank){ - if(type == GlobalsDef.ARENA_DAILY_REWARD){ - int[][] dailyReward = sArenaReward.getDailyReward(); - return StringUtil.parseArrayToString(dailyReward); - }else{ - int[][] seasonReward = sArenaReward.getSeasonReward(); - return StringUtil.parseArrayToString(seasonReward); - } - } - } +// Map config = STableManager.getConfig(SArenaReward.class); +// for(SArenaReward sArenaReward : config.values()){ +// int minRank = sArenaReward.getMinRank(); +// int maxRank = sArenaReward.getMaxRank(); +// if(rank>=minRank && rank<=maxRank){ +// if(type == GlobalsDef.ARENA_DAILY_REWARD){ +// int[][] dailyReward = sArenaReward.getDailyReward(); +// return StringUtil.parseArrayToString(dailyReward); +// }else{ +// int[][] seasonReward = sArenaReward.getSeasonReward(); +// return StringUtil.parseArrayToString(seasonReward); +// } +// } +// } return ""; } public void updateArenaSeason(int curSeason){ this.curSeason = curSeason; + //初始化竞技场新周期数据 + if(curSeason>viewSeason){ + String oldRedisKey = RedisUtil.getInstence().getKey(RedisKey.ARENA_RANK,String.valueOf(viewSeason)); + String newRedisKey = RedisUtil.getInstence().getKey(RedisKey.ARENA_RANK,String.valueOf(curSeason)); + Set> set= RedisUtil.getInstence().getAllZsetRange(oldRedisKey); + for(ZSetOperations.TypedTuple item : set){ + String id = item.getValue(); + Double score = item.getScore(); + double time = score - score.intValue(); + double newScore =(int)(score.intValue()*0.8)+ time; + RedisUtil.getInstence().zsetAddOne(newRedisKey,id,newScore); + } + } if(this.curSeason!=0){ viewSeason = this.curSeason; } } - public void playWithSb(ISession session,int challengeUid,int myteamId) throws Exception { User mine = UserManager.getUser(session.getUid()); User defUser = UserManager.getUser(challengeUid); From c05d0ea2b6800d4a8708b3f9d7ab9c15b3a60c53 Mon Sep 17 00:00:00 2001 From: duhui Date: Wed, 21 Apr 2021 11:30:04 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E9=A6=96=E6=AC=A1=E6=8C=91=E6=88=98?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E6=97=B6=E6=94=B9=E4=B8=BA=E4=B8=8D=E6=B6=88?= =?UTF-8?q?=E8=80=97=E6=AC=A1=E6=95=B0?= 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 | 1 - 1 file changed, 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 f9ed13fe8..4bc8e1b87 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 @@ -3137,7 +3137,6 @@ public class MapLogic { CommonProto.Drop.Builder drop = ItemUtil.drop(user, sDailyChallengeConfig.getReward(), 1, 0, 1); builder.setDrop(drop); playerInfoManager.addDailyPass(id); - consumeCount = true; }else{ isFailed = true; }