Перейти к содержанию
Авторизация  
DeGFeT

Зона Телепорта(Cuboid)

Рекомендуемые сообщения

Здорова ребята :hi:

Хочу сделать зону с телепортом, когда входишь в неё, что бы тебя телепортировало в указанные координаты или в город.

Буду благодарен за помощь, с меня "+" :drinks:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вешаешь слушатель на зону и делаешь в нем что хочешь с объектами, входящими в зону - что может быть сложного то?

 

Пример для овера:

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)
	{}
}
}

Изменено пользователем Gaikotsu
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вешаешь слушатель на зону и делаешь в нем что хочешь с объектами, входящими в зону - что может быть сложного то?

 

Пример для овера:

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. Я не когда с зонами не работал, потому так туплю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...