TA的每日心情 | 无聊 前天 15:25 |
---|
签到天数: 68 天 [LV.6]常住居民II
中级会员
 
- 积分
- 376
|
- package ai.individual;
- import java.util.concurrent.Executors;
- import java.util.concurrent.ScheduledExecutorService;
- import java.util.concurrent.TimeUnit;
- import com.l2jserver.gameserver.model.Location;
- import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
- import com.l2jserver.gameserver.model.L2World;
- public class L2JItemCheckScript {
- private static final int ITEM_ID = 31026;
- private static final Location TELEPORT_LOCATION = new Location(83355, 148621, -3405);
- private static final int MIN_X = -163799;
- private static final int MAX_X = -153811;
- private static final int MIN_Y = -190898;
- private static final int MAX_Y = -171206;
- private static final int Z = -3331;
- public static void main(String[] args) {
- ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
- executor.scheduleAtFixedRate(new ItemCheckTask(), 0, 10, TimeUnit.SECONDS);
- }
- static class ItemCheckTask implements Runnable {
- @Override
- public void run() {
- for (L2PcInstance player : L2World.getInstance().getAllPlayersArray()) {
- if (isInRange(player)) {
- if (!hasItem(player)) {
- teleportPlayer(player);
- }
- }
- }
- }
- private boolean isInRange(L2PcInstance player) {
- int x = player.getX();
- int y = player.getY();
- int z = player.getZ();
- return x >= MIN_X && x <= MAX_X && y >= MIN_Y && y <= MAX_Y && z == Z;
- }
- private boolean hasItem(L2PcInstance player) {
- for (L2ItemInstance item : player.getInventory().getItems()) {
- if (item.getItemId() == ITEM_ID) {
- return true;
- }
- }
- return false;
- }
- private void teleportPlayer(L2PcInstance player) {
- player.teleToLocation(TELEPORT_LOCATION, false);
- }
- }
- }
复制代码
需要指定物品才能进入指定坐标范围内 否则传送回奇岩 可以拿去做VIP地图:
31026为所需物品,83355, 148621, -3405 为传送回奇岩的坐标!
|
|