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);
}
}
}
LF someone to add drops to mobs over lv 76 on my server, I have tried all of the "Guides" that I could find on the internet and none of them seem to work.
Obviously since this is marketplace I am willing to pay. PM me here or on Discord - offhealz
Man get real always someone else does something for you 😆 anyway do whatever u like spam as much as u want, already many clients are happy with your works 🤣
Look, there's nothing wrong with someone doing something good for the server and paying for all the fixes. I completely understand that. But I'm here to show what kind of person he really is and what he's actually doing. I will never stop repeating how he pretends to be someone interested in buying my files and login with the same IP on my server, supposedly to "test" it.
Your words here show how weak you are 🙂 Obviously, you can only insult. What happened to your profile on MXC? Did you get banned? And please, leave out the fact that ZOUMHS loves the game and it's like a hobby for him. 🙂 That is perfectly clear to me. I have never hidden like him. I remember how he used to message me regularly on Skype with other fake Skype profiles just to extract information about my source.
ZOUMHS payments to me for fixes 🙂
You couldn't even adapt to the server 30 mounts from Grand Crusade 🙂 Was it necessary to embarrass yourselves by copying from my patch?
Hahaha, I'm having so much fun.
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.
Link to comment
Share on other sites
8 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.