Unhardcoded timed hunting zone data.
This commit is contained in:
116
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/TimedHuntingZoneData.xml
vendored
Normal file
116
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/TimedHuntingZoneData.xml
vendored
Normal file
@@ -0,0 +1,116 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list enabled="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/TimedHuntingZoneData.xsd">
|
||||
<zone id="1" name="Primeval Isle">
|
||||
<enterLocation>9400,-21720,-3634</enterLocation>
|
||||
<initialTime>3600000</initialTime> <!-- 1 hour -->
|
||||
<resetDelay>36000000</resetDelay> <!-- 10 hours -->
|
||||
<maxAddedTime>46800000</maxAddedTime> <!-- 13 hours -->
|
||||
<remainRefillTime>43200</remainRefillTime>
|
||||
<refillTimeMax>3600</refillTimeMax>
|
||||
<entryFee>10000</entryFee>
|
||||
<minLevel>40</minLevel>
|
||||
<maxLevel>999</maxLevel>
|
||||
</zone>
|
||||
<zone id="4" name="Forgotten Primeval Garden">
|
||||
<enterLocation>-112937,213590,-13248</enterLocation>
|
||||
<initialTime>3600000</initialTime> <!-- 1 hour -->
|
||||
<resetDelay>36000000</resetDelay> <!-- 10 hours -->
|
||||
<maxAddedTime>21600000</maxAddedTime> <!-- 6 hours -->
|
||||
<remainRefillTime>18000</remainRefillTime>
|
||||
<refillTimeMax>3600</refillTimeMax>
|
||||
<entryFee>10000</entryFee>
|
||||
<minLevel>76</minLevel>
|
||||
<maxLevel>999</maxLevel>
|
||||
</zone>
|
||||
<zone id="11" name="Alligator Island">
|
||||
<enterLocation>115528,191580,-3371</enterLocation>
|
||||
<initialTime>3600000</initialTime> <!-- 1 hour -->
|
||||
<resetDelay>36000000</resetDelay> <!-- 10 hours -->
|
||||
<maxAddedTime>46800000</maxAddedTime> <!-- 13 hours -->
|
||||
<remainRefillTime>7200</remainRefillTime>
|
||||
<refillTimeMax>3600</refillTimeMax>
|
||||
<entryFee>10000</entryFee>
|
||||
<minLevel>60</minLevel>
|
||||
<maxLevel>999</maxLevel>
|
||||
</zone>
|
||||
<zone id="12" name="Antharas Lair">
|
||||
<enterLocation>133247,114445,-3724</enterLocation>
|
||||
<initialTime>25200000</initialTime> <!-- 7 hours -->
|
||||
<resetDelay>604800000</resetDelay> <!-- 7 days -->
|
||||
<maxAddedTime>151200000</maxAddedTime> <!-- 42 hours -->
|
||||
<remainRefillTime>126000</remainRefillTime>
|
||||
<refillTimeMax>3600</refillTimeMax>
|
||||
<entryFee>10000</entryFee>
|
||||
<minLevel>80</minLevel>
|
||||
<maxLevel>999</maxLevel>
|
||||
<weekly>true</weekly>
|
||||
</zone>
|
||||
<!--
|
||||
<zone id="101" name="Transcendent Instance Zone 1">
|
||||
<enterLocation>63443,26304,-3755</enterLocation>
|
||||
<initialTime>3600000</initialTime> 1 hour
|
||||
<resetDelay>36000000</resetDelay> 10 hours
|
||||
<maxAddedTime>46800000</maxAddedTime> 13 hours
|
||||
<remainRefillTime>3600</remainRefillTime>
|
||||
<refillTimeMax>3600</refillTimeMax>
|
||||
<entryFee>10000</entryFee>
|
||||
<minLevel>40</minLevel>
|
||||
<maxLevel>49</maxLevel>
|
||||
</zone>
|
||||
<zone id="102" name="Transcendent Instance Zone 2">
|
||||
<enterLocation>125277,70262,-4408</enterLocation>
|
||||
<initialTime>3600000</initialTime> 1 hour
|
||||
<resetDelay>36000000</resetDelay> 10 hours
|
||||
<maxAddedTime>46800000</maxAddedTime> 13 hours
|
||||
<remainRefillTime>3600</remainRefillTime>
|
||||
<refillTimeMax>3600</refillTimeMax>
|
||||
<entryFee>10000</entryFee>
|
||||
<minLevel>50</minLevel>
|
||||
<maxLevel>59</maxLevel>
|
||||
</zone>
|
||||
<zone id="103" name="Transcendent Instance Zone 3">
|
||||
<enterLocation>148724,-22366,-3436</enterLocation>
|
||||
<initialTime>3600000</initialTime> 1 hour
|
||||
<resetDelay>36000000</resetDelay> 10 hours
|
||||
<maxAddedTime>46800000</maxAddedTime> 13 hours
|
||||
<remainRefillTime>3600</remainRefillTime>
|
||||
<refillTimeMax>3600</refillTimeMax>
|
||||
<entryFee>10000</entryFee>
|
||||
<minLevel>60</minLevel>
|
||||
<maxLevel>69</maxLevel>
|
||||
</zone>
|
||||
<zone id="104" name="Transcendent Instance Zone 4">
|
||||
<enterLocation>167965,28800,-3606</enterLocation>
|
||||
<initialTime>3600000</initialTime> 1 hour
|
||||
<resetDelay>36000000</resetDelay> 10 hours
|
||||
<maxAddedTime>46800000</maxAddedTime> 13 hours
|
||||
<remainRefillTime>3600</remainRefillTime>
|
||||
<refillTimeMax>3600</refillTimeMax>
|
||||
<entryFee>10000</entryFee>
|
||||
<minLevel>70</minLevel>
|
||||
<maxLevel>79</maxLevel>
|
||||
</zone>
|
||||
<zone id="106" name="Transcendent Instance Zone 6">
|
||||
<enterLocation>99797,110524,-3702</enterLocation>
|
||||
<initialTime>3600000</initialTime> 1 hour
|
||||
<resetDelay>36000000</resetDelay> 10 hours
|
||||
<maxAddedTime>46800000</maxAddedTime> 13 hours
|
||||
<remainRefillTime>3600</remainRefillTime>
|
||||
<refillTimeMax>3600</refillTimeMax>
|
||||
<entryFee>10000</entryFee>
|
||||
<minLevel>80</minLevel>
|
||||
<maxLevel>999</maxLevel>
|
||||
</zone>
|
||||
<zone id="107" name="Transcendent Instance Zone 7">
|
||||
<enterLocation>-50416,145363,-2825</enterLocation>
|
||||
<initialTime>3600000</initialTime> 1 hour
|
||||
<resetDelay>36000000</resetDelay> 10 hours
|
||||
<maxAddedTime>46800000</maxAddedTime> 13 hours
|
||||
<remainRefillTime>3600</remainRefillTime>
|
||||
<refillTimeMax>3600</refillTimeMax>
|
||||
<entryFee>10000</entryFee>
|
||||
<minLevel>85</minLevel>
|
||||
<maxLevel>999</maxLevel>
|
||||
</zone>
|
||||
-->
|
||||
</list>
|
||||
@@ -16,16 +16,17 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.data.xml.TimedHuntingZoneData;
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.holders.TimedHuntingZoneHolder;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.sessionzones.TimedHuntingZoneList;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.huntingzones.TimedHuntingZoneList;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
@@ -56,33 +57,15 @@ public class AddHuntingTime extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
final TimedHuntingZoneHolder holder = TimedHuntingZoneData.getInstance().getHuntingZone(_zoneId);
|
||||
if (holder == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final long currentTime = Chronos.currentTimeMillis();
|
||||
long endTime = currentTime + player.getTimedHuntingZoneRemainingTime(_zoneId);
|
||||
if ((endTime > currentTime) && (((endTime - currentTime) + _time) >= Config.TIME_LIMITED_MAX_ADDED_TIME))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
player.sendMessage("You cannot exceed the time zone limit.");
|
||||
return;
|
||||
}
|
||||
else if ((endTime > currentTime) && (((endTime - currentTime) + _time) >= Config.TIME_LIMITED_MAX_ADDED_PRIMEVAL))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
player.sendMessage("You cannot exceed the time zone limit.");
|
||||
return;
|
||||
}
|
||||
else if ((endTime > currentTime) && (((endTime - currentTime) + _time) >= Config.TIME_LIMITED_MAX_ADDED_ALLIGATOR))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
player.sendMessage("You cannot exceed the time zone limit.");
|
||||
return;
|
||||
}
|
||||
else if ((endTime > currentTime) && (((endTime - currentTime) + _time) >= Config.TIME_LIMITED_MAX_ADDED_GARDEN))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
player.sendMessage("You cannot exceed the time zone limit.");
|
||||
return;
|
||||
}
|
||||
else if ((endTime > currentTime) && (((endTime - currentTime) + _time) >= Config.TIME_LIMITED_MAX_ADDED_ANTHARAS))
|
||||
if ((endTime > currentTime) && (((endTime - currentTime) + _time) >= holder.getMaximumAddedTime()))
|
||||
{
|
||||
player.getInventory().addItem("AddHuntingTime effect refund", item.getId(), 1, player, player);
|
||||
player.sendMessage("You cannot exceed the time zone limit.");
|
||||
@@ -96,17 +79,9 @@ public class AddHuntingTime extends AbstractEffect
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((endTime + Config.TIME_LIMITED_ZONE_RESET_DELAY) < currentTime)
|
||||
if ((endTime + holder.getResetDelay()) < currentTime)
|
||||
{
|
||||
endTime = currentTime + Config.TIME_LIMITED_ZONE_INITIAL_TIME;
|
||||
}
|
||||
else if ((endTime + Config.TIME_LIMITED_ZONE_RESET_DELAY) < currentTime)
|
||||
{
|
||||
endTime = currentTime + Config.TIME_LIMITED_ZONE_PRIMEVAL;
|
||||
}
|
||||
else if ((endTime + Config.TIME_LIMITED_ZONE_RESET_DELAY_ANTHARAS) < currentTime)
|
||||
{
|
||||
endTime = currentTime + Config.TIME_LIMITED_ZONE_ANTHARAS;
|
||||
endTime = currentTime + holder.getInitialTime();
|
||||
}
|
||||
else if (endTime < currentTime)
|
||||
{
|
||||
|
||||
28
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/xsd/TimedHuntingZoneData.xsd
vendored
Normal file
28
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/xsd/TimedHuntingZoneData.xsd
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:element name="list">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="zone" maxOccurs="unbounded" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element type="xs:string" name="enterLocation" />
|
||||
<xs:element type="xs:int" name="initialTime" />
|
||||
<xs:element type="xs:int" name="resetDelay" />
|
||||
<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" />
|
||||
<xs:element type="xs:short" name="minLevel" />
|
||||
<xs:element type="xs:short" name="maxLevel" />
|
||||
<xs:element type="xs:boolean" name="weekly" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
<xs:attribute type="xs:byte" name="id" use="optional" />
|
||||
<xs:attribute type="xs:string" name="name" use="optional" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute type="xs:boolean" name="enabled" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
Reference in New Issue
Block a user