Partially reverted latest timed zone changes.

This commit is contained in:
MobiusDevelopment
2022-08-29 12:47:03 +00:00
parent 4ed3354380
commit 4196f51c41
97 changed files with 461 additions and 1830 deletions

View File

@@ -5,6 +5,7 @@
<initialTime>25200</initialTime> <!-- 7 hour / 420 min -->
<resetDelay>604800</resetDelay> <!-- 7 days -->
<maxAddedTime>86400</maxAddedTime> <!-- 24 hours / 1440 min -->
<remainRefillTime>61200</remainRefillTime>
<refillTimeMax>61200</refillTimeMax>
<entryFee>200000</entryFee>
<minLevel>76</minLevel>
@@ -16,6 +17,7 @@
<initialTime>3600</initialTime> <!-- 1 hour / 60 min -->
<resetDelay>36000</resetDelay> <!-- 10 hours -->
<maxAddedTime>46800</maxAddedTime> <!-- 13 hours -->
<remainRefillTime>7200</remainRefillTime>
<refillTimeMax>7200</refillTimeMax>
<entryFee>10000</entryFee>
<minLevel>70</minLevel>
@@ -26,6 +28,7 @@
<initialTime>18000</initialTime> <!-- 5 hour / 300 min -->
<resetDelay>604800</resetDelay> <!-- 7 days -->
<maxAddedTime>64800</maxAddedTime> <!-- 1080 min -->
<remainRefillTime>46800</remainRefillTime>
<refillTimeMax>46800</refillTimeMax>
<entryFee>1000000</entryFee>
<minLevel>80</minLevel>
@@ -37,6 +40,7 @@
<initialTime>18000</initialTime> <!-- 5 hour / 300 min -->
<resetDelay>604800</resetDelay> <!-- 7 days -->
<maxAddedTime>64800</maxAddedTime> <!-- 1080 min -->
<remainRefillTime>46800</remainRefillTime>
<refillTimeMax>46800</refillTimeMax>
<entryFee>1000000</entryFee>
<minLevel>85</minLevel>
@@ -118,6 +122,7 @@
<initialTime>7200</initialTime> <!-- 2 hour -->
<resetDelay>36000</resetDelay> <!-- 10 hours -->
<maxAddedTime>46800</maxAddedTime> <!-- 13 hours -->
<remainRefillTime>43200</remainRefillTime>
<refillTimeMax>3600</refillTimeMax>
<entryFee>10000</entryFee>
<minLevel>76</minLevel>
@@ -128,6 +133,7 @@
<initialTime>3600</initialTime> <!-- 1 hour -->
<resetDelay>36000</resetDelay> <!-- 10 hours -->
<maxAddedTime>46800</maxAddedTime> <!-- 13 hours -->
<remainRefillTime>3600</remainRefillTime>
<refillTimeMax>3600</refillTimeMax>
<entryFee>10000</entryFee>
<minLevel>80</minLevel>

View File

@@ -26,6 +26,7 @@ import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
import org.l2jmobius.gameserver.network.serverpackets.huntingzones.TimedHuntingZoneChargeResult;
import org.l2jmobius.gameserver.network.serverpackets.huntingzones.TimedHuntingZoneEnter;
/**
* @author Mobius
@@ -63,7 +64,7 @@ public class AddHuntingTime extends AbstractEffect
}
final long currentTime = System.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);
@@ -71,37 +72,24 @@ public class AddHuntingTime extends AbstractEffect
return;
}
long remainRefillTime = player.getVariables().getLong(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL + _zoneId, holder.getRefillTimeMax());
remainRefillTime -= _time / 1000;
if (remainRefillTime < 0)
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("Time for this zone can be extended no further.");
player.sendMessage("You cannot exceed the time zone limit.");
return;
}
player.getVariables().set(PlayerVariables.HUNTING_ZONE_REMAIN_REFILL + _zoneId, remainRefillTime);
final long remainTime;
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))
{
remainTime = _time + player.getTimedHuntingZoneRemainingTime(_zoneId);
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, remainTime);
player.startTimedHuntingZone(_zoneId, endTime);
}
else
{
if ((endTime + holder.getResetDelay()) < currentTime)
{
endTime = currentTime + holder.getInitialTime();
}
else if (endTime < currentTime)
{
endTime = currentTime;
}
remainTime = (endTime - currentTime) + _time;
player.getVariables().set(PlayerVariables.HUNTING_ZONE_TIME + _zoneId, remainTime);
player.sendPacket(new TimedHuntingZoneEnter(player, _zoneId));
}
player.sendPacket(new TimedHuntingZoneChargeResult(_zoneId, (int) (remainTime / 1000), (int) remainRefillTime));
player.sendPacket(new TimedHuntingZoneChargeResult(_zoneId, (int) (remainTime / 1000), (int) (remainRefill - (_time / 1000))));
}
}

View File

@@ -248,7 +248,7 @@ public class TimedHunting extends AbstractInstance
instance.setParameter("TimedHuntingTaskFinished", false);
}
player.sendPacket(new ExSendUIEvent(player, true, false, 600, 0, NpcStringId.TIME_LEFT));
player.sendPacket(new TimedHuntingZoneExit(player.getLastTimeZone().getZoneId()));
player.sendPacket(new TimedHuntingZoneExit(108)); // Training Zone id.
player.getEffectList().stopSkillEffects(SkillFinishType.REMOVED, BUFF);
instance.setParameter("PlayerIsOut", true);

View File

@@ -31,6 +31,7 @@ import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.holders.TimedHuntingZoneHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.skill.SkillCaster;
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExSendUIEvent;
import org.l2jmobius.gameserver.network.serverpackets.huntingzones.TimedHuntingZoneExit;
@@ -875,7 +876,7 @@ public class TrainingZone extends AbstractInstance
public void onInstanceLeave(Player player, Instance instance)
{
player.sendPacket(new ExSendUIEvent(player, true, false, 3600, 0, NpcStringId.TIME_LEFT));
player.sendPacket(new TimedHuntingZoneExit(player.getLastTimeZone().getZoneId()));
player.sendPacket(new TimedHuntingZoneExit(player.getVariables().getInt(PlayerVariables.LAST_HUNTING_ZONE_ID, 0)));
removeBuffs(player);
instance.getParameters().remove("TRAINIG_AREA_TELEPORT");
instance.finishInstance();

View File

@@ -10,6 +10,7 @@
<xs:element type="xs:int" name="initialTime" />
<xs:element type="xs:int" name="resetDelay" minOccurs="0" />
<xs:element type="xs:int" name="maxAddedTime" />
<xs:element type="xs:int" name="remainRefillTime" minOccurs="0" />
<xs:element type="xs:int" name="refillTimeMax" minOccurs="0" />
<xs:element type="xs:int" name="entryItemId" minOccurs="0" />
<xs:element type="xs:int" name="entryFee" />
@@ -18,8 +19,7 @@
<xs:element type="xs:int" name="instanceId" minOccurs="0" />
<xs:element type="xs:boolean" name="soloInstance" minOccurs="0" />
<xs:element type="xs:boolean" name="weekly" minOccurs="0" />
<xs:element type="xs:boolean" name="pvpZone" minOccurs="0" />
<xs:element type="xs:boolean" name="noPvpZone" minOccurs="0" />
<xs:element type="xs:boolean" name="useWorldPrefix" minOccurs="0" />
</xs:sequence>
<xs:attribute type="xs:byte" name="id" use="optional" />
<xs:attribute type="xs:string" name="name" use="optional" />