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 3805783c7..7fb2efbac 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -254,5 +254,7 @@ public interface BIReason { int TRIAL_ADD_HP_CONSUME = 1062;//试炼回春散消耗 + int DAILY_SCORE_CONSUME = 1063;//删除日常任务积分 + } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index 66bcbbfdc..52d4bc8a0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -63,13 +63,13 @@ public class GetPlayerInfoHandler extends BaseHandler{ userId, token,msgId,msgIndex,getPlayerInfoRequest.getNum(),getPlayerInfoRequest.getStr()); User user = UserManager.getUser(userId); - BuyGoodsLogic.initOwernBagInfo(user); PlayerLogic.getInstance().sendDayilyMail(user,-1); QuestionLogic.getInstence().onLogin(user); PlayerManager playerInfoManager = user.getPlayerInfoManager(); ActivityLogic.getInstance().flushForLogin(user,iSession); GlobalDataManaager.checkNeedReFlush(iSession,user,null); + BuyGoodsLogic.initOwernBagInfo(user); Poster.getPoster().dispatchEvent(new UserOnlineEvent(userId)); user.getUserMissionManager().onGameEvent(user, GameEvent.LOGIN_GAME,0); playerInfoManager.setLoginTime(TimeUtils.now()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index dc08161cb..261ae3ae6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -1250,13 +1250,13 @@ public class ActivityLogic implements IEventHandler{ MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); } - public Object[] getActivityStatusByType(User user,int type){ + public Set getActivityStatusByType(User user,int type){ List activities = SGlobalActivity.sGlobalActivityMapByType.get(type); if(activities.isEmpty()){ - return null; + return new HashSet<>(); }else{ - Object[] objects = activities.stream().filter(n -> user.getActivityManager().getActivityMissionMap().keySet().contains(n.getId())).toArray(); + Set objects = activities.stream().filter(n -> user.getActivityManager().getActivityMissionMap().keySet().contains(n.getId())).map(sGlobalActivity -> sGlobalActivity.getId()).collect(Collectors.toSet()); return objects; } } 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 9ae60bd8c..b72d09a08 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 @@ -61,7 +61,7 @@ public interface ActivityType { int LEVEL_EXPERT = 52; //进阶达人 int BUY_GOLD = 53; //购买金币 点石成金 - int COPY_PASS = 54; // 开服福利 副本限时通过奖励 + int COPY_PASS = 55; // 开服福利 副本限时通过奖励 } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/GuildMyInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/GuildMyInfo.java index 2f627250c..e9564f45d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/GuildMyInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/GuildMyInfo.java @@ -62,6 +62,7 @@ public class GuildMyInfo extends MongoBase { this.path.addAll(path); this.path.remove(0); } + updateString("path",this.path); preMoveTimestamp = timestamp; setPreMoveTimestamp(timestamp); } 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 0a105781b..02ab78e49 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 @@ -264,7 +264,7 @@ public class UserMissionManager extends MongoBase { } break; case DAILY_MISSION_REWARD:{ - dailyMissionIdsType.rewardMission((int)parm[0], missionTypeEnumListMap.get(GameMisionType.DAILYMISSION)); + dailyMissionIdsType.rewardMission(user,(int)parm[0], missionTypeEnumListMap.get(GameMisionType.DAILYMISSION)); if(!missionTypeEnumListMap.get(GameMisionType.DAILYMISSION).isEmpty()){ calCumulationDataResult(user,MissionType.FINSIH_DAYILY_TIMES,missionTypeEnumListMap,(int)parm[0]); updateString("dailyMissionIdsType",dailyMissionIdsType); @@ -452,7 +452,7 @@ public class UserMissionManager extends MongoBase { temp[1] = STreasureSunlongTaskConfig.treasureTaskConfig.get(taskTypeMap.get(i)).getWeight(); randomTask[i] = temp; } - int[] tasks= MathUtils.randomFromWeightWithTaking(randomTask,typeMissionNum[type-1]);// typeMissionNum[type-1] + int[] tasks= MathUtils.randomFromWeightWithTaking(randomTask,Math.max(typeMissionNum[type-1],randomTask.length));// typeMissionNum[type-1] List missionStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.TREASUREMISSION); for(Integer task:tasks){ treasureMissionIdsType.getDoingMissionIds().add(task); 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 82e802f8f..7c06bf51d 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 @@ -464,7 +464,7 @@ public class MissionLoigc { //tofix zsx BaseDataManager missTypeData = DataManagerDistributor.getMissTypeData(MissionType.findByMissionId(missionTypeId)); if(missTypeData instanceof AbstractDataManager){ - return ((AbstractDataManager) missTypeData).getProcess(user,user.getUserMissionManager().getCumulationData(),missionSubType); + return ((AbstractDataManager) missTypeData).getProcess(user,cumulationData,missionSubType); } Integer count =0; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/RandomAllTypeTimes.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/RandomAllTypeTimes.java index 7463bbd20..d192c912c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/RandomAllTypeTimes.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/RandomAllTypeTimes.java @@ -15,15 +15,15 @@ public class RandomAllTypeTimes extends AbstractDataManager { @Override public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) { + int type =(int)parm[0]; + int count =(int)parm[1]; + data.card_random_type.put(0,data.card_random_type.getOrDefault(0, 0)+count); return new CumulationData.Result(missionType); } @Override public boolean isFinish(User user, CumulationData data, int[][] cfgValue, Object... parm) { - double sum = data.card_random_type.entrySet().stream() - .filter(integerIntegerEntry -> integerIntegerEntry.getKey() == 1 || integerIntegerEntry.getKey() == 4 || integerIntegerEntry.getKey() == 5) - .mapToDouble(Map.Entry::getValue).sum(); - return sum>=cfgValue[1][0]; + return data.card_random_type.getOrDefault(0, 0)>=cfgValue[1][0]; } @Override diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/DailyMissionIdsType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/DailyMissionIdsType.java index 7c34b719f..5a0ab27b9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/DailyMissionIdsType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/DailyMissionIdsType.java @@ -1,5 +1,7 @@ package com.ljsd.jieling.logic.mission.main; +import com.ljsd.jieling.logic.activity.ActivityLogic; +import com.ljsd.jieling.logic.activity.ActivityType; import com.ljsd.jieling.logic.dao.CumulationData; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mission.MissionLoigc; @@ -7,8 +9,10 @@ import com.ljsd.jieling.logic.mission.MissionState; import com.ljsd.jieling.logic.mission.data.AbstractDataManager; import com.ljsd.jieling.logic.mission.data.BaseDataManager; import com.ljsd.jieling.logic.mission.data.DataManagerDistributor; +import com.ljsd.jieling.util.ItemUtil; import config.SDailyTasksConfig; +import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Set; @@ -24,9 +28,33 @@ public class DailyMissionIdsType extends AbstractMissionType{ @Override public int[][] reward(int missionId) { SDailyTasksConfig sDailyTasksConfigById = SDailyTasksConfig.getSDailyTasksConfigById(missionId); + return sDailyTasksConfigById.getReward(); } + public void rewardMission( User user, int missionId, List missionTypeEnumListMap){ + if (!getFinishMissionIds().contains(missionId)) { + return ; + } + getFinishMissionIds().remove(missionId); + getRewardedMissionIds().set(missionId); + + SDailyTasksConfig sDailyTasksConfigById = SDailyTasksConfig.getSDailyTasksConfigById(missionId); + int[][] reward = sDailyTasksConfigById.getReward(); + //添加戒灵秘宝奖励 + MissionStateChangeInfo stateChangeInfo; + if(ActivityLogic.getInstance().getActivityStatusByType(user,ActivityType.TREASURE).size()!=0){ + int[][] mazePoint = sDailyTasksConfigById.getMazePoint(); + int[][] ints = new int[reward.length + mazePoint.length][]; + System.arraycopy(reward, 0, ints, 0, reward.length); + System.arraycopy(mazePoint, 0, ints, reward.length, mazePoint.length); + stateChangeInfo = new MissionStateChangeInfo(missionId, MissionState.REWARD, ints); + }else { + stateChangeInfo = new MissionStateChangeInfo(missionId, MissionState.REWARD, reward); + } + missionTypeEnumListMap.add(stateChangeInfo); + } + @Override public void calCumulationDataResult(User user, CumulationData.Result result, List missionStateChangeInfos, CumulationData cumulationData) { 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 6530c1fcd..89942a455 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 @@ -389,8 +389,13 @@ public class PlayerLogic { fBuilder.setPlayerBindPhone(CommonProto.PlayerBindPhone.newBuilder().setPhoneNum(phoneBindInfo.getPhoneNum()).setState(phoneBindInfo.getState()).build()); } - //清除日清任务道具 - user.getItemManager().removeItem(Global.DAILY_TASK_REMOVE_ITEM); + Item item = user.getItemManager().getItem(Global.DAILY_TASK_REMOVE_ITEM); + if (item != null) { + Map dailyScore = new HashMap<>(); + dailyScore.put(Global.DAILY_TASK_REMOVE_ITEM, item.getItemNum()); + //清除日清任务道具 + ItemUtil.itemCost(user, dailyScore, BIReason.DAILY_SCORE_CONSUME, 1); + } } diff --git a/tablemanager/src/main/java/config/SDailyTasksConfig.java b/tablemanager/src/main/java/config/SDailyTasksConfig.java index c153537c8..a2db75afd 100644 --- a/tablemanager/src/main/java/config/SDailyTasksConfig.java +++ b/tablemanager/src/main/java/config/SDailyTasksConfig.java @@ -19,6 +19,7 @@ public class SDailyTasksConfig implements BaseConfig { private int[][] reward; + private int[][] mazePoint;//戒灵秘宝积分 public static Map config; public static Map> sTaskConfigByTypeMap; @@ -64,4 +65,8 @@ public class SDailyTasksConfig implements BaseConfig { } + public int[][] getMazePoint() { + return mazePoint; + } + } \ No newline at end of file diff --git a/tablemanager/src/main/java/config/SVipLevelConfig.java b/tablemanager/src/main/java/config/SVipLevelConfig.java index d64bbc127..86ff4fb35 100644 --- a/tablemanager/src/main/java/config/SVipLevelConfig.java +++ b/tablemanager/src/main/java/config/SVipLevelConfig.java @@ -21,6 +21,7 @@ public class SVipLevelConfig implements BaseConfig { private int[] openRules; private int moneyLimit; + private int[][] property; @Override