From 0f43fb38886885ce61e6d67929065d46612052e0 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 17 Apr 2021 18:01:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=89=E8=90=BD=E7=BB=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/globals/GlobalItemType.java | 3 ++- .../java/com/ljsd/jieling/util/ItemUtil.java | 27 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) 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..424077846 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java @@ -6,7 +6,7 @@ public interface GlobalItemType { int WEIGHT_DROP = 2; //随机掉落 int SUCCESSIVELY_RANDOM = 3; // 依次随机 int SELETEONE = 4; //n 选1 - + int NO_REPEATED_FIX_COUNT = 5;//按照物品在组内的占比出(不可重复) // 物品类型 int GEM = 3; // 钻石Id(充值获得) int ITEM = 0; //道具 @@ -32,6 +32,7 @@ public interface GlobalItemType { int SELECTSecretBox=20; // 自选宝箱(前端要区分) int SpecialMonster=21; // 灵兽 int SpecialMonsterItem=22; // 灵兽碎片 + int HeroUpItem = 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..cfe4db2de 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -414,6 +414,9 @@ public class ItemUtil { case GlobalItemType.SUCCESSIVELY_RANDOM: getSuccessivelyRandmoMap(user,sRewardGroup,rewards,weights,itemObj,dropRatio); break; + case GlobalItemType.NO_REPEATED_FIX_COUNT: + getFixRandomMap(user,sRewardGroup.getRewardMaxNum(),rewards,weights,itemObj,dropRatio); + break; default: break; } @@ -457,6 +460,29 @@ public class ItemUtil { getMap(sRewardItem.getItemId(),itemNum, itemObj,dropRatio); } } + private static void getFixRandomMap(User user,int randomItemNum ,String[] rewardArr,String[] weightArr,ItemMap itemObj,float dropRatio)throws ErrorCodeException { + + if(rewardArr.length!=weightArr.length||randomItemNum>rewardArr.length){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + int[][] randomArray = new int[rewardArr.length][]; + for(int i = 0 ; i