Fishing rework based on L2jUnity free files.
Contributed by facab.
This commit is contained in:
parent
bdeaab95bb
commit
9f72595ae0
@ -45,3 +45,7 @@ EnablePremiumHennaSlotforNonPremium = True
|
||||
# Also premium henna drawn at normal slots.
|
||||
# Retail: False
|
||||
EnableAnyHennaAtPremiumSlot = False
|
||||
|
||||
# Enable Fishing only for premium players.
|
||||
# Retail: True
|
||||
PremiumOnlyFishing = False
|
||||
|
@ -1,28 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="./xsd/Fishing.xsd">
|
||||
<baitDistance min="90" max="250" />
|
||||
<experienceRate min="650" max="700" />
|
||||
<skillPointsRate min="40" max="45" />
|
||||
<xpRate min="1" max="1" /> <!-- XP modifiction rate -->
|
||||
<spRate min="1" max="1" /> <!-- SP modifiction rate -->
|
||||
<baits>
|
||||
<bait itemId="45495" level="1" minPlayerLevel="85" chance="64" timeMin="45000" timeMax="45000" waitMin="15000" waitMax="15000"> <!-- Normal Bait -->
|
||||
<catch itemId="45473" /> <!-- Fresh Blue Mackerel -->
|
||||
<catch itemId="45474" /> <!-- Fresh Minnow -->
|
||||
<catch itemId="45475" /> <!-- Fresh Flatcatch -->
|
||||
<catch itemId="45476" /> <!-- Fresh Mandarin catch -->
|
||||
<catch itemId="45477" /> <!-- Fresh Rockcatch -->
|
||||
<catch itemId="45478" /> <!-- Fresh Goldcatch -->
|
||||
<catch itemId="45479" /> <!-- Fresh Salmon -->
|
||||
<catch itemId="45480" /> <!-- Fresh Eel -->
|
||||
<catch itemId="45486" /> <!-- Wooden Treasure Chest -->
|
||||
<bait itemId="45495" minPlayerLevel="85" chance="64" timeMin="105000" waitMin="15000" > <!-- Normal Bait -->
|
||||
<catch itemId="45473" chance="70" multiplier ="1" /> <!-- Fresh Blue Mackerel -->
|
||||
<catch itemId="45474" chance="3" multiplier ="1" /> <!-- Fresh Minnow -->
|
||||
<catch itemId="45475" chance="3" multiplier ="1" /> <!-- Fresh Flatcatch -->
|
||||
<catch itemId="45476" chance="3" multiplier ="1" /> <!-- Fresh Mandarin catch -->
|
||||
<catch itemId="45477" chance="3" multiplier ="1" /> <!-- Fresh Rockcatch -->
|
||||
<catch itemId="45478" chance="3" multiplier ="1" /> <!-- Fresh Goldcatch -->
|
||||
<catch itemId="45479" chance="3" multiplier ="1" /> <!-- Fresh Salmon -->
|
||||
<catch itemId="45480" chance="3" multiplier ="1" /> <!-- Fresh Eel -->
|
||||
<catch itemId="45486" chance="3" multiplier ="1" /> <!-- Wooden Treasure Chest -->
|
||||
</bait>
|
||||
<bait itemId="45496" level="2" minPlayerLevel="85" chance="64" timeMin="45000" timeMax="45000" waitMin="15000" waitMax="15000"> <!-- Special Bait -->
|
||||
<catch itemId="45481" /> <!-- Fresh Marlin -->
|
||||
<catch itemId="45482" /> <!-- Fresh Catcatch -->
|
||||
<catch itemId="45483" /> <!-- Fresh Tuna -->
|
||||
<catch itemId="45484" /> <!-- Fresh Carp -->
|
||||
<catch itemId="45485" /> <!-- Fresh Whale -->
|
||||
<catch itemId="45487" /> <!-- Silver Treasure Chest -->
|
||||
<catch itemId="45488" /> <!-- Golden Treasure Chest -->
|
||||
<bait itemId="45496" minPlayerLevel="99" chance="64" timeMin="105000" waitMin="15000" > <!-- Special Bait -->
|
||||
<catch itemId="45481" chance="14" multiplier ="1" /> <!-- Fresh Marlin -->
|
||||
<catch itemId="45482" chance="14" multiplier ="1" /> <!-- Fresh Catcatch -->
|
||||
<catch itemId="45483" chance="14" multiplier ="1" /> <!-- Fresh Tuna -->
|
||||
<catch itemId="45484" chance="14" multiplier ="1" /> <!-- Fresh Carp -->
|
||||
<catch itemId="45485" chance="14" multiplier ="1" /> <!-- Fresh Whale -->
|
||||
<catch itemId="45487" chance="14" multiplier ="1" /> <!-- Silver Treasure Chest -->
|
||||
<catch itemId="45488" chance="14" multiplier ="1" /> <!-- Golden Treasure Chest -->
|
||||
</bait>
|
||||
</baits>
|
||||
<rods>
|
||||
<rod itemId="45492" /> <!-- Normal Fishing Rod - 30-day -->
|
||||
<rod itemId="45494" /> <!-- Sturdy Fishing Rod -->
|
||||
</rods>
|
||||
</list>
|
@ -9,13 +9,13 @@
|
||||
<xs:attribute type="xs:positiveInteger" name="max" use="required" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="experienceRate">
|
||||
<xs:element name="xpRate">
|
||||
<xs:complexType>
|
||||
<xs:attribute type="xs:double" name="min" use="required" />
|
||||
<xs:attribute type="xs:double" name="max" use="required" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="skillPointsRate">
|
||||
<xs:element name="spRate">
|
||||
<xs:complexType>
|
||||
<xs:attribute type="xs:double" name="min" use="required" />
|
||||
<xs:attribute type="xs:double" name="max" use="required" />
|
||||
@ -30,17 +30,35 @@
|
||||
<xs:element name="catch" maxOccurs="unbounded" minOccurs="1">
|
||||
<xs:complexType>
|
||||
<xs:attribute type="xs:positiveInteger" name="itemId" use="required" />
|
||||
<xs:attribute type="xs:double" name="chance" />
|
||||
<xs:attribute type="xs:double" name="multiplier" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute type="xs:positiveInteger" name="itemId" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="level" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="level" />
|
||||
<xs:attribute type="xs:positiveInteger" name="minPlayerLevel" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="maxPlayerLevel" />
|
||||
<xs:attribute type="xs:double" name="chance" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="timeMin" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="timeMax" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="timeMax" />
|
||||
<xs:attribute type="xs:positiveInteger" name="waitMin" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="waitMax" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="waitMax" />
|
||||
<xs:attribute type="xs:boolean" name="isPremiumOnly" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="rods">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="rod" maxOccurs="unbounded" minOccurs="1">
|
||||
<xs:complexType>
|
||||
<xs:attribute type="xs:positiveInteger" name="itemId" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="reduceFishingTime" />
|
||||
<xs:attribute type="xs:double" name="xpMultiplier" />
|
||||
<xs:attribute type="xs:double" name="spMultiplier" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
|
@ -1130,11 +1130,12 @@ public final class Config
|
||||
public static float PREMIUM_RATE_DROP_AMOUNT;
|
||||
public static float PREMIUM_RATE_SPOIL_CHANCE;
|
||||
public static float PREMIUM_RATE_SPOIL_AMOUNT;
|
||||
public static Map<Integer, Float> PREMIUM_RATE_DROP_CHANCE_BY_ID;
|
||||
public static Map<Integer, Float> PREMIUM_RATE_DROP_AMOUNT_BY_ID;
|
||||
public static boolean PREMIUM_HENNA_SLOT_ENABLED;
|
||||
public static boolean PREMIUM_HENNA_SLOT_ENABLED_FOR_ALL;
|
||||
public static boolean PREMIUM_HENNA_SLOT_ALL_DYES;
|
||||
public static Map<Integer, Float> PREMIUM_RATE_DROP_CHANCE_BY_ID;
|
||||
public static Map<Integer, Float> PREMIUM_RATE_DROP_AMOUNT_BY_ID;
|
||||
public static boolean PREMIUM_ONLY_FISHING;
|
||||
public static boolean PC_CAFE_ENABLED;
|
||||
public static boolean PC_CAFE_ONLY_PREMIUM;
|
||||
public static int PC_CAFE_MAX_POINTS;
|
||||
@ -2612,9 +2613,6 @@ public final class Config
|
||||
PREMIUM_RATE_DROP_AMOUNT = PremiumSystem.getFloat("PremiumRateDropAmount", 1);
|
||||
PREMIUM_RATE_SPOIL_CHANCE = PremiumSystem.getFloat("PremiumRateSpoilChance", 2);
|
||||
PREMIUM_RATE_SPOIL_AMOUNT = PremiumSystem.getFloat("PremiumRateSpoilAmount", 1);
|
||||
PREMIUM_HENNA_SLOT_ENABLED = PremiumSystem.getBoolean("EnablePremiumHennaSlot", true);
|
||||
PREMIUM_HENNA_SLOT_ENABLED_FOR_ALL = PremiumSystem.getBoolean("EnablePremiumHennaSlotforNonPremium", true);
|
||||
PREMIUM_HENNA_SLOT_ALL_DYES = PremiumSystem.getBoolean("EnableAnyHennaAtPremiumSlot", false);
|
||||
final String[] premiumDropChanceMultiplier = PremiumSystem.getString("PremiumRateDropChanceByItemId", "").split(";");
|
||||
PREMIUM_RATE_DROP_CHANCE_BY_ID = new HashMap<>(premiumDropChanceMultiplier.length);
|
||||
if (!premiumDropChanceMultiplier[0].isEmpty())
|
||||
@ -2669,6 +2667,10 @@ public final class Config
|
||||
}
|
||||
}
|
||||
}
|
||||
PREMIUM_HENNA_SLOT_ENABLED = PremiumSystem.getBoolean("EnablePremiumHennaSlot", true);
|
||||
PREMIUM_HENNA_SLOT_ENABLED_FOR_ALL = PremiumSystem.getBoolean("EnablePremiumHennaSlotforNonPremium", true);
|
||||
PREMIUM_HENNA_SLOT_ALL_DYES = PremiumSystem.getBoolean("EnableAnyHennaAtPremiumSlot", false);
|
||||
PREMIUM_ONLY_FISHING = PremiumSystem.getBoolean("PremiumOnlyFishing", true);
|
||||
|
||||
// Load PrivateStoreRange config file (if exists)
|
||||
final PropertiesParser PrivateStoreRange = new PropertiesParser(CUSTOM_PRIVATE_STORE_RANGE_CONFIG_FILE);
|
||||
|
@ -25,8 +25,12 @@ import org.w3c.dom.Document;
|
||||
import org.w3c.dom.NamedNodeMap;
|
||||
import org.w3c.dom.Node;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.commons.util.IGameXmlReader;
|
||||
import com.l2jmobius.gameserver.model.FishingBaitData;
|
||||
import com.l2jmobius.gameserver.datatables.ItemTable;
|
||||
import com.l2jmobius.gameserver.model.fishing.FishingBait;
|
||||
import com.l2jmobius.gameserver.model.fishing.FishingCatch;
|
||||
import com.l2jmobius.gameserver.model.fishing.FishingRod;
|
||||
|
||||
/**
|
||||
* This class holds the Fishing information.
|
||||
@ -35,7 +39,8 @@ import com.l2jmobius.gameserver.model.FishingBaitData;
|
||||
public final class FishingData implements IGameXmlReader
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger(FishingData.class.getName());
|
||||
private final Map<Integer, FishingBaitData> _baitData = new HashMap<>();
|
||||
private final Map<Integer, FishingBait> _baitData = new HashMap<>();
|
||||
private final Map<Integer, FishingRod> _rodData = new HashMap<>();
|
||||
private int _baitDistanceMin;
|
||||
private int _baitDistanceMax;
|
||||
private double _expRateMin;
|
||||
@ -56,7 +61,7 @@ public final class FishingData implements IGameXmlReader
|
||||
{
|
||||
_baitData.clear();
|
||||
parseDatapackFile("data/Fishing.xml");
|
||||
LOGGER.info(getClass().getSimpleName() + ": Loaded Fishing Data.");
|
||||
LOGGER.info(getClass().getSimpleName() + ": Loaded " + _baitData.size() + " bait and " + _rodData.size() + " rod data.");
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -76,13 +81,13 @@ public final class FishingData implements IGameXmlReader
|
||||
_baitDistanceMax = parseInteger(listItem.getAttributes(), "max");
|
||||
break;
|
||||
}
|
||||
case "experienceRate":
|
||||
case "xpRate":
|
||||
{
|
||||
_expRateMin = parseDouble(listItem.getAttributes(), "min");
|
||||
_expRateMax = parseDouble(listItem.getAttributes(), "max");
|
||||
break;
|
||||
}
|
||||
case "skillPointsRate":
|
||||
case "spRate":
|
||||
{
|
||||
_spRateMin = parseDouble(listItem.getAttributes(), "min");
|
||||
_spRateMax = parseDouble(listItem.getAttributes(), "max");
|
||||
@ -96,20 +101,39 @@ public final class FishingData implements IGameXmlReader
|
||||
{
|
||||
final NamedNodeMap attrs = bait.getAttributes();
|
||||
final int itemId = parseInteger(attrs, "itemId");
|
||||
final int level = parseInteger(attrs, "level");
|
||||
final int minPlayerLevel = parseInteger(attrs, "minPlayerLevel");
|
||||
final byte level = parseByte(attrs, "level", (byte) 1);
|
||||
final byte minPlayerLevel = parseByte(attrs, "minPlayerLevel");
|
||||
final byte maxPlayerLevel = parseByte(attrs, "minPlayerLevel", Config.PLAYER_MAXIMUM_LEVEL);
|
||||
final double chance = parseDouble(attrs, "chance");
|
||||
final int timeMin = parseInteger(attrs, "timeMin");
|
||||
final int timeMax = parseInteger(attrs, "timeMax");
|
||||
final int timeMax = parseInteger(attrs, "timeMax", timeMin);
|
||||
final int waitMin = parseInteger(attrs, "waitMin");
|
||||
final int waitMax = parseInteger(attrs, "waitMax");
|
||||
final FishingBaitData baitData = new FishingBaitData(itemId, level, minPlayerLevel, chance, timeMin, timeMax, waitMin, waitMax);
|
||||
final int waitMax = parseInteger(attrs, "waitMax", waitMin);
|
||||
final boolean isPremiumOnly = parseBoolean(attrs, "isPremiumOnly", false);
|
||||
|
||||
if (ItemTable.getInstance().getTemplate(itemId) == null)
|
||||
{
|
||||
LOGGER.info(getClass().getSimpleName() + ": Could not find item with id " + itemId);
|
||||
continue;
|
||||
}
|
||||
|
||||
final FishingBait baitData = new FishingBait(itemId, level, minPlayerLevel, maxPlayerLevel, chance, timeMin, timeMax, waitMin, waitMax, isPremiumOnly);
|
||||
for (Node c = bait.getFirstChild(); c != null; c = c.getNextSibling())
|
||||
{
|
||||
if ("catch".equalsIgnoreCase(c.getNodeName()))
|
||||
{
|
||||
baitData.addReward(parseInteger(c.getAttributes(), "itemId"));
|
||||
final NamedNodeMap cAttrs = c.getAttributes();
|
||||
final int cId = parseInteger(cAttrs, "itemId");
|
||||
final float cChance = parseFloat(cAttrs, "chance");
|
||||
final float cMultiplier = parseFloat(cAttrs, "multiplier", 1f);
|
||||
|
||||
if (ItemTable.getInstance().getTemplate(cId) == null)
|
||||
{
|
||||
LOGGER.info(getClass().getSimpleName() + ": Could not find item with id " + itemId);
|
||||
continue;
|
||||
}
|
||||
|
||||
baitData.addReward(new FishingCatch(cId, cChance, cMultiplier));
|
||||
}
|
||||
}
|
||||
_baitData.put(baitData.getItemId(), baitData);
|
||||
@ -117,22 +141,44 @@ public final class FishingData implements IGameXmlReader
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "rods":
|
||||
{
|
||||
for (Node rod = listItem.getFirstChild(); rod != null; rod = rod.getNextSibling())
|
||||
{
|
||||
if ("rod".equalsIgnoreCase(rod.getNodeName()))
|
||||
{
|
||||
final NamedNodeMap attrs = rod.getAttributes();
|
||||
final int itemId = parseInteger(attrs, "itemId");
|
||||
final int reduceFishingTime = parseInteger(attrs, "reduceFishingTime", 0);
|
||||
final float xpMultiplier = parseFloat(attrs, "xpMultiplier", 1f);
|
||||
final float spMultiplier = parseFloat(attrs, "spMultiplier", 1f);
|
||||
|
||||
if (ItemTable.getInstance().getTemplate(itemId) == null)
|
||||
{
|
||||
LOGGER.info(getClass().getSimpleName() + ": Could not find item with id " + itemId);
|
||||
continue;
|
||||
}
|
||||
|
||||
_rodData.put(itemId, new FishingRod(itemId, reduceFishingTime, xpMultiplier, spMultiplier));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the fishing rod.
|
||||
* @param baitItemId the item id
|
||||
* @return A list of reward item ids
|
||||
*/
|
||||
public FishingBaitData getBaitData(int baitItemId)
|
||||
public FishingBait getBaitData(int baitItemId)
|
||||
{
|
||||
return _baitData.get(baitItemId);
|
||||
}
|
||||
|
||||
public FishingRod getRodData(int rodItemId)
|
||||
{
|
||||
return _rodData.get(rodItemId);
|
||||
}
|
||||
|
||||
public int getBaitDistanceMin()
|
||||
{
|
||||
return _baitDistanceMin;
|
||||
|
@ -120,7 +120,6 @@ import com.l2jmobius.gameserver.model.ArenaParticipantsHolder;
|
||||
import com.l2jmobius.gameserver.model.BlockList;
|
||||
import com.l2jmobius.gameserver.model.ClanPrivilege;
|
||||
import com.l2jmobius.gameserver.model.ClanWar;
|
||||
import com.l2jmobius.gameserver.model.Fishing;
|
||||
import com.l2jmobius.gameserver.model.L2AccessLevel;
|
||||
import com.l2jmobius.gameserver.model.L2Clan;
|
||||
import com.l2jmobius.gameserver.model.L2ClanMember;
|
||||
@ -208,6 +207,7 @@ import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerPvPCh
|
||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerPvPKill;
|
||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerReputationChanged;
|
||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerSubChange;
|
||||
import com.l2jmobius.gameserver.model.fishing.Fishing;
|
||||
import com.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import com.l2jmobius.gameserver.model.holders.MovieHolder;
|
||||
import com.l2jmobius.gameserver.model.holders.PlayerEventHolder;
|
||||
|
@ -14,7 +14,7 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.l2jmobius.gameserver.model;
|
||||
package com.l2jmobius.gameserver.model.fishing;
|
||||
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.logging.Level;
|
||||
@ -27,6 +27,8 @@ import com.l2jmobius.gameserver.data.xml.impl.FishingData;
|
||||
import com.l2jmobius.gameserver.enums.ShotType;
|
||||
import com.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||
import com.l2jmobius.gameserver.instancemanager.ZoneManager;
|
||||
import com.l2jmobius.gameserver.model.Location;
|
||||
import com.l2jmobius.gameserver.model.PcCondOverride;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.events.EventDispatcher;
|
||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerFishing;
|
||||
@ -87,7 +89,7 @@ public class Fishing
|
||||
return !_player.isDead() && !_player.isAlikeDead() && !_player.hasBlockActions() && !_player.isSitting();
|
||||
}
|
||||
|
||||
private FishingBaitData getCurrentBaitData()
|
||||
private FishingBait getCurrentBaitData()
|
||||
{
|
||||
final L2ItemInstance bait = _player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND);
|
||||
return bait != null ? FishingData.getInstance().getBaitData(bait.getId()) : null;
|
||||
@ -140,18 +142,39 @@ public class Fishing
|
||||
return;
|
||||
}
|
||||
|
||||
final FishingBaitData baitData = getCurrentBaitData();
|
||||
final int minPlayerLevel = baitData == null ? 85 : baitData.getMinPlayerLevel();
|
||||
if (_player.getLevel() < minPlayerLevel)
|
||||
final FishingBait baitData = getCurrentBaitData();
|
||||
if (baitData == null)
|
||||
{
|
||||
if (minPlayerLevel == 85)
|
||||
{
|
||||
_player.sendMessage("Fishing is available to characters Lv. 85 or above.");
|
||||
_player.sendPacket(SystemMessageId.YOU_MUST_PUT_BAIT_ON_YOUR_HOOK_BEFORE_YOU_CAN_FISH);
|
||||
_player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
stopFishing(FishingEndType.ERROR);
|
||||
return;
|
||||
}
|
||||
else // In case of custom fishing level.
|
||||
|
||||
if (Config.PREMIUM_SYSTEM_ENABLED)
|
||||
{
|
||||
if (Config.PREMIUM_ONLY_FISHING && !_player.hasPremiumStatus())
|
||||
{
|
||||
_player.sendMessage("Fishing is available to premium users only.");
|
||||
_player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
stopFishing(FishingEndType.ERROR);
|
||||
return;
|
||||
}
|
||||
|
||||
if (baitData.isPremiumOnly() && !_player.hasPremiumStatus())
|
||||
{
|
||||
_player.sendPacket(SystemMessageId.FAILED_PLEASE_TRY_AGAIN_USING_THE_CORRECT_BAIT);
|
||||
_player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
stopFishing(FishingEndType.ERROR);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final int minPlayerLevel = baitData.getMinPlayerLevel();
|
||||
final int maxPLayerLevel = baitData.getMaxPlayerLevel();
|
||||
if ((_player.getLevel() < minPlayerLevel) && (_player.getLevel() > maxPLayerLevel))
|
||||
{
|
||||
_player.sendMessage("You do not meet the fishing level requirements.");
|
||||
}
|
||||
_player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
stopFishing(FishingEndType.ERROR);
|
||||
return;
|
||||
@ -166,9 +189,10 @@ public class Fishing
|
||||
return;
|
||||
}
|
||||
|
||||
if (baitData == null)
|
||||
final FishingRod rodData = FishingData.getInstance().getRodData(rod.getId());
|
||||
if (rodData == null)
|
||||
{
|
||||
_player.sendPacket(SystemMessageId.YOU_MUST_PUT_BAIT_ON_YOUR_HOOK_BEFORE_YOU_CAN_FISH);
|
||||
_player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_FISHING_POLE_EQUIPPED);
|
||||
_player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
stopFishing(FishingEndType.ERROR);
|
||||
return;
|
||||
@ -220,13 +244,16 @@ public class Fishing
|
||||
_player.rechargeShots(false, false, true);
|
||||
}
|
||||
|
||||
final long fishingTime = Math.max(Rnd.get(baitData.getTimeMin(), baitData.getTimeMax()) - rodData.getReduceFishingTime(), 1000);
|
||||
final long fishingWaitTime = Rnd.get(baitData.getWaitMin(), baitData.getWaitMax());
|
||||
|
||||
_reelInTask = ThreadPool.schedule(() ->
|
||||
{
|
||||
_player.getFishing().reelInWithReward();
|
||||
_startFishingTask = ThreadPool.schedule(() -> _player.getFishing().castLine(), Rnd.get(baitData.getWaitMin(), baitData.getWaitMax()));
|
||||
}, Rnd.get(baitData.getTimeMin(), baitData.getTimeMax()));
|
||||
_startFishingTask = ThreadPool.schedule(() -> _player.getFishing().castLine(), fishingWaitTime);
|
||||
}, fishingTime);
|
||||
_player.stopMove(null);
|
||||
_player.broadcastPacket(new ExFishingStart(_player, -1, baitData.getLevel(), _baitLocation));
|
||||
_player.broadcastPacket(new ExFishingStart(_player, -1, _baitLocation));
|
||||
_player.sendPacket(new ExUserInfoFishing(_player, true, _baitLocation));
|
||||
_player.sendPacket(new PlaySound("SF_P_01"));
|
||||
_player.sendPacket(SystemMessageId.YOU_CAST_YOUR_LINE_AND_START_TO_FISH);
|
||||
@ -236,7 +263,7 @@ public class Fishing
|
||||
{
|
||||
// Fish may or may not eat the hook. If it does - it consumes fishing bait and fishing shot.
|
||||
// Then player may or may not catch the fish. Using fishing shots increases chance to win.
|
||||
final FishingBaitData baitData = getCurrentBaitData();
|
||||
final FishingBait baitData = getCurrentBaitData();
|
||||
if (baitData == null)
|
||||
{
|
||||
reelIn(FishingEndReason.LOSE, false);
|
||||
@ -247,10 +274,10 @@ public class Fishing
|
||||
double chance = baitData.getChance();
|
||||
if (_player.isChargedShot(ShotType.FISH_SOULSHOTS))
|
||||
{
|
||||
chance *= 1.5; // +50 % chance to win
|
||||
chance *= 2;
|
||||
}
|
||||
|
||||
if (Rnd.get(0, 100) <= chance)
|
||||
if (Rnd.get(100) <= chance)
|
||||
{
|
||||
reelIn(FishingEndReason.WIN, true);
|
||||
}
|
||||
@ -283,17 +310,18 @@ public class Fishing
|
||||
|
||||
if ((reason == FishingEndReason.WIN) && (bait != null))
|
||||
{
|
||||
final FishingBaitData baitData = FishingData.getInstance().getBaitData(bait.getId());
|
||||
final int numRewards = baitData.getRewards().size();
|
||||
if (numRewards > 0)
|
||||
final FishingBait baitData = FishingData.getInstance().getBaitData(bait.getId());
|
||||
final FishingCatch fishingCatchData = baitData.getRandom();
|
||||
if (fishingCatchData != null)
|
||||
{
|
||||
final FishingData fishingData = FishingData.getInstance();
|
||||
final int lvlModifier = _player.getLevel() * _player.getLevel();
|
||||
_player.addExpAndSp(Rnd.get(fishingData.getExpRateMin(), fishingData.getExpRateMax()) * lvlModifier, Rnd.get(fishingData.getSpRateMin(), fishingData.getSpRateMax()) * lvlModifier, true);
|
||||
final int fishId = baitData.getRewards().get(Rnd.get(0, numRewards - 1));
|
||||
_player.getInventory().addItem("Fishing Reward", fishId, 1, _player, null);
|
||||
final double lvlModifier = (Math.pow(_player.getLevel(), 2.2) * fishingCatchData.getMultiplier());
|
||||
final long xp = (long) (Rnd.get(fishingData.getExpRateMin(), fishingData.getExpRateMax()) * lvlModifier);
|
||||
final long sp = (long) (Rnd.get(fishingData.getSpRateMin(), fishingData.getSpRateMax()) * lvlModifier);
|
||||
_player.addExpAndSp(xp, sp, true);
|
||||
_player.getInventory().addItem("Fishing Reward", fishingCatchData.getItemId(), 1, _player, null);
|
||||
final SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_EARNED_S1);
|
||||
msg.addItemName(fishId);
|
||||
msg.addItemName(fishingCatchData.getItemId());
|
||||
_player.sendPacket(msg);
|
||||
_player.unchargeShot(ShotType.FISH_SOULSHOTS);
|
||||
_player.rechargeShots(false, false, true);
|
@ -14,36 +14,42 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.l2jmobius.gameserver.model;
|
||||
package com.l2jmobius.gameserver.model.fishing;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jmobius.commons.util.Rnd;
|
||||
|
||||
/**
|
||||
* @author bit
|
||||
*/
|
||||
public class FishingBaitData
|
||||
public class FishingBait
|
||||
{
|
||||
private final int _itemId;
|
||||
private final int _level;
|
||||
private final int _minPlayerLevel;
|
||||
private final byte _level;
|
||||
private final byte _minPlayerLevel;
|
||||
private final byte _maxPlayerLevel;
|
||||
private final double _chance;
|
||||
private final int _timeMin;
|
||||
private final int _timeMax;
|
||||
private final int _waitMin;
|
||||
private final int _waitMax;
|
||||
private final List<Integer> _rewards = new ArrayList<>();
|
||||
private final boolean _isPremiumOnly;
|
||||
private final List<FishingCatch> _rewards = new ArrayList<>();
|
||||
|
||||
public FishingBaitData(int itemId, int level, int minPlayerLevel, double chance, int timeMin, int timeMax, int waitMin, int waitMax)
|
||||
public FishingBait(int itemId, byte level, byte minPlayerLevel, byte maxPlayerLevel, double chance, int timeMin, int timeMax, int waitMin, int waitMax, boolean isPremiumOnly)
|
||||
{
|
||||
_itemId = itemId;
|
||||
_level = level;
|
||||
_minPlayerLevel = minPlayerLevel;
|
||||
_maxPlayerLevel = maxPlayerLevel;
|
||||
_chance = chance;
|
||||
_timeMin = timeMin;
|
||||
_timeMax = timeMax;
|
||||
_waitMin = waitMin;
|
||||
_waitMax = waitMax;
|
||||
_isPremiumOnly = isPremiumOnly;
|
||||
}
|
||||
|
||||
public int getItemId()
|
||||
@ -51,16 +57,21 @@ public class FishingBaitData
|
||||
return _itemId;
|
||||
}
|
||||
|
||||
public int getLevel()
|
||||
public byte getLevel()
|
||||
{
|
||||
return _level;
|
||||
}
|
||||
|
||||
public int getMinPlayerLevel()
|
||||
public byte getMinPlayerLevel()
|
||||
{
|
||||
return _minPlayerLevel;
|
||||
}
|
||||
|
||||
public byte getMaxPlayerLevel()
|
||||
{
|
||||
return _maxPlayerLevel;
|
||||
}
|
||||
|
||||
public double getChance()
|
||||
{
|
||||
return _chance;
|
||||
@ -86,13 +97,32 @@ public class FishingBaitData
|
||||
return _waitMax;
|
||||
}
|
||||
|
||||
public List<Integer> getRewards()
|
||||
public boolean isPremiumOnly()
|
||||
{
|
||||
return _isPremiumOnly;
|
||||
}
|
||||
|
||||
public List<FishingCatch> getRewards()
|
||||
{
|
||||
return _rewards;
|
||||
}
|
||||
|
||||
public void addReward(int itemId)
|
||||
public void addReward(FishingCatch catchData)
|
||||
{
|
||||
_rewards.add(itemId);
|
||||
_rewards.add(catchData);
|
||||
}
|
||||
|
||||
public FishingCatch getRandom()
|
||||
{
|
||||
float random = Rnd.get(100);
|
||||
for (FishingCatch fishingCatchData : _rewards)
|
||||
{
|
||||
if (fishingCatchData.getChance() > random)
|
||||
{
|
||||
return fishingCatchData;
|
||||
}
|
||||
random -= fishingCatchData.getChance();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.l2jmobius.gameserver.model.fishing;
|
||||
|
||||
/**
|
||||
* @author Zarcos
|
||||
*/
|
||||
public class FishingCatch
|
||||
{
|
||||
private final int _itemId;
|
||||
private final float _chance;
|
||||
private final float _multiplier;
|
||||
|
||||
public FishingCatch(int itemId, float chance, float multiplier)
|
||||
{
|
||||
_itemId = itemId;
|
||||
_chance = chance;
|
||||
_multiplier = multiplier;
|
||||
}
|
||||
|
||||
public int getItemId()
|
||||
{
|
||||
return _itemId;
|
||||
}
|
||||
|
||||
public float getChance()
|
||||
{
|
||||
return _chance;
|
||||
}
|
||||
|
||||
public float getMultiplier()
|
||||
{
|
||||
return _multiplier;
|
||||
}
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.l2jmobius.gameserver.model.fishing;
|
||||
|
||||
/**
|
||||
* @author Zarcos
|
||||
*/
|
||||
public class FishingRod
|
||||
{
|
||||
private final int _itemId;
|
||||
private final int _reduceFishingTime;
|
||||
private final float _xpMultiplier;
|
||||
private final float _spMultiplier;
|
||||
|
||||
public FishingRod(int itemId, int reduceFishingTime, float xpMultiplier, float spMultiplier)
|
||||
{
|
||||
_itemId = itemId;
|
||||
_reduceFishingTime = reduceFishingTime;
|
||||
_xpMultiplier = xpMultiplier;
|
||||
_spMultiplier = spMultiplier;
|
||||
}
|
||||
|
||||
public int getItemId()
|
||||
{
|
||||
return _itemId;
|
||||
}
|
||||
|
||||
public int getReduceFishingTime()
|
||||
{
|
||||
return _reduceFishingTime;
|
||||
}
|
||||
|
||||
public float getXpMultiplier()
|
||||
{
|
||||
return _xpMultiplier;
|
||||
}
|
||||
|
||||
public float getSpMultiplier()
|
||||
{
|
||||
return _spMultiplier;
|
||||
}
|
||||
}
|
@ -20,10 +20,10 @@ import java.lang.ref.WeakReference;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.commons.concurrent.ThreadPool;
|
||||
import com.l2jmobius.gameserver.model.Fishing;
|
||||
import com.l2jmobius.gameserver.model.PcCondOverride;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.fishing.Fishing;
|
||||
import com.l2jmobius.gameserver.model.zone.L2ZoneType;
|
||||
import com.l2jmobius.gameserver.model.zone.ZoneId;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.fishing.ExAutoFishAvailable;
|
||||
|
@ -29,20 +29,17 @@ public class ExFishingStart implements IClientOutgoingPacket
|
||||
{
|
||||
private final L2PcInstance _player;
|
||||
private final int _fishType;
|
||||
private final int _baitType;
|
||||
private final ILocational _baitLocation;
|
||||
|
||||
/**
|
||||
* @param player
|
||||
* @param fishType
|
||||
* @param baitType - 0 = newbie, 1 = normal, 2 = night
|
||||
* @param baitLocation
|
||||
*/
|
||||
public ExFishingStart(L2PcInstance player, int fishType, int baitType, ILocational baitLocation)
|
||||
public ExFishingStart(L2PcInstance player, int fishType, ILocational baitLocation)
|
||||
{
|
||||
_player = player;
|
||||
_fishType = fishType;
|
||||
_baitType = baitType;
|
||||
_baitLocation = baitLocation;
|
||||
}
|
||||
|
||||
@ -55,7 +52,7 @@ public class ExFishingStart implements IClientOutgoingPacket
|
||||
packet.writeD(_baitLocation.getX());
|
||||
packet.writeD(_baitLocation.getY());
|
||||
packet.writeD(_baitLocation.getZ());
|
||||
packet.writeC(_baitType);
|
||||
packet.writeC(0x01); // 0 = newbie, 1 = normal, 2 = night
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -45,3 +45,7 @@ EnablePremiumHennaSlotforNonPremium = True
|
||||
# Also premium henna drawn at normal slots.
|
||||
# Retail: False
|
||||
EnableAnyHennaAtPremiumSlot = False
|
||||
|
||||
# Enable Fishing only for premium players.
|
||||
# Retail: True
|
||||
PremiumOnlyFishing = False
|
||||
|
@ -1,35 +1,39 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="./xsd/Fishing.xsd">
|
||||
<baitDistance min="90" max="250" />
|
||||
<experienceRate min="650" max="700" />
|
||||
<skillPointsRate min="40" max="45" />
|
||||
<xpRate min="1" max="1" /> <!-- XP modifiction rate -->
|
||||
<spRate min="1" max="1" /> <!-- SP modifiction rate -->
|
||||
<baits>
|
||||
<bait itemId="45495" level="1" minPlayerLevel="85" chance="64" timeMin="45000" timeMax="45000" waitMin="15000" waitMax="15000"> <!-- Normal Bait -->
|
||||
<catch itemId="45473" /> <!-- Fresh Blue Mackerel -->
|
||||
<catch itemId="45474" /> <!-- Fresh Minnow -->
|
||||
<catch itemId="45475" /> <!-- Fresh Flatcatch -->
|
||||
<catch itemId="45476" /> <!-- Fresh Mandarin catch -->
|
||||
<catch itemId="45477" /> <!-- Fresh Rockcatch -->
|
||||
<catch itemId="45478" /> <!-- Fresh Goldcatch -->
|
||||
<catch itemId="45479" /> <!-- Fresh Salmon -->
|
||||
<catch itemId="45480" /> <!-- Fresh Eel -->
|
||||
<catch itemId="45486" /> <!-- Wooden Treasure Chest -->
|
||||
<bait itemId="45495" minPlayerLevel="85" chance="64" timeMin="105000" waitMin="15000" > <!-- Normal Bait -->
|
||||
<catch itemId="45473" chance="70" multiplier ="1" /> <!-- Fresh Blue Mackerel -->
|
||||
<catch itemId="45474" chance="3" multiplier ="1" /> <!-- Fresh Minnow -->
|
||||
<catch itemId="45475" chance="3" multiplier ="1" /> <!-- Fresh Flatcatch -->
|
||||
<catch itemId="45476" chance="3" multiplier ="1" /> <!-- Fresh Mandarin catch -->
|
||||
<catch itemId="45477" chance="3" multiplier ="1" /> <!-- Fresh Rockcatch -->
|
||||
<catch itemId="45478" chance="3" multiplier ="1" /> <!-- Fresh Goldcatch -->
|
||||
<catch itemId="45479" chance="3" multiplier ="1" /> <!-- Fresh Salmon -->
|
||||
<catch itemId="45480" chance="3" multiplier ="1" /> <!-- Fresh Eel -->
|
||||
<catch itemId="45486" chance="3" multiplier ="1" /> <!-- Wooden Treasure Chest -->
|
||||
</bait>
|
||||
<bait itemId="45496" level="2" minPlayerLevel="85" chance="64" timeMin="45000" timeMax="45000" waitMin="15000" waitMax="15000"> <!-- Special Bait -->
|
||||
<catch itemId="45481" /> <!-- Fresh Marlin -->
|
||||
<catch itemId="45482" /> <!-- Fresh Catcatch -->
|
||||
<catch itemId="45483" /> <!-- Fresh Tuna -->
|
||||
<catch itemId="45484" /> <!-- Fresh Carp -->
|
||||
<catch itemId="45485" /> <!-- Fresh Whale -->
|
||||
<catch itemId="45487" /> <!-- Silver Treasure Chest -->
|
||||
<catch itemId="45488" /> <!-- Golden Treasure Chest -->
|
||||
<bait itemId="45496" minPlayerLevel="99" chance="64" timeMin="105000" waitMin="15000" > <!-- Special Bait -->
|
||||
<catch itemId="45481" chance="14" multiplier ="1" /> <!-- Fresh Marlin -->
|
||||
<catch itemId="45482" chance="14" multiplier ="1" /> <!-- Fresh Catcatch -->
|
||||
<catch itemId="45483" chance="14" multiplier ="1" /> <!-- Fresh Tuna -->
|
||||
<catch itemId="45484" chance="14" multiplier ="1" /> <!-- Fresh Carp -->
|
||||
<catch itemId="45485" chance="14" multiplier ="1" /> <!-- Fresh Whale -->
|
||||
<catch itemId="45487" chance="14" multiplier ="1" /> <!-- Silver Treasure Chest -->
|
||||
<catch itemId="45488" chance="14" multiplier ="1" /> <!-- Golden Treasure Chest -->
|
||||
</bait>
|
||||
<bait itemId="46084" level="3" minPlayerLevel="85" chance="30" timeMin="45000" timeMax="45000" waitMin="15000" waitMax="15000"> <!-- Player Commendation Special Bait -->
|
||||
<catch itemId="46085" /> <!-- Treasure Map Piece - 1 -->
|
||||
<catch itemId="46086" /> <!-- Treasure Map Piece - 2 -->
|
||||
<catch itemId="46087" /> <!-- Treasure Map Piece - 3 -->
|
||||
<catch itemId="46088" /> <!-- Treasure Map Piece - 4 -->
|
||||
<catch itemId="46089" /> <!-- Treasure Map Piece - 5 -->
|
||||
<bait itemId="45496" minPlayerLevel="99" chance="30" timeMin="105000" waitMin="15000" > <!-- Player Commendation Special Bait -->
|
||||
<catch itemId="46085" chance="20" multiplier ="1" /> <!-- Treasure Map Piece - 1 -->
|
||||
<catch itemId="46086" chance="20" multiplier ="1" /> <!-- Treasure Map Piece - 2 -->
|
||||
<catch itemId="46087" chance="20" multiplier ="1" /> <!-- Treasure Map Piece - 3 -->
|
||||
<catch itemId="46088" chance="20" multiplier ="1" /> <!-- Treasure Map Piece - 4 -->
|
||||
<catch itemId="46089" chance="20" multiplier ="1" /> <!-- Treasure Map Piece - 5 -->
|
||||
</bait>
|
||||
</baits>
|
||||
<rods>
|
||||
<rod itemId="45492" /> <!-- Normal Fishing Rod - 30-day -->
|
||||
<rod itemId="45494" /> <!-- Sturdy Fishing Rod -->
|
||||
</rods>
|
||||
</list>
|
@ -9,13 +9,13 @@
|
||||
<xs:attribute type="xs:positiveInteger" name="max" use="required" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="experienceRate">
|
||||
<xs:element name="xpRate">
|
||||
<xs:complexType>
|
||||
<xs:attribute type="xs:double" name="min" use="required" />
|
||||
<xs:attribute type="xs:double" name="max" use="required" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="skillPointsRate">
|
||||
<xs:element name="spRate">
|
||||
<xs:complexType>
|
||||
<xs:attribute type="xs:double" name="min" use="required" />
|
||||
<xs:attribute type="xs:double" name="max" use="required" />
|
||||
@ -30,17 +30,35 @@
|
||||
<xs:element name="catch" maxOccurs="unbounded" minOccurs="1">
|
||||
<xs:complexType>
|
||||
<xs:attribute type="xs:positiveInteger" name="itemId" use="required" />
|
||||
<xs:attribute type="xs:double" name="chance" />
|
||||
<xs:attribute type="xs:double" name="multiplier" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute type="xs:positiveInteger" name="itemId" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="level" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="level" />
|
||||
<xs:attribute type="xs:positiveInteger" name="minPlayerLevel" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="maxPlayerLevel" />
|
||||
<xs:attribute type="xs:double" name="chance" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="timeMin" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="timeMax" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="timeMax" />
|
||||
<xs:attribute type="xs:positiveInteger" name="waitMin" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="waitMax" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="waitMax" />
|
||||
<xs:attribute type="xs:boolean" name="isPremiumOnly" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="rods">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="rod" maxOccurs="unbounded" minOccurs="1">
|
||||
<xs:complexType>
|
||||
<xs:attribute type="xs:positiveInteger" name="itemId" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="reduceFishingTime" />
|
||||
<xs:attribute type="xs:double" name="xpMultiplier" />
|
||||
<xs:attribute type="xs:double" name="spMultiplier" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
|
@ -1137,11 +1137,12 @@ public final class Config
|
||||
public static float PREMIUM_RATE_DROP_AMOUNT;
|
||||
public static float PREMIUM_RATE_SPOIL_CHANCE;
|
||||
public static float PREMIUM_RATE_SPOIL_AMOUNT;
|
||||
public static Map<Integer, Float> PREMIUM_RATE_DROP_CHANCE_BY_ID;
|
||||
public static Map<Integer, Float> PREMIUM_RATE_DROP_AMOUNT_BY_ID;
|
||||
public static boolean PREMIUM_HENNA_SLOT_ENABLED;
|
||||
public static boolean PREMIUM_HENNA_SLOT_ENABLED_FOR_ALL;
|
||||
public static boolean PREMIUM_HENNA_SLOT_ALL_DYES;
|
||||
public static Map<Integer, Float> PREMIUM_RATE_DROP_CHANCE_BY_ID;
|
||||
public static Map<Integer, Float> PREMIUM_RATE_DROP_AMOUNT_BY_ID;
|
||||
public static boolean PREMIUM_ONLY_FISHING;
|
||||
public static boolean PC_CAFE_ENABLED;
|
||||
public static boolean PC_CAFE_ONLY_PREMIUM;
|
||||
public static int PC_CAFE_MAX_POINTS;
|
||||
@ -2628,9 +2629,6 @@ public final class Config
|
||||
PREMIUM_RATE_DROP_AMOUNT = PremiumSystem.getFloat("PremiumRateDropAmount", 1);
|
||||
PREMIUM_RATE_SPOIL_CHANCE = PremiumSystem.getFloat("PremiumRateSpoilChance", 2);
|
||||
PREMIUM_RATE_SPOIL_AMOUNT = PremiumSystem.getFloat("PremiumRateSpoilAmount", 1);
|
||||
PREMIUM_HENNA_SLOT_ENABLED = PremiumSystem.getBoolean("EnablePremiumHennaSlot", true);
|
||||
PREMIUM_HENNA_SLOT_ENABLED_FOR_ALL = PremiumSystem.getBoolean("EnablePremiumHennaSlotforNonPremium", true);
|
||||
PREMIUM_HENNA_SLOT_ALL_DYES = PremiumSystem.getBoolean("EnableAnyHennaAtPremiumSlot", false);
|
||||
final String[] premiumDropChanceMultiplier = PremiumSystem.getString("PremiumRateDropChanceByItemId", "").split(";");
|
||||
PREMIUM_RATE_DROP_CHANCE_BY_ID = new HashMap<>(premiumDropChanceMultiplier.length);
|
||||
if (!premiumDropChanceMultiplier[0].isEmpty())
|
||||
@ -2685,6 +2683,10 @@ public final class Config
|
||||
}
|
||||
}
|
||||
}
|
||||
PREMIUM_HENNA_SLOT_ENABLED = PremiumSystem.getBoolean("EnablePremiumHennaSlot", true);
|
||||
PREMIUM_HENNA_SLOT_ENABLED_FOR_ALL = PremiumSystem.getBoolean("EnablePremiumHennaSlotforNonPremium", true);
|
||||
PREMIUM_HENNA_SLOT_ALL_DYES = PremiumSystem.getBoolean("EnableAnyHennaAtPremiumSlot", false);
|
||||
PREMIUM_ONLY_FISHING = PremiumSystem.getBoolean("PremiumOnlyFishing", true);
|
||||
|
||||
// Load PrivateStoreRange config file (if exists)
|
||||
final PropertiesParser PrivateStoreRange = new PropertiesParser(CUSTOM_PRIVATE_STORE_RANGE_CONFIG_FILE);
|
||||
|
@ -25,8 +25,12 @@ import org.w3c.dom.Document;
|
||||
import org.w3c.dom.NamedNodeMap;
|
||||
import org.w3c.dom.Node;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.commons.util.IGameXmlReader;
|
||||
import com.l2jmobius.gameserver.model.FishingBaitData;
|
||||
import com.l2jmobius.gameserver.datatables.ItemTable;
|
||||
import com.l2jmobius.gameserver.model.fishing.FishingBait;
|
||||
import com.l2jmobius.gameserver.model.fishing.FishingCatch;
|
||||
import com.l2jmobius.gameserver.model.fishing.FishingRod;
|
||||
|
||||
/**
|
||||
* This class holds the Fishing information.
|
||||
@ -35,7 +39,8 @@ import com.l2jmobius.gameserver.model.FishingBaitData;
|
||||
public final class FishingData implements IGameXmlReader
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger(FishingData.class.getName());
|
||||
private final Map<Integer, FishingBaitData> _baitData = new HashMap<>();
|
||||
private final Map<Integer, FishingBait> _baitData = new HashMap<>();
|
||||
private final Map<Integer, FishingRod> _rodData = new HashMap<>();
|
||||
private int _baitDistanceMin;
|
||||
private int _baitDistanceMax;
|
||||
private double _expRateMin;
|
||||
@ -56,7 +61,7 @@ public final class FishingData implements IGameXmlReader
|
||||
{
|
||||
_baitData.clear();
|
||||
parseDatapackFile("data/Fishing.xml");
|
||||
LOGGER.info(getClass().getSimpleName() + ": Loaded Fishing Data.");
|
||||
LOGGER.info(getClass().getSimpleName() + ": Loaded " + _baitData.size() + " bait and " + _rodData.size() + " rod data.");
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -76,13 +81,13 @@ public final class FishingData implements IGameXmlReader
|
||||
_baitDistanceMax = parseInteger(listItem.getAttributes(), "max");
|
||||
break;
|
||||
}
|
||||
case "experienceRate":
|
||||
case "xpRate":
|
||||
{
|
||||
_expRateMin = parseDouble(listItem.getAttributes(), "min");
|
||||
_expRateMax = parseDouble(listItem.getAttributes(), "max");
|
||||
break;
|
||||
}
|
||||
case "skillPointsRate":
|
||||
case "spRate":
|
||||
{
|
||||
_spRateMin = parseDouble(listItem.getAttributes(), "min");
|
||||
_spRateMax = parseDouble(listItem.getAttributes(), "max");
|
||||
@ -96,20 +101,39 @@ public final class FishingData implements IGameXmlReader
|
||||
{
|
||||
final NamedNodeMap attrs = bait.getAttributes();
|
||||
final int itemId = parseInteger(attrs, "itemId");
|
||||
final int level = parseInteger(attrs, "level");
|
||||
final int minPlayerLevel = parseInteger(attrs, "minPlayerLevel");
|
||||
final byte level = parseByte(attrs, "level", (byte) 1);
|
||||
final byte minPlayerLevel = parseByte(attrs, "minPlayerLevel");
|
||||
final byte maxPlayerLevel = parseByte(attrs, "minPlayerLevel", Config.PLAYER_MAXIMUM_LEVEL);
|
||||
final double chance = parseDouble(attrs, "chance");
|
||||
final int timeMin = parseInteger(attrs, "timeMin");
|
||||
final int timeMax = parseInteger(attrs, "timeMax");
|
||||
final int timeMax = parseInteger(attrs, "timeMax", timeMin);
|
||||
final int waitMin = parseInteger(attrs, "waitMin");
|
||||
final int waitMax = parseInteger(attrs, "waitMax");
|
||||
final FishingBaitData baitData = new FishingBaitData(itemId, level, minPlayerLevel, chance, timeMin, timeMax, waitMin, waitMax);
|
||||
final int waitMax = parseInteger(attrs, "waitMax", waitMin);
|
||||
final boolean isPremiumOnly = parseBoolean(attrs, "isPremiumOnly", false);
|
||||
|
||||
if (ItemTable.getInstance().getTemplate(itemId) == null)
|
||||
{
|
||||
LOGGER.info(getClass().getSimpleName() + ": Could not find item with id " + itemId);
|
||||
continue;
|
||||
}
|
||||
|
||||
final FishingBait baitData = new FishingBait(itemId, level, minPlayerLevel, maxPlayerLevel, chance, timeMin, timeMax, waitMin, waitMax, isPremiumOnly);
|
||||
for (Node c = bait.getFirstChild(); c != null; c = c.getNextSibling())
|
||||
{
|
||||
if ("catch".equalsIgnoreCase(c.getNodeName()))
|
||||
{
|
||||
baitData.addReward(parseInteger(c.getAttributes(), "itemId"));
|
||||
final NamedNodeMap cAttrs = c.getAttributes();
|
||||
final int cId = parseInteger(cAttrs, "itemId");
|
||||
final float cChance = parseFloat(cAttrs, "chance");
|
||||
final float cMultiplier = parseFloat(cAttrs, "multiplier", 1f);
|
||||
|
||||
if (ItemTable.getInstance().getTemplate(cId) == null)
|
||||
{
|
||||
LOGGER.info(getClass().getSimpleName() + ": Could not find item with id " + itemId);
|
||||
continue;
|
||||
}
|
||||
|
||||
baitData.addReward(new FishingCatch(cId, cChance, cMultiplier));
|
||||
}
|
||||
}
|
||||
_baitData.put(baitData.getItemId(), baitData);
|
||||
@ -117,22 +141,44 @@ public final class FishingData implements IGameXmlReader
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "rods":
|
||||
{
|
||||
for (Node rod = listItem.getFirstChild(); rod != null; rod = rod.getNextSibling())
|
||||
{
|
||||
if ("rod".equalsIgnoreCase(rod.getNodeName()))
|
||||
{
|
||||
final NamedNodeMap attrs = rod.getAttributes();
|
||||
final int itemId = parseInteger(attrs, "itemId");
|
||||
final int reduceFishingTime = parseInteger(attrs, "reduceFishingTime", 0);
|
||||
final float xpMultiplier = parseFloat(attrs, "xpMultiplier", 1f);
|
||||
final float spMultiplier = parseFloat(attrs, "spMultiplier", 1f);
|
||||
|
||||
if (ItemTable.getInstance().getTemplate(itemId) == null)
|
||||
{
|
||||
LOGGER.info(getClass().getSimpleName() + ": Could not find item with id " + itemId);
|
||||
continue;
|
||||
}
|
||||
|
||||
_rodData.put(itemId, new FishingRod(itemId, reduceFishingTime, xpMultiplier, spMultiplier));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the fishing rod.
|
||||
* @param baitItemId the item id
|
||||
* @return A list of reward item ids
|
||||
*/
|
||||
public FishingBaitData getBaitData(int baitItemId)
|
||||
public FishingBait getBaitData(int baitItemId)
|
||||
{
|
||||
return _baitData.get(baitItemId);
|
||||
}
|
||||
|
||||
public FishingRod getRodData(int rodItemId)
|
||||
{
|
||||
return _rodData.get(rodItemId);
|
||||
}
|
||||
|
||||
public int getBaitDistanceMin()
|
||||
{
|
||||
return _baitDistanceMin;
|
||||
|
@ -121,7 +121,6 @@ import com.l2jmobius.gameserver.model.ArenaParticipantsHolder;
|
||||
import com.l2jmobius.gameserver.model.BlockList;
|
||||
import com.l2jmobius.gameserver.model.ClanPrivilege;
|
||||
import com.l2jmobius.gameserver.model.ClanWar;
|
||||
import com.l2jmobius.gameserver.model.Fishing;
|
||||
import com.l2jmobius.gameserver.model.L2AccessLevel;
|
||||
import com.l2jmobius.gameserver.model.L2Clan;
|
||||
import com.l2jmobius.gameserver.model.L2ClanMember;
|
||||
@ -209,6 +208,7 @@ import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerPvPCh
|
||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerPvPKill;
|
||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerReputationChanged;
|
||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerSubChange;
|
||||
import com.l2jmobius.gameserver.model.fishing.Fishing;
|
||||
import com.l2jmobius.gameserver.model.holders.AttendanceInfoHolder;
|
||||
import com.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import com.l2jmobius.gameserver.model.holders.MovieHolder;
|
||||
|
@ -14,7 +14,7 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.l2jmobius.gameserver.model;
|
||||
package com.l2jmobius.gameserver.model.fishing;
|
||||
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.logging.Level;
|
||||
@ -27,6 +27,8 @@ import com.l2jmobius.gameserver.data.xml.impl.FishingData;
|
||||
import com.l2jmobius.gameserver.enums.ShotType;
|
||||
import com.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||
import com.l2jmobius.gameserver.instancemanager.ZoneManager;
|
||||
import com.l2jmobius.gameserver.model.Location;
|
||||
import com.l2jmobius.gameserver.model.PcCondOverride;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.events.EventDispatcher;
|
||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerFishing;
|
||||
@ -87,7 +89,7 @@ public class Fishing
|
||||
return !_player.isDead() && !_player.isAlikeDead() && !_player.hasBlockActions() && !_player.isSitting();
|
||||
}
|
||||
|
||||
private FishingBaitData getCurrentBaitData()
|
||||
private FishingBait getCurrentBaitData()
|
||||
{
|
||||
final L2ItemInstance bait = _player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND);
|
||||
return bait != null ? FishingData.getInstance().getBaitData(bait.getId()) : null;
|
||||
@ -140,18 +142,39 @@ public class Fishing
|
||||
return;
|
||||
}
|
||||
|
||||
final FishingBaitData baitData = getCurrentBaitData();
|
||||
final int minPlayerLevel = baitData == null ? 85 : baitData.getMinPlayerLevel();
|
||||
if (_player.getLevel() < minPlayerLevel)
|
||||
final FishingBait baitData = getCurrentBaitData();
|
||||
if (baitData == null)
|
||||
{
|
||||
if (minPlayerLevel == 85)
|
||||
{
|
||||
_player.sendPacket(SystemMessageId.FISHING_IS_AVAILABLE_TO_CHARACTERS_LV_85_OR_ABOVE);
|
||||
_player.sendPacket(SystemMessageId.YOU_MUST_PUT_BAIT_ON_YOUR_HOOK_BEFORE_YOU_CAN_FISH);
|
||||
_player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
stopFishing(FishingEndType.ERROR);
|
||||
return;
|
||||
}
|
||||
else // In case of custom fishing level.
|
||||
|
||||
if (Config.PREMIUM_SYSTEM_ENABLED)
|
||||
{
|
||||
_player.sendPacket(SystemMessageId.YOU_DO_NOT_MEET_THE_FISHING_LEVEL_REQUIREMENTS);
|
||||
if (Config.PREMIUM_ONLY_FISHING && !_player.hasPremiumStatus())
|
||||
{
|
||||
_player.sendMessage("Fishing is available to premium users only.");
|
||||
_player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
stopFishing(FishingEndType.ERROR);
|
||||
return;
|
||||
}
|
||||
|
||||
if (baitData.isPremiumOnly() && !_player.hasPremiumStatus())
|
||||
{
|
||||
_player.sendPacket(SystemMessageId.FAILED_PLEASE_TRY_AGAIN_USING_THE_CORRECT_BAIT);
|
||||
_player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
stopFishing(FishingEndType.ERROR);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final int minPlayerLevel = baitData.getMinPlayerLevel();
|
||||
final int maxPLayerLevel = baitData.getMaxPlayerLevel();
|
||||
if ((_player.getLevel() < minPlayerLevel) && (_player.getLevel() > maxPLayerLevel))
|
||||
{
|
||||
_player.sendMessage("You do not meet the fishing level requirements.");
|
||||
_player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
stopFishing(FishingEndType.ERROR);
|
||||
return;
|
||||
@ -166,9 +189,10 @@ public class Fishing
|
||||
return;
|
||||
}
|
||||
|
||||
if (baitData == null)
|
||||
final FishingRod rodData = FishingData.getInstance().getRodData(rod.getId());
|
||||
if (rodData == null)
|
||||
{
|
||||
_player.sendPacket(SystemMessageId.YOU_MUST_PUT_BAIT_ON_YOUR_HOOK_BEFORE_YOU_CAN_FISH);
|
||||
_player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_FISHING_POLE_EQUIPPED);
|
||||
_player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
stopFishing(FishingEndType.ERROR);
|
||||
return;
|
||||
@ -220,13 +244,16 @@ public class Fishing
|
||||
_player.rechargeShots(false, false, true);
|
||||
}
|
||||
|
||||
final long fishingTime = Math.max(Rnd.get(baitData.getTimeMin(), baitData.getTimeMax()) - rodData.getReduceFishingTime(), 1000);
|
||||
final long fishingWaitTime = Rnd.get(baitData.getWaitMin(), baitData.getWaitMax());
|
||||
|
||||
_reelInTask = ThreadPool.schedule(() ->
|
||||
{
|
||||
_player.getFishing().reelInWithReward();
|
||||
_startFishingTask = ThreadPool.schedule(() -> _player.getFishing().castLine(), Rnd.get(baitData.getWaitMin(), baitData.getWaitMax()));
|
||||
}, Rnd.get(baitData.getTimeMin(), baitData.getTimeMax()));
|
||||
_startFishingTask = ThreadPool.schedule(() -> _player.getFishing().castLine(), fishingWaitTime);
|
||||
}, fishingTime);
|
||||
_player.stopMove(null);
|
||||
_player.broadcastPacket(new ExFishingStart(_player, -1, baitData.getLevel(), _baitLocation));
|
||||
_player.broadcastPacket(new ExFishingStart(_player, -1, _baitLocation));
|
||||
_player.sendPacket(new ExUserInfoFishing(_player, true, _baitLocation));
|
||||
_player.sendPacket(new PlaySound("SF_P_01"));
|
||||
_player.sendPacket(SystemMessageId.YOU_CAST_YOUR_LINE_AND_START_TO_FISH);
|
||||
@ -236,7 +263,7 @@ public class Fishing
|
||||
{
|
||||
// Fish may or may not eat the hook. If it does - it consumes fishing bait and fishing shot.
|
||||
// Then player may or may not catch the fish. Using fishing shots increases chance to win.
|
||||
final FishingBaitData baitData = getCurrentBaitData();
|
||||
final FishingBait baitData = getCurrentBaitData();
|
||||
if (baitData == null)
|
||||
{
|
||||
reelIn(FishingEndReason.LOSE, false);
|
||||
@ -247,10 +274,10 @@ public class Fishing
|
||||
double chance = baitData.getChance();
|
||||
if (_player.isChargedShot(ShotType.FISH_SOULSHOTS))
|
||||
{
|
||||
chance *= 1.5; // +50 % chance to win
|
||||
chance *= 2;
|
||||
}
|
||||
|
||||
if (Rnd.get(0, 100) <= chance)
|
||||
if (Rnd.get(100) <= chance)
|
||||
{
|
||||
reelIn(FishingEndReason.WIN, true);
|
||||
}
|
||||
@ -283,17 +310,18 @@ public class Fishing
|
||||
|
||||
if ((reason == FishingEndReason.WIN) && (bait != null))
|
||||
{
|
||||
final FishingBaitData baitData = FishingData.getInstance().getBaitData(bait.getId());
|
||||
final int numRewards = baitData.getRewards().size();
|
||||
if (numRewards > 0)
|
||||
final FishingBait baitData = FishingData.getInstance().getBaitData(bait.getId());
|
||||
final FishingCatch fishingCatchData = baitData.getRandom();
|
||||
if (fishingCatchData != null)
|
||||
{
|
||||
final FishingData fishingData = FishingData.getInstance();
|
||||
final int lvlModifier = _player.getLevel() * _player.getLevel();
|
||||
_player.addExpAndSp(Rnd.get(fishingData.getExpRateMin(), fishingData.getExpRateMax()) * lvlModifier, Rnd.get(fishingData.getSpRateMin(), fishingData.getSpRateMax()) * lvlModifier, true);
|
||||
final int fishId = baitData.getRewards().get(Rnd.get(0, numRewards - 1));
|
||||
_player.getInventory().addItem("Fishing Reward", fishId, 1, _player, null);
|
||||
final double lvlModifier = (Math.pow(_player.getLevel(), 2.2) * fishingCatchData.getMultiplier());
|
||||
final long xp = (long) (Rnd.get(fishingData.getExpRateMin(), fishingData.getExpRateMax()) * lvlModifier);
|
||||
final long sp = (long) (Rnd.get(fishingData.getSpRateMin(), fishingData.getSpRateMax()) * lvlModifier);
|
||||
_player.addExpAndSp(xp, sp, true);
|
||||
_player.getInventory().addItem("Fishing Reward", fishingCatchData.getItemId(), 1, _player, null);
|
||||
final SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_EARNED_S1);
|
||||
msg.addItemName(fishId);
|
||||
msg.addItemName(fishingCatchData.getItemId());
|
||||
_player.sendPacket(msg);
|
||||
_player.unchargeShot(ShotType.FISH_SOULSHOTS);
|
||||
_player.rechargeShots(false, false, true);
|
@ -14,36 +14,42 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.l2jmobius.gameserver.model;
|
||||
package com.l2jmobius.gameserver.model.fishing;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jmobius.commons.util.Rnd;
|
||||
|
||||
/**
|
||||
* @author bit
|
||||
*/
|
||||
public class FishingBaitData
|
||||
public class FishingBait
|
||||
{
|
||||
private final int _itemId;
|
||||
private final int _level;
|
||||
private final int _minPlayerLevel;
|
||||
private final byte _level;
|
||||
private final byte _minPlayerLevel;
|
||||
private final byte _maxPlayerLevel;
|
||||
private final double _chance;
|
||||
private final int _timeMin;
|
||||
private final int _timeMax;
|
||||
private final int _waitMin;
|
||||
private final int _waitMax;
|
||||
private final List<Integer> _rewards = new ArrayList<>();
|
||||
private final boolean _isPremiumOnly;
|
||||
private final List<FishingCatch> _rewards = new ArrayList<>();
|
||||
|
||||
public FishingBaitData(int itemId, int level, int minPlayerLevel, double chance, int timeMin, int timeMax, int waitMin, int waitMax)
|
||||
public FishingBait(int itemId, byte level, byte minPlayerLevel, byte maxPlayerLevel, double chance, int timeMin, int timeMax, int waitMin, int waitMax, boolean isPremiumOnly)
|
||||
{
|
||||
_itemId = itemId;
|
||||
_level = level;
|
||||
_minPlayerLevel = minPlayerLevel;
|
||||
_maxPlayerLevel = maxPlayerLevel;
|
||||
_chance = chance;
|
||||
_timeMin = timeMin;
|
||||
_timeMax = timeMax;
|
||||
_waitMin = waitMin;
|
||||
_waitMax = waitMax;
|
||||
_isPremiumOnly = isPremiumOnly;
|
||||
}
|
||||
|
||||
public int getItemId()
|
||||
@ -51,16 +57,21 @@ public class FishingBaitData
|
||||
return _itemId;
|
||||
}
|
||||
|
||||
public int getLevel()
|
||||
public byte getLevel()
|
||||
{
|
||||
return _level;
|
||||
}
|
||||
|
||||
public int getMinPlayerLevel()
|
||||
public byte getMinPlayerLevel()
|
||||
{
|
||||
return _minPlayerLevel;
|
||||
}
|
||||
|
||||
public byte getMaxPlayerLevel()
|
||||
{
|
||||
return _maxPlayerLevel;
|
||||
}
|
||||
|
||||
public double getChance()
|
||||
{
|
||||
return _chance;
|
||||
@ -86,13 +97,32 @@ public class FishingBaitData
|
||||
return _waitMax;
|
||||
}
|
||||
|
||||
public List<Integer> getRewards()
|
||||
public boolean isPremiumOnly()
|
||||
{
|
||||
return _isPremiumOnly;
|
||||
}
|
||||
|
||||
public List<FishingCatch> getRewards()
|
||||
{
|
||||
return _rewards;
|
||||
}
|
||||
|
||||
public void addReward(int itemId)
|
||||
public void addReward(FishingCatch catchData)
|
||||
{
|
||||
_rewards.add(itemId);
|
||||
_rewards.add(catchData);
|
||||
}
|
||||
|
||||
public FishingCatch getRandom()
|
||||
{
|
||||
float random = Rnd.get(100);
|
||||
for (FishingCatch fishingCatchData : _rewards)
|
||||
{
|
||||
if (fishingCatchData.getChance() > random)
|
||||
{
|
||||
return fishingCatchData;
|
||||
}
|
||||
random -= fishingCatchData.getChance();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.l2jmobius.gameserver.model.fishing;
|
||||
|
||||
/**
|
||||
* @author Zarcos
|
||||
*/
|
||||
public class FishingCatch
|
||||
{
|
||||
private final int _itemId;
|
||||
private final float _chance;
|
||||
private final float _multiplier;
|
||||
|
||||
public FishingCatch(int itemId, float chance, float multiplier)
|
||||
{
|
||||
_itemId = itemId;
|
||||
_chance = chance;
|
||||
_multiplier = multiplier;
|
||||
}
|
||||
|
||||
public int getItemId()
|
||||
{
|
||||
return _itemId;
|
||||
}
|
||||
|
||||
public float getChance()
|
||||
{
|
||||
return _chance;
|
||||
}
|
||||
|
||||
public float getMultiplier()
|
||||
{
|
||||
return _multiplier;
|
||||
}
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.l2jmobius.gameserver.model.fishing;
|
||||
|
||||
/**
|
||||
* @author Zarcos
|
||||
*/
|
||||
public class FishingRod
|
||||
{
|
||||
private final int _itemId;
|
||||
private final int _reduceFishingTime;
|
||||
private final float _xpMultiplier;
|
||||
private final float _spMultiplier;
|
||||
|
||||
public FishingRod(int itemId, int reduceFishingTime, float xpMultiplier, float spMultiplier)
|
||||
{
|
||||
_itemId = itemId;
|
||||
_reduceFishingTime = reduceFishingTime;
|
||||
_xpMultiplier = xpMultiplier;
|
||||
_spMultiplier = spMultiplier;
|
||||
}
|
||||
|
||||
public int getItemId()
|
||||
{
|
||||
return _itemId;
|
||||
}
|
||||
|
||||
public int getReduceFishingTime()
|
||||
{
|
||||
return _reduceFishingTime;
|
||||
}
|
||||
|
||||
public float getXpMultiplier()
|
||||
{
|
||||
return _xpMultiplier;
|
||||
}
|
||||
|
||||
public float getSpMultiplier()
|
||||
{
|
||||
return _spMultiplier;
|
||||
}
|
||||
}
|
@ -20,10 +20,10 @@ import java.lang.ref.WeakReference;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.commons.concurrent.ThreadPool;
|
||||
import com.l2jmobius.gameserver.model.Fishing;
|
||||
import com.l2jmobius.gameserver.model.PcCondOverride;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.fishing.Fishing;
|
||||
import com.l2jmobius.gameserver.model.zone.L2ZoneType;
|
||||
import com.l2jmobius.gameserver.model.zone.ZoneId;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.fishing.ExAutoFishAvailable;
|
||||
|
@ -29,20 +29,17 @@ public class ExFishingStart implements IClientOutgoingPacket
|
||||
{
|
||||
private final L2PcInstance _player;
|
||||
private final int _fishType;
|
||||
private final int _baitType;
|
||||
private final ILocational _baitLocation;
|
||||
|
||||
/**
|
||||
* @param player
|
||||
* @param fishType
|
||||
* @param baitType - 0 = newbie, 1 = normal, 2 = night
|
||||
* @param baitLocation
|
||||
*/
|
||||
public ExFishingStart(L2PcInstance player, int fishType, int baitType, ILocational baitLocation)
|
||||
public ExFishingStart(L2PcInstance player, int fishType, ILocational baitLocation)
|
||||
{
|
||||
_player = player;
|
||||
_fishType = fishType;
|
||||
_baitType = baitType;
|
||||
_baitLocation = baitLocation;
|
||||
}
|
||||
|
||||
@ -55,7 +52,7 @@ public class ExFishingStart implements IClientOutgoingPacket
|
||||
packet.writeD(_baitLocation.getX());
|
||||
packet.writeD(_baitLocation.getY());
|
||||
packet.writeD(_baitLocation.getZ());
|
||||
packet.writeC(_baitType);
|
||||
packet.writeC(0x01); // 0 = newbie, 1 = normal, 2 = night
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -45,3 +45,7 @@ EnablePremiumHennaSlotforNonPremium = True
|
||||
# Also premium henna drawn at normal slots.
|
||||
# Retail: False
|
||||
EnableAnyHennaAtPremiumSlot = False
|
||||
|
||||
# Enable Fishing only for premium players.
|
||||
# Retail: True
|
||||
PremiumOnlyFishing = False
|
||||
|
67
L2J_Mobius_3.0_Helios/dist/game/data/Fishing.xml
vendored
67
L2J_Mobius_3.0_Helios/dist/game/data/Fishing.xml
vendored
@ -1,44 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="./xsd/Fishing.xsd">
|
||||
<baitDistance min="90" max="250" />
|
||||
<experienceRate min="650" max="700" />
|
||||
<skillPointsRate min="40" max="45" />
|
||||
<xpRate min="1" max="1" /> <!-- XP modifiction rate -->
|
||||
<spRate min="1" max="1" /> <!-- SP modifiction rate -->
|
||||
<baits>
|
||||
<bait itemId="45495" level="1" minPlayerLevel="85" chance="64" timeMin="45000" timeMax="45000" waitMin="15000" waitMax="15000"> <!-- Normal Bait -->
|
||||
<catch itemId="45473" /> <!-- Fresh Blue Mackerel -->
|
||||
<catch itemId="45474" /> <!-- Fresh Minnow -->
|
||||
<catch itemId="45475" /> <!-- Fresh Flatcatch -->
|
||||
<catch itemId="45476" /> <!-- Fresh Mandarin catch -->
|
||||
<catch itemId="45477" /> <!-- Fresh Rockcatch -->
|
||||
<catch itemId="45478" /> <!-- Fresh Goldcatch -->
|
||||
<catch itemId="45479" /> <!-- Fresh Salmon -->
|
||||
<catch itemId="45480" /> <!-- Fresh Eel -->
|
||||
<catch itemId="45486" /> <!-- Wooden Treasure Chest -->
|
||||
<bait itemId="47547" minPlayerLevel="85" chance="40" timeMin="105000" waitMin="15000" > <!-- Bait -->
|
||||
<catch itemId="47550" chance="70" multiplier="1" /> <!-- Ugly Fish -->
|
||||
<catch itemId="47551" chance="25" multiplier="1" /> <!-- Nimble Fish -->
|
||||
<catch itemId="47552" chance="3" multiplier="1" /> <!-- Powerful Fish -->
|
||||
<catch itemId="47553" chance="2" multiplier="1" /> <!-- Blueish Box -->
|
||||
</bait>
|
||||
<bait itemId="45496" level="2" minPlayerLevel="85" chance="64" timeMin="45000" timeMax="45000" waitMin="15000" waitMax="15000"> <!-- Special Bait -->
|
||||
<catch itemId="45481" /> <!-- Fresh Marlin -->
|
||||
<catch itemId="45482" /> <!-- Fresh Catcatch -->
|
||||
<catch itemId="45483" /> <!-- Fresh Tuna -->
|
||||
<catch itemId="45484" /> <!-- Fresh Carp -->
|
||||
<catch itemId="45485" /> <!-- Fresh Whale -->
|
||||
<catch itemId="45487" /> <!-- Silver Treasure Chest -->
|
||||
<catch itemId="45488" /> <!-- Golden Treasure Chest -->
|
||||
<bait itemId="47548" minPlayerLevel="99" chance="40" timeMin="105000" waitMin="15000" > <!-- Bait(R99) -->
|
||||
<catch itemId="47550" chance="70" multiplier="1476" /> <!-- Ugly Fish -->
|
||||
<catch itemId="47551" chance="25" multiplier="1804" /> <!-- Nimble Fish -->
|
||||
<catch itemId="47552" chance="3" multiplier="1968" /> <!-- Powerful Fish -->
|
||||
<catch itemId="47554" chance="2" multiplier="1" /> <!-- Reddish Box -->
|
||||
</bait>
|
||||
<bait itemId="46084" level="3" minPlayerLevel="85" chance="30" timeMin="45000" timeMax="45000" waitMin="15000" waitMax="15000"> <!-- Player Commendation Special Bait -->
|
||||
<catch itemId="46085" /> <!-- Treasure Map Piece - 1 -->
|
||||
<catch itemId="46086" /> <!-- Treasure Map Piece - 2 -->
|
||||
<catch itemId="46087" /> <!-- Treasure Map Piece - 3 -->
|
||||
<catch itemId="46088" /> <!-- Treasure Map Piece - 4 -->
|
||||
<catch itemId="46089" /> <!-- Treasure Map Piece - 5 -->
|
||||
</bait>
|
||||
<bait itemId="46737" level="1" minPlayerLevel="85" chance="30" timeMin="10000" timeMax="10000" waitMin="15000" waitMax="15000"> <!-- Practice Bait -->
|
||||
<catch itemId="46736" /> <!-- Practice Fish -->
|
||||
</bait>
|
||||
<bait itemId="47547" level="1" minPlayerLevel="85" chance="10" timeMin="105000" timeMax="105000" waitMin="15000" waitMax="15000"> <!-- Bait -->
|
||||
<catch itemId="47553" /> <!-- Blueish Box -->
|
||||
</bait>
|
||||
<bait itemId="47548" level="2" minPlayerLevel="99" chance="10" timeMin="105000" timeMax="105000" waitMin="15000" waitMax="15000"> <!-- Bait -->
|
||||
<catch itemId="47554" /> <!-- Redish Box -->
|
||||
<bait itemId="47549" minPlayerLevel="85" chance="40" timeMin="105000" waitMin="15000" > <!-- PA Bait -->
|
||||
<catch itemId="47550" chance="70" multiplier="1" /> <!-- Ugly Fish -->
|
||||
<catch itemId="47551" chance="25" multiplier="1" /> <!-- Nimble Fish -->
|
||||
<catch itemId="47552" chance="3" multiplier="1" /> <!-- Powerful Fish -->
|
||||
<catch itemId="47554" chance="2" multiplier="1" /> <!-- Purplish Box -->
|
||||
</bait>
|
||||
</baits>
|
||||
<rods>
|
||||
<rod itemId="45492" /> <!-- Normal Fishing Rod - 30-day -->
|
||||
<rod itemId="45494" /> <!-- Sturdy Fishing Rod -->
|
||||
<rod itemId="46738" /> <!-- Practice Fishing Rod -->
|
||||
<rod itemId="46740" /> <!-- Reward Fishing Rod - 7-day -->
|
||||
<rod itemId="27632" reduceFishingTime="100" xpMultiplier="1.5" spMultiplier="1.5" /> <!-- Fancy Fishing Rod -->
|
||||
<rod itemId="27633" reduceFishingTime="100" xpMultiplier="1.5" spMultiplier="1.5" /> <!-- Fancy Fishing Rod - 1-day -->
|
||||
<rod itemId="27635" reduceFishingTime="100" xpMultiplier="1.5" spMultiplier="1.5" /> <!-- Fancy Fishing Rod - 7-day -->
|
||||
<rod itemId="27637" reduceFishingTime="100" xpMultiplier="1.5" spMultiplier="1.5" /> <!-- Fancy Fishing Rod - 30-day -->
|
||||
<rod itemId="47557" reduceFishingTime="10" /> <!-- Master Fishing Rod - Stage 1 -->
|
||||
<rod itemId="47558" reduceFishingTime="15" /> <!-- Master Fishing Rod - Stage 2 -->
|
||||
<rod itemId="47559" reduceFishingTime="20" /> <!-- Master Fishing Rod - Stage 3 -->
|
||||
<rod itemId="47560" reduceFishingTime="25" /> <!-- Master Fishing Rod - Stage 4 -->
|
||||
<rod itemId="47561" reduceFishingTime="30" /> <!-- Master Fishing Rod - Stage 5 -->
|
||||
</rods>
|
||||
</list>
|
7
L2J_Mobius_3.0_Helios/dist/game/data/html/default/34156-1.htm
vendored
Normal file
7
L2J_Mobius_3.0_Helios/dist/game/data/html/default/34156-1.htm
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
<html><body>Fisher Peeves:<br>
|
||||
Heine Exclusive Bait is really great! It must be a gift from the fishing gods!<br>
|
||||
There are some items that can only be caught with Heine Exclusive Bait. Isn't that amazing?<br>
|
||||
No doubt the fishing gods heard about this place that gets filled with fishers and decided to grace us with this amazing bait.<br>
|
||||
You should try it out!<br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</button>
|
||||
</body></html>
|
11
L2J_Mobius_3.0_Helios/dist/game/data/html/default/34156.htm
vendored
Normal file
11
L2J_Mobius_3.0_Helios/dist/game/data/html/default/34156.htm
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
<html><body>Fisher Peeves:<br>
|
||||
Oh, nice to meet you! I'm Peeves, a fisher.<br>
|
||||
When I was young, my parents didn't want me to fish since it's dangerous... But how could I stop doing something so fun?<br>
|
||||
Are you interested in fishing? Have you heard of the <font color="LEVEL">Heine Exclusive Bait</font>?<br>
|
||||
If you have a <font color="LEVEL">Heine Exclusive Bait Coupon</font>, I can exchange it for <font color="LEVEL">Heine Exclusive Bait</font>.<br>
|
||||
Oh yeah, I also got a special fishing rod. Bring me some <font color="LEVEL">Heine Fishing Coins</font> and I'll give you a <font color="LEVEL">Fancy Fishing Rod</font>.<br>
|
||||
You can get them from the <font color="LEVEL">Exclusive Reward Chest</font> that you can get when you fish with <font color="LEVEL">Heine Exclusive Bait</font>.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 1">"Tell me about Heine Exclusive Bait."</button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144"><font color="LEVEL">"I have a Heine Exclusive Bait Coupon."</font></Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 3034">"I want to exchange for a Fancy Fishing Rod."</Button>
|
||||
<body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Perelin:<br>
|
||||
Do you like fishing? I love it.<br>
|
||||
Fishing is such a great hobby, don't you think? Sure, it's not very exerting, but...that's the point. I don't like to run around sweating, you know? You can just sit quietly and enjoy the silence.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3156300">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Fishing is such a great hobby, don't you think? Sure, it's not very exerting, but...that's the point. I don't like to run around sweating, you know? You can just sit quietly and enjoy silence. <br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Bleaker:<br>
|
||||
Nice to meet you! They call me Bleaker.<br>
|
||||
Besides teaching you how to fish, I also sell the fishing gear you'll need. Oh, and I'll buy any fish you catch. In other words, this is your one-stop fishing shop!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3156700">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Nice to meet you! They call me Bleaker. I am with the Fishing Guild. If it has to do with fishing, I'm your man. Most of the time, anyway.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Pamfus:<br>
|
||||
Do you like fishing? I love it.<br>
|
||||
Fishing is such a great hobby, don't you think? Sure, it's not very exerting, but...that's the point. I don't like to run around sweating, you know? You can just sit quietly and enjoy the silence.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3156800">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
There's no hobby other than fishing that lets you enjoy the nature around you so much. I really do love fishing.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,15 +1,13 @@
|
||||
<html><body>Fishing Guild Member Lanosco:<br>
|
||||
Did you catch one?<br>
|
||||
Heh, fishing is harder than it looks, right? You need to be prepared at all times.<br>
|
||||
Which is why I'm here! Come see me whenever you need something, and I'll set you right up.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157000">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Hi, I'm Fishing Guild Member Lanosco. Did you catch anything today? Fishing is not as easy as you might, you know. You need to prepare thoroughly.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishermen's Guild Member Huffs:<br>
|
||||
Welcome! Are you here to fish?<br>
|
||||
There's no better way to relax and decompress after a stressful day, week, or life! Haha!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157100">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Hello, and welcome. Are you here to learn about fishing? There's no better way to relax and decompress after a stressful day, week, or life! Haha! It's quite the experience, wrestling huge fish along the coast or on the riverbanks, armed with little more than a rod and some string.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member O'Fulle:<br>
|
||||
Everything is plentiful here in Giran, which is why so many people spend their leisure time fishing. It's a sign of abundance!<br>
|
||||
Oh, pardon me -- I'm O'Fulle, the only officially licensed fishing gear merchant in this territory! See me if you need to buy bait or sell fish. Fish only -- no mermaids! Haha!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157200">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
I'm Fishing Guild Member O'Fulle. Try your luck at fishing in Giran, the land of plenty! Watch out, catching mermaids might get you into trouble! Stick with the fish! Hahaha!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Monakan:<br>
|
||||
Well, hello there. I'm Monakan.<br>
|
||||
I can teach you about fishing items as well as how to fish. Oh, I'll also buy any fish you catch. In other words, this is your one-stop fishing shop!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157300">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Well, hello there. I'm Monakan, a member of the Fishing Guild. I'm the one to come to when it comes to fishing, since I deal not only in fishing supplies but also the fish that are caught.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,13 +1,13 @@
|
||||
<html><body>Fishing Guild Member Willie:<br>
|
||||
Fishing has become all the rage in these parts! I think it's because of all the brainy people around here -- the Ivory Tower, for example! Lots of them just sit there thinking, and forget to actually catch the fish!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157400">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Oren is a city of culture, to which many intelligent ones flock. That's why we have so many fishing enthusiasts! <br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Litulon:<br>
|
||||
There's no better place for fishing than Innadril. Wet and warm all year round, beautiful scenery, the best place in the whole world.<br>
|
||||
I mean, Goddess Eva watches over us after all. The City of Waters! Haha!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157500">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
The Innadril Territory is just the spot for fishing. I mean, Goddess Eva watches over us after all. The City of Waters! Haha!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,14 @@
|
||||
<html><body> Fishing Guild Member Berix:<br>
|
||||
I'm quite happy to be holding the fishing contest in my native town. It's good to know I can do what I love, where I live.<br>
|
||||
I think it's time we got to it, perfect weather for fishing!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157600">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Pleased to meet you. I'm Berix, a member of the Fishing Guild. See, people tend to think that there are only hunters in the Hunter's Village, but we have a lot of great fishers as well! I'm one of them, you see. Hahahaha.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Linnaeus:<br>
|
||||
Did you know that the king is an avid fisher himself? Haha!<br>
|
||||
Aden is filled with prime fishing zones. How about spending this beautiful day on one of them?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157700">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Did you know that the King is an avid fisher himself? Haha! We at the Fishing Guild are quite proud of this fact. He's actually quite the Master!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Hilgendorf:<br>
|
||||
Welcome! Beautiful day for fishing, dontcha' think?<br>
|
||||
My family has been in the Guild for generations, ever since my great-grandfather joined.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157800">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Welcome, and good to see you! The weather's perfect for fishing, wouldn't you agree? My family has been in the Guild for generations, ever since my great-grandfather joined. <br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Klaus:<br>
|
||||
Well, well, well! Another fisher, huh?<br>
|
||||
You know how lucky you are to be here, right? With its many mountain streams and lakes, Goddard is a prime fishing land. People come from all over to test their skill and try their luck here.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157900">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
I am Klaus, one of Fishing Guild members. If you have anything you need related with fishing, fine me. <br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Platis:<br>
|
||||
This area is a rare spot in Elmore where you can catch actual saltwater fish. It used to be a famous fishing site in the Elmoreden years, and now that things have slowed down, the fish population is back.<br>
|
||||
Care to give it a try? Let me know if you need any equipment!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3169600">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
This has been a very popular fishing dock since the age of the Elmoreden. This is the tranquil and beautiful fishing spot you've been searching high and low for, I tell you!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Eindarkner:<br>
|
||||
Do you know about these hot springs? The effects of the nearby Forge of the Gods have created a whole network of them around here. There are special species of fish living in these hot springs! It's the opportunity of a lifetime.<br>
|
||||
Let me know if you need anything!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3169700">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Have you heard about the Hot Springs in the area? There are natural hot springs everywhere, thanks to the Forge of the Gods. Before, there were fish to be caught in the hot springs as well, but they have all disappeared now. What a pity.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Batidae:<br>
|
||||
You came here to fish, right? Who am I kidding, of course you did!<br>
|
||||
No better way to spend an afternoon than casting the line!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3198900">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Welcome. Want to learn how to fish, do you? You must have really been running out of things to learn to come all the way here to learn about fishing, of all things. Frankly, you'd be doing yourself more good by learning how to mine ore in the mines over there. Anyways, since you're here, really, there's no better way to spend an afternoon than casting the line!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Galba:<br>
|
||||
Rainbow Springs -- ahh, heaven!<br>
|
||||
You should try fishing around here. The fish here are huge. Let me know if you need any fishing items or want to sell something.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Since you've come to find me, I reckon you know that the Rainbow Springs are a veritable heaven on earth for us fishing enthusiasts. That's right, this is some of the best fishing you'll find anywhere. <br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
11
L2J_Mobius_3.0_Helios/dist/game/data/html/fisherman/fish_appearance_exchange.htm
vendored
Normal file
11
L2J_Mobius_3.0_Helios/dist/game/data/html/fisherman/fish_appearance_exchange.htm
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
<html>
|
||||
<body>
|
||||
Exchange for appearance items:<br>
|
||||
<br>
|
||||
<Button ALIGN=LEFT ICON=NORMAL action="bypass -h npc_%objectId%_multisell 2195">Exchange for Weapon Appearance Stone</Button>
|
||||
<br>
|
||||
<Button ALIGN=LEFT ICON=NORMAL action="bypass -h npc_%objectId%_multisell 2207">Exchange for Transformation Scroll</Button>
|
||||
<br>
|
||||
<Button ALIGN=LEFT ICON=NORMAL action="bypass -h npc_%objectId%_multisell 2208">Exchange for Hair Accessory</Button>
|
||||
</body>
|
||||
</html>
|
@ -1,10 +1,8 @@
|
||||
<html><head><body>Fishing Manual:
|
||||
<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual002.htm">1. Preparations to fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual003.htm">2. Fishing Zones</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual003.htm">2. About fishing docks</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual004.htm">3. Types of bait</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual008.htm">4. Fishing Shots</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual009.htm">5. Aftermath</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual010.htm">6. About bait</Button>
|
||||
<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual009.htm">5. Dealing with the fish caught</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual010.htm">6. About automatic fishing</Button>
|
||||
</body></html>
|
@ -1,6 +1,5 @@
|
||||
<html><head><body>Fishing Manual:<br>
|
||||
In order to fish, you need to find a fishing area. Once you arrive at the right spot, you'll see the button on the right side of your screen that alerts you that you can fish. <br>
|
||||
In order to fish, you need to find a fishing area. Once you arrive at the right spot, you'll see the button on the right side of your screen that alerts you that you can fish.<br>
|
||||
Then check if you can actually fish. Check that you have a <font color="LEVEL">Fishing Rod</font> and <font color="LEVEL">Bait</font> equipped. You can set the Fishing Shots to be used automatically when you fish.<br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Back</Button>
|
||||
<br>
|
||||
</body></html>
|
@ -1,6 +1,4 @@
|
||||
<html><head><body>Fishing Manual:<br>
|
||||
A fishing zone refers to a place with enough fish to be caught.<br>
|
||||
The places that are good for fishing are the following: <font color="LEVEL">around Lake Iris</font>, <font color="LEVEL">Narsell Lake</font> where the Coliseum is, <font color="LEVEL">Giran Harbor's coast</font>, <font color="LEVEL">around the Plains of the Lizardmen</font>, <font color="LEVEL">waterside in the Town of Gludio</font>, <font color="LEVEL">the Neutral Zone</font>, <font color="LEVEL">Heine</font>, <font color="LEVEL">Fellmere Lake</font>, and the <font color="LEVEL">bridge near the Town of Giran</font>.<br>
|
||||
<html><body>Fishing Manual:<br>
|
||||
In order to fish, you need to find a fishing area. Once you arrive at the right spot, you'll see the button on the right side of your screen that alerts you that you can fish.<br>Then check if you can actually fish. Check that you have a <font color="LEVEL">Fishing Rod</font> and <font color="LEVEL">Bait</font> equipped. You can set the Fishing Shots to be used automatically when you fish.<br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Back</Button>
|
||||
<br>
|
||||
</body></html>
|
@ -1,7 +1,7 @@
|
||||
<html><head><body>Fishing Manual:<br>
|
||||
There are two types of bait.<br>
|
||||
The Normal Bait, you can buy from me.<br>
|
||||
If you want to catch more expensive fish, I recommend you use the Special Bait. I have never seen Special Bait, but I heard that you can get it from the boxes you get from fishing.<br>
|
||||
<html><body>Fishing Manual:<br>
|
||||
There are three types of bait.<br>
|
||||
These are the <font color="LEVEL">basic bait</font>, the <font color="LEVEL">R99 bait</font> which can be used by characters of Lv. 99 and above and he <font color="LEVEL">PC Cafe bait</font>, which can be purchased using PC Cafe Points.<br>
|
||||
Of these, the Fishing Guild sells the <font color="LEVEL">basic bait</font> and the <font color="LEVEL">R99 bait</font>.<br>
|
||||
With each type of bait, you can catch different types of fish. The conditions for purchasing and use vary among bait types as well. The Powerful Fish, which is the most expensive fish you can catch, can be caught using the <font color="LEVEL">R99 bait</font> or the <font color="LEVEL">PC Cafe bait</font>.<br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Back</Button>
|
||||
<br>
|
||||
</body></html>
|
@ -1,7 +1,6 @@
|
||||
<html><head><body>Fishing Manual:<br>
|
||||
<html><body>Fishing Manual:<br>
|
||||
Created by the Black Anvil Guild at the request of Ampitri, the founder of the Fishing Guild, Fishing Shots are variations of Soulshots made for fishing.<br>
|
||||
But while Soulshots amplify a hit, Fishing Shots increase the fisher's <font color="LEVEL">chances of catching a fish</font>.<br>
|
||||
It's an item that will help you catch fish more efficiently.<br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Back</Button>
|
||||
<br>
|
||||
</body></html>
|
@ -1,7 +1,7 @@
|
||||
<html><head><body>Fishing Manual:<br>
|
||||
You can sell the fish whole, take it apart to sell a portion, or use it to craft items. You can also exchange it for Elcyum Powder through our Fishing Guild.<br>
|
||||
Keep in mind that you might lose everything when cutting up your fish though! It depends on your luck.<br>
|
||||
You can also bring Elcyum Powder to our guild to learn some legendary fishing skills. You decide what to do with your fish.<br>
|
||||
<html><body>Fishing Manual:<br>
|
||||
Bring the fish you catch to us to exchange for various items that the Fishing Guild deals in.<br>
|
||||
The <font color="LEVEL">Ugly Fish</font> and <font color="LEVEL">Nimble Fish</font> can be exchanged for <font color="LEVEL">Fish Stew</font>, Appearance Stones, Hair Accessories, Transformation Scrolls, and Weapon Appearance Stones.<br>
|
||||
If you have caught a <font color="LEVEL">Powerful Fish</font>, it may be exchanged for a <font color="LEVEL">Stardust item</font> or <font color="LEVEL">Elcyum Powder</font> which is needed when exchanging for a Zodiac Agathion Treasure Chest. You may also <font color="LEVEL">sell</font> the <font color="LEVEL">fish to the shop</font>.<br>
|
||||
If you bring us Elcyum Powder, we can let you in on a few secret techniques that have been handed down in our guild through the generation. Please think carefully about what you want to do with the fish that you catch.<br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Back</Button>
|
||||
<br>
|
||||
</body></html>
|
@ -1,6 +1,38 @@
|
||||
<html><head><body>Fishing Manual:<br>
|
||||
You can buy Normal Bait from the Fishing Guild. <br>
|
||||
As for the Special Bait, you can get it from the wooden boxes that you get from fishing. Use the Special Bait to catch shiny fish. <br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Back</Button>
|
||||
<html><body>Fishing Manual:<br>
|
||||
The time required for fishing, and the rate of success vary according to the type of bait, the type of rod, and whether or not Fishing Shot is used.<br>
|
||||
<center>
|
||||
<table border=1 cellspacing=0>
|
||||
<tr>
|
||||
<td align=center width=300><font color="LEVEL">Bait - Fishing Time and Standby Time</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><center>
|
||||
<br>
|
||||
For each bait, the time required until fish bite is preset.<br1>
|
||||
As for the basic bait sold in the shop,<br1>Fishing Time is 105 seconds, and Standby Time is 15 seconds.<br1>This means catching a single fish takes a total of 120 seconds.<br1>
|
||||
<br>
|
||||
</center></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center width=300><font color="LEVEL">Fishing Rod - Fishing Time reduced</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><center>
|
||||
<br>
|
||||
A better fishing rod will reduce Fishing Time.<br1>
|
||||
The Normal Fishing Rod and Sturdy Fishing Rod<br1>will not reduce Fishing Time.<br1>When you obtain Master Fishing Rod Stage 1,<br1>your Fishing Time will begin to decrease.<br>
|
||||
</center></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<br>
|
||||
<td align=center width=300><font color="LEVEL">Fishing Shot - Fishing Probability increased</font></td>
|
||||
<br>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><center>
|
||||
<br>
|
||||
Fishing Shot increases your odds of catching a fish.<br1>
|
||||
<br>
|
||||
</center></td>
|
||||
</tr>
|
||||
</body></html>
|
39
L2J_Mobius_3.0_Helios/dist/game/data/multisell/2144.xml
vendored
Normal file
39
L2J_Mobius_3.0_Helios/dist/game/data/multisell/2144.xml
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/multisell.xsd">
|
||||
<npcs>
|
||||
<npc>31563</npc> <!-- Perelin -->
|
||||
<npc>31567</npc> <!-- Bleaker -->
|
||||
<npc>31568</npc> <!-- Pamfus -->
|
||||
<npc>31570</npc> <!-- Lanosco -->
|
||||
<npc>31571</npc> <!-- Hufs -->
|
||||
<npc>31572</npc> <!-- O'Fulle -->
|
||||
<npc>31573</npc> <!-- Monakan -->
|
||||
<npc>31574</npc> <!-- Willie -->
|
||||
<npc>31575</npc> <!-- Litulon -->
|
||||
<npc>31576</npc> <!-- Berix -->
|
||||
<npc>31577</npc> <!-- Linnaeus -->
|
||||
<npc>31578</npc> <!-- Hilgendorf -->
|
||||
<npc>31579</npc> <!-- Klaus -->
|
||||
<npc>31696</npc> <!-- Platis -->
|
||||
<npc>31697</npc> <!-- Eindarkner -->
|
||||
<npc>31989</npc> <!-- Batidae -->
|
||||
<npc>32007</npc> <!-- Galba -->
|
||||
<npc>34156</npc> <!-- Peeves -->
|
||||
</npcs>
|
||||
<item>
|
||||
<ingredient id="28393" count="1"/> <!-- Heine Exclusive Bait Coupon -->
|
||||
<production id="28389" count="1"/> <!-- Heine Exclusive Bait (85-89) -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="28393" count="1"/> <!-- Heine Exclusive Bait Coupon -->
|
||||
<production id="28390" count="1"/> <!-- Heine Exclusive Bait (90-94) -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="28393" count="1"/> <!-- Heine Exclusive Bait Coupon -->
|
||||
<production id="28391" count="1"/> <!-- Heine Exclusive Bait (95-98) -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="28393" count="1"/> <!-- Heine Exclusive Bait Coupon -->
|
||||
<production id="28392" count="1"/> <!-- Heine Exclusive Bait (99-) -->
|
||||
</item>
|
||||
</list>
|
70
L2J_Mobius_3.0_Helios/dist/game/data/multisell/2194.xml
vendored
Normal file
70
L2J_Mobius_3.0_Helios/dist/game/data/multisell/2194.xml
vendored
Normal file
@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/multisell.xsd">
|
||||
<npcs>
|
||||
<npc>31563</npc> <!-- Perelin -->
|
||||
<npc>31567</npc> <!-- Bleaker -->
|
||||
<npc>31568</npc> <!-- Pamfus -->
|
||||
<npc>31570</npc> <!-- Lanosco -->
|
||||
<npc>31571</npc> <!-- Hufs -->
|
||||
<npc>31572</npc> <!-- O'Fulle -->
|
||||
<npc>31573</npc> <!-- Monakan -->
|
||||
<npc>31574</npc> <!-- Willie -->
|
||||
<npc>31575</npc> <!-- Litulon -->
|
||||
<npc>31576</npc> <!-- Berix -->
|
||||
<npc>31577</npc> <!-- Linnaeus -->
|
||||
<npc>31578</npc> <!-- Hilgendorf -->
|
||||
<npc>31579</npc> <!-- Klaus -->
|
||||
<npc>31696</npc> <!-- Platis -->
|
||||
<npc>31697</npc> <!-- Eindarkner -->
|
||||
<npc>31989</npc> <!-- Batidae -->
|
||||
<npc>32007</npc> <!-- Galba -->
|
||||
</npcs>
|
||||
<item>
|
||||
<ingredient id="47550" count="30" /> <!-- Ugly Fish -->
|
||||
<production id="38222" count="1" /> <!-- Fish Stew - WIT -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15" /> <!-- Nimble Fish -->
|
||||
<production id="38222" count="1" /> <!-- Fish Stew - WIT -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47550" count="30" /> <!-- Ugly Fish -->
|
||||
<production id="38223" count="1" /> <!-- Fish Stew - Int -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15" /> <!-- Nimble Fish -->
|
||||
<production id="38223" count="1" /> <!-- Fish Stew - Int -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47550" count="30" /> <!-- Ugly Fish -->
|
||||
<production id="38224" count="1" /> <!-- Fish Stew - MEN -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15" /> <!-- Nimble Fish -->
|
||||
<production id="38224" count="1" /> <!-- Fish Stew - MEN -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47550" count="30" /> <!-- Ugly Fish -->
|
||||
<production id="38225" count="1" /> <!-- Fish Stew - DEX -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15" /> <!-- Nimble Fish -->
|
||||
<production id="38225" count="1" /> <!-- Fish Stew - DEX -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47550" count="30" /> <!-- Ugly Fish -->
|
||||
<production id="38226" count="1" /> <!-- Fish Stew - Str -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15" /> <!-- Nimble Fish -->
|
||||
<production id="38226" count="1" /> <!-- Fish Stew - Str -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47550" count="30" /> <!-- Ugly Fish -->
|
||||
<production id="38227" count="1" /> <!-- Fish Stew - CON -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15" /> <!-- Nimble Fish -->
|
||||
<production id="38227" count="1" /> <!-- Fish Stew - CON -->
|
||||
</item>
|
||||
</list>
|
138
L2J_Mobius_3.0_Helios/dist/game/data/multisell/2195.xml
vendored
Normal file
138
L2J_Mobius_3.0_Helios/dist/game/data/multisell/2195.xml
vendored
Normal file
@ -0,0 +1,138 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/multisell.xsd">
|
||||
<npcs>
|
||||
<npc>31563</npc> <!-- Perelin -->
|
||||
<npc>31567</npc> <!-- Bleaker -->
|
||||
<npc>31568</npc> <!-- Pamfus -->
|
||||
<npc>31570</npc> <!-- Lanosco -->
|
||||
<npc>31571</npc> <!-- Hufs -->
|
||||
<npc>31572</npc> <!-- O'Fulle -->
|
||||
<npc>31573</npc> <!-- Monakan -->
|
||||
<npc>31574</npc> <!-- Willie -->
|
||||
<npc>31575</npc> <!-- Litulon -->
|
||||
<npc>31576</npc> <!-- Berix -->
|
||||
<npc>31577</npc> <!-- Linnaeus -->
|
||||
<npc>31578</npc> <!-- Hilgendorf -->
|
||||
<npc>31579</npc> <!-- Klaus -->
|
||||
<npc>31696</npc> <!-- Platis -->
|
||||
<npc>31697</npc> <!-- Eindarkner -->
|
||||
<npc>31989</npc> <!-- Batidae -->
|
||||
<npc>32007</npc> <!-- Galba -->
|
||||
</npcs>
|
||||
<item>
|
||||
<ingredient id="47551" count="30000" /> <!-- Nimble Fish -->
|
||||
<production id="47591" count="1" /> <!-- Cat Fighter Appearance Stone - Ertheia Only -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="30000" /> <!-- Nimble Fish -->
|
||||
<production id="47592" count="1" /> <!-- Warm Bear Paws Appearance Stone -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="30000" /> <!-- Nimble Fish -->
|
||||
<production id="47593" count="1" /> <!-- Boxing Glove Appearance Stone - Ertheia Only -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="30000" /> <!-- Nimble Fish -->
|
||||
<production id="47595" count="1" /> <!-- Wedding Bouquet Appearance Stone -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="20000" /> <!-- Nimble Fish -->
|
||||
<production id="47594" count="1" /> <!-- Cupid's Arrow Appearance Stone -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="20000" /> <!-- Nimble Fish -->
|
||||
<production id="47596" count="1" /> <!-- Pig Lollipop Appearance Stone -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15000" /> <!-- Nimble Fish -->
|
||||
<production id="38200" count="1" /> <!-- Blue Mackerel Appearance Stone: One-handed Sword -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15000" /> <!-- Nimble Fish -->
|
||||
<production id="38201" count="1" /> <!-- Trumpetfish Appearance Stone: Dagger -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15000" /> <!-- Nimble Fish -->
|
||||
<production id="38202" count="1" /> <!-- Shark Appearance Stone: Two-handed Sword -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15000" /> <!-- Nimble Fish -->
|
||||
<production id="38203" count="1" /> <!-- Squid Appearance Stone: Spear -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15000" /> <!-- Nimble Fish -->
|
||||
<production id="38204" count="1" /> <!-- Sea Horse Appearance Stone: Two-handed Magic Blunt Weapon -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15000" /> <!-- Nimble Fish -->
|
||||
<production id="38205" count="1" /> <!-- Lobster Appearance Stone: Fist Weapon -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15000" /> <!-- Nimble Fish -->
|
||||
<production id="38206" count="1" /> <!-- Giant Crab Appearance Stone: Bow -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15000" /> <!-- Nimble Fish -->
|
||||
<production id="38207" count="1" /> <!-- Crayfish Appearance Stone: Crossbow -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15000" /> <!-- Nimble Fish -->
|
||||
<production id="38208" count="1" /> <!-- Starfish Appearance Stone: Sigil -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15000" /> <!-- Nimble Fish -->
|
||||
<production id="38209" count="1" /> <!-- Turtle Appearance Stone: Shield -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15000" /> <!-- Nimble Fish -->
|
||||
<production id="38210" count="1" /> <!-- Blue Mackerel Appearance Stone: Dualsword -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15000" /> <!-- Nimble Fish -->
|
||||
<production id="38417" count="1" /> <!-- Blue Mackerel Appearance Stone: Dual Blunt Weapon -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15000" /> <!-- Nimble Fish -->
|
||||
<production id="38418" count="1" /> <!-- Trumpetfish Appearance Stone: Dual Dagger -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="15000" /> <!-- Nimble Fish -->
|
||||
<production id="38420" count="1" /> <!-- Blue Mackerel Appearance Stone: One-handed Blunt Weapon -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="2000" /> <!-- Nimble Fish -->
|
||||
<production id="38174" count="1" /> <!-- Samurai Long Sword Appearance Stone -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="2000" /> <!-- Nimble Fish -->
|
||||
<production id="38175" count="1" /> <!-- Apprentice's Spellbook Appearance Stone -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="2000" /> <!-- Nimble Fish -->
|
||||
<production id="38176" count="1" /> <!-- Crystal Dagger Appearance Stone -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="25000" /> <!-- Nimble Fish -->
|
||||
<production id="38183" count="1" /> <!-- Hellblade Appearance Stone -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="25000" /> <!-- Nimble Fish -->
|
||||
<production id="38184" count="1" /> <!-- Butcher Blades Appearance Stone -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="25000" /> <!-- Nimble Fish -->
|
||||
<production id="38185" count="1" /> <!-- Claw of Destruction Appearance Stone -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="25000" /> <!-- Nimble Fish -->
|
||||
<production id="38186" count="1" /> <!-- Blades of Delusion Appearance Stone -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="25000" /> <!-- Nimble Fish -->
|
||||
<production id="38187" count="1" /> <!-- Blood Brother Appearance Stone -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47551" count="25000" /> <!-- Nimble Fish -->
|
||||
<production id="38188" count="1" /> <!-- Mardil's Fan Appearance Stone -->
|
||||
</item>
|
||||
</list>
|
62
L2J_Mobius_3.0_Helios/dist/game/data/multisell/2203.xml
vendored
Normal file
62
L2J_Mobius_3.0_Helios/dist/game/data/multisell/2203.xml
vendored
Normal file
@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/multisell.xsd">
|
||||
<npcs>
|
||||
<npc>31563</npc> <!-- Perelin -->
|
||||
<npc>31567</npc> <!-- Bleaker -->
|
||||
<npc>31568</npc> <!-- Pamfus -->
|
||||
<npc>31570</npc> <!-- Lanosco -->
|
||||
<npc>31571</npc> <!-- Hufs -->
|
||||
<npc>31572</npc> <!-- O'Fulle -->
|
||||
<npc>31573</npc> <!-- Monakan -->
|
||||
<npc>31574</npc> <!-- Willie -->
|
||||
<npc>31575</npc> <!-- Litulon -->
|
||||
<npc>31576</npc> <!-- Berix -->
|
||||
<npc>31577</npc> <!-- Linnaeus -->
|
||||
<npc>31578</npc> <!-- Hilgendorf -->
|
||||
<npc>31579</npc> <!-- Klaus -->
|
||||
<npc>31696</npc> <!-- Platis -->
|
||||
<npc>31697</npc> <!-- Eindarkner -->
|
||||
<npc>31989</npc> <!-- Batidae -->
|
||||
<npc>32007</npc> <!-- Galba -->
|
||||
</npcs>
|
||||
<item>
|
||||
<ingredient id="47552" count="4" /> <!-- Powerful Fish -->
|
||||
<production id="36513" count="3" /> <!-- Elcyum Powder -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="1" /> <!-- Powerful Fish -->
|
||||
<production id="38398" count="1" /> <!-- Expertise Rune Pack - D-grade -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="2" /> <!-- Powerful Fish -->
|
||||
<production id="38400" count="1" /> <!-- Expertise Rune Pack - C-grade -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="3" /> <!-- Powerful Fish -->
|
||||
<production id="38402" count="1" /> <!-- Expertise Rune Pack - B-grade -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="4" /> <!-- Powerful Fish -->
|
||||
<production id="38404" count="1" /> <!-- Expertise Rune Pack - A-grade -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="5" /> <!-- Powerful Fish -->
|
||||
<production id="38406" count="1" /> <!-- Expertise Rune Pack - S-grade -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="6" /> <!-- Powerful Fish -->
|
||||
<production id="38408" count="1" /> <!-- Expertise Rune Pack - S80-grade -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="8" /> <!-- Powerful Fish -->
|
||||
<production id="38410" count="1" /> <!-- Expertise Rune Pack - R-grade -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="10" /> <!-- Powerful Fish -->
|
||||
<production id="38412" count="1" /> <!-- Expertise Rune Pack - R95-grade -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="20" /> <!-- Powerful Fish -->
|
||||
<production id="38414" count="1" /> <!-- Expertise Rune Pack - R99-grade -->
|
||||
</item>
|
||||
</list>
|
62
L2J_Mobius_3.0_Helios/dist/game/data/multisell/2207.xml
vendored
Normal file
62
L2J_Mobius_3.0_Helios/dist/game/data/multisell/2207.xml
vendored
Normal file
@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/multisell.xsd">
|
||||
<npcs>
|
||||
<npc>31563</npc> <!-- Perelin -->
|
||||
<npc>31567</npc> <!-- Bleaker -->
|
||||
<npc>31568</npc> <!-- Pamfus -->
|
||||
<npc>31570</npc> <!-- Lanosco -->
|
||||
<npc>31571</npc> <!-- Hufs -->
|
||||
<npc>31572</npc> <!-- O'Fulle -->
|
||||
<npc>31573</npc> <!-- Monakan -->
|
||||
<npc>31574</npc> <!-- Willie -->
|
||||
<npc>31575</npc> <!-- Litulon -->
|
||||
<npc>31576</npc> <!-- Berix -->
|
||||
<npc>31577</npc> <!-- Linnaeus -->
|
||||
<npc>31578</npc> <!-- Hilgendorf -->
|
||||
<npc>31579</npc> <!-- Klaus -->
|
||||
<npc>31696</npc> <!-- Platis -->
|
||||
<npc>31697</npc> <!-- Eindarkner -->
|
||||
<npc>31989</npc> <!-- Batidae -->
|
||||
<npc>32007</npc> <!-- Galba -->
|
||||
</npcs>
|
||||
<item>
|
||||
<ingredient id="47550" count="15" /> <!-- Ugly Fish -->
|
||||
<production id="47581" count="1" /> <!-- Transformation Scroll: Tow -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47550" count="15" /> <!-- Ugly Fish -->
|
||||
<production id="47582" count="1" /> <!-- Transformation Scroll: Lady Tow -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47550" count="15" /> <!-- Ugly Fish -->
|
||||
<production id="47583" count="1" /> <!-- Transformation Scroll: Angry Tow -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47550" count="15" /> <!-- Ugly Fish -->
|
||||
<production id="47584" count="1" /> <!-- Transformation Scroll: Sleepy Tow -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47550" count="15" /> <!-- Ugly Fish -->
|
||||
<production id="47585" count="1" /> <!-- Transformation Scroll: Pig -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47550" count="15" /> <!-- Ugly Fish -->
|
||||
<production id="47586" count="1" /> <!-- Transformation Scroll: Rabbit -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47550" count="15" /> <!-- Ugly Fish -->
|
||||
<production id="47587" count="1" /> <!-- Transformation Scroll: Queen Ant -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47550" count="15" /> <!-- Ugly Fish -->
|
||||
<production id="47588" count="1" /> <!-- Transformation Scroll: Orfen -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47550" count="15" /> <!-- Ugly Fish -->
|
||||
<production id="47589" count="1" /> <!-- Transformation Scroll: Anakim -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47550" count="15" /> <!-- Ugly Fish -->
|
||||
<production id="47590" count="1" /> <!-- Transformation Scroll: Lilith -->
|
||||
</item>
|
||||
</list>
|
94
L2J_Mobius_3.0_Helios/dist/game/data/multisell/2208.xml
vendored
Normal file
94
L2J_Mobius_3.0_Helios/dist/game/data/multisell/2208.xml
vendored
Normal file
@ -0,0 +1,94 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/multisell.xsd">
|
||||
<npcs>
|
||||
<npc>31563</npc> <!-- Perelin -->
|
||||
<npc>31567</npc> <!-- Bleaker -->
|
||||
<npc>31568</npc> <!-- Pamfus -->
|
||||
<npc>31570</npc> <!-- Lanosco -->
|
||||
<npc>31571</npc> <!-- Hufs -->
|
||||
<npc>31572</npc> <!-- O'Fulle -->
|
||||
<npc>31573</npc> <!-- Monakan -->
|
||||
<npc>31574</npc> <!-- Willie -->
|
||||
<npc>31575</npc> <!-- Litulon -->
|
||||
<npc>31576</npc> <!-- Berix -->
|
||||
<npc>31577</npc> <!-- Linnaeus -->
|
||||
<npc>31578</npc> <!-- Hilgendorf -->
|
||||
<npc>31579</npc> <!-- Klaus -->
|
||||
<npc>31696</npc> <!-- Platis -->
|
||||
<npc>31697</npc> <!-- Eindarkner -->
|
||||
<npc>31989</npc> <!-- Batidae -->
|
||||
<npc>32007</npc> <!-- Galba -->
|
||||
</npcs>
|
||||
<item>
|
||||
<ingredient id="47552" count="5" /> <!-- Powerful Fish -->
|
||||
<production id="5808" count="1" /> <!-- Party Mask -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="5" /> <!-- Powerful Fish -->
|
||||
<production id="6844" count="1" /> <!-- Lady's Hairpin -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="5" /> <!-- Powerful Fish -->
|
||||
<production id="6845" count="1" /> <!-- Pirate's Eyepatch -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="5" /> <!-- Powerful Fish -->
|
||||
<production id="6846" count="1" /> <!-- Monocle -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="5" /> <!-- Powerful Fish -->
|
||||
<production id="7681" count="1" /> <!-- Outlaw's Eyepatch -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="5" /> <!-- Powerful Fish -->
|
||||
<production id="7682" count="1" /> <!-- Maiden's Hairpin -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="5" /> <!-- Powerful Fish -->
|
||||
<production id="7695" count="1" /> <!-- Forget-me-not Hairpin -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="5" /> <!-- Powerful Fish -->
|
||||
<production id="7696" count="1" /> <!-- Daisy Hairpin -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="5" /> <!-- Powerful Fish -->
|
||||
<production id="8184" count="1" /> <!-- Party Hat -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="5" /> <!-- Powerful Fish -->
|
||||
<production id="8188" count="1" /> <!-- Little Angel Wings -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="5" /> <!-- Powerful Fish -->
|
||||
<production id="8189" count="1" /> <!-- Fairy Antennae -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="10" /> <!-- Powerful Fish -->
|
||||
<production id="13490" count="1" /> <!-- Arrow-pierced Apple -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="10" /> <!-- Powerful Fish -->
|
||||
<production id="8185" count="1" /> <!-- Chapeau -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="10" /> <!-- Powerful Fish -->
|
||||
<production id="8186" count="1" /> <!-- Artisan's Goggles -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="150" /> <!-- Powerful Fish -->
|
||||
<production id="38587" count="1" /> <!-- Fish Hat -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="150" /> <!-- Powerful Fish -->
|
||||
<production id="38588" count="1" /> <!-- Puffer Hat -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="150" /> <!-- Powerful Fish -->
|
||||
<production id="38589" count="1" /> <!-- Shark Hat -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="47552" count="150" /> <!-- Powerful Fish -->
|
||||
<production id="38590" count="1" /> <!-- Turtle Hat -->
|
||||
</item>
|
||||
</list>
|
22
L2J_Mobius_3.0_Helios/dist/game/data/multisell/3034.xml
vendored
Normal file
22
L2J_Mobius_3.0_Helios/dist/game/data/multisell/3034.xml
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/multisell.xsd">
|
||||
<npcs>
|
||||
<npc>34156</npc> <!-- Peeves -->
|
||||
</npcs>
|
||||
<item>
|
||||
<ingredient id="27640" count="8500"/> <!-- Heine Fishing Coin -->
|
||||
<production id="27632" count="1"/> <!-- Fancy Fishing Rod -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="27640" count="130"/> <!-- Heine Fishing Coin -->
|
||||
<production id="27633" count="1"/> <!-- Fancy Fishing Rod - 1-day -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="27640" count="750"/> <!-- Heine Fishing Coin -->
|
||||
<production id="27635" count="1"/> <!-- Fancy Fishing Rod - 7-day -->
|
||||
</item>
|
||||
<item>
|
||||
<ingredient id="27640" count="3000"/> <!-- Heine Fishing Coin -->
|
||||
<production id="27637" count="1"/> <!-- Fancy Fishing Rod - 30-day -->
|
||||
</item>
|
||||
</list>
|
@ -75,6 +75,7 @@
|
||||
<npc id="35319" x="107372" y="217848" z="-3672" heading="13120" respawnTime="60sec" /> <!-- Manor Manager -->
|
||||
<npc id="36706" x="115020" y="220453" z="-3728" heading="48207" respawnTime="60sec" /> <!-- Mermoden -->
|
||||
<npc id="33946" x="111126" y="219190" z="-3543" heading="59402" respawnTime="60sec" /> <!-- Adventure Guildsman -->
|
||||
<npc id="34156" x="111286" y="219274" z="-3550" heading="49151" respawnTime="60sec" /> <!-- Peeves -->
|
||||
</group>
|
||||
</spawn>
|
||||
</list>
|
@ -9,13 +9,13 @@
|
||||
<xs:attribute type="xs:positiveInteger" name="max" use="required" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="experienceRate">
|
||||
<xs:element name="xpRate">
|
||||
<xs:complexType>
|
||||
<xs:attribute type="xs:double" name="min" use="required" />
|
||||
<xs:attribute type="xs:double" name="max" use="required" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="skillPointsRate">
|
||||
<xs:element name="spRate">
|
||||
<xs:complexType>
|
||||
<xs:attribute type="xs:double" name="min" use="required" />
|
||||
<xs:attribute type="xs:double" name="max" use="required" />
|
||||
@ -30,17 +30,35 @@
|
||||
<xs:element name="catch" maxOccurs="unbounded" minOccurs="1">
|
||||
<xs:complexType>
|
||||
<xs:attribute type="xs:positiveInteger" name="itemId" use="required" />
|
||||
<xs:attribute type="xs:double" name="chance" />
|
||||
<xs:attribute type="xs:double" name="multiplier" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute type="xs:positiveInteger" name="itemId" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="level" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="level" />
|
||||
<xs:attribute type="xs:positiveInteger" name="minPlayerLevel" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="maxPlayerLevel" />
|
||||
<xs:attribute type="xs:double" name="chance" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="timeMin" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="timeMax" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="timeMax" />
|
||||
<xs:attribute type="xs:positiveInteger" name="waitMin" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="waitMax" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="waitMax" />
|
||||
<xs:attribute type="xs:boolean" name="isPremiumOnly" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="rods">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="rod" maxOccurs="unbounded" minOccurs="1">
|
||||
<xs:complexType>
|
||||
<xs:attribute type="xs:positiveInteger" name="itemId" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="reduceFishingTime" />
|
||||
<xs:attribute type="xs:double" name="xpMultiplier" />
|
||||
<xs:attribute type="xs:double" name="spMultiplier" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
|
@ -1145,11 +1145,12 @@ public final class Config
|
||||
public static float PREMIUM_RATE_DROP_AMOUNT;
|
||||
public static float PREMIUM_RATE_SPOIL_CHANCE;
|
||||
public static float PREMIUM_RATE_SPOIL_AMOUNT;
|
||||
public static Map<Integer, Float> PREMIUM_RATE_DROP_CHANCE_BY_ID;
|
||||
public static Map<Integer, Float> PREMIUM_RATE_DROP_AMOUNT_BY_ID;
|
||||
public static boolean PREMIUM_HENNA_SLOT_ENABLED;
|
||||
public static boolean PREMIUM_HENNA_SLOT_ENABLED_FOR_ALL;
|
||||
public static boolean PREMIUM_HENNA_SLOT_ALL_DYES;
|
||||
public static Map<Integer, Float> PREMIUM_RATE_DROP_CHANCE_BY_ID;
|
||||
public static Map<Integer, Float> PREMIUM_RATE_DROP_AMOUNT_BY_ID;
|
||||
public static boolean PREMIUM_ONLY_FISHING;
|
||||
public static boolean PC_CAFE_ENABLED;
|
||||
public static boolean PC_CAFE_ONLY_PREMIUM;
|
||||
public static int PC_CAFE_MAX_POINTS;
|
||||
@ -2643,9 +2644,6 @@ public final class Config
|
||||
PREMIUM_RATE_DROP_AMOUNT = PremiumSystem.getFloat("PremiumRateDropAmount", 1);
|
||||
PREMIUM_RATE_SPOIL_CHANCE = PremiumSystem.getFloat("PremiumRateSpoilChance", 2);
|
||||
PREMIUM_RATE_SPOIL_AMOUNT = PremiumSystem.getFloat("PremiumRateSpoilAmount", 1);
|
||||
PREMIUM_HENNA_SLOT_ENABLED = PremiumSystem.getBoolean("EnablePremiumHennaSlot", true);
|
||||
PREMIUM_HENNA_SLOT_ENABLED_FOR_ALL = PremiumSystem.getBoolean("EnablePremiumHennaSlotforNonPremium", true);
|
||||
PREMIUM_HENNA_SLOT_ALL_DYES = PremiumSystem.getBoolean("EnableAnyHennaAtPremiumSlot", false);
|
||||
final String[] premiumDropChanceMultiplier = PremiumSystem.getString("PremiumRateDropChanceByItemId", "").split(";");
|
||||
PREMIUM_RATE_DROP_CHANCE_BY_ID = new HashMap<>(premiumDropChanceMultiplier.length);
|
||||
if (!premiumDropChanceMultiplier[0].isEmpty())
|
||||
@ -2700,6 +2698,10 @@ public final class Config
|
||||
}
|
||||
}
|
||||
}
|
||||
PREMIUM_HENNA_SLOT_ENABLED = PremiumSystem.getBoolean("EnablePremiumHennaSlot", true);
|
||||
PREMIUM_HENNA_SLOT_ENABLED_FOR_ALL = PremiumSystem.getBoolean("EnablePremiumHennaSlotforNonPremium", true);
|
||||
PREMIUM_HENNA_SLOT_ALL_DYES = PremiumSystem.getBoolean("EnableAnyHennaAtPremiumSlot", false);
|
||||
PREMIUM_ONLY_FISHING = PremiumSystem.getBoolean("PremiumOnlyFishing", true);
|
||||
|
||||
// Load PrivateStoreRange config file (if exists)
|
||||
final PropertiesParser PrivateStoreRange = new PropertiesParser(CUSTOM_PRIVATE_STORE_RANGE_CONFIG_FILE);
|
||||
|
@ -25,8 +25,12 @@ import org.w3c.dom.Document;
|
||||
import org.w3c.dom.NamedNodeMap;
|
||||
import org.w3c.dom.Node;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.commons.util.IGameXmlReader;
|
||||
import com.l2jmobius.gameserver.model.FishingBaitData;
|
||||
import com.l2jmobius.gameserver.datatables.ItemTable;
|
||||
import com.l2jmobius.gameserver.model.fishing.FishingBait;
|
||||
import com.l2jmobius.gameserver.model.fishing.FishingCatch;
|
||||
import com.l2jmobius.gameserver.model.fishing.FishingRod;
|
||||
|
||||
/**
|
||||
* This class holds the Fishing information.
|
||||
@ -35,7 +39,8 @@ import com.l2jmobius.gameserver.model.FishingBaitData;
|
||||
public final class FishingData implements IGameXmlReader
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger(FishingData.class.getName());
|
||||
private final Map<Integer, FishingBaitData> _baitData = new HashMap<>();
|
||||
private final Map<Integer, FishingBait> _baitData = new HashMap<>();
|
||||
private final Map<Integer, FishingRod> _rodData = new HashMap<>();
|
||||
private int _baitDistanceMin;
|
||||
private int _baitDistanceMax;
|
||||
private double _expRateMin;
|
||||
@ -56,7 +61,7 @@ public final class FishingData implements IGameXmlReader
|
||||
{
|
||||
_baitData.clear();
|
||||
parseDatapackFile("data/Fishing.xml");
|
||||
LOGGER.info(getClass().getSimpleName() + ": Loaded Fishing Data.");
|
||||
LOGGER.info(getClass().getSimpleName() + ": Loaded " + _baitData.size() + " bait and " + _rodData.size() + " rod data.");
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -76,13 +81,13 @@ public final class FishingData implements IGameXmlReader
|
||||
_baitDistanceMax = parseInteger(listItem.getAttributes(), "max");
|
||||
break;
|
||||
}
|
||||
case "experienceRate":
|
||||
case "xpRate":
|
||||
{
|
||||
_expRateMin = parseDouble(listItem.getAttributes(), "min");
|
||||
_expRateMax = parseDouble(listItem.getAttributes(), "max");
|
||||
break;
|
||||
}
|
||||
case "skillPointsRate":
|
||||
case "spRate":
|
||||
{
|
||||
_spRateMin = parseDouble(listItem.getAttributes(), "min");
|
||||
_spRateMax = parseDouble(listItem.getAttributes(), "max");
|
||||
@ -96,20 +101,39 @@ public final class FishingData implements IGameXmlReader
|
||||
{
|
||||
final NamedNodeMap attrs = bait.getAttributes();
|
||||
final int itemId = parseInteger(attrs, "itemId");
|
||||
final int level = parseInteger(attrs, "level");
|
||||
final int minPlayerLevel = parseInteger(attrs, "minPlayerLevel");
|
||||
final byte level = parseByte(attrs, "level", (byte) 1);
|
||||
final byte minPlayerLevel = parseByte(attrs, "minPlayerLevel");
|
||||
final byte maxPlayerLevel = parseByte(attrs, "minPlayerLevel", Config.PLAYER_MAXIMUM_LEVEL);
|
||||
final double chance = parseDouble(attrs, "chance");
|
||||
final int timeMin = parseInteger(attrs, "timeMin");
|
||||
final int timeMax = parseInteger(attrs, "timeMax");
|
||||
final int timeMax = parseInteger(attrs, "timeMax", timeMin);
|
||||
final int waitMin = parseInteger(attrs, "waitMin");
|
||||
final int waitMax = parseInteger(attrs, "waitMax");
|
||||
final FishingBaitData baitData = new FishingBaitData(itemId, level, minPlayerLevel, chance, timeMin, timeMax, waitMin, waitMax);
|
||||
final int waitMax = parseInteger(attrs, "waitMax", waitMin);
|
||||
final boolean isPremiumOnly = parseBoolean(attrs, "isPremiumOnly", false);
|
||||
|
||||
if (ItemTable.getInstance().getTemplate(itemId) == null)
|
||||
{
|
||||
LOGGER.info(getClass().getSimpleName() + ": Could not find item with id " + itemId);
|
||||
continue;
|
||||
}
|
||||
|
||||
final FishingBait baitData = new FishingBait(itemId, level, minPlayerLevel, maxPlayerLevel, chance, timeMin, timeMax, waitMin, waitMax, isPremiumOnly);
|
||||
for (Node c = bait.getFirstChild(); c != null; c = c.getNextSibling())
|
||||
{
|
||||
if ("catch".equalsIgnoreCase(c.getNodeName()))
|
||||
{
|
||||
baitData.addReward(parseInteger(c.getAttributes(), "itemId"));
|
||||
final NamedNodeMap cAttrs = c.getAttributes();
|
||||
final int cId = parseInteger(cAttrs, "itemId");
|
||||
final float cChance = parseFloat(cAttrs, "chance");
|
||||
final float cMultiplier = parseFloat(cAttrs, "multiplier", 1f);
|
||||
|
||||
if (ItemTable.getInstance().getTemplate(cId) == null)
|
||||
{
|
||||
LOGGER.info(getClass().getSimpleName() + ": Could not find item with id " + itemId);
|
||||
continue;
|
||||
}
|
||||
|
||||
baitData.addReward(new FishingCatch(cId, cChance, cMultiplier));
|
||||
}
|
||||
}
|
||||
_baitData.put(baitData.getItemId(), baitData);
|
||||
@ -117,22 +141,44 @@ public final class FishingData implements IGameXmlReader
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "rods":
|
||||
{
|
||||
for (Node rod = listItem.getFirstChild(); rod != null; rod = rod.getNextSibling())
|
||||
{
|
||||
if ("rod".equalsIgnoreCase(rod.getNodeName()))
|
||||
{
|
||||
final NamedNodeMap attrs = rod.getAttributes();
|
||||
final int itemId = parseInteger(attrs, "itemId");
|
||||
final int reduceFishingTime = parseInteger(attrs, "reduceFishingTime", 0);
|
||||
final float xpMultiplier = parseFloat(attrs, "xpMultiplier", 1f);
|
||||
final float spMultiplier = parseFloat(attrs, "spMultiplier", 1f);
|
||||
|
||||
if (ItemTable.getInstance().getTemplate(itemId) == null)
|
||||
{
|
||||
LOGGER.info(getClass().getSimpleName() + ": Could not find item with id " + itemId);
|
||||
continue;
|
||||
}
|
||||
|
||||
_rodData.put(itemId, new FishingRod(itemId, reduceFishingTime, xpMultiplier, spMultiplier));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the fishing rod.
|
||||
* @param baitItemId the item id
|
||||
* @return A list of reward item ids
|
||||
*/
|
||||
public FishingBaitData getBaitData(int baitItemId)
|
||||
public FishingBait getBaitData(int baitItemId)
|
||||
{
|
||||
return _baitData.get(baitItemId);
|
||||
}
|
||||
|
||||
public FishingRod getRodData(int rodItemId)
|
||||
{
|
||||
return _rodData.get(rodItemId);
|
||||
}
|
||||
|
||||
public int getBaitDistanceMin()
|
||||
{
|
||||
return _baitDistanceMin;
|
||||
|
@ -122,7 +122,6 @@ import com.l2jmobius.gameserver.model.ArenaParticipantsHolder;
|
||||
import com.l2jmobius.gameserver.model.BlockList;
|
||||
import com.l2jmobius.gameserver.model.ClanPrivilege;
|
||||
import com.l2jmobius.gameserver.model.ClanWar;
|
||||
import com.l2jmobius.gameserver.model.Fishing;
|
||||
import com.l2jmobius.gameserver.model.L2AccessLevel;
|
||||
import com.l2jmobius.gameserver.model.L2Clan;
|
||||
import com.l2jmobius.gameserver.model.L2ClanMember;
|
||||
@ -210,6 +209,7 @@ import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerPvPCh
|
||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerPvPKill;
|
||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerReputationChanged;
|
||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerSubChange;
|
||||
import com.l2jmobius.gameserver.model.fishing.Fishing;
|
||||
import com.l2jmobius.gameserver.model.holders.AttendanceInfoHolder;
|
||||
import com.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import com.l2jmobius.gameserver.model.holders.MovieHolder;
|
||||
|
@ -14,7 +14,7 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.l2jmobius.gameserver.model;
|
||||
package com.l2jmobius.gameserver.model.fishing;
|
||||
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.logging.Level;
|
||||
@ -27,6 +27,8 @@ import com.l2jmobius.gameserver.data.xml.impl.FishingData;
|
||||
import com.l2jmobius.gameserver.enums.ShotType;
|
||||
import com.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||
import com.l2jmobius.gameserver.instancemanager.ZoneManager;
|
||||
import com.l2jmobius.gameserver.model.Location;
|
||||
import com.l2jmobius.gameserver.model.PcCondOverride;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.events.EventDispatcher;
|
||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerFishing;
|
||||
@ -87,7 +89,7 @@ public class Fishing
|
||||
return !_player.isDead() && !_player.isAlikeDead() && !_player.hasBlockActions() && !_player.isSitting();
|
||||
}
|
||||
|
||||
private FishingBaitData getCurrentBaitData()
|
||||
private FishingBait getCurrentBaitData()
|
||||
{
|
||||
final L2ItemInstance bait = _player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND);
|
||||
return bait != null ? FishingData.getInstance().getBaitData(bait.getId()) : null;
|
||||
@ -140,18 +142,39 @@ public class Fishing
|
||||
return;
|
||||
}
|
||||
|
||||
final FishingBaitData baitData = getCurrentBaitData();
|
||||
final int minPlayerLevel = baitData == null ? 85 : baitData.getMinPlayerLevel();
|
||||
if (_player.getLevel() < minPlayerLevel)
|
||||
final FishingBait baitData = getCurrentBaitData();
|
||||
if (baitData == null)
|
||||
{
|
||||
if (minPlayerLevel == 85)
|
||||
{
|
||||
_player.sendPacket(SystemMessageId.FISHING_IS_AVAILABLE_TO_CHARACTERS_LV_85_OR_ABOVE);
|
||||
_player.sendPacket(SystemMessageId.YOU_MUST_PUT_BAIT_ON_YOUR_HOOK_BEFORE_YOU_CAN_FISH);
|
||||
_player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
stopFishing(FishingEndType.ERROR);
|
||||
return;
|
||||
}
|
||||
else // In case of custom fishing level.
|
||||
|
||||
if (Config.PREMIUM_SYSTEM_ENABLED)
|
||||
{
|
||||
if (Config.PREMIUM_ONLY_FISHING && !_player.hasPremiumStatus())
|
||||
{
|
||||
_player.sendMessage("Fishing is available to premium users only.");
|
||||
_player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
stopFishing(FishingEndType.ERROR);
|
||||
return;
|
||||
}
|
||||
|
||||
if (baitData.isPremiumOnly() && !_player.hasPremiumStatus())
|
||||
{
|
||||
_player.sendPacket(SystemMessageId.FAILED_PLEASE_TRY_AGAIN_USING_THE_CORRECT_BAIT);
|
||||
_player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
stopFishing(FishingEndType.ERROR);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final int minPlayerLevel = baitData.getMinPlayerLevel();
|
||||
final int maxPLayerLevel = baitData.getMaxPlayerLevel();
|
||||
if ((_player.getLevel() < minPlayerLevel) && (_player.getLevel() > maxPLayerLevel))
|
||||
{
|
||||
_player.sendPacket(SystemMessageId.YOU_DO_NOT_MEET_THE_FISHING_LEVEL_REQUIREMENTS);
|
||||
}
|
||||
_player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
stopFishing(FishingEndType.ERROR);
|
||||
return;
|
||||
@ -166,9 +189,10 @@ public class Fishing
|
||||
return;
|
||||
}
|
||||
|
||||
if (baitData == null)
|
||||
final FishingRod rodData = FishingData.getInstance().getRodData(rod.getId());
|
||||
if (rodData == null)
|
||||
{
|
||||
_player.sendPacket(SystemMessageId.YOU_MUST_PUT_BAIT_ON_YOUR_HOOK_BEFORE_YOU_CAN_FISH);
|
||||
_player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_FISHING_POLE_EQUIPPED);
|
||||
_player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
stopFishing(FishingEndType.ERROR);
|
||||
return;
|
||||
@ -220,13 +244,16 @@ public class Fishing
|
||||
_player.rechargeShots(false, false, true);
|
||||
}
|
||||
|
||||
final long fishingTime = Math.max(Rnd.get(baitData.getTimeMin(), baitData.getTimeMax()) - rodData.getReduceFishingTime(), 1000);
|
||||
final long fishingWaitTime = Rnd.get(baitData.getWaitMin(), baitData.getWaitMax());
|
||||
|
||||
_reelInTask = ThreadPool.schedule(() ->
|
||||
{
|
||||
_player.getFishing().reelInWithReward();
|
||||
_startFishingTask = ThreadPool.schedule(() -> _player.getFishing().castLine(), Rnd.get(baitData.getWaitMin(), baitData.getWaitMax()));
|
||||
}, Rnd.get(baitData.getTimeMin(), baitData.getTimeMax()));
|
||||
_startFishingTask = ThreadPool.schedule(() -> _player.getFishing().castLine(), fishingWaitTime);
|
||||
}, fishingTime);
|
||||
_player.stopMove(null);
|
||||
_player.broadcastPacket(new ExFishingStart(_player, -1, baitData.getLevel(), _baitLocation));
|
||||
_player.broadcastPacket(new ExFishingStart(_player, -1, _baitLocation));
|
||||
_player.sendPacket(new ExUserInfoFishing(_player, true, _baitLocation));
|
||||
_player.sendPacket(new PlaySound("SF_P_01"));
|
||||
_player.sendPacket(SystemMessageId.YOU_CAST_YOUR_LINE_AND_START_TO_FISH);
|
||||
@ -236,7 +263,7 @@ public class Fishing
|
||||
{
|
||||
// Fish may or may not eat the hook. If it does - it consumes fishing bait and fishing shot.
|
||||
// Then player may or may not catch the fish. Using fishing shots increases chance to win.
|
||||
final FishingBaitData baitData = getCurrentBaitData();
|
||||
final FishingBait baitData = getCurrentBaitData();
|
||||
if (baitData == null)
|
||||
{
|
||||
reelIn(FishingEndReason.LOSE, false);
|
||||
@ -247,10 +274,10 @@ public class Fishing
|
||||
double chance = baitData.getChance();
|
||||
if (_player.isChargedShot(ShotType.FISH_SOULSHOTS))
|
||||
{
|
||||
chance *= 1.5; // +50 % chance to win
|
||||
chance *= 2;
|
||||
}
|
||||
|
||||
if (Rnd.get(0, 100) <= chance)
|
||||
if (Rnd.get(100) <= chance)
|
||||
{
|
||||
reelIn(FishingEndReason.WIN, true);
|
||||
}
|
||||
@ -283,17 +310,18 @@ public class Fishing
|
||||
|
||||
if ((reason == FishingEndReason.WIN) && (bait != null))
|
||||
{
|
||||
final FishingBaitData baitData = FishingData.getInstance().getBaitData(bait.getId());
|
||||
final int numRewards = baitData.getRewards().size();
|
||||
if (numRewards > 0)
|
||||
final FishingBait baitData = FishingData.getInstance().getBaitData(bait.getId());
|
||||
final FishingCatch fishingCatchData = baitData.getRandom();
|
||||
if (fishingCatchData != null)
|
||||
{
|
||||
final FishingData fishingData = FishingData.getInstance();
|
||||
final int lvlModifier = _player.getLevel() * _player.getLevel();
|
||||
_player.addExpAndSp(Rnd.get(fishingData.getExpRateMin(), fishingData.getExpRateMax()) * lvlModifier, Rnd.get(fishingData.getSpRateMin(), fishingData.getSpRateMax()) * lvlModifier, true);
|
||||
final int fishId = baitData.getRewards().get(Rnd.get(0, numRewards - 1));
|
||||
_player.getInventory().addItem("Fishing Reward", fishId, 1, _player, null);
|
||||
final double lvlModifier = (Math.pow(_player.getLevel(), 2.2) * fishingCatchData.getMultiplier());
|
||||
final long xp = (long) (Rnd.get(fishingData.getExpRateMin(), fishingData.getExpRateMax()) * lvlModifier);
|
||||
final long sp = (long) (Rnd.get(fishingData.getSpRateMin(), fishingData.getSpRateMax()) * lvlModifier);
|
||||
_player.addExpAndSp(xp, sp, true);
|
||||
_player.getInventory().addItem("Fishing Reward", fishingCatchData.getItemId(), 1, _player, null);
|
||||
final SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_EARNED_S1);
|
||||
msg.addItemName(fishId);
|
||||
msg.addItemName(fishingCatchData.getItemId());
|
||||
_player.sendPacket(msg);
|
||||
_player.unchargeShot(ShotType.FISH_SOULSHOTS);
|
||||
_player.rechargeShots(false, false, true);
|
@ -14,36 +14,42 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.l2jmobius.gameserver.model;
|
||||
package com.l2jmobius.gameserver.model.fishing;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jmobius.commons.util.Rnd;
|
||||
|
||||
/**
|
||||
* @author bit
|
||||
*/
|
||||
public class FishingBaitData
|
||||
public class FishingBait
|
||||
{
|
||||
private final int _itemId;
|
||||
private final int _level;
|
||||
private final int _minPlayerLevel;
|
||||
private final byte _level;
|
||||
private final byte _minPlayerLevel;
|
||||
private final byte _maxPlayerLevel;
|
||||
private final double _chance;
|
||||
private final int _timeMin;
|
||||
private final int _timeMax;
|
||||
private final int _waitMin;
|
||||
private final int _waitMax;
|
||||
private final List<Integer> _rewards = new ArrayList<>();
|
||||
private final boolean _isPremiumOnly;
|
||||
private final List<FishingCatch> _rewards = new ArrayList<>();
|
||||
|
||||
public FishingBaitData(int itemId, int level, int minPlayerLevel, double chance, int timeMin, int timeMax, int waitMin, int waitMax)
|
||||
public FishingBait(int itemId, byte level, byte minPlayerLevel, byte maxPlayerLevel, double chance, int timeMin, int timeMax, int waitMin, int waitMax, boolean isPremiumOnly)
|
||||
{
|
||||
_itemId = itemId;
|
||||
_level = level;
|
||||
_minPlayerLevel = minPlayerLevel;
|
||||
_maxPlayerLevel = maxPlayerLevel;
|
||||
_chance = chance;
|
||||
_timeMin = timeMin;
|
||||
_timeMax = timeMax;
|
||||
_waitMin = waitMin;
|
||||
_waitMax = waitMax;
|
||||
_isPremiumOnly = isPremiumOnly;
|
||||
}
|
||||
|
||||
public int getItemId()
|
||||
@ -51,16 +57,21 @@ public class FishingBaitData
|
||||
return _itemId;
|
||||
}
|
||||
|
||||
public int getLevel()
|
||||
public byte getLevel()
|
||||
{
|
||||
return _level;
|
||||
}
|
||||
|
||||
public int getMinPlayerLevel()
|
||||
public byte getMinPlayerLevel()
|
||||
{
|
||||
return _minPlayerLevel;
|
||||
}
|
||||
|
||||
public byte getMaxPlayerLevel()
|
||||
{
|
||||
return _maxPlayerLevel;
|
||||
}
|
||||
|
||||
public double getChance()
|
||||
{
|
||||
return _chance;
|
||||
@ -86,13 +97,32 @@ public class FishingBaitData
|
||||
return _waitMax;
|
||||
}
|
||||
|
||||
public List<Integer> getRewards()
|
||||
public boolean isPremiumOnly()
|
||||
{
|
||||
return _isPremiumOnly;
|
||||
}
|
||||
|
||||
public List<FishingCatch> getRewards()
|
||||
{
|
||||
return _rewards;
|
||||
}
|
||||
|
||||
public void addReward(int itemId)
|
||||
public void addReward(FishingCatch catchData)
|
||||
{
|
||||
_rewards.add(itemId);
|
||||
_rewards.add(catchData);
|
||||
}
|
||||
|
||||
public FishingCatch getRandom()
|
||||
{
|
||||
float random = Rnd.get(100);
|
||||
for (FishingCatch fishingCatchData : _rewards)
|
||||
{
|
||||
if (fishingCatchData.getChance() > random)
|
||||
{
|
||||
return fishingCatchData;
|
||||
}
|
||||
random -= fishingCatchData.getChance();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.l2jmobius.gameserver.model.fishing;
|
||||
|
||||
/**
|
||||
* @author Zarcos
|
||||
*/
|
||||
public class FishingCatch
|
||||
{
|
||||
private final int _itemId;
|
||||
private final float _chance;
|
||||
private final float _multiplier;
|
||||
|
||||
public FishingCatch(int itemId, float chance, float multiplier)
|
||||
{
|
||||
_itemId = itemId;
|
||||
_chance = chance;
|
||||
_multiplier = multiplier;
|
||||
}
|
||||
|
||||
public int getItemId()
|
||||
{
|
||||
return _itemId;
|
||||
}
|
||||
|
||||
public float getChance()
|
||||
{
|
||||
return _chance;
|
||||
}
|
||||
|
||||
public float getMultiplier()
|
||||
{
|
||||
return _multiplier;
|
||||
}
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.l2jmobius.gameserver.model.fishing;
|
||||
|
||||
/**
|
||||
* @author Zarcos
|
||||
*/
|
||||
public class FishingRod
|
||||
{
|
||||
private final int _itemId;
|
||||
private final int _reduceFishingTime;
|
||||
private final float _xpMultiplier;
|
||||
private final float _spMultiplier;
|
||||
|
||||
public FishingRod(int itemId, int reduceFishingTime, float xpMultiplier, float spMultiplier)
|
||||
{
|
||||
_itemId = itemId;
|
||||
_reduceFishingTime = reduceFishingTime;
|
||||
_xpMultiplier = xpMultiplier;
|
||||
_spMultiplier = spMultiplier;
|
||||
}
|
||||
|
||||
public int getItemId()
|
||||
{
|
||||
return _itemId;
|
||||
}
|
||||
|
||||
public int getReduceFishingTime()
|
||||
{
|
||||
return _reduceFishingTime;
|
||||
}
|
||||
|
||||
public float getXpMultiplier()
|
||||
{
|
||||
return _xpMultiplier;
|
||||
}
|
||||
|
||||
public float getSpMultiplier()
|
||||
{
|
||||
return _spMultiplier;
|
||||
}
|
||||
}
|
@ -20,10 +20,10 @@ import java.lang.ref.WeakReference;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.commons.concurrent.ThreadPool;
|
||||
import com.l2jmobius.gameserver.model.Fishing;
|
||||
import com.l2jmobius.gameserver.model.PcCondOverride;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.fishing.Fishing;
|
||||
import com.l2jmobius.gameserver.model.zone.L2ZoneType;
|
||||
import com.l2jmobius.gameserver.model.zone.ZoneId;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.fishing.ExAutoFishAvailable;
|
||||
|
@ -29,20 +29,17 @@ public class ExFishingStart implements IClientOutgoingPacket
|
||||
{
|
||||
private final L2PcInstance _player;
|
||||
private final int _fishType;
|
||||
private final int _baitType;
|
||||
private final ILocational _baitLocation;
|
||||
|
||||
/**
|
||||
* @param player
|
||||
* @param fishType
|
||||
* @param baitType - 0 = newbie, 1 = normal, 2 = night
|
||||
* @param baitLocation
|
||||
*/
|
||||
public ExFishingStart(L2PcInstance player, int fishType, int baitType, ILocational baitLocation)
|
||||
public ExFishingStart(L2PcInstance player, int fishType, ILocational baitLocation)
|
||||
{
|
||||
_player = player;
|
||||
_fishType = fishType;
|
||||
_baitType = baitType;
|
||||
_baitLocation = baitLocation;
|
||||
}
|
||||
|
||||
@ -55,7 +52,7 @@ public class ExFishingStart implements IClientOutgoingPacket
|
||||
packet.writeD(_baitLocation.getX());
|
||||
packet.writeD(_baitLocation.getY());
|
||||
packet.writeD(_baitLocation.getZ());
|
||||
packet.writeC(_baitType);
|
||||
packet.writeC(0x01); // 0 = newbie, 1 = normal, 2 = night
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -45,3 +45,7 @@ EnablePremiumHennaSlotforNonPremium = True
|
||||
# Also premium henna drawn at normal slots.
|
||||
# Retail: False
|
||||
EnableAnyHennaAtPremiumSlot = False
|
||||
|
||||
# Enable Fishing only for premium players.
|
||||
# Retail: True
|
||||
PremiumOnlyFishing = False
|
||||
|
@ -1,44 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="./xsd/Fishing.xsd">
|
||||
<baitDistance min="90" max="250" />
|
||||
<experienceRate min="650" max="700" />
|
||||
<skillPointsRate min="40" max="45" />
|
||||
<xpRate min="1" max="1" /> <!-- XP modifiction rate -->
|
||||
<spRate min="1" max="1" /> <!-- SP modifiction rate -->
|
||||
<baits>
|
||||
<bait itemId="45495" level="1" minPlayerLevel="85" chance="64" timeMin="45000" timeMax="45000" waitMin="15000" waitMax="15000"> <!-- Normal Bait -->
|
||||
<catch itemId="45473" /> <!-- Fresh Blue Mackerel -->
|
||||
<catch itemId="45474" /> <!-- Fresh Minnow -->
|
||||
<catch itemId="45475" /> <!-- Fresh Flatcatch -->
|
||||
<catch itemId="45476" /> <!-- Fresh Mandarin catch -->
|
||||
<catch itemId="45477" /> <!-- Fresh Rockcatch -->
|
||||
<catch itemId="45478" /> <!-- Fresh Goldcatch -->
|
||||
<catch itemId="45479" /> <!-- Fresh Salmon -->
|
||||
<catch itemId="45480" /> <!-- Fresh Eel -->
|
||||
<catch itemId="45486" /> <!-- Wooden Treasure Chest -->
|
||||
<bait itemId="47547" minPlayerLevel="85" chance="40" timeMin="105000" waitMin="15000" > <!-- Bait -->
|
||||
<catch itemId="47550" chance="70" multiplier="1" /> <!-- Ugly Fish -->
|
||||
<catch itemId="47551" chance="25" multiplier="1" /> <!-- Nimble Fish -->
|
||||
<catch itemId="47552" chance="3" multiplier="1" /> <!-- Powerful Fish -->
|
||||
<catch itemId="47553" chance="2" multiplier="1" /> <!-- Blueish Box -->
|
||||
</bait>
|
||||
<bait itemId="45496" level="2" minPlayerLevel="85" chance="64" timeMin="45000" timeMax="45000" waitMin="15000" waitMax="15000"> <!-- Special Bait -->
|
||||
<catch itemId="45481" /> <!-- Fresh Marlin -->
|
||||
<catch itemId="45482" /> <!-- Fresh Catcatch -->
|
||||
<catch itemId="45483" /> <!-- Fresh Tuna -->
|
||||
<catch itemId="45484" /> <!-- Fresh Carp -->
|
||||
<catch itemId="45485" /> <!-- Fresh Whale -->
|
||||
<catch itemId="45487" /> <!-- Silver Treasure Chest -->
|
||||
<catch itemId="45488" /> <!-- Golden Treasure Chest -->
|
||||
<bait itemId="47548" minPlayerLevel="99" chance="40" timeMin="105000" waitMin="15000" > <!-- Bait(R99) -->
|
||||
<catch itemId="47550" chance="70" multiplier="1476" /> <!-- Ugly Fish -->
|
||||
<catch itemId="47551" chance="25" multiplier="1804" /> <!-- Nimble Fish -->
|
||||
<catch itemId="47552" chance="3" multiplier="1968" /> <!-- Powerful Fish -->
|
||||
<catch itemId="47554" chance="2" multiplier="1" /> <!-- Reddish Box -->
|
||||
</bait>
|
||||
<bait itemId="46084" level="3" minPlayerLevel="85" chance="30" timeMin="45000" timeMax="45000" waitMin="15000" waitMax="15000"> <!-- Player Commendation Special Bait -->
|
||||
<catch itemId="46085" /> <!-- Treasure Map Piece - 1 -->
|
||||
<catch itemId="46086" /> <!-- Treasure Map Piece - 2 -->
|
||||
<catch itemId="46087" /> <!-- Treasure Map Piece - 3 -->
|
||||
<catch itemId="46088" /> <!-- Treasure Map Piece - 4 -->
|
||||
<catch itemId="46089" /> <!-- Treasure Map Piece - 5 -->
|
||||
</bait>
|
||||
<bait itemId="46737" level="1" minPlayerLevel="85" chance="30" timeMin="10000" timeMax="10000" waitMin="15000" waitMax="15000"> <!-- Practice Bait -->
|
||||
<catch itemId="46736" /> <!-- Practice Fish -->
|
||||
</bait>
|
||||
<bait itemId="47547" level="1" minPlayerLevel="85" chance="10" timeMin="105000" timeMax="105000" waitMin="15000" waitMax="15000"> <!-- Bait -->
|
||||
<catch itemId="47553" /> <!-- Blueish Box -->
|
||||
</bait>
|
||||
<bait itemId="47548" level="2" minPlayerLevel="99" chance="10" timeMin="105000" timeMax="105000" waitMin="15000" waitMax="15000"> <!-- Bait -->
|
||||
<catch itemId="47554" /> <!-- Redish Box -->
|
||||
<bait itemId="47549" minPlayerLevel="85" chance="40" timeMin="105000" waitMin="15000" > <!-- PA Bait -->
|
||||
<catch itemId="47550" chance="70" multiplier="1" /> <!-- Ugly Fish -->
|
||||
<catch itemId="47551" chance="25" multiplier="1" /> <!-- Nimble Fish -->
|
||||
<catch itemId="47552" chance="3" multiplier="1" /> <!-- Powerful Fish -->
|
||||
<catch itemId="47554" chance="2" multiplier="1" /> <!-- Purplish Box -->
|
||||
</bait>
|
||||
</baits>
|
||||
<rods>
|
||||
<rod itemId="45492" /> <!-- Normal Fishing Rod - 30-day -->
|
||||
<rod itemId="45494" /> <!-- Sturdy Fishing Rod -->
|
||||
<rod itemId="46738" /> <!-- Practice Fishing Rod -->
|
||||
<rod itemId="46740" /> <!-- Reward Fishing Rod - 7-day -->
|
||||
<rod itemId="27632" reduceFishingTime="100" xpMultiplier="1.5" spMultiplier="1.5" /> <!-- Fancy Fishing Rod -->
|
||||
<rod itemId="27633" reduceFishingTime="100" xpMultiplier="1.5" spMultiplier="1.5" /> <!-- Fancy Fishing Rod - 1-day -->
|
||||
<rod itemId="27635" reduceFishingTime="100" xpMultiplier="1.5" spMultiplier="1.5" /> <!-- Fancy Fishing Rod - 7-day -->
|
||||
<rod itemId="27637" reduceFishingTime="100" xpMultiplier="1.5" spMultiplier="1.5" /> <!-- Fancy Fishing Rod - 30-day -->
|
||||
<rod itemId="47557" reduceFishingTime="10" /> <!-- Master Fishing Rod - Stage 1 -->
|
||||
<rod itemId="47558" reduceFishingTime="15" /> <!-- Master Fishing Rod - Stage 2 -->
|
||||
<rod itemId="47559" reduceFishingTime="20" /> <!-- Master Fishing Rod - Stage 3 -->
|
||||
<rod itemId="47560" reduceFishingTime="25" /> <!-- Master Fishing Rod - Stage 4 -->
|
||||
<rod itemId="47561" reduceFishingTime="30" /> <!-- Master Fishing Rod - Stage 5 -->
|
||||
</rods>
|
||||
</list>
|
7
L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/default/34156-1.htm
vendored
Normal file
7
L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/default/34156-1.htm
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
<html><body>Fisher Peeves:<br>
|
||||
Heine Exclusive Bait is really great! It must be a gift from the fishing gods!<br>
|
||||
There are some items that can only be caught with Heine Exclusive Bait. Isn't that amazing?<br>
|
||||
No doubt the fishing gods heard about this place that gets filled with fishers and decided to grace us with this amazing bait.<br>
|
||||
You should try it out!<br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</button>
|
||||
</body></html>
|
11
L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/default/34156.htm
vendored
Normal file
11
L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/default/34156.htm
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
<html><body>Fisher Peeves:<br>
|
||||
Oh, nice to meet you! I'm Peeves, a fisher.<br>
|
||||
When I was young, my parents didn't want me to fish since it's dangerous... But how could I stop doing something so fun?<br>
|
||||
Are you interested in fishing? Have you heard of the <font color="LEVEL">Heine Exclusive Bait</font>?<br>
|
||||
If you have a <font color="LEVEL">Heine Exclusive Bait Coupon</font>, I can exchange it for <font color="LEVEL">Heine Exclusive Bait</font>.<br>
|
||||
Oh yeah, I also got a special fishing rod. Bring me some <font color="LEVEL">Heine Fishing Coins</font> and I'll give you a <font color="LEVEL">Fancy Fishing Rod</font>.<br>
|
||||
You can get them from the <font color="LEVEL">Exclusive Reward Chest</font> that you can get when you fish with <font color="LEVEL">Heine Exclusive Bait</font>.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 1">"Tell me about Heine Exclusive Bait."</button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144"><font color="LEVEL">"I have a Heine Exclusive Bait Coupon."</font></Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 3034">"I want to exchange for a Fancy Fishing Rod."</Button>
|
||||
<body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Perelin:<br>
|
||||
Do you like fishing? I love it.<br>
|
||||
Fishing is such a great hobby, don't you think? Sure, it's not very exerting, but...that's the point. I don't like to run around sweating, you know? You can just sit quietly and enjoy the silence.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3156300">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Fishing is such a great hobby, don't you think? Sure, it's not very exerting, but...that's the point. I don't like to run around sweating, you know? You can just sit quietly and enjoy silence. <br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Bleaker:<br>
|
||||
Nice to meet you! They call me Bleaker.<br>
|
||||
Besides teaching you how to fish, I also sell the fishing gear you'll need. Oh, and I'll buy any fish you catch. In other words, this is your one-stop fishing shop!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3156700">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Nice to meet you! They call me Bleaker. I am with the Fishing Guild. If it has to do with fishing, I'm your man. Most of the time, anyway.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Pamfus:<br>
|
||||
Do you like fishing? I love it.<br>
|
||||
Fishing is such a great hobby, don't you think? Sure, it's not very exerting, but...that's the point. I don't like to run around sweating, you know? You can just sit quietly and enjoy the silence.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3156800">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
There's no hobby other than fishing that lets you enjoy the nature around you so much. I really do love fishing.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,15 +1,13 @@
|
||||
<html><body>Fishing Guild Member Lanosco:<br>
|
||||
Did you catch one?<br>
|
||||
Heh, fishing is harder than it looks, right? You need to be prepared at all times.<br>
|
||||
Which is why I'm here! Come see me whenever you need something, and I'll set you right up.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157000">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Hi, I'm Fishing Guild Member Lanosco. Did you catch anything today? Fishing is not as easy as you might, you know. You need to prepare thoroughly.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishermen's Guild Member Huffs:<br>
|
||||
Welcome! Are you here to fish?<br>
|
||||
There's no better way to relax and decompress after a stressful day, week, or life! Haha!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157100">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Hello, and welcome. Are you here to learn about fishing? There's no better way to relax and decompress after a stressful day, week, or life! Haha! It's quite the experience, wrestling huge fish along the coast or on the riverbanks, armed with little more than a rod and some string.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member O'Fulle:<br>
|
||||
Everything is plentiful here in Giran, which is why so many people spend their leisure time fishing. It's a sign of abundance!<br>
|
||||
Oh, pardon me -- I'm O'Fulle, the only officially licensed fishing gear merchant in this territory! See me if you need to buy bait or sell fish. Fish only -- no mermaids! Haha!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157200">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
I'm Fishing Guild Member O'Fulle. Try your luck at fishing in Giran, the land of plenty! Watch out, catching mermaids might get you into trouble! Stick with the fish! Hahaha!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Monakan:<br>
|
||||
Well, hello there. I'm Monakan.<br>
|
||||
I can teach you about fishing items as well as how to fish. Oh, I'll also buy any fish you catch. In other words, this is your one-stop fishing shop!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157300">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Well, hello there. I'm Monakan, a member of the Fishing Guild. I'm the one to come to when it comes to fishing, since I deal not only in fishing supplies but also the fish that are caught.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,13 +1,13 @@
|
||||
<html><body>Fishing Guild Member Willie:<br>
|
||||
Fishing has become all the rage in these parts! I think it's because of all the brainy people around here -- the Ivory Tower, for example! Lots of them just sit there thinking, and forget to actually catch the fish!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157400">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Oren is a city of culture, to which many intelligent ones flock. That's why we have so many fishing enthusiasts! <br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Litulon:<br>
|
||||
There's no better place for fishing than Innadril. Wet and warm all year round, beautiful scenery, the best place in the whole world.<br>
|
||||
I mean, Goddess Eva watches over us after all. The City of Waters! Haha!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157500">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
The Innadril Territory is just the spot for fishing. I mean, Goddess Eva watches over us after all. The City of Waters! Haha!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,14 @@
|
||||
<html><body> Fishing Guild Member Berix:<br>
|
||||
I'm quite happy to be holding the fishing contest in my native town. It's good to know I can do what I love, where I live.<br>
|
||||
I think it's time we got to it, perfect weather for fishing!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157600">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Pleased to meet you. I'm Berix, a member of the Fishing Guild. See, people tend to think that there are only hunters in the Hunter's Village, but we have a lot of great fishers as well! I'm one of them, you see. Hahahaha.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Linnaeus:<br>
|
||||
Did you know that the king is an avid fisher himself? Haha!<br>
|
||||
Aden is filled with prime fishing zones. How about spending this beautiful day on one of them?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157700">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Did you know that the King is an avid fisher himself? Haha! We at the Fishing Guild are quite proud of this fact. He's actually quite the Master!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Hilgendorf:<br>
|
||||
Welcome! Beautiful day for fishing, dontcha' think?<br>
|
||||
My family has been in the Guild for generations, ever since my great-grandfather joined.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157800">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Welcome, and good to see you! The weather's perfect for fishing, wouldn't you agree? My family has been in the Guild for generations, ever since my great-grandfather joined. <br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Klaus:<br>
|
||||
Well, well, well! Another fisher, huh?<br>
|
||||
You know how lucky you are to be here, right? With its many mountain streams and lakes, Goddard is a prime fishing land. People come from all over to test their skill and try their luck here.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3157900">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
I am Klaus, one of Fishing Guild members. If you have anything you need related with fishing, fine me. <br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Platis:<br>
|
||||
This area is a rare spot in Elmore where you can catch actual saltwater fish. It used to be a famous fishing site in the Elmoreden years, and now that things have slowed down, the fish population is back.<br>
|
||||
Care to give it a try? Let me know if you need any equipment!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3169600">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
This has been a very popular fishing dock since the age of the Elmoreden. This is the tranquil and beautiful fishing spot you've been searching high and low for, I tell you!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Eindarkner:<br>
|
||||
Do you know about these hot springs? The effects of the nearby Forge of the Gods have created a whole network of them around here. There are special species of fish living in these hot springs! It's the opportunity of a lifetime.<br>
|
||||
Let me know if you need anything!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3169700">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Have you heard about the Hot Springs in the area? There are natural hot springs everywhere, thanks to the Forge of the Gods. Before, there were fish to be caught in the hot springs as well, but they have all disappeared now. What a pity.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Batidae:<br>
|
||||
You came here to fish, right? Who am I kidding, of course you did!<br>
|
||||
No better way to spend an afternoon than casting the line!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3198900">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Welcome. Want to learn how to fish, do you? You must have really been running out of things to learn to come all the way here to learn about fishing, of all things. Frankly, you'd be doing yourself more good by learning how to mine ore in the mines over there. Anyways, since you're here, really, there's no better way to spend an afternoon than casting the line!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -1,14 +1,13 @@
|
||||
<html><body>Fishing Guild Member Galba:<br>
|
||||
Rainbow Springs -- ahh, heaven!<br>
|
||||
You should try fishing around here. The fish here are huge. Let me know if you need any fishing items or want to sell something.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"So how do you fish?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">"What skills can I learn by fishing?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">"Let's trade fishing gear."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_stew_exchange.htm">"I want to exchange Fish Stew."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2125">"I want to exchange Hair Accessories or Appearance Stones."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2128">"I want to exchange Whale Blubber."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2127">"I want to exchange Fish Pearls."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">"I want to exchange an old item."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
|
||||
Since you've come to find me, I reckon you know that the Rainbow Springs are a veritable heaven on earth for us fishing enthusiasts. That's right, this is some of the best fishing you'll find anywhere. <br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Continue with the Tutorial</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3200700">Trade fishing tools</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2194">Exchange Fish Stew</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fish_appearance_exchange.htm">Exchange appearance items</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2203">See items you can exchange for a Powerful Fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_FishSkillList">See the skills you can learn by fishing</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2144">Use Heine Special Bait Coupon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/exchange_old_items.htm">Exchange previous item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">See the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
11
L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/fisherman/fish_appearance_exchange.htm
vendored
Normal file
11
L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/fisherman/fish_appearance_exchange.htm
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
<html>
|
||||
<body>
|
||||
Exchange for appearance items:<br>
|
||||
<br>
|
||||
<Button ALIGN=LEFT ICON=NORMAL action="bypass -h npc_%objectId%_multisell 2195">Exchange for Weapon Appearance Stone</Button>
|
||||
<br>
|
||||
<Button ALIGN=LEFT ICON=NORMAL action="bypass -h npc_%objectId%_multisell 2207">Exchange for Transformation Scroll</Button>
|
||||
<br>
|
||||
<Button ALIGN=LEFT ICON=NORMAL action="bypass -h npc_%objectId%_multisell 2208">Exchange for Hair Accessory</Button>
|
||||
</body>
|
||||
</html>
|
@ -1,10 +1,8 @@
|
||||
<html><head><body>Fishing Manual:
|
||||
<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual002.htm">1. Preparations to fish</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual003.htm">2. Fishing Zones</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual003.htm">2. About fishing docks</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual004.htm">3. Types of bait</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual008.htm">4. Fishing Shots</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual009.htm">5. Aftermath</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual010.htm">6. About bait</Button>
|
||||
<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual009.htm">5. Dealing with the fish caught</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual010.htm">6. About automatic fishing</Button>
|
||||
</body></html>
|
@ -1,6 +1,5 @@
|
||||
<html><head><body>Fishing Manual:<br>
|
||||
In order to fish, you need to find a fishing area. Once you arrive at the right spot, you'll see the button on the right side of your screen that alerts you that you can fish. <br>
|
||||
In order to fish, you need to find a fishing area. Once you arrive at the right spot, you'll see the button on the right side of your screen that alerts you that you can fish.<br>
|
||||
Then check if you can actually fish. Check that you have a <font color="LEVEL">Fishing Rod</font> and <font color="LEVEL">Bait</font> equipped. You can set the Fishing Shots to be used automatically when you fish.<br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Back</Button>
|
||||
<br>
|
||||
</body></html>
|
@ -1,6 +1,4 @@
|
||||
<html><head><body>Fishing Manual:<br>
|
||||
A fishing zone refers to a place with enough fish to be caught.<br>
|
||||
The places that are good for fishing are the following: <font color="LEVEL">around Lake Iris</font>, <font color="LEVEL">Narsell Lake</font> where the Coliseum is, <font color="LEVEL">Giran Harbor's coast</font>, <font color="LEVEL">around the Plains of the Lizardmen</font>, <font color="LEVEL">waterside in the Town of Gludio</font>, <font color="LEVEL">the Neutral Zone</font>, <font color="LEVEL">Heine</font>, <font color="LEVEL">Fellmere Lake</font>, and the <font color="LEVEL">bridge near the Town of Giran</font>.<br>
|
||||
<html><body>Fishing Manual:<br>
|
||||
In order to fish, you need to find a fishing area. Once you arrive at the right spot, you'll see the button on the right side of your screen that alerts you that you can fish.<br>Then check if you can actually fish. Check that you have a <font color="LEVEL">Fishing Rod</font> and <font color="LEVEL">Bait</font> equipped. You can set the Fishing Shots to be used automatically when you fish.<br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Back</Button>
|
||||
<br>
|
||||
</body></html>
|
@ -1,7 +1,7 @@
|
||||
<html><head><body>Fishing Manual:<br>
|
||||
There are two types of bait.<br>
|
||||
The Normal Bait, you can buy from me.<br>
|
||||
If you want to catch more expensive fish, I recommend you use the Special Bait. I have never seen Special Bait, but I heard that you can get it from the boxes you get from fishing.<br>
|
||||
<html><body>Fishing Manual:<br>
|
||||
There are three types of bait.<br>
|
||||
These are the <font color="LEVEL">basic bait</font>, the <font color="LEVEL">R99 bait</font> which can be used by characters of Lv. 99 and above and he <font color="LEVEL">PC Cafe bait</font>, which can be purchased using PC Cafe Points.<br>
|
||||
Of these, the Fishing Guild sells the <font color="LEVEL">basic bait</font> and the <font color="LEVEL">R99 bait</font>.<br>
|
||||
With each type of bait, you can catch different types of fish. The conditions for purchasing and use vary among bait types as well. The Powerful Fish, which is the most expensive fish you can catch, can be caught using the <font color="LEVEL">R99 bait</font> or the <font color="LEVEL">PC Cafe bait</font>.<br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Back</Button>
|
||||
<br>
|
||||
</body></html>
|
@ -1,7 +1,6 @@
|
||||
<html><head><body>Fishing Manual:<br>
|
||||
<html><body>Fishing Manual:<br>
|
||||
Created by the Black Anvil Guild at the request of Ampitri, the founder of the Fishing Guild, Fishing Shots are variations of Soulshots made for fishing.<br>
|
||||
But while Soulshots amplify a hit, Fishing Shots increase the fisher's <font color="LEVEL">chances of catching a fish</font>.<br>
|
||||
It's an item that will help you catch fish more efficiently.<br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Back</Button>
|
||||
<br>
|
||||
</body></html>
|
@ -1,7 +1,7 @@
|
||||
<html><head><body>Fishing Manual:<br>
|
||||
You can sell the fish whole, take it apart to sell a portion, or use it to craft items. You can also exchange it for Elcyum Powder through our Fishing Guild.<br>
|
||||
Keep in mind that you might lose everything when cutting up your fish though! It depends on your luck.<br>
|
||||
You can also bring Elcyum Powder to our guild to learn some legendary fishing skills. You decide what to do with your fish.<br>
|
||||
<html><body>Fishing Manual:<br>
|
||||
Bring the fish you catch to us to exchange for various items that the Fishing Guild deals in.<br>
|
||||
The <font color="LEVEL">Ugly Fish</font> and <font color="LEVEL">Nimble Fish</font> can be exchanged for <font color="LEVEL">Fish Stew</font>, Appearance Stones, Hair Accessories, Transformation Scrolls, and Weapon Appearance Stones.<br>
|
||||
If you have caught a <font color="LEVEL">Powerful Fish</font>, it may be exchanged for a <font color="LEVEL">Stardust item</font> or <font color="LEVEL">Elcyum Powder</font> which is needed when exchanging for a Zodiac Agathion Treasure Chest. You may also <font color="LEVEL">sell</font> the <font color="LEVEL">fish to the shop</font>.<br>
|
||||
If you bring us Elcyum Powder, we can let you in on a few secret techniques that have been handed down in our guild through the generation. Please think carefully about what you want to do with the fish that you catch.<br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Back</Button>
|
||||
<br>
|
||||
</body></html>
|
@ -1,6 +1,38 @@
|
||||
<html><head><body>Fishing Manual:<br>
|
||||
You can buy Normal Bait from the Fishing Guild. <br>
|
||||
As for the Special Bait, you can get it from the wooden boxes that you get from fishing. Use the Special Bait to catch shiny fish. <br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">Back</Button>
|
||||
<html><body>Fishing Manual:<br>
|
||||
The time required for fishing, and the rate of success vary according to the type of bait, the type of rod, and whether or not Fishing Shot is used.<br>
|
||||
<center>
|
||||
<table border=1 cellspacing=0>
|
||||
<tr>
|
||||
<td align=center width=300><font color="LEVEL">Bait - Fishing Time and Standby Time</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><center>
|
||||
<br>
|
||||
For each bait, the time required until fish bite is preset.<br1>
|
||||
As for the basic bait sold in the shop,<br1>Fishing Time is 105 seconds, and Standby Time is 15 seconds.<br1>This means catching a single fish takes a total of 120 seconds.<br1>
|
||||
<br>
|
||||
</center></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center width=300><font color="LEVEL">Fishing Rod - Fishing Time reduced</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><center>
|
||||
<br>
|
||||
A better fishing rod will reduce Fishing Time.<br1>
|
||||
The Normal Fishing Rod and Sturdy Fishing Rod<br1>will not reduce Fishing Time.<br1>When you obtain Master Fishing Rod Stage 1,<br1>your Fishing Time will begin to decrease.<br>
|
||||
</center></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<br>
|
||||
<td align=center width=300><font color="LEVEL">Fishing Shot - Fishing Probability increased</font></td>
|
||||
<br>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><center>
|
||||
<br>
|
||||
Fishing Shot increases your odds of catching a fish.<br1>
|
||||
<br>
|
||||
</center></td>
|
||||
</tr>
|
||||
</body></html>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user