Minor Npc class cleanup.

This commit is contained in:
MobiusDevelopment 2022-01-06 23:21:40 +00:00
parent ff4e454f7c
commit 2d2dfa224c
25 changed files with 169 additions and 254 deletions

View File

@ -1568,10 +1568,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1589,6 +1585,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -1568,10 +1568,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1589,6 +1585,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -1568,10 +1568,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1589,6 +1585,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -1568,10 +1568,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1589,6 +1585,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -1568,10 +1568,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1589,6 +1585,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -1568,10 +1568,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1589,6 +1585,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -1568,10 +1568,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1589,6 +1585,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -1568,10 +1568,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1589,6 +1585,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -1569,10 +1569,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1590,6 +1586,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -1569,10 +1569,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1590,6 +1586,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -1569,10 +1569,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1590,6 +1586,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -153,49 +153,6 @@ public class Npc extends Creature
return false; return false;
} }
public class destroyTemporalNPC implements Runnable
{
private final Spawn _oldSpawn;
public destroyTemporalNPC(Spawn spawn)
{
_oldSpawn = spawn;
}
@Override
public void run()
{
try
{
_oldSpawn.getLastSpawn().deleteMe();
_oldSpawn.stopRespawn();
SpawnTable.getInstance().deleteSpawn(_oldSpawn, false);
}
catch (Throwable t)
{
LOGGER.warning(t.toString());
}
}
}
public class destroyTemporalSummon implements Runnable
{
Summon _summon;
Player _player;
public destroyTemporalSummon(Summon summon, Player player)
{
_summon = summon;
_player = player;
}
@Override
public void run()
{
_summon.unSummon(_player);
}
}
/** /**
* Constructor of Npc (use Creature constructor).<br> * Constructor of Npc (use Creature constructor).<br>
* <br> * <br>
@ -1082,7 +1039,6 @@ public class Npc extends Creature
else if (command.equalsIgnoreCase("TerritoryStatus")) else if (command.equalsIgnoreCase("TerritoryStatus"))
{ {
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
{
if (getCastle().getOwnerId() > 0) if (getCastle().getOwnerId() > 0)
{ {
html.setFile("/data/html/territorystatus.htm"); html.setFile("/data/html/territorystatus.htm");
@ -1094,11 +1050,9 @@ public class Npc extends Creature
{ {
html.setFile("/data/html/territorynoclan.htm"); html.setFile("/data/html/territorynoclan.htm");
} }
}
html.replace("%castlename%", getCastle().getName()); html.replace("%castlename%", getCastle().getName());
html.replace("%taxpercent%", "" + getCastle().getTaxPercent()); html.replace("%taxpercent%", "" + getCastle().getTaxPercent());
html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%objectId%", String.valueOf(getObjectId()));
{
if (getCastle().getCastleId() > 6) if (getCastle().getCastleId() > 6)
{ {
html.replace("%territory%", "The Kingdom of Elmore"); html.replace("%territory%", "The Kingdom of Elmore");
@ -1107,7 +1061,6 @@ public class Npc extends Creature
{ {
html.replace("%territory%", "The Kingdom of Aden"); html.replace("%territory%", "The Kingdom of Aden");
} }
}
player.sendPacket(html); player.sendPacket(html);
} }
else if (command.startsWith("Quest")) else if (command.startsWith("Quest"))
@ -1688,8 +1641,6 @@ public class Npc extends Creature
return; return;
} }
final int price = Config.ALT_LOTTERY_TICKET_PRICE;
final int lotonumber = Lottery.getInstance().getId();
int enchant = 0; int enchant = 0;
int type2 = 0; int type2 = 0;
for (int i = 0; i < 5; i++) for (int i = 0; i < 5; i++)
@ -1708,6 +1659,8 @@ public class Npc extends Creature
type2 += Math.pow(2, player.getLoto(i) - 17); type2 += Math.pow(2, player.getLoto(i) - 17);
} }
} }
final int price = Config.ALT_LOTTERY_TICKET_PRICE;
if (player.getAdena() < price) if (player.getAdena() < price)
{ {
sm = new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ADENA); sm = new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
@ -1718,7 +1671,9 @@ public class Npc extends Creature
{ {
return; return;
} }
Lottery.getInstance().increasePrize(price); Lottery.getInstance().increasePrize(price);
final int lotonumber = Lottery.getInstance().getId();
sm = new SystemMessage(SystemMessageId.ACQUIRED_S1_S2); sm = new SystemMessage(SystemMessageId.ACQUIRED_S1_S2);
sm.addNumber(lotonumber); sm.addNumber(lotonumber);
@ -1852,7 +1807,6 @@ public class Npc extends Creature
} }
final int neededmoney = 100; final int neededmoney = 100;
SystemMessage sm;
if (!player.reduceAdena("RestoreCP", neededmoney, player.getLastFolkNPC(), true)) if (!player.reduceAdena("RestoreCP", neededmoney, player.getLastFolkNPC(), true))
{ {
return; return;
@ -1868,6 +1822,7 @@ public class Npc extends Creature
player.setCurrentCp(player.getMaxCp()); player.setCurrentCp(player.getMaxCp());
// cp restored // cp restored
SystemMessage sm;
sm = new SystemMessage(SystemMessageId.S1_CPS_HAVE_BEEN_RESTORED); sm = new SystemMessage(SystemMessageId.S1_CPS_HAVE_BEEN_RESTORED);
sm.addString(player.getName()); sm.addString(player.getName());
player.sendPacket(sm); player.sendPacket(sm);
@ -2021,7 +1976,7 @@ public class Npc extends Creature
} }
} }
if ((getTemplate().getType() == "Auctioneer") && (value == 0)) if (getTemplate().getType().equals("Auctioneer") && (value == 0))
{ {
return; return;
} }

View File

@ -155,49 +155,6 @@ public class Npc extends Creature
return false; return false;
} }
public class destroyTemporalNPC implements Runnable
{
private final Spawn _oldSpawn;
public destroyTemporalNPC(Spawn spawn)
{
_oldSpawn = spawn;
}
@Override
public void run()
{
try
{
_oldSpawn.getLastSpawn().deleteMe();
_oldSpawn.stopRespawn();
SpawnTable.getInstance().deleteSpawn(_oldSpawn, false);
}
catch (Throwable t)
{
LOGGER.warning(t.toString());
}
}
}
public class destroyTemporalSummon implements Runnable
{
Summon _summon;
Player _player;
public destroyTemporalSummon(Summon summon, Player player)
{
_summon = summon;
_player = player;
}
@Override
public void run()
{
_summon.unSummon(_player);
}
}
/** /**
* Constructor of Npc (use Creature constructor).<br> * Constructor of Npc (use Creature constructor).<br>
* <br> * <br>
@ -1084,7 +1041,6 @@ public class Npc extends Creature
else if (command.equalsIgnoreCase("TerritoryStatus")) else if (command.equalsIgnoreCase("TerritoryStatus"))
{ {
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
{
if (getCastle().getOwnerId() > 0) if (getCastle().getOwnerId() > 0)
{ {
html.setFile("/data/html/territorystatus.htm"); html.setFile("/data/html/territorystatus.htm");
@ -1096,11 +1052,9 @@ public class Npc extends Creature
{ {
html.setFile("/data/html/territorynoclan.htm"); html.setFile("/data/html/territorynoclan.htm");
} }
}
html.replace("%castlename%", getCastle().getName()); html.replace("%castlename%", getCastle().getName());
html.replace("%taxpercent%", "" + getCastle().getTaxPercent()); html.replace("%taxpercent%", "" + getCastle().getTaxPercent());
html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%objectId%", String.valueOf(getObjectId()));
{
if (getCastle().getCastleId() > 6) if (getCastle().getCastleId() > 6)
{ {
html.replace("%territory%", "The Kingdom of Elmore"); html.replace("%territory%", "The Kingdom of Elmore");
@ -1109,7 +1063,6 @@ public class Npc extends Creature
{ {
html.replace("%territory%", "The Kingdom of Aden"); html.replace("%territory%", "The Kingdom of Aden");
} }
}
player.sendPacket(html); player.sendPacket(html);
} }
else if (command.startsWith("Quest")) else if (command.startsWith("Quest"))
@ -1880,8 +1833,6 @@ public class Npc extends Creature
return; return;
} }
final int price = Config.ALT_LOTTERY_TICKET_PRICE;
final int lotonumber = Lottery.getInstance().getId();
int enchant = 0; int enchant = 0;
int type2 = 0; int type2 = 0;
for (int i = 0; i < 5; i++) for (int i = 0; i < 5; i++)
@ -1900,6 +1851,8 @@ public class Npc extends Creature
type2 += Math.pow(2, player.getLoto(i) - 17); type2 += Math.pow(2, player.getLoto(i) - 17);
} }
} }
final int price = Config.ALT_LOTTERY_TICKET_PRICE;
if (player.getAdena() < price) if (player.getAdena() < price)
{ {
sm = new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ADENA); sm = new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
@ -1910,7 +1863,9 @@ public class Npc extends Creature
{ {
return; return;
} }
Lottery.getInstance().increasePrize(price); Lottery.getInstance().increasePrize(price);
final int lotonumber = Lottery.getInstance().getId();
sm = new SystemMessage(SystemMessageId.ACQUIRED_S1_S2); sm = new SystemMessage(SystemMessageId.ACQUIRED_S1_S2);
sm.addNumber(lotonumber); sm.addNumber(lotonumber);
@ -2049,7 +2004,6 @@ public class Npc extends Creature
} }
final int neededmoney = 100; final int neededmoney = 100;
SystemMessage sm;
if (!player.reduceAdena("RestoreCP", neededmoney, player.getLastFolkNPC(), true)) if (!player.reduceAdena("RestoreCP", neededmoney, player.getLastFolkNPC(), true))
{ {
return; return;
@ -2065,6 +2019,7 @@ public class Npc extends Creature
player.setCurrentCp(player.getMaxCp()); player.setCurrentCp(player.getMaxCp());
// cp restored // cp restored
SystemMessage sm;
sm = new SystemMessage(SystemMessageId.S1_CPS_HAVE_BEEN_RESTORED); sm = new SystemMessage(SystemMessageId.S1_CPS_HAVE_BEEN_RESTORED);
sm.addString(player.getName()); sm.addString(player.getName());
player.sendPacket(sm); player.sendPacket(sm);
@ -2224,7 +2179,7 @@ public class Npc extends Creature
} }
} }
if ((getTemplate().getType() == "Auctioneer") && (value == 0)) if (getTemplate().getType().equals("Auctioneer") && (value == 0))
{ {
return; return;
} }

View File

@ -1631,28 +1631,22 @@ public class Npc extends Creature
{ {
if (physical) if (physical)
{ {
if (_soulshotamount == 0) if ((_soulshotamount == 0) || (Rnd.get(100) > getSoulShotChance()))
{
return;
}
else if (Rnd.get(100) > getSoulShotChance())
{ {
return; return;
} }
_soulshotamount--; _soulshotamount--;
Broadcast.toSelfAndKnownPlayersInRadius(this, new MagicSkillUse(this, this, 2154, 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(this, new MagicSkillUse(this, this, 2154, 1, 0, 0), 600);
setChargedShot(ShotType.SOULSHOTS, true); setChargedShot(ShotType.SOULSHOTS, true);
} }
if (magic) if (magic)
{ {
if (_spiritshotamount == 0) if ((_spiritshotamount == 0) || (Rnd.get(100) > getSpiritShotChance()))
{
return;
}
else if (Rnd.get(100) > getSpiritShotChance())
{ {
return; return;
} }
_spiritshotamount--; _spiritshotamount--;
Broadcast.toSelfAndKnownPlayersInRadius(this, new MagicSkillUse(this, this, 2061, 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(this, new MagicSkillUse(this, this, 2061, 1, 0, 0), 600);
setChargedShot(ShotType.SPIRITSHOTS, true); setChargedShot(ShotType.SPIRITSHOTS, true);
@ -1797,10 +1791,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.log(Level.SEVERE, "Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.log(Level.SEVERE, "Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1818,16 +1808,18 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.
if (!Config.LIST_PROTECTED_ITEMS.contains(itemId)) if (!Config.LIST_PROTECTED_ITEMS.contains(itemId) && (((Config.AUTODESTROY_ITEM_AFTER > 0) && !item.getItem().hasExImmediateEffect()) || ((Config.HERB_AUTO_DESTROY_TIME > 0) && item.getItem().hasExImmediateEffect())))
{
if (((Config.AUTODESTROY_ITEM_AFTER > 0) && !item.getItem().hasExImmediateEffect()) || ((Config.HERB_AUTO_DESTROY_TIME > 0) && item.getItem().hasExImmediateEffect()))
{ {
ItemsAutoDestroyTaskManager.getInstance().addItem(item); ItemsAutoDestroyTaskManager.getInstance().addItem(item);
} }
}
item.setProtected(false); item.setProtected(false);
// If stackable, end loop as entire count is included in 1 instance of item. // If stackable, end loop as entire count is included in 1 instance of item.

View File

@ -1631,28 +1631,22 @@ public class Npc extends Creature
{ {
if (physical) if (physical)
{ {
if (_soulshotamount == 0) if ((_soulshotamount == 0) || (Rnd.get(100) > getSoulShotChance()))
{
return;
}
else if (Rnd.get(100) > getSoulShotChance())
{ {
return; return;
} }
_soulshotamount--; _soulshotamount--;
Broadcast.toSelfAndKnownPlayersInRadius(this, new MagicSkillUse(this, this, 2154, 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(this, new MagicSkillUse(this, this, 2154, 1, 0, 0), 600);
setChargedShot(ShotType.SOULSHOTS, true); setChargedShot(ShotType.SOULSHOTS, true);
} }
if (magic) if (magic)
{ {
if (_spiritshotamount == 0) if ((_spiritshotamount == 0) || (Rnd.get(100) > getSpiritShotChance()))
{
return;
}
else if (Rnd.get(100) > getSpiritShotChance())
{ {
return; return;
} }
_spiritshotamount--; _spiritshotamount--;
Broadcast.toSelfAndKnownPlayersInRadius(this, new MagicSkillUse(this, this, 2061, 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(this, new MagicSkillUse(this, this, 2061, 1, 0, 0), 600);
setChargedShot(ShotType.SPIRITSHOTS, true); setChargedShot(ShotType.SPIRITSHOTS, true);
@ -1797,10 +1791,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.log(Level.SEVERE, "Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.log(Level.SEVERE, "Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1818,16 +1808,18 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.
if (!Config.LIST_PROTECTED_ITEMS.contains(itemId)) if (!Config.LIST_PROTECTED_ITEMS.contains(itemId) && (((Config.AUTODESTROY_ITEM_AFTER > 0) && !item.getItem().hasExImmediateEffect()) || ((Config.HERB_AUTO_DESTROY_TIME > 0) && item.getItem().hasExImmediateEffect())))
{
if (((Config.AUTODESTROY_ITEM_AFTER > 0) && !item.getItem().hasExImmediateEffect()) || ((Config.HERB_AUTO_DESTROY_TIME > 0) && item.getItem().hasExImmediateEffect()))
{ {
ItemsAutoDestroyTaskManager.getInstance().addItem(item); ItemsAutoDestroyTaskManager.getInstance().addItem(item);
} }
}
item.setProtected(false); item.setProtected(false);
// If stackable, end loop as entire count is included in 1 instance of item. // If stackable, end loop as entire count is included in 1 instance of item.

View File

@ -1568,10 +1568,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1589,6 +1585,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -1568,10 +1568,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1589,6 +1585,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -1568,10 +1568,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1589,6 +1585,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -1580,10 +1580,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1601,6 +1597,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -1580,10 +1580,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1601,6 +1597,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -1580,10 +1580,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1601,6 +1597,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -1552,10 +1552,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1573,6 +1569,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -1581,10 +1581,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1602,6 +1598,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -1581,10 +1581,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1602,6 +1598,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.

View File

@ -1581,10 +1581,6 @@ public class Npc extends Creature
Item item = null; Item item = null;
for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
if (ItemTable.getInstance().getTemplate(itemId) == null) if (ItemTable.getInstance().getTemplate(itemId) == null)
{ {
LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName()); LOGGER.severe("Item doesn't exist so cannot be dropped. Item ID: " + itemId + " Quest: " + getName());
@ -1602,6 +1598,11 @@ public class Npc extends Creature
item.getDropProtection().protect(creature); item.getDropProtection().protect(creature);
} }
// Randomize drop position.
final int newX = (getX() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newY = (getY() + Rnd.get((RANDOM_ITEM_DROP_LIMIT * 2) + 1)) - RANDOM_ITEM_DROP_LIMIT;
final int newZ = getZ() + 20;
item.dropMe(this, newX, newY, newZ); item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task. // Add drop to auto destroy item task.