From 16b7479c8c420ec0f236fc69b4dbcad36df2960e Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 10 Dec 2019 03:48:23 +0800 Subject: [PATCH 01/20] =?UTF-8?q?=E6=97=A0=E5=B0=BD=E8=B5=9B=E5=AD=A3?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=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/handler/map/MapLogic.java | 8 ++++++++ 1 file changed, 8 insertions(+) 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 f23f2cf65..3d769bc33 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 @@ -218,6 +218,8 @@ public class MapLogic { mapManager.endlessWalkCellSave(new HashSet<>()); mapManager.endlessMapInfoSave(new HashMap<>()); }else{ + //切换赛季清除信息 + resetEndlessInfo(); Map endlessMapCellInfo = mapManager.getEndlessMapInfo().getMapInfo(); if(endlessMapCellInfo !=null&&endlessMapCellInfo.size()>0){ mapManager.setMapInfo(endlessMapCellInfo); @@ -1319,6 +1321,9 @@ public class MapLogic { Hero hero = user.getHeroManager().getHero(team.get(i).getHeroId()); Map heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,teamId); int per = (int)(checkResult[i+2] / (double) heroAllAttribute.get(HeroAttributeEnum.Hp.getPropertyId())*10000); + if(checkResult[i+2]>0&&per<=0){ + per = 1; + } mapManager.updateEndlessHeroHp(team.get(i).getHeroId(),per); mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]); } @@ -1574,6 +1579,9 @@ public class MapLogic { Hero hero = user.getHeroManager().getHero(team.get(i).getHeroId()); Map heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,teamId); int per =(int) (checkResult[i+2] / (double) heroAllAttribute.get(HeroAttributeEnum.Hp.getPropertyId())*10000); + if(checkResult[i+2]>0&&per<=0){ + per = 1; + } mapManager.updateEndlessHeroHp(team.get(i).getHeroId(),per); mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]); } From 48abd97de889c93fb0ad14ee1b520a21ba40c0bc Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 10 Dec 2019 04:01:38 +0800 Subject: [PATCH 02/20] =?UTF-8?q?jackson=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamecommon/build.gradle | 2 -- tablemanager/build.gradle | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/gamecommon/build.gradle b/gamecommon/build.gradle index 2ad2b0edb..b84579e37 100644 --- a/gamecommon/build.gradle +++ b/gamecommon/build.gradle @@ -14,8 +14,6 @@ repositories { dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25' - compile("com.fasterxml.jackson.core:jackson-core:2.3.1") - compile("com.fasterxml.jackson.core:jackson-databind:2.3.3") } jar { baseName = 'gamecommon' diff --git a/tablemanager/build.gradle b/tablemanager/build.gradle index a6fcf7c05..949073adc 100644 --- a/tablemanager/build.gradle +++ b/tablemanager/build.gradle @@ -15,8 +15,8 @@ dependencies { compile project(":gamecommon") testCompile group: 'junit', name: 'junit', version: '4.12' compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25' - compile("com.fasterxml.jackson.core:jackson-core:2.3.1") - compile("com.fasterxml.jackson.core:jackson-databind:2.3.3") + compile("com.fasterxml.jackson.core:jackson-core:2.10.1") + compile("com.fasterxml.jackson.core:jackson-databind:2.10.1") } jar { From d786c79bf71163cfec27ed126322056aa87b752b Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 19 Nov 2019 17:58:06 +0800 Subject: [PATCH 03/20] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E6=88=98=E6=88=98?= =?UTF-8?q?=E6=96=97=E6=97=B6=E9=95=BF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/family/GuildFightLogic.java | 4 ++-- tablemanager/src/main/java/config/SGuildSetting.java | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java index 7c7e8163f..5ca877c0f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java @@ -470,12 +470,12 @@ public class GuildFightLogic { LuaValue getOptionData = FightDataUtil.getOptionData(""); int seed = (int) (System.currentTimeMillis() / 1000); CommonProto.FightData fightData = CommonProto.FightData.newBuilder() - .setFightMaxTime(SArenaSetting.getSArenaSetting().getMostTime()) + .setFightMaxTime(SGuildSetting.sGuildSetting.getWarTime()) .setFightSeed(seed) .setHeroFightInfos(fightAttackTeamInfo) .addMonsterList(fightDefendTeamInfo) .build(); - int[] fightResult = CheckFight.getInstance().checkFight(seed, 1000, getFightData, getOptionData, FightType.GuildFight); + int[] fightResult = CheckFight.getInstance().checkFight(seed, SGuildSetting.sGuildSetting.getWarTime(), getFightData, getOptionData, FightType.GuildFight); for (int i = 0; i < fightResult.length; i++) { System.out.println(fightResult[i]); } diff --git a/tablemanager/src/main/java/config/SGuildSetting.java b/tablemanager/src/main/java/config/SGuildSetting.java index 511b0990d..a15a1029e 100644 --- a/tablemanager/src/main/java/config/SGuildSetting.java +++ b/tablemanager/src/main/java/config/SGuildSetting.java @@ -64,6 +64,8 @@ public class SGuildSetting implements BaseConfig { private String participation; + private int warTime; + public static SGuildSetting sGuildSetting; @@ -189,4 +191,8 @@ public class SGuildSetting implements BaseConfig { public String getParticipation() { return participation; } + + public int getWarTime() { + return warTime; + } } \ No newline at end of file From 7d02b7075069d560979af9dc8674230898f23e8b Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 20 Nov 2019 11:59:55 +0800 Subject: [PATCH 04/20] =?UTF-8?q?=E8=A7=A3=E6=95=A3=E5=B7=A5=E4=BC=9A?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/dao/GuilidManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/GuilidManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/GuilidManager.java index 37f33b1c6..668d9e235 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/GuilidManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/GuilidManager.java @@ -90,7 +90,7 @@ public class GuilidManager { String key = RedisUtil.getInstence().getKey("guild-release", ""); while (needContinue){ - Set> zsetreverseRangeWithScores = RedisUtil.getInstence().getZsetreverseRangeWithScores("guild-release", "", round*5, (round+1)*5); + Set> zsetreverseRangeWithScores = RedisUtil.getInstence().getZsetRangeWithScores("guild-release", "", round*5, (round+1)*5); if(zsetreverseRangeWithScores == null || zsetreverseRangeWithScores.isEmpty()){ return; } From d35d4591693e3d4d5529dc43102dd6dc0fbbb992 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Thu, 21 Nov 2019 10:09:40 +0800 Subject: [PATCH 05/20] fix arena mission --- .../mission/data/ArenaChallengeManager.java | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ArenaChallengeManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ArenaChallengeManager.java index f6f369755..422353e1f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ArenaChallengeManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ArenaChallengeManager.java @@ -8,25 +8,26 @@ public class ArenaChallengeManager implements BaseDataManager{ public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) { CumulationData.Result result = null; int fightResult = (int) parm[0]; - if(missionType == MissionType.ARENA_FIGHTSUCCES_TIMES){ - if(fightResult==1){ - data.arenaFightsuccesTimes++; - result = new CumulationData.Result(missionType); - } - } - if(fightResult==-999){ - return result; - } - if(missionType == MissionType.ARENA_CHALLENEGE_NUMS){ - data.setArenaFightNums(data.getArenaFightNums()+1); - result = new CumulationData.Result(missionType); - }else if(missionType == MissionType.ARENA_SCORE){ + if(missionType == MissionType.ARENA_SCORE){ int myscore = (int)parm[1]; if(myscore > data.getArenaScore()){ data.setArenaScore(myscore); result = new CumulationData.Result(missionType); } } + if(fightResult==-999){ + return result; + } + if(missionType == MissionType.ARENA_FIGHTSUCCES_TIMES){ + if(fightResult==1){ + data.arenaFightsuccesTimes++; + result = new CumulationData.Result(missionType); + } + }else if(missionType == MissionType.ARENA_CHALLENEGE_NUMS){ + data.setArenaFightNums(data.getArenaFightNums()+1); + result = new CumulationData.Result(missionType); + } + return result; } From 78c73056313126aa5b40736b51e9b69d441fc15d Mon Sep 17 00:00:00 2001 From: lvxinran Date: Thu, 21 Nov 2019 10:27:17 +0800 Subject: [PATCH 06/20] =?UTF-8?q?=E6=97=A0=E5=B0=BD=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/handler/map/MapLogic.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 3d769bc33..4982544f2 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 @@ -211,6 +211,8 @@ public class MapLogic { } EndlessMapInfo endlessMapInfo = mapManager.getEndlessMapInfo(); if(endlessMapInfo.getSeason()!=endlessSeason){ + //切换赛季清除信息 + resetEndlessInfo(); TimeControllerOfFunction openTimeOfFuntionCacheByType = GlobalDataManaager.getInstance().getOpenTimeOfFuntionCacheByType(FunctionIdEnum.Endless); StoreLogic.initOnsStoereWithTime(user,SEndlessMapConfig.sEndlessMapConfigMap.get(endlessMapId).getMapStoreId(),openTimeOfFuntionCacheByType.getStartTime(),openTimeOfFuntionCacheByType.getEndTime()); mapManager.updateEndlessSeason(endlessSeason); @@ -218,8 +220,6 @@ public class MapLogic { mapManager.endlessWalkCellSave(new HashSet<>()); mapManager.endlessMapInfoSave(new HashMap<>()); }else{ - //切换赛季清除信息 - resetEndlessInfo(); Map endlessMapCellInfo = mapManager.getEndlessMapInfo().getMapInfo(); if(endlessMapCellInfo !=null&&endlessMapCellInfo.size()>0){ mapManager.setMapInfo(endlessMapCellInfo); From 9c337089b43539606291aa16f8c73c0b8d782c66 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Thu, 21 Nov 2019 13:43:48 +0800 Subject: [PATCH 07/20] fix mission --- .../main/java/com/ljsd/jieling/handler/map/MapLogic.java | 2 +- .../java/com/ljsd/jieling/logic/mission/MissionLoigc.java | 8 ++++---- .../jieling/logic/mission/data/FightPlayDataManager.java | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) 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 3d769bc33..a86bcdbec 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 @@ -2252,7 +2252,6 @@ public class MapLogic { }else{ state =2; } - user.getUserMissionManager().onGameEvent(user, GameEvent.STORY_FIGHT, fightId,0,1); Poster.getPoster().dispatchEvent(new FightMainEvent(user.getId(),fightId)); user.getMainLevelManager().updateFight(updateFightId,state); if(state == -1){ @@ -2268,6 +2267,7 @@ public class MapLogic { user.getMainLevelManager().removeFightStateInfo(removeId); } } + user.getUserMissionManager().onGameEvent(user, GameEvent.STORY_FIGHT, fightId,0,1); } public void getMainLevelInfo(ISession session) throws Exception { 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 f40e369ba..fac851bb9 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 @@ -444,10 +444,10 @@ public class MissionLoigc { case LEVEL_STORY_PASS: if(SMainLevelConfig.config.containsKey(missionSubType[0])){ int virtureId = SMainLevelConfig.config.get(missionSubType[0]).getVirtureId(); - SMainLevelConfig mineMainLevelConfig = SMainLevelConfig.config.get(user.getMainLevelManager().getFightId()); - if(user.getMainLevelManager().getState() == -1 ){ - int fightId = user.getMainLevelManager().getFightId(); - mineMainLevelConfig = SMainLevelConfig.fightPreMap.get(fightId); + int fightId = user.getMainLevelManager().getFightId(); + SMainLevelConfig mineMainLevelConfig = SMainLevelConfig.fightPreMap.get(fightId); + if(user.getMainLevelManager().getState() == 2 ){ + mineMainLevelConfig = SMainLevelConfig.config.get(user.getMainLevelManager().getFightId()); } if(mineMainLevelConfig!=null){ count =virtureId <= mineMainLevelConfig.getVirtureId() ?1:0; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/FightPlayDataManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/FightPlayDataManager.java index 2fa92c5a7..85a36dd1f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/FightPlayDataManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/FightPlayDataManager.java @@ -7,7 +7,7 @@ public class FightPlayDataManager implements BaseDataManager{ @Override public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) { int type = (int)parm[0]; - if(type == 3 && (missionType == MissionType.HERO_STORY_PLAY_TIMES || missionType == MissionType.HERO_STORY_TIMES)){ + if(type == 3 && (missionType == MissionType.HERO_STORY_PLAY_TIMES)){ data.heroStoryPlayTimes+=(int)parm[1]; }else if(type == 999 && missionType == MissionType.INVASIONBOSS_PLAY_TIMES){ data.invasionbossPlayTimes+=(int)parm[1]; From 56338b360f2c2958e9e533d824a1925f15f74ace Mon Sep 17 00:00:00 2001 From: wangyuan Date: Thu, 21 Nov 2019 16:14:45 +0800 Subject: [PATCH 08/20] reconnect endlessmap --- .../ljsd/jieling/handler/map/MapLogic.java | 24 ++++++++++++------- .../network/server/ProtocolsManager.java | 4 ++++ 2 files changed, 20 insertions(+), 8 deletions(-) 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 e8f93af2e..b51caf74a 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 @@ -3258,17 +3258,21 @@ public class MapLogic { Map onlineUserMap = OnlineUserManager.sessionMap; for(Map.Entry entry:onlineUserMap.entrySet()){ - User user = UserManager.getUser(entry.getValue().getUid()); - MapManager mapManager = user.getMapManager(); - mapManager.setEndlessMapInfo(new EndlessMapInfo()); - if(mapManager.getCurMapId()!=0&&SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){ - MessageUtil.sendIndicationMessage(entry.getValue(),1,MessageTypeProto.MessageType.MAP_OUT_INDICATION_VALUE,null,true); - resetMapInfo(user,false); - } - + endLessClear(entry.getValue()); } updateEndlessSeason(0); } + + public void endLessClear(ISession session) throws Exception { + User user = UserManager.getUser(session.getUid()); + MapManager mapManager = user.getMapManager(); + mapManager.setEndlessMapInfo(new EndlessMapInfo()); + if(mapManager.getCurMapId()!=0&&SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){ + MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.MAP_OUT_INDICATION_VALUE,null,true); + resetMapInfo(user,false); + } + } + public void clearEndlessItem(User user) throws Exception { SEndlessMapConfig config = SEndlessMapConfig.sEndlessMapConfigMap.get(MapLogic.getEndlessMapId()); int[] mapItem = config.getMapItem(); @@ -3345,4 +3349,8 @@ public class MapLogic { UserManager.getUser(session.getUid()).getMapManager().updateEndlessSkipFight(type); MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); } + + public static int getEndlessSeason() { + return endlessSeason; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java b/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java index 071813477..a74d00a2a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java @@ -10,6 +10,7 @@ import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.ktbeans.KtEventUtils; import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean; import com.ljsd.jieling.logic.GlobalDataManaager; @@ -299,6 +300,9 @@ public class ProtocolsManager implements ProtocolsAbstract { PlayerInfoProto.UpdateBagIndication build = PlayerInfoProto.UpdateBagIndication.newBuilder().addAllItem(allItemList).setType(0).build(); MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.UPDATE_BAG_INDICATION_VALUE,build,true); } + if(userInMem.getMapManager().getEndlessMapInfo().getSeason()!=MapLogic.getEndlessSeason()){ + MapLogic.getInstance().endLessClear(session); + } MongoUtil.getLjsdMongoTemplate().lastUpdate(); } catch (Exception e) { LOGGER.error("the uid={} processFlush wrong ,e={}",session.getUid(),e); From db8aeac335ad356dd480a8fbe616dc2874f581a4 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Fri, 22 Nov 2019 16:39:54 +0800 Subject: [PATCH 09/20] =?UTF-8?q?=E5=85=83=E7=B4=A0=E6=8B=9B=E5=8B=9F=20&?= =?UTF-8?q?=20=E6=96=B0=E6=B4=BB=E5=8A=A8=EF=BC=88=E6=96=B0=E6=89=8B?= =?UTF-8?q?=E7=A6=8F=E5=88=A9=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../clazzStaticCfg/HeroStaticConfig.java | 8 ++ .../ljsd/jieling/handler/map/MapLogic.java | 5 +- .../jieling/logic/activity/ActivityLogic.java | 4 + .../jieling/logic/activity/ActivityType.java | 2 + .../logic/activity/ActivityTypeEnum.java | 2 + .../logic/activity/NewWelfareActivity.java | 110 ++++++++++++++++++ .../logic/activity/event/NewWelfareEvent.java | 25 ++++ .../activity/event/NewWelfareTypeEnum.java | 17 +++ .../ljsd/jieling/logic/dao/HeroManager.java | 12 ++ .../ljsd/jieling/logic/hero/HeroLogic.java | 35 +++++- .../jieling/logic/store/BuyGoodsLogic.java | 5 + .../java/config/SLotteryRewardConfig.java | 6 + .../src/main/java/config/SLotterySetting.java | 6 + .../java/config/SLotterySpecialConfig.java | 7 +- 14 files changed, 235 insertions(+), 9 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewWelfareActivity.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareEvent.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareTypeEnum.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/HeroStaticConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/HeroStaticConfig.java index 5cc7699af..56242b6b7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/HeroStaticConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/HeroStaticConfig.java @@ -20,6 +20,7 @@ public class HeroStaticConfig extends AbstractClassStaticConfig { private Map>> scHeroRankUpConfigByType; private Set randomHeroIds; + private Map randomPoolByType; @Override public void registConfigs(Set registConfigs) { @@ -75,12 +76,15 @@ public class HeroStaticConfig extends AbstractClassStaticConfig { try { Set randomHeroIdTmp = new HashSet<>(); Map config = STableManager.getConfig(SLotterySetting.class); + Map randomPoolByType = new HashMap<>(); for(SLotterySetting sLotterySetting : config.values()){ if(sLotterySetting.getLotteryType() == GlobalsDef.RANDOM_LOTTERY_TYPE){ randomHeroIdTmp.add(sLotterySetting.getId()); } + randomPoolByType.put(sLotterySetting.getId(),sLotterySetting.getMergePool()); } randomHeroIds = randomHeroIdTmp; + randomPoolByType = randomPoolByType; } catch (Exception e) { LOGGER.error("SLotterySetting init fail"); } @@ -97,4 +101,8 @@ public class HeroStaticConfig extends AbstractClassStaticConfig { public Set getRandomHeroIds() { return randomHeroIds; } + + public Map getRandomPoolByType() { + return randomPoolByType; + } } 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 b51caf74a..0a12bc58d 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 @@ -21,9 +21,7 @@ import com.ljsd.jieling.ktbeans.KtEventUtils; import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean; import com.ljsd.jieling.logic.GlobalDataManaager; import com.ljsd.jieling.logic.OnlineUserManager; -import com.ljsd.jieling.logic.activity.event.FightMainEvent; -import com.ljsd.jieling.logic.activity.event.Poster; -import com.ljsd.jieling.logic.activity.event.StoryEvent; +import com.ljsd.jieling.logic.activity.event.*; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.fight.CheckFight; @@ -2248,6 +2246,7 @@ public class MapLogic { state =2; } Poster.getPoster().dispatchEvent(new FightMainEvent(user.getId(),fightId)); + Poster.getPoster().dispatchEvent(new NewWelfareEvent(user.getId(), NewWelfareTypeEnum.LEVEL_FIGHT.getType(),fightId)); user.getMainLevelManager().updateFight(updateFightId,state); if(state == -1){ //删除为0的 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 84d100a94..68777bdfc 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 @@ -10,6 +10,9 @@ import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.handler.activity.BlessInfoConfig; import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.activity.event.NewWelfareEvent; +import com.ljsd.jieling.logic.activity.event.NewWelfareTypeEnum; +import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mission.GameEvent; @@ -61,6 +64,7 @@ public class ActivityLogic { ActivityLogic.getInstance().resumeActivity(user, ActivityType.RECHARGE_SUM_DAY); user.getPlayerInfoManager().setRechargedaily(0); updateActivityMissionProgress(user, ActivityType.SevenLogin, 1); + Poster.getPoster().dispatchEvent(new NewWelfareEvent(user.getId(), NewWelfareTypeEnum.LOGIN_TIMES.getType(),1)); //幸运转盘活动刷新 ActivityLogic.getInstance().resumeActivity(user, ActivityType.LUCK_WHEEL); 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 d1dc3be3a..1eecc521f 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 @@ -46,6 +46,8 @@ public interface ActivityType { int ESPECIALEQUIP_EXPERT = 37;//法宝达人 int SOULEQUIP_EXPERT = 38;//魂印达人 + int NEW_WELFARE = 42;//萌新福利 + } 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 8936384dd..db61e24a1 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 @@ -1,5 +1,6 @@ package com.ljsd.jieling.logic.activity; +import com.ljsd.jieling.logic.activity.event.NewWelfareTypeEnum; import config.SGlobalActivity; import java.util.HashMap; @@ -35,6 +36,7 @@ public enum ActivityTypeEnum { SOULEQUIP_EXPERT(ActivityType.SOULEQUIP_EXPERT, SoulEquipExpectActivity::new), LUCK_WHEEL(ActivityType.LUCK_WHEEL, LuckWheelNormalActivity::new), LUCK_WHEEL_ADVANCE(ActivityType.LUCK_WHEEL_ADVANCE, LuckWheelAdvancedActivity::new), + NEW_WELFARE(ActivityType.NEW_WELFARE, NewWelfareActivity::new), ; private int type; private Function toActivityFunction; 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 new file mode 100644 index 000000000..ba1fbbd97 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewWelfareActivity.java @@ -0,0 +1,110 @@ +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.ktbeans.KtEventUtils; +import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean; +import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.activity.event.*; +import com.ljsd.jieling.logic.dao.ActivityMission; +import com.ljsd.jieling.logic.dao.ActivityProgressInfo; +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.protocols.CommonProto; +import com.ljsd.jieling.protocols.PlayerInfoProto; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; +import config.SActivityRewardConfig; +import config.SGlobalActivity; + +import java.util.List; +import java.util.Map; + +public class NewWelfareActivity extends AbstractActivity { + + private int loginTimes;//登陆次数 + public NewWelfareActivity(int id) { + super(id); + Poster.getPoster().listenEvent(this, NewWelfareEvent.class); + } + + @Override + public void onEvent(IEvent event) throws Exception { + if(! (event instanceof NewWelfareEvent) ){ + return; + } + NewWelfareEvent newWelfareEvent = (NewWelfareEvent) event; + User user = UserManager.getUser(newWelfareEvent.getUid()); + ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); + List sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); + Map activityProgressInfoMap = activityMission.getActivityProgressInfoMap(); + boolean isUpdate = false; + for(SActivityRewardConfig sActivityRewardConfig : sActivityRewardConfigs){ + ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.get(sActivityRewardConfig.getId()); + if(activityProgressInfo.getState() == 1){ + continue; + } + if(sActivityRewardConfig.getValues()[0][0] == newWelfareEvent.getType() ){ + int parm = newWelfareEvent.getParm(); + if( newWelfareEvent.getType() == NewWelfareTypeEnum.LOGIN_TIMES.getType()){ + activityProgressInfo.setProgrss(activityProgressInfo.getProgrss()+1); + parm=activityProgressInfo.getProgrss(); + } + if(parm ==sActivityRewardConfig.getValues()[1][0]){ + activityProgressInfo.setState(1); + activityMission.updateProgressInfo(sActivityRewardConfig.getId(), activityProgressInfo); + isUpdate = true; + } + } + } + if(isUpdate){ + //更新进度 + ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); + sendActivityProgress(sessionByUid, activityMission, null); + } + } + + @Override + public boolean takeReward(ISession session, int missionId) throws Exception { + User user = UserManager.getUser(session.getUid()); + SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); + if (sGlobalActivity == null || !user.getActivityManager().getActivityMissionMap().containsKey(id)) { + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); + Map activityProgressInfoMap = activityMission.getActivityProgressInfoMap(); + for(ActivityProgressInfo activityProgressInfo : activityProgressInfoMap.values()){ + if(activityProgressInfo.getState() != 1){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + } + for(ActivityProgressInfo activityProgressInfo : activityProgressInfoMap.values()){ + activityProgressInfo.setState(2); + } + List sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); + CommonProto.Drop.Builder drop = ItemUtil.drop(user, sActivityRewardConfigs.get(0).getReward(), BIReason.TAKE_ACTIVITY_REWARD); + KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, id, missionId); + PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); + MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); + return true; + } + + @Override + public void getAllMissRewards(User user, ISession session, List itemAttrs){ + SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); + if (sGlobalActivity == null || !user.getActivityManager().getActivityMissionMap().containsKey(id)) { + return; + } + ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); + Map activityProgressInfoMap = activityMission.getActivityProgressInfoMap(); + for(ActivityProgressInfo activityProgressInfo : activityProgressInfoMap.values()){ + if(activityProgressInfo.getState() != 1){ + return; + } + } + List sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); + itemAttrs.add(sActivityRewardConfigs.get(0).getValues()); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareEvent.java new file mode 100644 index 000000000..1077e6a75 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareEvent.java @@ -0,0 +1,25 @@ +package com.ljsd.jieling.logic.activity.event; + +public class NewWelfareEvent implements IEvent{ + private int uid; + private int type; + private int parm; + + public NewWelfareEvent(int uid, int type, int parm) { + this.uid = uid; + this.type = type; + this.parm = parm; + } + + public int getUid() { + return uid; + } + + public int getType() { + return type; + } + + public int getParm() { + return parm; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareTypeEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareTypeEnum.java new file mode 100644 index 000000000..052d18dec --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareTypeEnum.java @@ -0,0 +1,17 @@ +package com.ljsd.jieling.logic.activity.event; + +public enum NewWelfareTypeEnum { + LEVEL_FIGHT(1), + LOGIN_TIMES(2), + RECHARGE_BUY(3) + ; + + private int type; + private NewWelfareTypeEnum(int type) { + this.type = type; + } + + public int getType() { + return type; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java index 8dddf5543..3b67022d0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java @@ -15,6 +15,8 @@ public class HeroManager extends MongoBase { Map totalCount; + Map randomPoolByType; + Map heroHandBook; private int firstTenth; @@ -24,6 +26,7 @@ public class HeroManager extends MongoBase { heroMap = new HashMap(); totalCount = new HashMap(); heroHandBook = new HashMap<>(); + randomPoolByType = new HashMap<>(); this.setRootCollection(User._COLLECTION_NAME); } @@ -32,6 +35,11 @@ public class HeroManager extends MongoBase { totalCount.put(type,count); } + public void updateRandPoolTypeCount(int mergePool,int count){ + updateString("randomPoolByType." + mergePool, count); + randomPoolByType.put(mergePool,count); + } + public Map getItemMap() { return heroMap; } @@ -89,4 +97,8 @@ public class HeroManager extends MongoBase { updateString("firstTenth" , 1); } + + public Map getRandomPoolByType() { + return randomPoolByType; + } } 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 164678142..c70ea0674 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 @@ -217,10 +217,15 @@ public class HeroLogic { } int[][] dropHeroAndItem = new int[length][]; int randCount = 0; + int poolCount = 0; Map totalCountMap = heroManager.getTotalCount(); + Map randomPoolByType = heroManager.getRandomPoolByType(); if (totalCountMap.containsKey(type)) { randCount = totalCountMap.get(type); } + if (randomPoolByType.containsKey(sLotterySetting.getMergePool())) { + poolCount = randomPoolByType.get(sLotterySetting.getMergePool()); + } int totalCount = 0; for(Integer count : totalCountMap.values()){ totalCount+=count; @@ -230,14 +235,20 @@ public class HeroLogic { for(int i=0;i list = SLotterySpecialConfig.getLotterySpecialConfigListByType(type); if (list == null) { return 0; } int poolId = 0; for (SLotterySpecialConfig data : list) { + if(data.getDifferentType() == 2 && poolCount==data.getCount()){ + poolId = data.getpool_id(); + break; + } if (randCount % data.getCount() != 0) { continue; } @@ -333,7 +349,7 @@ public class HeroLogic { - public int[] randomHeroByPoolId(int poolId,int randomCount,int userLevel){ + public SLotteryRewardConfig randomHeroByPoolId(int poolId,int randomCount,int userLevel){ List sLotteryRewardConfigs = new ArrayList<>(); List sLotteryRewardConfigListByPoolId = SLotteryRewardConfig.getSLotteryRewardConfigListByPoolId(poolId); int totalCountByPoolId =0; @@ -363,7 +379,7 @@ public class HeroLogic { for(SLotteryRewardConfig sLotteryRewardConfig :sLotteryRewardConfigs){ weight += sLotteryRewardConfig.getWeight(); if(weight>=randCount){ - return sLotteryRewardConfig.getReward(); + return sLotteryRewardConfig; } } return null; @@ -2082,5 +2098,14 @@ public class HeroLogic { } hero.setIsLock(lockState); MessageUtil.sendMessage(session,1,responseMsgId,null,true); + + Map pokemonAttributeMap = new HashMap<>(); + Map pokemonMap = user.getPokemonManager().getPokemonMap(); + for(Pokemon pokemon : pokemonMap.values()){ + combinePokemonAttribute(pokemonAttributeMap, pokemon,false); + } + for(Map.Entry item : pokemonAttributeMap.entrySet()){ + LOGGER.info("the proId={},the value={}",item.getKey(),item.getValue()); + } } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java index 9e93dbeff..df676079b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java @@ -11,6 +11,10 @@ import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean; import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.activity.ActivityLogic; import com.ljsd.jieling.logic.activity.ActivityType; +import com.ljsd.jieling.logic.activity.event.NewWelfareEvent; +import com.ljsd.jieling.logic.activity.event.NewWelfareTypeEnum; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.activity.event.SecretEvent; import com.ljsd.jieling.logic.dao.RechargeInfo; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; @@ -206,6 +210,7 @@ public class BuyGoodsLogic { KtEventUtils.onKtEvent(user, ParamEventBean.UserPayEvent,goodsId,orderId,resultRes.getResultCode(),price); notifyPaySuccessFul(uid,goodsId,amount != -999); MongoUtil.getLjsdMongoTemplate().lastUpdate(); + Poster.getPoster().dispatchEvent(new NewWelfareEvent(user.getId(), NewWelfareTypeEnum.RECHARGE_BUY.getType(),goodsId)); return resultRes; } diff --git a/tablemanager/src/main/java/config/SLotteryRewardConfig.java b/tablemanager/src/main/java/config/SLotteryRewardConfig.java index 0fa8e5a94..667be6c48 100644 --- a/tablemanager/src/main/java/config/SLotteryRewardConfig.java +++ b/tablemanager/src/main/java/config/SLotteryRewardConfig.java @@ -23,6 +23,8 @@ public class SLotteryRewardConfig implements BaseConfig { private int[] openRules; + private int star; + private static Map> sLotteryRewardConfigsByPoolId; private static Map sLotteryRewardWeightByPoolId; @@ -82,4 +84,8 @@ public class SLotteryRewardConfig implements BaseConfig { public int[] getOpenRules() { return openRules; } + + public int getStar() { + return star; + } } \ No newline at end of file diff --git a/tablemanager/src/main/java/config/SLotterySetting.java b/tablemanager/src/main/java/config/SLotterySetting.java index edb08235d..75bc77670 100644 --- a/tablemanager/src/main/java/config/SLotterySetting.java +++ b/tablemanager/src/main/java/config/SLotterySetting.java @@ -31,6 +31,8 @@ public class SLotterySetting implements BaseConfig { private int lotteryType; + private int mergePool; + @Override public void init() throws Exception { @@ -89,4 +91,8 @@ public class SLotterySetting implements BaseConfig { public int getLotteryType() { return lotteryType; } + + public int getMergePool() { + return mergePool; + } } \ No newline at end of file diff --git a/tablemanager/src/main/java/config/SLotterySpecialConfig.java b/tablemanager/src/main/java/config/SLotterySpecialConfig.java index 735613eac..cbe99aeaa 100644 --- a/tablemanager/src/main/java/config/SLotterySpecialConfig.java +++ b/tablemanager/src/main/java/config/SLotterySpecialConfig.java @@ -13,6 +13,8 @@ public class SLotterySpecialConfig implements BaseConfig { private int id; + private int differentType; + private int type; private int count; @@ -23,6 +25,7 @@ public class SLotterySpecialConfig implements BaseConfig { private int pool_id; + private static Map> lotterySpecialConfigMap; @@ -68,5 +71,7 @@ public class SLotterySpecialConfig implements BaseConfig { return pool_id; } - + public int getDifferentType() { + return differentType; + } } \ No newline at end of file From 28efc91bc91af1e4d91dee7383c27df6bba9c43a Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 17 Dec 2019 00:00:51 +0800 Subject: [PATCH 10/20] =?UTF-8?q?=E6=97=A0=E5=B0=BD=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/map/MapLogic.java | 43 +++++++++---------- 1 file changed, 21 insertions(+), 22 deletions(-) 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 50bf992cd..e8f93af2e 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 @@ -200,7 +200,6 @@ public class MapLogic { mapEnterResponse.setCurXY(mapManager.getCurXY()); } - if(type ==4){ mapEnterResponse.setCurXY(mapManager.getCurXY()); List teamPosForHero = user.getTeamPosManager().getTeamPosForHero().get(teamId); @@ -212,7 +211,7 @@ public class MapLogic { EndlessMapInfo endlessMapInfo = mapManager.getEndlessMapInfo(); if(endlessMapInfo.getSeason()!=endlessSeason){ //切换赛季清除信息 - resetEndlessInfo(); + clearEndlessItem(user); TimeControllerOfFunction openTimeOfFuntionCacheByType = GlobalDataManaager.getInstance().getOpenTimeOfFuntionCacheByType(FunctionIdEnum.Endless); StoreLogic.initOnsStoereWithTime(user,SEndlessMapConfig.sEndlessMapConfigMap.get(endlessMapId).getMapStoreId(),openTimeOfFuntionCacheByType.getStartTime(),openTimeOfFuntionCacheByType.getEndTime()); mapManager.updateEndlessSeason(endlessSeason); @@ -1124,10 +1123,6 @@ public class MapLogic { onlyLevelMap(user, false); } if(user.getMapManager().getCurMapId()!=0&&SChallengeConfig.sChallengeConfigs.get(user.getMapManager().getCurMapId()).getType()==4){ - if(endlessSeason==0){ - onlyLevelMap(user,false); - user.getMapManager().setEndlessMapInfo(new EndlessMapInfo()); - } if(user.getMapManager().getEndlessMapInfo().getSeason()!=endlessSeason){ onlyLevelMap(user,false); user.getMapManager().setEndlessMapInfo(new EndlessMapInfo()); @@ -3261,8 +3256,7 @@ public class MapLogic { */ public void resetEndlessInfo() throws Exception { Map onlineUserMap = OnlineUserManager.sessionMap; - SEndlessMapConfig config = SEndlessMapConfig.sEndlessMapConfigMap.get(MapLogic.getEndlessMapId()); - int[] mapItem = config.getMapItem(); + for(Map.Entry entry:onlineUserMap.entrySet()){ User user = UserManager.getUser(entry.getValue().getUid()); MapManager mapManager = user.getMapManager(); @@ -3271,23 +3265,28 @@ public class MapLogic { MessageUtil.sendIndicationMessage(entry.getValue(),1,MessageTypeProto.MessageType.MAP_OUT_INDICATION_VALUE,null,true); resetMapInfo(user,false); } - ItemManager itemManager = user.getItemManager(); - int [][] costItem = new int[mapItem.length][2]; - for(int i = 0 ; i Date: Tue, 17 Dec 2019 00:40:38 +0800 Subject: [PATCH 11/20] =?UTF-8?q?=E5=BC=BA=E5=88=B6=E9=80=80=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/handler/map/MapLogic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 e8f93af2e..95d6e802b 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 @@ -3263,7 +3263,7 @@ public class MapLogic { mapManager.setEndlessMapInfo(new EndlessMapInfo()); if(mapManager.getCurMapId()!=0&&SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){ MessageUtil.sendIndicationMessage(entry.getValue(),1,MessageTypeProto.MessageType.MAP_OUT_INDICATION_VALUE,null,true); - resetMapInfo(user,false); +// resetMapInfo(user,false); } } From 88e1a592896dc79e04cdb3537ce38063ddb572b1 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 17 Dec 2019 00:43:21 +0800 Subject: [PATCH 12/20] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=80=E5=87=BA?= =?UTF-8?q?=E5=9C=B0=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/handler/map/MapLogic.java | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) 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 38ad57791..94d17e336 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 @@ -3258,13 +3258,6 @@ public class MapLogic { Map onlineUserMap = OnlineUserManager.sessionMap; for(Map.Entry entry:onlineUserMap.entrySet()){ - User user = UserManager.getUser(entry.getValue().getUid()); - MapManager mapManager = user.getMapManager(); - mapManager.setEndlessMapInfo(new EndlessMapInfo()); - if(mapManager.getCurMapId()!=0&&SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){ - MessageUtil.sendIndicationMessage(entry.getValue(),1,MessageTypeProto.MessageType.MAP_OUT_INDICATION_VALUE,null,true); -// resetMapInfo(user,false); - } endLessClear(entry.getValue()); } updateEndlessSeason(0); @@ -3276,7 +3269,7 @@ public class MapLogic { mapManager.setEndlessMapInfo(new EndlessMapInfo()); if(mapManager.getCurMapId()!=0&&SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){ MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.MAP_OUT_INDICATION_VALUE,null,true); - resetMapInfo(user,false); +// resetMapInfo(user,false); } } From 460a9ad41aa5c5f8b7913bc862386853cd0e3b9e Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 17 Dec 2019 21:56:30 +0800 Subject: [PATCH 13/20] =?UTF-8?q?=E8=AF=95=E7=82=BC=E6=9C=AC=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/map/behavior/FourtyTwoBehavior.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyTwoBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyTwoBehavior.java index 7b3c1e2f1..70da6151f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyTwoBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyTwoBehavior.java @@ -56,7 +56,8 @@ public class FourtyTwoBehavior extends BaseBehavior { mapManager.setStartExporeTime(0); mapManager.setMapIntoFlag(2); - + STrialConfig sTrialConfig = STrialConfig.sTrialConfigMap.get(mapManager.getTower()); + mapManager.setCurMapId(sTrialConfig.getMapId()); MapLogic.getInstance().initTrialMap(mapManager, user); return true; } From b00ab56b99120328244e3660312781d27e1af3cd Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 17 Dec 2019 22:15:06 +0800 Subject: [PATCH 14/20] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E6=94=B9=E5=90=8D?= =?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 ++ .../family/FamilyChangeNoticHandler.java | 8 ++--- .../jieling/logic/dao/root/GuildInfo.java | 8 +++++ .../ljsd/jieling/logic/family/GuildLogic.java | 32 +++++++++++++------ .../src/main/java/config/SGuildSetting.java | 6 ++++ 5 files changed, 42 insertions(+), 14 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 b2dcc1893..32588e33c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -177,5 +177,7 @@ public interface BIReason { int TREASURE_RESET_CONCUME = 1044;//孙龙宝藏重置删除积分 + int FAMILY_RENAME = 1045;//公会改名 + } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyChangeNoticHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyChangeNoticHandler.java index 3b70642f0..459040ca9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyChangeNoticHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyChangeNoticHandler.java @@ -9,16 +9,14 @@ import com.ljsd.jieling.protocols.MessageTypeProto; import org.springframework.stereotype.Component; @Component -public class FamilyChangeNoticHandler extends BaseHandler { +public class FamilyChangeNoticHandler extends BaseHandler { @Override public MessageTypeProto.MessageType getMessageCode() { return MessageTypeProto.MessageType.FAMILY_CHANGE_NOTICE_REQUEST; } @Override - public void process(ISession iSession, PacketNetData netData) throws Exception { - byte[] bytes = netData.parseClientProtoNetData(); - Family.FamilyChangeRequest familyChangeRequest = Family.FamilyChangeRequest.parseFrom(bytes); - GuildLogic.changeNotice(iSession,familyChangeRequest.getContent()); + public void processWithProto(ISession iSession, Family.FamilyChangeRequest proto) throws Exception { + GuildLogic.changeNotice(iSession,proto.getType(),proto.getContent()); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/GuildInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/GuildInfo.java index 9b7884838..b6a2b7157 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/GuildInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/GuildInfo.java @@ -92,6 +92,8 @@ public class GuildInfo extends MongoBase { public void setAnnounce(String announce) { this.announce = announce; + updateString("announce",announce); + } public int getId() { @@ -102,6 +104,12 @@ public class GuildInfo extends MongoBase { return name; } + public void setName(String name) { + this.name = name; + updateString("name",name); + + } + public String getAnnounce() { return announce; } 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 3ed146e25..5d8b1a6e1 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 @@ -91,6 +91,13 @@ public class GuildLogic { if(!"".equals(err)){ throw new ErrorCodeException(ErrorCode.newDefineCode(err)); } + boolean enough= ItemUtil.itemCost(user, SGuildSetting.sGuildSetting.getCreatCost(), BIReason.CREATE_GUILD_CONSUME, 0); + if(!enough){ + throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); + } + if(user.getPlayerInfoManager().getGuildId()!=0){ + throw new ErrorCodeException(ErrorCode.FAMILY_IN); + } if(StringUtil.isEmpty(announce)){ announce= SGuildSetting.sGuildSetting.getDefaultDeclaration(); } @@ -134,13 +141,7 @@ public class GuildLogic { return "此名已存在"; } } - boolean enough= ItemUtil.itemCost(user, SGuildSetting.sGuildSetting.getCreatCost(), BIReason.CREATE_GUILD_CONSUME, 0); - if(!enough){ - throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); - } - if(user.getPlayerInfoManager().getGuildId()!=0){ - throw new ErrorCodeException(ErrorCode.FAMILY_IN); - } + return ""; } @@ -654,7 +655,7 @@ public class GuildLogic { * @param session * @param content */ - public static void changeNotice(ISession session,String content) throws Exception { + public static void changeNotice(ISession session,int type,String content) throws Exception { int msgId = MessageTypeProto.MessageType.FAMILY_CHANGE_NOTICE_RESPONSE_VALUE; int uid = session.getUid(); User user = UserManager.getUser(uid); @@ -683,7 +684,20 @@ public class GuildLogic { if(resultCode==0){ throw new ErrorCodeException(ErrorCode.FAMILY_IN_SENSITIVE); }else{ - guildInfo.setAnnounce(content); + if(type==1){ + guildInfo.setAnnounce(content); + }else{ + String checkResult = checkForCreateGuild(user, content, guildInfo.getAnnounce()); + if(!"".equals(checkResult)){ + throw new ErrorCodeException(ErrorCode.newDefineCode(checkResult)); + } + int[][] renameCost = SGuildSetting.sGuildSetting.getRenameCost(); + boolean b = ItemUtil.itemCost(user, renameCost, BIReason.FAMILY_RENAME, 1); + if(!b){ + throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); + } + guildInfo.setName(content); + } MessageUtil.sendMessage(session,resultCode,msgId,response,true); } } diff --git a/tablemanager/src/main/java/config/SGuildSetting.java b/tablemanager/src/main/java/config/SGuildSetting.java index a15a1029e..a0ef361be 100644 --- a/tablemanager/src/main/java/config/SGuildSetting.java +++ b/tablemanager/src/main/java/config/SGuildSetting.java @@ -66,6 +66,8 @@ public class SGuildSetting implements BaseConfig { private int warTime; + private int[][] renameCost; + public static SGuildSetting sGuildSetting; @@ -195,4 +197,8 @@ public class SGuildSetting implements BaseConfig { public int getWarTime() { return warTime; } + + public int[][] getRenameCost() { + return renameCost; + } } \ No newline at end of file From 183c32a12ac4814d5b2b671877f1cf48f2e5b73c Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 18 Dec 2019 00:40:42 +0800 Subject: [PATCH 15/20] =?UTF-8?q?=E5=B7=A5=E4=BC=9A=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=90=8D=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/exception/ErrorCode.java | 6 ++++- .../ljsd/jieling/logic/family/GuildLogic.java | 24 +++++++------------ 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java b/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java index 81d36f183..8feb3d9c7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java @@ -139,7 +139,11 @@ public enum ErrorCode implements IErrorCode { MAP_IN(105,"在地图探索中,不可以操作"), HERO_LIVE_AGAIN(106,"英雄{0}秒后复活"), REWARD_COLLECTING(107,"奖励正在积攒中!"), - IN_BLACK(108,"对方已被您加入黑名单,无法添加好友") + IN_BLACK(108,"对方已被您加入黑名单,无法添加好友"), + NULL_NAME(109,"名字不能为空"), + NAME_LENGTH_ERROR(110,"公会名长度不符"), + EXIST_NAME(111,"此名已存在"); + ; private static final Set CodeSet = new HashSet<>(); 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 5d8b1a6e1..42c8dc112 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 @@ -87,10 +87,7 @@ public class GuildLogic { int uid = session.getUid(); User user = UserManager.getUser(uid); int msgId = MessageTypeProto.MessageType.FAMILY_CREATE_RESPONSE_VALUE; - String err = checkForCreateGuild(user, familyName, announce); - if(!"".equals(err)){ - throw new ErrorCodeException(ErrorCode.newDefineCode(err)); - } + checkForCreateGuild(user, familyName, announce); boolean enough= ItemUtil.itemCost(user, SGuildSetting.sGuildSetting.getCreatCost(), BIReason.CREATE_GUILD_CONSUME, 0); if(!enough){ throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); @@ -118,31 +115,29 @@ public class GuildLogic { MessageUtil.sendMessage(session,1,msgId,build,true); } - public static String checkForCreateGuild( User user,String familyName,String announce) throws Exception { + public static void checkForCreateGuild( User user,String familyName,String announce) throws Exception { if(!Repot37EventUtil.Report37Chat(user, ChatContentType.FAMILY_NAME.getType(),announce)){ - return "包含敏感字"; + throw new ErrorCodeException(ErrorCode.FAMILY_IN_SENSITIVE); } if(StringUtil.isEmpty(familyName)){ - return "名字不能为空"; + throw new ErrorCodeException(ErrorCode.NULL_NAME); } boolean result = true; if(!StringUtil.isEmpty(announce)){ result = ShieldedWordUtils.checkName(user,announce,false,ChatContentType.FAMILY_NAME); if (!result) { - return "包含敏感字"; + throw new ErrorCodeException(ErrorCode.FAMILY_IN_SENSITIVE); } } if(familyName.length()SGuildSetting.sGuildSetting.getNameSize()[1]){ - return "公会名长度不符"; + throw new ErrorCodeException(ErrorCode.NAME_LENGTH_ERROR); } Map guildInfoMap = GuilidManager.guildInfoMap; for(Map.Entry entry:guildInfoMap.entrySet()){ if(entry.getValue().getName().equals(familyName)){ - return "此名已存在"; + throw new ErrorCodeException(ErrorCode.EXIST_NAME); } } - - return ""; } @@ -687,10 +682,7 @@ public class GuildLogic { if(type==1){ guildInfo.setAnnounce(content); }else{ - String checkResult = checkForCreateGuild(user, content, guildInfo.getAnnounce()); - if(!"".equals(checkResult)){ - throw new ErrorCodeException(ErrorCode.newDefineCode(checkResult)); - } + checkForCreateGuild(user, content, guildInfo.getAnnounce()); int[][] renameCost = SGuildSetting.sGuildSetting.getRenameCost(); boolean b = ItemUtil.itemCost(user, renameCost, BIReason.FAMILY_RENAME, 1); if(!b){ From 11c188938e64dac67821d95d70d21ff731e7000e Mon Sep 17 00:00:00 2001 From: lvxinran Date: Fri, 22 Nov 2019 17:32:58 +0800 Subject: [PATCH 16/20] =?UTF-8?q?=E7=A9=BA=E7=89=A9=E5=93=81=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/store/BuyGoodsLogic.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java index df676079b..8b2754304 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java @@ -170,11 +170,12 @@ public class BuyGoodsLogic { } if(sRechargeCommodityConfig.getAccumulativeRecharge() == 1){ int saveAmt = rechargeInfo.getSaveAmt(); - - int[][] costItemArr = StringUtil.parseFiledInt2(rewardStr); - for (int i = 0; i Date: Fri, 22 Nov 2019 19:10:13 +0800 Subject: [PATCH 17/20] =?UTF-8?q?=E5=85=85=E5=80=BC=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/store/BuyGoodsLogic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java index 8b2754304..9c7b8d043 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java @@ -181,7 +181,7 @@ public class BuyGoodsLogic { rechargeInfo.setSaveAmt(price+saveAmt); user.getPlayerInfoManager().addRechargedaily(price); //TODO 用事件分发 - ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RechargeTotal,rechargeInfo.getSaveAmt()); + ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RechargeTotal,price); ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.LUCKYCAT,price); ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.DAILY_RECHARGE,price); ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RECHARGE_NUM,price); From bda2d610f03ab123f190d90290194538255b7f14 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Sun, 24 Nov 2019 19:42:22 +0800 Subject: [PATCH 18/20] activity --- .../ljsd/jieling/handler/map/MapLogic.java | 2 +- .../logic/activity/AbstractActivity.java | 9 +++ .../jieling/logic/activity/ActivityLogic.java | 75 +++++++++++++++---- .../jieling/logic/activity/ActivityType.java | 1 + .../logic/activity/FightMainEventHandler.java | 22 ++++++ .../logic/activity/NewWelfareActivity.java | 4 +- .../logic/activity/UserLevelEventHandler.java | 15 ++++ .../logic/activity/event/NewWelfareEvent.java | 12 +-- .../ljsd/jieling/logic/dao/UserManager.java | 4 + .../jieling/logic/store/BuyGoodsLogic.java | 2 +- .../src/main/java/config/SGlobalActivity.java | 6 ++ 11 files changed, 128 insertions(+), 24 deletions(-) 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 30af0b1d7..30963a2c7 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 @@ -2246,7 +2246,7 @@ public class MapLogic { state =2; } Poster.getPoster().dispatchEvent(new FightMainEvent(user.getId(),fightId)); - Poster.getPoster().dispatchEvent(new NewWelfareEvent(user.getId(), NewWelfareTypeEnum.LEVEL_FIGHT.getType(),fightId)); + Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.LEVEL_FIGHT.getType(),fightId)); user.getMainLevelManager().updateFight(updateFightId,state); if(state == -1){ //删除为0的 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 617a061fa..a95965463 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 @@ -320,4 +320,13 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { } } + + void setOpenState(User user,int openState){ + ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); + if(activityMission != null){ + activityMission.updateActivityState(openState); + } + + } + } 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 68777bdfc..01180ef7c 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 @@ -64,7 +64,7 @@ public class ActivityLogic { ActivityLogic.getInstance().resumeActivity(user, ActivityType.RECHARGE_SUM_DAY); user.getPlayerInfoManager().setRechargedaily(0); updateActivityMissionProgress(user, ActivityType.SevenLogin, 1); - Poster.getPoster().dispatchEvent(new NewWelfareEvent(user.getId(), NewWelfareTypeEnum.LOGIN_TIMES.getType(),1)); + Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.LOGIN_TIMES.getType(),1)); //幸运转盘活动刷新 ActivityLogic.getInstance().resumeActivity(user, ActivityType.LUCK_WHEEL); @@ -211,14 +211,19 @@ public class ActivityLogic { if (activityMission != null) { continue; } + // if(!initOtherActivity(user, sGlobalActivity)){ activityManager.initAllActivityMission(openActivityId); // } + AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(openActivityId); if (null==abstractActivity) { continue; } + abstractActivity.initActivity(user); + int activityOpenState = getActivityOpenState(user, openActivityId); + abstractActivity.setOpenState(user,activityOpenState); //非角色活动开启通知 openNewActivityIds.add(openActivityId); if(sGlobalActivity.getShopId()!=0){ @@ -277,6 +282,8 @@ public class ActivityLogic { // if(!initOtherActivity(user, sGlobalActivity)){ activityManager.initAllActivityMission(activityId); // } + int activityOpenState = getActivityOpenState(user, activityId ); + abstractActivity.setOpenState(user,activityOpenState); openNewActivityIds.add(activityId); checkNeedOpenStore(user,sGlobalActivity.getShopId(),startTime,endTime); } else { @@ -299,20 +306,6 @@ public class ActivityLogic { } - /** - * 不走通用活动进度奖励配置的活动单独初始化 - */ -// public boolean initOtherActivity(User user, SGlobalActivity sGlobalActivity) throws Exception { -// int type = sGlobalActivity.getType(); -// switch (type) { -// case ActivityType.BLESSACTIVITY: -// blessInfoInit(user.getActivityManager(), sGlobalActivity.getId()); -// return true; -// default: -// return false; -// } -// } - public static ActivityLogic getInstance() { return ActivityLogic.Instance.instance; @@ -353,6 +346,9 @@ public class ActivityLogic { continue; } int activityStatus = activityMission.getActivityState(); + if(activityStatus == -1){ + continue; + } if (sGlobalActivityMap.get(activityId).getIsSaving()==0 && activityStatus != ActivityType.OPEN_STATE) { continue; @@ -373,6 +369,28 @@ public class ActivityLogic { return activityInfoList; } + public void sendActivityInfo(User user,int activityId){ + ISession session = OnlineUserManager.getSessionByUid(user.getId()); + if(session!=null){ + PlayerInfoProto.ActivityUpateIndication.Builder builder = PlayerInfoProto.ActivityUpateIndication.newBuilder(); + Map activityMissionMap = user.getActivityManager().getActivityMissionMap(); + Map activityUpdateMap = new HashMap<>(); + boolean sendLuckWheelPool =false; + if(ActivityType.LUCK_WHEEL == SGlobalActivity.getsGlobalActivityMap().get(activityId).getType() + ||ActivityType.LUCK_WHEEL_ADVANCE == SGlobalActivity.getsGlobalActivityMap().get(activityId).getType()) + sendLuckWheelPool=true; + activityUpdateMap.put(activityId, activityMissionMap.get(activityId)); + List activityInfos = getActivityInfos(activityUpdateMap, user.getPlayerInfoManager().getCreateTime()); + builder.addAllActivityInfo(activityInfos); + if(sendLuckWheelPool){ + sendLuckWheelPool(user,session); + } + MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.ACTIVITY_UPDATE_INDICATION_VALUE, builder.build(), true); + } + + + } + public void openActivityReallyOpen(User user, int activityType) { ActivityManager activityManager = user.getActivityManager(); Map activityMissionMap = activityManager.getActivityMissionMap(); @@ -388,6 +406,33 @@ public class ActivityLogic { } } + public int getActivityOpenState(User user,int activityId){ + SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId); + int[] openRules = sGlobalActivity.getOpenRules(); + int state = ActivityType.OPEN_STATE; + if(openRules!=null&&openRules.length>0){ + int openRuleType = openRules[0]; + int openRulleValue = openRules[1]; + if(openRuleType == 1){ + int virtureId = SMainLevelConfig.config.get(openRulleValue).getVirtureId(); + int fightId = user.getMainLevelManager().getFightId(); + SMainLevelConfig mineMainLevelConfig = SMainLevelConfig.fightPreMap.get(fightId); + if(user.getMainLevelManager().getState() == 2 ){ + mineMainLevelConfig = SMainLevelConfig.config.get(user.getMainLevelManager().getFightId()); + } + if(mineMainLevelConfig!=null && virtureId > mineMainLevelConfig.getVirtureId()){ + state = ActivityType.UNOPEN_STATE; + } + }else{ + if(user.getPlayerInfoManager().getLevel()0 && openRules[0] == 1){ + ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(sGlobalActivity.getId()); + if(activityMission!=null && activityMission.getActivityState() == ActivityType.UNOPEN_STATE){ + int virtureId = SMainLevelConfig.config.get( openRules[1]).getVirtureId(); + SMainLevelConfig mineMainLevelConfig = SMainLevelConfig.fightPreMap.get(fightId); + if(user.getMainLevelManager().getState() == 2 ){ + mineMainLevelConfig = SMainLevelConfig.config.get(user.getMainLevelManager().getFightId()); + } + if(mineMainLevelConfig!=null && virtureId > mineMainLevelConfig.getVirtureId()){ + activityMission.setOpenType(ActivityType.OPEN_STATE); + ActivityLogic.getInstance().sendActivityInfo(user,sGlobalActivity.getId()); + } + } + + } + } + } } 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 ba1fbbd97..ef4334c21 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 @@ -24,7 +24,6 @@ import java.util.Map; public class NewWelfareActivity extends AbstractActivity { - private int loginTimes;//登陆次数 public NewWelfareActivity(int id) { super(id); Poster.getPoster().listenEvent(this, NewWelfareEvent.class); @@ -36,7 +35,7 @@ public class NewWelfareActivity extends AbstractActivity { return; } NewWelfareEvent newWelfareEvent = (NewWelfareEvent) event; - User user = UserManager.getUser(newWelfareEvent.getUid()); + User user =newWelfareEvent.getUser(); ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); List sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); Map activityProgressInfoMap = activityMission.getActivityProgressInfoMap(); @@ -83,6 +82,7 @@ public class NewWelfareActivity extends AbstractActivity { for(ActivityProgressInfo activityProgressInfo : activityProgressInfoMap.values()){ activityProgressInfo.setState(2); } + sendActivityProgress(session, activityMission, null); List sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); CommonProto.Drop.Builder drop = ItemUtil.drop(user, sActivityRewardConfigs.get(0).getReward(), BIReason.TAKE_ACTIVITY_REWARD); KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, id, missionId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/UserLevelEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/UserLevelEventHandler.java index 5a41231a3..f39f9a203 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/UserLevelEventHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/UserLevelEventHandler.java @@ -5,9 +5,11 @@ import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.logic.activity.event.IEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.UserLevelEvent; +import com.ljsd.jieling.logic.dao.ActivityMission; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.util.ItemUtil; +import config.SGlobalActivity; import config.SGlobalSystemConfig; import config.SMainLevelConfig; import manager.STableManager; @@ -39,6 +41,19 @@ public class UserLevelEventHandler implements IEventHandler{ } } + for(SGlobalActivity sGlobalActivity : SGlobalActivity.getsGlobalActivityMap().values()){ + int[] openRules = sGlobalActivity.getOpenRules(); + if(openRules!=null && openRules.length>0 && openRules[0] == 2){ + ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(sGlobalActivity.getId()); + if(activityMission!=null && activityMission.getActivityState() == ActivityType.UNOPEN_STATE){ + if(user.getPlayerInfoManager().getLevel()>=openRules[1]){ + activityMission.setOpenType(ActivityType.OPEN_STATE); + ActivityLogic.getInstance().sendActivityInfo(user,sGlobalActivity.getId()); + } + } + + } + } if(sGlobalSystemConfigs == null){ return; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareEvent.java index 1077e6a75..b3b2f01f8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareEvent.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareEvent.java @@ -1,18 +1,20 @@ package com.ljsd.jieling.logic.activity.event; +import com.ljsd.jieling.logic.dao.root.User; + public class NewWelfareEvent implements IEvent{ - private int uid; + private User user; private int type; private int parm; - public NewWelfareEvent(int uid, int type, int parm) { - this.uid = uid; + public NewWelfareEvent(User user, int type, int parm) { + this.user = user; this.type = type; this.parm = parm; } - public int getUid() { - return uid; + public User getUser() { + return user; } public int getType() { 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 5126b92c2..4e5b7d131 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 @@ -7,6 +7,9 @@ import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.ktbeans.KtEventUtils; import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean; import com.ljsd.jieling.logic.activity.ActivityLogic; +import com.ljsd.jieling.logic.activity.event.NewWelfareEvent; +import com.ljsd.jieling.logic.activity.event.NewWelfareTypeEnum; +import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.logic.mission.GameEvent; @@ -98,6 +101,7 @@ public class UserManager { user.getUserMissionManager().onGameEvent(user, GameEvent.DAILY_REFRESH,0); user.getUserMissionManager().onGameEvent(user, GameEvent.BLOODY_REFRESH,0); user.getUserMissionManager().onGameEvent(user, GameEvent.BEGINNER); + Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.LOGIN_TIMES.getType(),1)); KtEventUtils.onKtEvent(user, ParamEventBean.UserRegister); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java index df676079b..3ca8e08bf 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java @@ -210,7 +210,7 @@ public class BuyGoodsLogic { KtEventUtils.onKtEvent(user, ParamEventBean.UserPayEvent,goodsId,orderId,resultRes.getResultCode(),price); notifyPaySuccessFul(uid,goodsId,amount != -999); MongoUtil.getLjsdMongoTemplate().lastUpdate(); - Poster.getPoster().dispatchEvent(new NewWelfareEvent(user.getId(), NewWelfareTypeEnum.RECHARGE_BUY.getType(),goodsId)); + Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.RECHARGE_BUY.getType(),goodsId)); return resultRes; } diff --git a/tablemanager/src/main/java/config/SGlobalActivity.java b/tablemanager/src/main/java/config/SGlobalActivity.java index 4c862a43c..96ebedd94 100644 --- a/tablemanager/src/main/java/config/SGlobalActivity.java +++ b/tablemanager/src/main/java/config/SGlobalActivity.java @@ -39,6 +39,8 @@ public class SGlobalActivity implements BaseConfig { private int openRanking; + private int[] openRules; + @Override public void init() throws Exception { @@ -130,4 +132,8 @@ public class SGlobalActivity implements BaseConfig { public int getOpenRanking() { return openRanking; } + + public int[] getOpenRules() { + return openRules; + } } \ No newline at end of file From 1631f01146d87a0a3f319062d9b91ecb36f22a4f Mon Sep 17 00:00:00 2001 From: wangyuan Date: Mon, 25 Nov 2019 10:51:08 +0800 Subject: [PATCH 19/20] activity & chat limit message length --- .../src/main/java/com/ljsd/jieling/chat/logic/ChatLogic.java | 4 +++- .../ljsd/jieling/logic/activity/FightMainEventHandler.java | 2 +- .../ljsd/jieling/logic/activity/UserLevelEventHandler.java | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/chat/logic/ChatLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/chat/logic/ChatLogic.java index e2f1088b3..e7bc9e406 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/chat/logic/ChatLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/chat/logic/ChatLogic.java @@ -91,7 +91,9 @@ public class ChatLogic { * @param message */ public void sendChatMessage(ISession iSession, int chatType, String message,int friendId) throws Exception { - System.out.println("the uid=" + iSession.getUid() + "send msg =" +message); + if(message.length()>140){ + throw new ErrorCodeException("over length"); + } int msgId = MessageTypeProto.MessageType.SEND_CHAT_INFO_RESPONSE_VALUE; int uid = iSession.getUid(); User user = UserManager.getUser(uid); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FightMainEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FightMainEventHandler.java index b9c808d68..d352f741e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FightMainEventHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FightMainEventHandler.java @@ -55,7 +55,7 @@ public class FightMainEventHandler implements IEventHandler{ mineMainLevelConfig = SMainLevelConfig.config.get(user.getMainLevelManager().getFightId()); } if(mineMainLevelConfig!=null && virtureId > mineMainLevelConfig.getVirtureId()){ - activityMission.setOpenType(ActivityType.OPEN_STATE); + activityMission.updateActivityState(ActivityType.OPEN_STATE); ActivityLogic.getInstance().sendActivityInfo(user,sGlobalActivity.getId()); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/UserLevelEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/UserLevelEventHandler.java index f39f9a203..38a4b2e55 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/UserLevelEventHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/UserLevelEventHandler.java @@ -47,7 +47,7 @@ public class UserLevelEventHandler implements IEventHandler{ ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(sGlobalActivity.getId()); if(activityMission!=null && activityMission.getActivityState() == ActivityType.UNOPEN_STATE){ if(user.getPlayerInfoManager().getLevel()>=openRules[1]){ - activityMission.setOpenType(ActivityType.OPEN_STATE); + activityMission.updateActivityState(ActivityType.OPEN_STATE); ActivityLogic.getInstance().sendActivityInfo(user,sGlobalActivity.getId()); } } From c369ac8d48cbbc3585243d6ca8c4eec34d13fea6 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Sat, 23 Nov 2019 11:21:42 +0800 Subject: [PATCH 20/20] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/activity/DailyRechargeActivity.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DailyRechargeActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DailyRechargeActivity.java index 9120fb6a5..a591075f9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DailyRechargeActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DailyRechargeActivity.java @@ -22,16 +22,16 @@ class DailyRechargeActivity extends AbstractActivity { public void onResume(User user) throws Exception { //每日充值 补发前日未领取的奖 - Map activityMissionMap = user.getActivityManager().getActivityMissionMap(); +// Map activityMissionMap = user.getActivityManager().getActivityMissionMap(); // //每日充值隐含开启条件是 首冲完成 策划说首冲的活动id 5绝对不会变 - ActivityMission activityMission = activityMissionMap.get(5); - if (null != activityMission && activityMission.getActivityState() == ActivityType.FINISH_STATE) { - ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - takeAllReward(sessionByUid); - } -// ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); +// ActivityMission activityMission = activityMissionMap.get(5); +// if (null != activityMission && activityMission.getActivityState() == ActivityType.FINISH_STATE) { +// ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); // takeAllReward(sessionByUid); +// } + ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); + takeAllReward(sessionByUid); super.onResume(user); }