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.
publicclass L2NpcBufferInstance extends L2Npc
{privatestaticfinalLogger _log =Logger.getLogger(L2NpcBufferInstance.class.getName());privatestaticfinalMap<Integer,Integer> pageVal =newHashMap<>();/**
* 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);}@Overridepublicvoid 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){finalNpcHtmlMessage npcHtmlMessage =newNpcHtmlMessage(getObjectId());
npcHtmlMessage.setHtml(htmContent);
npcHtmlMessage.replace("%objectId%",String.valueOf(getObjectId()));
player.sendPacket(npcHtmlMessage);}
player.sendPacket(ActionFailed.STATIC_PACKET);}@Overridepublicvoid 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 windowreturn;}
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);}elseif(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);finalNpcBufferData 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);}}}finalSkill skill =SkillData.getInstance().getSkill(npcBuffGroupInfo.getSkill().getSkillId(), npcBuffGroupInfo.getSkill().getSkillLvl());if(skill !=null){
skill.applyEffects(player, target);}}
showChatWindow(player, pageVal.get(player.getObjectId()));}elseif(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());}elseif(healType.equalsIgnoreCase("MP")){
target.setCurrentMp(target.getMaxMp());}elseif(healType.equalsIgnoreCase("CP")){
target.setCurrentCp(target.getMaxCp());}}}
showChatWindow(player, pageVal.get(player.getObjectId()));}elseif(command.startsWith("RemoveBuffs")|| command.startsWith("PetRemoveBuffs")){
target.stopAllEffectsExceptThoseThatLastThroughDeath();
showChatWindow(player, pageVal.get(player.getObjectId()));}else{super.onBypassFeedback(player, command);}}}
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
WWW.L2MADPVP.COM
SERVER INFORMATION & RATES
» Chronicle: Interlude
» Type: PVP Server
» Main Town: Giran
» Instant: Lv 80
» Exp/SP: x1200
» Drop: Custom
» Epic RB Jewel Drop: x1 (Most Damage)
» Safe Enchant: +3
» Max Blessed Enchant: +14
» Max Crystal Enchant: +16
» Normal Scroll Chance: 65% (+0 to +14)
» Blessed Scroll Chance: 100% (+0 to +14)
» Crystal Scroll Chance: 50% (+14 to +16) | Fail = Same enchant
» Custom Scroll Chance: 100% (+0 to +16)
» Custom Scroll Chance: 95% (+16 to +17)
» Custom Scroll Chance: 90% (+17 to +18)
» Custom Scroll Chance: 85% (+18 to +19)
» Custom Scroll Chance: 80% (+19 to +20)
If you enchantment fails, it will remain at your previous enchant.
Example: If you enchant from +19 to +20 and it fails, it will become +19
» Max Augment Skills: 1 Active + 1 Passive
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.
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.
Note: Your post will require moderator approval before it will be visible.