Addition of time stone limited use.
Contributed by nasseka.
This commit is contained in:
@@ -65,7 +65,7 @@ public class AddHuntingTime extends AbstractEffect
|
||||
}
|
||||
|
||||
final long currentTime = Chronos.currentTimeMillis();
|
||||
long endTime = currentTime + player.getTimedHuntingZoneRemainingTime(_zoneId);
|
||||
final long endTime = currentTime + player.getTimedHuntingZoneRemainingTime(_zoneId);
|
||||
if ((endTime > currentTime) && (((endTime - currentTime) + _time) >= holder.getMaximumAddedTime()))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
@@ -73,24 +73,23 @@ public class AddHuntingTime extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
final long remainRefill = player.getVariables().getInt(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + _zoneId, holder.getRemainRefillTime());
|
||||
if ((_time < remainRefill) || (remainRefill == 0))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
player.sendMessage("You cannot exceed the time zone limit.");
|
||||
return;
|
||||
}
|
||||
|
||||
final long remainTime = player.getVariables().getLong(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, holder.getInitialTime());
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, remainTime + _time);
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + _zoneId, remainRefill - (_time / 1000));
|
||||
|
||||
if (player.isInTimedHuntingZone(_zoneId))
|
||||
{
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, _time + player.getTimedHuntingZoneRemainingTime(_zoneId));
|
||||
player.startTimedHuntingZone(_zoneId, endTime);
|
||||
player.sendPacket(new TimedHuntingZoneEnter(player, _zoneId));
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((endTime + holder.getResetDelay()) < currentTime)
|
||||
{
|
||||
endTime = currentTime + holder.getInitialTime();
|
||||
}
|
||||
else if (endTime < currentTime)
|
||||
{
|
||||
endTime = currentTime;
|
||||
}
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, (endTime - currentTime) + _time);
|
||||
}
|
||||
|
||||
player.sendPacket(new TimedHuntingZoneList(player));
|
||||
}
|
||||
|
@@ -403,10 +403,11 @@ public class DailyTaskManager
|
||||
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?)"))
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?, ?)"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
ps.setString(2, PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
ps.setString(3, PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -419,6 +420,7 @@ public class DailyTaskManager
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
@@ -437,10 +439,11 @@ public class DailyTaskManager
|
||||
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?)"))
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?, ?)"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
ps.setString(2, PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
ps.setString(3, PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -453,6 +456,7 @@ public class DailyTaskManager
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
|
@@ -67,6 +67,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String AUTO_USE_SHORTCUTS = "AUTO_USE_SHORTCUTS";
|
||||
public static final String HUNTING_ZONE_ENTRY = "HUNTING_ZONE_ENTRY_";
|
||||
public static final String HUNTING_ZONE_TIME = "HUNTING_ZONE_TIME_";
|
||||
public static final String HUNTING_ZONE_REMAIN_REFILL_ = "HUNTING_ZONE_REMAIN_REFILL_";
|
||||
|
||||
private final int _objectId;
|
||||
|
||||
|
@@ -21,6 +21,7 @@ import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.data.xml.TimedHuntingZoneData;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.holders.TimedHuntingZoneHolder;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||
@@ -43,7 +44,6 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
|
||||
public boolean write(PacketWriter packet)
|
||||
{
|
||||
OutgoingPackets.EX_TIME_RESTRICT_FIELD_LIST.writeId(packet);
|
||||
int remainingTime;
|
||||
final long currentTime = Chronos.currentTimeMillis();
|
||||
packet.writeD(TimedHuntingZoneData.getInstance().getSize()); // zone count
|
||||
for (TimedHuntingZoneHolder holder : TimedHuntingZoneData.getInstance().getAllHuntingZones())
|
||||
@@ -56,14 +56,14 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
|
||||
packet.writeD(holder.getMinLevel());
|
||||
packet.writeD(holder.getMaxLevel());
|
||||
packet.writeD(holder.getInitialTime() / 1000); // remain time base
|
||||
remainingTime = _player.getTimedHuntingZoneRemainingTime(holder.getZoneId());
|
||||
int remainingTime = _player.getTimedHuntingZoneRemainingTime(holder.getZoneId());
|
||||
if ((remainingTime == 0) && ((_player.getTimedHuntingZoneInitialEntry(holder.getZoneId()) + holder.getResetDelay()) < currentTime))
|
||||
{
|
||||
remainingTime = holder.getInitialTime();
|
||||
}
|
||||
packet.writeD(remainingTime / 1000); // remain time
|
||||
packet.writeD(holder.getMaximumAddedTime() / 1000);
|
||||
packet.writeD(holder.getRemainRefillTime());
|
||||
packet.writeD(_player.getVariables().getInt(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId(), holder.getRemainRefillTime()));
|
||||
packet.writeD(holder.getRefillTimeMax());
|
||||
packet.writeC(_isInTimedHuntingZone ? 0 : 1); // field activated
|
||||
}
|
||||
|
@@ -65,7 +65,7 @@ public class AddHuntingTime extends AbstractEffect
|
||||
}
|
||||
|
||||
final long currentTime = Chronos.currentTimeMillis();
|
||||
long endTime = currentTime + player.getTimedHuntingZoneRemainingTime(_zoneId);
|
||||
final long endTime = currentTime + player.getTimedHuntingZoneRemainingTime(_zoneId);
|
||||
if ((endTime > currentTime) && (((endTime - currentTime) + _time) >= holder.getMaximumAddedTime()))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
@@ -73,24 +73,23 @@ public class AddHuntingTime extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
final long remainRefill = player.getVariables().getInt(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + _zoneId, holder.getRemainRefillTime());
|
||||
if ((_time < remainRefill) || (remainRefill == 0))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
player.sendMessage("You cannot exceed the time zone limit.");
|
||||
return;
|
||||
}
|
||||
|
||||
final long remainTime = player.getVariables().getLong(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, holder.getInitialTime());
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, remainTime + _time);
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + _zoneId, remainRefill - (_time / 1000));
|
||||
|
||||
if (player.isInTimedHuntingZone(_zoneId))
|
||||
{
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, _time + player.getTimedHuntingZoneRemainingTime(_zoneId));
|
||||
player.startTimedHuntingZone(_zoneId, endTime);
|
||||
player.sendPacket(new TimedHuntingZoneEnter(player, _zoneId));
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((endTime + holder.getResetDelay()) < currentTime)
|
||||
{
|
||||
endTime = currentTime + holder.getInitialTime();
|
||||
}
|
||||
else if (endTime < currentTime)
|
||||
{
|
||||
endTime = currentTime;
|
||||
}
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, (endTime - currentTime) + _time);
|
||||
}
|
||||
|
||||
player.sendPacket(new TimedHuntingZoneList(player));
|
||||
}
|
||||
|
@@ -442,10 +442,11 @@ public class DailyTaskManager
|
||||
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?)"))
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?, ?)"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
ps.setString(2, PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
ps.setString(3, PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -458,6 +459,7 @@ public class DailyTaskManager
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
@@ -476,10 +478,11 @@ public class DailyTaskManager
|
||||
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?)"))
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?, ?)"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
ps.setString(2, PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
ps.setString(3, PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -492,6 +495,7 @@ public class DailyTaskManager
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
|
@@ -67,6 +67,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String AUTO_USE_SHORTCUTS = "AUTO_USE_SHORTCUTS";
|
||||
public static final String HUNTING_ZONE_ENTRY = "HUNTING_ZONE_ENTRY_";
|
||||
public static final String HUNTING_ZONE_TIME = "HUNTING_ZONE_TIME_";
|
||||
public static final String HUNTING_ZONE_REMAIN_REFILL_ = "HUNTING_ZONE_REMAIN_REFILL_";
|
||||
public static final String FAVORITE_TELEPORTS = "FAVORITE_TELEPORTS";
|
||||
public static final String HOMUNCULUS_HP_POINTS = "HOMUNCULUS_HP_POINTS";
|
||||
public static final String HOMUNCULUS_SP_POINTS = "HOMUNCULUS_SP_POINTS";
|
||||
|
@@ -21,6 +21,7 @@ import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.data.xml.TimedHuntingZoneData;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.holders.TimedHuntingZoneHolder;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||
@@ -43,7 +44,6 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
|
||||
public boolean write(PacketWriter packet)
|
||||
{
|
||||
OutgoingPackets.EX_TIME_RESTRICT_FIELD_LIST.writeId(packet);
|
||||
int remainingTime;
|
||||
final long currentTime = Chronos.currentTimeMillis();
|
||||
packet.writeD(TimedHuntingZoneData.getInstance().getSize()); // zone count
|
||||
for (TimedHuntingZoneHolder holder : TimedHuntingZoneData.getInstance().getAllHuntingZones())
|
||||
@@ -56,14 +56,14 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
|
||||
packet.writeD(holder.getMinLevel());
|
||||
packet.writeD(holder.getMaxLevel());
|
||||
packet.writeD(holder.getInitialTime() / 1000); // remain time base
|
||||
remainingTime = _player.getTimedHuntingZoneRemainingTime(holder.getZoneId());
|
||||
int remainingTime = _player.getTimedHuntingZoneRemainingTime(holder.getZoneId());
|
||||
if ((remainingTime == 0) && ((_player.getTimedHuntingZoneInitialEntry(holder.getZoneId()) + holder.getResetDelay()) < currentTime))
|
||||
{
|
||||
remainingTime = holder.getInitialTime();
|
||||
}
|
||||
packet.writeD(remainingTime / 1000); // remain time
|
||||
packet.writeD(holder.getMaximumAddedTime() / 1000);
|
||||
packet.writeD(holder.getRemainRefillTime());
|
||||
packet.writeD(_player.getVariables().getInt(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId(), holder.getRemainRefillTime()));
|
||||
packet.writeD(holder.getRefillTimeMax());
|
||||
packet.writeC(_isInTimedHuntingZone ? 0 : 1); // field activated (272 C to D)
|
||||
packet.writeC(0); // bUserBound
|
||||
|
@@ -74,9 +74,9 @@
|
||||
<enterLocation>90327,198818,-3280</enterLocation>
|
||||
<initialTime>3600</initialTime> <!-- 1 hour -->
|
||||
<resetDelay>36000</resetDelay> <!-- 10 hours -->
|
||||
<maxAddedTime>3600</maxAddedTime> <!-- 1 hour -->
|
||||
<remainRefillTime>43200</remainRefillTime>
|
||||
<refillTimeMax>3600</refillTimeMax>
|
||||
<maxAddedTime>21600</maxAddedTime> <!-- 3 hours -->
|
||||
<remainRefillTime>18000</remainRefillTime>
|
||||
<refillTimeMax>36000</refillTimeMax>
|
||||
<entryFee>150000</entryFee>
|
||||
<minLevel>100</minLevel>
|
||||
<maxLevel>130</maxLevel>
|
||||
|
@@ -65,7 +65,7 @@ public class AddHuntingTime extends AbstractEffect
|
||||
}
|
||||
|
||||
final long currentTime = Chronos.currentTimeMillis();
|
||||
long endTime = currentTime + player.getTimedHuntingZoneRemainingTime(_zoneId);
|
||||
final long endTime = currentTime + player.getTimedHuntingZoneRemainingTime(_zoneId);
|
||||
if ((endTime > currentTime) && (((endTime - currentTime) + _time) >= holder.getMaximumAddedTime()))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
@@ -73,24 +73,23 @@ public class AddHuntingTime extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
final long remainRefill = player.getVariables().getInt(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + _zoneId, holder.getRemainRefillTime());
|
||||
if ((_time < remainRefill) || (remainRefill == 0))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
player.sendMessage("You cannot exceed the time zone limit.");
|
||||
return;
|
||||
}
|
||||
|
||||
final long remainTime = player.getVariables().getLong(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, holder.getInitialTime());
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, remainTime + _time);
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + _zoneId, remainRefill - (_time / 1000));
|
||||
|
||||
if (player.isInTimedHuntingZone(_zoneId))
|
||||
{
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, _time + player.getTimedHuntingZoneRemainingTime(_zoneId));
|
||||
player.startTimedHuntingZone(_zoneId, endTime);
|
||||
player.sendPacket(new TimedHuntingZoneEnter(player, _zoneId));
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((endTime + holder.getResetDelay()) < currentTime)
|
||||
{
|
||||
endTime = currentTime + holder.getInitialTime();
|
||||
}
|
||||
else if (endTime < currentTime)
|
||||
{
|
||||
endTime = currentTime;
|
||||
}
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, (endTime - currentTime) + _time);
|
||||
}
|
||||
|
||||
player.sendPacket(new TimedHuntingZoneList(player));
|
||||
}
|
||||
|
@@ -442,10 +442,11 @@ public class DailyTaskManager
|
||||
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?)"))
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?, ?)"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
ps.setString(2, PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
ps.setString(3, PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -458,6 +459,7 @@ public class DailyTaskManager
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
@@ -476,10 +478,11 @@ public class DailyTaskManager
|
||||
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?)"))
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?, ?)"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
ps.setString(2, PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
ps.setString(3, PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -492,6 +495,7 @@ public class DailyTaskManager
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
|
@@ -67,6 +67,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String AUTO_USE_SHORTCUTS = "AUTO_USE_SHORTCUTS";
|
||||
public static final String HUNTING_ZONE_ENTRY = "HUNTING_ZONE_ENTRY_";
|
||||
public static final String HUNTING_ZONE_TIME = "HUNTING_ZONE_TIME_";
|
||||
public static final String HUNTING_ZONE_REMAIN_REFILL_ = "HUNTING_ZONE_REMAIN_REFILL_";
|
||||
public static final String FAVORITE_TELEPORTS = "FAVORITE_TELEPORTS";
|
||||
public static final String HOMUNCULUS_HP_POINTS = "HOMUNCULUS_HP_POINTS";
|
||||
public static final String HOMUNCULUS_SP_POINTS = "HOMUNCULUS_SP_POINTS";
|
||||
|
@@ -21,6 +21,7 @@ import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.data.xml.TimedHuntingZoneData;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.holders.TimedHuntingZoneHolder;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||
@@ -43,7 +44,6 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
|
||||
public boolean write(PacketWriter packet)
|
||||
{
|
||||
OutgoingPackets.EX_TIME_RESTRICT_FIELD_LIST.writeId(packet);
|
||||
int remainingTime;
|
||||
final long currentTime = Chronos.currentTimeMillis();
|
||||
packet.writeD(TimedHuntingZoneData.getInstance().getSize()); // zone count
|
||||
for (TimedHuntingZoneHolder holder : TimedHuntingZoneData.getInstance().getAllHuntingZones())
|
||||
@@ -56,14 +56,14 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
|
||||
packet.writeD(holder.getMinLevel());
|
||||
packet.writeD(holder.getMaxLevel());
|
||||
packet.writeD(holder.getInitialTime() / 1000); // remain time base
|
||||
remainingTime = _player.getTimedHuntingZoneRemainingTime(holder.getZoneId());
|
||||
int remainingTime = _player.getTimedHuntingZoneRemainingTime(holder.getZoneId());
|
||||
if ((remainingTime == 0) && ((_player.getTimedHuntingZoneInitialEntry(holder.getZoneId()) + holder.getResetDelay()) < currentTime))
|
||||
{
|
||||
remainingTime = holder.getInitialTime();
|
||||
}
|
||||
packet.writeD(remainingTime / 1000); // remain time
|
||||
packet.writeD(holder.getMaximumAddedTime() / 1000);
|
||||
packet.writeD(holder.getRemainRefillTime());
|
||||
packet.writeD(_player.getVariables().getInt(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId(), holder.getRemainRefillTime()));
|
||||
packet.writeD(holder.getRefillTimeMax());
|
||||
packet.writeC(_isInTimedHuntingZone ? 0 : 1); // field activated (272 C to D)
|
||||
packet.writeC(0); // bUserBound
|
||||
|
@@ -86,9 +86,9 @@
|
||||
<enterLocation>90327,198818,-3280</enterLocation>
|
||||
<initialTime>3600</initialTime> <!-- 1 hour -->
|
||||
<resetDelay>36000</resetDelay> <!-- 10 hours -->
|
||||
<maxAddedTime>3600</maxAddedTime> <!-- 1 hour -->
|
||||
<remainRefillTime>43200</remainRefillTime>
|
||||
<refillTimeMax>3600</refillTimeMax>
|
||||
<maxAddedTime>21600</maxAddedTime> <!-- 3 hours -->
|
||||
<remainRefillTime>18000</remainRefillTime>
|
||||
<refillTimeMax>36000</refillTimeMax>
|
||||
<entryFee>150000</entryFee>
|
||||
<minLevel>100</minLevel>
|
||||
<maxLevel>130</maxLevel>
|
||||
|
@@ -65,7 +65,7 @@ public class AddHuntingTime extends AbstractEffect
|
||||
}
|
||||
|
||||
final long currentTime = Chronos.currentTimeMillis();
|
||||
long endTime = currentTime + player.getTimedHuntingZoneRemainingTime(_zoneId);
|
||||
final long endTime = currentTime + player.getTimedHuntingZoneRemainingTime(_zoneId);
|
||||
if ((endTime > currentTime) && (((endTime - currentTime) + _time) >= holder.getMaximumAddedTime()))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
@@ -73,24 +73,23 @@ public class AddHuntingTime extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
final long remainRefill = player.getVariables().getInt(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + _zoneId, holder.getRemainRefillTime());
|
||||
if ((_time < remainRefill) || (remainRefill == 0))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
player.sendMessage("You cannot exceed the time zone limit.");
|
||||
return;
|
||||
}
|
||||
|
||||
final long remainTime = player.getVariables().getLong(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, holder.getInitialTime());
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, remainTime + _time);
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + _zoneId, remainRefill - (_time / 1000));
|
||||
|
||||
if (player.isInTimedHuntingZone(_zoneId))
|
||||
{
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, _time + player.getTimedHuntingZoneRemainingTime(_zoneId));
|
||||
player.startTimedHuntingZone(_zoneId, endTime);
|
||||
player.sendPacket(new TimedHuntingZoneEnter(player, _zoneId));
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((endTime + holder.getResetDelay()) < currentTime)
|
||||
{
|
||||
endTime = currentTime + holder.getInitialTime();
|
||||
}
|
||||
else if (endTime < currentTime)
|
||||
{
|
||||
endTime = currentTime;
|
||||
}
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, (endTime - currentTime) + _time);
|
||||
}
|
||||
|
||||
player.sendPacket(new TimedHuntingZoneList(player));
|
||||
}
|
||||
|
@@ -442,10 +442,11 @@ public class DailyTaskManager
|
||||
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?)"))
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?, ?)"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
ps.setString(2, PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
ps.setString(3, PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -458,6 +459,7 @@ public class DailyTaskManager
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
@@ -476,10 +478,11 @@ public class DailyTaskManager
|
||||
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?)"))
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?, ?)"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
ps.setString(2, PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
ps.setString(3, PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -492,6 +495,7 @@ public class DailyTaskManager
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
|
@@ -67,6 +67,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String AUTO_USE_SHORTCUTS = "AUTO_USE_SHORTCUTS";
|
||||
public static final String HUNTING_ZONE_ENTRY = "HUNTING_ZONE_ENTRY_";
|
||||
public static final String HUNTING_ZONE_TIME = "HUNTING_ZONE_TIME_";
|
||||
public static final String HUNTING_ZONE_REMAIN_REFILL_ = "HUNTING_ZONE_REMAIN_REFILL_";
|
||||
public static final String FAVORITE_TELEPORTS = "FAVORITE_TELEPORTS";
|
||||
public static final String HOMUNCULUS_HP_POINTS = "HOMUNCULUS_HP_POINTS";
|
||||
public static final String HOMUNCULUS_SP_POINTS = "HOMUNCULUS_SP_POINTS";
|
||||
|
@@ -21,6 +21,7 @@ import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.data.xml.TimedHuntingZoneData;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.holders.TimedHuntingZoneHolder;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||
@@ -43,7 +44,6 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
|
||||
public boolean write(PacketWriter packet)
|
||||
{
|
||||
OutgoingPackets.EX_TIME_RESTRICT_FIELD_LIST.writeId(packet);
|
||||
int remainingTime;
|
||||
final long currentTime = Chronos.currentTimeMillis();
|
||||
packet.writeD(TimedHuntingZoneData.getInstance().getSize()); // zone count
|
||||
for (TimedHuntingZoneHolder holder : TimedHuntingZoneData.getInstance().getAllHuntingZones())
|
||||
@@ -56,14 +56,14 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
|
||||
packet.writeD(holder.getMinLevel());
|
||||
packet.writeD(holder.getMaxLevel());
|
||||
packet.writeD(holder.getInitialTime() / 1000); // remain time base
|
||||
remainingTime = _player.getTimedHuntingZoneRemainingTime(holder.getZoneId());
|
||||
int remainingTime = _player.getTimedHuntingZoneRemainingTime(holder.getZoneId());
|
||||
if ((remainingTime == 0) && ((_player.getTimedHuntingZoneInitialEntry(holder.getZoneId()) + holder.getResetDelay()) < currentTime))
|
||||
{
|
||||
remainingTime = holder.getInitialTime();
|
||||
}
|
||||
packet.writeD(remainingTime / 1000); // remain time
|
||||
packet.writeD(holder.getMaximumAddedTime() / 1000);
|
||||
packet.writeD(holder.getRemainRefillTime());
|
||||
packet.writeD(_player.getVariables().getInt(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId(), holder.getRemainRefillTime()));
|
||||
packet.writeD(holder.getRefillTimeMax());
|
||||
packet.writeC(_isInTimedHuntingZone ? 0 : 1); // field activated (272 C to D)
|
||||
packet.writeC(0); // bUserBound
|
||||
|
@@ -65,7 +65,7 @@ public class AddHuntingTime extends AbstractEffect
|
||||
}
|
||||
|
||||
final long currentTime = Chronos.currentTimeMillis();
|
||||
long endTime = currentTime + player.getTimedHuntingZoneRemainingTime(_zoneId);
|
||||
final long endTime = currentTime + player.getTimedHuntingZoneRemainingTime(_zoneId);
|
||||
if ((endTime > currentTime) && (((endTime - currentTime) + _time) >= holder.getMaximumAddedTime()))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
@@ -73,24 +73,23 @@ public class AddHuntingTime extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
final long remainRefill = player.getVariables().getInt(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + _zoneId, holder.getRemainRefillTime());
|
||||
if ((_time < remainRefill) || (remainRefill == 0))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
player.sendMessage("You cannot exceed the time zone limit.");
|
||||
return;
|
||||
}
|
||||
|
||||
final long remainTime = player.getVariables().getLong(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, holder.getInitialTime());
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, remainTime + _time);
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + _zoneId, remainRefill - (_time / 1000));
|
||||
|
||||
if (player.isInTimedHuntingZone(_zoneId))
|
||||
{
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, _time + player.getTimedHuntingZoneRemainingTime(_zoneId));
|
||||
player.startTimedHuntingZone(_zoneId, endTime);
|
||||
player.sendPacket(new TimedHuntingZoneEnter(player, _zoneId));
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((endTime + holder.getResetDelay()) < currentTime)
|
||||
{
|
||||
endTime = currentTime + holder.getInitialTime();
|
||||
}
|
||||
else if (endTime < currentTime)
|
||||
{
|
||||
endTime = currentTime;
|
||||
}
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, (endTime - currentTime) + _time);
|
||||
}
|
||||
|
||||
player.sendPacket(new TimedHuntingZoneList(player));
|
||||
}
|
||||
|
@@ -378,10 +378,11 @@ public class DailyTaskManager
|
||||
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?)"))
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?, ?)"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
ps.setString(2, PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
ps.setString(3, PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -394,6 +395,7 @@ public class DailyTaskManager
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
@@ -412,10 +414,11 @@ public class DailyTaskManager
|
||||
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?)"))
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?, ?)"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
ps.setString(2, PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
ps.setString(3, PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -428,6 +431,7 @@ public class DailyTaskManager
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
|
@@ -61,6 +61,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String AUTO_USE_SHORTCUTS = "AUTO_USE_SHORTCUTS";
|
||||
public static final String HUNTING_ZONE_ENTRY = "HUNTING_ZONE_ENTRY_";
|
||||
public static final String HUNTING_ZONE_TIME = "HUNTING_ZONE_TIME_";
|
||||
public static final String HUNTING_ZONE_REMAIN_REFILL_ = "HUNTING_ZONE_REMAIN_REFILL_";
|
||||
|
||||
private final int _objectId;
|
||||
|
||||
|
@@ -21,6 +21,7 @@ import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.data.xml.TimedHuntingZoneData;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.holders.TimedHuntingZoneHolder;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||
@@ -43,7 +44,6 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
|
||||
public boolean write(PacketWriter packet)
|
||||
{
|
||||
OutgoingPackets.EX_TIME_RESTRICT_FIELD_LIST.writeId(packet);
|
||||
int remainingTime;
|
||||
final long currentTime = Chronos.currentTimeMillis();
|
||||
packet.writeD(TimedHuntingZoneData.getInstance().getSize()); // zone count
|
||||
for (TimedHuntingZoneHolder holder : TimedHuntingZoneData.getInstance().getAllHuntingZones())
|
||||
@@ -56,14 +56,14 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
|
||||
packet.writeD(holder.getMinLevel());
|
||||
packet.writeD(holder.getMaxLevel());
|
||||
packet.writeD(holder.getInitialTime() / 1000); // remain time base
|
||||
remainingTime = _player.getTimedHuntingZoneRemainingTime(holder.getZoneId());
|
||||
int remainingTime = _player.getTimedHuntingZoneRemainingTime(holder.getZoneId());
|
||||
if ((remainingTime == 0) && ((_player.getTimedHuntingZoneInitialEntry(holder.getZoneId()) + holder.getResetDelay()) < currentTime))
|
||||
{
|
||||
remainingTime = holder.getInitialTime();
|
||||
}
|
||||
packet.writeD(remainingTime / 1000); // remain time
|
||||
packet.writeD(holder.getMaximumAddedTime() / 1000);
|
||||
packet.writeD(holder.getRemainRefillTime());
|
||||
packet.writeD(_player.getVariables().getInt(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId(), holder.getRemainRefillTime()));
|
||||
packet.writeD(holder.getRefillTimeMax());
|
||||
packet.writeC(_isInTimedHuntingZone ? 0 : 1); // field activated
|
||||
}
|
||||
|
@@ -65,7 +65,7 @@ public class AddHuntingTime extends AbstractEffect
|
||||
}
|
||||
|
||||
final long currentTime = Chronos.currentTimeMillis();
|
||||
long endTime = currentTime + player.getTimedHuntingZoneRemainingTime(_zoneId);
|
||||
final long endTime = currentTime + player.getTimedHuntingZoneRemainingTime(_zoneId);
|
||||
if ((endTime > currentTime) && (((endTime - currentTime) + _time) >= holder.getMaximumAddedTime()))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
@@ -73,24 +73,23 @@ public class AddHuntingTime extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
final long remainRefill = player.getVariables().getInt(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + _zoneId, holder.getRemainRefillTime());
|
||||
if ((_time < remainRefill) || (remainRefill == 0))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
player.sendMessage("You cannot exceed the time zone limit.");
|
||||
return;
|
||||
}
|
||||
|
||||
final long remainTime = player.getVariables().getLong(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, holder.getInitialTime());
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, remainTime + _time);
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + _zoneId, remainRefill - (_time / 1000));
|
||||
|
||||
if (player.isInTimedHuntingZone(_zoneId))
|
||||
{
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, _time + player.getTimedHuntingZoneRemainingTime(_zoneId));
|
||||
player.startTimedHuntingZone(_zoneId, endTime);
|
||||
player.sendPacket(new TimedHuntingZoneEnter(player, _zoneId));
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((endTime + holder.getResetDelay()) < currentTime)
|
||||
{
|
||||
endTime = currentTime + holder.getInitialTime();
|
||||
}
|
||||
else if (endTime < currentTime)
|
||||
{
|
||||
endTime = currentTime;
|
||||
}
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, (endTime - currentTime) + _time);
|
||||
}
|
||||
|
||||
player.sendPacket(new TimedHuntingZoneList(player));
|
||||
}
|
||||
|
@@ -378,10 +378,11 @@ public class DailyTaskManager
|
||||
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?)"))
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?, ?)"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
ps.setString(2, PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
ps.setString(3, PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -394,6 +395,7 @@ public class DailyTaskManager
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
@@ -412,10 +414,11 @@ public class DailyTaskManager
|
||||
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?)"))
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?, ?)"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
ps.setString(2, PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
ps.setString(3, PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -428,6 +431,7 @@ public class DailyTaskManager
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
|
@@ -61,6 +61,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String AUTO_USE_SHORTCUTS = "AUTO_USE_SHORTCUTS";
|
||||
public static final String HUNTING_ZONE_ENTRY = "HUNTING_ZONE_ENTRY_";
|
||||
public static final String HUNTING_ZONE_TIME = "HUNTING_ZONE_TIME_";
|
||||
public static final String HUNTING_ZONE_REMAIN_REFILL_ = "HUNTING_ZONE_REMAIN_REFILL_";
|
||||
public static final String SAYHA_GRACE_SUPPORT_ENDTIME = "SAYHA_GRACE_SUPPORT_ENDTIME";
|
||||
public static final String LIMITED_SAYHA_GRACE_ENDTIME = "LIMITED_SAYHA_GRACE_ENDTIME";
|
||||
public static final String MAGIC_LAMP_EXP = "MAGIC_LAMP_EXP";
|
||||
|
@@ -21,6 +21,7 @@ import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.data.xml.TimedHuntingZoneData;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.holders.TimedHuntingZoneHolder;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||
@@ -43,7 +44,6 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
|
||||
public boolean write(PacketWriter packet)
|
||||
{
|
||||
OutgoingPackets.EX_TIME_RESTRICT_FIELD_LIST.writeId(packet);
|
||||
int remainingTime;
|
||||
final long currentTime = Chronos.currentTimeMillis();
|
||||
packet.writeD(TimedHuntingZoneData.getInstance().getSize()); // zone count
|
||||
for (TimedHuntingZoneHolder holder : TimedHuntingZoneData.getInstance().getAllHuntingZones())
|
||||
@@ -56,14 +56,14 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
|
||||
packet.writeD(holder.getMinLevel());
|
||||
packet.writeD(holder.getMaxLevel());
|
||||
packet.writeD(holder.getInitialTime() / 1000); // remain time base
|
||||
remainingTime = _player.getTimedHuntingZoneRemainingTime(holder.getZoneId());
|
||||
int remainingTime = _player.getTimedHuntingZoneRemainingTime(holder.getZoneId());
|
||||
if ((remainingTime == 0) && ((_player.getTimedHuntingZoneInitialEntry(holder.getZoneId()) + holder.getResetDelay()) < currentTime))
|
||||
{
|
||||
remainingTime = holder.getInitialTime();
|
||||
}
|
||||
packet.writeD(remainingTime / 1000); // remain time
|
||||
packet.writeD(holder.getMaximumAddedTime() / 1000);
|
||||
packet.writeD(holder.getRemainRefillTime());
|
||||
packet.writeD(_player.getVariables().getInt(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId(), holder.getRemainRefillTime()));
|
||||
packet.writeD(holder.getRefillTimeMax());
|
||||
packet.writeC(_isInTimedHuntingZone ? 0 : 1); // field activated (272 C to D)
|
||||
packet.writeC(0); // bUserBound
|
||||
|
@@ -65,7 +65,7 @@ public class AddHuntingTime extends AbstractEffect
|
||||
}
|
||||
|
||||
final long currentTime = Chronos.currentTimeMillis();
|
||||
long endTime = currentTime + player.getTimedHuntingZoneRemainingTime(_zoneId);
|
||||
final long endTime = currentTime + player.getTimedHuntingZoneRemainingTime(_zoneId);
|
||||
if ((endTime > currentTime) && (((endTime - currentTime) + _time) >= holder.getMaximumAddedTime()))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
@@ -73,24 +73,23 @@ public class AddHuntingTime extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
final long remainRefill = player.getVariables().getInt(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + _zoneId, holder.getRemainRefillTime());
|
||||
if ((_time < remainRefill) || (remainRefill == 0))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
player.sendMessage("You cannot exceed the time zone limit.");
|
||||
return;
|
||||
}
|
||||
|
||||
final long remainTime = player.getVariables().getLong(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, holder.getInitialTime());
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, remainTime + _time);
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + _zoneId, remainRefill - (_time / 1000));
|
||||
|
||||
if (player.isInTimedHuntingZone(_zoneId))
|
||||
{
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, _time + player.getTimedHuntingZoneRemainingTime(_zoneId));
|
||||
player.startTimedHuntingZone(_zoneId, endTime);
|
||||
player.sendPacket(new TimedHuntingZoneEnter(player, _zoneId));
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((endTime + holder.getResetDelay()) < currentTime)
|
||||
{
|
||||
endTime = currentTime + holder.getInitialTime();
|
||||
}
|
||||
else if (endTime < currentTime)
|
||||
{
|
||||
endTime = currentTime;
|
||||
}
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, (endTime - currentTime) + _time);
|
||||
}
|
||||
|
||||
player.sendPacket(new TimedHuntingZoneList(player));
|
||||
}
|
||||
|
@@ -418,10 +418,11 @@ public class DailyTaskManager
|
||||
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?)"))
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?, ?)"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
ps.setString(2, PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
ps.setString(3, PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -434,6 +435,7 @@ public class DailyTaskManager
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
@@ -452,10 +454,11 @@ public class DailyTaskManager
|
||||
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?)"))
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?, ?)"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
ps.setString(2, PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
ps.setString(3, PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -468,6 +471,7 @@ public class DailyTaskManager
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
|
@@ -61,6 +61,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String AUTO_USE_SHORTCUTS = "AUTO_USE_SHORTCUTS";
|
||||
public static final String HUNTING_ZONE_ENTRY = "HUNTING_ZONE_ENTRY_";
|
||||
public static final String HUNTING_ZONE_TIME = "HUNTING_ZONE_TIME_";
|
||||
public static final String HUNTING_ZONE_REMAIN_REFILL_ = "HUNTING_ZONE_REMAIN_REFILL_";
|
||||
public static final String SAYHA_GRACE_SUPPORT_ENDTIME = "SAYHA_GRACE_SUPPORT_ENDTIME";
|
||||
public static final String LIMITED_SAYHA_GRACE_ENDTIME = "LIMITED_SAYHA_GRACE_ENDTIME";
|
||||
public static final String MAGIC_LAMP_EXP = "MAGIC_LAMP_EXP";
|
||||
|
@@ -21,6 +21,7 @@ import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.data.xml.TimedHuntingZoneData;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.holders.TimedHuntingZoneHolder;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||
@@ -43,7 +44,6 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
|
||||
public boolean write(PacketWriter packet)
|
||||
{
|
||||
OutgoingPackets.EX_TIME_RESTRICT_FIELD_LIST.writeId(packet);
|
||||
int remainingTime;
|
||||
final long currentTime = Chronos.currentTimeMillis();
|
||||
packet.writeD(TimedHuntingZoneData.getInstance().getSize()); // zone count
|
||||
for (TimedHuntingZoneHolder holder : TimedHuntingZoneData.getInstance().getAllHuntingZones())
|
||||
@@ -56,14 +56,14 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
|
||||
packet.writeD(holder.getMinLevel());
|
||||
packet.writeD(holder.getMaxLevel());
|
||||
packet.writeD(holder.getInitialTime() / 1000); // remain time base
|
||||
remainingTime = _player.getTimedHuntingZoneRemainingTime(holder.getZoneId());
|
||||
int remainingTime = _player.getTimedHuntingZoneRemainingTime(holder.getZoneId());
|
||||
if ((remainingTime == 0) && ((_player.getTimedHuntingZoneInitialEntry(holder.getZoneId()) + holder.getResetDelay()) < currentTime))
|
||||
{
|
||||
remainingTime = holder.getInitialTime();
|
||||
}
|
||||
packet.writeD(remainingTime / 1000); // remain time
|
||||
packet.writeD(holder.getMaximumAddedTime() / 1000);
|
||||
packet.writeD(holder.getRemainRefillTime());
|
||||
packet.writeD(_player.getVariables().getInt(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId(), holder.getRemainRefillTime()));
|
||||
packet.writeD(holder.getRefillTimeMax());
|
||||
packet.writeC(_isInTimedHuntingZone ? 0 : 1); // field activated (272 C to D)
|
||||
packet.writeC(0); // bUserBound
|
||||
|
@@ -65,7 +65,7 @@ public class AddHuntingTime extends AbstractEffect
|
||||
}
|
||||
|
||||
final long currentTime = Chronos.currentTimeMillis();
|
||||
long endTime = currentTime + player.getTimedHuntingZoneRemainingTime(_zoneId);
|
||||
final long endTime = currentTime + player.getTimedHuntingZoneRemainingTime(_zoneId);
|
||||
if ((endTime > currentTime) && (((endTime - currentTime) + _time) >= holder.getMaximumAddedTime()))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
@@ -73,24 +73,23 @@ public class AddHuntingTime extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
final long remainRefill = player.getVariables().getInt(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + _zoneId, holder.getRemainRefillTime());
|
||||
if ((_time < remainRefill) || (remainRefill == 0))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
player.sendMessage("You cannot exceed the time zone limit.");
|
||||
return;
|
||||
}
|
||||
|
||||
final long remainTime = player.getVariables().getLong(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, holder.getInitialTime());
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, remainTime + _time);
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + _zoneId, remainRefill - (_time / 1000));
|
||||
|
||||
if (player.isInTimedHuntingZone(_zoneId))
|
||||
{
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, _time + player.getTimedHuntingZoneRemainingTime(_zoneId));
|
||||
player.startTimedHuntingZone(_zoneId, endTime);
|
||||
player.sendPacket(new TimedHuntingZoneEnter(player, _zoneId));
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((endTime + holder.getResetDelay()) < currentTime)
|
||||
{
|
||||
endTime = currentTime + holder.getInitialTime();
|
||||
}
|
||||
else if (endTime < currentTime)
|
||||
{
|
||||
endTime = currentTime;
|
||||
}
|
||||
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, (endTime - currentTime) + _time);
|
||||
}
|
||||
|
||||
player.sendPacket(new TimedHuntingZoneList(player));
|
||||
}
|
||||
|
@@ -418,10 +418,11 @@ public class DailyTaskManager
|
||||
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?)"))
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?, ?)"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
ps.setString(2, PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
ps.setString(3, PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -434,6 +435,7 @@ public class DailyTaskManager
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
@@ -452,10 +454,11 @@ public class DailyTaskManager
|
||||
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?)"))
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var IN (?, ?, ?)"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
ps.setString(2, PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
ps.setString(3, PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -468,6 +471,7 @@ public class DailyTaskManager
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
|
@@ -61,6 +61,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String AUTO_USE_SHORTCUTS = "AUTO_USE_SHORTCUTS";
|
||||
public static final String HUNTING_ZONE_ENTRY = "HUNTING_ZONE_ENTRY_";
|
||||
public static final String HUNTING_ZONE_TIME = "HUNTING_ZONE_TIME_";
|
||||
public static final String HUNTING_ZONE_REMAIN_REFILL_ = "HUNTING_ZONE_REMAIN_REFILL_";
|
||||
public static final String SAYHA_GRACE_SUPPORT_ENDTIME = "SAYHA_GRACE_SUPPORT_ENDTIME";
|
||||
public static final String LIMITED_SAYHA_GRACE_ENDTIME = "LIMITED_SAYHA_GRACE_ENDTIME";
|
||||
public static final String MAGIC_LAMP_EXP = "MAGIC_LAMP_EXP";
|
||||
|
@@ -21,6 +21,7 @@ import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.data.xml.TimedHuntingZoneData;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.holders.TimedHuntingZoneHolder;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||
@@ -43,7 +44,6 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
|
||||
public boolean write(PacketWriter packet)
|
||||
{
|
||||
OutgoingPackets.EX_TIME_RESTRICT_FIELD_LIST.writeId(packet);
|
||||
int remainingTime;
|
||||
final long currentTime = Chronos.currentTimeMillis();
|
||||
packet.writeD(TimedHuntingZoneData.getInstance().getSize()); // zone count
|
||||
for (TimedHuntingZoneHolder holder : TimedHuntingZoneData.getInstance().getAllHuntingZones())
|
||||
@@ -56,14 +56,14 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
|
||||
packet.writeD(holder.getMinLevel());
|
||||
packet.writeD(holder.getMaxLevel());
|
||||
packet.writeD(holder.getInitialTime() / 1000); // remain time base
|
||||
remainingTime = _player.getTimedHuntingZoneRemainingTime(holder.getZoneId());
|
||||
int remainingTime = _player.getTimedHuntingZoneRemainingTime(holder.getZoneId());
|
||||
if ((remainingTime == 0) && ((_player.getTimedHuntingZoneInitialEntry(holder.getZoneId()) + holder.getResetDelay()) < currentTime))
|
||||
{
|
||||
remainingTime = holder.getInitialTime();
|
||||
}
|
||||
packet.writeD(remainingTime / 1000); // remain time
|
||||
packet.writeD(holder.getMaximumAddedTime() / 1000);
|
||||
packet.writeD(holder.getRemainRefillTime());
|
||||
packet.writeD(_player.getVariables().getInt(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL_ + holder.getZoneId(), holder.getRemainRefillTime()));
|
||||
packet.writeD(holder.getRefillTimeMax());
|
||||
packet.writeC(_isInTimedHuntingZone ? 0 : 1); // field activated (272 C to D)
|
||||
packet.writeC(0); // bUserBound
|
||||
|
Reference in New Issue
Block a user