From 3603493efaa8b93c643825feafbb278318e29070 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 28 Apr 2020 21:22:50 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=AE=9D=E5=99=A8=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/exception/ErrorCode.java | 2 +- .../com/ljsd/jieling/globals/BIReason.java | 3 + .../handler/UseAndPriceItemHandler.java | 1 + .../handler/equip/JewelBuildHandler.java | 2 +- .../ljsd/jieling/logic/hero/HeroLogic.java | 67 ++++- .../ljsd/jieling/logic/item/ItemLogic.java | 235 ++++++++++-------- .../java/com/ljsd/jieling/util/ItemUtil.java | 8 +- .../main/java/config/SJewelRankupConfig.java | 3 +- 8 files changed, 203 insertions(+), 118 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 f89ff5e1a..6ff7b88ea 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java @@ -103,7 +103,7 @@ public enum ErrorCode implements IErrorCode { HERO_LEVE_WRONG(68,"level wrong"), HERO_LEVE_DOWN(69,"等级不够"), HERO_UN_MATCH(70,"所选英雄不符合"), - HERO_OPT_ONE(71,"法宝智能穿戴一个"), + HERO_OPT_ONE(71,"法宝只能穿戴一个"), HERO_USE_LEVE(72,"玩家等级不够,无法装备!"), HERO_LEVE_LOW(73,"妖灵师等级不够,无法装备!"), HERO_HERO_MAX(74,"英雄已达上限"), 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 1aaa25f84..2b0a451de 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -123,6 +123,8 @@ public interface BIReason { int REPLACE_SOUL_REWARD = 69;//替换魂印 + int JEWEL_DECOMPOSE = 70;//分解宝器 + int ADVENTURE_UPLEVEL_CONSUME = 1000;//秘境升级 int SECRETBOX_CONSUME = 1001;//秘盒抽卡 @@ -224,6 +226,7 @@ public interface BIReason { int SOUL_EQUIP_MERGE_CONSUME = 1054;// 合成魂印消耗 + int JEWEL_BUILD_OR_UP_CONSUME = 1055;//宝器升级或精炼消耗 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/UseAndPriceItemHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/UseAndPriceItemHandler.java index 2c5204656..7188b49ce 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/UseAndPriceItemHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/UseAndPriceItemHandler.java @@ -39,6 +39,7 @@ public class UseAndPriceItemHandler extends BaseHandler { 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 f21e4c75a..da7440d90 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 @@ -1340,7 +1340,64 @@ public class HeroLogic{ combinedAttribute(equipTali.getProperty(),heroAllAttribute); } - //魂印加成 + //宝器加成 + Set jewelInfo = hero.getJewelInfo(); + boolean flashing = jewelInfo.size()==2; + int minLevel = -1; + int minBuildLevel = -1; + for (String jewel: jewelInfo) { + + PropertyItem propertyItem = user.getEquipManager().getEquipMap().get(jewel); + if(propertyItem==null) + continue; + Jewel j = (Jewel)propertyItem; + SJewelConfig config = STableManager.getConfig(SJewelConfig.class).get(j.getEquipId()); + Map> poolMap = SJewelRankupConfig.rankupMap.get(config.getRankupPool()); + if(poolMap==null){ + continue; + } + if(flashing){ + if(minLevel==-1){ + minLevel = j.getLevel(); + }else{ + minLevel = Math.min(j.getLevel(),minLevel); + } + if(minBuildLevel==-1){ + minBuildLevel = j.getBuildLevel(); + }else{ + minBuildLevel = Math.min(j.getBuildLevel(),minBuildLevel); + } + } + int[][] property = poolMap.get(1).get(j.getLevel()).getProperty(); + combinedAttribute(property,heroAllAttribute); + property = poolMap.get(2).get(j.getBuildLevel()).getProperty(); + combinedAttribute(property,heroAllAttribute); + } + //宝器共鸣 + if(flashing){ + Map config = STableManager.getConfig(SJewelResonanceConfig.class); + int levelProperty = 0; + int buildLevelProperty = 0; + for (SJewelResonanceConfig value:config.values()){ + if(value.getType()==1){ + levelProperty = value.getLevel()>minLevel?levelProperty:(value.getId()>levelProperty? value.getId():levelProperty); + } + if(value.getType()==2){ + buildLevelProperty = value.getLevel()>minBuildLevel?buildLevelProperty:(value.getId()>buildLevelProperty? value.getId():buildLevelProperty); + } + } + if(levelProperty!=0){ +// System.out.println("宝器强化共鸣"+"......"+propertyToString(config.get(levelProperty).getProperty())); + + combinedAttribute(config.get(levelProperty).getProperty(),heroAllAttribute); + } + if(buildLevelProperty!=0){ +// System.out.println("宝器精炼共鸣"+"......"+propertyToString(config.get(buildLevelProperty).getProperty())); + + combinedAttribute(config.get(buildLevelProperty).getProperty(),heroAllAttribute); + } + } + //皮肤、称号加成 int decoration = user.getPlayerInfoManager().getDecoration(); @@ -1411,7 +1468,13 @@ public class HeroLogic{ return heroAllAttribute; } - + private String propertyToString(int[][] property){ + StringBuilder builder = new StringBuilder(); + for(int[] pro:property){ + builder.append(pro[0]).append("#").append(pro[1]).append("\n"); + } + return builder.toString(); + } public Map calRobotHeroAttribute(SCHero scHero,int heroLevel,int heroBrekId,int[] pokemonIds,int pokemonLevel,boolean isForce){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java index 942eef8a2..a35a1667d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java @@ -99,10 +99,11 @@ public class ItemLogic { } public static void sendUseAndPriceItemMessage(ISession iSession, int msgId, CommonProto.Drop.Builder drop) { - PlayerInfoProto.UseAndPriceItemResponse useAndPriceItemResponse = PlayerInfoProto.UseAndPriceItemResponse.newBuilder() - .setDrop(drop) - .build(); - MessageUtil.sendMessage(iSession, 1,msgId, useAndPriceItemResponse, true); + PlayerInfoProto.UseAndPriceItemResponse.Builder useAndPriceItemResponse = PlayerInfoProto.UseAndPriceItemResponse.newBuilder(); + if(drop!=null){ + useAndPriceItemResponse.setDrop(drop); + } + MessageUtil.sendMessage(iSession, 1,msgId, useAndPriceItemResponse.build(), true); } /** @@ -179,21 +180,68 @@ public class ItemLogic { CommonProto.Drop.Builder drop = ItemUtil.drop(user,StringUtil.parseFiledInt(reward.toString()),1,0,BIReason.DECOMPOS_EQUIP_REWARD); sendUseAndPriceItemMessage(iSession, msgId, drop); } + //宝器分解 + public void decomposeJewel(ISession session,List jewelList) throws Exception { + User user = UserManager.getUser(session.getUid()); + Map equipMap = user.getEquipManager().getEquipMap(); + List items = new ArrayList<>(); + StringBuilder reward = new StringBuilder(); + for (String jewelId : jewelList) { + if(!equipMap.containsKey(jewelId)) + throw new ErrorCodeException(ErrorCode.ITEM_DECOMPOSE_NO_EQUIP); + PropertyItem propertyItem = equipMap.get(jewelId); + if(!StringUtil.isEmpty(propertyItem.getHeroId())) + throw new ErrorCodeException(ErrorCode.ITEM_DECOMPOSE_SOULE_CANT); + Jewel jewel = (Jewel)propertyItem; + SJewelConfig config = STableManager.getConfig(SJewelConfig.class).get(propertyItem.getEquipId()); + if(jewel.getLevel()!=0){ + Map rankupConfigMap = SJewelRankupConfig.rankupMap.get(config.getLevelupPool()).get(1); + for(SJewelRankupConfig value:rankupConfigMap.values()){ + if(value.getLevel() buildUpConfigMap = SJewelRankupConfig.rankupMap.get(config.getRankupPool()).get(2); + for(SJewelRankupConfig value:buildUpConfigMap.values()){ + if(value.getLevel() equipIdsList) throws Exception { - int msgId = MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE; - int uid = iSession.getUid(); - User user = UserManager.getUser(uid); - EquipManager equipManager = user.getEquipManager(); - Map reward = new HashMap<>(); - CommonProto.Drop.Builder drop = ItemUtil.dropMap(user,reward,BIReason.DECOMPOS_EQUIP_REWARD); - sendUseAndPriceItemMessage(iSession, msgId, drop); + } + + int[][] dropItems = items.toArray(new int[items.size()][]); + CommonProto.Drop.Builder drop = ItemUtil.drop(user, StringUtil.parseFiledInt(reward.toString()), 1, 0,BIReason.JEWEL_DECOMPOSE); + ItemUtil.drop(user,dropItems,drop,BIReason.JEWEL_DECOMPOSE); + sendUseAndPriceItemMessage(session,MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE,drop); } private ErrorCode checkEquipResolve(List equipIdsList,EquipManager equipManager) { @@ -433,92 +481,6 @@ public class ItemLogic { } } - /** - * 占星 - * - * @param session session - * @param time 次数 50一档 - * @throws Exception - */ - public void soulEquipRand(ISession session, int time) throws Exception { - int uid = session.getUid(); - User user = UserManager.getUser(uid); - int currentPool = user.getEquipManager().getSoulEquipPool(); - - SEquipTalismanaLottery lottery = STableManager.getConfig(SEquipTalismanaLottery.class).get(currentPool); - if (null == lottery) { - throw new Exception("SEquipTalismanaLottery 配置不存在" + currentPool); - } - //50cost - int[][] tempCost = new int[1][]; - if (time == 50) { - tempCost[0] = lottery.getRepeatedlyCost(); - } - - //cost and drop - Map itemMap = new HashMap<>(); - ArrayList droplist = new ArrayList<>(); - int realTime = 0; - int randTime = time == 1 ? 1 : 50; - for (int i = 0; i < randTime; i++) { - SEquipTalismanaLottery lotteryIn = STableManager.getConfig(SEquipTalismanaLottery.class).get(currentPool); - if (null == lotteryIn) { - throw new Exception("SEquipTalismanaLottery 配置不存在" + currentPool); - } - if (time != 50) { - int itemId = lotteryIn.getCostItem()[0]; - int itemNum = lotteryIn.getCostItem()[1]; - itemMap.merge(itemId, itemNum, (a, b) -> b + a); - boolean result = ItemUtil.checkCost(user, itemMap); - if (!result) { - itemMap.merge(itemId, itemNum, (a, b) -> a - b); - break; - } - } - - currentPool = MathUtils.randomFromWeight(lotteryIn.getProbability()); - SEquipTalismanaLottery nextLotteryIn = STableManager.getConfig(SEquipTalismanaLottery.class).get(currentPool); - if (null == nextLotteryIn) { - throw new Exception("SEquipTalismanaLottery 配置不存在" + currentPool); - } - droplist.add(MathUtils.randomFromWeight(nextLotteryIn.getDrop())); - realTime++; - } - if (time != 50) { - tempCost = new int[itemMap.size()][2]; - int index = 0; - for (Map.Entry entry : itemMap.entrySet()) { - tempCost[index][0] = entry.getKey(); - tempCost[index][1] = entry.getValue(); - index++; - } - } - - boolean enoughCost = ItemUtil.itemCost(user, tempCost, BIReason.RANDOM_SOULEQUIP_CONSUME, 0); - if (!enoughCost) { - throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); - } - if (realTime == 0) { - MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.SOUL_RAND_EQUIP_RESPONSE_VALUE, HeroInfoProto.SoulRandResponse.newBuilder().setTime(0).build(), true); - return; - } - user.getEquipManager().setSoulEquipPool(currentPool); - int[] dropArray = droplist.stream().mapToInt(Integer::valueOf).toArray(); - CommonProto.Drop.Builder drop = ItemUtil.drop(user, dropArray, 1, 0, BIReason.RANDOM_SOULEQUIP); - - HeroInfoProto.SoulRandResponse.Builder builder = HeroInfoProto.SoulRandResponse.newBuilder(); - builder.setDrop(drop); - builder.setPos(currentPool); - builder.setTime(realTime); - user.getUserMissionManager().onGameEvent(user, GameEvent.FIND_STAR, time); - MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.SOUL_RAND_EQUIP_RESPONSE_VALUE, builder.build(), true); - } - - - public static int getSoulCfgIdByEquipId(int equipId,int leve){ - return equipId*100+leve; - } - public void addItemLog(ItemLog itemLog){ ItemLogUtil.addLogQueue(itemLog); } @@ -537,10 +499,18 @@ public class ItemLogic { return equiplist; } + /** + * 宝器强化 精炼 + * @param iSession + * @param type + * @param jId + * @param items + * @throws Exception + */ public void jewelBuild(ISession iSession,int type,String jId,List items) throws Exception { User user = UserManager.getUser(iSession.getUid()); PropertyItem propertyItem = user.getEquipManager().getEquipMap().get(jId); - if(propertyItem==null||!(propertyItem instanceof Jewel)){ + if(!(propertyItem instanceof Jewel)){ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } @@ -550,20 +520,67 @@ public class ItemLogic { if(config==null){ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } + int level; + int poolType; if(type==1){//强化 if(jewel.getLevel()>=config.getMax()[0]){ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } + level = jewel.getLevel(); + poolType = config.getLevelupPool(); }else{//精炼 + if(jewel.getBuildLevel()>=config.getMax()[1]){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + level = jewel.getBuildLevel(); + poolType = config.getRankupPool(); } + SJewelRankupConfig sJewelRankupConfig = SJewelRankupConfig.rankupMap.get(poolType).get(type).get(level); + if(items!=null&&items.size()>0){ + int[][] jewelExpend = sJewelRankupConfig.getJewelExpend(); + Map expendMap = new HashMap<>(); + for(int[] expend:jewelExpend){ + expendMap.put(expend[0]==1?jewel.getEquipId():expend[0],expend[1]); + } + for(String item:items){ + PropertyItem proItem = user.getEquipManager().getEquipMap().get(item); + if(proItem==null){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + if(!StringUtil.isEmpty(proItem.getHeroId())){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + Integer count= expendMap.get(proItem.getEquipId()); + if(count==null) { + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + expendMap.put(proItem.getEquipId(),count-1); + } + for(Integer values:expendMap.values()){ + if(values!=0) + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + }else{ + if (sJewelRankupConfig.getJewelExpend().length>0){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + } + for(String item:items){ + user.getEquipManager().getEquipMap().remove(item); + } + boolean itemCost = ItemUtil.itemCost(user, sJewelRankupConfig.getUpExpend(), BIReason.JEWEL_BUILD_OR_UP_CONSUME, 1); + if(!itemCost){ + throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); + } - - - - + if(type==1){//强化 + jewel.setLevel(jewel.getLevel()+1); + }else{//精炼 + jewel.setBuildLevel(jewel.getBuildLevel()+1); + } MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.JEWEL_BUILD_RESPONSE_VALUE,null,true); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index 2c5cfd8bf..f3c0e0fc5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -973,6 +973,7 @@ public class ItemUtil { } StringBuilder reward = new StringBuilder(); List equipList = new CopyOnWriteArrayList<>(); + List jewelList = new CopyOnWriteArrayList<>(); for (Map.Entry entry : equipMap.entrySet()) { int itemType = SItem.getsItemMap().get(entry.getKey()).getItemType(); if(!filter.contains(itemType)){ @@ -988,7 +989,7 @@ public class ItemUtil { } continue; } - addEquip(user, entry.getKey(), equipList); + addEquip(user, entry.getKey(), equipList,jewelList); KtEventUtils.onKtEvent(user, ParamEventBean.UserItemEvent,reason,GlobalsDef.addReason,entry.getKey(),1,-1); } } @@ -999,6 +1000,7 @@ public class ItemUtil { MessageUtil.nofityBagIsFull(user); } dropBuilder.addAllEquipId(equipList); + dropBuilder.addAllSoulEquip(jewelList); } @@ -1021,7 +1023,7 @@ public class ItemUtil { return reward.toString(); } - private static void addEquip(User user,int equipId ,List equipList) throws Exception { + private static void addEquip(User user,int equipId ,List equipList,List jewelList) throws Exception { EquipManager equipManager = user.getEquipManager(); SItem item = SItem.getsItemMap().get(equipId); int itemType = item.getItemType(); @@ -1035,7 +1037,7 @@ public class ItemUtil { if(itemType==GlobalItemType.JEWEL){ Jewel equip = new Jewel(user.getId(),equipId); equipManager.addEquip(user,equip); - equipList.add(CBean2Proto.getEquipProto(equip)); + jewelList.add(CBean2Proto.getEquipProto(equip)); msgTem="lamp_lottery_equip_content"; } if (item.getQuantity() >= SSpecialConfig.getIntegerValue(msgTem+"_parm")) { diff --git a/tablemanager/src/main/java/config/SJewelRankupConfig.java b/tablemanager/src/main/java/config/SJewelRankupConfig.java index 431e05acf..183b178d8 100644 --- a/tablemanager/src/main/java/config/SJewelRankupConfig.java +++ b/tablemanager/src/main/java/config/SJewelRankupConfig.java @@ -23,7 +23,7 @@ public class SJewelRankupConfig implements BaseConfig { private int[][] upExpend; - private static Map>> rankupMap = new HashMap<>(); + public static Map>> rankupMap = new HashMap<>(); @Override public void init() throws Exception { @@ -32,7 +32,6 @@ public class SJewelRankupConfig implements BaseConfig { rankupMap.computeIfAbsent(config.getPoolID(), k -> new HashMap<>()); rankupMap.get(config.getPoolID()).computeIfAbsent(config.getType(),k->new HashMap<>()); rankupMap.get(config.getPoolID()).get(config.getType()).put(config.getLevel(),config); - System.out.println(); } } From ee2d0ddb69e002d3ba6696e3a3b9f7312a14e1c5 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Wed, 29 Apr 2020 11:02:35 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=B8=83=E6=97=A5=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=94=B1=E5=85=AD=E5=A4=A9=E5=8F=98=E6=88=90=E4=B8=83=E5=A4=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/jbean/ActivityManager.java | 10 --------- .../logic/activity/DefaultEmptyActivity.java | 3 --- .../jieling/logic/dao/UserMissionManager.java | 2 +- .../jieling/logic/mission/MissionLoigc.java | 2 +- .../jieling/logic/player/PlayerLogic.java | 21 +++++++------------ 5 files changed, 10 insertions(+), 28 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/jbean/ActivityManager.java b/serverlogic/src/main/java/com/ljsd/jieling/jbean/ActivityManager.java index 4c42a3e4d..1ec6ea0ee 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/jbean/ActivityManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/jbean/ActivityManager.java @@ -14,7 +14,6 @@ public final class ActivityManager extends MongoBase { private HashMap activityMissionMap = new HashMap(); @Transient private LogHashMap> activityMissionMapLog ; - private long senvenTime; // 七日狂欢结束时间 private long senvenStartTime; // 七日狂欢开始时间 private com.ljsd.jieling.jbean.LuckWheelMission luckWheel; // 幸运探宝奖池 private com.ljsd.jieling.jbean.LuckWheelMission luckWheelAdvance; // 高级幸运探宝奖池 @@ -26,7 +25,6 @@ public final class ActivityManager extends MongoBase { public ActivityManager(ActivityManager _o_ ) { this.activityMissionMap = new HashMap(); _o_.activityMissionMap.forEach((_k_, _v_) -> this.activityMissionMap.put(_k_, new ActivityMission(_v_))); - this.senvenTime = _o_.senvenTime; this.luckWheel = new LuckWheelMission(_o_.luckWheel); this.luckWheelAdvance = new LuckWheelMission(_o_.luckWheelAdvance); } @@ -37,9 +35,6 @@ public final class ActivityManager extends MongoBase { return this.activityMissionMapLog; } - public long getSenvenTime() { // 七日狂欢结束时间 - return this.senvenTime; - } public com.ljsd.jieling.jbean.LuckWheelMission getLuckWheel() { // 幸运探宝奖池 return this.luckWheel; @@ -59,10 +54,6 @@ public final class ActivityManager extends MongoBase { return senvenStartTime; } - public void setSenvenTime(long senventime) { // 七日狂欢结束时间 - updateString("senvenTime",senventime); - this.senvenTime = senventime; - } public void setLuckWheel(LuckWheelMission luckwheel) { // 幸运探宝奖池 updateString("luckWheel",luckwheel); @@ -82,7 +73,6 @@ public final class ActivityManager extends MongoBase { StringBuilder _sb_ = new StringBuilder(super.toString()); _sb_.append("=("); _sb_.append(this.activityMissionMap).append(","); - _sb_.append(this.senvenTime).append(","); _sb_.append(this.luckWheel).append(","); _sb_.append(this.luckWheelAdvance).append(","); _sb_.append(")"); 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 5ddac41e5..a9df0cef6 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 @@ -27,14 +27,11 @@ public class DefaultEmptyActivity extends AbstractActivity{ public void initActivity(User user) throws Exception { ActivityMission mission = new ActivityMission(); ActivityLogic.getInstance().initOtherMission(mission,new ArrayList<>()); -// mission.initOtherMission(new ArrayList<>(0)); user.getActivityManager().getActivityMissionMap().put(id, mission); SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); if(sGlobalActivity.getType() == ActivityType.SERVERHAPPY){ user.getUserMissionManager().onGameEvent(user, GameEvent.SERVENHAPPY_REFRESH,id); - long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2) - 24 * 3600 * 1000; long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1); - user.getActivityManager().setSenvenTime(endTime); user.getActivityManager().setSenvenStartTime(startTime); } } 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 cf6aeedae..34fb431b9 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 @@ -370,7 +370,7 @@ public class UserMissionManager extends MongoBase { if(!sevenHappyMissionType.getDoingMissionIds().isEmpty() ){ List sTreasureTaskConfigs = STableManager.getFigureConfig(TaskStaticConfig.class).getsTreasureTaskConfigListByTypeMap().get(missionType.getMissionTypeValue()); - if(sTreasureTaskConfigs!=null && user.getActivityManager().getSenvenTime()>System.currentTimeMillis()){ + if(sTreasureTaskConfigs!=null){ if(missionType == MissionType.LOGIN_TIMES){ parm=new Object[]{TimeUtils.differentDays(user.getActivityManager().getSenvenStartTime(),System.currentTimeMillis())+1}; } 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 9b6888e59..849ad25d1 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 @@ -420,7 +420,7 @@ public class MissionLoigc { } } - if(type == GameMisionType.SEVENMISSION.getType() && user.getActivityManager().getSenvenTime()>System.currentTimeMillis()){ + if(type == GameMisionType.SEVENMISSION.getType()){ Map> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.SEVENHAPPY_MISSION_REWARD, missionId); missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.SEVENMISSION); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 93b939c17..a624a0a1b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -76,16 +76,14 @@ public class PlayerLogic { } if(sevenActivityId!=0){ STreasureTaskConfig sTreasureTaskConfig =STableManager.getFigureConfig(TaskStaticConfig.class).getsTreasureSevenTaskConfigByActivityMap().get(sevenActivityId); - if(user.getActivityManager().getSenvenTime()<=System.currentTimeMillis()){ - BitSet rewardedMissionIds = user.getUserMissionManager().getSevenHappyMissionType().getRewardedMissionIds(); - MissionState state = MissionState.FINISH; - if(rewardedMissionIds.get(sTreasureTaskConfig.getId())){ - state = MissionState.REWARD; - } - int progrss = MissionLoigc.getDoingProgress(user,user.getUserMissionManager().getSevenHappyCumulationData(),sTreasureTaskConfig.getTaskType(),sTreasureTaskConfig.getTaskValue()[0]); - MissionStateChangeInfo missionStateChangeInfo = new MissionStateChangeInfo(sTreasureTaskConfig.getId(), state, progrss); - MissionEventDistributor.getMissionStateChangeInfo(GameMisionType.SEVENMISSION).add(missionStateChangeInfo); + BitSet rewardedMissionIds = user.getUserMissionManager().getSevenHappyMissionType().getRewardedMissionIds(); + MissionState state = MissionState.FINISH; + if(rewardedMissionIds.get(sTreasureTaskConfig.getId())){ + state = MissionState.REWARD; } + int progrss = MissionLoigc.getDoingProgress(user,user.getUserMissionManager().getSevenHappyCumulationData(),sTreasureTaskConfig.getTaskType(),sTreasureTaskConfig.getTaskValue()[0]); + MissionStateChangeInfo missionStateChangeInfo = new MissionStateChangeInfo(sTreasureTaskConfig.getId(), state, progrss); + MissionEventDistributor.getMissionStateChangeInfo(GameMisionType.SEVENMISSION).add(missionStateChangeInfo); } } MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.UPDATE_STATE_RESPONSE_VALUE,null,true); @@ -638,10 +636,7 @@ public class PlayerLogic { public void takeSevenScoreReward(ISession iSession) throws Exception { User user = UserManager.getUser(iSession.getUid()); int msgId = MessageTypeProto.MessageType.TAKE_SEVEN_HAPPY_REWARD_RESPONSE_VALUE; - long senvenTime = user.getActivityManager().getSenvenTime(); - if(senvenTime == 0 || senvenTime> System.currentTimeMillis()){ - throw new ErrorCodeException(ErrorCode.newDefineCode("时间未到")); - } + Map activityMissionMap = user.getActivityManager().getActivityMissionMap(); int treasureActivityId = 0; for(Integer activityId : activityMissionMap.keySet()){