diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java index 2ab7079c5..8aa185949 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java @@ -21,4 +21,5 @@ public interface GlobalGm { int OUT_BLOODY_BATTLE = 17;//退出血战 int MISSION_LEAD = 18;//任务指引 int ESPECIAL_EQUIP = 19;//增加法宝,星级 + int TREASURE_FINISH = 20;//戒灵秘宝一键完成 } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java index 14dad316a..61ec3e6c3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java @@ -276,7 +276,13 @@ public class GMRequestHandler extends BaseHandler{ cUser.getEquipManager().addEspecialEquip(cUser,especialEquip); } break; - + case GlobalGm.TREASURE_FINISH: + Set doingMissionIds = cUser.getUserMissionManager().getTreasureMissionIdsType().getDoingMissionIds(); + if(doingMissionIds.contains(prarm2)){ + doingMissionIds.remove(prarm2); + cUser.getUserMissionManager().getTreasureMissionIdsType().addFinishMissionId(prarm2); + } + break; default: } try { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java index 47a8da705..e05bb95ec 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java @@ -186,6 +186,9 @@ public class CumulationData { public int param; public Map> param2; public long value; + public int missionTimeType; + + public Result(MissionType subType) { this.subType = subType; @@ -210,6 +213,14 @@ public class CumulationData { public void setValue(long value) { this.value = value; } + + public void setMissionTimeType(int missionTimeType) { + this.missionTimeType = missionTimeType; + } + + public int getMissionTimeType() { + return missionTimeType; + } } public void updateHeroUpStarTimes(int heroTid){ 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 1e3195f70..ef33b2c6f 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 @@ -233,18 +233,20 @@ public class UserMissionManager extends MongoBase { CumulationData.Result result = treasureCumulationData.updateData(missionType, parm); CumulationData.Result weekResult = treasureWeekCumulationData.updateData(missionType, parm); CumulationData.Result monthResult = treasureMonthCumulationData.updateData(missionType, parm); - if(result!=null){ + result.setMissionTimeType(1); treasureMissionIdsType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.TREASUREMISSION),treasureCumulationData); updateString("treasureCumulationData",treasureCumulationData); updateString("treasureMissionIdsType",treasureMissionIdsType); } if(weekResult!=null){ + weekResult.setMissionTimeType(2); treasureMissionIdsType.calCumulationDataResult(user,weekResult,missionTypeEnumListMap.get(GameMisionType.TREASUREMISSION),treasureWeekCumulationData); updateString("treasureWeekCumulationData",treasureWeekCumulationData); updateString("treasureMissionIdsType",treasureMissionIdsType); } if(monthResult!=null){ + monthResult.setMissionTimeType(3); treasureMissionIdsType.calCumulationDataResult(user,monthResult,missionTypeEnumListMap.get(GameMisionType.TREASUREMISSION),treasureMonthCumulationData); updateString("treasureMonthCumulationData",treasureMonthCumulationData); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java index 587f91508..0f0cf734b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java @@ -242,6 +242,9 @@ public class GuildFightLogic { Map configMap = SGuildLevelConfig.sGuildLevelConfigMap; //匹配处理 GuildInfo guildInfo = GuilidManager.guildInfoMap.get(gid); + if(guildInfo.getDefendInfo().size()> entry:guildInfo.getMembers().entrySet()){ for(Integer uid:entry.getValue()){ 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 94a0930eb..57dea3550 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 @@ -1,9 +1,6 @@ package com.ljsd.jieling.logic.mission.event; -import com.ljsd.jieling.config.SBeginnerTask; -import com.ljsd.jieling.config.SDailyTasksConfig; -import com.ljsd.jieling.config.STaskConfig; -import com.ljsd.jieling.config.STreasureTaskConfig; +import com.ljsd.jieling.config.*; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mission.*; @@ -363,6 +360,10 @@ public class MissionEventDistributor { SBeginnerTask sBeginnerTask = SBeginnerTask.sBeginnerTaskCongigMap.get(missionStateChangeInfo.getMissionId()); progress= sBeginnerTask.getTaskValue()[1][0]; } + if(gameMisionType == GameMisionType.TREASUREMISSION){ + STreasureSunlongTaskConfig sunlongTaskConfig = STreasureSunlongTaskConfig.treasureTaskConfig.get(missionStateChangeInfo.getMissionId()); + progress= sunlongTaskConfig.getTaskValue()[1][0]; + } if(gameMisionType == GameMisionType.SEVENMISSION){ STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureTaskConfigMap.get(missionStateChangeInfo.getMissionId()); if(sTreasureTaskConfig.getTaskType() != MissionType.SENVER_HAPPY.getMissionTypeValue()){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/TreasureMissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/TreasureMissionType.java index 36a0ff9d5..a1dfc88da 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/TreasureMissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/TreasureMissionType.java @@ -52,6 +52,7 @@ public class TreasureMissionType extends AbstractMissionType{ @Override public void calCumulationDataResult(User user, CumulationData.Result result, List missionStateChangeInfos, CumulationData cumulationData) { + Set doingMissionIds = getDoingMissionIds(); List sTreasureTaskConfigs = STreasureSunlongTaskConfig.sTreasureTaskConfigListByTypeMapTmp.get(result.subType.getMissionTypeValue()); if(sTreasureTaskConfigs == null){ @@ -62,6 +63,9 @@ public class TreasureMissionType extends AbstractMissionType{ if(!doingMissionIds.contains(sTreasureTaskConfig.getId())){ continue; } + if(sTreasureTaskConfig.getType()!=result.getMissionTimeType()){ + continue; + } int doingProgress = MissionLoigc.getDoingProgress(user, cumulationData, sTreasureTaskConfig.getTaskType(), sTreasureTaskConfig.getTaskValue()[0]); //完成 int finishParm = sTreasureTaskConfig.getTaskValue()[1][0];