Moving fishing level check from zone to effect.

This commit is contained in:
MobiusDev 2015-05-17 16:51:46 +00:00
parent 688164f377
commit 5fbcd41959
2 changed files with 27 additions and 29 deletions

View File

@ -134,6 +134,12 @@ public final class Fishing extends AbstractEffect
return;
}
if (player.getLevel() < 85)
{
player.sendMessage("You must be level 85 or higher to fish.");
return;
}
// calculate a position in front of the player with a random distance
int distance = Rnd.get(MIN_BAIT_DISTANCE, MAX_BAIT_DISTANCE);
final double angle = Util.convertHeadingToDegree(player.getHeading());

View File

@ -33,7 +33,6 @@ import com.l2jserver.gameserver.model.items.type.EtcItemType;
import com.l2jserver.gameserver.model.items.type.WeaponType;
import com.l2jserver.gameserver.model.zone.L2ZoneType;
import com.l2jserver.gameserver.model.zone.ZoneId;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.ExAutoFishAvailable;
/**
@ -63,8 +62,10 @@ public class L2FishingZone extends L2ZoneType
if (character.isPlayer() && !Config.SERVER_CLASSIC_SUPPORT)
{
final L2PcInstance plr = (L2PcInstance) character;
stopTask(plr);
_task.put(plr.getObjectId(), ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new FishReq(plr), 100, 7000));
if (!_task.containsKey(plr.getObjectId()))
{
_task.put(plr.getObjectId(), ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new FishReq(plr), 100, 2000));
}
}
}
@ -123,34 +124,25 @@ public class L2FishingZone extends L2ZoneType
{
if (Config.ALLOWFISHING && !player.isFishing() && !player.isInsideZone(ZoneId.WATER) && !player.isInBoat() && !player.isInCraftMode() && !player.isInStoreMode() && !player.isTransformed())
{
// check for equiped fishing rod
final L2Weapon equipedWeapon = player.getActiveWeaponItem();
if (((equipedWeapon == null) || (equipedWeapon.getItemType() != WeaponType.FISHINGROD)))
{
if (player.getLevel() < 85)
{
player.sendPacket(SystemMessageId.YOUR_ATTEMPT_AT_FISHING_HAS_BEEN_CANCELLED);
player.sendMessage("You must be level 85 or higher to fish.");
return;
}
// check for equiped fishing rod
final L2Weapon equipedWeapon = player.getActiveWeaponItem();
if (((equipedWeapon == null) || (equipedWeapon.getItemType() != WeaponType.FISHINGROD)))
{
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_FISHING_POLE_EQUIPPED);
stopTask(player);
}
// check for equiped lure
final L2ItemInstance equipedLeftHand = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND);
if ((equipedLeftHand == null) || (equipedLeftHand.getItemType() != EtcItemType.LURE))
{
player.sendPacket(SystemMessageId.YOU_MUST_PUT_BAIT_ON_YOUR_HOOK_BEFORE_YOU_CAN_FISH);
stopTask(player);
}
player.sendPacket(new ExAutoFishAvailable(player));
stopTask(player);
return;
}
// check for equiped lure
final L2ItemInstance equipedLeftHand = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND);
if ((equipedLeftHand == null) || (equipedLeftHand.getItemType() != EtcItemType.LURE))
{
stopTask(player);
return;
}
player.sendPacket(new ExAutoFishAvailable(player));
}
}
}