diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java index 681255c4e..c0cd50697 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java @@ -245,7 +245,7 @@ public class TreasureActivity extends AbstractActivity { for(int i = 1 ; i<=user.getPlayerInfoManager().getTreasureLevel();i++){ Map progressInfoMap = activityMission.getActivityMissionMap(); int state =progressInfoMap.get(i).getState(); - if(state==destState||state==ActivityType.FINISH_TAKED) { + if(state == destState || state == ActivityType.FINISH_TAKED) { continue; } dropByState(dropList,state,destState,i); 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 42be73718..880610489 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 @@ -117,7 +117,7 @@ public enum MissionType { GOT_ANY_ITEM(109),//暂时不实现,占位,任意途径获得quality品质(无品质限定为0)type类别(无类别限制为-1)的itemid道具(无指定道具限定为0)num个 - CAR_PLAY_DAYS(110),//累计n天挑战车迟斗法 TODO 确认如果是累计则105已实现,如果是连续需要实现 + //110-累计n天挑战车迟斗法 --类型105已实现 ARENA_CONSECUTIVE_WIN(111),//竞技场连胜 PLAY_MINI_GAME_TIMES(112),//森罗幻境中参与n次小游戏 CHAMPIONSHIP_RANK(113),//巅峰联赛中达到num名 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/BuyGoodsManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/BuyGoodsManager.java index d4734ad32..ef12ab037 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/BuyGoodsManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/BuyGoodsManager.java @@ -11,7 +11,8 @@ public class BuyGoodsManager implements BaseDataManager { int itemId = (int)parm[0]; int itemNum = (int)parm[1]; int storeType = (int)parm[2]; - if(storeType == StoreType.FUNCTION_STORE.getType() && missionType == MissionType.BUY_GOLD_TIMES && itemId == Global.GOLD){ + if((storeType == StoreType.FUNCTION_STORE.getType() || storeType == StoreType.GOLD_STORE.getType()) + && missionType == MissionType.BUY_GOLD_TIMES && itemId == Global.GOLD){ data.buyGoldTimes = data.buyGoldTimes + itemNum; return new CumulationData.Result(missionType); }else if(storeType == StoreType.FUNCTION_STORE.getType() && missionType == MissionType.BUY_STAMINA_TIMES && itemId == Global.STAMINA){ 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 5b17ea23e..f1781c4de 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 @@ -426,7 +426,7 @@ public class BuyGoodsLogic { * 方法最后边的月卡和基金的每日邮件也不会发送 * 备注下,如果发了月卡和基金的每日邮件反而是错的,还要改回来 */ - if(starReward != 0){ + if(starReward > 0){ StringBuilder rewardStr = new StringBuilder(); while (starReward>0){ SChallengeStarBox sChallengeStarBox = STableManager.getConfig(SChallengeStarBox.class).get(starReward); @@ -447,7 +447,8 @@ public class BuyGoodsLogic { } if(user.getPlayerInfoManager().getMonthCard().containsKey(Global.MONTHCARDID) || goodsType == GiftGoodsType.WEEKCARD || goodsType == GiftGoodsType.FOUND_ONE || goodsType == GiftGoodsType.FOUND_TWO){ PlayerLogic.getInstance().sendDayilyMail(user,goodsType); - }else if(goodsType == GiftGoodsType.SUN_LONG ){ + } + if(goodsType == GiftGoodsType.SUN_LONG){ user.getPlayerInfoManager().setHadBuyTreasure(1); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreType.java index ef42a2550..105b63aed 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreType.java @@ -11,7 +11,7 @@ public enum StoreType { TRIAL_STORE(8), GIFT_STORE(9), - + GOLD_STORE(57),//点金功能商店 ; private int type; 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 b42869f45..06fdc09ec 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -704,9 +704,23 @@ public class ItemUtil { return; } STreasureSunlongConfig levelConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(activity.getId()).get(user.getPlayerInfoManager().getTreasureLevel()); - while(levelConfig!=null&&levelConfig.getIntegral().length>0&&ItemUtil.itemCost(user,levelConfig.getIntegral(), BIReason.TREASURE_LEVEL_UP_CONSUME,1)){ - user.getPlayerInfoManager().addTreasureLevel(); - levelConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(activity.getId()).get(user.getPlayerInfoManager().getTreasureLevel()); + if (levelConfig != null) { + //需要先确定下每级真实需要的经验,与客户端实现方式同步,认为表里填的升到下一级所需经验是前边各级经验总和 + int[][] integral = levelConfig.getIntegral(); + STreasureSunlongConfig lastLevelConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(activity.getId()).get(levelConfig.getLevel() - 1); + int[][] costItems = integral; + if (lastLevelConfig != null) { + costItems = new int[][]{{integral[0][0], integral[0][1] - lastLevelConfig.getIntegral()[0][1]}}; + } + while(levelConfig != null && integral.length > 0 &&ItemUtil.itemCost(user, costItems, BIReason.TREASURE_LEVEL_UP_CONSUME,1)){ + user.getPlayerInfoManager().addTreasureLevel(); + lastLevelConfig = levelConfig; + levelConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(activity.getId()).get(user.getPlayerInfoManager().getTreasureLevel()); + if (levelConfig != null && levelConfig.getIntegral().length > 0) { + integral = levelConfig.getIntegral(); + costItems = new int[][]{{integral[0][0],integral[0][1] - lastLevelConfig.getIntegral()[0][1]}}; + } + } } PlayerInfoProto.TreasureLevelUpIndication indication = PlayerInfoProto.TreasureLevelUpIndication.newBuilder().setLevel(user.getPlayerInfoManager().getTreasureLevel()).build(); MessageUtil.sendIndicationMessage(OnlineUserManager.getSessionByUid(user.getId()),1,MessageTypeProto.MessageType.TREASURE_LEVELUP_INDICATION_VALUE,indication,true);