Ejemplo n.º 1
0
  /**
   * 减少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);
  }
Ejemplo n.º 2
0
  /**
   * 添加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);
  }
Ejemplo n.º 3
0
  /**
   * 增加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);
  }