From e6e27f722c1fe6ae2226f7a2580e737014be151c Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 2 Nov 2019 17:27:06 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E5=85=AC=E4=BC=9A?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/dao/CumulationData.java | 2 ++ .../ljsd/jieling/logic/family/GuildLogic.java | 2 ++ .../ljsd/jieling/logic/mission/GameEvent.java | 2 +- .../ljsd/jieling/logic/mission/MissionType.java | 3 +++ .../mission/data/DataManagerDistributor.java | 1 + .../mission/data/JoinFamilyCountManager.java | 17 +++++++++++++++++ .../mission/event/MissionEventDistributor.java | 5 +++++ 7 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/JoinFamilyCountManager.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java index b18233797..337eeb5dd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java @@ -117,6 +117,8 @@ public class CumulationData { public int takeFriendGifts;//领取好友赠礼次数 + public int joinFamilyCount;//加入公会次数 + public Map especialEquipStar = new HashMap<>();//法宝升到%s星级的数量为 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java index fb4f32899..a6fd7f189 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java @@ -16,6 +16,7 @@ import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.*; 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.network.session.ISession; import com.ljsd.jieling.protocols.CommonProto; @@ -502,6 +503,7 @@ public class GuildLogic { PlayerInfoCache cache = RedisUtil.getInstence().getMapEntry(RedisKey.PLAYER_INFO_CACHE, "", String.valueOf(applyId), PlayerInfoCache.class); cache.setGuildPosition(GlobalsDef.MEMBER); RedisUtil.getInstence().putMapEntry(RedisKey.PLAYER_INFO_CACHE,"",String.valueOf(applyId),cache); + targetUser.getUserMissionManager().onGameEvent(targetUser, GameEvent.JOIN_FAMILY); }catch (Exception e){ LOGGER.error("the exception={}",e); }finally { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java index 34b22b791..c68e4a529 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java @@ -67,7 +67,7 @@ public enum GameEvent { FIND_STAR,//占星 TAKE_FRIEND_GIFT,//领取好友赠礼 - + JOIN_FAMILY,//加入公会次数 } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java index f22543aee..9e166da3b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java @@ -83,6 +83,7 @@ public enum MissionType { ESPECIAL_EQUIP(62),//拥有%s星级法宝的数量为:%s FIND_STAR(65),//占星 TAKE_FRIEND_GIFT(66),//领取好友友情点 + JOIN_FAMILY(69), ; private int missionType; @@ -225,6 +226,8 @@ public enum MissionType { return FIND_STAR; case 66: return TAKE_FRIEND_GIFT; + case 69: + return JOIN_FAMILY; default: return null; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java index b2fa1e662..0b074d769 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java @@ -104,6 +104,7 @@ public class DataManagerDistributor { judges.put(MissionType.FIND_STAR,new FindStarManager()); judges.put(MissionType.TAKE_FRIEND_GIFT,new TakeFriendGiftTimesManager()); + judges.put(MissionType.JOIN_FAMILY,new JoinFamilyCountManager()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/JoinFamilyCountManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/JoinFamilyCountManager.java new file mode 100644 index 000000000..1145aef01 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/JoinFamilyCountManager.java @@ -0,0 +1,17 @@ +package com.ljsd.jieling.logic.mission.data; + +import com.ljsd.jieling.logic.dao.CumulationData; +import com.ljsd.jieling.logic.mission.MissionType; + +/** + * @author lvxinran + * @date 2019/11/2 + * @discribe + */ +public class JoinFamilyCountManager implements BaseDataManager { + @Override + public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) { + data.joinFamilyCount++; + return new CumulationData.Result(missionType); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java index 99e4f6119..eb646b63a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java @@ -274,6 +274,11 @@ public class MissionEventDistributor { eventEnumListMap.put(GameEvent.TAKE_FRIEND_GIFT,typeList); eventProcessor.put(GameEvent.TAKE_FRIEND_GIFT,new CumulationDataEventProcessor()); + typeList = new ArrayList<>(); + typeList.add(MissionType.JOIN_FAMILY); + eventEnumListMap.put(GameEvent.JOIN_FAMILY,typeList); + eventProcessor.put(GameEvent.JOIN_FAMILY,new CumulationDataEventProcessor()); + } private static final ThreadLocal>> threadMissionChangeList = From 436ca6ba7ca1a39d38b3444827aae32bdf6ac0a1 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Wed, 30 Oct 2019 14:57:49 +0800 Subject: [PATCH 2/2] fix exp --- .../src/main/java/com/ljsd/jieling/util/ItemUtil.java | 7 ++++--- 1 file changed, 4 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 28c5f13d1..6f6469c81 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -577,7 +577,7 @@ public class ItemUtil { levelUpExp = sPlayerLevelConfig.getExp(); } while (curExp >= levelUpExp && curExp <= maxExp) { - playerInfoManager.setLevel(playerInfoManager.getLevel() + 1); + Poster.getPoster().dispatchEvent(new UserLevelEvent(user.getId(),playerInfoManager.getLevel())); if(playerInfoManager.getLevel()==2&&playerInfoManager.getNickName().equals(String.valueOf(playerInfoManager.getRootId()))){ //TODO 走表 @@ -594,10 +594,11 @@ public class ItemUtil { if (sPlayerLevelConfig == null) { levelUpExp = Integer.MAX_VALUE; } else { - levelUpExp = sPlayerLevelConfig.getExp(); if (curExp >= sPlayerLevelConfig.getExp()) { - sPlayerLevelConfig = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(playerInfoManager.getLevel() - 1); curExp = curExp - sPlayerLevelConfig.getExp(); + playerInfoManager.setLevel(playerInfoManager.getLevel() + 1); + sPlayerLevelConfig = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(playerInfoManager.getLevel()); + levelUpExp = sPlayerLevelConfig.getExp(); } } Repot37EventUtil.onKtEvent(user, Repot37EventUtil.Report37EventType.ROLE_LEVEUP_EVENT);