|
@@ -18,10 +18,13 @@
|
|
|
*/
|
|
|
package com.l2jserver.gameserver.model.actor.instance;
|
|
|
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
import java.util.logging.Logger;
|
|
|
|
|
|
import com.l2jserver.gameserver.cache.HtmCache;
|
|
|
import com.l2jserver.gameserver.datatables.NpcBufferTable;
|
|
|
+import com.l2jserver.gameserver.datatables.NpcBufferTable.NpcBufferData;
|
|
|
import com.l2jserver.gameserver.datatables.SkillTable;
|
|
|
import com.l2jserver.gameserver.model.actor.L2Character;
|
|
|
import com.l2jserver.gameserver.model.actor.L2Npc;
|
|
@@ -34,16 +37,15 @@ import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
|
|
|
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
|
|
|
import com.l2jserver.gameserver.taskmanager.AttackStanceTaskManager;
|
|
|
|
|
|
-import gnu.trove.map.hash.TIntIntHashMap;
|
|
|
-
|
|
|
/**
|
|
|
- * The Class L2NpcBufferInstance.
|
|
|
+ * The Class L2NpcBufferInstance.<br>
|
|
|
+ * Zoey76: TODO: Unhardcode as DP base script for NPC Buffers.
|
|
|
*/
|
|
|
public class L2NpcBufferInstance extends L2Npc
|
|
|
{
|
|
|
- static final Logger _log = Logger.getLogger(L2NpcBufferInstance.class.getName());
|
|
|
+ private static final Logger _log = Logger.getLogger(L2NpcBufferInstance.class.getName());
|
|
|
|
|
|
- private static TIntIntHashMap pageVal = new TIntIntHashMap();
|
|
|
+ private static final Map<Integer, Integer> pageVal = new HashMap<>();
|
|
|
|
|
|
/**
|
|
|
* Instantiates a new l2 npc buffer instance.
|
|
@@ -57,30 +59,27 @@ public class L2NpcBufferInstance extends L2Npc
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void showChatWindow(L2PcInstance playerInstance, int val)
|
|
|
+ public void showChatWindow(L2PcInstance player, int val)
|
|
|
{
|
|
|
- if (playerInstance == null)
|
|
|
+ if (player == null)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- String htmContent = HtmCache.getInstance().getHtm(playerInstance.getHtmlPrefix(), "data/html/mods/NpcBuffer.htm");
|
|
|
-
|
|
|
+ String htmContent = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/html/mods/NpcBuffer.htm");
|
|
|
if (val > 0)
|
|
|
{
|
|
|
- htmContent = HtmCache.getInstance().getHtm(playerInstance.getHtmlPrefix(), "data/html/mods/NpcBuffer-" + val + ".htm");
|
|
|
+ htmContent = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/html/mods/NpcBuffer-" + val + ".htm");
|
|
|
}
|
|
|
|
|
|
if (htmContent != null)
|
|
|
{
|
|
|
NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage(getObjectId());
|
|
|
-
|
|
|
npcHtmlMessage.setHtml(htmContent);
|
|
|
npcHtmlMessage.replace("%objectId%", String.valueOf(getObjectId()));
|
|
|
- playerInstance.sendPacket(npcHtmlMessage);
|
|
|
+ player.sendPacket(npcHtmlMessage);
|
|
|
}
|
|
|
-
|
|
|
- playerInstance.sendPacket(ActionFailed.STATIC_PACKET);
|
|
|
+ player.sendPacket(ActionFailed.STATIC_PACKET);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -105,7 +104,6 @@ public class L2NpcBufferInstance extends L2Npc
|
|
|
}
|
|
|
|
|
|
int npcId = getNpcId();
|
|
|
-
|
|
|
if (command.startsWith("Chat"))
|
|
|
{
|
|
|
int val = Integer.parseInt(command.substring(5));
|
|
@@ -128,24 +126,17 @@ public class L2NpcBufferInstance extends L2Npc
|
|
|
|
|
|
int buffGroup = Integer.parseInt(buffGroupList);
|
|
|
|
|
|
- int[] npcBuffGroupInfo = NpcBufferTable.getInstance().getSkillInfo(npcId, buffGroup);
|
|
|
-
|
|
|
+ final NpcBufferData npcBuffGroupInfo = NpcBufferTable.getInstance().getSkillInfo(npcId, buffGroup);
|
|
|
if (npcBuffGroupInfo == null)
|
|
|
{
|
|
|
_log.warning("NPC Buffer Warning: npcId = " + npcId + " Location: " + getX() + ", " + getY() + ", " + getZ() + " Player: " + player.getName() + " has tried to use skill group (" + buffGroup + ") not assigned to the NPC Buffer!");
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- int skillId = npcBuffGroupInfo[0];
|
|
|
- int skillLevel = npcBuffGroupInfo[1];
|
|
|
- int skillFeeId = npcBuffGroupInfo[2];
|
|
|
- int skillFeeAmount = npcBuffGroupInfo[3];
|
|
|
-
|
|
|
- if (skillFeeId != 0)
|
|
|
+ if (npcBuffGroupInfo.getFee().getId() != 0)
|
|
|
{
|
|
|
- L2ItemInstance itemInstance = player.getInventory().getItemByItemId(skillFeeId);
|
|
|
-
|
|
|
- if ((itemInstance == null) || (!itemInstance.isStackable() && (player.getInventory().getInventoryItemCount(skillFeeId, -1) < skillFeeAmount)))
|
|
|
+ L2ItemInstance itemInstance = player.getInventory().getItemByItemId(npcBuffGroupInfo.getFee().getId());
|
|
|
+ if ((itemInstance == null) || (!itemInstance.isStackable() && (player.getInventory().getInventoryItemCount(npcBuffGroupInfo.getFee().getId(), -1) < npcBuffGroupInfo.getFee().getCount())))
|
|
|
{
|
|
|
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THERE_ARE_NOT_ENOUGH_NECESSARY_ITEMS_TO_USE_THE_SKILL);
|
|
|
player.sendPacket(sm);
|
|
@@ -154,7 +145,7 @@ public class L2NpcBufferInstance extends L2Npc
|
|
|
|
|
|
if (itemInstance.isStackable())
|
|
|
{
|
|
|
- if (!player.destroyItemByItemId("Npc Buffer", skillFeeId, skillFeeAmount, player.getTarget(), true))
|
|
|
+ if (!player.destroyItemByItemId("Npc Buffer", npcBuffGroupInfo.getFee().getId(), npcBuffGroupInfo.getFee().getCount(), player.getTarget(), true))
|
|
|
{
|
|
|
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THERE_ARE_NOT_ENOUGH_NECESSARY_ITEMS_TO_USE_THE_SKILL);
|
|
|
player.sendPacket(sm);
|
|
@@ -163,16 +154,14 @@ public class L2NpcBufferInstance extends L2Npc
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- for (int i = 0; i < skillFeeAmount; ++i)
|
|
|
+ for (int i = 0; i < npcBuffGroupInfo.getFee().getCount(); ++i)
|
|
|
{
|
|
|
- player.destroyItemByItemId("Npc Buffer", skillFeeId, 1, player.getTarget(), true);
|
|
|
+ player.destroyItemByItemId("Npc Buffer", npcBuffGroupInfo.getFee().getId(), 1, player.getTarget(), true);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- L2Skill skill;
|
|
|
- skill = SkillTable.getInstance().getInfo(skillId, skillLevel);
|
|
|
-
|
|
|
+ final L2Skill skill = SkillTable.getInstance().getInfo(npcBuffGroupInfo.getSkill().getSkillId(), npcBuffGroupInfo.getSkill().getSkillLvl());
|
|
|
if (skill != null)
|
|
|
{
|
|
|
skill.getEffects(player, target);
|