- 0
This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..
Question
brett16
I am using this core buffer and I have it setup really nice, but there is only 1 thing bugging me with it. When you use 1 of the preset buffs it opens up a random html afterwards. Is there a line I can add some where in this code below that doesn't reopen the html for preset buffs? I don't want it to close after each single buff is picked tho if thats possible.
public class L2NpcBufferInstance extends L2Npc { private static final Logger _log = Logger.getLogger(L2NpcBufferInstance.class.getName()); private static final Map<Integer, Integer> pageVal = new HashMap<>(); /** * Instantiates a new l2 npc buffer instance. * @param objectId the object id * @param template the template */ public L2NpcBufferInstance(int objectId, L2NpcTemplate template) { super(objectId, template); setInstanceType(InstanceType.L2NpcBufferInstance); } @Override public void showChatWindow(L2PcInstance player, int val) { if (player == null) { return; } String htmContent = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/html/mods/NpcBuffer.htm"); if (val > 0) { htmContent = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/html/mods/NpcBuffer-" + val + ".htm"); } if (htmContent != null) { final NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage(getObjectId()); npcHtmlMessage.setHtml(htmContent); npcHtmlMessage.replace("%objectId%", String.valueOf(getObjectId())); player.sendPacket(npcHtmlMessage); } player.sendPacket(ActionFailed.STATIC_PACKET); } @Override public void onBypassFeedback(L2PcInstance player, String command) { // BypassValidation Exploit plug. if ((player == null) || (player.getLastFolkNPC() == null) || (player.getLastFolkNPC().getObjectId() != getObjectId())) { return; } L2Character target = player; if (command.startsWith("Pet")) { if (!player.hasSummon()) // TODO: Should be hasPet() ? { player.sendPacket(SystemMessageId.DONT_HAVE_PET); showChatWindow(player, 0); // 0 = main window return; } target = player.getSummon(); } int npcId = getId(); if (command.startsWith("Chat")) { int val = Integer.parseInt(command.substring(5)); pageVal.put(player.getObjectId(), val); showChatWindow(player, val); } else if (command.startsWith("Buff") || command.startsWith("PetBuff")) { String[] buffGroupArray = command.substring(command.indexOf("Buff") + 5).split(" "); for (String buffGroupList : buffGroupArray) { if (buffGroupList == null) { _log.warning("NPC Buffer Warning: npcId = " + npcId + " has no buffGroup set in the bypass for the buff selected."); return; } int buffGroup = Integer.parseInt(buffGroupList); 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; } if (npcBuffGroupInfo.getFee().getId() != 0) { 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); continue; } if (itemInstance.isStackable()) { 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); continue; } } else { for (int i = 0; i < npcBuffGroupInfo.getFee().getCount(); ++i) { player.destroyItemByItemId("Npc Buffer", npcBuffGroupInfo.getFee().getId(), 1, player.getTarget(), true); } } } final Skill skill = SkillData.getInstance().getSkill(npcBuffGroupInfo.getSkill().getSkillId(), npcBuffGroupInfo.getSkill().getSkillLvl()); if (skill != null) { skill.applyEffects(player, target); } } showChatWindow(player, pageVal.get(player.getObjectId())); } else if (command.startsWith("Heal") || command.startsWith("PetHeal")) { if (!target.isInCombat() && !AttackStanceTaskManager.getInstance().hasAttackStanceTask(target)) { String[] healArray = command.substring(command.indexOf("Heal") + 5).split(" "); for (String healType : healArray) { if (healType.equalsIgnoreCase("HP")) { target.setCurrentHp(target.getMaxHp()); } else if (healType.equalsIgnoreCase("MP")) { target.setCurrentMp(target.getMaxMp()); } else if (healType.equalsIgnoreCase("CP")) { target.setCurrentCp(target.getMaxCp()); } } } showChatWindow(player, pageVal.get(player.getObjectId())); } else if (command.startsWith("RemoveBuffs") || command.startsWith("PetRemoveBuffs")) { target.stopAllEffectsExceptThoseThatLastThroughDeath(); showChatWindow(player, pageVal.get(player.getObjectId())); } else { super.onBypassFeedback(player, command); } } }8 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now