DeGFeT 63 Опубликовано 24 апреля, 2014 Здорова ребята Хочу сделать зону с телепортом, когда входишь в неё, что бы тебя телепортировало в указанные координаты или в город. Буду благодарен за помощь, с меня "+" Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 24 апреля, 2014 (изменено) Вешаешь слушатель на зону и делаешь в нем что хочешь с объектами, входящими в зону - что может быть сложного то? Пример для овера: package listeners.zones; import l2p.gameserver.listener.zone.OnZoneEnterLeaveListener; import l2p.gameserver.model.Creature; import l2p.gameserver.model.Player; import l2p.gameserver.model.Zone; import l2p.gameserver.model.Zone.ZoneType; import l2p.gameserver.scripts.ScriptFile; import l2p.gameserver.utils.Location; import l2p.gameserver.utils.ReflectionUtils; public class TeleportZone implements ScriptFile { private static ZoneListener _zoneListener; @Override public void onLoad() { _zoneListener = new ZoneListener(); for (Zone zone : ReflectionUtils.getZonesByType(ZoneType.teleport)) zone.addListener(_zoneListener); } @Override public void onReload() {} @Override public void onShutdown() {} public class ZoneListener implements OnZoneEnterLeaveListener { @Override public void onZoneEnter(Zone zone, Creature cha) { if (zone.getParams() == null || zone.getParams().getString("loc", "").isEmpty() || !cha.isPlayer()) return; if (zone.isActive()) ((Player) cha).teleToLocation(Location.parseLoc(zone.getParams().getString("loc"))); } @Override public void onZoneLeave(Zone zone, Creature cha) {} } } Изменено 24 апреля, 2014 пользователем Gaikotsu 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DeGFeT 63 Опубликовано 24 апреля, 2014 Вешаешь слушатель на зону и делаешь в нем что хочешь с объектами, входящими в зону - что может быть сложного то? Пример для овера: package listeners.zones; import l2p.gameserver.listener.zone.OnZoneEnterLeaveListener; import l2p.gameserver.model.Creature; import l2p.gameserver.model.Player; import l2p.gameserver.model.Zone; import l2p.gameserver.model.Zone.ZoneType; import l2p.gameserver.scripts.ScriptFile; import l2p.gameserver.utils.Location; import l2p.gameserver.utils.ReflectionUtils; public class TeleportZone implements ScriptFile { private static ZoneListener _zoneListener; @Override public void onLoad() { _zoneListener = new ZoneListener(); for (Zone zone : ReflectionUtils.getZonesByType(ZoneType.teleport)) zone.addListener(_zoneListener); } @Override public void onReload() {} @Override public void onShutdown() {} public class ZoneListener implements OnZoneEnterLeaveListener { @Override public void onZoneEnter(Zone zone, Creature cha) { if (zone.getParams() == null || zone.getParams().getString("loc", "").isEmpty() || !cha.isPlayer()) return; if (zone.isActive()) ((Player) cha).teleToLocation(Location.parseLoc(zone.getParams().getString("loc"))); } @Override public void onZoneLeave(Zone zone, Creature cha) {} } } Хорошо, а как его повесить + куда этот скрипт нужно вставить? Или просто создать в кастоме новый скрипт? P.S. Я не когда с зонами не работал, потому так туплю. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты