From 3da44b7d3b329b8d24bfd8e9f42e7a718d7ba387 Mon Sep 17 00:00:00 2001 From: "DESKTOP-C3M45P4\\dengdan" Date: Tue, 4 Nov 2025 20:11:57 +0800 Subject: [PATCH] =?UTF-8?q?=E7=82=B9=E5=B0=86=E6=8B=9B=E5=8B=9F=E5=92=8C?= =?UTF-8?q?=E6=B3=95=E5=AE=9D=E6=8B=9B=E5=8B=9F=E5=BF=83=E6=84=BF=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E5=9B=BA=E5=AE=9A=E6=9F=90=E4=BA=9B=E6=AC=A1=E6=95=B0?= =?UTF-8?q?=E7=9A=84=E6=A6=82=E7=8E=87=E6=8A=BD=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/ActivityLogic.java | 2 +- .../ljsd/jieling/logic/dao/HeroManager.java | 21 +++++++++++++++++++ .../ljsd/jieling/logic/hero/HeroLogic.java | 18 +++++++++++----- 3 files changed, 35 insertions(+), 6 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 539e9040c..71d131e94 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -1615,7 +1615,7 @@ public class ActivityLogic implements IEventHandler{ } /** - * 心愿抽奖 + * 寻仙招募 */ public void choiceDrawCard(ISession iSession,User user,int activityId,int type) throws Exception { // 初始值 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java index 22227060b..6a9734e3a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java @@ -143,6 +143,9 @@ public class HeroManager extends MongoBase { return heroLikableMap; } + public int drawFiveStarHeroNum;//点将招募获取5星英雄的抽中次数 + public int drawFabaoNum;//法宝招募获取法宝的抽中次数 + /** * 获取单个英雄好感度加成属性 */ @@ -711,5 +714,23 @@ public class HeroManager extends MongoBase { } return map; } + + public void setDrawFiveStarHeroNum(int drawFiveStarHeroNum){ + this.drawFiveStarHeroNum = drawFiveStarHeroNum; + updateString("drawFiveStarHeroNum", drawFiveStarHeroNum); + } + + public int getDrawFiveStarHeroNum(){ + return this.drawFiveStarHeroNum; + } + + public void setDrawFabaoNum(int drawFabaoNum){ + this.drawFabaoNum = drawFabaoNum; + updateString("drawFabaoNum", drawFabaoNum); + } + + public int getDrawFabaoNum(){ + return this.drawFabaoNum; + } } 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 cec4774a9..af5e56d61 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 @@ -943,14 +943,22 @@ public class HeroLogic { private int[] wishDrawCardCheck(User user, int[] item, int type) { // 查找物品 SItem sItem = SItem.getsItemMap().get(item[0]); - // 非英雄奖励直接返回 + // 非5星英雄奖励直接返回 if (sItem.getXinyuan() != 1) { return item; } - - int weight = getWeightByDraw(user, type); - int randomInt = MathUtils.randomInt(10000); - if (randomInt <= weight) { + //记录抽中5星英雄或法宝的数量 + int fiveStarHeroCount = 0; + if(type == 4){//法宝 + fiveStarHeroCount = user.getHeroManager().getDrawFabaoNum()+ 1; + user.getHeroManager().setDrawFabaoNum(fiveStarHeroCount); + }else if(type == 1){//英雄 + fiveStarHeroCount = user.getHeroManager().getDrawFiveStarHeroNum() + 1; + user.getHeroManager().setDrawFiveStarHeroNum(fiveStarHeroCount); + } + //固定30%概率,次数个位数在3,6,9时固定出 + int value = fiveStarHeroCount % 10; + if(value == 3 || value == 6 || value == 9){ // 读取格子信息 Integer integer = user.getPlayerInfoManager().getDesireDraw().getOrDefault(type, 0); // null表示未中心愿, 该格子已锁定, 是空格子