天宫7天限制
parent
62fbd0f9b8
commit
445f0a4965
|
@ -128,8 +128,8 @@ public class ExpeditionManager extends MongoBase {
|
|||
return effectItems;
|
||||
}
|
||||
|
||||
public void resetTreasureReward(int round){
|
||||
worldTreasureReward.reset(round);
|
||||
public void resetTreasureReward(){
|
||||
worldTreasureReward.reset();
|
||||
onlyUpdateTreasureReward();
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,8 @@ package com.ljsd.jieling.logic.dao;
|
|||
|
||||
import com.ljsd.common.mogodb.MongoBase;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import config.SExpeditionSetting;
|
||||
import manager.STableManager;
|
||||
import util.TimeUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
@ -9,8 +11,10 @@ import java.util.Map;
|
|||
|
||||
public class WorldTreasureReward extends MongoBase {
|
||||
|
||||
|
||||
private int firstStartTime;
|
||||
private int createTime; //取当天零点 根据其可以推算出期数。
|
||||
private int round=1;
|
||||
private int round;
|
||||
private int score;
|
||||
private Map<Integer,Integer> rewardStatusMap = new HashMap<>(); //领取状态 1:表示领取基础奖励 2:表示领取额外奖励。
|
||||
|
||||
|
@ -18,17 +22,19 @@ public class WorldTreasureReward extends MongoBase {
|
|||
this.setRootCollection(User._COLLECTION_NAME);
|
||||
}
|
||||
|
||||
public void reset(int round){
|
||||
public void reset(){
|
||||
SExpeditionSetting setting = STableManager.getConfig(SExpeditionSetting.class).get(1);
|
||||
int treasureTime = setting.getTreasureTime()[0][1];
|
||||
if(createTime == 0){
|
||||
createTime =(int)((TimeUtils.getLastOrUnderHour(TimeUtils.now(), 5,0, true)+TimeUtils.DAY*30)/1000);
|
||||
createTime =(int)((TimeUtils.getLastOrUnderHour(TimeUtils.now(), 5,0, true)+TimeUtils.DAY*treasureTime)/1000);
|
||||
}else{
|
||||
do{
|
||||
createTime+=TimeUtils.DAY*30/1000;
|
||||
createTime+=TimeUtils.DAY*treasureTime/1000;
|
||||
}while(createTime<TimeUtils.nowInt());
|
||||
}
|
||||
score = 0;
|
||||
rewardStatusMap = new HashMap<>();
|
||||
this.round = round;
|
||||
updateRound(round+1);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -47,6 +53,11 @@ public class WorldTreasureReward extends MongoBase {
|
|||
}
|
||||
return round;
|
||||
}
|
||||
public void updateRound(int round) {
|
||||
|
||||
this.round = round;
|
||||
updateString("round", round);
|
||||
}
|
||||
|
||||
public int getScore() {
|
||||
return score;
|
||||
|
@ -64,4 +75,14 @@ public class WorldTreasureReward extends MongoBase {
|
|||
rewardStatusMap.put(id,value);
|
||||
updateString("rewardStatusMap."+id, value);
|
||||
}
|
||||
|
||||
public int getFirstStartTime() {
|
||||
return firstStartTime;
|
||||
}
|
||||
|
||||
public void setFirstStartTime(int firstStartTime) {
|
||||
this.firstStartTime = firstStartTime;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -763,23 +763,26 @@ public class ExpeditionLogic {
|
|||
SExpeditionSetting sExpeditionSetting = STableManager.getConfig(SExpeditionSetting.class).get(1);
|
||||
int openRule = sExpeditionSetting.getOpenRules()[0];
|
||||
if(openRule == type && sExpeditionSetting.getOpenRules()[1] == parm){
|
||||
user.getExpeditionManager().resetTreasureReward(1);
|
||||
sendAllTreasureInfo(user);
|
||||
//设置第一次七天后开启
|
||||
user.getExpeditionManager().getWorldTreasureReward().setFirstStartTime((int)((TimeUtils.now()+7*TimeUtils.ONE_DAY)/1000));
|
||||
// user.getExpeditionManager().resetTreasureReward(1);
|
||||
// sendAllTreasureInfo(user);
|
||||
}
|
||||
}
|
||||
|
||||
public static void checkAndResetTreasure(User user) throws Exception {
|
||||
SExpeditionSetting sExpeditionSetting = STableManager.getConfig(SExpeditionSetting.class).get(1);
|
||||
WorldTreasureReward worldTreasureReward = user.getExpeditionManager().getWorldTreasureReward();
|
||||
int createTime =worldTreasureReward.getCreateTime();
|
||||
if(createTime==0){
|
||||
if(worldTreasureReward.getFirstStartTime()>TimeUtils.nowInt()){
|
||||
return;
|
||||
}
|
||||
int createTime =worldTreasureReward.getCreateTime();
|
||||
//重置
|
||||
if(TimeUtils.nowInt()>=worldTreasureReward.getCreateTime()){
|
||||
user.getExpeditionManager().resetTreasureReward(1);
|
||||
if(TimeUtils.nowInt()>=createTime){
|
||||
user.getExpeditionManager().resetTreasureReward();
|
||||
sendAllTreasureInfo(user);
|
||||
BuyGoodsLogic.sendGiftGooodsIndication(user.getId());
|
||||
user.getPlayerInfoManager().getRechargeInfo().updateBuyGoodsTimes(106,0);
|
||||
user.getPlayerInfoManager().getRechargeInfo().updateBuyGoodsTimes(sExpeditionSetting.getTreasureTime()[0][2],0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1012,17 +1015,22 @@ public class ExpeditionLogic {
|
|||
WorldTreasureReward worldTreasureReward = user.getExpeditionManager().getWorldTreasureReward();
|
||||
|
||||
Expedition.ExpeditionTreasureInfoResponse.Builder response = Expedition.ExpeditionTreasureInfoResponse.newBuilder();
|
||||
Map<Integer, Integer> rewardStatusMap = worldTreasureReward.getRewardStatusMap();
|
||||
WorldBossTreasureStaticConfig worldBossTreasureStaticConfig = STableManager.getFigureConfig(WorldBossTreasureStaticConfig.class);
|
||||
Set<SWorldBossTreasureConfig> sWorldBossTreasureConfigs = worldBossTreasureStaticConfig.getIdsByPeriods().get(worldTreasureReward.getRound());
|
||||
List<Expedition.TreasureRewardState> states = new ArrayList<>(100);
|
||||
sWorldBossTreasureConfigs.forEach(item->{
|
||||
Expedition.TreasureRewardState.Builder builder = Expedition.TreasureRewardState.newBuilder().setId(item.getId()).setState(rewardStatusMap.getOrDefault(item.getId(),0));
|
||||
states.add(builder.build());
|
||||
});
|
||||
response.addAllTreasureRewardState(states);
|
||||
response.setScore(worldTreasureReward.getScore());
|
||||
response.setResetTime(worldTreasureReward.getCreateTime());
|
||||
if(worldTreasureReward.getFirstStartTime()<=TimeUtils.nowInt()){
|
||||
Map<Integer, Integer> rewardStatusMap = worldTreasureReward.getRewardStatusMap();
|
||||
WorldBossTreasureStaticConfig worldBossTreasureStaticConfig = STableManager.getFigureConfig(WorldBossTreasureStaticConfig.class);
|
||||
Set<SWorldBossTreasureConfig> sWorldBossTreasureConfigs = worldBossTreasureStaticConfig.getIdsByPeriods().get(worldTreasureReward.getRound());
|
||||
List<Expedition.TreasureRewardState> states = new ArrayList<>(100);
|
||||
sWorldBossTreasureConfigs.forEach(item->{
|
||||
Expedition.TreasureRewardState.Builder builder = Expedition.TreasureRewardState.newBuilder().setId(item.getId()).setState(rewardStatusMap.getOrDefault(item.getId(),0));
|
||||
states.add(builder.build());
|
||||
});
|
||||
response.addAllTreasureRewardState(states);
|
||||
response.setScore(worldTreasureReward.getScore());
|
||||
response.setResetTime(worldTreasureReward.getCreateTime());
|
||||
}else {
|
||||
response.setResetTime(-1);
|
||||
}
|
||||
|
||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue