Dropped the use of GameTimeController for spawn protection.
This commit is contained in:
parent
999f8d09ac
commit
a05027021a
@ -715,14 +715,14 @@ UnstuckInterval = 300
|
|||||||
# Default: 0
|
# Default: 0
|
||||||
TeleportWatchdogTimeout = 0
|
TeleportWatchdogTimeout = 0
|
||||||
|
|
||||||
# After a player teleports, this is the time the player is protected.
|
# After a player spawns, this is the time the player is protected.
|
||||||
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
||||||
# Retail (Since GE): 600 (10 minutes)
|
# Retail (Since GE): 600 (10 minutes)
|
||||||
# Default: 600
|
# Default: 600
|
||||||
PlayerSpawnProtection = 600
|
PlayerSpawnProtection = 600
|
||||||
|
|
||||||
# Teleport spawn protection time. It will protect the player in the
|
# After a player teleports, this is the time the player is protected.
|
||||||
# teleport spawn for the given time. 0 to disable feature
|
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
||||||
PlayerTeleportProtection = 0
|
PlayerTeleportProtection = 0
|
||||||
|
|
||||||
# If enabled, players respawn in town on different locations defined in zone.xml for given town.
|
# If enabled, players respawn in town on different locations defined in zone.xml for given town.
|
||||||
|
@ -130,7 +130,7 @@ public class FindPvP implements IBypassHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
activeChar.teleToLocation((mostPvP.getX() + Rnd.get(300)) - 150, (mostPvP.getY() + Rnd.get(300)) - 150, mostPvP.getZ());
|
activeChar.teleToLocation((mostPvP.getX() + Rnd.get(300)) - 150, (mostPvP.getY() + Rnd.get(300)) - 150, mostPvP.getZ());
|
||||||
activeChar.setProtection(true);
|
activeChar.setSpawnProtection(true);
|
||||||
if (!activeChar.isGM())
|
if (!activeChar.isGM())
|
||||||
{
|
{
|
||||||
activeChar.setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_PVP_TIME);
|
activeChar.setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_PVP_TIME);
|
||||||
|
@ -669,7 +669,8 @@ public final class L2PcInstance extends L2Playable
|
|||||||
private final L2Request _request = new L2Request(this);
|
private final L2Request _request = new L2Request(this);
|
||||||
|
|
||||||
// Used for protection after teleport
|
// Used for protection after teleport
|
||||||
private long _protectEndTime = 0;
|
private long _spawnProtectEndTime = 0;
|
||||||
|
private long _teleportProtectEndTime = 0;
|
||||||
|
|
||||||
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
||||||
|
|
||||||
@ -677,18 +678,6 @@ public final class L2PcInstance extends L2Playable
|
|||||||
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events;
|
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events;
|
||||||
private boolean _isOnCustomEvent = false;
|
private boolean _isOnCustomEvent = false;
|
||||||
|
|
||||||
public boolean isSpawnProtected()
|
|
||||||
{
|
|
||||||
return _protectEndTime > GameTimeController.getInstance().getGameTicks();
|
|
||||||
}
|
|
||||||
|
|
||||||
private long _teleportProtectEndTime = 0;
|
|
||||||
|
|
||||||
public boolean isTeleportProtected()
|
|
||||||
{
|
|
||||||
return _teleportProtectEndTime > GameTimeController.getInstance().getGameTicks();
|
|
||||||
}
|
|
||||||
|
|
||||||
// protects a char from aggro mobs when getting up from fake death
|
// protects a char from aggro mobs when getting up from fake death
|
||||||
private long _recentFakeDeathEndTime = 0;
|
private long _recentFakeDeathEndTime = 0;
|
||||||
|
|
||||||
@ -3878,24 +3867,24 @@ public final class L2PcInstance extends L2Playable
|
|||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setProtection(boolean protect)
|
public boolean isSpawnProtected()
|
||||||
{
|
{
|
||||||
if (Config.DEVELOPER && (protect || (_protectEndTime > 0)))
|
return _spawnProtectEndTime > System.currentTimeMillis();
|
||||||
{
|
|
||||||
LOGGER.warning(getName() + ": Protection " + (protect ? "ON " + (GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_SPAWN_PROTECTION * GameTimeController.TICKS_PER_SECOND)) : "OFF") + " (currently " + GameTimeController.getInstance().getGameTicks() + ")");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_protectEndTime = protect ? GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_SPAWN_PROTECTION * GameTimeController.TICKS_PER_SECOND) : 0;
|
public boolean isTeleportProtected()
|
||||||
|
{
|
||||||
|
return _teleportProtectEndTime > System.currentTimeMillis();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSpawnProtection(boolean protect)
|
||||||
|
{
|
||||||
|
_spawnProtectEndTime = protect ? System.currentTimeMillis() + (Config.PLAYER_SPAWN_PROTECTION * 1000) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTeleportProtection(boolean protect)
|
public void setTeleportProtection(boolean protect)
|
||||||
{
|
{
|
||||||
if (Config.DEVELOPER && (protect || (_teleportProtectEndTime > 0)))
|
_teleportProtectEndTime = protect ? System.currentTimeMillis() + (Config.PLAYER_TELEPORT_PROTECTION * 1000) : 0;
|
||||||
{
|
|
||||||
LOGGER.warning(getName() + ": Tele Protection " + (protect ? "ON " + (GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_TELEPORT_PROTECTION * GameTimeController.TICKS_PER_SECOND)) : "OFF") + " (currently " + GameTimeController.getInstance().getGameTicks() + ")");
|
|
||||||
}
|
|
||||||
|
|
||||||
_teleportProtectEndTime = protect ? GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_TELEPORT_PROTECTION * GameTimeController.TICKS_PER_SECOND) : 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10275,7 +10264,7 @@ public final class L2PcInstance extends L2Playable
|
|||||||
{
|
{
|
||||||
if (isSpawnProtected())
|
if (isSpawnProtected())
|
||||||
{
|
{
|
||||||
setProtection(false);
|
setSpawnProtection(false);
|
||||||
if (!isInsideZone(ZoneId.PEACE))
|
if (!isInsideZone(ZoneId.PEACE))
|
||||||
{
|
{
|
||||||
sendPacket(SystemMessageId.YOU_ARE_NO_LONGER_PROTECTED_FROM_AGGRESSIVE_MONSTERS);
|
sendPacket(SystemMessageId.YOU_ARE_NO_LONGER_PROTECTED_FROM_AGGRESSIVE_MONSTERS);
|
||||||
|
@ -427,7 +427,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
if (Config.PLAYER_SPAWN_PROTECTION > 0)
|
if (Config.PLAYER_SPAWN_PROTECTION > 0)
|
||||||
{
|
{
|
||||||
activeChar.setProtection(true);
|
activeChar.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
|
activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
|
||||||
|
@ -715,14 +715,14 @@ UnstuckInterval = 300
|
|||||||
# Default: 0
|
# Default: 0
|
||||||
TeleportWatchdogTimeout = 0
|
TeleportWatchdogTimeout = 0
|
||||||
|
|
||||||
# After a player teleports, this is the time the player is protected.
|
# After a player spawns, this is the time the player is protected.
|
||||||
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
||||||
# Retail (Since GE): 600 (10 minutes)
|
# Retail (Since GE): 600 (10 minutes)
|
||||||
# Default: 600
|
# Default: 600
|
||||||
PlayerSpawnProtection = 600
|
PlayerSpawnProtection = 600
|
||||||
|
|
||||||
# Teleport spawn protection time. It will protect the player in the
|
# After a player teleports, this is the time the player is protected.
|
||||||
# teleport spawn for the given time. 0 to disable feature
|
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
||||||
PlayerTeleportProtection = 0
|
PlayerTeleportProtection = 0
|
||||||
|
|
||||||
# If enabled, players respawn in town on different locations defined in zone.xml for given town.
|
# If enabled, players respawn in town on different locations defined in zone.xml for given town.
|
||||||
|
@ -130,7 +130,7 @@ public class FindPvP implements IBypassHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
activeChar.teleToLocation((mostPvP.getX() + Rnd.get(300)) - 150, (mostPvP.getY() + Rnd.get(300)) - 150, mostPvP.getZ());
|
activeChar.teleToLocation((mostPvP.getX() + Rnd.get(300)) - 150, (mostPvP.getY() + Rnd.get(300)) - 150, mostPvP.getZ());
|
||||||
activeChar.setProtection(true);
|
activeChar.setSpawnProtection(true);
|
||||||
if (!activeChar.isGM())
|
if (!activeChar.isGM())
|
||||||
{
|
{
|
||||||
activeChar.setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_PVP_TIME);
|
activeChar.setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_PVP_TIME);
|
||||||
|
@ -671,7 +671,8 @@ public final class L2PcInstance extends L2Playable
|
|||||||
private final L2Request _request = new L2Request(this);
|
private final L2Request _request = new L2Request(this);
|
||||||
|
|
||||||
// Used for protection after teleport
|
// Used for protection after teleport
|
||||||
private long _protectEndTime = 0;
|
private long _spawnProtectEndTime = 0;
|
||||||
|
private long _teleportProtectEndTime = 0;
|
||||||
|
|
||||||
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
||||||
|
|
||||||
@ -679,18 +680,6 @@ public final class L2PcInstance extends L2Playable
|
|||||||
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events;
|
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events;
|
||||||
private boolean _isOnCustomEvent = false;
|
private boolean _isOnCustomEvent = false;
|
||||||
|
|
||||||
public boolean isSpawnProtected()
|
|
||||||
{
|
|
||||||
return _protectEndTime > GameTimeController.getInstance().getGameTicks();
|
|
||||||
}
|
|
||||||
|
|
||||||
private long _teleportProtectEndTime = 0;
|
|
||||||
|
|
||||||
public boolean isTeleportProtected()
|
|
||||||
{
|
|
||||||
return _teleportProtectEndTime > GameTimeController.getInstance().getGameTicks();
|
|
||||||
}
|
|
||||||
|
|
||||||
// protects a char from aggro mobs when getting up from fake death
|
// protects a char from aggro mobs when getting up from fake death
|
||||||
private long _recentFakeDeathEndTime = 0;
|
private long _recentFakeDeathEndTime = 0;
|
||||||
|
|
||||||
@ -3884,24 +3873,24 @@ public final class L2PcInstance extends L2Playable
|
|||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setProtection(boolean protect)
|
public boolean isSpawnProtected()
|
||||||
{
|
{
|
||||||
if (Config.DEVELOPER && (protect || (_protectEndTime > 0)))
|
return _spawnProtectEndTime > System.currentTimeMillis();
|
||||||
{
|
|
||||||
LOGGER.warning(getName() + ": Protection " + (protect ? "ON " + (GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_SPAWN_PROTECTION * GameTimeController.TICKS_PER_SECOND)) : "OFF") + " (currently " + GameTimeController.getInstance().getGameTicks() + ")");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_protectEndTime = protect ? GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_SPAWN_PROTECTION * GameTimeController.TICKS_PER_SECOND) : 0;
|
public boolean isTeleportProtected()
|
||||||
|
{
|
||||||
|
return _teleportProtectEndTime > System.currentTimeMillis();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSpawnProtection(boolean protect)
|
||||||
|
{
|
||||||
|
_spawnProtectEndTime = protect ? System.currentTimeMillis() + (Config.PLAYER_SPAWN_PROTECTION * 1000) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTeleportProtection(boolean protect)
|
public void setTeleportProtection(boolean protect)
|
||||||
{
|
{
|
||||||
if (Config.DEVELOPER && (protect || (_teleportProtectEndTime > 0)))
|
_teleportProtectEndTime = protect ? System.currentTimeMillis() + (Config.PLAYER_TELEPORT_PROTECTION * 1000) : 0;
|
||||||
{
|
|
||||||
LOGGER.warning(getName() + ": Tele Protection " + (protect ? "ON " + (GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_TELEPORT_PROTECTION * GameTimeController.TICKS_PER_SECOND)) : "OFF") + " (currently " + GameTimeController.getInstance().getGameTicks() + ")");
|
|
||||||
}
|
|
||||||
|
|
||||||
_teleportProtectEndTime = protect ? GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_TELEPORT_PROTECTION * GameTimeController.TICKS_PER_SECOND) : 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10282,7 +10271,7 @@ public final class L2PcInstance extends L2Playable
|
|||||||
{
|
{
|
||||||
if (isSpawnProtected())
|
if (isSpawnProtected())
|
||||||
{
|
{
|
||||||
setProtection(false);
|
setSpawnProtection(false);
|
||||||
if (!isInsideZone(ZoneId.PEACE))
|
if (!isInsideZone(ZoneId.PEACE))
|
||||||
{
|
{
|
||||||
sendPacket(SystemMessageId.YOU_ARE_NO_LONGER_PROTECTED_FROM_AGGRESSIVE_MONSTERS);
|
sendPacket(SystemMessageId.YOU_ARE_NO_LONGER_PROTECTED_FROM_AGGRESSIVE_MONSTERS);
|
||||||
|
@ -432,7 +432,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
if (Config.PLAYER_SPAWN_PROTECTION > 0)
|
if (Config.PLAYER_SPAWN_PROTECTION > 0)
|
||||||
{
|
{
|
||||||
activeChar.setProtection(true);
|
activeChar.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
|
activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
|
||||||
|
@ -715,14 +715,14 @@ UnstuckInterval = 300
|
|||||||
# Default: 0
|
# Default: 0
|
||||||
TeleportWatchdogTimeout = 0
|
TeleportWatchdogTimeout = 0
|
||||||
|
|
||||||
# After a player teleports, this is the time the player is protected.
|
# After a player spawns, this is the time the player is protected.
|
||||||
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
||||||
# Retail (Since GE): 600 (10 minutes)
|
# Retail (Since GE): 600 (10 minutes)
|
||||||
# Default: 600
|
# Default: 600
|
||||||
PlayerSpawnProtection = 600
|
PlayerSpawnProtection = 600
|
||||||
|
|
||||||
# Teleport spawn protection time. It will protect the player in the
|
# After a player teleports, this is the time the player is protected.
|
||||||
# teleport spawn for the given time. 0 to disable feature
|
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
||||||
PlayerTeleportProtection = 0
|
PlayerTeleportProtection = 0
|
||||||
|
|
||||||
# If enabled, players respawn in town on different locations defined in zone.xml for given town.
|
# If enabled, players respawn in town on different locations defined in zone.xml for given town.
|
||||||
|
@ -130,7 +130,7 @@ public class FindPvP implements IBypassHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
activeChar.teleToLocation((mostPvP.getX() + Rnd.get(300)) - 150, (mostPvP.getY() + Rnd.get(300)) - 150, mostPvP.getZ());
|
activeChar.teleToLocation((mostPvP.getX() + Rnd.get(300)) - 150, (mostPvP.getY() + Rnd.get(300)) - 150, mostPvP.getZ());
|
||||||
activeChar.setProtection(true);
|
activeChar.setSpawnProtection(true);
|
||||||
if (!activeChar.isGM())
|
if (!activeChar.isGM())
|
||||||
{
|
{
|
||||||
activeChar.setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_PVP_TIME);
|
activeChar.setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_PVP_TIME);
|
||||||
|
@ -673,7 +673,8 @@ public final class L2PcInstance extends L2Playable
|
|||||||
private final L2Request _request = new L2Request(this);
|
private final L2Request _request = new L2Request(this);
|
||||||
|
|
||||||
// Used for protection after teleport
|
// Used for protection after teleport
|
||||||
private long _protectEndTime = 0;
|
private long _spawnProtectEndTime = 0;
|
||||||
|
private long _teleportProtectEndTime = 0;
|
||||||
|
|
||||||
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
||||||
|
|
||||||
@ -681,18 +682,6 @@ public final class L2PcInstance extends L2Playable
|
|||||||
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events;
|
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events;
|
||||||
private boolean _isOnCustomEvent = false;
|
private boolean _isOnCustomEvent = false;
|
||||||
|
|
||||||
public boolean isSpawnProtected()
|
|
||||||
{
|
|
||||||
return _protectEndTime > GameTimeController.getInstance().getGameTicks();
|
|
||||||
}
|
|
||||||
|
|
||||||
private long _teleportProtectEndTime = 0;
|
|
||||||
|
|
||||||
public boolean isTeleportProtected()
|
|
||||||
{
|
|
||||||
return _teleportProtectEndTime > GameTimeController.getInstance().getGameTicks();
|
|
||||||
}
|
|
||||||
|
|
||||||
// protects a char from aggro mobs when getting up from fake death
|
// protects a char from aggro mobs when getting up from fake death
|
||||||
private long _recentFakeDeathEndTime = 0;
|
private long _recentFakeDeathEndTime = 0;
|
||||||
|
|
||||||
@ -3886,24 +3875,24 @@ public final class L2PcInstance extends L2Playable
|
|||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setProtection(boolean protect)
|
public boolean isSpawnProtected()
|
||||||
{
|
{
|
||||||
if (Config.DEVELOPER && (protect || (_protectEndTime > 0)))
|
return _spawnProtectEndTime > System.currentTimeMillis();
|
||||||
{
|
|
||||||
LOGGER.warning(getName() + ": Protection " + (protect ? "ON " + (GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_SPAWN_PROTECTION * GameTimeController.TICKS_PER_SECOND)) : "OFF") + " (currently " + GameTimeController.getInstance().getGameTicks() + ")");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_protectEndTime = protect ? GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_SPAWN_PROTECTION * GameTimeController.TICKS_PER_SECOND) : 0;
|
public boolean isTeleportProtected()
|
||||||
|
{
|
||||||
|
return _teleportProtectEndTime > System.currentTimeMillis();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSpawnProtection(boolean protect)
|
||||||
|
{
|
||||||
|
_spawnProtectEndTime = protect ? System.currentTimeMillis() + (Config.PLAYER_SPAWN_PROTECTION * 1000) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTeleportProtection(boolean protect)
|
public void setTeleportProtection(boolean protect)
|
||||||
{
|
{
|
||||||
if (Config.DEVELOPER && (protect || (_teleportProtectEndTime > 0)))
|
_teleportProtectEndTime = protect ? System.currentTimeMillis() + (Config.PLAYER_TELEPORT_PROTECTION * 1000) : 0;
|
||||||
{
|
|
||||||
LOGGER.warning(getName() + ": Tele Protection " + (protect ? "ON " + (GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_TELEPORT_PROTECTION * GameTimeController.TICKS_PER_SECOND)) : "OFF") + " (currently " + GameTimeController.getInstance().getGameTicks() + ")");
|
|
||||||
}
|
|
||||||
|
|
||||||
_teleportProtectEndTime = protect ? GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_TELEPORT_PROTECTION * GameTimeController.TICKS_PER_SECOND) : 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10292,7 +10281,7 @@ public final class L2PcInstance extends L2Playable
|
|||||||
{
|
{
|
||||||
if (isSpawnProtected())
|
if (isSpawnProtected())
|
||||||
{
|
{
|
||||||
setProtection(false);
|
setSpawnProtection(false);
|
||||||
if (!isInsideZone(ZoneId.PEACE))
|
if (!isInsideZone(ZoneId.PEACE))
|
||||||
{
|
{
|
||||||
sendPacket(SystemMessageId.YOU_ARE_NO_LONGER_PROTECTED_FROM_AGGRESSIVE_MONSTERS);
|
sendPacket(SystemMessageId.YOU_ARE_NO_LONGER_PROTECTED_FROM_AGGRESSIVE_MONSTERS);
|
||||||
|
@ -432,7 +432,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
if (Config.PLAYER_SPAWN_PROTECTION > 0)
|
if (Config.PLAYER_SPAWN_PROTECTION > 0)
|
||||||
{
|
{
|
||||||
activeChar.setProtection(true);
|
activeChar.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
|
activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
|
||||||
|
@ -715,14 +715,14 @@ UnstuckInterval = 300
|
|||||||
# Default: 0
|
# Default: 0
|
||||||
TeleportWatchdogTimeout = 0
|
TeleportWatchdogTimeout = 0
|
||||||
|
|
||||||
# After a player teleports, this is the time the player is protected.
|
# After a player spawns, this is the time the player is protected.
|
||||||
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
||||||
# Retail (Since GE): 600 (10 minutes)
|
# Retail (Since GE): 600 (10 minutes)
|
||||||
# Default: 600
|
# Default: 600
|
||||||
PlayerSpawnProtection = 600
|
PlayerSpawnProtection = 600
|
||||||
|
|
||||||
# Teleport spawn protection time. It will protect the player in the
|
# After a player teleports, this is the time the player is protected.
|
||||||
# teleport spawn for the given time. 0 to disable feature
|
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
||||||
PlayerTeleportProtection = 0
|
PlayerTeleportProtection = 0
|
||||||
|
|
||||||
# If enabled, players respawn in town on different locations defined in zone.xml for given town.
|
# If enabled, players respawn in town on different locations defined in zone.xml for given town.
|
||||||
|
@ -130,7 +130,7 @@ public class FindPvP implements IBypassHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
activeChar.teleToLocation((mostPvP.getX() + Rnd.get(300)) - 150, (mostPvP.getY() + Rnd.get(300)) - 150, mostPvP.getZ());
|
activeChar.teleToLocation((mostPvP.getX() + Rnd.get(300)) - 150, (mostPvP.getY() + Rnd.get(300)) - 150, mostPvP.getZ());
|
||||||
activeChar.setProtection(true);
|
activeChar.setSpawnProtection(true);
|
||||||
if (!activeChar.isGM())
|
if (!activeChar.isGM())
|
||||||
{
|
{
|
||||||
activeChar.setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_PVP_TIME);
|
activeChar.setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_PVP_TIME);
|
||||||
|
@ -676,7 +676,8 @@ public final class L2PcInstance extends L2Playable
|
|||||||
private final L2Request _request = new L2Request(this);
|
private final L2Request _request = new L2Request(this);
|
||||||
|
|
||||||
// Used for protection after teleport
|
// Used for protection after teleport
|
||||||
private long _protectEndTime = 0;
|
private long _spawnProtectEndTime = 0;
|
||||||
|
private long _teleportProtectEndTime = 0;
|
||||||
|
|
||||||
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
||||||
|
|
||||||
@ -684,18 +685,6 @@ public final class L2PcInstance extends L2Playable
|
|||||||
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events;
|
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events;
|
||||||
private boolean _isOnCustomEvent = false;
|
private boolean _isOnCustomEvent = false;
|
||||||
|
|
||||||
public boolean isSpawnProtected()
|
|
||||||
{
|
|
||||||
return _protectEndTime > GameTimeController.getInstance().getGameTicks();
|
|
||||||
}
|
|
||||||
|
|
||||||
private long _teleportProtectEndTime = 0;
|
|
||||||
|
|
||||||
public boolean isTeleportProtected()
|
|
||||||
{
|
|
||||||
return _teleportProtectEndTime > GameTimeController.getInstance().getGameTicks();
|
|
||||||
}
|
|
||||||
|
|
||||||
// protects a char from aggro mobs when getting up from fake death
|
// protects a char from aggro mobs when getting up from fake death
|
||||||
private long _recentFakeDeathEndTime = 0;
|
private long _recentFakeDeathEndTime = 0;
|
||||||
|
|
||||||
@ -3877,24 +3866,24 @@ public final class L2PcInstance extends L2Playable
|
|||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setProtection(boolean protect)
|
public boolean isSpawnProtected()
|
||||||
{
|
{
|
||||||
if (Config.DEVELOPER && (protect || (_protectEndTime > 0)))
|
return _spawnProtectEndTime > System.currentTimeMillis();
|
||||||
{
|
|
||||||
LOGGER.warning(getName() + ": Protection " + (protect ? "ON " + (GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_SPAWN_PROTECTION * GameTimeController.TICKS_PER_SECOND)) : "OFF") + " (currently " + GameTimeController.getInstance().getGameTicks() + ")");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_protectEndTime = protect ? GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_SPAWN_PROTECTION * GameTimeController.TICKS_PER_SECOND) : 0;
|
public boolean isTeleportProtected()
|
||||||
|
{
|
||||||
|
return _teleportProtectEndTime > System.currentTimeMillis();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSpawnProtection(boolean protect)
|
||||||
|
{
|
||||||
|
_spawnProtectEndTime = protect ? System.currentTimeMillis() + (Config.PLAYER_SPAWN_PROTECTION * 1000) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTeleportProtection(boolean protect)
|
public void setTeleportProtection(boolean protect)
|
||||||
{
|
{
|
||||||
if (Config.DEVELOPER && (protect || (_teleportProtectEndTime > 0)))
|
_teleportProtectEndTime = protect ? System.currentTimeMillis() + (Config.PLAYER_TELEPORT_PROTECTION * 1000) : 0;
|
||||||
{
|
|
||||||
LOGGER.warning(getName() + ": Tele Protection " + (protect ? "ON " + (GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_TELEPORT_PROTECTION * GameTimeController.TICKS_PER_SECOND)) : "OFF") + " (currently " + GameTimeController.getInstance().getGameTicks() + ")");
|
|
||||||
}
|
|
||||||
|
|
||||||
_teleportProtectEndTime = protect ? GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_TELEPORT_PROTECTION * GameTimeController.TICKS_PER_SECOND) : 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10285,7 +10274,7 @@ public final class L2PcInstance extends L2Playable
|
|||||||
{
|
{
|
||||||
if (isSpawnProtected())
|
if (isSpawnProtected())
|
||||||
{
|
{
|
||||||
setProtection(false);
|
setSpawnProtection(false);
|
||||||
if (!isInsideZone(ZoneId.PEACE))
|
if (!isInsideZone(ZoneId.PEACE))
|
||||||
{
|
{
|
||||||
sendPacket(SystemMessageId.YOU_ARE_NO_LONGER_PROTECTED_FROM_AGGRESSIVE_MONSTERS);
|
sendPacket(SystemMessageId.YOU_ARE_NO_LONGER_PROTECTED_FROM_AGGRESSIVE_MONSTERS);
|
||||||
|
@ -432,7 +432,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
if (Config.PLAYER_SPAWN_PROTECTION > 0)
|
if (Config.PLAYER_SPAWN_PROTECTION > 0)
|
||||||
{
|
{
|
||||||
activeChar.setProtection(true);
|
activeChar.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
|
activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
|
||||||
|
@ -21,7 +21,7 @@ DecreaseSkillOnDelevel = True
|
|||||||
|
|
||||||
# Weight limit multiplier. Example: Setting this to 5 will give players 5x the normal weight limit.
|
# Weight limit multiplier. Example: Setting this to 5 will give players 5x the normal weight limit.
|
||||||
# Default: 1
|
# Default: 1
|
||||||
AltWeightLimit = 2
|
AltWeightLimit = 1
|
||||||
|
|
||||||
# Run speed modifier. Example: Setting this to 5 will give players +5 to their running speed.
|
# Run speed modifier. Example: Setting this to 5 will give players +5 to their running speed.
|
||||||
# Default: 0
|
# Default: 0
|
||||||
@ -753,15 +753,15 @@ UnstuckInterval = 300
|
|||||||
# Default: 0
|
# Default: 0
|
||||||
TeleportWatchdogTimeout = 0
|
TeleportWatchdogTimeout = 0
|
||||||
|
|
||||||
# After a player teleports, this is the time the player is protected.
|
# After a player spawns, this is the time the player is protected.
|
||||||
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
||||||
# Retail (Since GE): 600 (10 minutes)
|
# Retail (Since GE): 600 (10 minutes)
|
||||||
# Default: 600
|
# Default: 600
|
||||||
PlayerSpawnProtection = 600
|
PlayerSpawnProtection = 600
|
||||||
|
|
||||||
# Teleport spawn protection time. It will protect the player in the
|
# After a player teleports, this is the time the player is protected.
|
||||||
# teleport spawn for the given time. 0 to disable feature
|
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
||||||
PlayerTeleportProtection = 30
|
PlayerTeleportProtection = 0
|
||||||
|
|
||||||
# If enabled, players respawn in town on different locations defined in zone.xml for given town.
|
# If enabled, players respawn in town on different locations defined in zone.xml for given town.
|
||||||
# If disabled the first spawn location from zone.xml is used.
|
# If disabled the first spawn location from zone.xml is used.
|
||||||
|
@ -130,7 +130,7 @@ public class FindPvP implements IBypassHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
activeChar.teleToLocation((mostPvP.getX() + Rnd.get(300)) - 150, (mostPvP.getY() + Rnd.get(300)) - 150, mostPvP.getZ());
|
activeChar.teleToLocation((mostPvP.getX() + Rnd.get(300)) - 150, (mostPvP.getY() + Rnd.get(300)) - 150, mostPvP.getZ());
|
||||||
activeChar.setProtection(true);
|
activeChar.setSpawnProtection(true);
|
||||||
if (!activeChar.isGM())
|
if (!activeChar.isGM())
|
||||||
{
|
{
|
||||||
activeChar.setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_PVP_TIME);
|
activeChar.setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_PVP_TIME);
|
||||||
|
@ -688,21 +688,10 @@ public final class L2PcInstance extends L2Playable
|
|||||||
private L2ItemInstance _boltItem;
|
private L2ItemInstance _boltItem;
|
||||||
|
|
||||||
// Used for protection after teleport
|
// Used for protection after teleport
|
||||||
private long _protectEndTime = 0;
|
private long _spawnProtectEndTime = 0;
|
||||||
|
|
||||||
private L2ItemInstance _lure = null;
|
|
||||||
|
|
||||||
public boolean isSpawnProtected()
|
|
||||||
{
|
|
||||||
return _protectEndTime > GameTimeController.getInstance().getGameTicks();
|
|
||||||
}
|
|
||||||
|
|
||||||
private long _teleportProtectEndTime = 0;
|
private long _teleportProtectEndTime = 0;
|
||||||
|
|
||||||
public boolean isTeleportProtected()
|
private L2ItemInstance _lure = null;
|
||||||
{
|
|
||||||
return _teleportProtectEndTime > GameTimeController.getInstance().getGameTicks();
|
|
||||||
}
|
|
||||||
|
|
||||||
// protects a char from aggro mobs when getting up from fake death
|
// protects a char from aggro mobs when getting up from fake death
|
||||||
private long _recentFakeDeathEndTime = 0;
|
private long _recentFakeDeathEndTime = 0;
|
||||||
@ -3846,32 +3835,28 @@ public final class L2PcInstance extends L2Playable
|
|||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean isSpawnProtected()
|
||||||
* Set _protectEndTime according settings.
|
|
||||||
* @param protect
|
|
||||||
*/
|
|
||||||
public void setProtection(boolean protect)
|
|
||||||
{
|
{
|
||||||
if (Config.DEVELOPER && (protect || (_protectEndTime > 0)))
|
return _spawnProtectEndTime > System.currentTimeMillis();
|
||||||
{
|
|
||||||
LOGGER.warning(getName() + ": Protection " + (protect ? "ON " + (GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_SPAWN_PROTECTION * GameTimeController.TICKS_PER_SECOND)) : "OFF") + " (currently " + GameTimeController.getInstance().getGameTicks() + ")");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_protectEndTime = protect ? GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_SPAWN_PROTECTION * GameTimeController.TICKS_PER_SECOND) : 0;
|
public boolean isTeleportProtected()
|
||||||
|
{
|
||||||
|
return _teleportProtectEndTime > System.currentTimeMillis();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSpawnProtection(boolean protect)
|
||||||
|
{
|
||||||
|
_spawnProtectEndTime = protect ? System.currentTimeMillis() + (Config.PLAYER_SPAWN_PROTECTION * 1000) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTeleportProtection(boolean protect)
|
public void setTeleportProtection(boolean protect)
|
||||||
{
|
{
|
||||||
if (Config.DEVELOPER && (protect || (_teleportProtectEndTime > 0)))
|
_teleportProtectEndTime = protect ? System.currentTimeMillis() + (Config.PLAYER_TELEPORT_PROTECTION * 1000) : 0;
|
||||||
{
|
|
||||||
LOGGER.warning(getName() + ": Tele Protection " + (protect ? "ON " + (GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_TELEPORT_PROTECTION * GameTimeController.TICKS_PER_SECOND)) : "OFF") + " (currently " + GameTimeController.getInstance().getGameTicks() + ")");
|
|
||||||
}
|
|
||||||
|
|
||||||
_teleportProtectEndTime = protect ? GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_TELEPORT_PROTECTION * GameTimeController.TICKS_PER_SECOND) : 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set protection from agro mobs when getting up from fake death, according settings.
|
* Set protection from aggro mobs when getting up from fake death, according settings.
|
||||||
* @param protect
|
* @param protect
|
||||||
*/
|
*/
|
||||||
public void setRecentFakeDeath(boolean protect)
|
public void setRecentFakeDeath(boolean protect)
|
||||||
@ -10738,7 +10723,7 @@ public final class L2PcInstance extends L2Playable
|
|||||||
{
|
{
|
||||||
if (isSpawnProtected())
|
if (isSpawnProtected())
|
||||||
{
|
{
|
||||||
setProtection(false);
|
setSpawnProtection(false);
|
||||||
if (!isInsideZone(ZoneId.PEACE))
|
if (!isInsideZone(ZoneId.PEACE))
|
||||||
{
|
{
|
||||||
sendPacket(SystemMessageId.YOU_ARE_NO_LONGER_PROTECTED_FROM_AGGRESSIVE_MONSTERS);
|
sendPacket(SystemMessageId.YOU_ARE_NO_LONGER_PROTECTED_FROM_AGGRESSIVE_MONSTERS);
|
||||||
|
@ -437,7 +437,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
if (Config.PLAYER_SPAWN_PROTECTION > 0)
|
if (Config.PLAYER_SPAWN_PROTECTION > 0)
|
||||||
{
|
{
|
||||||
activeChar.setProtection(true);
|
activeChar.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
|
activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
|
||||||
|
@ -664,14 +664,14 @@ UnstuckInterval = 300
|
|||||||
# Default: 0
|
# Default: 0
|
||||||
TeleportWatchdogTimeout = 0
|
TeleportWatchdogTimeout = 0
|
||||||
|
|
||||||
# After a player teleports, this is the time the player is protected.
|
# After a player spawns, this is the time the player is protected.
|
||||||
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
||||||
# Retail (Since GE): 600 (10 minutes)
|
# Retail (Since GE): 600 (10 minutes)
|
||||||
# Default: 600
|
# Default: 600
|
||||||
PlayerSpawnProtection = 600
|
PlayerSpawnProtection = 600
|
||||||
|
|
||||||
# Teleport spawn protection time. It will protect the player in the
|
# After a player teleports, this is the time the player is protected.
|
||||||
# teleport spawn for the given time. 0 to disable feature
|
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
||||||
PlayerTeleportProtection = 0
|
PlayerTeleportProtection = 0
|
||||||
|
|
||||||
# If enabled, players respawn in town on different locations defined in zone.xml for given town.
|
# If enabled, players respawn in town on different locations defined in zone.xml for given town.
|
||||||
|
@ -130,7 +130,7 @@ public class FindPvP implements IBypassHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
activeChar.teleToLocation((mostPvP.getX() + Rnd.get(300)) - 150, (mostPvP.getY() + Rnd.get(300)) - 150, mostPvP.getZ());
|
activeChar.teleToLocation((mostPvP.getX() + Rnd.get(300)) - 150, (mostPvP.getY() + Rnd.get(300)) - 150, mostPvP.getZ());
|
||||||
activeChar.setProtection(true);
|
activeChar.setSpawnProtection(true);
|
||||||
if (!activeChar.isGM())
|
if (!activeChar.isGM())
|
||||||
{
|
{
|
||||||
activeChar.setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_PVP_TIME);
|
activeChar.setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_PVP_TIME);
|
||||||
|
@ -668,7 +668,8 @@ public final class L2PcInstance extends L2Playable
|
|||||||
private final L2Request _request = new L2Request(this);
|
private final L2Request _request = new L2Request(this);
|
||||||
|
|
||||||
// Used for protection after teleport
|
// Used for protection after teleport
|
||||||
private long _protectEndTime = 0;
|
private long _spawnProtectEndTime = 0;
|
||||||
|
private long _teleportProtectEndTime = 0;
|
||||||
|
|
||||||
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
||||||
|
|
||||||
@ -676,18 +677,6 @@ public final class L2PcInstance extends L2Playable
|
|||||||
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events;
|
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events;
|
||||||
private boolean _isOnCustomEvent = false;
|
private boolean _isOnCustomEvent = false;
|
||||||
|
|
||||||
public boolean isSpawnProtected()
|
|
||||||
{
|
|
||||||
return _protectEndTime > GameTimeController.getInstance().getGameTicks();
|
|
||||||
}
|
|
||||||
|
|
||||||
private long _teleportProtectEndTime = 0;
|
|
||||||
|
|
||||||
public boolean isTeleportProtected()
|
|
||||||
{
|
|
||||||
return _teleportProtectEndTime > GameTimeController.getInstance().getGameTicks();
|
|
||||||
}
|
|
||||||
|
|
||||||
// protects a char from aggro mobs when getting up from fake death
|
// protects a char from aggro mobs when getting up from fake death
|
||||||
private long _recentFakeDeathEndTime = 0;
|
private long _recentFakeDeathEndTime = 0;
|
||||||
|
|
||||||
@ -3854,24 +3843,24 @@ public final class L2PcInstance extends L2Playable
|
|||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setProtection(boolean protect)
|
public boolean isSpawnProtected()
|
||||||
{
|
{
|
||||||
if (Config.DEVELOPER && (protect || (_protectEndTime > 0)))
|
return _spawnProtectEndTime > System.currentTimeMillis();
|
||||||
{
|
|
||||||
LOGGER.warning(getName() + ": Protection " + (protect ? "ON " + (GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_SPAWN_PROTECTION * GameTimeController.TICKS_PER_SECOND)) : "OFF") + " (currently " + GameTimeController.getInstance().getGameTicks() + ")");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_protectEndTime = protect ? GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_SPAWN_PROTECTION * GameTimeController.TICKS_PER_SECOND) : 0;
|
public boolean isTeleportProtected()
|
||||||
|
{
|
||||||
|
return _teleportProtectEndTime > System.currentTimeMillis();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSpawnProtection(boolean protect)
|
||||||
|
{
|
||||||
|
_spawnProtectEndTime = protect ? System.currentTimeMillis() + (Config.PLAYER_SPAWN_PROTECTION * 1000) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTeleportProtection(boolean protect)
|
public void setTeleportProtection(boolean protect)
|
||||||
{
|
{
|
||||||
if (Config.DEVELOPER && (protect || (_teleportProtectEndTime > 0)))
|
_teleportProtectEndTime = protect ? System.currentTimeMillis() + (Config.PLAYER_TELEPORT_PROTECTION * 1000) : 0;
|
||||||
{
|
|
||||||
LOGGER.warning(getName() + ": Tele Protection " + (protect ? "ON " + (GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_TELEPORT_PROTECTION * GameTimeController.TICKS_PER_SECOND)) : "OFF") + " (currently " + GameTimeController.getInstance().getGameTicks() + ")");
|
|
||||||
}
|
|
||||||
|
|
||||||
_teleportProtectEndTime = protect ? GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_TELEPORT_PROTECTION * GameTimeController.TICKS_PER_SECOND) : 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10216,7 +10205,7 @@ public final class L2PcInstance extends L2Playable
|
|||||||
{
|
{
|
||||||
if (isSpawnProtected())
|
if (isSpawnProtected())
|
||||||
{
|
{
|
||||||
setProtection(false);
|
setSpawnProtection(false);
|
||||||
if (!isInsideZone(ZoneId.PEACE))
|
if (!isInsideZone(ZoneId.PEACE))
|
||||||
{
|
{
|
||||||
sendPacket(SystemMessageId.YOU_ARE_NO_LONGER_PROTECTED_FROM_AGGRESSIVE_MONSTERS);
|
sendPacket(SystemMessageId.YOU_ARE_NO_LONGER_PROTECTED_FROM_AGGRESSIVE_MONSTERS);
|
||||||
|
@ -431,7 +431,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
if (Config.PLAYER_SPAWN_PROTECTION > 0)
|
if (Config.PLAYER_SPAWN_PROTECTION > 0)
|
||||||
{
|
{
|
||||||
activeChar.setProtection(true);
|
activeChar.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
|
activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
|
||||||
|
@ -664,14 +664,14 @@ UnstuckInterval = 300
|
|||||||
# Default: 0
|
# Default: 0
|
||||||
TeleportWatchdogTimeout = 0
|
TeleportWatchdogTimeout = 0
|
||||||
|
|
||||||
# After a player teleports, this is the time the player is protected.
|
# After a player spawns, this is the time the player is protected.
|
||||||
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
||||||
# Retail (Since GE): 600 (10 minutes)
|
# Retail (Since GE): 600 (10 minutes)
|
||||||
# Default: 600
|
# Default: 600
|
||||||
PlayerSpawnProtection = 600
|
PlayerSpawnProtection = 600
|
||||||
|
|
||||||
# Teleport spawn protection time. It will protect the player in the
|
# After a player teleports, this is the time the player is protected.
|
||||||
# teleport spawn for the given time. 0 to disable feature
|
# This time is in seconds, leave it at 0 if you want this feature disabled.
|
||||||
PlayerTeleportProtection = 0
|
PlayerTeleportProtection = 0
|
||||||
|
|
||||||
# If enabled, players respawn in town on different locations defined in zone.xml for given town.
|
# If enabled, players respawn in town on different locations defined in zone.xml for given town.
|
||||||
|
@ -130,7 +130,7 @@ public class FindPvP implements IBypassHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
activeChar.teleToLocation((mostPvP.getX() + Rnd.get(300)) - 150, (mostPvP.getY() + Rnd.get(300)) - 150, mostPvP.getZ());
|
activeChar.teleToLocation((mostPvP.getX() + Rnd.get(300)) - 150, (mostPvP.getY() + Rnd.get(300)) - 150, mostPvP.getZ());
|
||||||
activeChar.setProtection(true);
|
activeChar.setSpawnProtection(true);
|
||||||
if (!activeChar.isGM())
|
if (!activeChar.isGM())
|
||||||
{
|
{
|
||||||
activeChar.setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_PVP_TIME);
|
activeChar.setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_PVP_TIME);
|
||||||
|
@ -668,7 +668,8 @@ public final class L2PcInstance extends L2Playable
|
|||||||
private final L2Request _request = new L2Request(this);
|
private final L2Request _request = new L2Request(this);
|
||||||
|
|
||||||
// Used for protection after teleport
|
// Used for protection after teleport
|
||||||
private long _protectEndTime = 0;
|
private long _spawnProtectEndTime = 0;
|
||||||
|
private long _teleportProtectEndTime = 0;
|
||||||
|
|
||||||
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
||||||
|
|
||||||
@ -676,18 +677,6 @@ public final class L2PcInstance extends L2Playable
|
|||||||
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events;
|
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events;
|
||||||
private boolean _isOnCustomEvent = false;
|
private boolean _isOnCustomEvent = false;
|
||||||
|
|
||||||
public boolean isSpawnProtected()
|
|
||||||
{
|
|
||||||
return _protectEndTime > GameTimeController.getInstance().getGameTicks();
|
|
||||||
}
|
|
||||||
|
|
||||||
private long _teleportProtectEndTime = 0;
|
|
||||||
|
|
||||||
public boolean isTeleportProtected()
|
|
||||||
{
|
|
||||||
return _teleportProtectEndTime > GameTimeController.getInstance().getGameTicks();
|
|
||||||
}
|
|
||||||
|
|
||||||
// protects a char from aggro mobs when getting up from fake death
|
// protects a char from aggro mobs when getting up from fake death
|
||||||
private long _recentFakeDeathEndTime = 0;
|
private long _recentFakeDeathEndTime = 0;
|
||||||
|
|
||||||
@ -3854,24 +3843,24 @@ public final class L2PcInstance extends L2Playable
|
|||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setProtection(boolean protect)
|
public boolean isSpawnProtected()
|
||||||
{
|
{
|
||||||
if (Config.DEVELOPER && (protect || (_protectEndTime > 0)))
|
return _spawnProtectEndTime > System.currentTimeMillis();
|
||||||
{
|
|
||||||
LOGGER.warning(getName() + ": Protection " + (protect ? "ON " + (GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_SPAWN_PROTECTION * GameTimeController.TICKS_PER_SECOND)) : "OFF") + " (currently " + GameTimeController.getInstance().getGameTicks() + ")");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_protectEndTime = protect ? GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_SPAWN_PROTECTION * GameTimeController.TICKS_PER_SECOND) : 0;
|
public boolean isTeleportProtected()
|
||||||
|
{
|
||||||
|
return _teleportProtectEndTime > System.currentTimeMillis();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSpawnProtection(boolean protect)
|
||||||
|
{
|
||||||
|
_spawnProtectEndTime = protect ? System.currentTimeMillis() + (Config.PLAYER_SPAWN_PROTECTION * 1000) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTeleportProtection(boolean protect)
|
public void setTeleportProtection(boolean protect)
|
||||||
{
|
{
|
||||||
if (Config.DEVELOPER && (protect || (_teleportProtectEndTime > 0)))
|
_teleportProtectEndTime = protect ? System.currentTimeMillis() + (Config.PLAYER_TELEPORT_PROTECTION * 1000) : 0;
|
||||||
{
|
|
||||||
LOGGER.warning(getName() + ": Tele Protection " + (protect ? "ON " + (GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_TELEPORT_PROTECTION * GameTimeController.TICKS_PER_SECOND)) : "OFF") + " (currently " + GameTimeController.getInstance().getGameTicks() + ")");
|
|
||||||
}
|
|
||||||
|
|
||||||
_teleportProtectEndTime = protect ? GameTimeController.getInstance().getGameTicks() + (Config.PLAYER_TELEPORT_PROTECTION * GameTimeController.TICKS_PER_SECOND) : 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10216,7 +10205,7 @@ public final class L2PcInstance extends L2Playable
|
|||||||
{
|
{
|
||||||
if (isSpawnProtected())
|
if (isSpawnProtected())
|
||||||
{
|
{
|
||||||
setProtection(false);
|
setSpawnProtection(false);
|
||||||
if (!isInsideZone(ZoneId.PEACE))
|
if (!isInsideZone(ZoneId.PEACE))
|
||||||
{
|
{
|
||||||
sendPacket(SystemMessageId.YOU_ARE_NO_LONGER_PROTECTED_FROM_AGGRESSIVE_MONSTERS);
|
sendPacket(SystemMessageId.YOU_ARE_NO_LONGER_PROTECTED_FROM_AGGRESSIVE_MONSTERS);
|
||||||
|
@ -431,7 +431,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
if (Config.PLAYER_SPAWN_PROTECTION > 0)
|
if (Config.PLAYER_SPAWN_PROTECTION > 0)
|
||||||
{
|
{
|
||||||
activeChar.setProtection(true);
|
activeChar.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
|
activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
|
||||||
|
Loading…
Reference in New Issue
Block a user