Package org.pokenet.server.battle.impl

Source Code of org.pokenet.server.battle.impl.NpcSleepTimer

package org.pokenet.server.battle.impl;

import java.util.Random;

import org.pokenet.server.GameServer;
import org.pokenet.server.backend.entity.NonPlayerChar;
import org.pokenet.server.backend.map.ServerMap;

/**
* A thread which wakes sleeping NPCs (NPCs sleep for ~15 minutes after battle)
* @author shadowkanji
*
*/
public class NpcSleepTimer implements Runnable {
  private boolean m_running;

  public void run() {
    System.out.println("INFO: Npc sleep timer started");
    Random r = new Random();
    NonPlayerChar n = null;
    ServerMap m = null;
    while(m_running) {
      /*
       * Loop through every map
       */
      for(int x = 0; x < 100; x++) {
        for(int y = 0; y < 100; y++) {
          m = GameServer.getServiceManager().
            getMovementService().getMapMatrix().getMapByRealPosition(x, y);
          if(m != null) {
            /*
             * Loop through every npc on the map
             * If they're sleeping, check if its time to wake them
             */
            for(int i = 0; i < m.getNpcs().size(); i++) {
              n = m.getNpcs().get(i);
              if(n != null && !n.canBattle() &&
                  System.currentTimeMillis() - n.getLastBattleTime()
                  >= 300000 + r.nextInt(300000)) {
                n.setLastBattleTime(0);
              }
            }
            try {
              Thread.sleep(500);
            } catch (Exception e) {}
          }
          n = null;
        }
      }
      try {
        Thread.sleep(300000);
      } catch (Exception e) {}
    }
    System.out.println("INFO: Npc sleep timer stopped");
  }

  /**
   * Starts the timer
   */
  public void start() {
    m_running = true;
    new Thread(this).start();
  }
 
  /**
   * Stops the timer
   */
  public void stop() {
    m_running = false;
  }
}
TOP

Related Classes of org.pokenet.server.battle.impl.NpcSleepTimer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.