⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 l1worldtraps.java

📁 网络游戏天堂1的java源代码。。。。。
💻 JAVA
字号:
package l1j.server.server.model.trap;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import java.util.Timer;import java.util.TimerTask;import java.util.logging.Level;import java.util.logging.Logger;import l1j.server.L1DatabaseFactory;import l1j.server.server.IdFactory;import l1j.server.server.datatables.TrapTable;import l1j.server.server.model.L1Location;import l1j.server.server.model.L1World;import l1j.server.server.model.Instance.L1PcInstance;import l1j.server.server.model.Instance.L1TrapInstance;import l1j.server.server.types.Point;import l1j.server.server.utils.SQLUtil;public class L1WorldTraps {	private static l1j.eric.EricLogger _log =  l1j.eric.EricLogger.getLogger2(L1WorldTraps.class.getName());	private List<L1TrapInstance> _allTraps = new ArrayList<L1TrapInstance>();	private List<L1TrapInstance> _allBases = new ArrayList<L1TrapInstance>();	private Timer _timer = new Timer();	private static L1WorldTraps _instance;	private L1WorldTraps() {		initialize();	}	public static L1WorldTraps getInstance() {		if (_instance == null) {			_instance = new L1WorldTraps();		}		return _instance;	}	private void initialize() {		Connection con = null;		PreparedStatement pstm = null;		ResultSet rs = null;		try {			con = L1DatabaseFactory.getInstance().getConnection();			pstm = con.prepareStatement("SELECT * FROM spawnlist_trap");			rs = pstm.executeQuery();			while (rs.next()) {				int trapId = rs.getInt("trapId");				L1Trap trapTemp = TrapTable.getInstance().getTemplate(trapId);				L1Location loc = new L1Location();				loc.setMap(rs.getInt("mapId"));				loc.setX(rs.getInt("locX"));				loc.setY(rs.getInt("locY"));				Point rndPt = new Point();				rndPt.setX(rs.getInt("locRndX"));				rndPt.setY(rs.getInt("locRndY"));				int count = rs.getInt("count");				int span = rs.getInt("span");				for (int i = 0; i < count; i++) {					L1TrapInstance trap = new L1TrapInstance(IdFactory							.getInstance().nextId(), trapTemp, loc, rndPt, span);					L1World.getInstance().addVisibleObject(trap);					_allTraps.add(trap);				}				L1TrapInstance base = new L1TrapInstance(IdFactory						.getInstance().nextId(), loc);				L1World.getInstance().addVisibleObject(base);				_allBases.add(base);			}		} catch (SQLException e) {			_log.log(Level.SEVERE, e.getLocalizedMessage(), e);		} finally {			SQLUtil.close(rs);			SQLUtil.close(pstm);			SQLUtil.close(con);		}	}	public static void reloadTraps() {		TrapTable.reload();		L1WorldTraps oldInstance = _instance;		_instance = new L1WorldTraps();		oldInstance.resetTimer();		removeTraps(oldInstance._allTraps);		removeTraps(oldInstance._allBases);	}	private static void removeTraps(List<L1TrapInstance> traps) {		for (L1TrapInstance trap : traps) {			trap.disableTrap();			L1World.getInstance().removeVisibleObject(trap);		}	}	private void resetTimer() {		synchronized (this) {			_timer.cancel();			_timer = new Timer();		}	}	private void disableTrap(L1TrapInstance trap) {		trap.disableTrap();		synchronized (this) {			_timer.schedule(new TrapSpawnTimer(trap), trap.getSpan());		}	}	public void resetAllTraps() {		for (L1TrapInstance trap : _allTraps) {			trap.resetLocation();			trap.enableTrap();		}	}	public void onPlayerMoved(L1PcInstance player) {		L1Location loc = player.getLocation();		for (L1TrapInstance trap : _allTraps) {			if (trap.isEnable() && loc.equals(trap.getLocation())) {				trap.onTrod(player);				disableTrap(trap);			}		}	}	public void onDetection(L1PcInstance caster) {		L1Location loc = caster.getLocation();		for (L1TrapInstance trap : _allTraps) {			if (trap.isEnable() && loc.isInScreen(trap.getLocation())) {				trap.onDetection(caster);				disableTrap(trap);			}		}	}	private class TrapSpawnTimer extends TimerTask {		private final L1TrapInstance _targetTrap;		public TrapSpawnTimer(L1TrapInstance trap) {			_targetTrap = trap;		}		@Override		public void run() {			_targetTrap.resetLocation();			_targetTrap.enableTrap();		}	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -