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