diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MainLevelManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MainLevelManager.java index a7063f829..d62640861 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MainLevelManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MainLevelManager.java @@ -4,6 +4,7 @@ import com.ljsd.common.mogodb.MongoBase; import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig; import config.SGameSetting; import manager.STableManager; +import util.TimeUtils; import java.util.HashMap; import java.util.HashSet; @@ -14,7 +15,7 @@ public class MainLevelManager extends MongoBase { private int fightId; // 当前关卡id private int state; //状态 -1表示有等级卡 - private int startTime; + private int startTime;// 给前端展示的挂机时长 private int lastTime; //上一个关卡记时时间 private Map fightStateInfo = new HashMap<>(); private Map> bossIds = new HashMap<>(); @@ -27,28 +28,35 @@ public class MainLevelManager extends MongoBase { public void updateStateInfo(){ SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting(); + // 默认刷新时间 60 int adventureRefresh = gameSetting.getAdventureRefresh(); - int timeDuration = (int)(System.currentTimeMillis()/1000) - lastTime; + // 当前时间-最后领取时间 + int timeDuration = TimeUtils.nowInt() - lastTime; + // 距离上次领取时间算出次数 int times = timeDuration / adventureRefresh; + // 不足一次的随机 int mod = timeDuration % adventureRefresh; + // 冒险最大时长(小时【12】)*60*60/领取单位(分【60】) int adventureOffline = gameSetting.getAdventureOffline()*60*60/adventureRefresh; + + // 先算余数,不足一次的补足一次 if(mod!=0){ times += 1; - startTime-=mod; - updateString("startTime",startTime); } + // 不足一次的补足一次 if(times<1){ times=1; - startTime-=adventureRefresh; - updateString("startTime",startTime); } - int adventurenTimes = ((int) (System.currentTimeMillis() / 1000) - lastTime) / STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getAdventureRefresh(); - if(adventureOffline<=adventurenTimes){ + // 更新时间 + if(adventureOffline <= times){ times=0; + }else { + // 修改最后时间 + updateString("lastTime",TimeUtils.nowInt()+times*adventureRefresh); } + fightStateInfo.put(fightId,times); updateString("fightStateInfo." + fightId,times); - } public void setState(int state){ @@ -62,7 +70,7 @@ public class MainLevelManager extends MongoBase { } this.fightId = fightId; this.state = state; - this.lastTime = (int)(System.currentTimeMillis()/1000); + this.lastTime = TimeUtils.nowInt(); updateString("fightId",fightId); updateString("state",state); updateString("lastTime",lastTime); @@ -70,7 +78,6 @@ public class MainLevelManager extends MongoBase { public void afterTakeStateReward(boolean needReset,int lastTakes,int time){ fightStateInfo.clear(); - int now = (int)(System.currentTimeMillis()/1000); SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting(); if(needReset){ this.startTime = time; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java index 06f722525..c264e1e34 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java @@ -947,16 +947,12 @@ public class CombatLogic { if (!viewBaseReward){ ItemUtil.combineRewardByMainLine(user,true,sMainLevelConfig.getRandomReward(), times,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,itemObj,BIReason.ADVENTURE_RANDOM_REWARDD); } - /*while (!viewBaseReward&×Temp-->0){ - ItemUtil.combineReward(user,true,sMainLevelConfig.getRandomReward(), 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,itemObj,BIReason.ADVENTURE_RANDOM_REWARDD); - }*/ takeTimes+=times; } int fightId = mainLevelManager.getFightId(); SMainLevelConfig targetMainLevelConfig = SMainLevelConfig.config.get(fightId); int lastTime = mainLevelManager.getLastTime(); -// int now = (int) (System.currentTimeMillis() / 1000); - int times = (time - lastTime)/STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getAdventureRefresh(); + int times = (time - lastTime)/gameSetting.getAdventureRefresh(); int maxTimes = adventureOffline - takeTimes; int lastTimeTakes=0; boolean reset = maxTimes0){ - ItemUtil.combineReward(user,true,targetMainLevelConfig.getRandomReward(), 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,itemObj,BIReason.ADVENTURE_RANDOM_REWARDD); - }*/ lastTimeTakes=times; } ItemUtil.extraAddItem(user,baseItemMap,BIReason.ADVENTURE_BASE_REWARD);