package zones;
/**
* @author Mangol
*/
public class CustomZone implements OnInitScriptListener
{
private static ZoneListener _zoneListener;
private final AttackListener attackListener = new AttackListener();
private static String[] zones = { "[zone1]", "[zone2]", };
private final int[] check_transform_id = { 106, 306, 506 }; // пример и тд.
@Override
public void onInit()
{
_zoneListener = new ZoneListener();
for(final String z : zones)
{
final Zone zone = ReflectionUtils.getZone(z);
zone.addListener(_zoneListener);
}
}
private class ZoneListener implements OnZoneEnterLeaveListener
{
@Override
public void onZoneEnter(final Zone zone, final Creature cha)
{
if(zone.getParams() == null || !cha.isPlayable())
{
return;
}
final Player player = cha.getPlayer();
if(zone.getParams().getBool("transformprotection"))
{
if(player != null)
{
final int transform_id = player.getTransformation();
//если увидели ид трансформы которую нужно снять.
if(ArrayUtils.contains(check_transform_id, transform_id))
{
player.setTransformation(0);
player.sendMessage("Что творишь Что творишь!!1");
}
}
}
player.addListener(attackListener);
}
@Override
public void onZoneLeave(final Zone zone, final Creature cha)
{
if(cha.isPlayer())
{
cha.removeListener(attackListener);
}
}
}
private class AttackListener implements OnAttackListener
{
@Override
public void onAttack(final Creature actor, final Creature target)
{
if(actor.isPlayer())
{
final Player player = actor.getPlayer();
final int transform_id = player.getTransformation();
//если увидели ид трансформы которую нужно снять.
if(ArrayUtils.contains(check_transform_id, transform_id))
{
player.setTransformation(0);
player.sendMessage("Что творишь Что творишь!!1");
}
}
}
}
}