/** * 减少CD时间 * * @param time 减少时间 */ public void reduceCdTime(CdType cdType, long time) { if (!cdInfoMap.containsKey(cdType)) { return; } CdInfo cdInfo = getCdInfo(cdType); cdInfo.setEndTime(cdInfo.getEndTime() - time); cdInfoMap.put(cdType, cdInfo); // 同步缓存 cdInfoCaches.addUpdate(cdType, cdInfo); }
/** * 添加ms长的时间 * * @param cdType * @param ms */ public void addCd(CdType cdType, long ms) { // 出现ms小于零的情况肯定是非法情况 if (ms < 0) { return; } // 调用添加cd之前应该已经判断过,所以如果再次判断不能添加直接返回 if (!canAddCd(cdType, ms)) { return; } CdInfo cdInfo = getCdInfo(cdType); long now = GameServerAssist.getSystemTimeService().now(); if (cdInfo.getEndTime() < now) { cdInfo.setEndTime(now + ms); } else { cdInfo.setEndTime(cdInfo.getEndTime() + ms); } cdInfo.setTimes(cdInfo.getTimes() + 1); cdInfoMap.put(cdType, cdInfo); // 同步缓存 cdInfoCaches.addUpdate(cdType, cdInfo); }
/** * 增加CD时间 * * @param time 增加时间 */ public void addCdTime(CdType cdType, long time) { if (!cdInfoMap.containsKey(cdType)) { return; } CdInfo cdInfo = getCdInfo(cdType); long endTime = cdInfo.getEndTime(); long now = GameServerAssist.getSystemTimeService().now(); if (endTime < now) { endTime = now; } cdInfo.setEndTime(endTime + time); cdInfoMap.put(cdType, cdInfo); // 同步缓存 cdInfoCaches.addUpdate(cdType, cdInfo); }