Support for inverted doors.
This commit is contained in:
parent
d6de2740bd
commit
5ecaf41431
10
L2J_Mobius_Helios/dist/game/data/DoorData.xml
vendored
10
L2J_Mobius_Helios/dist/game/data/DoorData.xml
vendored
@ -2100,7 +2100,7 @@
|
||||
<status showHp="false" />
|
||||
<openStatus openMethod="BY_ITEM" default="close" />
|
||||
</door>
|
||||
<door id="16200012" level="1" name="nornildg_l" emmiterId="16200112">
|
||||
<door id="16200012" level="1" name="nornildg_l" emmiterId="16200112" isInverted="true">
|
||||
<nodes nodeZ="-13008">
|
||||
<node x="-111444" y="87371" />
|
||||
<node x="-111444" y="86980" />
|
||||
@ -2124,7 +2124,7 @@
|
||||
<status targetable="false" showHp="false" isStealth="true" />
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="16200014" level="1" name="past_door" emmiterId="16200114">
|
||||
<door id="16200014" level="1" name="past_door" emmiterId="16200114" isInverted="true">
|
||||
<nodes nodeZ="-12904">
|
||||
<node x="-113194" y="87322" />
|
||||
<node x="-113193" y="87037" />
|
||||
@ -2136,7 +2136,7 @@
|
||||
<status showHp="false" />
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="16200015" level="1" name="present_door" emmiterId="16200115">
|
||||
<door id="16200015" level="1" name="present_door" emmiterId="16200115" isInverted="true">
|
||||
<nodes nodeZ="-12816">
|
||||
<node x="-115085" y="87321" />
|
||||
<node x="-115084" y="87036" />
|
||||
@ -2148,7 +2148,7 @@
|
||||
<status showHp="false" />
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="16200016" level="1" name="future_door" emmiterId="16200116">
|
||||
<door id="16200016" level="1" name="future_door" emmiterId="16200116" isInverted="true">
|
||||
<nodes nodeZ="-12711">
|
||||
<node x="-116982" y="87319" />
|
||||
<node x="-116981" y="87034" />
|
||||
@ -17139,7 +17139,7 @@
|
||||
<status showHp="false" />
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="16200201" name="nornil_cave_S.nornil_mover">
|
||||
<door id="16200201" name="nornil_cave_S.nornil_mover" isInverted="true">
|
||||
<!-- AUTO GENERATED DOOR -->
|
||||
<nodes nodeZ="-12616">
|
||||
<node x="-118879" y="87320" />
|
||||
|
@ -68,6 +68,7 @@
|
||||
<xs:attribute type="xs:positiveInteger" name="level" />
|
||||
<xs:attribute type="xs:string" name="name" />
|
||||
<xs:attribute type="xs:positiveInteger" name="emmiterId" />
|
||||
<xs:attribute type="xs:boolean" name="isInverted" />
|
||||
<xs:attribute type="xs:string" name="group" />
|
||||
<xs:attribute type="xs:positiveInteger" name="childId" />
|
||||
</xs:complexType>
|
||||
|
@ -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()));
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -2100,7 +2100,7 @@
|
||||
<status showHp="false" />
|
||||
<openStatus openMethod="BY_ITEM" default="close" />
|
||||
</door>
|
||||
<door id="16200012" level="1" name="nornildg_l" emmiterId="16200112">
|
||||
<door id="16200012" level="1" name="nornildg_l" emmiterId="16200112" isInverted="true">
|
||||
<nodes nodeZ="-13008">
|
||||
<node x="-111444" y="87371" />
|
||||
<node x="-111444" y="86980" />
|
||||
@ -2124,7 +2124,7 @@
|
||||
<status targetable="false" showHp="false" isStealth="true" />
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="16200014" level="1" name="past_door" emmiterId="16200114">
|
||||
<door id="16200014" level="1" name="past_door" emmiterId="16200114" isInverted="true">
|
||||
<nodes nodeZ="-12904">
|
||||
<node x="-113194" y="87322" />
|
||||
<node x="-113193" y="87037" />
|
||||
@ -2136,7 +2136,7 @@
|
||||
<status showHp="false" />
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="16200015" level="1" name="present_door" emmiterId="16200115">
|
||||
<door id="16200015" level="1" name="present_door" emmiterId="16200115" isInverted="true">
|
||||
<nodes nodeZ="-12816">
|
||||
<node x="-115085" y="87321" />
|
||||
<node x="-115084" y="87036" />
|
||||
@ -2148,7 +2148,7 @@
|
||||
<status showHp="false" />
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="16200016" level="1" name="future_door" emmiterId="16200116">
|
||||
<door id="16200016" level="1" name="future_door" emmiterId="16200116" isInverted="true">
|
||||
<nodes nodeZ="-12711">
|
||||
<node x="-116982" y="87319" />
|
||||
<node x="-116981" y="87034" />
|
||||
@ -17139,7 +17139,7 @@
|
||||
<status showHp="false" />
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="16200201" name="nornil_cave_S.nornil_mover">
|
||||
<door id="16200201" name="nornil_cave_S.nornil_mover" isInverted="true">
|
||||
<!-- AUTO GENERATED DOOR -->
|
||||
<nodes nodeZ="-12616">
|
||||
<node x="-118879" y="87320" />
|
||||
|
@ -68,6 +68,7 @@
|
||||
<xs:attribute type="xs:positiveInteger" name="level" />
|
||||
<xs:attribute type="xs:string" name="name" />
|
||||
<xs:attribute type="xs:positiveInteger" name="emmiterId" />
|
||||
<xs:attribute type="xs:boolean" name="isInverted" />
|
||||
<xs:attribute type="xs:string" name="group" />
|
||||
<xs:attribute type="xs:positiveInteger" name="childId" />
|
||||
</xs:complexType>
|
||||
|
@ -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()));
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user