diff --git a/L2J_Mobius_Helios/dist/game/data/DoorData.xml b/L2J_Mobius_Helios/dist/game/data/DoorData.xml index 33943406e2..d6f7219773 100644 --- a/L2J_Mobius_Helios/dist/game/data/DoorData.xml +++ b/L2J_Mobius_Helios/dist/game/data/DoorData.xml @@ -2100,7 +2100,7 @@ - + @@ -2124,7 +2124,7 @@ - + @@ -2136,7 +2136,7 @@ - + @@ -2148,7 +2148,7 @@ - + @@ -17139,7 +17139,7 @@ - + diff --git a/L2J_Mobius_Helios/dist/game/data/xsd/shared.xsd b/L2J_Mobius_Helios/dist/game/data/xsd/shared.xsd index e2af5eebad..63a50b49cf 100644 --- a/L2J_Mobius_Helios/dist/game/data/xsd/shared.xsd +++ b/L2J_Mobius_Helios/dist/game/data/xsd/shared.xsd @@ -68,6 +68,7 @@ + diff --git a/L2J_Mobius_Helios/java/com/l2jmobius/gameserver/model/actor/instance/L2DoorInstance.java b/L2J_Mobius_Helios/java/com/l2jmobius/gameserver/model/actor/instance/L2DoorInstance.java index 086e6bb8b9..76153869d2 100644 --- a/L2J_Mobius_Helios/java/com/l2jmobius/gameserver/model/actor/instance/L2DoorInstance.java +++ b/L2J_Mobius_Helios/java/com/l2jmobius/gameserver/model/actor/instance/L2DoorInstance.java @@ -53,6 +53,7 @@ public final class L2DoorInstance extends L2Character { private boolean _open = false; private boolean _isAttackableDoor = false; + private boolean _isInverted = false; private int _meshindex = 1; private Future _autoCloseTask; @@ -64,6 +65,7 @@ public final class L2DoorInstance extends L2Character setLethalable(false); _open = template.isOpenByDefault(); _isAttackableDoor = template.isAttackable(); + _isInverted = template.isInverted(); super.setTargetable(template.isTargetable()); if (isOpenableByTime()) @@ -227,6 +229,11 @@ public final class L2DoorInstance extends L2Character return _isAttackableDoor; } + public boolean isInverted() + { + return _isInverted; + } + public boolean getIsShowHp() { return getTemplate().isShowHp(); @@ -367,7 +374,14 @@ public final class L2DoorInstance extends L2Character OnEventTrigger oe = null; if (getEmitter() > 0) { - oe = new OnEventTrigger(getEmitter(), isOpen()); + if (isInverted()) + { + oe = new OnEventTrigger(getEmitter(), !isOpen()); + } + else + { + oe = new OnEventTrigger(getEmitter(), isOpen()); + } } for (L2PcInstance player : knownPlayers) @@ -583,7 +597,14 @@ public final class L2DoorInstance extends L2Character { if (getEmitter() > 0) { - activeChar.sendPacket(new OnEventTrigger(getEmitter(), isOpen())); + if (isInverted()) + { + activeChar.sendPacket(new OnEventTrigger(getEmitter(), !isOpen())); + } + else + { + activeChar.sendPacket(new OnEventTrigger(getEmitter(), isOpen())); + } } activeChar.sendPacket(new StaticObject(this, activeChar.isGM())); } diff --git a/L2J_Mobius_Helios/java/com/l2jmobius/gameserver/model/actor/templates/L2DoorTemplate.java b/L2J_Mobius_Helios/java/com/l2jmobius/gameserver/model/actor/templates/L2DoorTemplate.java index e2555b4a0e..2e96bd4d85 100644 --- a/L2J_Mobius_Helios/java/com/l2jmobius/gameserver/model/actor/templates/L2DoorTemplate.java +++ b/L2J_Mobius_Helios/java/com/l2jmobius/gameserver/model/actor/templates/L2DoorTemplate.java @@ -55,6 +55,7 @@ public class L2DoorTemplate extends L2CharTemplate implements IIdentifiable private final boolean _checkCollision; private final boolean _isAttackableDoor; private final boolean _stealth; + private final boolean _isInverted; public L2DoorTemplate(StatsSet set) { @@ -105,6 +106,7 @@ public class L2DoorTemplate extends L2CharTemplate implements IIdentifiable } _isAttackableDoor = set.getBoolean("attackable", false); _stealth = set.getBoolean("stealth", false); + _isInverted = set.getBoolean("isInverted", false); } /** @@ -241,4 +243,9 @@ public class L2DoorTemplate extends L2CharTemplate implements IIdentifiable { return _stealth; } + + public boolean isInverted() + { + return _isInverted; + } } diff --git a/L2J_Mobius_Underground/dist/game/data/DoorData.xml b/L2J_Mobius_Underground/dist/game/data/DoorData.xml index 33943406e2..d6f7219773 100644 --- a/L2J_Mobius_Underground/dist/game/data/DoorData.xml +++ b/L2J_Mobius_Underground/dist/game/data/DoorData.xml @@ -2100,7 +2100,7 @@ - + @@ -2124,7 +2124,7 @@ - + @@ -2136,7 +2136,7 @@ - + @@ -2148,7 +2148,7 @@ - + @@ -17139,7 +17139,7 @@ - + diff --git a/L2J_Mobius_Underground/dist/game/data/xsd/shared.xsd b/L2J_Mobius_Underground/dist/game/data/xsd/shared.xsd index e2af5eebad..63a50b49cf 100644 --- a/L2J_Mobius_Underground/dist/game/data/xsd/shared.xsd +++ b/L2J_Mobius_Underground/dist/game/data/xsd/shared.xsd @@ -68,6 +68,7 @@ + diff --git a/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/model/actor/instance/L2DoorInstance.java b/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/model/actor/instance/L2DoorInstance.java index 086e6bb8b9..76153869d2 100644 --- a/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/model/actor/instance/L2DoorInstance.java +++ b/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/model/actor/instance/L2DoorInstance.java @@ -53,6 +53,7 @@ public final class L2DoorInstance extends L2Character { private boolean _open = false; private boolean _isAttackableDoor = false; + private boolean _isInverted = false; private int _meshindex = 1; private Future _autoCloseTask; @@ -64,6 +65,7 @@ public final class L2DoorInstance extends L2Character setLethalable(false); _open = template.isOpenByDefault(); _isAttackableDoor = template.isAttackable(); + _isInverted = template.isInverted(); super.setTargetable(template.isTargetable()); if (isOpenableByTime()) @@ -227,6 +229,11 @@ public final class L2DoorInstance extends L2Character return _isAttackableDoor; } + public boolean isInverted() + { + return _isInverted; + } + public boolean getIsShowHp() { return getTemplate().isShowHp(); @@ -367,7 +374,14 @@ public final class L2DoorInstance extends L2Character OnEventTrigger oe = null; if (getEmitter() > 0) { - oe = new OnEventTrigger(getEmitter(), isOpen()); + if (isInverted()) + { + oe = new OnEventTrigger(getEmitter(), !isOpen()); + } + else + { + oe = new OnEventTrigger(getEmitter(), isOpen()); + } } for (L2PcInstance player : knownPlayers) @@ -583,7 +597,14 @@ public final class L2DoorInstance extends L2Character { if (getEmitter() > 0) { - activeChar.sendPacket(new OnEventTrigger(getEmitter(), isOpen())); + if (isInverted()) + { + activeChar.sendPacket(new OnEventTrigger(getEmitter(), !isOpen())); + } + else + { + activeChar.sendPacket(new OnEventTrigger(getEmitter(), isOpen())); + } } activeChar.sendPacket(new StaticObject(this, activeChar.isGM())); } diff --git a/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/model/actor/templates/L2DoorTemplate.java b/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/model/actor/templates/L2DoorTemplate.java index e2555b4a0e..2e96bd4d85 100644 --- a/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/model/actor/templates/L2DoorTemplate.java +++ b/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/model/actor/templates/L2DoorTemplate.java @@ -55,6 +55,7 @@ public class L2DoorTemplate extends L2CharTemplate implements IIdentifiable private final boolean _checkCollision; private final boolean _isAttackableDoor; private final boolean _stealth; + private final boolean _isInverted; public L2DoorTemplate(StatsSet set) { @@ -105,6 +106,7 @@ public class L2DoorTemplate extends L2CharTemplate implements IIdentifiable } _isAttackableDoor = set.getBoolean("attackable", false); _stealth = set.getBoolean("stealth", false); + _isInverted = set.getBoolean("isInverted", false); } /** @@ -241,4 +243,9 @@ public class L2DoorTemplate extends L2CharTemplate implements IIdentifiable { return _stealth; } + + public boolean isInverted() + { + return _isInverted; + } }