天宫秘宝时间修改

back_recharge
lvxinran 2020-07-24 14:33:37 +08:00
parent dcfa14717c
commit 7228d149d4
3 changed files with 8 additions and 38 deletions

View File

@ -125,7 +125,7 @@ public class TakeLayRewardHandler extends BaseHandler<Expedition.TakeExpeditionB
user.getExpeditionManager().addScore(score);
Map<Integer, Integer> rewardStatusMap = user.getExpeditionManager().getWorldTreasureReward().getRewardStatusMap();
ExpeditionLogic.sendTreasureRewardUpdate(iSession,user.getExpeditionManager().getWorldTreasureReward().getScore(),rewardStatusMap);
ExpeditionLogic.sendTreasureRewardUpdate(iSession,user.getExpeditionManager().getWorldTreasureReward().getScore(),rewardStatusMap,user.getExpeditionManager().getWorldTreasureReward().getCreateTime());
Expedition.TakeExpeditionBoxRewardResponse builder = Expedition.TakeExpeditionBoxRewardResponse.newBuilder().setDrop(drop).addAllLeve(objects).build();
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.EXPEDITION_TAKE_BOXREWARD_RESONSE_VALUE, builder, true);

View File

@ -59,7 +59,7 @@ public class TakeTreasureRewardHandler extends BaseHandler<Expedition.Expedition
worldTreasureReward.updateMissionStatus(id,changeState);
Map<Integer,Integer> stateUpdateMap = new HashMap<>();
stateUpdateMap.put(id,changeState);
ExpeditionLogic.sendTreasureRewardUpdate(iSession,worldTreasureReward.getScore(),stateUpdateMap);
ExpeditionLogic.sendTreasureRewardUpdate(iSession,worldTreasureReward.getScore(),stateUpdateMap,worldTreasureReward.getCreateTime());
}else{
Map<Integer,Integer> stateUpdateMap = new HashMap<>();
Set<SWorldBossTreasureConfig> sWorldBossTreasureConfigs = idsByPeriods.get(round);
@ -76,7 +76,7 @@ public class TakeTreasureRewardHandler extends BaseHandler<Expedition.Expedition
throw new ErrorCodeException("无奖励可领取");
}
user.getExpeditionManager().onlyUpdateTreasureReward();
ExpeditionLogic.sendTreasureRewardUpdate(iSession,worldTreasureReward.getScore(),stateUpdateMap);
ExpeditionLogic.sendTreasureRewardUpdate(iSession,worldTreasureReward.getScore(),stateUpdateMap,worldTreasureReward.getCreateTime());
}
CommonProto.Drop.Builder drop = ItemUtil.drop(user, drops, BIReason.EXCEPTION_TREASURE_REWARD);
Expedition.ExpeditionTakeTreasureResponse build = Expedition.ExpeditionTakeTreasureResponse.newBuilder().setDrop(drop).build();

View File

@ -85,7 +85,7 @@ public class ExpeditionLogic {
ExpeditionManager manager = user.getExpeditionManager();
TimeControllerOfFunction openTimeOfFuntionCacheByType = GlobalDataManaager.getInstance().getOpenTimeOfFuntionCacheByType(FunctionIdEnum.Expedition);
checkAndResetTreasure(user);
if(openTimeOfFuntionCacheByType==null||manager.getCurrentTime()==openTimeOfFuntionCacheByType.getTimes()){
return;
}
@ -104,7 +104,6 @@ public class ExpeditionLogic {
// manager.clearEquip();
manager.getEffectItems().clear();
manager.setFreshTime((int)(openTimeOfFuntionCacheByType.getStartTime()/1000));
checkAndResetTreasure(user);
SGlobalSystemConfig sGlobalSystemConfig = STableManager.getConfig(SGlobalSystemConfig.class).get(FunctionIdEnum.Expedition.getFunctionType());
SExpeditionSetting sExpeditionSetting = STableManager.getConfig(SExpeditionSetting.class).get(1);
@ -773,36 +772,6 @@ public class ExpeditionLogic {
if(createTime==0){
return;
}
// SExpeditionSetting sExpeditionSetting = STableManager.getConfig(SExpeditionSetting.class).get(1);
// int[][] treasureTime = sExpeditionSetting.getTreasureTime();
// int differentDays = TimeUtils.differentDays(createTime * 1000, TimeUtils.now());
// int sumPeriod = 0;
// int newRound = 0;
// int round = worldTreasureReward.getRound();
// boolean needReset = false;
// for(int[] item : treasureTime){
// sumPeriod+=item[1];
// if(round>item[0]){
// continue;
// }
// differentDays-=item[1];
// if(differentDays<0){
// newRound = item[0];
// needReset =true;
// break;
// }
// }
// if(!needReset){
// differentDays=differentDays % sumPeriod;
// for(int[] item : treasureTime){
// differentDays-=item[1];
// if(differentDays<0){
// newRound = item[0];
// break;
// }
// }
// needReset=true;
// }
//重置
if(TimeUtils.nowInt()>=worldTreasureReward.getCreateTime()){
user.getExpeditionManager().resetTreasureReward(1);
@ -819,15 +788,16 @@ public class ExpeditionLogic {
Map<Integer, Set<SWorldBossTreasureConfig>> idsByPeriods = worldBossTreasureStaticConfig.getIdsByPeriods();
Map<Integer,Integer> changeStateMap = new HashMap<>(rewardStatusMap);
idsByPeriods.get(worldTreasureReward.getRound()).forEach(item->changeStateMap.putIfAbsent(item.getId(),0));
sendTreasureRewardUpdate(session,0,changeStateMap);
sendTreasureRewardUpdate(session,0,changeStateMap,worldTreasureReward.getCreateTime());
}
}
public static void sendTreasureRewardUpdate(ISession iSession,int score,Map<Integer,Integer> changeStatusMap ){
public static void sendTreasureRewardUpdate(ISession iSession,int score,Map<Integer,Integer> changeStatusMap,int time){
Expedition.TreasureStateIndicaion.Builder builder = Expedition.TreasureStateIndicaion.newBuilder().setScore(score);
builder.setResetTime(time);
changeStatusMap.forEach((id,status)-> builder.addTreasureRewardState(Expedition.TreasureRewardState.newBuilder().setId(id).setState(status).build()));
MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.EXPEDITION_TREASURE_STATE_INDICATION_VALUE,builder.build(),true);
MessageUtil.sendIndicationMessage(iSession,1, MessageTypeProto.MessageType.EXPEDITION_TREASURE_STATE_INDICATION_VALUE,builder.build(),true);
}