From 39e39e3ef6fdef90ece260fb3c6b0a344aecabed Mon Sep 17 00:00:00 2001 From: lvxinran Date: Fri, 19 Mar 2021 14:12:43 +0800 Subject: [PATCH 01/22] =?UTF-8?q?tapdb=E5=8F=82=E6=95=B0=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/store/BuyGoodsLogic.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 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 0b4194c1a..8db2d241b 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 @@ -439,7 +439,7 @@ public class BuyGoodsLogic { // Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.RECHARGE_BUY.getType(),goodsId)); MongoUtil.getLjsdMongoTemplate().lastUpdate(); sendGiftGooodsIndication(uid); - onChargeSuccess(uid,price,0,orderId,cfgType);//充值成功上报 + onChargeSuccess(user,price,0,orderId,cfgType);//充值成功上报 Map mapReward = ItemUtil.arrayToMap(baseReward); if(price>0){ ReportUtil.onReportEvent(user, ReportEventEnum.ORDER_COMPLETE.getType(),orderId,price,user.getPlayerInfoManager().getBundle_id(),user.getPlayerInfoManager().getChannel_id(),String.valueOf(GameApplication.serverId),String.valueOf(goodsId),sRechargeCommodityConfig.getName(),new ArrayList<>(mapReward.keySet()),new ArrayList<>(mapReward.values()),new Date(),user.getPlayerInfoManager().getLastDeviceId()==null?"DEFAULT_DEVICE":user.getPlayerInfoManager().getLastDeviceId()); @@ -447,7 +447,7 @@ public class BuyGoodsLogic { return resultRes; } - private static void onChargeSuccess(int uid,double amount,int virtualAmount,String orderId,int cfgType){ + private static void onChargeSuccess(User user,double amount,int virtualAmount,String orderId,int cfgType){ String currency_type = "CNY"; switch (cfgType){ case 1: @@ -464,11 +464,11 @@ public class BuyGoodsLogic { rechargeEvent.setIp(""); rechargeEvent.setName("charge"); rechargeEvent.setIndex(GameApplication.serverProperties.getAppId()==null?"APPID":GameApplication.serverProperties.getAppId()); - rechargeEvent.setIdentify(String.valueOf(uid)); + rechargeEvent.setIdentify(String.valueOf(user.getPlayerInfoManager().getOpenId())); rechargeEvent.setProperties(new RechargeEventProp(orderId,amount*100,virtualAmount,currency_type,"","")); String s = DataMessageUtils.sendRechargePost(rechargeEvent); if(s!=null&&s.equals("1")){ - LOGGER.info("{}充值上报成功,价格为{}",uid,amount); + LOGGER.info("{}充值上报成功,价格为{}",user.getPlayerInfoManager().getOpenId(),amount); } } From 54dabc25649d761002f17f3d62cda6dcc5f0ad3c Mon Sep 17 00:00:00 2001 From: mengchengzhen <13682025901@163.com> Date: Fri, 19 Mar 2021 15:10:36 +0800 Subject: [PATCH 02/22] =?UTF-8?q?=E5=A4=A7=E9=97=B9=E5=A4=A9=E5=AE=AB?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/expedition/ExpeditionLogic.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java index 77e73a83c..b321bb2ba 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java @@ -843,6 +843,9 @@ public class ExpeditionLogic { * 处理圣物英雄技能 */ private static void disposeWithHeroHoly(User user,Hero hero,StringBuilder skillSb){ + if(!user.getExpeditionManager().getHeroItems().containsKey(hero.getTemplateId())){ + return; + } int holyId = user.getExpeditionManager().getHeroItems().get(hero.getTemplateId()); SExpeditionHolyConfig con = STableManager.getConfig(SExpeditionHolyConfig.class).get(holyId); if( con != null ){ From 5bec625ba54492a3d45622e0fc99a9b8d7427b10 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 19 Mar 2021 16:18:24 +0800 Subject: [PATCH 03/22] =?UTF-8?q?=E5=A4=A7=E9=97=B9=E5=A4=A9=E5=AE=AB,?= =?UTF-8?q?=E6=8B=9B=E5=8B=9F=E8=8B=B1=E9=9B=84=E9=99=90=E5=88=B6=E6=9C=80?= =?UTF-8?q?=E5=A4=A7=E6=98=9F=E7=BA=A7=E5=92=8C=E6=9C=80=E4=BD=8E=E7=AD=89?= =?UTF-8?q?=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/expedition/ExpeditionLogic.java | 4 +++- .../src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java index b321bb2ba..6297d9c29 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java @@ -595,8 +595,10 @@ public class ExpeditionLogic { if (scHero == null) { throw new ErrorCodeException(ErrorCode.CFG_NULL,"英雄表id不存在:"+heroTid); } - // 等级上限验证 + // 最高等级 level = level>scHero.getMaxLevel()?scHero.getMaxLevel():level; + // 最低20级 + level = level<20?20:level; //创建新的英雄 Hero newHero = new Hero(hero,user.getId(),heroTid,level); // 魂宝灵宝,魂印需要走表 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 d2591a298..208f832e5 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 @@ -1286,7 +1286,8 @@ public class HeroLogic{ List collect = rankUpStar.stream().sorted(Comparator.comparing(SCHeroRankUpConfig::getOpenLevel).reversed()).collect(Collectors.toList()); for(SCHeroRankUpConfig val : collect){ if (heroLevel >= val.getOpenLevel()){ - return val.getOpenStar(); + // 机器人生成星级,最高10星 + return val.getOpenStar()>10?10:val.getOpenStar(); } } } @@ -1299,7 +1300,7 @@ public class HeroLogic{ List collect = rankUpBreak.stream().sorted(Comparator.comparing(SCHeroRankUpConfig::getOpenLevel).reversed()).collect(Collectors.toList()); for(SCHeroRankUpConfig val : collect){ if (heroLevel >= val.getOpenLevel()){ - return val.getOpenStar(); + return val.getOpenStar()>10?10:val.getOpenStar(); } } } From 47ac15c42f07dbb40418eb305dfa027eb67abff9 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 19 Mar 2021 16:30:39 +0800 Subject: [PATCH 04/22] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B1=82=E5=B9=B3?= =?UTF-8?q?=E5=9D=87=E7=AD=89=E7=BA=A7=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index 208f832e5..d1fb90444 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 @@ -4351,7 +4351,7 @@ public class HeroLogic{ if (count == 0){ throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE); } - return count/num; + return count/averageNum; } /** From 888c11dde2a2b29ac3f682e3dc036afdce77d582 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Fri, 19 Mar 2021 16:43:04 +0800 Subject: [PATCH 05/22] =?UTF-8?q?=E5=9B=BD=E6=9C=8D=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E7=AC=AC=E5=8D=81=E5=9B=9B=E5=A4=A9=E5=90=8E=E5=BC=80=E5=90=AF?= =?UTF-8?q?=E5=A4=A9=E5=AE=AB=E7=A7=98=E5=AE=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/expedition/ExpeditionLogic.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java index 0b88b4ee9..d2559a6c7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java @@ -529,8 +529,8 @@ public class ExpeditionLogic { SExpeditionSetting sExpeditionSetting = STableManager.getConfig(SExpeditionSetting.class).get(1); int openRule = sExpeditionSetting.getOpenRules()[0]; if(openRule == type && sExpeditionSetting.getOpenRules()[1] == parm){ - //设置第一次七天后开启 - user.getExpeditionManager().getWorldTreasureReward().setFirstStartTime((int)((TimeUtils.now()+7*TimeUtils.ONE_DAY)/1000)); + //国服设置第十四天后开启 + user.getExpeditionManager().getWorldTreasureReward().setFirstStartTime((int)((TimeUtils.now()+14*TimeUtils.ONE_DAY)/1000)); // user.getExpeditionManager().resetTreasureReward(1); // sendAllTreasureInfo(user); } @@ -595,10 +595,8 @@ public class ExpeditionLogic { if (scHero == null) { throw new ErrorCodeException(ErrorCode.CFG_NULL,"英雄表id不存在:"+heroTid); } - // 最高等级 + // 等级上限验证 level = level>scHero.getMaxLevel()?scHero.getMaxLevel():level; - // 最低20级 - level = level<20?20:level; //创建新的英雄 Hero newHero = new Hero(hero,user.getId(),heroTid,level); // 魂宝灵宝,魂印需要走表 @@ -845,9 +843,6 @@ public class ExpeditionLogic { * 处理圣物英雄技能 */ private static void disposeWithHeroHoly(User user,Hero hero,StringBuilder skillSb){ - if(!user.getExpeditionManager().getHeroItems().containsKey(hero.getTemplateId())){ - return; - } int holyId = user.getExpeditionManager().getHeroItems().get(hero.getTemplateId()); SExpeditionHolyConfig con = STableManager.getConfig(SExpeditionHolyConfig.class).get(holyId); if( con != null ){ From 206a9496d575aea587866aaff3b40ec7879b2165 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 19 Mar 2021 16:54:43 +0800 Subject: [PATCH 06/22] =?UTF-8?q?=E6=98=9F=E7=BA=A7=E7=AA=81=E7=A0=B4?= =?UTF-8?q?=E7=AD=89=E7=BA=A7=E4=B8=8A=E9=99=90=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/hero/HeroLogic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index d1fb90444..33f356536 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 @@ -1235,7 +1235,7 @@ public class HeroLogic{ List collect = rankUpConfigs.stream().sorted(Comparator.comparing(SCHeroRankUpConfig::getOpenLevel).reversed()).collect(Collectors.toList()); for(SCHeroRankUpConfig scHeroRankUpConfig : collect){ if (heroLevel >= scHeroRankUpConfig.getOpenLevel()){ - return scHeroRankUpConfig.getId(); + return scHeroRankUpConfig.getId()>10?10:scHeroRankUpConfig.getId(); } } } From 7786fa994aca0bebb495e04650949a5ac154fc14 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 19 Mar 2021 17:25:40 +0800 Subject: [PATCH 07/22] =?UTF-8?q?=E5=A4=A7=E9=97=B9=E5=A4=A9=E5=AE=AB,?= =?UTF-8?q?=E6=98=9F=E7=BA=A7=E7=AA=81=E7=A0=B4=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/hero/HeroLogic.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index 33f356536..5c997ad96 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 @@ -1235,7 +1235,10 @@ public class HeroLogic{ List collect = rankUpConfigs.stream().sorted(Comparator.comparing(SCHeroRankUpConfig::getOpenLevel).reversed()).collect(Collectors.toList()); for(SCHeroRankUpConfig scHeroRankUpConfig : collect){ if (heroLevel >= scHeroRankUpConfig.getOpenLevel()){ - return scHeroRankUpConfig.getId()>10?10:scHeroRankUpConfig.getId(); + if (scHeroRankUpConfig.getOpenStar() > 10){ + continue; + } + return scHeroRankUpConfig.getId(); } } } From 6907229c3fb0f186d3fd357cf1f7132486ddc996 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Fri, 19 Mar 2021 17:49:49 +0800 Subject: [PATCH 08/22] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/expedition/ExpeditionLogic.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java index d2559a6c7..ae0fc525c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java @@ -595,8 +595,10 @@ public class ExpeditionLogic { if (scHero == null) { throw new ErrorCodeException(ErrorCode.CFG_NULL,"英雄表id不存在:"+heroTid); } - // 等级上限验证 + // 最高等级 level = level>scHero.getMaxLevel()?scHero.getMaxLevel():level; + // 最低20级 + level = level<20?20:level; //创建新的英雄 Hero newHero = new Hero(hero,user.getId(),heroTid,level); // 魂宝灵宝,魂印需要走表 @@ -843,6 +845,9 @@ public class ExpeditionLogic { * 处理圣物英雄技能 */ private static void disposeWithHeroHoly(User user,Hero hero,StringBuilder skillSb){ + if(!user.getExpeditionManager().getHeroItems().containsKey(hero.getTemplateId())){ + return; + } int holyId = user.getExpeditionManager().getHeroItems().get(hero.getTemplateId()); SExpeditionHolyConfig con = STableManager.getConfig(SExpeditionHolyConfig.class).get(holyId); if( con != null ){ From 4f9f8a76ebb069c4cf28174cee9dab65e85d78fa Mon Sep 17 00:00:00 2001 From: lvxinran Date: Fri, 19 Mar 2021 23:26:07 +0800 Subject: [PATCH 09/22] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E5=85=AC=E4=BC=9A=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/network/server/SessionManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java index cbd9e8cba..ff2024a47 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java @@ -419,7 +419,7 @@ public class SessionManager implements INetSession, INetReceived Date: Thu, 1 Apr 2021 23:51:00 +0800 Subject: [PATCH 10/22] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97?= 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, 2 insertions(+) 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 27fda7a9b..d6234682e 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 @@ -33,6 +33,7 @@ public class GuilidManager { } public static void removeGuildInfo(GuildInfo guildInfo) throws Exception { + System.out.println("此处删除了工会信息"+guildInfo.getId()); int guildId = guildInfo.getId(); guildInfoMap.remove(guildId); guildNameInfoMap.remove(guildInfo.getName()); @@ -82,6 +83,7 @@ public class GuilidManager { List all = MongoUtil.getInstence().getMyMongoTemplate().findAll(GuildInfo._COLLECTION_NAME, GuildInfo.class); List guildLogs = MongoUtil.getInstence().getMyMongoTemplate().findAll(GuildLog._COLLECTION_NAME, GuildLog.class); for(GuildInfo guildInfo : all){ + System.out.println("初始化工会数据"+guildInfo.getId()); guildInfoMap.put(guildInfo.getId(),guildInfo); guildNameInfoMap.put(guildInfo.getName(),guildInfo); } From 97b65368e284e9de119d618982e74a2dd8e62b71 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Fri, 2 Apr 2021 00:10:33 +0800 Subject: [PATCH 11/22] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97?= 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 | 1 + 1 file changed, 1 insertion(+) 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 d6234682e..aba47a992 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 @@ -82,6 +82,7 @@ public class GuilidManager { public static void init() throws Exception { List all = MongoUtil.getInstence().getMyMongoTemplate().findAll(GuildInfo._COLLECTION_NAME, GuildInfo.class); List guildLogs = MongoUtil.getInstence().getMyMongoTemplate().findAll(GuildLog._COLLECTION_NAME, GuildLog.class); + System.out.println("初始化工会数据"); for(GuildInfo guildInfo : all){ System.out.println("初始化工会数据"+guildInfo.getId()); guildInfoMap.put(guildInfo.getId(),guildInfo); From 58713e49daf4f75c736262c519b950ace8b2d1b6 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Fri, 2 Apr 2021 00:24:40 +0800 Subject: [PATCH 12/22] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/db/mongo/LjsdMongoTemplate.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/LjsdMongoTemplate.java b/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/LjsdMongoTemplate.java index dda3ef567..5517a15e1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/LjsdMongoTemplate.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/LjsdMongoTemplate.java @@ -7,6 +7,7 @@ import com.ljsd.common.mogodb.MongoUpdateImp; import com.ljsd.jieling.db.mongo.core.ServerAreaInfoManager; import com.ljsd.jieling.logic.dao.ServerConfig; import com.ljsd.jieling.logic.dao.root.GlobalSystemControl; +import com.ljsd.jieling.logic.dao.root.GuildInfo; import com.mongodb.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -51,9 +52,18 @@ public class LjsdMongoTemplate implements MongoUpdateImp { public List findAll(String collectionName, Class clazz) throws Exception { List list = new ArrayList<>(); ServerAreaInfoManager serverArenaInfoManagerCache = AreaManager.serverArenaInfoManagerCache; + if(clazz== GuildInfo.class){ + System.out.println(serverArenaInfoManagerCache+"111111"); + } if (serverArenaInfoManagerCache != null) { Map areaIdByServerIdMap = serverArenaInfoManagerCache.getAreaIdByServerIdMap(); + if(clazz== GuildInfo.class){ + System.out.println(serverArenaInfoManagerCache+"444444"); + } for (Map.Entry entry : areaIdByServerIdMap.entrySet()) { + if(clazz== GuildInfo.class){ + System.out.println(serverArenaInfoManagerCache+"3333333"); + } if (entry.getValue() == AreaManager.areaId) { MongoTemplate mongoTemplate = MongoUtil.mongoTemplateMap.get(entry.getKey()); if (mongoTemplate == null) { @@ -66,6 +76,9 @@ public class LjsdMongoTemplate implements MongoUpdateImp { } } else { for (MongoTemplate mongoTemplate : MongoUtil.mongoTemplateMap.values()) { + if(clazz== GuildInfo.class){ + System.out.println(mongoTemplate+"222222"); + } List all = mongoTemplate.findAll(clazz); list.addAll(all); } From 70c50ed74b59d64f0a11f811bfc09a02eb536653 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 20 Mar 2021 14:59:55 +0800 Subject: [PATCH 13/22] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/db/mongo/LjsdMongoTemplate.java | 12 ------------ .../com/ljsd/jieling/logic/dao/GuilidManager.java | 2 -- 2 files changed, 14 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/LjsdMongoTemplate.java b/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/LjsdMongoTemplate.java index 5517a15e1..49840641f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/LjsdMongoTemplate.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/LjsdMongoTemplate.java @@ -52,18 +52,9 @@ public class LjsdMongoTemplate implements MongoUpdateImp { public List findAll(String collectionName, Class clazz) throws Exception { List list = new ArrayList<>(); ServerAreaInfoManager serverArenaInfoManagerCache = AreaManager.serverArenaInfoManagerCache; - if(clazz== GuildInfo.class){ - System.out.println(serverArenaInfoManagerCache+"111111"); - } if (serverArenaInfoManagerCache != null) { Map areaIdByServerIdMap = serverArenaInfoManagerCache.getAreaIdByServerIdMap(); - if(clazz== GuildInfo.class){ - System.out.println(serverArenaInfoManagerCache+"444444"); - } for (Map.Entry entry : areaIdByServerIdMap.entrySet()) { - if(clazz== GuildInfo.class){ - System.out.println(serverArenaInfoManagerCache+"3333333"); - } if (entry.getValue() == AreaManager.areaId) { MongoTemplate mongoTemplate = MongoUtil.mongoTemplateMap.get(entry.getKey()); if (mongoTemplate == null) { @@ -76,9 +67,6 @@ public class LjsdMongoTemplate implements MongoUpdateImp { } } else { for (MongoTemplate mongoTemplate : MongoUtil.mongoTemplateMap.values()) { - if(clazz== GuildInfo.class){ - System.out.println(mongoTemplate+"222222"); - } List all = mongoTemplate.findAll(clazz); list.addAll(all); } 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 aba47a992..04457c4ce 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 @@ -82,9 +82,7 @@ public class GuilidManager { public static void init() throws Exception { List all = MongoUtil.getInstence().getMyMongoTemplate().findAll(GuildInfo._COLLECTION_NAME, GuildInfo.class); List guildLogs = MongoUtil.getInstence().getMyMongoTemplate().findAll(GuildLog._COLLECTION_NAME, GuildLog.class); - System.out.println("初始化工会数据"); for(GuildInfo guildInfo : all){ - System.out.println("初始化工会数据"+guildInfo.getId()); guildInfoMap.put(guildInfo.getId(),guildInfo); guildNameInfoMap.put(guildInfo.getName(),guildInfo); } From 6f8e28efcd8629cee4bf433dcc365539a3cea419 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 20 Mar 2021 21:17:16 +0800 Subject: [PATCH 14/22] =?UTF-8?q?=E5=85=85=E5=80=BC=E6=88=90=E5=8A=9Findic?= =?UTF-8?q?ation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java | 1 + 1 file changed, 1 insertion(+) 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 8db2d241b..abd389485 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 @@ -442,6 +442,7 @@ public class BuyGoodsLogic { onChargeSuccess(user,price,0,orderId,cfgType);//充值成功上报 Map mapReward = ItemUtil.arrayToMap(baseReward); if(price>0){ + MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.RECHARGE_SUCCESS_INDICATION_VALUE, PlayerInfoProto.RechargeSuccessIndication.newBuilder().setOrderId(orderId).build(),true); ReportUtil.onReportEvent(user, ReportEventEnum.ORDER_COMPLETE.getType(),orderId,price,user.getPlayerInfoManager().getBundle_id(),user.getPlayerInfoManager().getChannel_id(),String.valueOf(GameApplication.serverId),String.valueOf(goodsId),sRechargeCommodityConfig.getName(),new ArrayList<>(mapReward.keySet()),new ArrayList<>(mapReward.values()),new Date(),user.getPlayerInfoManager().getLastDeviceId()==null?"DEFAULT_DEVICE":user.getPlayerInfoManager().getLastDeviceId()); } return resultRes; From 4c0ce0872c35bef97fd92a7012af91cf291724cb Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 23 Mar 2021 03:30:42 +0800 Subject: [PATCH 15/22] =?UTF-8?q?=E5=B7=A5=E4=BC=9A=E5=89=AF=E6=9C=AC?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/family/GuildChallengeLogic.java | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java index fc4a3f955..0cd6c645e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java @@ -25,6 +25,8 @@ import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank; import com.ljsd.jieling.logic.store.StoreLogic; import com.ljsd.jieling.network.server.ProtocolsManager; import com.ljsd.jieling.network.session.ISession; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import rpc.protocols.CommonProto; import rpc.protocols.Family; import rpc.protocols.MessageTypeProto; @@ -46,6 +48,7 @@ import java.util.concurrent.ConcurrentHashMap; */ public class GuildChallengeLogic { + private static final Logger LOGGER = LoggerFactory.getLogger(GuildChallengeLogic.class); public static GuildChallengeLogic getInstance() { return Instance.instance; } @@ -323,8 +326,24 @@ public class GuildChallengeLogic { Family.GuildChallengeIndication.Builder indication = Family.GuildChallengeIndication.newBuilder() .setBlood(remainHp) .setCurBoss(guildInfo.getCurrBossId()); - - GuildLogic.sendIndicationToMemberWithoutUser(guildInfo, MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION,indication.build(),uid); +// GuildLogic.sendIndicationToMemberWithoutUser(guildInfo, MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION,indication.build(),uid); + Map> members = guildInfo.getMembers(); + for(Set items : members.values()){ + for(Integer sendUid : items){ + //把自己跳过,自己的特殊处理 + if(sendUid==uid){ + continue; + } + ISession isession = OnlineUserManager.getSessionByUid(sendUid); + if(kill==1&&!UserManager.getUser(sendUid).getGuildMyInfo().getRefreshedBoss().contains(bossId)&&guildInfo.getBossHpRemain()!=-1){ + indication.setIsRefresh(1);//需要前端刷新次数 + } + if(isession!=null){ + LOGGER.info("向{}发送indication",sendUid); + MessageUtil.sendIndicationMessage(isession,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,indication.build(),true); + } + } + } indication.setIsKill(kill); //伤害排行 From 55dc3c50af9e5af87bce6258b8d2c5e3d9fee6e7 Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 25 Mar 2021 14:07:35 +0800 Subject: [PATCH 16/22] =?UTF-8?q?=E7=89=9B=E6=B0=94=E5=86=B2=E5=A4=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/activity/AbstractActivity.java | 2 +- .../jieling/logic/activity/ActivityType.java | 3 +- .../logic/activity/ActivityTypeEnum.java | 15 +- .../logic/activity/CowFlySkyActivity.java | 103 ++++++++ .../logic/activity/DefaultEmptyActivity.java | 7 - .../jieling/logic/dao/UserMissionManager.java | 242 ++++++++++-------- .../ljsd/jieling/logic/mission/GameEvent.java | 3 + .../jieling/logic/mission/GameMisionType.java | 1 + .../jieling/logic/mission/MissionLoigc.java | 83 ++++-- .../jieling/logic/mission/MissionType.java | 2 +- .../mission/data/DataManagerDistributor.java | 1 + .../logic/mission/data/GetHeroManager.java | 1 - .../mission/event/CowFlySkyEventProcess.java | 16 ++ .../event/MissionEventDistributor.java | 18 +- .../mission/main/CowFlySkyMissionType.java | 61 +++++ .../mission/main/MissingRoomMissionType.java | 6 +- .../src/main/java/config/SArroGantFly.java | 49 ++++ 17 files changed, 463 insertions(+), 150 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/activity/CowFlySkyActivity.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/CowFlySkyEventProcess.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java create mode 100644 tablemanager/src/main/java/config/SArroGantFly.java 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 84ec1a432..50a720a37 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 @@ -247,7 +247,7 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { /** * 领奖后更新奖励进度 */ - private void checkAndSetProgress(ActivityMission activityMission, ActivityProgressInfo activityProgressInfo, int missionId) { + public void checkAndSetProgress(ActivityMission activityMission, ActivityProgressInfo activityProgressInfo, int missionId) { activityProgressInfo.setState(ActivityType.HAD_TAKED); activityMission.getActivityMissionMap().put(missionId, activityProgressInfo); } 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 7a688afbc..43827bedf 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 @@ -78,7 +78,8 @@ public interface ActivityType { int ITEMS_STORE= 6000;//百宝商会 int TRIAL_EXPERT = 70;//幻境达人 int SHEJI_ACTIVITY = 60;//社稷大典 - int GOOD_LUCK= 61;//扭转乾坤 + int GOOD_LUCK= 61;//扭转乾坤 + int COW_FLY_SKY = 62;//牛气冲天 int SUB_ACTIVITY = 8000;//易经宝库 int SKIN_RECHARGE_ACTIVITY = 71; 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 a10ca1a31..ff68e42fa 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 @@ -66,6 +66,7 @@ public enum ActivityTypeEnum { DEMON_TREASURE(ActivityType.DEMON_TREASURE,LimitRandomSpecialMonsterActivity::new), NEW_GENERAL_ATTACK(ActivityType.NEW_GENERAL_ATTACK,DefaultEmptyActivity::new), GOOD_LUCK(ActivityType.GOOD_LUCK,DefaultEmptyActivity::new), + COW_FLY_SKY(ActivityType.COW_FLY_SKY,CowFlySkyActivity::new), ; private int type; @@ -95,16 +96,16 @@ public enum ActivityTypeEnum { return abstractActivity; } - //相同类型不同活动id需要处理处理多次事件 + /** + * 相同类型不同活动id需要处理处理多次事件 + * @param id + * @return + */ public static AbstractActivity getActicityType(int id) { SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); -// for (ActivityTypeEnum activityType:ActivityTypeEnum.values()) { -// if(activityType.getType()==sGlobalActivity.getType()){ -// return activityType.toActivity(id); -// } -// } - if (activityEnumMap.containsKey(sGlobalActivity.getType())) + if (activityEnumMap.containsKey(sGlobalActivity.getType())){ return activityEnumMap.get(sGlobalActivity.getType()).toActivity(id); + } return null; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/CowFlySkyActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/CowFlySkyActivity.java new file mode 100644 index 000000000..a71a85566 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/CowFlySkyActivity.java @@ -0,0 +1,103 @@ +package com.ljsd.jieling.logic.activity; + +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.jbean.ActivityMission; +import com.ljsd.jieling.jbean.ActivityProgressInfo; +import com.ljsd.jieling.logic.dao.Item; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.mission.GameEvent; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; +import config.SActivityRewardConfig; +import config.SArroGantFly; +import config.SGlobalActivity; +import manager.STableManager; +import rpc.protocols.CommonProto; +import rpc.protocols.PlayerInfoProto; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +public class CowFlySkyActivity extends AbstractActivity { + + CowFlySkyActivity(int id) { + super(id); + } + + @Override + public void initActivity(User user) throws Exception { + ActivityMission mission = new ActivityMission(); + List rewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); + ArrayList integers = new ArrayList<>(rewardConfigs.size()); + rewardConfigs.forEach(v->integers.add(v.getId())); + ActivityLogic.getInstance().initOtherMission(mission, integers); + user.getActivityManager().getActivityMissionMap().put(id, mission); + + user.getUserMissionManager().onGameEvent(user, GameEvent.COW_FLY_SKY_REFRESH, id); + LOGGER.info("牛气冲天活动刷新..."); + } + + @Override + public boolean takeReward(ISession session, int missionId) throws Exception { + User user = UserManager.getUser(session.getUid()); + //checkAndUpdate cfg + SActivityRewardConfig config = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId); + if (config == null || config.getActivityId() != id) { + throw new ErrorCodeException(ErrorCode.CFG_NULL,"功能不存在:"+missionId); + } + + // 验证数据库中 任务信息是否正确 + ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); + if (mission == null){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE,"数据错误"); + } + if (mission.getActivityState() != ActivityType.OPEN_STATE || mission.getOpenType() == 0) { + throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN,"活动未开启"); + } + ActivityProgressInfo progressInfo = mission.getActivityMissionMap().get(missionId); + if (progressInfo == null || progressInfo.getState() == ActivityType.HAD_TAKED) { + throw new ErrorCodeException(ErrorCode.newDefineCode("活动奖励已经领取")); + } + + // 是否满足领取条件值 + if (!checkValue(user,config.getValues())) { + LOGGER.error("the uid={} the misionId={},the missionProgress={},the require is={} ", session.getUid(), config.getId(), progressInfo.getProgrss(), config.getValues()); + throw new ErrorCodeException(ErrorCode.newDefineCode("未达到领取条件")); + } + // 更改任务状态 + checkAndSetProgress(mission,progressInfo,missionId); + //up miss + int[][] reward = config.getReward(); + // reward + CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD); + PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); + MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); + // 状态推送 + sendActivityProgress(session, mission, null); + // 打点上报 + reportTakeActivityReward(user,reward,missionId); + return true; + } + + private boolean checkValue(User user,int[][] value){ + Item item = user.getItemManager().getItem(value[0][0]); + return item.getItemNum() >= value[1][0]; + } + + @Override + public void onActivityEndOnMySelf(User user) throws Exception { + // 牛气冲天 活动结束会清空道具 + int removeItemId = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).get(0).getValues()[0][0]; + Item item = user.getItemManager().getItem(removeItemId); + if (item != null) { + int[][] cost = new int[1][]; + cost[0] = new int[]{item.getItemId(), (int) item.getItemNum()}; + ItemUtil.itemCost(user, cost, BIReason.EXCHANGE_ACTIVITY_CLOSE, id); + } + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DefaultEmptyActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DefaultEmptyActivity.java index fa121adb5..d32d69b00 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DefaultEmptyActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DefaultEmptyActivity.java @@ -47,13 +47,6 @@ public class DefaultEmptyActivity extends AbstractActivity{ sevenHappyMissionType.getFinishMissionIds().remove(sTreasureTaskConfig.getId()); sevenHappyMissionType.getRewardedMissionIds().set(sTreasureTaskConfig.getId()); user.getUserMissionManager().setSevenHappyMissionType(sevenHappyMissionType); - /* SSevenDaysScore sSevenDaysScore = SSevenDaysScore.SSevenDaysScoreByActivityIdAndScoreMap.get(id).get(senvenScores); - if(null!=sSevenDaysScore){ - String mailReward = ItemUtil.getMailReward(sSevenDaysScore.getReward()); - String title= SErrorCodeEerverConfig.getI18NMessage("opencarnival_activity_"+id+"_title"); - String content = SErrorCodeEerverConfig.getI18NMessage("opencarnival_activity_"+id+"_txt",new String[]{Integer.toString(senvenScores)}); - MailLogic.getInstance().sendMail(user.getId(),title,content,mailReward,(int)(System.currentTimeMillis()/1000), Global.MAIL_EFFECTIVE_TIME); - }*/ } }else if(sGlobalActivity.getType() == ActivityType.EXCHANGEANDDROP || sGlobalActivity.getType() == ActivityType.NEW_GENERAL_ATTACK){ // 限时兑换和新将来袭活动结束会清空道具 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 4a1f0a29e..12cac8d16 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 @@ -54,7 +54,10 @@ public class UserMissionManager extends MongoBase { private BloodyMissionIdsType bloodyMissionIdsType =new BloodyMissionIdsType(); private MissingRoomMissionType missingRoomMissionType = new MissingRoomMissionType(); private AchieveMissionIdsType achievementMissionTypMap = new AchieveMissionIdsType(); - private JadeDynastyMissionType jadeDynastyMissionType = new JadeDynastyMissionType();//破阵诛仙任务 + //破阵诛仙任务 + private JadeDynastyMissionType jadeDynastyMissionType = new JadeDynastyMissionType(); + // 牛气冲天活动任务 + private CowFlySkyMissionType cowFlySkyMissionType = new CowFlySkyMissionType(); //数据累加项 private CumulationData cumulationData = new CumulationData(); @@ -69,87 +72,97 @@ public class UserMissionManager extends MongoBase { private CumulationData jadeDynastyCumulationData = new CumulationData();//破阵诛仙日数据 private CumulationData jadeDynastyWeekCumulationData = new CumulationData();//破阵诛仙周数据 - //触发任务上身 - public void openMission(User user,GameEvent event,Map> missionTypeEnumListMap, Object... parm) throws Exception { - ISession session= OnlineUserManager.getSessionByUid(user.getId()); - switch (event){ - case VIP_LEVLUP:{ - int vipLevle= (int)parm[0]; + /** + * 触发任务上身 + * @param user + * @param event + * @param missionTypeEnumListMap + * @param parm + * @throws Exception + */ + public void openMission(User user, GameEvent event, Map> missionTypeEnumListMap, Object... parm) throws Exception { + ISession session = OnlineUserManager.getSessionByUid(user.getId()); + switch (event) { + case VIP_LEVLUP: { + int vipLevle = (int) parm[0]; SVipLevelConfig sVipLevelConfig = SVipLevelConfig.getsVipLevelConfigMap().get(vipLevle); int[] openRules = sVipLevelConfig.getOpenRules(); - for(int missionId:openRules){ - vipMissionIdsType.openMission(user,missionId,missionTypeEnumListMap.get(GameMisionType.VIPMISSION)); + for (int missionId : openRules) { + vipMissionIdsType.openMission(user, missionId, missionTypeEnumListMap.get(GameMisionType.VIPMISSION)); } - updateString("vipMissionIdsType",vipMissionIdsType); + updateString("vipMissionIdsType", vipMissionIdsType); break; } case DAILY_REFRESH: Set missionIds = SDailyTasksConfig.config.keySet(); - int type = (int)parm[0]; - if(type == 0){ + int type = (int) parm[0]; + if (type == 0) { dailyMissionIdsType.getDoingMissionIds().clear(); dailyMissionIdsType.getFinishMissionIds().clear(); dailyMissionIdsType.getRewardedMissionIds().clear(); dailyCumulationData = new CumulationData(); dailyMissionIdsType.getDoingMissionIds().addAll(missionIds); - updateString("dailyCumulationData",dailyCumulationData); + updateString("dailyCumulationData", dailyCumulationData); } - updateString("dailyMissionIdsType",dailyMissionIdsType); + updateString("dailyMissionIdsType", dailyMissionIdsType); break; case TREASH_REFRESH: - int activityId = (int) parm[0];//当前轮次青龙秘宝的活动ID - int[] refreshIds = resetTreasureTaskInfo(1,activityId,missionTypeEnumListMap,treasureCumulationData); + //当前轮次青龙秘宝的活动ID + int activityId = (int) parm[0]; + + int[] refreshIds = resetTreasureTaskInfo(1, activityId, missionTypeEnumListMap, treasureCumulationData); treasureCumulationData = new CumulationData(); - int dayRefreshTime=(int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 0, 0,false)/1000); + int dayRefreshTime = (int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 0, 0, false) / 1000); CommonProto.RefreshTask.Builder task = treasureIndicationBuild(1, refreshIds).setRefreshTime(dayRefreshTime); PlayerInfoProto.TreasureRefreshIndication indication1 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task.build()).build(); - MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication1,true); + MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE, indication1, true); break; case TREASH_WEEK_REFRESH: - int aId = (int) parm[0];//当前轮次青龙秘宝的活动ID - int[] weekRefreshIds = resetTreasureTaskInfo(2,aId,missionTypeEnumListMap,treasureWeekCumulationData); - if(weekRefreshIds != null){ + //当前轮次青龙秘宝的活动ID + int aId = (int) parm[0]; + int[] weekRefreshIds = resetTreasureTaskInfo(2, aId, missionTypeEnumListMap, treasureWeekCumulationData); + if (weekRefreshIds != null) { treasureWeekCumulationData = new CumulationData(); - int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,0)/1000); + int weekRefreshTime = (int) (TimeUtils.getNextWeekendStartTime(1, 0) / 1000); user.getPlayerInfoManager().clearVipCount(VipPrivilegeType.DRAGON_TREASURE_SUPPLY); - CommonProto.RefreshTask.Builder task2= treasureIndicationBuild(2, weekRefreshIds).setRefreshTime(weekRefreshTime); + CommonProto.RefreshTask.Builder task2 = treasureIndicationBuild(2, weekRefreshIds).setRefreshTime(weekRefreshTime); PlayerInfoProto.TreasureRefreshIndication indication2 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task2.build()).build(); - MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication2,true); + MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE, indication2, true); } break; case TREASH_MONTH_REFRESH: - int aid = (int) parm[0];//当前轮次青龙秘宝的活动ID + //当前轮次青龙秘宝的活动ID + int aid = (int) parm[0]; user.getPlayerInfoManager().setTreasureLevel(0); Item item = user.getItemManager().getItem(Global.TREASURE_SCORE); - if(item!=null){ - if(item.getItemNum()!=0){ - Map treasureScore = new HashMap<>(); - treasureScore.put(Global.TREASURE_SCORE, (int)item.getItemNum()); + if (item != null) { + if (item.getItemNum() != 0) { + Map treasureScore = new HashMap<>(); + treasureScore.put(Global.TREASURE_SCORE, (int) item.getItemNum()); try { - ItemUtil.itemCost(user,treasureScore, BIReason.TREASURE_RESET_CONSUME,1); + ItemUtil.itemCost(user, treasureScore, BIReason.TREASURE_RESET_CONSUME, 1); } catch (Exception e) { e.printStackTrace(); } } } treasureMonthCumulationData = new CumulationData(); - int[] monthRefreshIds1 = resetTreasureTaskInfo(3,aid,missionTypeEnumListMap,treasureMonthCumulationData); + int[] monthRefreshIds1 = resetTreasureTaskInfo(3, aid, missionTypeEnumListMap, treasureMonthCumulationData); -// CommonProto.RefreshTask.Builder task3 = treasureIndicationBuild(1, dailyRefreshIds1); -// CommonProto.RefreshTask.Builder task4 = treasureIndicationBuild(2, weekRefreshIds1); CommonProto.RefreshTask.Builder task5 = treasureIndicationBuild(3, monthRefreshIds1); PlayerInfoProto.TreasureRefreshIndication indication3 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task5.build()).build(); - MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication3,true); + MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE, indication3, true); break; case JADE_DYNASTY_REFRESH: - int jadeAId = (int) parm[0];//当前轮次破阵诛仙的活动ID - int[] mIds = resetJadeDynastyTaskInfo(1,jadeAId,missionTypeEnumListMap,jadeDynastyCumulationData); - jadeDynastyCumulationData = new CumulationData(); + //当前轮次破阵诛仙的活动ID + int jadeAId = (int) parm[0]; + resetJadeDynastyTaskInfo(1, jadeAId, missionTypeEnumListMap, jadeDynastyCumulationData); break; case JADE_DYNASTY_WEEK_REFRESH: - int jadeAid = (int) parm[0];//当前轮次破阵诛仙的活动ID - int[] weekMIds = resetJadeDynastyTaskInfo(2,jadeAid,missionTypeEnumListMap,jadeDynastyWeekCumulationData); - if(weekMIds != null){ + //当前轮次破阵诛仙的活动ID + int jadeAid = (int) parm[0]; + int[] weekMIds = resetJadeDynastyTaskInfo(2, jadeAid, missionTypeEnumListMap, jadeDynastyWeekCumulationData); + if (weekMIds != null) { jadeDynastyWeekCumulationData = new CumulationData(); } break; @@ -160,98 +173,107 @@ public class UserMissionManager extends MongoBase { sevenHappyMissionType.getFinishMissionIds().clear(); sevenHappyMissionType.getRewardedMissionIds().clear(); List servenMissionmStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.SEVENMISSION); - for(STreasureTaskConfig sTreasureTaskConfig : sTreasureTaskConfigs){ + for (STreasureTaskConfig sTreasureTaskConfig : sTreasureTaskConfigs) { sevenHappyMissionType.getDoingMissionIds().add(sTreasureTaskConfig.getId()); } - sevenHappyCumulationData= new CumulationData(); - sevenHappyMissionType.checkAndUpdateMision(user,sTreasureTaskConfigs,servenMissionmStateChangeInfos,sevenHappyCumulationData); + sevenHappyCumulationData = new CumulationData(); + sevenHappyMissionType.checkAndUpdateMision(user, sTreasureTaskConfigs, servenMissionmStateChangeInfos, sevenHappyCumulationData); updateString("sevenHappyMissionType", sevenHappyMissionType); updateString("sevenHappyCumulationData", sevenHappyCumulationData); break; case BEGINNER: - for(Integer id : SBeginnerTask.sBeginnerTaskCongigMap.keySet()){ + for (Integer id : SBeginnerTask.sBeginnerTaskCongigMap.keySet()) { beginerTaskIdsType.addDoingMission(id); } - beginCumulationData= new CumulationData(); + beginCumulationData = new CumulationData(); updateString("beginerTaskIdsType", beginerTaskIdsType); updateString("beginCumulationData", beginCumulationData); break; case BLOODY_REFRESH: - Set bloodyMissionIds =STableManager.getConfig(SBloodyBattleTask.class).keySet(); + Set bloodyMissionIds = STableManager.getConfig(SBloodyBattleTask.class).keySet(); bloodyMissionIdsType.getDoingMissionIds().clear(); bloodyMissionIdsType.getFinishMissionIds().clear(); bloodyMissionIdsType.getRewardedMissionIds().clear(); bloodyMissionIdsType.getDoingMissionIds().addAll(bloodyMissionIds); - updateString("bloodyMissionIdsType",bloodyMissionIdsType); + updateString("bloodyMissionIdsType", bloodyMissionIdsType); break; case ACHIEVE_REFRESH: - Set ds =STableManager.getConfig(SAchievementConfig.class).keySet(); + Set ds = STableManager.getConfig(SAchievementConfig.class).keySet(); achievementMissionTypMap.getDoingMissionIds().clear(); achievementMissionTypMap.getFinishMissionIds().clear(); achievementMissionTypMap.getRewardedMissionIds().clear(); achievementMissionTypMap.getDoingMissionIds().addAll(ds); - achievementMap =new CumulationData(); - updateString("achievementMissionTypMap",achievementMissionTypMap); - updateString("achievementMap",achievementMap); + achievementMap = new CumulationData(); + updateString("achievementMissionTypMap", achievementMissionTypMap); + updateString("achievementMap", achievementMap); break; - case MISSING_ROOM_REFRESH://天宫寻宝 - Map mustAppear = new HashMap<>(); + + case COW_FLY_SKY_REFRESH: + // 牛气冲天 + Set arro = STableManager.getConfig(SArroGantFly.class).keySet(); + cowFlySkyMissionType.getDoingMissionIds().clear(); + cowFlySkyMissionType.getFinishMissionIds().clear(); + cowFlySkyMissionType.getRewardedMissionIds().clear(); + cowFlySkyMissionType.getDoingMissionIds().addAll(arro); + updateString("cowFlySkyMissionType", cowFlySkyMissionType); + break; + case MISSING_ROOM_REFRESH: + //天宫寻宝 + Map mustAppear = new HashMap<>(); List mustMissions = new ArrayList<>(); List lockMissions = new ArrayList<>(); - if((int)parm[0]==1){ + if ((int) parm[0] == 1) { //删除已经领取奖励的 - missingRoomMissionType.getFinishMissionIds().removeIf(value->missingRoomMissionType.getAllMissingTime().get(value)==-1); - missingRoomMissionType.getAllMissingTime().values().removeIf(value->value==-1); - + missingRoomMissionType.getFinishMissionIds().removeIf(value -> missingRoomMissionType.getAllMissingTime().get(value) == -1); + missingRoomMissionType.getAllMissingTime().values().removeIf(value -> value == -1); // 任务全部锁定 Set lockMissionIds = missingRoomMissionType.getLockMissionIds(); - if (lockMissionIds.size() >= 6){ + if (lockMissionIds.size() >= 6) { throw new ErrorCodeException(ErrorCode.LOCK_FILL); } - // 读表 SMazeTreasureSetting sMazeTreasureSetting = SMazeTreasureSetting.sMazeTreasureSetting; boolean result = ItemUtil.itemCost(user, new int[][]{sMazeTreasureSetting.getTakeOrder()}, BIReason.MISSING_ROOM_REFRESH_CONSUME, 1); - if(!result){ + if (!result) { result = ItemUtil.itemCost(user, new int[][]{sMazeTreasureSetting.getRefreshItem()}, BIReason.MISSING_ROOM_REFRESH_CONSUME, 1); - if(!result){ + if (!result) { int coinRefreshCount = user.getPlayerInfoManager().getVipPrivilageValue(sMazeTreasureSetting.getRefreshVIP()); int[][] cost = sMazeTreasureSetting.getCost(); - int count = (int)MathUtils.calABX(coinRefreshCount, cost[1]); + int count = (int) MathUtils.calABX(coinRefreshCount, cost[1]); result = ItemUtil.itemCost(user, new int[][]{new int[]{cost[0][0], count}}, BIReason.MISSING_ROOM_REFRESH_CONSUME, 1); - if(!result){ + if (!result) { throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); } - user.getPlayerInfoManager().updateVipPrivilage(sMazeTreasureSetting.getRefreshVIP(),1); + user.getPlayerInfoManager().updateVipPrivilage(sMazeTreasureSetting.getRefreshVIP(), 1); } //高级特权 - missingRoomMissionType.privilegeRefresh(user,sMazeTreasureSetting.getHighDailyPrivilege(),mustAppear); + missingRoomMissionType.privilegeRefresh(user, sMazeTreasureSetting.getHighDailyPrivilege(), mustAppear); //豪华特权 - missingRoomMissionType.privilegeRefresh(user,sMazeTreasureSetting.getLuxuryDailyPrivilege(),mustAppear); + missingRoomMissionType.privilegeRefresh(user, sMazeTreasureSetting.getLuxuryDailyPrivilege(), mustAppear); //非免费抽取次数必出 - missingRoomMissionType.notFreeRefreshMust(user,sMazeTreasureSetting.getRefreshHighTypeNum(),mustAppear); + missingRoomMissionType.notFreeRefreshMust(user, sMazeTreasureSetting.getRefreshHighTypeNum(), mustAppear); // 刷新次数+1 - missingRoomMissionType.setRefreshTotalCount(missingRoomMissionType.getRefreshTotalCount()+1); + missingRoomMissionType.setRefreshTotalCount(missingRoomMissionType.getRefreshTotalCount() + 1); } Set doingMissionIds = missingRoomMissionType.getDoingMissionIds(); - doingMissionIds.forEach((doing)->{ - if (lockMissionIds.contains(doing)){ + doingMissionIds.forEach((doing) -> { + if (lockMissionIds.contains(doing)) { lockMissions.add(doing); } }); missingRoomMissionType.getDoingMissionIds().clear(); - }else{ - for(int firstTask:SMazeTreasureSetting.sMazeTreasureSetting.getFirstRefresh()){ + } else { + for (int firstTask : SMazeTreasureSetting.sMazeTreasureSetting.getFirstRefresh()) { mustMissions.add(firstTask); } } // 更新最大长度限制6条 - if (lockMissions.size() + mustAppear.size() > 6){ + if (lockMissions.size() + mustAppear.size() > 6) { // 锁定的不能动,获取特权任务数量 int num = 6 - lockMissions.size(); // 特权的key @@ -261,20 +283,20 @@ public class UserMissionManager extends MongoBase { // 赋值 sortSet.addAll(keys); // 遍历,如果数量满足,停止,不满足则删除等级小的任务 - for (Integer ints:sortSet){ - if (mustAppear.size() == num){ + for (Integer ints : sortSet) { + if (mustAppear.size() == num) { break; } mustAppear.remove(ints); } } - if(!mustAppear.isEmpty()){ - for(Map.Entry entry:mustAppear.entrySet()){ + if (!mustAppear.isEmpty()) { + for (Map.Entry entry : mustAppear.entrySet()) { List sMazeTreasures = SMazeTreasure.mazeMapByTaskType.get(entry.getKey()); List mustList = new ArrayList<>(); - for(SMazeTreasure maze :sMazeTreasures){ - if(mustMissions.contains(maze.getId())){ + for (SMazeTreasure maze : sMazeTreasures) { + if (mustMissions.contains(maze.getId())) { continue; } int[] refreshWeight = new int[2]; @@ -283,52 +305,45 @@ public class UserMissionManager extends MongoBase { mustList.add(refreshWeight); } int[][] mustArray = mustList.toArray(new int[mustList.size()][]); - int[] missions = MathUtils.randomFromWeightWithTaking(mustArray, entry.getValue()); - Arrays.stream(missions).forEach(mission->mustMissions.add(mission)); + int[] missions = MathUtils.randomFromWeightWithTaking(mustArray, entry.getValue()); + Arrays.stream(missions).forEach(mission -> mustMissions.add(mission)); } } int[][] qualityRate = SMazeTreasureSetting.sMazeTreasureSetting.getQualityRate(); -// List missingRoomMission = new ArrayList<>(); -// for(Map.Entry entry:SMazeTreasure.sMazeTreasureMap.entrySet()){ -// int[] refreshWeight = new int[2]; -// refreshWeight[0] = entry.getKey(); -// refreshWeight[1] = entry.getValue().getTaskRefreshProbability(); -// missingRoomMission.add(refreshWeight); -// } + //根据品质来随机 int[] qualityArray = MathUtils.randomForWeight(qualityRate, 6 - (mustMissions.size() + lockMissions.size())); - Map qualityNum = new HashMap<>(); - for(int quality:qualityArray){ - qualityNum.put(quality,qualityNum.getOrDefault(quality,0)+1); + Map qualityNum = new HashMap<>(); + for (int quality : qualityArray) { + qualityNum.put(quality, qualityNum.getOrDefault(quality, 0) + 1); } - for(Map.Entry entry:qualityNum.entrySet()){ + for (Map.Entry entry : qualityNum.entrySet()) { List sMazeTreasures = SMazeTreasure.mazeMapByTaskType.get(entry.getKey()); int[][] treasures = new int[sMazeTreasures.size()][]; - for(int i = 0 ; i missionList){ + CowFlySkyMissionType missionType = user.getUserMissionManager().getCowFlySkyMissionType(); + + // 进行中 + Set doingMissionIds = missionType.getDoingMissionIds(); + // 可领取 + Set finishMissionIds = missionType.getFinishMissionIds(); + // 已领取 + BitSet rewardedMissionIds = missionType.getRewardedMissionIds(); + + Collection values = STableManager.getConfig(SArroGantFly.class).values(); + values.forEach(v->{ + int id = v.getId(); + CommonProto.UserMissionInfo.Builder info = CommonProto.UserMissionInfo.newBuilder(); + info.setMissionId(id); + info.setType(GameMisionType.COWFLYSKYMISSION.getType()); + if (doingMissionIds.contains(id)){ + info.setState(MissionState.DOING.getState()); + } + if (finishMissionIds.contains(id)){ + info.setState(MissionState.FINISH.getState()); + } + if (rewardedMissionIds.get(id)){ + info.setState(MissionState.REWARD.getState()); + } + missionList.add(info.build()); + }); + } + /** * 获取天宫寻宝任务列表 * @param user @@ -399,12 +434,22 @@ public class MissionLoigc { } - public static void takeMissionReward(ISession session,int type,int missionId) throws Exception { + + /** + * 领取任务奖励 + * @param session + * @param type + * @param missionId + * @throws Exception + */ + public static void takeMissionReward(ISession session,int type,int missionId) throws Exception { int uid = session.getUid(); User user = UserManager.getUser(uid); UserMissionManager userMissionManager = user.getUserMissionManager(); List missionStateChangeInfos = null; - if(type == GameMisionType.BLOODYMISSION.getType()){ //vip 任务 + + //BLOODY 任务 + if(type == GameMisionType.BLOODYMISSION.getType()){ Map> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.BLOODY_MISSION_REWARD, missionId); missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.BLOODYMISSION); if(missionStateChangeInfos.isEmpty()){ @@ -414,16 +459,16 @@ public class MissionLoigc { CommonProto.Drop.Builder drop = ItemUtil.drop(user, new int[]{rewardGroup}, 1.0f, 0, BIReason.TAKE_MISSION_REWARD); PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,build,true); -// KtEventUtils.onKtEvent(user, ParamEventBean.UserTaskEvent,type,missionId); -// Repot37EventUtil.onKtEvent(user, Repot37EventUtil.Report37EventType.TASK_FINISH_EVEMT,missionId,""); ReportUtil.onReportEvent(user, ReportEventEnum.MISSION_COMPLETE.getType(),missionId,GameMisionType.BLOODYMISSION.toString()); return; } - if(type == GameMisionType.VIPMISSION.getType()){ //vip 任务 + //vip 任务 + if(type == GameMisionType.VIPMISSION.getType()){ Map> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.VIP_MISSION_REWARD, missionId); missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.VIPMISSION); } - if(type == GameMisionType.DAILYMISSION.getType()){ //日常 任务 + //日常 任务 + if(type == GameMisionType.DAILYMISSION.getType()){ Map> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.DAILY_MISSION_REWARD, missionId); missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.DAILYMISSION); SDailyTasksConfig sDailyTasksConfig = SDailyTasksConfig.getSDailyTasksConfigById(missionId); @@ -431,12 +476,13 @@ public class MissionLoigc { user.getUserMissionManager().onGameEvent(user,GameEvent.TAKE_DAILY_BOX_REWARD); } } - - if(type == GameMisionType.BEGINNERMISSION.getType()){ //新手 任务 + //新手 任务 + if(type == GameMisionType.BEGINNERMISSION.getType()){ Map> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.BEGINNER_MISSION_REWARD, missionId); missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.BEGINNERMISSION); } - if(type == GameMisionType.COPYMISSION.getType()){ //副本 任务 + //副本 任务 + if(type == GameMisionType.COPYMISSION.getType()){ Set takeCopyMisionRewards = user.getMapManager().getTakeCopyMisionRewards(); if(takeCopyMisionRewards.contains(missionId)){ throw new ErrorCodeException(ErrorCode.newDefineCode("had taked reward")); @@ -460,8 +506,8 @@ public class MissionLoigc { return; } + // 藏宝任务 if(type == GameMisionType.TREASUREMISSION.getType()){ - Map> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.TREASURE_MISSION_REWARD, missionId); missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.TREASUREMISSION); if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){ @@ -476,8 +522,9 @@ public class MissionLoigc { } } + // 破阵诛仙任务 if(type == GameMisionType.JADE_DYNASTY_MISSION.getType()){ - Map> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.JADE_DYNASTY_MISSION_REWARD, missionId); + Map> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.JADE_DYNASTY_MISSION_REWARD, missionId); missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.JADE_DYNASTY_MISSION); if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){ KtEventUtils.onKtEvent(user, ParamEventBean.UserTaskEvent,type,missionId); @@ -489,15 +536,25 @@ public class MissionLoigc { } } + // 牛气冲天 活动任务 + if (type == GameMisionType.COWFLYSKYMISSION.getType()){ + Map> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.COW_FLY_SKY_REWEARD, missionId); + missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.COWFLYSKYMISSION); + } + + // 七日 任务 if(type == GameMisionType.SEVENMISSION.getType()){ Map> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.SEVENHAPPY_MISSION_REWARD, missionId); missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.SEVENMISSION); } + + // 天宫寻宝 任务 if(type==GameMisionType.MISSINGROOMMISSION.getType()){ Map> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.MISSING_ROOM_MISSION_REWARD, missionId); missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.MISSINGROOMMISSION); } + // 成就 任务 if(type==GameMisionType.ACHIEVEMISSION.getType()){ Map> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.ACHIEVE_REWARD, missionId); missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.ACHIEVEMISSION); @@ -505,14 +562,10 @@ public class MissionLoigc { if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){ CommonProto.Drop.Builder drop = ItemUtil.drop(user, missionStateChangeInfos.get(0).getRewwardGroups(), BIReason.TAKE_MISSION_REWARD); - // user.getUserMissionManager().onGameEvent(user,GameEvent.DAILY_TASK_TYPE,missionId,user); ReportUtil.onReportEvent(user, ReportEventEnum.MISSION_COMPLETE.getType(),String.valueOf(missionId),type); PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,build,true); -// KtEventUtils.onKtEvent(user, ParamEventBean.UserTaskEvent,type,missionId); -// Repot37EventUtil.onKtEvent(user, Repot37EventUtil.Report37EventType.TASK_FINISH_EVEMT,missionId,""); }else{ - //MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,"mission can not get reward"); throw new ErrorCodeException(ErrorCode.newDefineCode("mission can not get reward")); } } 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 9cbaf8a28..220a34548 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 @@ -134,7 +134,7 @@ public enum MissionType { return missionType; } - private MissionType(int missionType) { + MissionType(int missionType) { this.missionType = missionType; } 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 a7a878ef8..d210db01f 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 @@ -142,6 +142,7 @@ public class DataManagerDistributor { judges.put(MissionType.CHAMPIONSHIP_RANK, new ChampionshipRankManager()); judges.put(MissionType.PLAY_MINI_GAME_TIMES, new PlayMiniGameTimesManager()); + // 鸿蒙阵 judges.put(MissionType.HONGMENG_RESONANCE_LATTICE, new HongMengResonanceDataManager()); judges.put(MissionType.HONGMENG_TABLET_LEVEL, new HongMengLevelDataManager()); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/GetHeroManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/GetHeroManager.java index 24cc03ef1..88f8e0a28 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/GetHeroManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/GetHeroManager.java @@ -12,7 +12,6 @@ public class GetHeroManager implements BaseDataManager { int heroStar = (int)parm[1]; CumulationData.Result result = null; if(missionType == MissionType.COLLECT_QUALITY_HERO){ - SCHero scHero = SCHero.getsCHero().get(heroTid); data.updateHeroQualityCount(heroStar); result = new CumulationData.Result(missionType); }else if(missionType == MissionType.COLLECT_DIFFERENT_HEROS){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/CowFlySkyEventProcess.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/CowFlySkyEventProcess.java new file mode 100644 index 000000000..cd6c5cb7b --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/CowFlySkyEventProcess.java @@ -0,0 +1,16 @@ +package com.ljsd.jieling.logic.mission.event; + +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.mission.GameEvent; +import com.ljsd.jieling.logic.mission.GameMisionType; +import com.ljsd.jieling.logic.mission.main.MissionStateChangeInfo; + +import java.util.List; +import java.util.Map; + +public class CowFlySkyEventProcess implements BaseGameEventProcessor { + @Override + public void onGameEvent(User user, Map> misionTypeListMap, GameEvent event, Object... parm) throws Exception { + user.getUserMissionManager().openMission(user,event,misionTypeListMap,parm); + } +} 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 c9acb6227..1c6016810 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 @@ -29,7 +29,7 @@ public class MissionEventDistributor { public static void init(){ - + // 刷新任务 eventProcessor.put(GameEvent.MISSING_ROOM_REFRESH,new CumulationDataEventProcessor()); eventProcessor.put(GameEvent.DAILY_REFRESH,new DailyRefreshEventProcess()); eventProcessor.put(GameEvent.BLOODY_REFRESH,new DailyRefreshEventProcess()); @@ -41,7 +41,7 @@ public class MissionEventDistributor { eventProcessor.put(GameEvent.BEGINNER,new BeginneRefreshEventProcessor()); eventProcessor.put(GameEvent.JADE_DYNASTY_REFRESH,new JadeDynastyRefreshEventProcess()); eventProcessor.put(GameEvent.JADE_DYNASTY_WEEK_REFRESH,new JadeDynastyRefreshEventProcess()); - + eventProcessor.put(GameEvent.COW_FLY_SKY_REFRESH,new CowFlySkyEventProcess()); List typeList = new ArrayList<>(); typeList.add(MissionType.REFRESH_MISSING_ROOM); @@ -182,7 +182,7 @@ public class MissionEventDistributor { eventEnumListMap.put(GameEvent.ADVENTURE_TAKEREWARD,typeList); eventProcessor.put(GameEvent.ADVENTURE_TAKEREWARD,new CumulationDataEventProcessor()); - + // 领取奖励 eventProcessor.put(GameEvent.VIP_MISSION_REWARD,new RewardEventProcessor()); eventProcessor.put(GameEvent.DAILY_MISSION_REWARD,new RewardEventProcessor()); eventProcessor.put(GameEvent.TREASURE_MISSION_REWARD,new RewardEventProcessor()); @@ -192,7 +192,7 @@ public class MissionEventDistributor { eventProcessor.put(GameEvent.MISSING_ROOM_MISSION_REWARD,new RewardEventProcessor()); eventProcessor.put(GameEvent.ACHIEVE_REWARD,new RewardEventProcessor()); eventProcessor.put(GameEvent.JADE_DYNASTY_MISSION_REWARD,new RewardEventProcessor()); - + eventProcessor.put(GameEvent.COW_FLY_SKY_REWEARD,new RewardEventProcessor()); typeList = new ArrayList<>(); typeList.add(MissionType.RING_FIREA_DVANCED); @@ -417,6 +417,7 @@ public class MissionEventDistributor { eventEnumListMap.put(GameEvent.PLAY_MINI_GAME, typeList); eventProcessor.put(GameEvent.PLAY_MINI_GAME, new CumulationDataEventProcessor()); + // 鸿蒙碑 typeList = new ArrayList<>(); typeList.add(MissionType.HONGMENG_RESONANCE_LATTICE); eventEnumListMap.put(GameEvent.HONGMENG_RESONANCE_LATTICE, typeList); @@ -455,7 +456,7 @@ public class MissionEventDistributor { missionTypeEnumListMap.put(GameMisionType.MISSINGROOMMISSION, new ArrayList<>()); missionTypeEnumListMap.put(GameMisionType.ACHIEVEMISSION, new ArrayList<>()); missionTypeEnumListMap.put(GameMisionType.JADE_DYNASTY_MISSION, new ArrayList<>()); - + missionTypeEnumListMap.put(GameMisionType.COWFLYSKYMISSION, new ArrayList<>()); } else { missionTypeEnumListMap.get(GameMisionType.VIPMISSION).clear(); @@ -468,7 +469,7 @@ public class MissionEventDistributor { missionTypeEnumListMap.get(GameMisionType.MISSINGROOMMISSION).clear(); missionTypeEnumListMap.get(GameMisionType.ACHIEVEMISSION).clear(); missionTypeEnumListMap.get(GameMisionType.JADE_DYNASTY_MISSION).clear(); - + missionTypeEnumListMap.get(GameMisionType.COWFLYSKYMISSION).clear(); } threadMissionChangeList.set(missionTypeEnumListMap); @@ -504,7 +505,10 @@ public class MissionEventDistributor { if(gameMisionType==GameMisionType.MISSINGROOMMISSION){ continue; } - if(gameMisionType == GameMisionType.COPYMISSION || gameMisionType == GameMisionType.TREASUREMISSION || gameMisionType == GameMisionType.SEVENMISSION || gameMisionType == GameMisionType.BLOODYMISSION|| gameMisionType == GameMisionType.ACHIEVEMISSION || gameMisionType == GameMisionType.JADE_DYNASTY_MISSION){ + if(gameMisionType == GameMisionType.COPYMISSION || gameMisionType == GameMisionType.TREASUREMISSION + || gameMisionType == GameMisionType.SEVENMISSION || gameMisionType == GameMisionType.BLOODYMISSION + || gameMisionType == GameMisionType.ACHIEVEMISSION || gameMisionType == GameMisionType.JADE_DYNASTY_MISSION + || gameMisionType == GameMisionType.COWFLYSKYMISSION ){ progress = missionStateChangeInfo.getProgress(); } if(missionState == MissionState.DOING){ 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 new file mode 100644 index 000000000..dace6d767 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java @@ -0,0 +1,61 @@ +package com.ljsd.jieling.logic.mission.main; + +import com.ljsd.jieling.logic.dao.CumulationData; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.mission.MissionLoigc; +import com.ljsd.jieling.logic.mission.MissionState; +import config.SArroGantFly; +import manager.STableManager; + +import java.util.Collection; +import java.util.List; +import java.util.Set; + +public class CowFlySkyMissionType extends AbstractMissionType { + + @Override + public void openMission(User user, int missionId, List missionTypeEnumList) { + + } + + @Override + public int[][] reward(int missionId) { + SArroGantFly arroGantFly = STableManager.getConfig(SArroGantFly.class).get(missionId); + return arroGantFly.getReward(); + } + + @Override + public void calCumulationDataResult(User user, CumulationData.Result result, List missionStateChangeInfos, CumulationData cumulationData) throws Exception { + // 进行中得任务 + Set doingMissionIds = getDoingMissionIds(); + + Collection values = STableManager.getConfig(SArroGantFly.class).values(); + for (SArroGantFly fly : values) { + // 任务子id + int id = fly.getId(); + // 不在执行中 + if(!doingMissionIds.contains(id)){ + continue; + } + // 获取任务进度 + int num = MissionLoigc.getDoingProgress(user, cumulationData, fly.getValues(), fly.getValuesII()[0]); + // 是否完成 + boolean isFinish = num >= fly.getValuesII()[1][0]; + if (!isFinish) { + // 未完成 + MissionStateChangeInfo doingInfo = new MissionStateChangeInfo(id, MissionState.DOING, num); + missionStateChangeInfos.add(doingInfo); + continue; + } + // 清除旧信息(进行中) + missionStateChangeInfos.removeIf(v->v.getMissionId()==id); + // 添加新信息(可领取) + MissionStateChangeInfo finishInfo = new MissionStateChangeInfo(id,MissionState.FINISH, fly.getReward()); + missionStateChangeInfos.add(finishInfo); + // 任务列表更新 + doingMissionIds.remove(id); + getFinishMissionIds().add(id); + + } + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/MissingRoomMissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/MissingRoomMissionType.java index 4fad7c8d9..c9ed46d1c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/MissingRoomMissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/MissingRoomMissionType.java @@ -186,11 +186,9 @@ public class MissingRoomMissionType extends AbstractMissionType{ * @param mustAppear */ public void notFreeRefreshMust(User user, int[][] refreshHighTypeNum,Map mustAppear){ - int refreshTotalCount = user.getUserMissionManager().getMissingRoomMissionType().getRefreshTotalCount(); + int count = user.getUserMissionManager().getMissingRoomMissionType().getRefreshTotalCount(); for(int[] refresh:refreshHighTypeNum){ - if(refreshTotalCount==0||refreshTotalCount%refresh[0]!=0){ - continue; - }else{ + if(count!=0 && count%refresh[0]==0){ mustAppear.put(refresh[1],mustAppear.get(refresh[1])==null?1:(mustAppear.get(refresh[1])+1)); } } diff --git a/tablemanager/src/main/java/config/SArroGantFly.java b/tablemanager/src/main/java/config/SArroGantFly.java new file mode 100644 index 000000000..7c17e236a --- /dev/null +++ b/tablemanager/src/main/java/config/SArroGantFly.java @@ -0,0 +1,49 @@ +package config; + +import manager.STableManager; +import manager.Table; + +import java.util.Map; + +@Table(name ="ArroGantFly") +public class SArroGantFly implements BaseConfig { + + private int id; + + private int activityId; + + private int values; + + private int[][] valuesII; + + private int[][] reward; + + + @Override + public void init() throws Exception { + + } + + + public int getId() { + return id; + } + + public int getActivityId() { + return activityId; + } + + public int getValues() { + return values; + } + + public int[][] getValuesII() { + return valuesII; + } + + public int[][] getReward() { + return reward; + } + + +} \ No newline at end of file From 5f335130c9e1687a75ff134d661f4f37ce931d14 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 31 Mar 2021 09:13:49 +0800 Subject: [PATCH 17/22] merge --- .../activity/RemoveEventHeroHandler.java | 4 ++- .../logic/family/GuildChallengeLogic.java | 26 +++++++++++++++++-- .../jieling/logic/store/BuyGoodsLogic.java | 2 ++ 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RemoveEventHeroHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RemoveEventHeroHandler.java index 47319f3eb..127735ec5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RemoveEventHeroHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RemoveEventHeroHandler.java @@ -27,7 +27,9 @@ public class RemoveEventHeroHandler implements IEventHandler{ } Hero hero = userInMem.getHeroManager().getHeroMap().get(heroId); Map equipMap = userInMem.getEquipManager().getEquipMap(); - hero.getEquipByPositionMap().values().forEach(equip->equipMap.get(equip).setHeroId("")); + hero.getEquipByPositionMap().values().forEach(equip-> { + equipMap.get(String.valueOf(equip)).setHeroId(""); + }); Map endlessHeroInfo = userInMem.getMapManager().getEndlessMapInfo().getEndlessHeroInfo(); if(endlessHeroInfo!=null && endlessHeroInfo.containsKey(heroId)){ endlessHeroInfo.remove(heroId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java index fc4a3f955..af0334e8f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java @@ -322,9 +322,28 @@ public class GuildChallengeLogic { } Family.GuildChallengeIndication.Builder indication = Family.GuildChallengeIndication.newBuilder() .setBlood(remainHp) - .setCurBoss(guildInfo.getCurrBossId()); - GuildLogic.sendIndicationToMemberWithoutUser(guildInfo, MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION,indication.build(),uid); +// GuildLogic.sendIndicationToMemberWithoutUser(guildInfo, MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION,indication.build(),uid); + Map> members = guildInfo.getMembers(); + for(Set items : members.values()){ + for(Integer sendUid : items){ + //把自己跳过,自己的特殊处理 + if(sendUid==uid){ + continue; + } + ISession isession = OnlineUserManager.getSessionByUid(sendUid); + Family.GuildChallengeIndication.Builder otherIndication = Family.GuildChallengeIndication.newBuilder() + .setBlood(remainHp) + .setCurBoss(guildInfo.getCurrBossId()); + if(kill==1&&!UserManager.getUser(sendUid).getGuildMyInfo().getRefreshedBoss().contains(bossId)&&guildInfo.getBossHpRemain()!=-1){ + otherIndication.setIsRefresh(1);//需要前端刷新次数 + } + if(isession!=null){ +// LOGGER.info("向{}发送indication",sendUid); + MessageUtil.sendIndicationMessage(isession,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,otherIndication.build(),true); + } + } + } indication.setIsKill(kill); //伤害排行 @@ -350,6 +369,9 @@ public class GuildChallengeLogic { PlayerLogic.getInstance().checkAndUpdate(user,config.getPrivilege()[0],1); MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true); + if(kill==1&&!UserManager.getUser(uid).getGuildMyInfo().getRefreshedBoss().contains(bossId)&&guildInfo.getBossHpRemain()!=-1){ + indication.setIsRefresh(1);//需要前端刷新次数 + } MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,indication.build(),true); } 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 abd389485..e1af070bf 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 @@ -278,7 +278,9 @@ public class BuyGoodsLogic { // if(rechargeInfo.getIsFirst()==0 && firstInvest == 1){ // ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.FirstRecharge,sRechargeCommodityConfig.getPrice()); // SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByActivityId(4).get(0); + if(sRechargeCommodityConfig.getPrice()!=0&&price!=0){ rechargeInfo.setFirst(1); + } // String title = SErrorCodeEerverConfig.getI18NMessage("recharge_first_title"); // String content = SErrorCodeEerverConfig.getI18NMessage("recharge_first_txt"); // MailLogic.getInstance().sendMail(user.getId(),title,content,ItemUtil.getMailReward(sActivityRewardConfig.getReward()),nowTime, Global.MAIL_EFFECTIVE_TIME); From 2b06894b07757f9cd82ee7278053efb4b30424d2 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 23 Mar 2021 03:30:42 +0800 Subject: [PATCH 18/22] merge2 --- .../logic/family/GuildChallengeLogic.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java index af0334e8f..ec5dd8f26 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java @@ -25,6 +25,8 @@ import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank; import com.ljsd.jieling.logic.store.StoreLogic; import com.ljsd.jieling.network.server.ProtocolsManager; import com.ljsd.jieling.network.session.ISession; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import rpc.protocols.CommonProto; import rpc.protocols.Family; import rpc.protocols.MessageTypeProto; @@ -46,6 +48,7 @@ import java.util.concurrent.ConcurrentHashMap; */ public class GuildChallengeLogic { + private static final Logger LOGGER = LoggerFactory.getLogger(GuildChallengeLogic.class); public static GuildChallengeLogic getInstance() { return Instance.instance; } @@ -322,7 +325,11 @@ public class GuildChallengeLogic { } Family.GuildChallengeIndication.Builder indication = Family.GuildChallengeIndication.newBuilder() .setBlood(remainHp) +<<<<<<< HEAD +======= + .setCurBoss(guildInfo.getCurrBossId()); +>>>>>>> 4c0ce0872... 工会副本修改 // GuildLogic.sendIndicationToMemberWithoutUser(guildInfo, MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION,indication.build(),uid); Map> members = guildInfo.getMembers(); for(Set items : members.values()){ @@ -332,6 +339,7 @@ public class GuildChallengeLogic { continue; } ISession isession = OnlineUserManager.getSessionByUid(sendUid); +<<<<<<< HEAD Family.GuildChallengeIndication.Builder otherIndication = Family.GuildChallengeIndication.newBuilder() .setBlood(remainHp) .setCurBoss(guildInfo.getCurrBossId()); @@ -341,6 +349,14 @@ public class GuildChallengeLogic { if(isession!=null){ // LOGGER.info("向{}发送indication",sendUid); MessageUtil.sendIndicationMessage(isession,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,otherIndication.build(),true); +======= + if(kill==1&&!UserManager.getUser(sendUid).getGuildMyInfo().getRefreshedBoss().contains(bossId)&&guildInfo.getBossHpRemain()!=-1){ + indication.setIsRefresh(1);//需要前端刷新次数 + } + if(isession!=null){ + LOGGER.info("向{}发送indication",sendUid); + MessageUtil.sendIndicationMessage(isession,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,indication.build(),true); +>>>>>>> 4c0ce0872... 工会副本修改 } } } From 4fa6b8e8af10e82d3dd4faabb823550e6aa1419a Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 27 Mar 2021 16:43:49 +0800 Subject: [PATCH 19/22] =?UTF-8?q?=E5=86=B2=E7=AA=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/family/GuildChallengeLogic.java | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java index ec5dd8f26..c7039424f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java @@ -325,11 +325,7 @@ public class GuildChallengeLogic { } Family.GuildChallengeIndication.Builder indication = Family.GuildChallengeIndication.newBuilder() .setBlood(remainHp) -<<<<<<< HEAD - -======= .setCurBoss(guildInfo.getCurrBossId()); ->>>>>>> 4c0ce0872... 工会副本修改 // GuildLogic.sendIndicationToMemberWithoutUser(guildInfo, MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION,indication.build(),uid); Map> members = guildInfo.getMembers(); for(Set items : members.values()){ @@ -339,7 +335,6 @@ public class GuildChallengeLogic { continue; } ISession isession = OnlineUserManager.getSessionByUid(sendUid); -<<<<<<< HEAD Family.GuildChallengeIndication.Builder otherIndication = Family.GuildChallengeIndication.newBuilder() .setBlood(remainHp) .setCurBoss(guildInfo.getCurrBossId()); @@ -349,14 +344,6 @@ public class GuildChallengeLogic { if(isession!=null){ // LOGGER.info("向{}发送indication",sendUid); MessageUtil.sendIndicationMessage(isession,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,otherIndication.build(),true); -======= - if(kill==1&&!UserManager.getUser(sendUid).getGuildMyInfo().getRefreshedBoss().contains(bossId)&&guildInfo.getBossHpRemain()!=-1){ - indication.setIsRefresh(1);//需要前端刷新次数 - } - if(isession!=null){ - LOGGER.info("向{}发送indication",sendUid); - MessageUtil.sendIndicationMessage(isession,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,indication.build(),true); ->>>>>>> 4c0ce0872... 工会副本修改 } } } From 1b472203e777b0174d48724f176d73323584f382 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 27 Mar 2021 18:45:00 +0800 Subject: [PATCH 20/22] =?UTF-8?q?=E6=8A=A5=E9=94=99=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 49336f1c6..4942a217a 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 @@ -1332,7 +1332,7 @@ public class MapLogic { .newBuilder() .setResult(resultCode) .setEnventDrop(dropBuilder) - .addAllRemainHpList(remainHp) +// .addAllRemainHpList(remainHp) .setEssenceValue(mapManager.getTrialInfo().getEnergy()) .setLastXY(mapManager.getLastXY()) .build(); @@ -1384,7 +1384,7 @@ public class MapLogic { } fastFightResponse.setEnventDrop(drop.build()); fastFightResponse.setResult(resultCode); - fastFightResponse.addAllRemainHpList(remainHp); +// fastFightResponse.addAllRemainHpList(remainHp); fastFightResponse.setEssenceValue(mapManager.getTrialInfo().getEnergy()); fastFightResponse.build(); From ad35dedf3b66e2547f5de78e1e6e36d435db8fdb Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 31 Mar 2021 09:13:49 +0800 Subject: [PATCH 21/22] =?UTF-8?q?0=E5=85=83=E4=B8=8D=E7=AE=97=E9=A6=96?= =?UTF-8?q?=E5=86=B2=E4=BF=AE=E6=94=B9=EF=BC=8C=E5=85=AC=E4=BC=9A=E5=89=AF?= =?UTF-8?q?=E6=9C=AC=E6=8E=A8=E9=80=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/RemoveEventHeroHandler.java | 4 +++- .../ljsd/jieling/logic/family/GuildChallengeLogic.java | 10 ++++++++-- .../com/ljsd/jieling/logic/store/BuyGoodsLogic.java | 2 ++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RemoveEventHeroHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RemoveEventHeroHandler.java index 47319f3eb..127735ec5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RemoveEventHeroHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RemoveEventHeroHandler.java @@ -27,7 +27,9 @@ public class RemoveEventHeroHandler implements IEventHandler{ } Hero hero = userInMem.getHeroManager().getHeroMap().get(heroId); Map equipMap = userInMem.getEquipManager().getEquipMap(); - hero.getEquipByPositionMap().values().forEach(equip->equipMap.get(equip).setHeroId("")); + hero.getEquipByPositionMap().values().forEach(equip-> { + equipMap.get(String.valueOf(equip)).setHeroId(""); + }); Map endlessHeroInfo = userInMem.getMapManager().getEndlessMapInfo().getEndlessHeroInfo(); if(endlessHeroInfo!=null && endlessHeroInfo.containsKey(heroId)){ endlessHeroInfo.remove(heroId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java index 0cd6c645e..261948a69 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java @@ -335,12 +335,15 @@ public class GuildChallengeLogic { continue; } ISession isession = OnlineUserManager.getSessionByUid(sendUid); + Family.GuildChallengeIndication.Builder otherIndication = Family.GuildChallengeIndication.newBuilder() + .setBlood(remainHp) + .setCurBoss(guildInfo.getCurrBossId()); if(kill==1&&!UserManager.getUser(sendUid).getGuildMyInfo().getRefreshedBoss().contains(bossId)&&guildInfo.getBossHpRemain()!=-1){ - indication.setIsRefresh(1);//需要前端刷新次数 + otherIndication.setIsRefresh(1);//需要前端刷新次数 } if(isession!=null){ LOGGER.info("向{}发送indication",sendUid); - MessageUtil.sendIndicationMessage(isession,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,indication.build(),true); + MessageUtil.sendIndicationMessage(isession,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,otherIndication.build(),true); } } } @@ -369,6 +372,9 @@ public class GuildChallengeLogic { PlayerLogic.getInstance().checkAndUpdate(user,config.getPrivilege()[0],1); MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true); + if(kill==1&&!UserManager.getUser(uid).getGuildMyInfo().getRefreshedBoss().contains(bossId)&&guildInfo.getBossHpRemain()!=-1){ + indication.setIsRefresh(1);//需要前端刷新次数 + } MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,indication.build(),true); } 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 abd389485..e1af070bf 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 @@ -278,7 +278,9 @@ public class BuyGoodsLogic { // if(rechargeInfo.getIsFirst()==0 && firstInvest == 1){ // ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.FirstRecharge,sRechargeCommodityConfig.getPrice()); // SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByActivityId(4).get(0); + if(sRechargeCommodityConfig.getPrice()!=0&&price!=0){ rechargeInfo.setFirst(1); + } // String title = SErrorCodeEerverConfig.getI18NMessage("recharge_first_title"); // String content = SErrorCodeEerverConfig.getI18NMessage("recharge_first_txt"); // MailLogic.getInstance().sendMail(user.getId(),title,content,ItemUtil.getMailReward(sActivityRewardConfig.getReward()),nowTime, Global.MAIL_EFFECTIVE_TIME); From e39ac0cd6183239560ee80668394bbd770d9333a Mon Sep 17 00:00:00 2001 From: lvxinran Date: Mon, 29 Mar 2021 14:29:35 +0800 Subject: [PATCH 22/22] =?UTF-8?q?=E5=86=B2=E7=AA=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/family/GuildChallengeLogic.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java index 75a761900..261948a69 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java @@ -342,11 +342,7 @@ public class GuildChallengeLogic { otherIndication.setIsRefresh(1);//需要前端刷新次数 } if(isession!=null){ -<<<<<<< HEAD LOGGER.info("向{}发送indication",sendUid); -======= -// LOGGER.info("向{}发送indication",sendUid); ->>>>>>> master_online_gn MessageUtil.sendIndicationMessage(isession,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,otherIndication.build(),true); } }