From b88a69ef3a773344a34935c0a3e89b122f3fbc03 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 10:25:35 +0800 Subject: [PATCH 01/58] =?UTF-8?q?=E5=87=8F=E5=B0=91=E7=8E=A9=E5=AE=B6?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=9C=A8=E5=86=85=E5=AD=98=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/dao/UserManager.java | 2 +- serverlogic/src/main/java/com/ljsd/jieling/util/TaskKit.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java index c570544ab..55d04f2f7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java @@ -45,7 +45,7 @@ public class UserManager { private static Map userMapPutTime = new ConcurrentHashMap<>(); //离线读入 private static AtomicInteger login_f_num = new AtomicInteger(0);//登陆计数 private static final int LOGIN_F_LIMIT = 100;//报警界限 - private static final long LIVE_TIME = 12 * 60 * 60 * 1000L; + private static final long LIVE_TIME = 3 * 60 * 60 * 1000L; public static void addUser(User user) { userMap.put(user.getId(), user); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/TaskKit.java b/serverlogic/src/main/java/com/ljsd/jieling/util/TaskKit.java index f42068d53..f18663fc1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/TaskKit.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/TaskKit.java @@ -180,6 +180,9 @@ public abstract class TaskKit { // 最佳的线程数 = CPU可用核心数 / (1 - 阻塞系数) // TODO 阻塞系数是不是需要有个setter方法能让使用者自由设置呢? num = (int)(cores / (1 - 0.9)); + if (num > 8) { + num = 8; + } } catch (Throwable e) { // 异常发生时姑且返回10个任务线程池 From ecd017281d6209ca9c3265b897c94408cc14c801 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 14:25:21 +0800 Subject: [PATCH 02/58] =?UTF-8?q?=E7=A5=9E=E5=B0=86=E5=9B=9E=E9=80=80?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=8A=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/util/ItemUtil.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) 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 c09039cd0..a7b099df7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -1417,17 +1417,16 @@ public class ItemUtil { // 鸿蒙阵推送 HeroLogic.getInstance().addOrUpdateHongmeng(OnlineUserManager.getSessionByUid(user.getId())); heroList.add(CBean2Proto.getHero(hero)); - if (reason == BIReason.HERO_RETURN) { - return; - } - SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); - if (scHero.getStar() >= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_lottery_content_parm)) { //策划资质改成星级 - String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("lamp_lottery_content", new Object[]{playerInfoManager.getNameColor(), playerInfoManager.getNickName(), scHero.getStar(), scHero.getReadingName()},new int[]{0,0,0,1}); - if (!message.isEmpty()){ - ChatLogic.getInstance().sendSysChatMessage(message,Global.LUCKY_LUCK,String.valueOf(hero.getTemplateId()),0,0,0,0,0); + if (reason != BIReason.HERO_RETURN) { + SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); + if (scHero.getStar() >= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_lottery_content_parm)) { //策划资质改成星级 + String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("lamp_lottery_content", new Object[]{playerInfoManager.getNameColor(), playerInfoManager.getNickName(), scHero.getStar(), scHero.getReadingName()},new int[]{0,0,0,1}); + if (!message.isEmpty()){ + ChatLogic.getInstance().sendSysChatMessage(message,Global.LUCKY_LUCK,String.valueOf(hero.getTemplateId()),0,0,0,0,0); + } } + user.getUserMissionManager().onGameEvent(user,GameEvent.GET_HERO,heroStar[0],heroStar[1]); } - user.getUserMissionManager().onGameEvent(user,GameEvent.GET_HERO,heroStar[0],heroStar[1]); // KtEventUtils.onKtEvent(user, ParamEventBean.UserItemEvent,reason,GlobalsDef.addReason,cardId,1,heroStar[1]); ReportUtil.onReportEvent(user,ReportEventEnum.GET_HERO.getType(),String.valueOf(cardId),String.valueOf(hero.getStar()),String.valueOf(reason)); } From 4ee0f7b5f29cbd387598380981ef5a1512d0fbac Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 15:57:09 +0800 Subject: [PATCH 03/58] =?UTF-8?q?=E7=A5=9E=E5=B0=86=E5=9B=9E=E9=80=80bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/hero/HeroLogic.java | 23 ++++++------------- 1 file changed, 7 insertions(+), 16 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 0091ee1eb..32c796425 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 @@ -4069,10 +4069,13 @@ public class HeroLogic { } // 卸下魂印 Map soulEquipByPositionMap = hero.getSoulEquipByPositionMap(); - for (Integer value : soulEquipByPositionMap.values()) { - dropMap.put(value, 1); + Map hunying = null; + if (!soulEquipByPositionMap.isEmpty()) { + hunying = new HashMap<>(soulEquipByPositionMap.size()); + } + for (Integer value : soulEquipByPositionMap.values()) { + hunying.put(value, 1); } - for (int[] ints : returnPercent) { for (int i = 1; i < ints.length; i++) { SHeroRankupGroup sHeroRankupGroup=STableManager.getConfig(SHeroRankupGroup.class).get(ints[i]); @@ -4094,19 +4097,7 @@ public class HeroLogic { } ItemUtil.itemCost(user, cost, BIReason.HERO_RETURN, hero.getTemplateId()); CommonProto.Drop.Builder drop = ItemUtil.drop(user, ItemUtil.mapToArray(dropMap), BIReason.HERO_RETURN); - if (!soulEquipByPositionMap.isEmpty()) { - List itemlistList = drop.getItemlistList(); - Set needRemove = new HashSet<>(soulEquipByPositionMap.size()); - for (int i = 0; i < itemlistList.size(); i++) { - CommonProto.Item item = itemlistList.get(i); - if (soulEquipByPositionMap.values().contains(item.getItemId())) { - needRemove.add(i); - } - } - for (Integer index : needRemove) { - drop.removeItemlist(index); - } - } + ItemUtil.drop(user, ItemUtil.mapToArray(hunying), BIReason.HERO_RETURN); hero.setLevel(1); hero.setBreakId(0); hero.setStar(5); From 5f04e68e3dc8d91fe416690355d41fac783d81c1 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 16:09:56 +0800 Subject: [PATCH 04/58] =?UTF-8?q?=E7=A5=9E=E5=B0=86=E5=9B=9E=E9=80=80bug?= 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 | 4 +++- 1 file changed, 3 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 a0020d50f..e31517f1a 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 @@ -4108,7 +4108,9 @@ public class HeroLogic { } ItemUtil.itemCost(user, cost, BIReason.HERO_RETURN, hero.getTemplateId()); CommonProto.Drop.Builder drop = ItemUtil.drop(user, ItemUtil.mapToArray(dropMap), BIReason.HERO_RETURN); - ItemUtil.drop(user, ItemUtil.mapToArray(hunying), BIReason.HERO_RETURN); + if (hunying != null) { + ItemUtil.drop(user, ItemUtil.mapToArray(hunying), BIReason.HERO_RETURN); + } hero.setLevel(1); hero.setBreakId(0); hero.setStar(5); From ac30e70c2edcd841c4719e0fe7b2919aebecd6cc Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 16:11:51 +0800 Subject: [PATCH 05/58] =?UTF-8?q?=E7=A5=9E=E5=B0=86=E5=9B=9E=E9=80=80bug?= 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 | 4 +++- 1 file changed, 3 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 32c796425..eda241655 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 @@ -4097,7 +4097,9 @@ public class HeroLogic { } ItemUtil.itemCost(user, cost, BIReason.HERO_RETURN, hero.getTemplateId()); CommonProto.Drop.Builder drop = ItemUtil.drop(user, ItemUtil.mapToArray(dropMap), BIReason.HERO_RETURN); - ItemUtil.drop(user, ItemUtil.mapToArray(hunying), BIReason.HERO_RETURN); + if (hunying != null) { + ItemUtil.drop(user, ItemUtil.mapToArray(hunying), BIReason.HERO_RETURN); + } hero.setLevel(1); hero.setBreakId(0); hero.setStar(5); From 6faac1d03429a35f2d231c8792b0a4b0a4d820c7 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Thu, 23 Dec 2021 16:05:15 +0800 Subject: [PATCH 06/58] =?UTF-8?q?=E8=B6=85=E5=80=BC=E8=BF=94=E5=88=A9?= =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=94=AF=E4=BB=98bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/AbstractActivity.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java index a02d4f8f4..3bcaba675 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java @@ -356,6 +356,22 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { * @return */ public Set getCloseGoods(User user){ + //超值返利活动临时处理 下次大更新之前可以直接删掉 + if (id==90||id==9000){ + HashSet set = new HashSet<>(); + ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); + if (mission == null){ + return set; + } + Map map = mission.getActivityMissionMap(); + for (Map.Entry progressInfoEntry : map.entrySet()) { + SActivityRewardConfig rewardConfig=SActivityRewardConfig.getsActivityRewardConfigByMissionId(progressInfoEntry.getKey()); + if (progressInfoEntry.getValue().getState()==ActivityType.HAD_TAKED||(progressInfoEntry.getValue().getState()==ActivityType.WILL_TAKE&&mission.getV()+1!=rewardConfig.getSort())){ + set.add(rewardConfig.getValues()[0][0]); + } + } + return set; + } return new HashSet<>(1); } From 7ebd8878deaa6c5fc2e7292efdbbb916e71cf177 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 16:55:11 +0800 Subject: [PATCH 07/58] =?UTF-8?q?=E7=A5=9E=E5=B0=86=E5=9B=9E=E9=80=80?= =?UTF-8?q?=E5=8D=B8=E4=B8=8B=E9=AD=82=E5=8D=B0bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/hero/HeroLogic.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 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 eda241655..92126299e 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 @@ -4072,9 +4072,14 @@ public class HeroLogic { Map hunying = null; if (!soulEquipByPositionMap.isEmpty()) { hunying = new HashMap<>(soulEquipByPositionMap.size()); - } - for (Integer value : soulEquipByPositionMap.values()) { - hunying.put(value, 1); + Set unload = new HashSet<>(soulEquipByPositionMap.size()); + for (Map.Entry entry : soulEquipByPositionMap.entrySet()) { + hunying.put(entry.getValue(), 1); + unload.add(entry.getKey()); + } + for (Integer integer : unload) { + hero.removeSoulEquip(integer); + } } for (int[] ints : returnPercent) { for (int i = 1; i < ints.length; i++) { From 313053ed5d7c796be721aaf818de226dc5a749aa Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 17:17:56 +0800 Subject: [PATCH 08/58] =?UTF-8?q?=E7=A5=9E=E5=B0=86=E5=9B=9E=E9=80=80?= =?UTF-8?q?=E7=AA=81=E7=A0=B4=E7=AD=89=E7=BA=A7=E5=BD=92=200?= 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 | 2 ++ 1 file changed, 2 insertions(+) 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 92126299e..7daed7c71 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 @@ -4108,6 +4108,8 @@ public class HeroLogic { hero.setLevel(1); hero.setBreakId(0); hero.setStar(5); + hero.setBreakId(0); + hero.setStarBreakId(0); //鸿蒙阵 addOrUpdateHongmeng(session); HeroInfoProto.HeroReturnResponse build = HeroInfoProto.HeroReturnResponse.newBuilder().setDrop(drop).build(); From 89f4eae73eb2e05c50dbd180b95b602cc245cdbb Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 17:18:31 +0800 Subject: [PATCH 09/58] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= 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 | 1 - 1 file changed, 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 7daed7c71..6d8bfd694 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 @@ -4108,7 +4108,6 @@ public class HeroLogic { hero.setLevel(1); hero.setBreakId(0); hero.setStar(5); - hero.setBreakId(0); hero.setStarBreakId(0); //鸿蒙阵 addOrUpdateHongmeng(session); From 97bd55af892e2db5970c5433fb3d12bf184f7556 Mon Sep 17 00:00:00 2001 From: "DESKTOP-98AVA47\\Administrator" Date: Tue, 28 Dec 2021 15:21:14 +0800 Subject: [PATCH 10/58] =?UTF-8?q?=E8=B7=A8=E6=9C=8D=E6=88=98=E6=96=97?= =?UTF-8?q?=EF=BC=8C=E8=BA=AB=E5=A4=96=E5=8C=96=E8=BA=AB=E6=8A=80=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- serverlogic/src/main/java/com/ljsd/CoreService.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/CoreService.java b/serverlogic/src/main/java/com/ljsd/CoreService.java index fba86773c..975012085 100644 --- a/serverlogic/src/main/java/com/ljsd/CoreService.java +++ b/serverlogic/src/main/java/com/ljsd/CoreService.java @@ -203,6 +203,12 @@ public class CoreService implements RPCRequestIFace.Iface { rpcArenaManager.setPracticeSkillMap(user.getHeroManager().getPracticeSkillMap()); rpcArenaManager.setFaBaoGongMingSkillMap(user.getHeroManager().getFaBaoGongMingSkillMap()); rpcArenaManager.setMaxHistoryForce(user.getPlayerInfoManager().getMaxForce()); + // 身外化身数据 + List list = user.getHeroManager().getTransformationList().values().stream() + .filter(v -> v.getStatus() == 1) + .mapToInt(TransformationInfo::getCardId) + .boxed().collect(Collectors.toList()); + rpcArenaManager.setTfInfoList(list); LOGGER.info("跨服,获取玩家英雄信息耗时:{}ms",TimeUtils.now()-start); return rpcArenaManager; }catch (Exception e){ From bf85dfec3c344a69f914d079c0b2674e82f1d518 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Tue, 28 Dec 2021 15:24:37 +0800 Subject: [PATCH 11/58] =?UTF-8?q?=E8=B6=85=E5=80=BC=E8=BF=94=E5=88=A9?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=AE=B9=E9=94=99=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/AbstractActivity.java | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java index 3bcaba675..a02d4f8f4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java @@ -356,22 +356,6 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { * @return */ public Set getCloseGoods(User user){ - //超值返利活动临时处理 下次大更新之前可以直接删掉 - if (id==90||id==9000){ - HashSet set = new HashSet<>(); - ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); - if (mission == null){ - return set; - } - Map map = mission.getActivityMissionMap(); - for (Map.Entry progressInfoEntry : map.entrySet()) { - SActivityRewardConfig rewardConfig=SActivityRewardConfig.getsActivityRewardConfigByMissionId(progressInfoEntry.getKey()); - if (progressInfoEntry.getValue().getState()==ActivityType.HAD_TAKED||(progressInfoEntry.getValue().getState()==ActivityType.WILL_TAKE&&mission.getV()+1!=rewardConfig.getSort())){ - set.add(rewardConfig.getValues()[0][0]); - } - } - return set; - } return new HashSet<>(1); } From 8ac39917afc1daa275063af6be40739802d19477 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Thu, 30 Dec 2021 16:23:13 +0800 Subject: [PATCH 12/58] =?UTF-8?q?=E7=89=9B=E9=AD=94=E7=8E=8B4=E7=81=AB?= =?UTF-8?q?=E4=B8=8D=E7=94=9F=E6=95=88bug=E4=BF=AE=E6=94=B9=EF=BC=88?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E4=B8=80=E4=B8=AA=E8=A2=AB=E5=8A=A8?= =?UTF-8?q?=E6=8A=80=E8=83=BD=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PassiveSkillProcessor.java | 2 +- .../passiveSkillCal/PassiveskillCalEnum.java | 45 +++++++++++++++---- .../ljsd/jieling/logic/hero/HeroLogic.java | 4 +- 3 files changed, 39 insertions(+), 12 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveSkillProcessor.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveSkillProcessor.java index ecbcfa76e..0c1939d35 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveSkillProcessor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveSkillProcessor.java @@ -7,5 +7,5 @@ import config.SPassiveSkillLogicConfig; import java.util.Map; public interface PassiveSkillProcessor { - void process(SPassiveSkillLogicConfig config, Hero hero, Map heroSkillAdMap); + void process(SPassiveSkillLogicConfig config, Hero hero, Map heroSkillAdMap,User user,int teamId); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveskillCalEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveskillCalEnum.java index 36d02c635..bc943b66f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveskillCalEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveskillCalEnum.java @@ -1,6 +1,8 @@ package com.ljsd.jieling.logic.fight.passiveSkillCal; import com.ljsd.jieling.core.GlobalsDef; +import com.ljsd.jieling.logic.dao.Hero; +import com.ljsd.jieling.logic.dao.TeamPosHeroInfo; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import config.SCHero; @@ -8,11 +10,12 @@ import config.SPropertyConfig; import java.util.Arrays; import java.util.HashMap; +import java.util.List; import java.util.Map; //90 94 171 public enum PassiveskillCalEnum { - SingleAdd(90,(config,hero,heroSkillAdMap)->{ + SingleAdd(90,(config,hero,heroSkillAdMap,user,teamId)->{ float[] value = config.getValue(); int battlePropertyId = (int) value[0]; SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByBattlePID(battlePropertyId); @@ -32,7 +35,7 @@ public enum PassiveskillCalEnum { int extraValue = (int) cal(optCode, parm); heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(), Long.valueOf(0))+extraValue); }), - AllAdd(94,(config,hero,heroSkillAdMap)->{ + AllAdd(94,(config,hero,heroSkillAdMap,user,teamId)->{ float[] value = config.getValue(); int battlePropertyId = (int) value[1]; SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByBattlePID(battlePropertyId); @@ -53,12 +56,7 @@ public enum PassiveskillCalEnum { int extraValue = (int) cal(optCode, parm); heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(), Long.valueOf(0))+extraValue); }), - HEROAFTER100ADD(171,(config,hero,heroSkillAdMap)->{ - int uid = Integer.parseInt(hero.getId().substring(0, 8)); - User user = UserManager.getUserInMem(uid); - if (user == null){ - return; - } + HEROAFTER100ADD(171,(config,hero,heroSkillAdMap,user,teamId)->{ float[] value = config.getValue(); int battlePropertyId = (int) value[0]; SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByBattlePID(battlePropertyId); @@ -70,7 +68,7 @@ public enum PassiveskillCalEnum { int parm = (int) value[1]*times; heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(), Long.valueOf(0))+parm); }),//武将100级后每升一级[c]额外增加[d] - HERO_PROFESSION_ADD(129,(config,hero,heroSkillAdMap)->{ + HERO_PROFESSION_ADD(129,(config,hero,heroSkillAdMap,user,teamId)->{ float[] value = config.getValue(); if(SCHero.getsCHero().get(hero.getTemplateId()).getPropertyName()!=value[0]){ @@ -93,6 +91,35 @@ public enum PassiveskillCalEnum { } int extraValue = (int) cal(optCode, parm); heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(), Long.valueOf(0))+extraValue); + }), + HERO_HAVE_PROFESSION_ADD(413,(config,hero,heroSkillAdMap,user,teamId)->{ + float[] value = config.getValue(); + List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId); + int haveNum=0; + for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfos) { + Hero localHero=user.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); + if(SCHero.getsCHero().get(localHero.getTemplateId()).getPropertyName()==value[0]){ + haveNum++; + } + } + + float parm = value[1]; + int optCode = (int) value[3]; + + SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByBattlePID((int)(value[2])); + + if(optCode%2==0){ + if( sPropertyConfig.getStyle()!= GlobalsDef.PERCENT_TYPE){ + sPropertyConfig = SPropertyConfig.getsPropertyConfigByTargetPropertyId(sPropertyConfig.getPropertyId()); + } + parm = value[1]*10000*haveNum; + } + + if( sPropertyConfig.getStyle()== GlobalsDef.PERCENT_TYPE){ + parm = value[1]*10000*haveNum; + } + int extraValue = (int) cal(optCode, parm); + heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(), Long.valueOf(0))+extraValue); }), ; private int type; 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 89d343707..195e80ded 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 @@ -3037,7 +3037,7 @@ public class HeroLogic { if (null != config.getValue() && config.getValue().length > 2 && config.getValue()[2] != 4) { PassiveskillCalEnum passiveskillCalEnum = PassiveskillCalEnum.calEnumMap.get(config.getType()); if (null != passiveskillCalEnum) { - passiveskillCalEnum.getPassiveSkillProcessor().process(config, hero, heroSkillAdMap); + passiveskillCalEnum.getPassiveSkillProcessor().process(config, hero, heroSkillAdMap,user,teamId); } } } @@ -3077,7 +3077,7 @@ public class HeroLogic { if (null != configTmp.getValue() && configTmp.getValue().length > 2 && configTmp.getValue()[2] == 4) { PassiveskillCalEnum passiveskillCalEnum = PassiveskillCalEnum.calEnumMap.get(configTmp.getType()); if (null != passiveskillCalEnum) { - passiveskillCalEnum.getPassiveSkillProcessor().process(configTmp, hero, heroSkillAdMap); + passiveskillCalEnum.getPassiveSkillProcessor().process(configTmp, hero, heroSkillAdMap,user,teamId); } } }); From 6cbd8104e73f3d4d60ef9d020601ec1b888ec282 Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 30 Dec 2021 17:09:45 +0800 Subject: [PATCH 13/58] =?UTF-8?q?=E4=BA=91=E6=B8=B8=E5=95=86=E4=BA=BA?= =?UTF-8?q?=EF=BC=8C=E8=A3=85=E5=A4=87=E5=8D=87=E7=BA=A7=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/item/ItemLogic.java | 26 ++++++------------- 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java index 7c9816047..96b2de1f6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java @@ -924,20 +924,10 @@ public class ItemLogic { PlayerInfoProto.EquipUpLevelResponse.Builder response = PlayerInfoProto.EquipUpLevelResponse.newBuilder(); response.setResult(false); User user = UserManager.getUser(session.getUid()); - int type = SComposeActivity.getTypeById(activityId,equipId); - if(type == -1){ - LOGGER.error("type找不到配置,活动id:{},装备id:{}",activityId,equipId); - throw new ErrorCodeException(ErrorCode.CFG_NULL); - } - SComposeBook config = SComposeBook.getBookById(type,equipId); - if(config == null){ - LOGGER.error("config找不到配置,type:{},装备id:{}",type,equipId); - throw new ErrorCodeException(ErrorCode.CFG_NULL); - } - int[][] itemC = config.getNeedCost(); - if(itemC[0][0] != itemId || itemC[0][1] != itemNum){ - LOGGER.error("itemCost不匹配,item:{},num:{},conItem:{},conNum:{}",itemId,itemNum,itemC[0],itemC[1]); - throw new ErrorCodeException(ErrorCode.CFG_NULL); + Map config = STableManager.getConfig(SComposeBook.class); + SComposeBook composeBook = config.get(equipId); + if(composeBook == null){ + throw new ErrorCodeException(ErrorCode.CFG_NULL,"云游商人,idkey配置不存在:"+equipId); } ActivityMission misson = user.getActivityManager().getActivityMissionMap().get(activityId); if(misson == null){ @@ -945,24 +935,24 @@ public class ItemLogic { throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN); } Map integerSComposeActivityMap = SComposeActivity.getConfigMap().get(activityId); - int typeId = integerSComposeActivityMap.get(type).getId(); + int typeId = integerSComposeActivityMap.get(composeBook.getType()).getId(); ActivityProgressInfo progress = misson.getActivityMissionMap().get(typeId); if(progress == null){ - LOGGER.error("progress为空,type:{}",type); + LOGGER.error("progress为空,type:{}",composeBook.getType()); throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN); } if(progress.getProgrss() <= 0){ LOGGER.error("progress次数不足,num:{}",progress.getProgrss()); throw new ErrorCodeException(ErrorCode.REFRESH_WHEL_TIME_NOT); } - boolean itemCost = ItemUtil.itemCost(user, new int[][]{{equipId, 1},{itemId, itemNum}}, BIReason.EQUIP_UPLEVEL_COST, equipId); + boolean itemCost = ItemUtil.itemCost(user, new int[][]{composeBook.getNeedItems()[0],composeBook.getNeedCost()[0]}, BIReason.EQUIP_UPLEVEL_COST, equipId); if(!itemCost){ LOGGER.error("item不足,equipId:{},itemId:{},itemNum:{}",equipId,itemId,itemNum); throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); } progress.setProgrss(progress.getProgrss()-1); user.getActivityManager().getActivityMissionMap().put(activityId,misson); - CommonProto.Drop.Builder drop = ItemUtil.drop(user,new int[][]{{config.getGoalItems()[0][0],config.getGoalItems()[0][1]}},BIReason.EQUIP_UPLEVEL_REWARD); + CommonProto.Drop.Builder drop = ItemUtil.drop(user,new int[][]{composeBook.getGoalItems()[0]},BIReason.EQUIP_UPLEVEL_REWARD); response.setResult(true); response.setDrop(drop); MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true); From c3553579e253602abfb970058646077021031d72 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Thu, 30 Dec 2021 17:40:47 +0800 Subject: [PATCH 14/58] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=A2=AB=E5=8A=A8?= =?UTF-8?q?=E6=8A=80=E8=83=BD=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/fight/passiveSkillCal/PassiveskillCalEnum.java | 1 + 1 file changed, 1 insertion(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveskillCalEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveskillCalEnum.java index bc943b66f..6a9ada17c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveskillCalEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveskillCalEnum.java @@ -93,6 +93,7 @@ public enum PassiveskillCalEnum { heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(), Long.valueOf(0))+extraValue); }), HERO_HAVE_PROFESSION_ADD(413,(config,hero,heroSkillAdMap,user,teamId)->{ + //被动技能,编队每增加一个同属性英雄属性额外增加一定数值 float[] value = config.getValue(); List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId); int haveNum=0; From 188ea389e6f1f8963edd50324b8bc1581ca77a38 Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Thu, 30 Dec 2021 18:19:24 +0800 Subject: [PATCH 15/58] =?UTF-8?q?=E6=A3=AE=E7=BD=97=E5=B9=BB=E5=A2=83?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=8C=82=E6=9C=BA=E5=A5=96=E5=8A=B1=E5=B1=95?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/map/MapLogic.java | 4 ++ .../ljsd/jieling/handler/map/MapManager.java | 9 ++++ .../MapFastFightRequestHandler.java | 6 +++ .../TowerGetRewardInfoShowHandler.java | 48 +++++++++++++++++++ .../jieling/logic/player/PlayerLogic.java | 33 +++++++++++++ 5 files changed, 100 insertions(+) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/TowerGetRewardInfoShowHandler.java 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 82a22d74b..2883bc2ed 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 @@ -3335,6 +3335,8 @@ public class MapLogic { STrialConfig sTrialConfig = sTrialConfigMap.ceilingEntry(floor).getValue(); response = getBoxReward(sTrialConfig.getBoxPosition(), sTrialConfig.getBoxReward(), user, curXY, type); } + //森罗幻境自动挂机奖励展示 + PlayerLogic.TowerGetRewardInfoShow(response.getBoxDrop(),user); if (response == null) { throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } @@ -3461,6 +3463,8 @@ public class MapLogic { if (response == null) { throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } + //森罗幻境自动挂机奖励展示 + PlayerLogic.TowerGetRewardInfoShow(response.getDrop(),user); MessageUtil.sendMessage(session, 1, messageType.getNumber(), response, true); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java index 499a3bf6f..8c8eeee6d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java @@ -128,6 +128,8 @@ public class MapManager extends MongoBase { private EndlessTreasureReward endlessTreasureReward = new EndlessTreasureReward(); + //森罗幻境自动挂机奖励展示 TODO 不入库 + private Map towerGetRewardInfoShowMap = new HashMap<>(); public MapManager() { this.setRootCollection(User._COLLECTION_NAME); } @@ -970,6 +972,13 @@ public class MapManager extends MongoBase { setTreasureIsBuy(0); } + public Map getTowerGetRewardInfoShowMap() { + return towerGetRewardInfoShowMap; + } + + public void setTowerGetRewardInfoShowMap(Map towerGetRewardInfoShowMap) { + this.towerGetRewardInfoShowMap = towerGetRewardInfoShowMap; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapFastFightRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapFastFightRequestHandler.java index a67c7e132..495f7029f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapFastFightRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapFastFightRequestHandler.java @@ -3,13 +3,17 @@ package com.ljsd.jieling.handler.map.mapHandler; import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; +import rpc.protocols.CommonProto; import rpc.protocols.FightInfoProto; import rpc.protocols.MessageTypeProto; import com.ljsd.jieling.util.MessageUtil; import org.springframework.stereotype.Component; +import java.util.Map; + @Component public class MapFastFightRequestHandler extends BaseHandler { @Override @@ -21,6 +25,8 @@ public class MapFastFightRequestHandler extends BaseHandler { public void process(ISession iSession, PacketNetData netData) throws Exception { FightInfoProto.FastFightResponse.Builder builder = FightInfoProto.FastFightResponse.newBuilder(); MapLogic.getInstance().getMap(UserManager.getUser(iSession.getUid())).fastFight(iSession.getUid(), builder); + //森罗幻境自动挂机奖励展示 + PlayerLogic.TowerGetRewardInfoShow(builder.getEnventDrop(),UserManager.getUser(iSession.getUid())); MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.MAP_FAST_FIGHT_RESPONSE.getNumber(), builder.build(), true); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/TowerGetRewardInfoShowHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/TowerGetRewardInfoShowHandler.java new file mode 100644 index 000000000..d9a4304c1 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/TowerGetRewardInfoShowHandler.java @@ -0,0 +1,48 @@ +package com.ljsd.jieling.handler.map.mapHandler; + +import com.google.protobuf.GeneratedMessage; +import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.MapLogic; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.ItemUtil; +import org.springframework.stereotype.Component; +import rpc.protocols.ActivityProto; +import rpc.protocols.CommonProto; +import rpc.protocols.MapInfoProto; +import rpc.protocols.MessageTypeProto; + +import java.util.HashMap; +import java.util.Map; + +@Component +public class TowerGetRewardInfoShowHandler extends BaseHandler { + + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.TowerGetRewardInfoShowRequest; + } + @Override + public GeneratedMessage processWithProto(int uid, MapInfoProto.TowerGetRewardInfoShowRequest proto) throws Exception { + CommonProto.Drop.Builder drop = CommonProto.Drop.newBuilder(); + User user = UserManager.getUser(uid); + if(user == null){ + return MapInfoProto.TowerGetRewardInfoShowResponse.newBuilder().build(); + } + Map dropShow = user.getMapManager().getTowerGetRewardInfoShowMap(); + if(dropShow == null || dropShow.size() == 0){ + return MapInfoProto.TowerGetRewardInfoShowResponse.newBuilder().build(); + } + for(Map.Entry keyVal : dropShow.entrySet()){ + CommonProto.Item.Builder item = CommonProto.Item.newBuilder(); + item.setItemId(keyVal.getKey()); + item.setItemNum((long)keyVal.getValue()); + drop.addItemlist(item.build()); + } + dropShow.clear(); + return MapInfoProto.TowerGetRewardInfoShowResponse.newBuilder().setDrop(drop).build(); + } +} 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 947a9876a..bfb3f2501 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 @@ -1784,4 +1784,37 @@ public class PlayerLogic { User user = gson.fromJson(userStr, User.class); return user; } + + //森罗幻境自动挂机奖励展示 + public static void TowerGetRewardInfoShow(CommonProto.Drop drop,User user){ + Map mapItemShow =user.getMapManager().getTowerGetRewardInfoShowMap(); + for(CommonProto.Item item :drop.getItemlistList()){ + if(mapItemShow.containsKey(item.getItemId())){ + mapItemShow.put(item.getItemId(),mapItemShow.get(item.getItemId())+(int)item.getItemNum()); + }else{ + mapItemShow.put(item.getItemId(),(int)item.getItemNum()); + } + } + for(CommonProto.Equip equip:drop.getEquipIdList()){ + if(mapItemShow.containsKey(equip.getEquipId())){ + mapItemShow.put(equip.getEquipId(),mapItemShow.get(equip.getEquipId())+1); + }else{ + mapItemShow.put(equip.getEquipId(),1); + } + } + for(CommonProto.Hero hero:drop.getHeroList()){ + if(mapItemShow.containsKey(hero.getHeroId())){ + mapItemShow.put(hero.getHeroId(),mapItemShow.get(hero.getHeroId())+1); + }else{ + mapItemShow.put(hero.getHeroId(),1); + } + } + for(CommonProto.PokemonInfo pokemonInfo:drop.getPokemonList()){ + if(mapItemShow.containsKey(pokemonInfo.getTempId())){ + mapItemShow.put(pokemonInfo.getTempId(),mapItemShow.get(pokemonInfo.getTempId())+1); + }else{ + mapItemShow.put(pokemonInfo.getTempId(),1); + } + } + } } From 82dde4cdb8f678f3856243cea14eb00f7594e2cf Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Fri, 31 Dec 2021 10:36:32 +0800 Subject: [PATCH 16/58] =?UTF-8?q?=E6=A3=AE=E7=BD=97=E5=B9=BB=E5=A2=83?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=8C=82=E6=9C=BA=E5=A5=96=E5=8A=B1=E5=B1=95?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../map/mapHandler/TowerGetRewardInfoShowHandler.java | 7 ------- .../com/ljsd/jieling/handler/map/mapType/TowerMap.java | 3 +++ .../jieling/logic/mission/data/GotSoulMarkManager.java | 4 ++-- .../java/com/ljsd/jieling/logic/player/PlayerLogic.java | 4 ++++ 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/TowerGetRewardInfoShowHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/TowerGetRewardInfoShowHandler.java index d9a4304c1..3907e1cde 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/TowerGetRewardInfoShowHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/TowerGetRewardInfoShowHandler.java @@ -1,21 +1,14 @@ package com.ljsd.jieling.handler.map.mapHandler; import com.google.protobuf.GeneratedMessage; -import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.handler.BaseHandler; -import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; -import com.ljsd.jieling.netty.cocdex.PacketNetData; -import com.ljsd.jieling.network.session.ISession; -import com.ljsd.jieling.util.ItemUtil; import org.springframework.stereotype.Component; -import rpc.protocols.ActivityProto; import rpc.protocols.CommonProto; import rpc.protocols.MapInfoProto; import rpc.protocols.MessageTypeProto; -import java.util.HashMap; import java.util.Map; @Component 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 8551daf4a..34e675c9e 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 @@ -22,6 +22,7 @@ import com.ljsd.jieling.logic.fight.GameFightType; import com.ljsd.jieling.logic.fight.PVEFightEvent; import com.ljsd.jieling.logic.fight.result.FightResult; import com.ljsd.jieling.logic.hero.HeroAttributeEnum; +import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.logic.store.StoreLogic; import com.ljsd.jieling.network.session.ISession; import rpc.protocols.CommonProto; @@ -670,6 +671,8 @@ public class TowerMap extends AbstractMap { response.setEssenceValue(-1); response.setCell(CBean2Proto.getCell(cell)); response.setDrop(drop); + //森罗幻境自动挂机奖励展示 + PlayerLogic.TowerGetRewardInfoShow(response.getDrop(),user); response.setMonsterNum(monsterAmount); MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/GotSoulMarkManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/GotSoulMarkManager.java index 976e530bc..c4bcf94fd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/GotSoulMarkManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/GotSoulMarkManager.java @@ -17,9 +17,9 @@ public class GotSoulMarkManager extends AbstractDataManager { public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) { CumulationData.Result result = null; int itemId = (int)parm[0]; - int num = (int)parm[1]; + long num = (long)parm[1]; if(missionType == MissionType.GOT_SOUL_MARK){ - data.addQualitySoulMarkNum(STableManager.getConfig(SItem.class).get(itemId).getQuantity(),num); + data.addQualitySoulMarkNum(STableManager.getConfig(SItem.class).get(itemId).getQuantity(),(int)num); result = new CumulationData.Result(missionType); } return result; 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 bfb3f2501..4b9e7e400 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 @@ -1794,6 +1794,7 @@ public class PlayerLogic { }else{ mapItemShow.put(item.getItemId(),(int)item.getItemNum()); } + LOGGER.error("掉落1->{}->{}",item.getItemId(),item.getItemNum()); } for(CommonProto.Equip equip:drop.getEquipIdList()){ if(mapItemShow.containsKey(equip.getEquipId())){ @@ -1801,6 +1802,7 @@ public class PlayerLogic { }else{ mapItemShow.put(equip.getEquipId(),1); } + LOGGER.error("掉落2->{}->{}",equip.getEquipId(),1); } for(CommonProto.Hero hero:drop.getHeroList()){ if(mapItemShow.containsKey(hero.getHeroId())){ @@ -1808,6 +1810,7 @@ public class PlayerLogic { }else{ mapItemShow.put(hero.getHeroId(),1); } + LOGGER.error("掉落3->{}->{}",hero.getHeroId(),1); } for(CommonProto.PokemonInfo pokemonInfo:drop.getPokemonList()){ if(mapItemShow.containsKey(pokemonInfo.getTempId())){ @@ -1815,6 +1818,7 @@ public class PlayerLogic { }else{ mapItemShow.put(pokemonInfo.getTempId(),1); } + LOGGER.error("掉落4->{}->{}",pokemonInfo.getTempId(),1); } } } From ffb0488e50f1d27df2df65c12f351d8a6e4bae4c Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Fri, 31 Dec 2021 10:49:04 +0800 Subject: [PATCH 17/58] =?UTF-8?q?=E8=B5=A0=E9=80=81=E5=A5=BD=E5=8F=8B?= =?UTF-8?q?=E5=8F=8B=E6=83=85=E7=82=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/logic/friend/FriendLogic.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java index 432eb9674..357d9a4cb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java @@ -573,9 +573,9 @@ public class FriendLogic { if (haveRewardMap.containsKey(uid) && haveRewardMap.get(uid) != 0) { throw new ErrorCodeException(ErrorCode.FRIENDS_SEMD_YET); } - friendManager.updateGiveMap(friendId,1); + friendManager.updateGiveMap(friendUid,1); friendManager1.updateHaveRewardMap(uid,1); - sendFriendStatedication(uid,friendId,2); + sendFriendStatedication(uid,friendUid,2); times++; } } From affe1945394e2ff06942f7688a9781d040cfe4ac Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Tue, 4 Jan 2022 11:02:41 +0800 Subject: [PATCH 18/58] =?UTF-8?q?=E7=AB=9E=E6=8A=80=E8=AF=95=E7=82=BC?= =?UTF-8?q?=E5=8F=91=E5=A5=96=E5=8A=B1bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/activity/ArenaRankActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ArenaRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ArenaRankActivity.java index 8a7f17d76..3444d0e9c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ArenaRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ArenaRankActivity.java @@ -77,7 +77,7 @@ public class ArenaRankActivity extends AbstractActivity { String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("arena_activity_mail_txt", new Object[]{rank}, new int[0], "#"); int[][] rewardByRank = null; for (SActivityRankingReward sActivityRankingReward : sActivityRankingRewards) { - if (sActivityRankingReward.getMinRank() >= rank && sActivityRankingReward.getMaxRank() <= rank) { + if (sActivityRankingReward.getMinRank() >= rank && rank <= sActivityRankingReward.getMaxRank()) { rewardByRank = sActivityRankingReward.getRankingReward(); break; } From 5312fc728c36490dc4d3b8565dd47a1bad2e8dbe Mon Sep 17 00:00:00 2001 From: duhui Date: Tue, 4 Jan 2022 11:40:52 +0800 Subject: [PATCH 19/58] =?UTF-8?q?=E5=A4=A7=E9=97=B9=E5=A4=A9=E5=AE=AB?= =?UTF-8?q?=E6=9C=BA=E5=99=A8=E4=BA=BA=EF=BC=8C=E6=98=9F=E7=BA=A7=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E5=A4=84=E7=90=86?= 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 | 2 +- 1 file changed, 1 insertion(+), 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 89d343707..6cae6468d 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 @@ -1820,7 +1820,7 @@ public class HeroLogic { } } } - return star; + return Math.min(star,scHero.getMaxRank());; } /** From 6e3b1b5be91f421bb9305ba7609950e63718983e Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Tue, 21 Dec 2021 09:55:12 +0800 Subject: [PATCH 20/58] =?UTF-8?q?=E5=8D=87=E6=98=9F=E9=85=8D=E6=96=B9?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=A1=A5=E5=81=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/core/GlobalsDef.java | 4 +- .../jieling/handler/GetPlayerInfoHandler.java | 74 +++++++++++++++++++ .../ljsd/jieling/logic/dao/UserManager.java | 1 + .../java/config/SErrorCodeEerverConfig.java | 11 +++ 4 files changed, 89 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java b/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java index 772f4bce2..bceb6c475 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java @@ -2,7 +2,7 @@ package com.ljsd.jieling.core; public interface GlobalsDef { String DEFAULT_NAME = "无名妖灵师"; - int VERSION_CODE=4;//后端兼容版本号 + int VERSION_CODE = 5;//后端兼容版本号 int MAP_MISSION_RETURN = -9999; int MAP_MISSION_FAILURE = -10000; @@ -23,6 +23,8 @@ public interface GlobalsDef { int LUOFUZHENG_MONEY = 1207; // 罗浮争锋道具 + int FIVE_STAR_ITEM = 12059; // 5星万能将魂道具 ID: + int BATTLING = -1; int BREAK_TYPE = 1; //1突破 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index b72c08c21..c2e7def40 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -18,6 +18,7 @@ import com.ljsd.jieling.logic.activity.fourChallenge.FourChallengeLogic; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.GlobalSystemControl; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.logic.question.QuestionLogic; @@ -172,6 +173,69 @@ public class GetPlayerInfoHandler extends BaseHandler{ if (playerInfoManager.getVersionCode() < 4) { user.getStoreManager().removeStoreInfo(17); } + // 升星配方调整 涉及到线上补偿,上线时根据玩家队伍列表中用拥有的各升星过的神将数量进行补偿 + if (playerInfoManager.getVersionCode() < 5) { + Map heroMap = user.getHeroManager().getHeroMap(); + Map hasHeroMap = new TreeMap<>(); + for (Hero value : heroMap.values()) { + if (value.getStar() == 6) { + if (hasHeroMap.containsKey(6)) { + hasHeroMap.put(6, hasHeroMap.get(6) + 1); + } else { + hasHeroMap.put(6, 1); + } + } else if (value.getStar() == 7) { + if (hasHeroMap.containsKey(7)) { + hasHeroMap.put(7, hasHeroMap.get(7) + 1); + } else { + hasHeroMap.put(7, 1); + } + } else if (value.getStar() == 8) { + if (hasHeroMap.containsKey(8)) { + hasHeroMap.put(8, hasHeroMap.get(8) + 1); + } else { + hasHeroMap.put(8, 1); + } + } else if (value.getStar() == 9) { + if (hasHeroMap.containsKey(9)) { + hasHeroMap.put(9, hasHeroMap.get(9) + 1); + } else { + hasHeroMap.put(9, 1); + } + } else if (value.getStar() == 10) { + if (hasHeroMap.containsKey(10)) { + hasHeroMap.put(10, hasHeroMap.get(10) + 1); + } else { + hasHeroMap.put(10, 1); + } + } else if (value.getStar() == 11) { + if (hasHeroMap.containsKey(1)) { + hasHeroMap.put(11, hasHeroMap.get(11) + 1); + } else { + hasHeroMap.put(11, 1); + } + } + } + if (!hasHeroMap.isEmpty()) { + StringBuilder stringBuilder = new StringBuilder(); + String txtStart = SErrorCodeEerverConfig.getI18NMessage("starcomposechange_mail_txt_start"); + stringBuilder.append(txtStart); + int totalCount = 0; + for (Map.Entry entry : hasHeroMap.entrySet()) { + int count = entry.getValue() * map.getOrDefault(entry.getKey(), 0); + totalCount += count; + String txt = SErrorCodeEerverConfig.getFormatMessage("starcomposechange_mail_txt_" + entry.getKey(), new Object[]{entry.getValue(), count}); + stringBuilder.append(txt); + } + String txtEnd = SErrorCodeEerverConfig.getFormatMessage("starcomposechange_mail_txt_end", new Object[]{totalCount}); + stringBuilder.append(txtEnd); + String title = SErrorCodeEerverConfig.getI18NMessage("starcomposechange_mail_title"); + MailLogic.getInstance().sendMail(user.getId(), title, stringBuilder.toString(), GlobalsDef.FIVE_STAR_ITEM + "#" + totalCount, TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME); + } + + } + + playerInfoManager.setVersionCode(GlobalsDef.VERSION_CODE); } // 处理玩家旧头像框,兼容,一个玩家只执行一次 @@ -277,6 +341,16 @@ public class GetPlayerInfoHandler extends BaseHandler{ } } + private static Map map = new HashMap<>(6); + { + map.put(6, 4); + map.put(7, 4); + map.put(8, 8); + map.put(9, 12); + map.put(10, 28); + map.put(11, 40); + } + /** * 常驻活动重置 * @param user diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java index 6a0d1300c..c570544ab 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java @@ -153,6 +153,7 @@ public class UserManager { playerManager.setIp(ip); playerManager.setChannel_id(channle_id); playerManager.setBundle_id(bundle_id); + playerManager.setVersionCode(GlobalsDef.VERSION_CODE); int headFrameId = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getDefaultPicture(); playerManager.setHeadFrame(headFrameId); playerManager.putHeadFrameValidTime(headFrameId,0L); diff --git a/tablemanager/src/main/java/config/SErrorCodeEerverConfig.java b/tablemanager/src/main/java/config/SErrorCodeEerverConfig.java index 1158a2026..37e200e16 100644 --- a/tablemanager/src/main/java/config/SErrorCodeEerverConfig.java +++ b/tablemanager/src/main/java/config/SErrorCodeEerverConfig.java @@ -101,4 +101,15 @@ public class SErrorCodeEerverConfig implements BaseConfig { return value.getvalue()+str.toString(); } + + + public static String getFormatMessage(String key, Object[] obj) { + SErrorCodeEerverConfig value = errorCodeMap.get(key); + if (value == null) { + return ""; + } + String string = MessageFormat.format(value.getvalue(), obj); + return string; + } + } \ No newline at end of file From 17242edf01ca5077096d310b6bf9a570ef4ce060 Mon Sep 17 00:00:00 2001 From: "DESKTOP-98AVA47\\Administrator" Date: Thu, 23 Dec 2021 19:01:57 +0800 Subject: [PATCH 21/58] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E5=BC=80=E5=90=AF=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/activity/ActivityLogic.java | 7 +++++++ 1 file changed, 7 insertions(+) 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 aace5081d..d755bd6ef 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 @@ -195,6 +195,7 @@ public class ActivityLogic implements IEventHandler{ // 开服条件判断 boolean open = SGlobalActivity.checkActivityIfOpen(sGlobalActivity.getId(),0,GameApplication.serverConfig.getCacheOpenTime()); if (!open){ + openActivityIds.remove(sGlobalActivity.getId()); continue; } if (endTime != 0 && now > endTime) { @@ -586,6 +587,12 @@ public class ActivityLogic implements IEventHandler{ for (Map.Entry activityState : activityMissionMap.entrySet()) { Integer activityId = activityState.getKey(); ActivityMission activityMission = activityState.getValue(); + + boolean open = SGlobalActivity.checkActivityIfOpen(activityId,user.getPlayerInfoManager().getCreateTime(),GameApplication.serverConfig.getCacheOpenTime()); + if (!open){ + // 开服条件判断 + continue; + } //todo 活动未初始化成功 if (activityMission == null) { continue; From eb504fd20c88c14228a914d09efc8fbabd6c68cf Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Tue, 21 Dec 2021 10:50:43 +0800 Subject: [PATCH 22/58] =?UTF-8?q?2021-12-22=2009:00:00=20=E4=B9=8B?= =?UTF-8?q?=E5=90=8E=E5=BC=80=E7=9A=84=E6=9C=8D=EF=BC=8C=E9=A6=96=E5=85=85?= =?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA=E7=B4=AF=E5=85=85=E6=BB=A1100?= =?UTF-8?q?=E5=85=83=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/activity/RechargeTotalActivity.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java index ae28461c7..aa235562e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java @@ -1,5 +1,6 @@ package com.ljsd.jieling.logic.activity; +import com.ljsd.GameApplication; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; import com.ljsd.jieling.logic.dao.UserManager; @@ -39,7 +40,7 @@ class RechargeTotalActivity extends AbstractActivity { public List getAllMissInfo(User user, ActivityMission activityMission, Set filter) { Map activityProgressInfoMap = activityMission.getActivityMissionMap(); List missionInfos = new ArrayList<>(activityProgressInfoMap.size()); - long now = TimeUtils.now(); + long openTime = TimeUtils.stringToTimeLong2(GameApplication.serverConfig.getOpenTime()); for (Map.Entry missionProgress : activityProgressInfoMap.entrySet()) { if (filter != null && !filter.contains(missionProgress.getKey())) { continue; @@ -51,7 +52,7 @@ class RechargeTotalActivity extends AbstractActivity { } if(id == ActivityType.RechargeTotal){ // 2021-12-22 09:00:00 之后开的服,首充不显示累充满100元任务 - if (now > 1640134800000L) { + if (openTime > 1640134800000L) { int value = sActivityRewardConfig.getValues()[0][0]; if (value == 100) { continue; From 30111415c024dffe0b852e8444988fb3e78995c4 Mon Sep 17 00:00:00 2001 From: "DESKTOP-98AVA47\\Administrator" Date: Thu, 23 Dec 2021 19:13:39 +0800 Subject: [PATCH 23/58] =?UTF-8?q?=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/activity/ActivityLogic.java | 5 +++++ 1 file changed, 5 insertions(+) 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 d755bd6ef..9947e3c22 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 @@ -675,6 +675,11 @@ public class ActivityLogic implements IEventHandler{ } public void sendActivityInfo(User user,int activityId){ + // 开服条件判断 + boolean open = SGlobalActivity.checkActivityIfOpen(activityId,user.getPlayerInfoManager().getCreateTime(),GameApplication.serverConfig.getCacheOpenTime()); + if (!open){ + return; + } ISession session = OnlineUserManager.getSessionByUid(user.getId()); if(session!=null){ PlayerInfoProto.ActivityUpateIndication.Builder builder = PlayerInfoProto.ActivityUpateIndication.newBuilder(); From 64f4f644dea9b490fff020fecb8df9a2a76b04d1 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Tue, 21 Dec 2021 17:48:01 +0800 Subject: [PATCH 24/58] =?UTF-8?q?int=20NEW=5FWELFARE=20=3D=2042;//?= =?UTF-8?q?=E8=90=8C=E6=96=B0=E7=A6=8F=E5=88=A9=20=E8=BF=99=E4=B8=AA?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E6=9C=AA=E5=BC=80=E5=90=AF=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E8=BF=9B=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/ActivityLogic.java | 6 ++-- .../logic/activity/NewWelfareActivity.java | 30 +++++++++++++++++++ 2 files changed, 34 insertions(+), 2 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 9947e3c22..66e231744 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 @@ -779,8 +779,10 @@ public class ActivityLogic implements IEventHandler{ Map activityMissionMap = activityManager.getActivityMissionMap(); for (Map.Entry item : activityMissionMap.entrySet()) { ActivityMission activityMission = item.getValue(); - if (withState && activityMission.getActivityState() != ActivityType.OPEN_STATE) { - continue; + if (activityType != ActivityType.NEW_WELFARE) { // 这个活动未开启也需要记录进度 + if (withState && activityMission.getActivityState() != ActivityType.OPEN_STATE) { + continue; + } } Integer activityId = item.getKey(); SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewWelfareActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewWelfareActivity.java index fafbdf4e2..948bdaa89 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewWelfareActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewWelfareActivity.java @@ -14,6 +14,7 @@ import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; import rpc.protocols.CommonProto; +import rpc.protocols.MessageTypeProto; import rpc.protocols.PlayerInfoProto; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; @@ -22,6 +23,7 @@ import config.SGlobalActivity; import java.util.List; import java.util.Map; +import java.util.Set; public class NewWelfareActivity extends AbstractActivity { @@ -35,6 +37,34 @@ public class NewWelfareActivity extends AbstractActivity { super.initActivity(user); } + + /** + * 更新进度 + * + * @param filterMissId miss过滤 + */ + @Override + public void sendActivityProgress(ISession session, ActivityMission activityMission, Set filterMissId) { + if (session == null) { + return; + } + PlayerInfoProto.ActivityUpateProgressIndication.Builder builder = PlayerInfoProto.ActivityUpateProgressIndication.newBuilder(); + + User user = UserManager.getUserInMem(session.getUid()); + if (user != null && activityMission != null) { + if (activityMission.getActivityState() != ActivityType.OPEN_STATE) { + return; + } + List missInfo = getAllMissInfo(user, activityMission, filterMissId); + CommonProto.ActivityInfo.Builder builder1 = CommonProto.ActivityInfo.newBuilder() + .setValue(activityMission.getV()) + .addAllMission(missInfo) + .setActivityId(id); + builder.setActivityInfo(builder1); + MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.ACTIVITY_UPDATE_PROGRESS_INDICATION_VALUE, builder.build(), true); + } + } + @Override public void onEvent(IEvent event) throws Exception { if (!(event instanceof NewWelfareEvent)) { From ebae30feefb6b4bfe20c013c2389278b3d87025b Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Tue, 21 Dec 2021 19:07:26 +0800 Subject: [PATCH 25/58] =?UTF-8?q?=E6=88=98=E6=96=97=E6=98=9F=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/util/FightDataUtil.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/FightDataUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/FightDataUtil.java index bd704e3a4..355e86a04 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/FightDataUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/FightDataUtil.java @@ -25,7 +25,7 @@ public class FightDataUtil { LuaValue LuaTable = new LuaTable(); LuaTable.set("uid",data); - // LuaTable.set("enemyData", getEnemyData(monsterTeamList)); + // LuaTable.set("enemyData", getEnemyData(monsterTeamList)); // // if (data.equals("") || data==null){ // return new LuaTable(); @@ -99,6 +99,7 @@ public class FightDataUtil { SCHero hero = SCHero.getsCHero().get(sMonster.getMonsterId()); if(hero!=null){ unitData.set("job",hero.getJob()); + unitData.set("star",hero.getStar()); } if (unitSkill.length==1){ unitData.set("skill", getSkill(unitSkill[0],sMonster.getSkinId())); @@ -389,6 +390,7 @@ public class FightDataUtil { unitData.set("property", getProperty(property)); unitData.set("skinId",data.getSkinId()); unitData.set("job",hero.getJob()); + unitData.set("star",data.getStar()); return unitData; } From 7c21b147a0ce6cf8e0094988e730d720c0eebaf5 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Wed, 22 Dec 2021 10:54:44 +0800 Subject: [PATCH 26/58] =?UTF-8?q?=E8=BF=94=E8=BF=98=E9=81=93=E5=85=B7bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index c2e7def40..2f2f37c34 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -209,7 +209,7 @@ public class GetPlayerInfoHandler extends BaseHandler{ hasHeroMap.put(10, 1); } } else if (value.getStar() == 11) { - if (hasHeroMap.containsKey(1)) { + if (hasHeroMap.containsKey(11)) { hasHeroMap.put(11, hasHeroMap.get(11) + 1); } else { hasHeroMap.put(11, 1); From a58adbbb18793de51536a4d40833c81baddba8f3 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Thu, 23 Dec 2021 16:05:15 +0800 Subject: [PATCH 27/58] =?UTF-8?q?=E8=B6=85=E5=80=BC=E8=BF=94=E5=88=A9?= =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=94=AF=E4=BB=98bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/AbstractActivity.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java index a02d4f8f4..3bcaba675 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java @@ -356,6 +356,22 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { * @return */ public Set getCloseGoods(User user){ + //超值返利活动临时处理 下次大更新之前可以直接删掉 + if (id==90||id==9000){ + HashSet set = new HashSet<>(); + ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); + if (mission == null){ + return set; + } + Map map = mission.getActivityMissionMap(); + for (Map.Entry progressInfoEntry : map.entrySet()) { + SActivityRewardConfig rewardConfig=SActivityRewardConfig.getsActivityRewardConfigByMissionId(progressInfoEntry.getKey()); + if (progressInfoEntry.getValue().getState()==ActivityType.HAD_TAKED||(progressInfoEntry.getValue().getState()==ActivityType.WILL_TAKE&&mission.getV()+1!=rewardConfig.getSort())){ + set.add(rewardConfig.getValues()[0][0]); + } + } + return set; + } return new HashSet<>(1); } From 487722d6ac63cf41bb83d22ffccd995e068dc4d0 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Wed, 8 Dec 2021 16:50:41 +0800 Subject: [PATCH 28/58] =?UTF-8?q?=E5=91=BD=E6=A0=BC=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/globals/BIReason.java | 2 + .../ljsd/jieling/globals/GlobalItemType.java | 1 + .../jieling/handler/GetPlayerInfoHandler.java | 21 ++ .../hero/LifeGridChangeRequestHandler.java | 81 +++++ .../hero/LifeStoneUpRequestHandler.java | 279 ++++++++++++++++++ .../ljsd/jieling/logic/dao/HeroManager.java | 18 ++ .../java/com/ljsd/jieling/util/ItemUtil.java | 19 +- .../src/main/java/config/SGemConfig.java | 75 +++++ 8 files changed, 487 insertions(+), 9 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java create mode 100644 tablemanager/src/main/java/config/SGemConfig.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java index ec494d51d..1b2eebd4a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -374,6 +374,8 @@ public interface BIReason { int TRANSFORMATION_CARD_COST = 1224;//变身卡激活消耗 + int LIFE_STONE_UP = 1225;//命石合成 + int BUY_GOOD_ITEM_COST =1225;//妖晶购买道具消耗 int BUY_GOOD_ITEM_GET =1226;//妖晶购买道具获得 } \ No newline at end of file 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 6b5acfbff..8cae94dbc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java @@ -39,6 +39,7 @@ public interface GlobalItemType { int TRANSFORMATION_CARD = 29;//化身卡 int TRUMP_CHIP=30;//法宝碎片(法宝聚灵使用) int HOOK_PROP=32;//挂机奖励资源道具 + int LIFE_STONE=31;//命石 //物品使用类型 int NO_USE = 0 ; //不使用 int RANDOM_USE = 1; // 随机使用 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index 2f2f37c34..ba0127a56 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -313,6 +313,7 @@ public class GetPlayerInfoHandler extends BaseHandler{ .setXiuweiLevel(heroManager.getXiuweiLevel()) .addAllPracticeSkillInfos(practiceSkillInfos) .addAllFaBaoSoulInfos(faBaoSoulInfos) + .addAllLifeGridInfos(getLifeGridInfos(heroManager)) .build(); ReportUtil.onReportEvent(user, ReportEventEnum.APP_LOGIN.getType()); try { @@ -465,6 +466,26 @@ public class GetPlayerInfoHandler extends BaseHandler{ return faBaoSoulInfos; } + /** + * 初始化获取命格数据 + * @param heroManager + * @return + */ + private ListgetLifeGridInfos(HeroManager heroManager){ + ListlifeGridInfos=new ArrayList<>(); + for (Map.Entry> entry : heroManager.getLifeGridMap().entrySet()) { + for (Map.Entry indexById : entry.getValue().entrySet()) { + CommonProto.LifeGridInfo info=CommonProto.LifeGridInfo.newBuilder() + .setGridId(entry.getKey()) + .setGridIndex(indexById.getKey()) + .setItemId(indexById.getValue()) + .build(); + lifeGridInfos.add(info); + } + } + return lifeGridInfos; + } + /** * 初始化英雄星级map(针对老号) * @param user diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java new file mode 100644 index 000000000..dbc40c5da --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java @@ -0,0 +1,81 @@ +package com.ljsd.jieling.handler.hero; + +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.HeroManager; +import com.ljsd.jieling.logic.dao.Item; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; +import org.springframework.stereotype.Component; +import rpc.protocols.CommonProto; +import rpc.protocols.HeroInfoProto; +import rpc.protocols.MessageTypeProto; + +import java.util.HashMap; +import java.util.Map; + +/** + * 命格穿戴/卸下 + */ +@Component +public class LifeGridChangeRequestHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.LIFE_GRID_CHANGE_REQUEST; + } + @Override + public void processWithProto(ISession session, HeroInfoProto.LifeGridChangeRequest proto) throws Exception { + int uid = session.getUid(); + User user = UserManager.getUser(uid); + int type=proto.getType(); + int position=proto.getPosition(); + int index=proto.getIndex(); + int itemId=proto.getLifeStoneId(); + HeroManager heroManager=user.getHeroManager(); + Map>lifeGridMap=heroManager.getLifeGridMap(); + HeroInfoProto.LifeGridChangeResponse response=null; + if (type==1){//穿戴 + MapinstItemMap=new HashMap<>(); + instItemMap.put(itemId,1); + boolean isTrue=ItemUtil.itemCost(user,instItemMap,BIReason.LIFE_STONE_UP,type); + if (!isTrue){ + LOGGER.error("穿戴的命石未拥有"); + throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); + } + //更换 + if (lifeGridMap.containsKey(position)&&lifeGridMap.get(position).containsKey(index)&&lifeGridMap.get(position).get(index)>0){ + int unItemId=lifeGridMap.get(position).get(index); + int[][]unItem=new int[1][2]; + unItem[0][0]=unItemId; + unItem[0][1]=1; + ItemUtil.drop(user,unItem, BIReason.LIFE_STONE_UP); + } + heroManager.setLifeGridMap(position,index,itemId); + CommonProto.LifeGridInfo lifeGridInfo=CommonProto.LifeGridInfo.newBuilder() + .setGridId(position) + .setGridIndex(index) + .setItemId(itemId) + .build(); + response=HeroInfoProto.LifeGridChangeResponse.newBuilder().setLifeGridInfo(lifeGridInfo).build(); + }else{//卸下 + int unItemId= lifeGridMap.get(position).get(index); + int[][]unItem=new int[1][2]; + unItem[0][0]=unItemId; + unItem[0][1]=1; + ItemUtil.drop(user,unItem, BIReason.LIFE_STONE_UP); + heroManager.setLifeGridMap(position,index,0); + CommonProto.LifeGridInfo lifeGridInfo=CommonProto.LifeGridInfo.newBuilder() + .setGridId(position) + .setGridIndex(index) + .setItemId(0) + .build(); + response=HeroInfoProto.LifeGridChangeResponse.newBuilder().setLifeGridInfo(lifeGridInfo).build(); + } + MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.LIFE_GRID_CHANGE_RESPONSE_VALUE,response,true); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java new file mode 100644 index 000000000..fca25fbf3 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java @@ -0,0 +1,279 @@ +package com.ljsd.jieling.handler.hero; + +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.activity.event.Poster; +import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent; +import com.ljsd.jieling.logic.dao.Item; +import com.ljsd.jieling.logic.dao.ItemManager; +import com.ljsd.jieling.logic.dao.SixiangProfessionInfo; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.tools.Utils; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; +import config.SFourQuadrantConfig; +import config.SGemConfig; +import config.SItem; +import manager.STableManager; +import org.springframework.data.mongodb.core.aggregation.ArrayOperators; +import org.springframework.stereotype.Component; +import rpc.protocols.CommonProto; +import rpc.protocols.HeroInfoProto; +import rpc.protocols.MessageTypeProto; + +import java.util.*; + +/** + * 命石合成协议 + */ +@Component +public class LifeStoneUpRequestHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.LIFE_STONE_UP_REQUEST; + } + + + @Override + public void processWithProto(ISession session, HeroInfoProto.LifeStoneUpRequest proto) throws Exception { + int uid = session.getUid(); + User user = UserManager.getUser(uid); + int type= proto.getType(); + MapcostItemMap=new HashMap<>(); + MapaddItemMap=new HashMap<>(); + int equipLifeStoneId=0; + ItemManager itemManager=user.getItemManager(); + //操作类型 1:批量合成 2:一键合成 3:命石单个合成 4:快速合成 + if (type==1) { + int itemId=proto.getCurGemId(); + int itemNum=proto.getSelectNum(); + SGemConfig gemConfig=STableManager.getConfig(SGemConfig.class).get(itemId); + long upNum=itemNum/gemConfig.getUpgradeNum(); + long costGold=upNum*gemConfig.getUpgradeCost()[1]; + costItemMap.put(gemConfig.getUpgradeCost()[0],costGold); + costItemMap.put(itemId,(long)itemNum); + addItemMap.put(gemConfig.getNextGem(),upNum); + }else if(type==2){ + for (Map.Entry> integerTreeMapEntry : SGemConfig.gemConfigMapByType.entrySet()) { + boolean isCost=LifeStoneAllUp(itemManager,integerTreeMapEntry.getValue(),costItemMap,addItemMap); + if (!isCost) { + break; + } + } + }else if (type==3){ + int itemId=proto.getCurGemId(); + int itemNum=proto.getSelectNum(); + SGemConfig gemConfig=STableManager.getConfig(SGemConfig.class).get(itemId); + costItemMap.put(gemConfig.getUpgradeCost()[0],(long)gemConfig.getUpgradeCost()[1]); + if (proto.getGridId()>0){ + costItemMap.put(itemId,(long)itemNum); + equipLifeStoneId=gemConfig.getNextGem(); + }else{ + costItemMap.put(itemId,(long)itemNum+1); + addItemMap.put(gemConfig.getNextGem(),1L); + } + + }else if (type==4){ + SGemConfig gemConfig=STableManager.getConfig(SGemConfig.class).get(proto.getCurGemId()); + TreeMapgemConfigMap=SGemConfig.gemConfigMapByType.get(gemConfig.getType()); + if (LifeStoneQuickUp(itemManager,gemConfigMap,costItemMap,gemConfig.getLevel())) { + int[]curUpCost=gemConfig.getUpgradeCost(); + long allGoldCost= costItemMap.get(curUpCost[0])+curUpCost[1]; + costItemMap.put(curUpCost[0],allGoldCost); + if (proto.getGridId()>0){ + equipLifeStoneId=gemConfig.getNextGem(); + }else { + addItemMap.put(gemConfig.getNextGem(),1L); + costItemMap.put(proto.getCurGemId(),1L); + } + }else{ + LOGGER.error("命石合成材料不足"); + throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); + } + } + if (costItemMap.isEmpty()){ + LOGGER.error("命石合成异常,请联系后端"); + throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); + } + boolean isTrue= ItemUtil.itemCostLong(user,costItemMap,BIReason.LIFE_STONE_UP,type); + if (!isTrue){ + LOGGER.error("命石合成材料不足"); + throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); + } + HeroInfoProto.LifeStoneUpResponse.Builder response=HeroInfoProto.LifeStoneUpResponse.newBuilder(); + ///大于0说明是在命格系统操作 + if (equipLifeStoneId>0){ + CommonProto.LifeGridInfo lifeGridInfo=CommonProto.LifeGridInfo.newBuilder() + .setGridId(proto.getGridId()) + .setGridIndex(proto.getGridIndex()) + .setItemId(equipLifeStoneId) + .build(); + response.setLifeGridInfo(lifeGridInfo); + user.getHeroManager().setLifeGridMap(proto.getGridId(),proto.getGridIndex(),equipLifeStoneId); + }else{ + long[][]addItem=ItemUtil.mapToLongArray(addItemMap); + CommonProto.Drop.Builder drop=ItemUtil.drop(user,addItem,BIReason.LIFE_STONE_UP); + response.setDrop(drop.build()); + } + MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.LIFE_STONE_UP_RESPONSE_VALUE,response.build(),true); + } + + + ///命石一键合成 + public boolean LifeStoneAllUp(ItemManager itemManager,TreeMapgemConfigMap, MapcostItemMap, MapaddItemMap){ + long addCount=0;//一个循环合成数量 + long costGoldNum=0;//合成金币总消耗 + if(costItemMap.containsKey(14)){ + costGoldNum=costItemMap.get(14); + } + for (Map.Entry gemConfigEntry : gemConfigMap.entrySet()) { + SGemConfig gemConfig=gemConfigEntry.getValue(); + ///升到满级 + if (gemConfig.getNextGem()==0){ + if (addCount>0){ + addItemMap.put(gemConfig.getId(),addCount); + } + continue; + } + Item curItem= itemManager.getItem(gemConfig.getId()); + long costNum=addCount; + if (curItem!=null){ + costNum=curItem.getItemNum()+addCount; + } + ///命石不足 + if (costNum< gemConfig.getUpgradeNum()){ + if (addCount>0){ + addItemMap.put(gemConfig.getId(),addCount); + addCount=0; + } + continue; + } + int stoneNum=gemConfig.getUpgradeNum(); + int[]costGold=gemConfig.getUpgradeCost(); + long remainNum=costNum%stoneNum; + if (remainNum!=0){ + costNum-=remainNum; + } + if (costNum>0){ + //本次合成消耗 + long needCostGoldNum=costNum/stoneNum*costGold[1]; + long haveGoldNum=0; + if (itemManager.getItem(costGold[0])!=null){ + haveGoldNum=itemManager.getItem(costGold[0]).getItemNum(); + } + ///金币不足情况中断合成 + if (needCostGoldNum+costGoldNum>haveGoldNum){ + long upNum= (haveGoldNum-costGoldNum)/costGold[1]; + costItemMap.put(gemConfig.getId(),upNum*stoneNum); + addItemMap.put(gemConfig.getNextGem(),upNum); + costGoldNum+=upNum*costGold[1]; + //刷新消耗金币数量 + costItemMap.put(costGold[0],costGoldNum); + return false; + } + //计算累计消耗金币 + costGoldNum+=needCostGoldNum; + if (curItem!=null){ + long bagCost=curItem.getItemNum()-remainNum; + //刷新消耗命石数量 + costItemMap.put(gemConfig.getId(),bagCost); + long addNum=remainNum-curItem.getItemNum(); + if (addNum>0){ + addItemMap.put(gemConfig.getId(),addNum); + } + } + //保存累计消耗金币数量 + costItemMap.put(costGold[0],costGoldNum); + } + if (curItem==null){ + addItemMap.put(gemConfig.getId(),remainNum); + } + addCount=costNum/stoneNum; + } + return true; + } + + /** + * 命石快速合成 + * @param itemManager + * @param gemConfigMap + * @param costItemMap + * @param selectGemLv + * @return + */ + public boolean LifeStoneQuickUp(ItemManager itemManager,TreeMapgemConfigMap, MapcostItemMap,int selectGemLv){ + long addCount=0;//一个循环合成数量 + long costGoldNum=0;//合成金币总消耗 + for (Map.Entry gemConfigEntry : gemConfigMap.entrySet()) { + SGemConfig gemConfig=gemConfigEntry.getValue(); + ///如果命石等级大于当前选中的命石等级跳过 + if (gemConfig.getLevel()>=selectGemLv){ + break; + } + + Item curItem= itemManager.getItem(gemConfig.getId()); + long costNum=addCount; + if (curItem!=null){ + costNum=curItem.getItemNum()+addCount; + } + int[]costGold=gemConfig.getUpgradeCost(); + int stoneNum=gemConfig.getUpgradeNum(); + if (costNumneedNum){ + costNum=needNum; + remainNum=costNum-needNum; + } + addCount=costNum/stoneNum; + //本次合成消耗金币 + long needCostGoldNum=addCount*costGold[1]; + //计算累计消耗金币 + costGoldNum+=needCostGoldNum; + costItemMap.put(costGold[0],costGoldNum); + if (curItem!=null){ + long bagCost=curItem.getItemNum()-remainNum; + //刷新消耗命石数量 + costItemMap.put(gemConfig.getId(),bagCost); + } + long haveGoldNum=itemManager.getItem(costGold[0]).getItemNum(); + if (costGoldNum>haveGoldNum){ + LOGGER.error("命石快速合成金币不足"); + return false; + } + } + return addCount==1; + } + /** + * 获取升级到目标等级获取消耗指定命石需要数量 + * @param stoneType 命石类型 + * @param costStoneLv 消耗命石等级 + * @param targetStoneLv 目标等级 + * @return + */ + private long GetNeedLifeStoneNum(int stoneType, int costStoneLv,int targetStoneLv){ + long needNum=1; + TreeMapstoneLvMap= SGemConfig.gemConfigMapByType.get(stoneType); + for (Map.Entry gemConfigEntry : stoneLvMap.entrySet()) { + if (gemConfigEntry.getKey()>LifeGridMap=new HashMap<>(); + + public Map> getLifeGridMap() { + return LifeGridMap; + } + + ///设置命格数据 + public void setLifeGridMap(int gridId,int index,int itemId) { + if (!LifeGridMap.containsKey(gridId)) { + LifeGridMap.put(gridId, new HashMap<>()); + } + LifeGridMap.get(gridId).put(index,itemId); + updateString("LifeGridMap."+gridId, LifeGridMap.get(gridId)); + } + /** * 心愿可以选择的英雄列表 */ 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 1c7f47046..c09039cd0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -591,6 +591,7 @@ public class ItemUtil { case GlobalItemType.LikableCostItem: case GlobalItemType.MOUNT_FRAGMENTS_ITEM: case GlobalItemType.TRUMP_CHIP: + case GlobalItemType.LIFE_STONE: case GlobalItemType.TRANSFORMATION_CARD: case GlobalItemType.HOOK_PROP: itemType = GlobalItemType.ITEM; @@ -1458,15 +1459,6 @@ public class ItemUtil { return true; } - public static boolean itemCostLong(User user,Map costItems,int reason,int subReson) throws Exception { - boolean result = checkCostLong(user, costItems); - if (!result) { - return false; - } - useItemLong(user, costItems,reason,subReson); - return true; - } - public static boolean itemCost(User user,int[][] costItems,int times,int reason,int subReason) throws Exception { Map itemMap = new HashMap<>(); selectCost(costItems,itemMap,times); @@ -1478,6 +1470,15 @@ public class ItemUtil { return true; } + public static boolean itemCostLong(User user,Map costItems,int reason,int subReson) throws Exception { + boolean result = checkCostLong(user, costItems); + if (!result) { + return false; + } + useItemLong(user, costItems,reason,subReson); + return true; + } + public static boolean checkCost(User user, Map itemMap) throws Exception { HashMap longMap = new HashMap<>(); itemMap.forEach((k,v)->longMap.put(k,v.longValue())); diff --git a/tablemanager/src/main/java/config/SGemConfig.java b/tablemanager/src/main/java/config/SGemConfig.java new file mode 100644 index 000000000..06f16e9fb --- /dev/null +++ b/tablemanager/src/main/java/config/SGemConfig.java @@ -0,0 +1,75 @@ +package config; + +import manager.STableManager; +import manager.Table; + +import java.util.HashMap; +import java.util.Map; +import java.util.TreeMap; + +@Table(name ="GemConfig") +public class SGemConfig implements BaseConfig { + + private int id; + + private int quality; + + private int type; + + private int level; + + private int[][] property; + + private int upgradeNum; + + private int[] upgradeCost; + + private int nextGem; + + public static TreeMap>gemConfigMapByType; + + @Override + public void init() throws Exception { + gemConfigMapByType=new TreeMap<>(); + Map config = STableManager.getConfig(SGemConfig.class); + for(SGemConfig sGemConfig : config.values()){ + if (!gemConfigMapByType.containsKey(sGemConfig.getType())){ + TreeMaplvMap=new TreeMap<>(); + gemConfigMapByType.put(sGemConfig.getType(),lvMap); + } + gemConfigMapByType.get(sGemConfig.getType()).put(sGemConfig.getLevel(),sGemConfig); + } + } + + public int getId() { + return id; + } + + public int getQuality() { + return quality; + } + + public int getType() { + return type; + } + + public int getLevel() { + return level; + } + + public int[][] getProperty() { + return property; + } + + public int getUpgradeNum() { + return upgradeNum; + } + + public int[] getUpgradeCost() { + return upgradeCost; + } + + public int getNextGem() { + return nextGem; + } +} \ No newline at end of file From a66ff0d2badb24a5dbace16f94b981a9772fe97d Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Wed, 8 Dec 2021 17:03:28 +0800 Subject: [PATCH 29/58] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=91=BD=E6=A0=BC?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E6=88=98=E6=96=97=E5=8A=9B=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/hero/HeroLogic.java | 39 ++++++++++++------- 1 file changed, 25 insertions(+), 14 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 0091ee1eb..4fe4d0c04 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 @@ -2659,7 +2659,7 @@ public class HeroLogic { //英雄皮肤加成 记得判断皮肤过期 int skin = hero.getSkin(); if (skin != 0) { - Map skinInfo = user.getHeroManager().getSkinInfo(); + Map skinInfo = heroManager.getSkinInfo(); SHeroSkin sHeroSkin = SHeroSkin.skinMapByType.get(skin); if (sHeroSkin != null && sHeroSkin.getMonomerProperty() != null && sHeroSkin.getMonomerProperty().length > 0) { if (skinInfo.containsKey(skin) && (skinInfo.get(skin) == -1 || skinInfo.get(skin) > TimeUtils.nowInt())) { @@ -2689,7 +2689,7 @@ public class HeroLogic { combinedAttribute(SPlayerHeadIcon.getHeadIconMap().get(entry.getKey()).getUnlockProperty(), heroAllAttribute); } //四象心法加成 - for (Map.Entry entry : user.getHeroManager().getSixiangDataMap().entrySet()) { + for (Map.Entry entry :heroManager.getSixiangDataMap().entrySet()) { if (scHero.getProfession() != entry.getKey()) { continue; } @@ -2697,22 +2697,22 @@ public class HeroLogic { Map propertyMap = entry.getValue().propertyMap; int[][] propArr = ItemUtil.mapToArray(propertyMap); combinedAttribute(propArr, heroAllAttribute); - if (user.getHeroManager().getSixiangPropUpMap().containsKey(entry.getKey())) { + if (heroManager.getSixiangPropUpMap().containsKey(entry.getKey())) { //进阶属性 - Map upStarPropertyMap = user.getHeroManager().getSixiangPropUpMap().get(entry.getKey()); + Map upStarPropertyMap = heroManager.getSixiangPropUpMap().get(entry.getKey()); int[][] upStarProp = ItemUtil.mapToArray(upStarPropertyMap); combinedAttribute(upStarProp, heroAllAttribute); } } ///四象心法共鸣属性加成 - if (user.getHeroManager().GetSiXiangGongMingLv() > 0) { - SFourQuadrantConfig fourConfig = SFourQuadrantConfig.configByStrtMap.get(user.getHeroManager().GetSiXiangGongMingLv()); + if (heroManager.GetSiXiangGongMingLv() > 0) { + SFourQuadrantConfig fourConfig = SFourQuadrantConfig.configByStrtMap.get(heroManager.GetSiXiangGongMingLv()); combinedAttribute(fourConfig.getPropResonance(), heroAllAttribute); } ///四象心法技能属性加成 Map skillPropertyMap = new HashMap<>(); - for (Map.Entry entry : user.getHeroManager().getSixiangDataMap().entrySet()) { + for (Map.Entry entry : heroManager.getSixiangDataMap().entrySet()) { if (entry.getValue().level > 0) { SFourQuadrantConfig fourConfig = SFourQuadrantConfig.configByStrtMap.get(entry.getValue().level); int[] skillAddProp = fourConfig.getSkill()[entry.getKey() - 1]; @@ -2723,25 +2723,36 @@ public class HeroLogic { combinedAttribute(skillProp, heroAllAttribute); //英雄好感度属性加成 - if (user.getHeroManager().getHeroLikablePropAddMap().containsKey(scHero.getId())) { - int[][] likableProp = ItemUtil.mapToArray(user.getHeroManager().getHeroLikablePropAddMap().get(scHero.getId())); + if (heroManager.getHeroLikablePropAddMap().containsKey(scHero.getId())) { + int[][] likableProp = ItemUtil.mapToArray(heroManager.getHeroLikablePropAddMap().get(scHero.getId())); combinedAttribute(likableProp, heroAllAttribute); } //英雄总好感度属性加成 - if (user.getHeroManager().getAllLikablePropAddMap().size() > 0) { - int[][] allLikableProp = ItemUtil.mapToArray(user.getHeroManager().getAllLikablePropAddMap()); + if (heroManager.getAllLikablePropAddMap().size() > 0) { + int[][] allLikableProp = ItemUtil.mapToArray(heroManager.getAllLikablePropAddMap()); combinedAttribute(allLikableProp, heroAllAttribute); } ///法宝之魂属性加成 - for (Map.Entry faBaoSoulEntry : user.getHeroManager().getFaBaoSoulMap().entrySet()) { + for (Map.Entry faBaoSoulEntry :heroManager.getFaBaoSoulMap().entrySet()) { STrump trumpConfig = STrump.sTrumpMap.get(faBaoSoulEntry.getKey()); STrumpLevelupPool lvUpProps = STrumpLevelupPool.levelPoolMap.get(trumpConfig.getLvupPool()).get(faBaoSoulEntry.getValue()); combinedAttribute(lvUpProps.getLvupProps(), heroAllAttribute); } + ///命格属性加成 + for (Map.Entry> lifeGridMapEntry : heroManager.getLifeGridMap().entrySet()) { + for (Map.Entry entry : lifeGridMapEntry.getValue().entrySet()) { + int lifeStoneId=entry.getValue(); + if (lifeStoneId>0){ + SGemConfig sGemConfig=STableManager.getConfig(SGemConfig.class).get(lifeStoneId); + combinedAttribute(sGemConfig.getProperty(), heroAllAttribute); + } + } + } + // 身外化身加成 - Map transformationList = user.getHeroManager().getTransformationList(); + Map transformationList = heroManager.getTransformationList(); Map changingCardMap = STableManager.getConfig(SChangingCard.class); int[][] arrayValue = SSpecialConfig.getTwiceArrayValue(SSpecialConfig.PER_CHANGING_CART_PROP); for (TransformationInfo info : transformationList.values()) { @@ -2756,7 +2767,7 @@ public class HeroLogic { //装备总战力评分 int equipForce = 0; - Iterator> iterator = hero.getEquipByHongmengPositionMap(user.getHeroManager()).entrySet().iterator(); + Iterator> iterator = hero.getEquipByHongmengPositionMap(heroManager).entrySet().iterator(); // 套装list初始化 ArrayList suiteNumList = new ArrayList<>(); while (iterator.hasNext()) { From 4a2f7fc95e7fb570693a7fcdb04019deba8bb7ee Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Wed, 8 Dec 2021 17:13:16 +0800 Subject: [PATCH 30/58] =?UTF-8?q?=E6=95=B4=E7=90=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/hero/LifeGridChangeRequestHandler.java | 3 +-- .../jieling/handler/hero/LifeStoneUpRequestHandler.java | 7 ------- .../handler/hero/PracticeSkillUpRequestHandler.java | 4 ---- .../ljsd/jieling/handler/hero/SixiangUpRequestHandler.java | 3 --- .../jieling/handler/hero/SixiangUpStarRequestHandler.java | 1 - 5 files changed, 1 insertion(+), 17 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java index dbc40c5da..f003e93fe 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java @@ -5,7 +5,6 @@ import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.logic.dao.HeroManager; -import com.ljsd.jieling.logic.dao.Item; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; @@ -20,7 +19,7 @@ import java.util.HashMap; import java.util.Map; /** - * 命格穿戴/卸下 + * 命格命石穿戴/卸下 */ @Component public class LifeGridChangeRequestHandler extends BaseHandler { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java index fca25fbf3..d7fb2d6b3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java @@ -4,22 +4,15 @@ 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.activity.event.Poster; -import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent; import com.ljsd.jieling.logic.dao.Item; import com.ljsd.jieling.logic.dao.ItemManager; -import com.ljsd.jieling.logic.dao.SixiangProfessionInfo; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; -import com.ljsd.jieling.tools.Utils; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; -import config.SFourQuadrantConfig; import config.SGemConfig; -import config.SItem; import manager.STableManager; -import org.springframework.data.mongodb.core.aggregation.ArrayOperators; import org.springframework.stereotype.Component; import rpc.protocols.CommonProto; import rpc.protocols.HeroInfoProto; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/PracticeSkillUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/PracticeSkillUpRequestHandler.java index b387c46f4..3ae8fae3f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/PracticeSkillUpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/PracticeSkillUpRequestHandler.java @@ -5,22 +5,18 @@ import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.logic.dao.HeroManager; -import com.ljsd.jieling.logic.dao.SixiangProfessionInfo; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; -import config.SFourQuadrantConfig; import config.SPlayerSkill; import config.SXiuXian; import manager.STableManager; import org.springframework.stereotype.Component; -import rpc.protocols.CommonProto; import rpc.protocols.HeroInfoProto; import rpc.protocols.MessageTypeProto; -import java.util.*; @Component public class PracticeSkillUpRequestHandler extends BaseHandler { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpRequestHandler.java index b95c6e9b7..398851fbc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpRequestHandler.java @@ -9,13 +9,10 @@ import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent; import com.ljsd.jieling.logic.dao.SixiangProfessionInfo; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; -import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; import config.SFourQuadrantConfig; -import config.SXiuXian; -import manager.STableManager; import org.springframework.stereotype.Component; import rpc.protocols.CommonProto; import rpc.protocols.HeroInfoProto; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpStarRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpStarRequestHandler.java index 98337d42d..a142230be 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpStarRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpStarRequestHandler.java @@ -11,7 +11,6 @@ import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent; import com.ljsd.jieling.logic.dao.SixiangProfessionInfo; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; -import com.ljsd.jieling.logic.fight.eventhandler.IFightEventProcesor; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; From 946d97a7d48acbd27a927f1ffadd2b4304ea8bac Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Thu, 9 Dec 2021 10:11:14 +0800 Subject: [PATCH 31/58] =?UTF-8?q?=E8=84=9A=E6=9C=AC=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/hero/LifeStoneUpRequestHandler.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java index d7fb2d6b3..cd058f650 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java @@ -116,12 +116,20 @@ public class LifeStoneUpRequestHandler extends BaseHandlergemConfigMap, MapcostItemMap, MapaddItemMap){ long addCount=0;//一个循环合成数量 long costGoldNum=0;//合成金币总消耗 - if(costItemMap.containsKey(14)){ - costGoldNum=costItemMap.get(14); + int costGoldId=gemConfigMap.get(1).getUpgradeCost()[0];//获取消耗材料id + if(costItemMap.containsKey(costGoldId)){ + costGoldNum=costItemMap.get(costGoldId); } for (Map.Entry gemConfigEntry : gemConfigMap.entrySet()) { SGemConfig gemConfig=gemConfigEntry.getValue(); From f06acc6801e21b9a202b168cd20398456c510b4b Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Fri, 10 Dec 2021 09:55:51 +0800 Subject: [PATCH 32/58] =?UTF-8?q?=E5=91=BD=E6=A0=BC=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hero/LifeStoneUpRequestHandler.java | 299 +++++++++--------- 1 file changed, 154 insertions(+), 145 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java index cd058f650..90b80e19d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java @@ -35,84 +35,84 @@ public class LifeStoneUpRequestHandler extends BaseHandlercostItemMap=new HashMap<>(); - MapaddItemMap=new HashMap<>(); - int equipLifeStoneId=0; - ItemManager itemManager=user.getItemManager(); + int type = proto.getType(); + Map costItemMap = new HashMap<>(); + Map addItemMap = new HashMap<>(); + int equipLifeStoneId = 0; + ItemManager itemManager = user.getItemManager(); //操作类型 1:批量合成 2:一键合成 3:命石单个合成 4:快速合成 - if (type==1) { - int itemId=proto.getCurGemId(); - int itemNum=proto.getSelectNum(); - SGemConfig gemConfig=STableManager.getConfig(SGemConfig.class).get(itemId); - long upNum=itemNum/gemConfig.getUpgradeNum(); - long costGold=upNum*gemConfig.getUpgradeCost()[1]; - costItemMap.put(gemConfig.getUpgradeCost()[0],costGold); - costItemMap.put(itemId,(long)itemNum); - addItemMap.put(gemConfig.getNextGem(),upNum); - }else if(type==2){ + if (type == 1) { + int itemId = proto.getCurGemId(); + int itemNum = proto.getSelectNum(); + SGemConfig gemConfig = STableManager.getConfig(SGemConfig.class).get(itemId); + long upNum = itemNum / gemConfig.getUpgradeNum(); + long costGold = upNum * gemConfig.getUpgradeCost()[1]; + costItemMap.put(gemConfig.getUpgradeCost()[0], costGold); + costItemMap.put(itemId, (long) itemNum); + addItemMap.put(gemConfig.getNextGem(), upNum); + } else if (type == 2) { for (Map.Entry> integerTreeMapEntry : SGemConfig.gemConfigMapByType.entrySet()) { - boolean isCost=LifeStoneAllUp(itemManager,integerTreeMapEntry.getValue(),costItemMap,addItemMap); + boolean isCost = LifeStoneAllUp(itemManager, integerTreeMapEntry.getValue(), costItemMap, addItemMap); if (!isCost) { break; } } - }else if (type==3){ - int itemId=proto.getCurGemId(); - int itemNum=proto.getSelectNum(); - SGemConfig gemConfig=STableManager.getConfig(SGemConfig.class).get(itemId); - costItemMap.put(gemConfig.getUpgradeCost()[0],(long)gemConfig.getUpgradeCost()[1]); - if (proto.getGridId()>0){ - costItemMap.put(itemId,(long)itemNum); - equipLifeStoneId=gemConfig.getNextGem(); - }else{ - costItemMap.put(itemId,(long)itemNum+1); - addItemMap.put(gemConfig.getNextGem(),1L); + } else if (type == 3) { + int itemId = proto.getCurGemId(); + int itemNum = proto.getSelectNum(); + SGemConfig gemConfig = STableManager.getConfig(SGemConfig.class).get(itemId); + costItemMap.put(gemConfig.getUpgradeCost()[0], (long) gemConfig.getUpgradeCost()[1]); + if (proto.getGridId() > 0) { + costItemMap.put(itemId, (long) itemNum); + equipLifeStoneId = gemConfig.getNextGem(); + } else { + costItemMap.put(itemId, (long) itemNum + 1); + addItemMap.put(gemConfig.getNextGem(), 1L); } - }else if (type==4){ - SGemConfig gemConfig=STableManager.getConfig(SGemConfig.class).get(proto.getCurGemId()); - TreeMapgemConfigMap=SGemConfig.gemConfigMapByType.get(gemConfig.getType()); - if (LifeStoneQuickUp(itemManager,gemConfigMap,costItemMap,gemConfig.getLevel())) { - int[]curUpCost=gemConfig.getUpgradeCost(); - long allGoldCost= costItemMap.get(curUpCost[0])+curUpCost[1]; - costItemMap.put(curUpCost[0],allGoldCost); - if (proto.getGridId()>0){ - equipLifeStoneId=gemConfig.getNextGem(); - }else { - addItemMap.put(gemConfig.getNextGem(),1L); - costItemMap.put(proto.getCurGemId(),1L); + } else if (type == 4) { + SGemConfig gemConfig = STableManager.getConfig(SGemConfig.class).get(proto.getCurGemId()); + TreeMap gemConfigMap = SGemConfig.gemConfigMapByType.get(gemConfig.getType()); + if (LifeStoneQuickUp(itemManager, gemConfigMap, costItemMap, gemConfig.getLevel())) { + int[] curUpCost = gemConfig.getUpgradeCost(); + long allGoldCost = costItemMap.get(curUpCost[0]) + curUpCost[1]; + costItemMap.put(curUpCost[0], allGoldCost); + if (proto.getGridId() > 0) { + equipLifeStoneId = gemConfig.getNextGem(); + } else { + addItemMap.put(gemConfig.getNextGem(), 1L); + costItemMap.put(proto.getCurGemId(), 1L); } - }else{ + } else { LOGGER.error("命石合成材料不足"); throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); } } - if (costItemMap.isEmpty()){ + if (costItemMap.isEmpty()) { LOGGER.error("命石合成异常,请联系后端"); throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); } - boolean isTrue= ItemUtil.itemCostLong(user,costItemMap,BIReason.LIFE_STONE_UP,type); - if (!isTrue){ + boolean isTrue = ItemUtil.itemCostLong(user, costItemMap, BIReason.LIFE_STONE_UP, type); + if (!isTrue) { LOGGER.error("命石合成材料不足"); throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); } - HeroInfoProto.LifeStoneUpResponse.Builder response=HeroInfoProto.LifeStoneUpResponse.newBuilder(); + HeroInfoProto.LifeStoneUpResponse.Builder response = HeroInfoProto.LifeStoneUpResponse.newBuilder(); ///大于0说明是在命格系统操作 - if (equipLifeStoneId>0){ - CommonProto.LifeGridInfo lifeGridInfo=CommonProto.LifeGridInfo.newBuilder() + if (equipLifeStoneId > 0) { + CommonProto.LifeGridInfo lifeGridInfo = CommonProto.LifeGridInfo.newBuilder() .setGridId(proto.getGridId()) .setGridIndex(proto.getGridIndex()) .setItemId(equipLifeStoneId) .build(); response.setLifeGridInfo(lifeGridInfo); - user.getHeroManager().setLifeGridMap(proto.getGridId(),proto.getGridIndex(),equipLifeStoneId); - }else{ - long[][]addItem=ItemUtil.mapToLongArray(addItemMap); - CommonProto.Drop.Builder drop=ItemUtil.drop(user,addItem,BIReason.LIFE_STONE_UP); + user.getHeroManager().setLifeGridMap(proto.getGridId(), proto.getGridIndex(), equipLifeStoneId); + } else { + long[][] addItem = ItemUtil.mapToLongArray(addItemMap); + CommonProto.Drop.Builder drop = ItemUtil.drop(user, addItem, BIReason.LIFE_STONE_UP); response.setDrop(drop.build()); } - MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.LIFE_STONE_UP_RESPONSE_VALUE,response.build(),true); + MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.LIFE_STONE_UP_RESPONSE_VALUE, response.build(), true); } @@ -124,76 +124,84 @@ public class LifeStoneUpRequestHandler extends BaseHandlergemConfigMap, MapcostItemMap, MapaddItemMap){ - long addCount=0;//一个循环合成数量 - long costGoldNum=0;//合成金币总消耗 - int costGoldId=gemConfigMap.get(1).getUpgradeCost()[0];//获取消耗材料id - if(costItemMap.containsKey(costGoldId)){ - costGoldNum=costItemMap.get(costGoldId); + private boolean LifeStoneAllUp(ItemManager itemManager, TreeMap gemConfigMap, Map costItemMap, Map addItemMap) { + long addCount = 0;//一个循环合成数量 + long costGoldNum = 0;//合成金币总消耗 + int costGoldId = gemConfigMap.get(1).getUpgradeCost()[0];//获取消耗材料id + if (costItemMap.containsKey(costGoldId)) { + costGoldNum = costItemMap.get(costGoldId); } for (Map.Entry gemConfigEntry : gemConfigMap.entrySet()) { - SGemConfig gemConfig=gemConfigEntry.getValue(); + SGemConfig gemConfig = gemConfigEntry.getValue(); ///升到满级 - if (gemConfig.getNextGem()==0){ - if (addCount>0){ - addItemMap.put(gemConfig.getId(),addCount); + if (gemConfig.getNextGem() == 0) { + if (addCount > 0) { + addItemMap.put(gemConfig.getId(), addCount); } continue; } - Item curItem= itemManager.getItem(gemConfig.getId()); - long costNum=addCount; - if (curItem!=null){ - costNum=curItem.getItemNum()+addCount; + Item curItem = itemManager.getItem(gemConfig.getId()); + long costNum = addCount; + if (curItem != null) { + costNum = curItem.getItemNum() + addCount; } ///命石不足 - if (costNum< gemConfig.getUpgradeNum()){ - if (addCount>0){ - addItemMap.put(gemConfig.getId(),addCount); - addCount=0; + if (costNum < gemConfig.getUpgradeNum()) { + if (addCount > 0) { + addItemMap.put(gemConfig.getId(), addCount); + addCount = 0; } continue; } - int stoneNum=gemConfig.getUpgradeNum(); - int[]costGold=gemConfig.getUpgradeCost(); - long remainNum=costNum%stoneNum; - if (remainNum!=0){ - costNum-=remainNum; + int stoneNum = gemConfig.getUpgradeNum(); + int[] costGold = gemConfig.getUpgradeCost(); + long remainNum = costNum % stoneNum; + if (remainNum != 0) { + costNum -= remainNum; } - if (costNum>0){ - //本次合成消耗 - long needCostGoldNum=costNum/stoneNum*costGold[1]; - long haveGoldNum=0; - if (itemManager.getItem(costGold[0])!=null){ - haveGoldNum=itemManager.getItem(costGold[0]).getItemNum(); - } - ///金币不足情况中断合成 - if (needCostGoldNum+costGoldNum>haveGoldNum){ - long upNum= (haveGoldNum-costGoldNum)/costGold[1]; - costItemMap.put(gemConfig.getId(),upNum*stoneNum); - addItemMap.put(gemConfig.getNextGem(),upNum); - costGoldNum+=upNum*costGold[1]; - //刷新消耗金币数量 - costItemMap.put(costGold[0],costGoldNum); - return false; - } - //计算累计消耗金币 - costGoldNum+=needCostGoldNum; - if (curItem!=null){ - long bagCost=curItem.getItemNum()-remainNum; - //刷新消耗命石数量 - costItemMap.put(gemConfig.getId(),bagCost); - long addNum=remainNum-curItem.getItemNum(); - if (addNum>0){ - addItemMap.put(gemConfig.getId(),addNum); - } - } - //保存累计消耗金币数量 - costItemMap.put(costGold[0],costGoldNum); + if (costNum <= 0) { + continue; } - if (curItem==null){ - addItemMap.put(gemConfig.getId(),remainNum); + //本次合成消耗 + long needCostGoldNum = costNum / stoneNum * costGold[1]; + long haveGoldNum = 0; + if (itemManager.getItem(costGold[0]) != null) { + haveGoldNum = itemManager.getItem(costGold[0]).getItemNum(); } - addCount=costNum/stoneNum; + ///金币不足情况中断合成 + if (needCostGoldNum + costGoldNum > haveGoldNum) { + long upNum = (haveGoldNum - costGoldNum) / costGold[1]; + long endCostNum = upNum * stoneNum; + long haveCostNum = endCostNum - addCount; + if (haveCostNum > 0) { + costItemMap.put(gemConfig.getId(), haveCostNum); + } else { + addItemMap.put(gemConfig.getId(), -haveCostNum); + } + addItemMap.put(gemConfig.getNextGem(), upNum); + costGoldNum += upNum * costGold[1]; + //刷新消耗金币数量 + costItemMap.put(costGold[0], costGoldNum); + return false; + } + //计算累计消耗金币 + costGoldNum += needCostGoldNum; + if (curItem != null) { + long bagCost = curItem.getItemNum() - remainNum; + //刷新消耗命石数量 + costItemMap.put(gemConfig.getId(), bagCost); + long addNum = remainNum - curItem.getItemNum(); + if (addNum > 0) { + addItemMap.put(gemConfig.getId(), addNum); + } + } + //保存累计消耗金币数量 + costItemMap.put(costGold[0], costGoldNum); + + if (curItem == null) { + addItemMap.put(gemConfig.getId(), remainNum); + } + addCount = costNum / stoneNum; } return true; } @@ -206,73 +214,74 @@ public class LifeStoneUpRequestHandler extends BaseHandlergemConfigMap, MapcostItemMap,int selectGemLv){ - long addCount=0;//一个循环合成数量 - long costGoldNum=0;//合成金币总消耗 + private boolean LifeStoneQuickUp(ItemManager itemManager, TreeMap gemConfigMap, Map costItemMap, int selectGemLv) { + long addCount = 0;//一个循环合成数量 + long costGoldNum = 0;//合成金币总消耗 for (Map.Entry gemConfigEntry : gemConfigMap.entrySet()) { - SGemConfig gemConfig=gemConfigEntry.getValue(); + SGemConfig gemConfig = gemConfigEntry.getValue(); ///如果命石等级大于当前选中的命石等级跳过 - if (gemConfig.getLevel()>=selectGemLv){ - break; + if (gemConfig.getLevel() >= selectGemLv) { + break; } - Item curItem= itemManager.getItem(gemConfig.getId()); - long costNum=addCount; - if (curItem!=null){ - costNum=curItem.getItemNum()+addCount; + Item curItem = itemManager.getItem(gemConfig.getId()); + long costNum = addCount; + if (curItem != null) { + costNum = curItem.getItemNum() + addCount; } - int[]costGold=gemConfig.getUpgradeCost(); - int stoneNum=gemConfig.getUpgradeNum(); - if (costNumneedNum){ - costNum=needNum; - remainNum=costNum-needNum; + long remainNum = costNum % stoneNum; + if (costNum > needNum) { + remainNum = costNum - needNum; + costNum = needNum; } - addCount=costNum/stoneNum; + addCount = costNum / stoneNum; //本次合成消耗金币 - long needCostGoldNum=addCount*costGold[1]; + long needCostGoldNum = addCount * costGold[1]; //计算累计消耗金币 - costGoldNum+=needCostGoldNum; - costItemMap.put(costGold[0],costGoldNum); - if (curItem!=null){ - long bagCost=curItem.getItemNum()-remainNum; + costGoldNum += needCostGoldNum; + costItemMap.put(costGold[0], costGoldNum); + if (curItem != null) { + long bagCost = curItem.getItemNum() - remainNum; //刷新消耗命石数量 - costItemMap.put(gemConfig.getId(),bagCost); + costItemMap.put(gemConfig.getId(), bagCost); } - long haveGoldNum=itemManager.getItem(costGold[0]).getItemNum(); - if (costGoldNum>haveGoldNum){ + long haveGoldNum = itemManager.getItem(costGold[0]).getItemNum(); + if (costGoldNum > haveGoldNum) { LOGGER.error("命石快速合成金币不足"); return false; } } - return addCount==1; + return addCount == 1; } + /** * 获取升级到目标等级获取消耗指定命石需要数量 - * @param stoneType 命石类型 - * @param costStoneLv 消耗命石等级 + * @param stoneType 命石类型 + * @param costStoneLv 消耗命石等级 * @param targetStoneLv 目标等级 * @return */ - private long GetNeedLifeStoneNum(int stoneType, int costStoneLv,int targetStoneLv){ - long needNum=1; - TreeMapstoneLvMap= SGemConfig.gemConfigMapByType.get(stoneType); + private long GetNeedLifeStoneNum(int stoneType, int costStoneLv, int targetStoneLv) { + long needNum = 1; + TreeMap stoneLvMap = SGemConfig.gemConfigMapByType.get(stoneType); for (Map.Entry gemConfigEntry : stoneLvMap.entrySet()) { - if (gemConfigEntry.getKey() Date: Fri, 10 Dec 2021 11:03:32 +0800 Subject: [PATCH 33/58] =?UTF-8?q?=E5=91=BD=E6=A0=BC=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/hero/LifeGridChangeRequestHandler.java | 3 +++ .../handler/hero/LifeStoneUpRequestHandler.java | 12 +++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java index f003e93fe..8f83ccd77 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java @@ -4,6 +4,8 @@ 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.activity.event.Poster; +import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent; import com.ljsd.jieling.logic.dao.HeroManager; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; @@ -75,6 +77,7 @@ public class LifeGridChangeRequestHandler extends BaseHandler0){ + itemNum=itemNum-(itemNum%gemConfig.getUpgradeNum()); + } long upNum = itemNum / gemConfig.getUpgradeNum(); long costGold = upNum * gemConfig.getUpgradeCost()[1]; costItemMap.put(gemConfig.getUpgradeCost()[0], costGold); @@ -62,7 +67,7 @@ public class LifeStoneUpRequestHandler extends BaseHandler 0) { + if (proto.getGridIndex() > 0) { costItemMap.put(itemId, (long) itemNum); equipLifeStoneId = gemConfig.getNextGem(); } else { @@ -77,14 +82,14 @@ public class LifeStoneUpRequestHandler extends BaseHandler 0) { + if (proto.getGridIndex() > 0) { equipLifeStoneId = gemConfig.getNextGem(); } else { addItemMap.put(gemConfig.getNextGem(), 1L); costItemMap.put(proto.getCurGemId(), 1L); } } else { - LOGGER.error("命石合成材料不足"); + LOGGER.error("快速合成:命石合成材料不足"); throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); } } @@ -112,6 +117,7 @@ public class LifeStoneUpRequestHandler extends BaseHandler Date: Fri, 10 Dec 2021 14:03:45 +0800 Subject: [PATCH 34/58] =?UTF-8?q?=E5=91=BD=E6=A0=BC=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=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/core/FunctionIdEnum.java | 1 + .../handler/hero/HeroGodSoulBindRequestHandler.java | 9 +++++++++ .../handler/hero/HeroUpLikableRequestHandler.java | 9 ++++++++- .../handler/hero/LifeGridChangeRequestHandler.java | 9 +++++++++ .../jieling/handler/hero/SixiangUpRequestHandler.java | 9 +++++++++ 5 files changed, 36 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java index 1466073f9..96118230f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java @@ -74,6 +74,7 @@ public enum FunctionIdEnum { Likable(114,null),//好感度 GodSoul(116,null),//神魂 FaBaoSoul(119,null),//法宝聚灵 + LifeGrid(122,null),//命格 WeekGood(9091,null), ; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java index d76e8b8af..a57a9f9cf 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java @@ -1,4 +1,6 @@ package com.ljsd.jieling.handler.hero; +import com.ljsd.jieling.core.FunctionIdEnum; +import com.ljsd.jieling.core.HandlerLogicThread; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.handler.BaseHandler; @@ -12,6 +14,8 @@ import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.MessageUtil; import config.SCHero; +import config.SGlobalSystemConfig; +import manager.STableManager; import org.springframework.stereotype.Component; import rpc.protocols.HeroInfoProto; import rpc.protocols.MessageTypeProto; @@ -33,6 +37,11 @@ public class HeroGodSoulBindRequestHandler extends BaseHandlerbindHeroList= proto.getBindHerosList(); int uid = session.getUid(); User user = UserManager.getUser(uid); + SGlobalSystemConfig sGlobalSystemConfig = STableManager.getConfig(SGlobalSystemConfig.class).get(FunctionIdEnum.GodSoul.getFunctionType()); + if (!HandlerLogicThread.checkOpen(user, sGlobalSystemConfig)) { + LOGGER.error("等级不足功能尚未开启"); + throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); + } HeroManager heroManager= user.getHeroManager(); Hero upHero=heroManager.getHero(heroId); SCHero heroConfig=SCHero.getsCHero().get(upHero.getTemplateId()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroUpLikableRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroUpLikableRequestHandler.java index e96c1dcee..2aa5ba87c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroUpLikableRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroUpLikableRequestHandler.java @@ -1,7 +1,9 @@ package com.ljsd.jieling.handler.hero; import com.ljsd.common.mogodb.util.GlobalData; +import com.ljsd.jieling.core.FunctionIdEnum; import com.ljsd.jieling.core.GlobalsDef; +import com.ljsd.jieling.core.HandlerLogicThread; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; @@ -14,6 +16,7 @@ import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; import config.*; +import manager.STableManager; import org.springframework.stereotype.Component; import rpc.protocols.HeroInfoProto; import rpc.protocols.MessageTypeProto; @@ -40,7 +43,11 @@ public class HeroUpLikableRequestHandler extends BaseHandler SSpecialConfig.getIntegerValue(SSpecialConfig.LIKE_ABILITY)){ LOGGER.error("好感度赠送次数超出每日限制"); throw new ErrorCodeException(ErrorCode.REFRESH_WHEL_TIME_NOT); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java index 8f83ccd77..e7eebb931 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java @@ -1,5 +1,7 @@ package com.ljsd.jieling.handler.hero; +import com.ljsd.jieling.core.FunctionIdEnum; +import com.ljsd.jieling.core.HandlerLogicThread; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; @@ -12,6 +14,8 @@ import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; +import config.SGlobalSystemConfig; +import manager.STableManager; import org.springframework.stereotype.Component; import rpc.protocols.CommonProto; import rpc.protocols.HeroInfoProto; @@ -33,6 +37,11 @@ public class LifeGridChangeRequestHandler extends BaseHandler Date: Mon, 13 Dec 2021 16:23:32 +0800 Subject: [PATCH 35/58] =?UTF-8?q?=E5=91=BD=E7=9F=B3=E5=BF=AB=E9=80=9F?= =?UTF-8?q?=E5=90=88=E6=88=90=E8=84=9A=E6=9C=AC=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/hero/LifeStoneUpRequestHandler.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java index edae8a056..bb84c07b7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java @@ -225,12 +225,22 @@ public class LifeStoneUpRequestHandler extends BaseHandler gemConfigEntry : gemConfigMap.entrySet()) { SGemConfig gemConfig = gemConfigEntry.getValue(); + Item curItem = itemManager.getItem(gemConfig.getId()); + if (gemConfig.getLevel()==selectGemLv){ + if (addCount>0||curItem==null){ + break; + }else{ + costItemMap.put(gemConfig.getId(),1L); + costItemMap.put(gemConfig.getUpgradeCost()[0], (long) gemConfig.getUpgradeCost()[1]); + addCount=1; + break; + } + } ///如果命石等级大于当前选中的命石等级跳过 - if (gemConfig.getLevel() >= selectGemLv) { + if (gemConfig.getLevel() > selectGemLv) { break; } - Item curItem = itemManager.getItem(gemConfig.getId()); long costNum = addCount; if (curItem != null) { costNum = curItem.getItemNum() + addCount; From 93555c633dd860ae83fba5ef26b2eaa66cf2720e Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Mon, 13 Dec 2021 18:41:46 +0800 Subject: [PATCH 36/58] =?UTF-8?q?=E5=91=BD=E7=9F=B3=E5=BF=AB=E9=80=9F?= =?UTF-8?q?=E5=90=88=E6=88=90=E8=84=9A=E6=9C=AC=E4=BF=AE=E6=94=B9=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hero/LifeStoneUpRequestHandler.java | 34 ++++++++++++++----- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java index bb84c07b7..f08aa7dab 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java @@ -78,15 +78,23 @@ public class LifeStoneUpRequestHandler extends BaseHandler gemConfigMap = SGemConfig.gemConfigMapByType.get(gemConfig.getType()); - if (LifeStoneQuickUp(itemManager, gemConfigMap, costItemMap, gemConfig.getLevel())) { + boolean isBag=proto.getGridIndex()<=0; + if (LifeStoneQuickUp(itemManager, gemConfigMap, costItemMap, gemConfig.getLevel(),isBag)) { int[] curUpCost = gemConfig.getUpgradeCost(); - long allGoldCost = costItemMap.get(curUpCost[0]) + curUpCost[1]; + long allGoldCost = curUpCost[1]; + if (costItemMap.containsKey(curUpCost[0])){ + allGoldCost+=costItemMap.get(curUpCost[0]); + } costItemMap.put(curUpCost[0], allGoldCost); if (proto.getGridIndex() > 0) { equipLifeStoneId = gemConfig.getNextGem(); } else { addItemMap.put(gemConfig.getNextGem(), 1L); - costItemMap.put(proto.getCurGemId(), 1L); + if (costItemMap.containsKey(proto.getCurGemId())){ + long costNum=costItemMap.get(proto.getCurGemId())+1; + costItemMap.put(proto.getCurGemId(),costNum); + } + } } else { LOGGER.error("快速合成:命石合成材料不足"); @@ -220,7 +228,7 @@ public class LifeStoneUpRequestHandler extends BaseHandler gemConfigMap, Map costItemMap, int selectGemLv) { + private boolean LifeStoneQuickUp(ItemManager itemManager, TreeMap gemConfigMap, Map costItemMap, int selectGemLv,boolean isBag) { long addCount = 0;//一个循环合成数量 long costGoldNum = 0;//合成金币总消耗 for (Map.Entry gemConfigEntry : gemConfigMap.entrySet()) { @@ -229,12 +237,20 @@ public class LifeStoneUpRequestHandler extends BaseHandler0||curItem==null){ break; - }else{ - costItemMap.put(gemConfig.getId(),1L); - costItemMap.put(gemConfig.getUpgradeCost()[0], (long) gemConfig.getUpgradeCost()[1]); - addCount=1; - break; } + ///是否是在背包操作 + if (isBag){ + if (curItem.getItemNum() selectGemLv) { From b8de92f98c7dc6555089113f7fe1e454c659a313 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Tue, 14 Dec 2021 14:55:59 +0800 Subject: [PATCH 37/58] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E9=81=93=E5=85=B7GM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/globals/BIReason.java | 5 +++-- .../java/com/ljsd/jieling/globals/GlobalGm.java | 1 + .../jieling/handler/GameGM/GMRequestHandler.java | 15 ++++++++++++--- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java index 1b2eebd4a..7667af949 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -374,8 +374,9 @@ public interface BIReason { int TRANSFORMATION_CARD_COST = 1224;//变身卡激活消耗 - int LIFE_STONE_UP = 1225;//命石合成 - int BUY_GOOD_ITEM_COST =1225;//妖晶购买道具消耗 int BUY_GOOD_ITEM_GET =1226;//妖晶购买道具获得 + int LIFE_STONE_UP = 1227;//命石合成 + + int GM_COST = 1228;//gm删除道具 } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java index 85b44b7c5..8c8d62758 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java @@ -29,5 +29,6 @@ public interface GlobalGm { // int POKEMAN_MAX = 22;//一键获得所有满级异妖 int HARD_STAGE =25;//一键通关山河社稷图特定关卡之前的所有关卡 int FOUR_SPIRITS =26;//一键通关山河社稷图特定关卡之前的所有关卡 + int CLEAR_ITEM=27;//批量清除道具 } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java index a81fb989f..ed9af95a6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java @@ -102,7 +102,7 @@ public class GMRequestHandler extends BaseHandler{ // if(!GameApplication.serverProperties.isDebug()){ // throw new ErrorCodeException("In a formal setting"); // } - if (!command.contains("#") || command.split("#").length < 3) { + if (!command.contains("#") || command.split("#").length < 2) { LOGGER.error("wrong command :" + command); return; } @@ -120,7 +120,7 @@ public class GMRequestHandler extends BaseHandler{ if (gmCommandType == GlobalGm.RESET_USER_NAME){ prarm3 = commandArray[2]; }else{ - if(gmCommandType!=GlobalGm.TIME_INFO){ + if(gmCommandType!=GlobalGm.TIME_INFO&&gmCommandType!=GlobalGm.CLEAR_ITEM){ prarm2 = Integer.parseInt(commandArray[2]); } } @@ -471,11 +471,20 @@ public class GMRequestHandler extends BaseHandler{ prarm2 = Integer.parseInt(commandArray[2]); cUser.getPlayerInfoManager().updateFourChallengeByIndex(prarm1, prarm2); break; + case GlobalGm.CLEAR_ITEM: + MapcostMap=new HashMap<>(); + for (int i = 1; i < commandArray.length; i++) { + Item item=cUser.getItemManager().getItem(Integer.parseInt(commandArray[i])); + if (item!=null){ + costMap.put(item.getItemId(),item.getItemNum()); + } + } + ItemUtil.itemCostLong(cUser, costMap, BIReason.GM_COST, GlobalGm.CLEAR_ITEM); + break; default: break; } try { - MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GM_RESPONSE_VALUE, gmBuilder.build(), true); LOGGER.info("back to client!"); } catch (Exception e) { From c8f901474185a5788111cc5b1c7b46807290aaeb Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Tue, 14 Dec 2021 16:06:41 +0800 Subject: [PATCH 38/58] =?UTF-8?q?=E5=91=BD=E7=9F=B3=E4=B8=80=E9=94=AE?= =?UTF-8?q?=E5=90=88=E6=88=90bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/hero/LifeStoneUpRequestHandler.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java index f08aa7dab..d86b7eda9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java @@ -145,6 +145,10 @@ public class LifeStoneUpRequestHandler extends BaseHandler gemConfigEntry : gemConfigMap.entrySet()) { SGemConfig gemConfig = gemConfigEntry.getValue(); ///升到满级 @@ -196,7 +200,7 @@ public class LifeStoneUpRequestHandler extends BaseHandler Date: Fri, 24 Dec 2021 13:55:03 +0800 Subject: [PATCH 39/58] =?UTF-8?q?=E9=80=90=E8=83=9C=E5=95=86=E5=BA=97?= =?UTF-8?q?=E5=88=B7=E6=96=B0=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/core/function/ChampionFunction.java | 2 +- .../src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/function/ChampionFunction.java b/serverlogic/src/main/java/com/ljsd/jieling/core/function/ChampionFunction.java index ce0beb289..1a33cf30b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/function/ChampionFunction.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/function/ChampionFunction.java @@ -15,7 +15,7 @@ public class ChampionFunction implements FunctionManager { return; } ChampionshipLogic.start(); - Poster.getPoster().dispatchEvent(new FunctionRefreshEvent(FunctionIdEnum.Arena.getFunctionType(),-1)); +// Poster.getPoster().dispatchEvent(new FunctionRefreshEvent(FunctionIdEnum.TopBattle.getFunctionType(),-1)); } @Override diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java index c8b5fa9b7..853d9a8e8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java @@ -233,6 +233,7 @@ public class StoreLogic implements IEventHandler { StoreInfo storeInfo = it.next().getValue(); SStoreTypeConfig sStoreTypeConfig = SStoreTypeConfig.getsStoreTypeConfigMap().get(storeInfo.getId()); if(null == sStoreTypeConfig){ + removeStoreIds.add(storeInfo.getId()); continue; } if (sStoreTypeConfig.getStoreOpenRule() ==2 || sStoreTypeConfig.getStoreOpenRule() ==5 || sStoreTypeConfig.getStoreOpenRule() ==6 || sStoreTypeConfig.getStoreOpenRule() ==7){ From b870b9afa25398d501ddb080443126302e4ef428 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Thu, 23 Dec 2021 15:14:43 +0800 Subject: [PATCH 40/58] =?UTF-8?q?=E5=91=BD=E7=9F=B3=E5=BF=AB=E9=80=9F?= =?UTF-8?q?=E5=90=88=E6=88=90bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/hero/LifeStoneUpRequestHandler.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java index d86b7eda9..ab9b86727 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java @@ -78,7 +78,7 @@ public class LifeStoneUpRequestHandler extends BaseHandler gemConfigMap = SGemConfig.gemConfigMapByType.get(gemConfig.getType()); - boolean isBag=proto.getGridIndex()<=0; + boolean isBag=proto.getGridIndex()<=0;//此字段判断是否在背包里进行快速合成 if (LifeStoneQuickUp(itemManager, gemConfigMap, costItemMap, gemConfig.getLevel(),isBag)) { int[] curUpCost = gemConfig.getUpgradeCost(); long allGoldCost = curUpCost[1]; @@ -86,15 +86,17 @@ public class LifeStoneUpRequestHandler extends BaseHandler 0) { - equipLifeStoneId = gemConfig.getNextGem(); - } else { + if (isBag) { addItemMap.put(gemConfig.getNextGem(), 1L); if (costItemMap.containsKey(proto.getCurGemId())){ long costNum=costItemMap.get(proto.getCurGemId())+1; costItemMap.put(proto.getCurGemId(),costNum); + }else{ + costItemMap.put(proto.getCurGemId(),1L); } + } else { + equipLifeStoneId = gemConfig.getNextGem(); } } else { LOGGER.error("快速合成:命石合成材料不足"); From 352a586ae257341a6136dd0666873edffc7deb37 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Fri, 24 Dec 2021 09:49:28 +0800 Subject: [PATCH 41/58] =?UTF-8?q?=E8=B6=85=E5=80=BC=E8=BF=94=E5=88=A9?= =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=94=AF=E4=BB=98=E9=87=8D=E5=A4=8D=E8=B4=AD?= =?UTF-8?q?=E4=B9=B0=E7=A4=BC=E5=8C=85=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/NewRechargeSumDayActivity.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewRechargeSumDayActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewRechargeSumDayActivity.java index 3cdbd6909..5df69f583 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewRechargeSumDayActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewRechargeSumDayActivity.java @@ -18,7 +18,9 @@ import config.SActivityRewardConfig; import config.SRechargeCommodityNewConfig; import manager.STableManager; +import java.util.HashSet; import java.util.Map; +import java.util.Set; class NewRechargeSumDayActivity extends AbstractActivity { @@ -81,4 +83,20 @@ class NewRechargeSumDayActivity extends AbstractActivity { } + @Override + public Set getCloseGoods(User user) { + HashSet set = new HashSet<>(); + ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); + if (mission == null) { + return set; + } + Map map = mission.getActivityMissionMap(); + for (Map.Entry progressInfoEntry : map.entrySet()) { + SActivityRewardConfig rewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(progressInfoEntry.getKey()); + if (progressInfoEntry.getValue().getState() == ActivityType.HAD_TAKED || (progressInfoEntry.getValue().getState() == ActivityType.WILL_TAKE && mission.getV() + 1 != rewardConfig.getSort())) { + set.add(rewardConfig.getValues()[0][0]); + } + } + return set; + } } From 9284eb0e4827830ce07c13a5ea4769233d033962 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Fri, 24 Dec 2021 17:52:09 +0800 Subject: [PATCH 42/58] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java | 1 - 1 file changed, 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java index 873b842d2..698236739 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java @@ -466,7 +466,6 @@ public class FightUtil { user.getTeamPosManager().setCurTeamPosId(teamId); List heroFightInfos = new ArrayList<>(); List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId); - int i = 0; for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfos) { Hero hero = user.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); if (hero == null) { From 8d014c22698607b54ce50813b8b4dec2e83074a2 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 10:25:35 +0800 Subject: [PATCH 43/58] =?UTF-8?q?=E5=87=8F=E5=B0=91=E7=8E=A9=E5=AE=B6?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=9C=A8=E5=86=85=E5=AD=98=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/dao/UserManager.java | 2 +- serverlogic/src/main/java/com/ljsd/jieling/util/TaskKit.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java index c570544ab..55d04f2f7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java @@ -45,7 +45,7 @@ public class UserManager { private static Map userMapPutTime = new ConcurrentHashMap<>(); //离线读入 private static AtomicInteger login_f_num = new AtomicInteger(0);//登陆计数 private static final int LOGIN_F_LIMIT = 100;//报警界限 - private static final long LIVE_TIME = 12 * 60 * 60 * 1000L; + private static final long LIVE_TIME = 3 * 60 * 60 * 1000L; public static void addUser(User user) { userMap.put(user.getId(), user); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/TaskKit.java b/serverlogic/src/main/java/com/ljsd/jieling/util/TaskKit.java index f42068d53..f18663fc1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/TaskKit.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/TaskKit.java @@ -180,6 +180,9 @@ public abstract class TaskKit { // 最佳的线程数 = CPU可用核心数 / (1 - 阻塞系数) // TODO 阻塞系数是不是需要有个setter方法能让使用者自由设置呢? num = (int)(cores / (1 - 0.9)); + if (num > 8) { + num = 8; + } } catch (Throwable e) { // 异常发生时姑且返回10个任务线程池 From 7642a5b5fb263634e891f1580dbe4b943d65d35d Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 14:25:21 +0800 Subject: [PATCH 44/58] =?UTF-8?q?=E7=A5=9E=E5=B0=86=E5=9B=9E=E9=80=80?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=8A=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/util/ItemUtil.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) 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 c09039cd0..a7b099df7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -1417,17 +1417,16 @@ public class ItemUtil { // 鸿蒙阵推送 HeroLogic.getInstance().addOrUpdateHongmeng(OnlineUserManager.getSessionByUid(user.getId())); heroList.add(CBean2Proto.getHero(hero)); - if (reason == BIReason.HERO_RETURN) { - return; - } - SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); - if (scHero.getStar() >= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_lottery_content_parm)) { //策划资质改成星级 - String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("lamp_lottery_content", new Object[]{playerInfoManager.getNameColor(), playerInfoManager.getNickName(), scHero.getStar(), scHero.getReadingName()},new int[]{0,0,0,1}); - if (!message.isEmpty()){ - ChatLogic.getInstance().sendSysChatMessage(message,Global.LUCKY_LUCK,String.valueOf(hero.getTemplateId()),0,0,0,0,0); + if (reason != BIReason.HERO_RETURN) { + SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); + if (scHero.getStar() >= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_lottery_content_parm)) { //策划资质改成星级 + String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("lamp_lottery_content", new Object[]{playerInfoManager.getNameColor(), playerInfoManager.getNickName(), scHero.getStar(), scHero.getReadingName()},new int[]{0,0,0,1}); + if (!message.isEmpty()){ + ChatLogic.getInstance().sendSysChatMessage(message,Global.LUCKY_LUCK,String.valueOf(hero.getTemplateId()),0,0,0,0,0); + } } + user.getUserMissionManager().onGameEvent(user,GameEvent.GET_HERO,heroStar[0],heroStar[1]); } - user.getUserMissionManager().onGameEvent(user,GameEvent.GET_HERO,heroStar[0],heroStar[1]); // KtEventUtils.onKtEvent(user, ParamEventBean.UserItemEvent,reason,GlobalsDef.addReason,cardId,1,heroStar[1]); ReportUtil.onReportEvent(user,ReportEventEnum.GET_HERO.getType(),String.valueOf(cardId),String.valueOf(hero.getStar()),String.valueOf(reason)); } From 812f8ac7d1dd1cb9b6f3a97e5366155239eb2225 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 15:57:09 +0800 Subject: [PATCH 45/58] =?UTF-8?q?=E7=A5=9E=E5=B0=86=E5=9B=9E=E9=80=80bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/hero/HeroLogic.java | 23 ++++++------------- 1 file changed, 7 insertions(+), 16 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 4fe4d0c04..a0020d50f 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 @@ -4080,10 +4080,13 @@ public class HeroLogic { } // 卸下魂印 Map soulEquipByPositionMap = hero.getSoulEquipByPositionMap(); - for (Integer value : soulEquipByPositionMap.values()) { - dropMap.put(value, 1); + Map hunying = null; + if (!soulEquipByPositionMap.isEmpty()) { + hunying = new HashMap<>(soulEquipByPositionMap.size()); + } + for (Integer value : soulEquipByPositionMap.values()) { + hunying.put(value, 1); } - for (int[] ints : returnPercent) { for (int i = 1; i < ints.length; i++) { SHeroRankupGroup sHeroRankupGroup=STableManager.getConfig(SHeroRankupGroup.class).get(ints[i]); @@ -4105,19 +4108,7 @@ public class HeroLogic { } ItemUtil.itemCost(user, cost, BIReason.HERO_RETURN, hero.getTemplateId()); CommonProto.Drop.Builder drop = ItemUtil.drop(user, ItemUtil.mapToArray(dropMap), BIReason.HERO_RETURN); - if (!soulEquipByPositionMap.isEmpty()) { - List itemlistList = drop.getItemlistList(); - Set needRemove = new HashSet<>(soulEquipByPositionMap.size()); - for (int i = 0; i < itemlistList.size(); i++) { - CommonProto.Item item = itemlistList.get(i); - if (soulEquipByPositionMap.values().contains(item.getItemId())) { - needRemove.add(i); - } - } - for (Integer index : needRemove) { - drop.removeItemlist(index); - } - } + ItemUtil.drop(user, ItemUtil.mapToArray(hunying), BIReason.HERO_RETURN); hero.setLevel(1); hero.setBreakId(0); hero.setStar(5); From 70ce7e3446be072964eac6eb65169ca67e68369f Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 16:09:56 +0800 Subject: [PATCH 46/58] =?UTF-8?q?=E7=A5=9E=E5=B0=86=E5=9B=9E=E9=80=80bug?= 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 | 4 +++- 1 file changed, 3 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 a0020d50f..e31517f1a 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 @@ -4108,7 +4108,9 @@ public class HeroLogic { } ItemUtil.itemCost(user, cost, BIReason.HERO_RETURN, hero.getTemplateId()); CommonProto.Drop.Builder drop = ItemUtil.drop(user, ItemUtil.mapToArray(dropMap), BIReason.HERO_RETURN); - ItemUtil.drop(user, ItemUtil.mapToArray(hunying), BIReason.HERO_RETURN); + if (hunying != null) { + ItemUtil.drop(user, ItemUtil.mapToArray(hunying), BIReason.HERO_RETURN); + } hero.setLevel(1); hero.setBreakId(0); hero.setStar(5); From 454388b73101fdf80b5e8e938c8149827ed1bd6d Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 16:55:11 +0800 Subject: [PATCH 47/58] =?UTF-8?q?=E7=A5=9E=E5=B0=86=E5=9B=9E=E9=80=80?= =?UTF-8?q?=E5=8D=B8=E4=B8=8B=E9=AD=82=E5=8D=B0bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/hero/HeroLogic.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 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 e31517f1a..f16d4478b 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 @@ -4083,9 +4083,14 @@ public class HeroLogic { Map hunying = null; if (!soulEquipByPositionMap.isEmpty()) { hunying = new HashMap<>(soulEquipByPositionMap.size()); - } - for (Integer value : soulEquipByPositionMap.values()) { - hunying.put(value, 1); + Set unload = new HashSet<>(soulEquipByPositionMap.size()); + for (Map.Entry entry : soulEquipByPositionMap.entrySet()) { + hunying.put(entry.getValue(), 1); + unload.add(entry.getKey()); + } + for (Integer integer : unload) { + hero.removeSoulEquip(integer); + } } for (int[] ints : returnPercent) { for (int i = 1; i < ints.length; i++) { From 71ecc1510a8d931baa2dae8492aa70f9b7b9b2ee Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Tue, 28 Dec 2021 15:24:37 +0800 Subject: [PATCH 48/58] =?UTF-8?q?=E8=B6=85=E5=80=BC=E8=BF=94=E5=88=A9?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=AE=B9=E9=94=99=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/AbstractActivity.java | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java index 3bcaba675..a02d4f8f4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java @@ -356,22 +356,6 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { * @return */ public Set getCloseGoods(User user){ - //超值返利活动临时处理 下次大更新之前可以直接删掉 - if (id==90||id==9000){ - HashSet set = new HashSet<>(); - ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); - if (mission == null){ - return set; - } - Map map = mission.getActivityMissionMap(); - for (Map.Entry progressInfoEntry : map.entrySet()) { - SActivityRewardConfig rewardConfig=SActivityRewardConfig.getsActivityRewardConfigByMissionId(progressInfoEntry.getKey()); - if (progressInfoEntry.getValue().getState()==ActivityType.HAD_TAKED||(progressInfoEntry.getValue().getState()==ActivityType.WILL_TAKE&&mission.getV()+1!=rewardConfig.getSort())){ - set.add(rewardConfig.getValues()[0][0]); - } - } - return set; - } return new HashSet<>(1); } From 925b9688c06e9cd45b5ad7ed43d3a686a36544c9 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 17:17:56 +0800 Subject: [PATCH 49/58] =?UTF-8?q?=E7=A5=9E=E5=B0=86=E5=9B=9E=E9=80=80?= =?UTF-8?q?=E7=AA=81=E7=A0=B4=E7=AD=89=E7=BA=A7=E5=BD=92=200?= 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 | 2 ++ 1 file changed, 2 insertions(+) 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 f16d4478b..7224d5a4e 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 @@ -4119,6 +4119,8 @@ public class HeroLogic { hero.setLevel(1); hero.setBreakId(0); hero.setStar(5); + hero.setBreakId(0); + hero.setStarBreakId(0); //鸿蒙阵 addOrUpdateHongmeng(session); HeroInfoProto.HeroReturnResponse build = HeroInfoProto.HeroReturnResponse.newBuilder().setDrop(drop).build(); From 6074368c60217aafea4d38763d17b36076d61a05 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 17:18:31 +0800 Subject: [PATCH 50/58] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= 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 | 1 - 1 file changed, 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 7224d5a4e..89d343707 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 @@ -4119,7 +4119,6 @@ public class HeroLogic { hero.setLevel(1); hero.setBreakId(0); hero.setStar(5); - hero.setBreakId(0); hero.setStarBreakId(0); //鸿蒙阵 addOrUpdateHongmeng(session); From 29dc23ed4ed5e4f5d543fe663548d582feaeb868 Mon Sep 17 00:00:00 2001 From: "DESKTOP-98AVA47\\Administrator" Date: Tue, 28 Dec 2021 15:21:14 +0800 Subject: [PATCH 51/58] =?UTF-8?q?=E8=B7=A8=E6=9C=8D=E6=88=98=E6=96=97?= =?UTF-8?q?=EF=BC=8C=E8=BA=AB=E5=A4=96=E5=8C=96=E8=BA=AB=E6=8A=80=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- serverlogic/src/main/java/com/ljsd/CoreService.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/CoreService.java b/serverlogic/src/main/java/com/ljsd/CoreService.java index fba86773c..975012085 100644 --- a/serverlogic/src/main/java/com/ljsd/CoreService.java +++ b/serverlogic/src/main/java/com/ljsd/CoreService.java @@ -203,6 +203,12 @@ public class CoreService implements RPCRequestIFace.Iface { rpcArenaManager.setPracticeSkillMap(user.getHeroManager().getPracticeSkillMap()); rpcArenaManager.setFaBaoGongMingSkillMap(user.getHeroManager().getFaBaoGongMingSkillMap()); rpcArenaManager.setMaxHistoryForce(user.getPlayerInfoManager().getMaxForce()); + // 身外化身数据 + List list = user.getHeroManager().getTransformationList().values().stream() + .filter(v -> v.getStatus() == 1) + .mapToInt(TransformationInfo::getCardId) + .boxed().collect(Collectors.toList()); + rpcArenaManager.setTfInfoList(list); LOGGER.info("跨服,获取玩家英雄信息耗时:{}ms",TimeUtils.now()-start); return rpcArenaManager; }catch (Exception e){ From e4e4715543702e90a1d0c71aeee6fc7a1f71d689 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Tue, 4 Jan 2022 11:02:41 +0800 Subject: [PATCH 52/58] =?UTF-8?q?=E7=AB=9E=E6=8A=80=E8=AF=95=E7=82=BC?= =?UTF-8?q?=E5=8F=91=E5=A5=96=E5=8A=B1bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/activity/ArenaRankActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ArenaRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ArenaRankActivity.java index 8a7f17d76..3444d0e9c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ArenaRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ArenaRankActivity.java @@ -77,7 +77,7 @@ public class ArenaRankActivity extends AbstractActivity { String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("arena_activity_mail_txt", new Object[]{rank}, new int[0], "#"); int[][] rewardByRank = null; for (SActivityRankingReward sActivityRankingReward : sActivityRankingRewards) { - if (sActivityRankingReward.getMinRank() >= rank && sActivityRankingReward.getMaxRank() <= rank) { + if (sActivityRankingReward.getMinRank() >= rank && rank <= sActivityRankingReward.getMaxRank()) { rewardByRank = sActivityRankingReward.getRankingReward(); break; } From e9b526e61b557288642851f8af84f7f92e23f3fc Mon Sep 17 00:00:00 2001 From: duhui Date: Tue, 4 Jan 2022 11:40:52 +0800 Subject: [PATCH 53/58] =?UTF-8?q?=E5=A4=A7=E9=97=B9=E5=A4=A9=E5=AE=AB?= =?UTF-8?q?=E6=9C=BA=E5=99=A8=E4=BA=BA=EF=BC=8C=E6=98=9F=E7=BA=A7=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E5=A4=84=E7=90=86?= 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 | 2 +- 1 file changed, 1 insertion(+), 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 89d343707..6cae6468d 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 @@ -1820,7 +1820,7 @@ public class HeroLogic { } } } - return star; + return Math.min(star,scHero.getMaxRank());; } /** From 6870645ea4bd100abc992ba828c3d402138d1d4b Mon Sep 17 00:00:00 2001 From: duhui Date: Tue, 4 Jan 2022 11:50:35 +0800 Subject: [PATCH 54/58] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E5=A4=84=E7=90=86=EF=BC=8C=E4=B8=8D=E5=BD=B1=E5=93=8D=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= 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 | 2 +- 1 file changed, 1 insertion(+), 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 6cae6468d..f7a9008fd 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 @@ -1820,7 +1820,7 @@ public class HeroLogic { } } } - return Math.min(star,scHero.getMaxRank());; + return Math.min(star,scHero.getMaxRank()); } /** From 5e51e9c8dcb288b8ba735a663eb8f76a7041e0a7 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Tue, 4 Jan 2022 14:27:28 +0800 Subject: [PATCH 55/58] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/globals/GlobalItemType.java | 1 - 1 file changed, 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 306d1463e..d28007743 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java @@ -40,7 +40,6 @@ public interface GlobalItemType { int TRUMP_CHIP=30;//法宝碎片(法宝聚灵使用) int LIFE_STONE=31;//命石 int HOOK_PROP=32;//挂机奖励资源道具 - int LIFE_STONE=31;//命石 //物品使用类型 int NO_USE = 0 ; //不使用 int RANDOM_USE = 1; // 随机使用 From a1fbed11b2d744ccc779c264cf403e61235650a9 Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Wed, 5 Jan 2022 18:34:53 +0800 Subject: [PATCH 56/58] =?UTF-8?q?=E5=8D=95=E7=AC=94=E5=85=85=E5=80=BC?= =?UTF-8?q?=E9=A2=86=E5=A5=96=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/ActivityType.java | 1 + .../logic/activity/ActivityTypeEnum.java | 3 +- .../activity/RechargeRewardActivity.java | 85 +++++++++++++++++++ .../activity/event/RechargeRewardEvent.java | 27 ++++++ .../jieling/logic/store/BuyGoodsNewLogic.java | 2 + 5 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeRewardActivity.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/RechargeRewardEvent.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java index 21ff70b43..4c513db61 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java @@ -107,6 +107,7 @@ public interface ActivityType { int DAILY_PREFERENTIAL_GIFT = 89;//每日特惠礼包开启的活动 int NEW_RECHARGE_SUM_DAY_6 = 90;//新积天豪礼6元充值活动 int NEW_RECHARGE_SUM_DAY_30 = 92;//新积天豪礼30元充值活动 + int NEW_DAILY_RECHARGE = 93;//新每日充值 int SPECIAL_MONSTER_RANDOM_ACTIVITY = 100;//灵兽宝阁活动 int SPECIAL_MONSTER_GIFT_ACTIVITY = 101;//灵兽礼包 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java index 25da612f0..989c005a0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java @@ -98,7 +98,8 @@ public enum ActivityTypeEnum { NEW_RECHARGE_SUM_DAY_30(ActivityType.NEW_RECHARGE_SUM_DAY_30,NewRechargeSumDayActivity::new),//新积天豪礼 DAILY_PREFERENTIAL_GIFT(ActivityType.DAILY_PREFERENTIAL_GIFT,DailyPreferentialGiftActivity::new), SUMMON_TREASURE(ActivityType.SUMMON_TREASURE,SummonTreasureActivity::new),//招募秘宝 - NEW_PLAYER_SHOP(ActivityType.NEW_PLAYER_SHOP, NewPlayerShopActivity::new) + NEW_PLAYER_SHOP(ActivityType.NEW_PLAYER_SHOP, NewPlayerShopActivity::new), + NEW_DAILY_RECHARGE(ActivityType.NEW_DAILY_RECHARGE, RechargeRewardActivity::new) ; private int type; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeRewardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeRewardActivity.java new file mode 100644 index 000000000..32b351d84 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeRewardActivity.java @@ -0,0 +1,85 @@ +package com.ljsd.jieling.logic.activity; + +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.jbean.ActivityManager; +import com.ljsd.jieling.jbean.ActivityMission; +import com.ljsd.jieling.jbean.ActivityProgressInfo; +import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.activity.event.*; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; +import config.SActivityRewardConfig; +import config.SGlobalActivity; +import rpc.protocols.CommonProto; +import rpc.protocols.PlayerInfoProto; + +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +//充值奖励活动 +public class RechargeRewardActivity extends AbstractActivity { + + public RechargeRewardActivity(int id) { + super(id); + Poster.getPoster().listenEvent(this, RechargeRewardEvent.class); + } + + + @Override + public void onEvent(IEvent event) throws Exception{ + if (!(event instanceof RechargeRewardEvent)) + return; + User user = UserManager.getUser(((RechargeRewardEvent) event).getUid()); + if (null == user) { + return; + } + List rewardConfigList = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).stream().filter(n->n.getValues()[0][0]==((RechargeRewardEvent) event).getRechargeCount()).collect(Collectors.toList()); + if(rewardConfigList == null || rewardConfigList.size() == 0){ + return ; + } + ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); + if( null == activityMission){ + return; + } + int rewrdId = rewardConfigList.get(0).getId(); + Map activityProgressInfoMap = activityMission.getActivityMissionMap(); + if(!activityProgressInfoMap.containsKey(rewrdId)){ + return; + } + if(activityProgressInfoMap.get(rewrdId).getState() == 0){ + activityProgressInfoMap.get(rewrdId).setProgrss(((RechargeRewardEvent) event).getRechargeCount()); + activityProgressInfoMap.get(rewrdId).setState(2); + } + //更新进度 + ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); + sendActivityProgress(sessionByUid, activityMission, null); + } + @Override + boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { + int[][] values = sActivityRewardConfig.getValues(); + int missionProgress = activityProgressInfo.getProgrss(); + return missionProgress == values[0][0] && activityProgressInfo.getState() == 2; + } + @Override + public boolean checkActivityMissionFinishAndTake(int uid,int activityId,ActivityMission activityMission) { + Map activityProgressInfoMap = activityMission.getActivityMissionMap(); + if (activityProgressInfoMap.isEmpty()) { + return false; + } + for (Map.Entry item : activityProgressInfoMap.entrySet()) { + ActivityProgressInfo activityProgressInfo = item.getValue(); + int missionStatus = activityProgressInfo.getState(); + if (missionStatus == ActivityType.WILL_TAKE || missionStatus == 2) { + return false; + } + } + return true; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/RechargeRewardEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/RechargeRewardEvent.java new file mode 100644 index 000000000..0dc5dd452 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/RechargeRewardEvent.java @@ -0,0 +1,27 @@ +package com.ljsd.jieling.logic.activity.event; + +public class RechargeRewardEvent implements IEvent { + private int uid; + private int rechargeCount;//充值金额 + + public RechargeRewardEvent(int uid, int rechargeCount) { + this.uid = uid; + this.rechargeCount = rechargeCount; + } + + public int getUid() { + return uid; + } + + public void setUid(int uid) { + this.uid = uid; + } + + public int getRechargeCount() { + return rechargeCount; + } + + public void setRechargeCount(int rechargeCount) { + this.rechargeCount = rechargeCount; + } +} 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 c5c6c6cb7..97a07d681 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 @@ -187,6 +187,8 @@ public class BuyGoodsNewLogic { LOGGER.error("购买失败!bag是否为空:{}",bag == null); return resultRes; } + Poster.getPoster().dispatchEvent(new RechargeRewardEvent(user.getId(),(int)price)); + //成功购买 // if (goodsId == GlobalsDef.DAILY_GOODS_FAST_ID) { // //每日礼包一键购买之后,把所有单个的每日礼包的购买次数加一 From 06bdbf2a7855a8f52e54d381651faa8f5758bd77 Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 6 Jan 2022 11:12:26 +0800 Subject: [PATCH 57/58] =?UTF-8?q?=E6=B3=95=E5=AE=9D=E8=81=9A=E7=81=B5?= =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=80=BB=E6=98=9F?= =?UTF-8?q?=E7=BA=A7=E5=B1=9E=E6=80=A7=E5=8A=A0=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/hero/HeroLogic.java | 12 ++++++ .../src/main/java/config/STrumpStar.java | 37 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 tablemanager/src/main/java/config/STrumpStar.java 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 f934e43a9..7c2007273 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 @@ -2667,6 +2667,18 @@ public class HeroLogic { } } } + // 法宝聚灵总星级增加属性 + Map trumpStarMap = STableManager.getConfig(STrumpStar.class); + // 按照累计星数倒叙排列 + List trumpStars = trumpStarMap.values().stream().sorted(Comparator.comparing(STrumpStar::getStarNum).reversed()).collect(Collectors.toList()); + // 玩家全部的总星级 + int sumStar = heroManager.getFaBaoSoulMap().values().stream().mapToInt(v -> v).sum(); + for (STrumpStar star : trumpStars) { + if (sumStar >= star.getStarNum()){ + combinedAttribute(star.getPropList(), heroAllAttribute); + break; + } + } //玩家皮肤加成 for (Map.Entry entry : user.getPlayerInfoManager().getUserSkinValidTime().entrySet()) { if (!SPlayerHeadIcon.getHeadIconMap().containsKey(entry.getKey())) { diff --git a/tablemanager/src/main/java/config/STrumpStar.java b/tablemanager/src/main/java/config/STrumpStar.java new file mode 100644 index 000000000..6a3dd7fd0 --- /dev/null +++ b/tablemanager/src/main/java/config/STrumpStar.java @@ -0,0 +1,37 @@ +package config; + +import manager.STableManager; +import manager.Table; + +import java.util.Map; + +@Table(name ="TrumpStar") +public class STrumpStar implements BaseConfig { + + private int id; + + private int starNum; + + private int[][] propList; + + + @Override + public void init() throws Exception { + + } + + + public int getId() { + return id; + } + + public int getStarNum() { + return starNum; + } + + public int[][] getPropList() { + return propList; + } + + +} \ No newline at end of file From a58b5f89481054a456b98c0052a2fe78afc3b93a Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Thu, 6 Jan 2022 16:07:45 +0800 Subject: [PATCH 58/58] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=B2=A1=E7=94=A8?= =?UTF-8?q?=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/activity/RechargeRewardActivity.java | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeRewardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeRewardActivity.java index 32b351d84..1df1b58d1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeRewardActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeRewardActivity.java @@ -1,9 +1,5 @@ package com.ljsd.jieling.logic.activity; -import com.ljsd.jieling.exception.ErrorCode; -import com.ljsd.jieling.exception.ErrorCodeException; -import com.ljsd.jieling.globals.BIReason; -import com.ljsd.jieling.jbean.ActivityManager; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; import com.ljsd.jieling.logic.OnlineUserManager; @@ -11,14 +7,7 @@ import com.ljsd.jieling.logic.activity.event.*; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; -import com.ljsd.jieling.util.ItemUtil; -import com.ljsd.jieling.util.MessageUtil; import config.SActivityRewardConfig; -import config.SGlobalActivity; -import rpc.protocols.CommonProto; -import rpc.protocols.PlayerInfoProto; - -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.stream.Collectors;