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;
+ }
}