From 49165586a312ca65ff37f445cee7053d64a56789 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 22 Jan 2024 11:28:38 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E7=BB=8F=E9=AA=8C=E5=88=B0=E4=B8=8A?= =?UTF-8?q?=E9=99=90=E5=90=8E=E4=B8=8D=E5=8F=91=E9=82=AE=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/util/ItemUtil.java | 125 ++++++++---------- 1 file changed, 53 insertions(+), 72 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 d76ec7659..3c72d8ad7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -698,44 +698,30 @@ public class ItemUtil { List itemProtoList = new ArrayList<>(); List sendToFront = new ArrayList<>(); Map extraItem = new HashMap<>(itemMap.size()); - List changeEquipList = null; + List changeEquipList = new ArrayList<>(); for (Map.Entry entry : itemMap.entrySet()) { int itemId = entry.getKey(); long itemNum = entry.getValue(); - - SItem sItem = SItem.getsItemMap().get(itemId); - if (sItem.getItemType() == GlobalItemType.SOUL_MARK) { - equipManager.addSoulGeal(itemId); - } - - if (sItem.getItemType() == 3 && reason != BIReason.EQUIP_UNLOAD_REWARD && reason != BIReason.UPHERO_DECOMPOS_HERO_REWARD && reason != BIReason.DECOMPOS_HERO_REWARD) { - if (changeEquipList == null) { - changeEquipList = new ArrayList<>(); - } - itemManager.setEquipBookMap(itemId, itemNum); - changeEquipList.add(itemId); - } - - long itemNumlimit = sItem.getItemNumlimit(); if (itemNum <= 0) { continue; } - if (itemNum >= itemNumlimit) { - itemNum = itemNumlimit; - } + SItem sItem = SItem.getsItemMap().get(itemId); + int id = sItem.getId(); + long itemNumlimit = sItem.getItemNumlimit(); + + itemNum = Math.min(itemNum, itemNumlimit); Item item = itemManager.getItem(itemId); if (item == null) { item = itemManager.newItem(itemId, itemNum); } else { - if (sItem.getId() == Global.MISSING_ROOM_ITEM && reason == BIReason.ADVENTURE_BASE_REWARD) { + if (id == Global.MISSING_ROOM_ITEM && reason == BIReason.ADVENTURE_BASE_REWARD) { itemNumlimit = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(user.getPlayerInfoManager().getLevel()).getMazeTreasureMax(); } - if (item.getItemNum() > itemNumlimit) { - if (sItem.getId() == Global.MISSING_ROOM_ITEM && reason == BIReason.ADVENTURE_BASE_REWARD) { + if (id == Global.MISSING_ROOM_ITEM && reason == BIReason.ADVENTURE_BASE_REWARD) { continue; } if (reason == BIReason.TAKE_MAIL_REWARD) { @@ -746,9 +732,10 @@ public class ItemUtil { continue; } - if (item.getItemNum() + itemNum > itemNumlimit) { - if (sItem.getId() == Global.MISSING_ROOM_ITEM && reason == BIReason.ADVENTURE_BASE_REWARD) { - item.setItemNum((int) (item.getItemNum() + itemNum)); + long num = item.getItemNum() + itemNum; + if (num > itemNumlimit) { + if (id == Global.MISSING_ROOM_ITEM && reason == BIReason.ADVENTURE_BASE_REWARD) { + item.setItemNum(num); } else { if (reason == BIReason.TAKE_MAIL_REWARD) { return 2; @@ -758,7 +745,7 @@ public class ItemUtil { } } } else { - item.setItemNum(item.getItemNum() + itemNum); + item.setItemNum(num); } } @@ -766,51 +753,41 @@ public class ItemUtil { itemProtoList.add(CBean2Proto.getItem(item, itemNum)); } - // 触发任务,东海寻仙 - if (sItem.getItemType() == GlobalItemType.TRANSFORMATION_CARD) { - long count = itemNum; - while (count >= Integer.MAX_VALUE) { - user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GET_TRANSFIGURATION_CARD_NUM, sItem.getQuantity(), Integer.MAX_VALUE); - count -= Integer.MAX_VALUE; - } - user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GET_TRANSFIGURATION_CARD_NUM, sItem.getQuantity(), (int) count); - } - - int eventType = ParamEventBean.UserItemEvent; - if (ifCurrency(itemId)) { - eventType = ParamEventBean.UserCurrencyEvent; - } - KtEventUtils.onKtEvent(user, eventType, reason, GlobalsDef.addReason, itemId, itemNum, item.getItemNum()); - + // 日志记录 baseItemReport(user, itemId, (int) itemNum, 1, reason); + // 日志记录 + ItemLogic.getInstance().addItemLog(new ItemLog(user, 0, reason, item, itemNum)); - if (sItem.getId() == Global.EXP) { - userLevelUp(user, itemNum); - } - if (sItem.getId() == Global.TREASURE_SCORE) { - treasureLevelUp(user); + switch (id){ + case Global.EXP://经验 + userLevelUp(user, itemNum); + break; + case Global.TREASURE_SCORE://青龙秘宝积分 + treasureLevelUp(user); + break; + case GlobalItemType.EQUIP://装备 + if (reason != BIReason.EQUIP_UNLOAD_REWARD && reason != BIReason.DECOMPOS_HERO_REWARD && reason != BIReason.UPHERO_DECOMPOS_HERO_REWARD) { + itemManager.setEquipBookMap(itemId, itemNum); + changeEquipList.add(itemId); + user.getUserMissionManager().onGameEvent(user, GameEvent.GET_EQUIP, id, (int) itemNum); + ReportUtil.onReportEvent(user, ReportEventEnum.GET_EQUIP.getType(), id, (int) itemNum, reason); + } + break; + case GlobalItemType.SOUL_MARK://魂印 + equipManager.addSoulGeal(itemId); + user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GOT_SOUL_MARK, id, (int) itemNum); + break; + case Global.DAILY_TASK_REMOVE_ITEM: + user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.DAILY_TASK_FINISH, (int) itemNum); + break; + case GlobalItemType.TRANSFORMATION_CARD://东海寻仙 + user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GET_TRANSFIGURATION_CARD_NUM, sItem.getQuantity(), (int) itemNum); + break; + default:break; } extraDropAop(user, dropBuilder, sItem); sendToFront.add(CBean2Proto.getItem(item, -1)); - - if (sItem.getItemType() == GlobalItemType.EQUIP) { - if (reason != BIReason.EQUIP_UNLOAD_REWARD && reason != BIReason.DECOMPOS_HERO_REWARD && reason != BIReason.UPHERO_DECOMPOS_HERO_REWARD) { - user.getUserMissionManager().onGameEvent(user, GameEvent.GET_EQUIP, sItem.getId(), (int) itemNum); - ReportUtil.onReportEvent(user, ReportEventEnum.GET_EQUIP.getType(), sItem.getId(), (int) itemNum, reason); - } - } - - if (sItem.getItemType() == GlobalItemType.SOUL_MARK) { - user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GOT_SOUL_MARK, sItem.getId(), (int) itemNum); - } - - if (sItem.getId() == Global.DAILY_TASK_REMOVE_ITEM) { - user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.DAILY_TASK_FINISH, (int) itemNum); - } - - // 日志记录 - ItemLogic.getInstance().addItemLog(new ItemLog(user, 0, reason, item, itemNum)); } // 发送装备图鉴修改推送 @@ -832,9 +809,12 @@ public class ItemUtil { if (extraBol) { StringBuilder builder = new StringBuilder(); for(Map.Entry entry : extraItem.entrySet()){ + SItem item = SItem.getsItemMap().get(entry.getKey()); + if (item.getItemType() == Global.EXP){ + continue; + } builder.append(entry.getKey()).append("#").append(entry.getValue()); String title = SErrorCodeEerverConfig.getI18NMessage("item_max_mail_title"); - SItem item = SItem.getsItemMap().get(entry.getKey()); String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("item_max_mail_content",new String[]{item.getName(),String.valueOf(item.getItemNumlimit())},new int[]{1,0},"#"); MailLogic.getInstance().sendMail(user.getId(),title,content,builder.toString(),TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME); builder = new StringBuilder(); @@ -968,13 +948,14 @@ public class ItemUtil { * 孙龙宝藏升级 //zsx 保留 TODO 由事件分发到 Activitylogic 去处理 */ public static void treasureLevelUp(User user) throws Exception { + PlayerManager playerInfoManager = user.getPlayerInfoManager(); List activities = SGlobalActivity.sGlobalActivityMapByType.get(ActivityType.TREASURE); SGlobalActivity activity = activities.stream().filter(a -> user.getActivityManager().getActivityMissionMap().containsKey(a.getId())).findAny().orElse(null); if(activity==null){ return; } - STreasureSunlongConfig levelConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(activity.getId()).get(user.getPlayerInfoManager().getTreasureLevel()); + STreasureSunlongConfig levelConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(activity.getId()).get(playerInfoManager.getTreasureLevel()); if (levelConfig != null) { //需要先确定下每级真实需要的经验,与客户端实现方式同步,认为表里填的升到下一级所需经验是前边各级经验总和 int[][] integral = levelConfig.getIntegral(); @@ -987,9 +968,9 @@ public class ItemUtil { costItems = new int[][]{{integral[0][0], integral[0][1] - lastLevelConfig.getIntegral()[0][1]}}; } while(levelConfig != null && ItemUtil.itemCost(user, costItems, BIReason.TREASURE_LEVEL_UP_CONSUME, 1)){ - user.getPlayerInfoManager().addTreasureLevel(); + playerInfoManager.addTreasureLevel(); lastLevelConfig = levelConfig; - levelConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(activity.getId()).get(user.getPlayerInfoManager().getTreasureLevel()); + levelConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(activity.getId()).get(playerInfoManager.getTreasureLevel()); if (levelConfig != null && levelConfig.getIntegral().length > 0) { integral = levelConfig.getIntegral(); costItems = new int[][]{{integral[0][0],integral[0][1] - lastLevelConfig.getIntegral()[0][1]}}; @@ -997,8 +978,8 @@ public class ItemUtil { } } PlayerInfoProto.TreasureLevelUpIndication indication = PlayerInfoProto.TreasureLevelUpIndication.newBuilder() - .setHadBuy(user.getPlayerInfoManager().getHadBuyTreasure()) - .setLevel(user.getPlayerInfoManager().getTreasureLevel()).build(); + .setHadBuy(playerInfoManager.getHadBuyTreasure()) + .setLevel(playerInfoManager.getTreasureLevel()).build(); MessageUtil.sendIndicationMessage(OnlineUserManager.getSessionByUid(user.getId()),1,MessageTypeProto.MessageType.TREASURE_LEVELUP_INDICATION_VALUE,indication,true); } @@ -1100,7 +1081,7 @@ public class ItemUtil { /** * type = 1获得 2 消耗 */ - public static void baseItemReport(User user,int itemId,int itemNum,int type,int reason) throws Exception { + public static void baseItemReport(User user,int itemId, long itemNum,int type,int reason) throws Exception { ReportEventEnum item; switch (itemId){ case ReportUtil.COIN_ID: From b3e79185458e20285c8c7a45e2214878317b81a4 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 25 Jan 2024 16:38:14 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E7=BB=8F=E9=AA=8C=E9=81=93=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/util/ItemUtil.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 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 3c72d8ad7..535eeaed9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -758,6 +758,7 @@ public class ItemUtil { // 日志记录 ItemLogic.getInstance().addItemLog(new ItemLog(user, 0, reason, item, itemNum)); + // id switch (id){ case Global.EXP://经验 userLevelUp(user, itemNum); @@ -765,6 +766,14 @@ public class ItemUtil { case Global.TREASURE_SCORE://青龙秘宝积分 treasureLevelUp(user); break; + case Global.DAILY_TASK_REMOVE_ITEM: + user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.DAILY_TASK_FINISH, (int) itemNum); + break; + default:break; + } + + // 类型 + switch (sItem.getItemType()){ case GlobalItemType.EQUIP://装备 if (reason != BIReason.EQUIP_UNLOAD_REWARD && reason != BIReason.DECOMPOS_HERO_REWARD && reason != BIReason.UPHERO_DECOMPOS_HERO_REWARD) { itemManager.setEquipBookMap(itemId, itemNum); @@ -777,9 +786,6 @@ public class ItemUtil { equipManager.addSoulGeal(itemId); user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GOT_SOUL_MARK, id, (int) itemNum); break; - case Global.DAILY_TASK_REMOVE_ITEM: - user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.DAILY_TASK_FINISH, (int) itemNum); - break; case GlobalItemType.TRANSFORMATION_CARD://东海寻仙 user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GET_TRANSFIGURATION_CARD_NUM, sItem.getQuantity(), (int) itemNum); break; @@ -810,7 +816,7 @@ public class ItemUtil { StringBuilder builder = new StringBuilder(); for(Map.Entry entry : extraItem.entrySet()){ SItem item = SItem.getsItemMap().get(entry.getKey()); - if (item.getItemType() == Global.EXP){ + if (item.getId() == Global.EXP){ continue; } builder.append(entry.getKey()).append("#").append(entry.getValue()); From 0360262525f602f502c29ec11f8cc401c2d410db Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 25 Jan 2024 16:50:07 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E7=BB=8F=E9=AA=8C=E9=81=93=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/util/ItemUtil.java | 6 +++--- 1 file changed, 3 insertions(+), 3 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 535eeaed9..832951d9a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -758,11 +758,13 @@ public class ItemUtil { // 日志记录 ItemLogic.getInstance().addItemLog(new ItemLog(user, 0, reason, item, itemNum)); + extraDropAop(user, dropBuilder, sItem); + // id switch (id){ case Global.EXP://经验 userLevelUp(user, itemNum); - break; + continue; case Global.TREASURE_SCORE://青龙秘宝积分 treasureLevelUp(user); break; @@ -791,8 +793,6 @@ public class ItemUtil { break; default:break; } - - extraDropAop(user, dropBuilder, sItem); sendToFront.add(CBean2Proto.getItem(item, -1)); } From a34c8013d9c02299b6320cba693580e81c7ee13d Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 25 Jan 2024 17:12:38 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E7=BB=8F=E9=AA=8C=E9=81=93=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/util/ItemUtil.java | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 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 832951d9a..d0f42368e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -758,13 +758,11 @@ public class ItemUtil { // 日志记录 ItemLogic.getInstance().addItemLog(new ItemLog(user, 0, reason, item, itemNum)); - extraDropAop(user, dropBuilder, sItem); - // id switch (id){ case Global.EXP://经验 userLevelUp(user, itemNum); - continue; + break; case Global.TREASURE_SCORE://青龙秘宝积分 treasureLevelUp(user); break; @@ -793,7 +791,12 @@ public class ItemUtil { break; default:break; } - sendToFront.add(CBean2Proto.getItem(item, -1)); + + extraDropAop(user, dropBuilder, sItem); + // 经验道具特殊,不记录 + if (id != Global.EXP){ + sendToFront.add(CBean2Proto.getItem(item, -1)); + } } // 发送装备图鉴修改推送 @@ -807,24 +810,31 @@ public class ItemUtil { dropBuilder.addAllItemlist(itemProtoList); } - boolean extraBol = !extraItem.isEmpty(); - if (!sendToFront.isEmpty() || extraBol) { - MessageUtil.sendBagIndication(user.getId(), 0, sendToFront, extraBol); + // 经验道具特殊,不发邮件 + Iterator> iterator = extraItem.entrySet().iterator(); + while (iterator.hasNext()){ + Integer itemId = iterator.next().getKey(); + SItem item = SItem.getsItemMap().get(itemId); + if (item.getId() == Global.EXP){ + iterator.remove(); + } } + boolean extraBol = !extraItem.isEmpty(); if (extraBol) { StringBuilder builder = new StringBuilder(); for(Map.Entry entry : extraItem.entrySet()){ SItem item = SItem.getsItemMap().get(entry.getKey()); - if (item.getId() == Global.EXP){ - continue; - } builder.append(entry.getKey()).append("#").append(entry.getValue()); String title = SErrorCodeEerverConfig.getI18NMessage("item_max_mail_title"); String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("item_max_mail_content",new String[]{item.getName(),String.valueOf(item.getItemNumlimit())},new int[]{1,0},"#"); MailLogic.getInstance().sendMail(user.getId(),title,content,builder.toString(),TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME); builder = new StringBuilder(); } + MessageUtil.sendBagIndication(user.getId(), 0, sendToFront, true); + } + else if (!sendToFront.isEmpty()) { + MessageUtil.sendBagIndication(user.getId(), 0, sendToFront, false); } Poster.getPoster().dispatchEvent(new AddItemEvent(user.getId(),itemMap)); From 6ab029cff48e05e886a9e73171b4c9b42f526a27 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 25 Jan 2024 18:08:18 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E7=89=9B=E6=B0=94=E5=86=B2=E5=A4=A9?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8?= 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 +- 1 file changed, 1 insertion(+), 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 825b451a8..f4027606a 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 @@ -170,6 +170,7 @@ public class UserManager { user.getUserMissionManager().onGameEvent(user, GameEvent.VIP_LEVLUP, MissionType.VIP_LEVEL,0); Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.LOGIN_TIMES.getType(),1)); ReportUtil.onReportEvent(user, ReportEventEnum.CREATE_ROLE.getType());//先发送注册事件 + ActivityLogic.getInstance().newPlayerOpenActivityMission(user); ItemUtil.drop(user,gameSetting.getBornItem(), BIReason.USER_BORN_REWARD); HeroManager heroManager = user.getHeroManager(); Map heroMap = heroManager.getHeroMap(); @@ -179,7 +180,6 @@ public class UserManager { teamPosManager.addTeamOfInitPlayer(teamHeros); long force = HeroLogic.getInstance().calTeamTotalForce(user, 1); playerManager.setMaxForce(force); - ActivityLogic.getInstance().newPlayerOpenActivityMission(user); user.getExpeditionManager().setExpeditionLeve(1); CrossServiceLogic.getInstance().saveBasicPlayerToRedis(user);//初始化角色 KtEventUtils.onKtEvent(user, ParamEventBean.UserRegister); From 37eca15b46e9bd956e6ccd3ee4e34fe265c81541 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 25 Jan 2024 18:17:27 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E7=89=9B=E6=B0=94=E5=86=B2=E5=A4=A9?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8?= 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 | 3 +-- .../src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) 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 f4027606a..b92ed1817 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 @@ -169,7 +169,6 @@ public class UserManager { user.getUserMissionManager().onGameEvent(user, GameEvent.BEGINNER); user.getUserMissionManager().onGameEvent(user, GameEvent.VIP_LEVLUP, MissionType.VIP_LEVEL,0); Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.LOGIN_TIMES.getType(),1)); - ReportUtil.onReportEvent(user, ReportEventEnum.CREATE_ROLE.getType());//先发送注册事件 ActivityLogic.getInstance().newPlayerOpenActivityMission(user); ItemUtil.drop(user,gameSetting.getBornItem(), BIReason.USER_BORN_REWARD); HeroManager heroManager = user.getHeroManager(); @@ -182,7 +181,7 @@ public class UserManager { playerManager.setMaxForce(force); user.getExpeditionManager().setExpeditionLeve(1); CrossServiceLogic.getInstance().saveBasicPlayerToRedis(user);//初始化角色 - KtEventUtils.onKtEvent(user, ParamEventBean.UserRegister); + ReportUtil.onReportEvent(user, ReportEventEnum.CREATE_ROLE.getType());//先发送注册事件 } public static User getUser(int uid,boolean canNull) throws Exception { 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 5a09aebcb..99160c407 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 @@ -6376,7 +6376,7 @@ public class HeroLogic { } // 避免zero异常 if (count == 0) { - throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE); + count = averageNum; } return count / averageNum; } From 6f0a8cda79fd6360dc67f0fb2d6f9f5dbd2fa2df Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 29 Jan 2024 14:31:29 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E7=89=9B=E6=B0=94=E5=86=B2=E5=A4=A9?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/dao/UserMissionManager.java | 29 ++++++++++++++++--- .../event/CowFlySkyRefreshEventProcess.java | 2 ++ .../JadeDynastyWeekRefreshEventProcess.java | 2 -- .../mission/main/CowFlySkyMissionType.java | 28 ++++++++++++------ 4 files changed, 46 insertions(+), 15 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java index 673d45d27..a2aefcfb4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java @@ -76,6 +76,7 @@ public class UserMissionManager extends MongoBase { private CumulationData jadeDynastyCumulationData = new CumulationData();//破阵诛仙日数据 private CumulationData jadeDynastyWeekCumulationData = new CumulationData();//破阵诛仙周数据 private CumulationData mistyTripCumulationData = new CumulationData();//缥缈之旅数据 + private CumulationData cowFlyCumulationData = new CumulationData();//牛气冲天数据 /** * 奖励处理任务 @@ -103,7 +104,7 @@ public class UserMissionManager extends MongoBase { case DAILY_MISSION_REWARD:{ dailyMissionIdsType.rewardMission(user,(int)parm[0], missionTypeEnumListMap.get(GameMisionType.DAILYMISSION)); if(!missionTypeEnumListMap.get(GameMisionType.DAILYMISSION).isEmpty()){ - calCumulationDataResult(user,MissionType.FINSIH_DAYILY_TIMES,missionTypeEnumListMap,(int)parm[0]); + calCumulationDataResult(user,MissionType.FINSIH_DAYILY_TIMES,missionTypeEnumListMap, parm[0]); updateString("dailyMissionIdsType",dailyMissionIdsType); } } @@ -212,6 +213,20 @@ public class UserMissionManager extends MongoBase { } } } + + // 牛气冲天活动数据处理 + if(!cowFlySkyMissionType.getDoingMissionIds().isEmpty()){ + Map flyMap = SArroGantFly.getTaskTypeMap().get(missionType.getMissionTypeValue()); + if (flyMap != null && !flyMap.isEmpty()) { + CumulationData.Result result = cowFlyCumulationData.updateData(missionType, parm); + if(result != null){ + cowFlySkyMissionType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.COWFLYSKYMISSION), cowFlyCumulationData); + setCowFlySkyMissionType(cowFlySkyMissionType); + setCowFlyCumulationData(cowFlyCumulationData); + } + } + } + if(!treasureMissionIdsType.getDoingMissionIds().isEmpty() ){ List sTreasureTaskConfigs = STreasureSunlongTaskConfig.sTreasureTaskConfigListByTypeMapTmp.get(missionType.getMissionTypeValue()); if(sTreasureTaskConfigs!=null){ @@ -319,9 +334,6 @@ public class UserMissionManager extends MongoBase { // vip任务 vipMissionIdsType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.VIPMISSION),cumulationData); updateString("vipMissionIdsType",vipMissionIdsType); - // 牛气冲天任务 - cowFlySkyMissionType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.COWFLYSKYMISSION),cumulationData); - updateString("cowFlySkyMissionType",cowFlySkyMissionType); // 家园任务 homeMissionType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.HOME_MISSION),cumulationData); updateString("homeMissionType",homeMissionType); @@ -450,6 +462,15 @@ public class UserMissionManager extends MongoBase { updateString("treasureMissionIdsType", treasureMissionIdsType); } + public CumulationData getCowFlyCumulationData() { + return cowFlyCumulationData; + } + + public void setCowFlyCumulationData(CumulationData cowFlyCumulationData) { + this.cowFlyCumulationData = cowFlyCumulationData; + updateString("cowFlyCumulationData", cowFlyCumulationData); + } + public TreasureMissionType getTreasureMissionIdsType() { return treasureMissionIdsType; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/CowFlySkyRefreshEventProcess.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/CowFlySkyRefreshEventProcess.java index d34d2fbc6..7e59d8b2d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/CowFlySkyRefreshEventProcess.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/CowFlySkyRefreshEventProcess.java @@ -1,5 +1,6 @@ package com.ljsd.jieling.logic.mission.event; +import com.ljsd.jieling.logic.dao.CumulationData; import com.ljsd.jieling.logic.dao.UserMissionManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mission.GameEvent; @@ -25,6 +26,7 @@ public class CowFlySkyRefreshEventProcess implements BaseGameEventProcessor { cowFlySkyMissionType.getFinishMissionIds().clear(); cowFlySkyMissionType.getRewardedMissionIds().clear(); cowFlySkyMissionType.getDoingMissionIds().addAll(arro); + missionManager.setCowFlyCumulationData(new CumulationData()); missionManager.setCowFlySkyMissionType(cowFlySkyMissionType); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/JadeDynastyWeekRefreshEventProcess.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/JadeDynastyWeekRefreshEventProcess.java index 0098a0500..4a7ebb1f6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/JadeDynastyWeekRefreshEventProcess.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/JadeDynastyWeekRefreshEventProcess.java @@ -1,6 +1,5 @@ package com.ljsd.jieling.logic.mission.event; -import com.ljsd.jieling.logic.dao.UserMissionManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.mission.GameMisionType; @@ -13,7 +12,6 @@ import java.util.Map; public class JadeDynastyWeekRefreshEventProcess implements BaseGameEventProcessor { @Override public void onGameEvent(User user, Map> misionTypeListMap, GameEvent event, Object... parm) throws Exception { - UserMissionManager missionManager = user.getUserMissionManager(); //当前轮次破阵诛仙的活动ID int jadeAid = (int) parm[0]; MissionLogic.getInstance().resetJadeDynastyTaskInfo(user,2, jadeAid, misionTypeListMap); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java index 101fa4d3e..f937178a6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java @@ -51,15 +51,9 @@ public class CowFlySkyMissionType extends AbstractMissionType { } } - @Override - public void calCumulationDataResult(User user, CumulationData.Result result, List missionStateChangeInfos, CumulationData cumulationData) throws Exception { - // 进行中得任务 + public void missionRefresh(User user, List flyList, List missionStateChangeInfos, CumulationData cumulationData){ Set doingMissionIds = getDoingMissionIds(); - Map flyMap = SArroGantFly.getTaskTypeMap().get(result.subType.getMissionTypeValue()); - if (flyMap == null || flyMap.isEmpty()){ - return; - } - for (SArroGantFly fly : flyMap.values()) { + for (SArroGantFly fly : flyList) { // 任务子id int id = fly.getId(); // 不在执行中 @@ -84,7 +78,23 @@ public class CowFlySkyMissionType extends AbstractMissionType { // 任务列表更新 doingMissionIds.remove(id); getFinishMissionIds().add(id); - } } + + @Override + public void calCumulationDataResult(User user, CumulationData.Result result, List missionStateChangeInfos, CumulationData cumulationData) throws Exception { + Map flyMap = SArroGantFly.getTaskTypeMap().get(result.subType.getMissionTypeValue()); + if (flyMap == null || flyMap.isEmpty()){ + return; + } + missionRefresh(user, new ArrayList<>(flyMap.values()), missionStateChangeInfos, cumulationData); + } + +// public void initRefreshCumulationData(User user, List missionStateChangeInfos, CumulationData cumulationData, int activityId){ +// Map flyMap = SArroGantFly.getActivityMap().get(activityId); +// if (flyMap == null || flyMap.isEmpty()){ +// return; +// } +// missionRefresh(user, new ArrayList<>(flyMap.values()), missionStateChangeInfos, cumulationData); +// } } From 71931154e56a01157a9041aa57f80ff14a1d67b5 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 29 Jan 2024 17:18:04 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E7=89=9B=E6=B0=94=E5=86=B2=E5=A4=A9?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java index 18fc4ca50..e259f58ff 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java @@ -490,7 +490,7 @@ public class MissionLoigc { */ public static void getCowFlySkyMission(User user ,List missionList){ CowFlySkyMissionType missionType = user.getUserMissionManager().getCowFlySkyMissionType(); - CumulationData cumulationData = user.getUserMissionManager().getCumulationData(); + CumulationData cumulationData = user.getUserMissionManager().getCowFlyCumulationData(); // 进行中 Set doingMissionIds = missionType.getDoingMissionIds(); // 可领取