Addition of time stone limited use.
Contributed by nasseka.
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user