From 9317e9ea24bb637c1c883559cad32faac472aaba Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 22 Jan 2021 16:18:03 +0800 Subject: [PATCH 1/2] =?UTF-8?q?0127=E6=8C=82=E6=9C=BA=E5=A5=96=E5=8A=B12.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/dao/MainLevelManager.java | 29 ++++++++++++------- .../ljsd/jieling/logic/fight/CombatLogic.java | 10 +------ 2 files changed, 19 insertions(+), 20 deletions(-) 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); From b17a248bb82f0e6445475d47d564cd50e055d4c7 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 22 Jan 2021 16:33:33 +0800 Subject: [PATCH 2/2] =?UTF-8?q?0127=E8=BF=9E=E7=BB=AD=E7=AD=BE=E5=88=B0?= =?UTF-8?q?=E5=AE=9D=E7=AE=B1=E9=87=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/activity/ActivityLogic.java | 9 +++++++-- .../ljsd/jieling/logic/activity/SignInSumActivity.java | 3 +++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index df57072cf..2c4abfa17 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -251,7 +251,11 @@ public class ActivityLogic implements IEventHandler{ return true; } - + /** + * 初始化子任务信息 + * @param activityMission + * @param activityId + */ public void initMissionInfo(ActivityMission activityMission,int activityId){ List sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(activityId); if(sActivityRewardConfigs == null){return;} @@ -265,7 +269,7 @@ public class ActivityLogic implements IEventHandler{ activityMission.setOpenType(1); activityMission.setActivityState(ActivityType.OPEN_STATE); activityMission.setV(0); - activityMission.setCreatTime(0); + activityMission.setCreatTime(TimeUtils.now()); } public void initOtherMission(ActivityMission activityMission,List missionIds){ @@ -503,6 +507,7 @@ public class ActivityLogic implements IEventHandler{ // 后面比前面多几天 int day = TimeUtils.differentDays(o1, o2); if (day > 1){ + ActivityLogic.getInstance().initMissionInfo(activityMission,activityId); activityMission.setV(0); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SignInSumActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SignInSumActivity.java index ea93cbae2..fc6f6d48b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SignInSumActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SignInSumActivity.java @@ -45,6 +45,9 @@ class SignInSumActivity extends AbstractActivity { int day = TimeUtils.differentDays(o1, o2); // 大于1天,重新开始 if (day > 1){ + // 初始化 + ActivityLogic.getInstance().initMissionInfo(activityMission,id); + activityMission.setV(count); }else { activityMission.setV(count + activityMission.getV());