Hey! It's been years since I tried this, just redownloaded everything for the nostalgia but I'm having the "mismatch" problem.
You were right, I used another system, not the one from the post! My bad!
Now I can't find the system that works with AuthGateD 🤣
I see you have found it and uploaded it but the link you provided no longer works. If you are still around, can you please reupload? Thank you!
Question
janiko
Hi everybody i have error on Aio Scheme Buff now i will explain.
When i type in name field nothing and press create scheme than gives me this error
Jun 29, 2011 11:45:41 PM l2.brick.gameserver.network.clientpackets.RequestBypassToServer runImpl
WARNING: [Character: TESTING[268483796] - Account: katalonia - IP: 188.169.148.218] sent bad RequestBypassToServer: "Aioitem_scheme_createprofile"
java.lang.ArrayIndexOutOfBoundsException: 1
at handlers.aioitemhandler.AIOSchemeHandler.onBypassUse(AIOSchemeHandler.java:61)
at l2.brick.gameserver.datatables.AIOItemTable.handleBypass(AIOItemTable.java:608)
at l2.brick.gameserver.network.clientpackets.RequestBypassToServer.runImpl(RequestBypassToServer.java:273)
at l2.brick.gameserver.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:62)
at l2.brick.gameserver.network.L2GameClient.run(L2GameClient.java:1012)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
When i type in name field _ and press create scheme than gives me this error
Jun 29, 2011 11:45:16 PM l2.brick.gameserver.network.clientpackets.RequestBypassToServer runImpl
WARNING: [Character: TESTING[268483796] - Account: katalonia - IP: 188.169.148.218] sent bad RequestBypassToServer: "Aioitem_scheme_createprofile _"
java.lang.ArrayIndexOutOfBoundsException: 1
at handlers.aioitemhandler.AIOSchemeHandler.onBypassUse(AIOSchemeHandler.java:61)
at l2.brick.gameserver.datatables.AIOItemTable.handleBypass(AIOItemTable.java:608)
at l2.brick.gameserver.network.clientpackets.RequestBypassToServer.runImpl(RequestBypassToServer.java:273)
at l2.brick.gameserver.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:62)
at l2.brick.gameserver.network.L2GameClient.run(L2GameClient.java:1012)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
THIS IS MY AIO Buff SCHEME HANDLER
package handlers.aioitemhandler; import java.util.logging.Logger; import javolution.text.TextBuilder; import javolution.util.FastList; import javolution.util.FastMap; import l2.brick.CustomConfig; import l2.brick.gameserver.cache.HtmCache; import l2.brick.gameserver.datatables.AIOItemTable; import l2.brick.gameserver.handler.IAIOItemHandler; import l2.brick.gameserver.model.L2ItemInstance; import l2.brick.gameserver.model.L2Skill; import l2.brick.gameserver.model.actor.instance.L2PcInstance; import l2.brick.gameserver.network.serverpackets.NpcHtmlMessage; public class AIOSchemeHandler implements IAIOItemHandler { private static final Logger _log = Logger.getLogger(AIOSchemeHandler.class.getName()); private static final String BYPASS = "scheme"; private static enum Action { CREATE_PROFILE, GET_BUFFS } @Override public String getBypass() { return BYPASS; } @Override public void onBypassUse(L2PcInstance player, String command) { String[] subCommands = command.split(" "); String actualCmd = subCommands[0]; /* * Send main's scheme page */ if(actualCmd.equalsIgnoreCase("main")) { sendSchemePageToPlayer(player); } /* * Create scheme profile */ else if(actualCmd.equalsIgnoreCase("createprofile")) { if(player.getProfileNames().size() == CustomConfig.AIOITEM_SCHEME_MAX_PROFILES) { player.sendMessage("You alredy reached the max allowed profiles per char!"); return; } String secondCmd = subCommands[1]; if(secondCmd == null || secondCmd.isEmpty()) { _log.severe("Null Scheme Profile From :"+player.getName()); return; } if(player.getProfileNames().contains(secondCmd)) { player.sendMessage("The given profile alredy exist in your list!"); return; } if(!paymentDone(player, Action.CREATE_PROFILE)) { return; } player.addNewProfile(secondCmd); player.needSaveSchemes(); sendSchemePageToPlayer(player); } /* * Manage profile */ else if(actualCmd.equalsIgnoreCase("manage")) { String secondCmd = subCommands[1]; if(secondCmd != null) { sendManageWindow(player, secondCmd); } else { _log.severe("Player "+player.getName()+" has a empty AIOItem scheme profile!"); return; } } /* * Get buffs */ else if(actualCmd.equalsIgnoreCase("buff")) { if(!paymentDone(player, Action.GET_BUFFS)) { return; } String secondCmd = subCommands[1]; if(secondCmd == null || secondCmd.isEmpty()) { _log.severe("Null Scheme profile for player: "+player.getName()); return; } FastList<L2Skill> buffs = player.getProfileBuffs(secondCmd); if(buffs != null) { for(L2Skill sk : buffs) { sk.getEffects(player, player); } } } /* * Erase profile */ else if(actualCmd.equalsIgnoreCase("del")) { String secondCmd = subCommands[1]; if(secondCmd == null || secondCmd.isEmpty()) { _log.severe("Null scheme profile for: "+player.getName()); return; } player.deleteProfile(secondCmd); player.needSaveSchemes(); sendSchemePageToPlayer(player); } /* * Add buffs to profile page */ else if(actualCmd.equalsIgnoreCase("editadd")) { String category = subCommands[1]; String profile = subCommands[2]; if(category == null || profile == null) return; sendAddBuffWindow(category, profile, player); player.setLastAIOBufferCategory(category); } /* * Add a buff */ else if(actualCmd.equalsIgnoreCase("addbuff")) { String profile = subCommands[1]; if(profile == null) return; int buffId = 0; try { buffId = Integer.parseInt(subCommands[2]); } catch(NumberFormatException nfe) { nfe.printStackTrace(); } L2Skill buff = null; if((buff = AIOItemTable.getInstance().getBuff(buffId)) != null) { player.addNewBuff(profile, buff); player.needSaveSchemes(); sendAddBuffWindow(player.getLastCategory(), profile, player); } } /* * Delete buff window */ else if(actualCmd.equalsIgnoreCase("editdel")) { if(subCommands[1] == null) return; sendDelBuffWindow(subCommands[1], player); } /* * Delete a buff */ else if(actualCmd.equalsIgnoreCase("delbuff")) { String profile = subCommands[1]; if(profile == null) return; int buffId = 0; try { buffId = Integer.parseInt(subCommands[2]); } catch(NumberFormatException nfe) { nfe.printStackTrace(); } L2Skill deletedBuff = AIOItemTable.getInstance().getBuff(buffId); player.deleteBuff(profile, deletedBuff); player.needSaveSchemes(); sendDelBuffWindow(profile, player); } } /** * Will return true if the player made the payment for the * service, otherwise, will return false * @param player * @param action * @return boolean */ private boolean paymentDone(L2PcInstance player, Action action) { L2ItemInstance coin = null; if((coin = player.getInventory().getItemByItemId(CustomConfig.AIOITEM_SCHEME_COIN)) == null) { player.sendMessage("You dont have the required items to proceed!"); return false; } switch(action) { case CREATE_PROFILE: { if(coin.getCount() < CustomConfig.AIOITEM_SCHEME_PROFILE_PRICE) { player.sendMessage("You dont have enought "+coin.getName()+" to create a new scheme!"); return false; } else { player.destroyItemByItemId("AIOItem", coin.getItemId(), CustomConfig.AIOITEM_SCHEME_PROFILE_PRICE, player, true); return true; } } case GET_BUFFS: { if(coin.getCount() < CustomConfig.AIOITEM_SCHEME_PRICE) { player.sendMessage("You dont have enought "+coin.getName()+" to create a new scheme!"); return false; } else { player.destroyItemByItemId("AIOItem", coin.getItemId(), CustomConfig.AIOITEM_SCHEME_PRICE, player, true); return true; } } default: return false; } } /** * Will send to the player the scheme page with his info * @param player */ private void sendSchemePageToPlayer(L2PcInstance player) { String schemeMain = HtmCache.getInstance().getHtm(null, "data/html/aioitem/scheme.htm"); StringBuilder profiles = new StringBuilder(); for(String prof : player.getProfileNames()) { profiles.append("<a action=\"bypass -h Aioitem_scheme_manage "+prof+"\">"+prof+"<br1>"); } NpcHtmlMessage msg = new NpcHtmlMessage(5); msg.setHtml(schemeMain); msg.replace("%profList%", profiles.toString()); player.sendPacket(msg); } /** * Will send the profile edition page to the given player * @param player * @param profile */ private void sendManageWindow(L2PcInstance player, String profile) { String html = HtmCache.getInstance().getHtm(null, "data/html/aioitem/schememanage.htm"); if(html == null) { _log.severe("The file schememanage.htm for the AIOItem desn't exist or is corrupted!"); return; } StringBuilder categories = new StringBuilder(); for(String cat : AIOItemTable.getInstance().getBuffs().keySet()) { categories.append("<a action=\"bypass -h Aioitem_scheme_editadd "+cat+" "+profile+"\">Add "+cat+" buffs</a>"); } NpcHtmlMessage msg = new NpcHtmlMessage(5); msg.setHtml(html); msg.replace("%profile%", profile); msg.replace("%addList%", categories.toString()); player.sendPacket(msg); } /** * Will show a window with the buffs from the given category * to be added to the player schemes profile * @param category * @param profile * @param player */ private void sendAddBuffWindow(String category, String profile, L2PcInstance player) { int b = 2; FastMap<Integer, L2Skill> temp = AIOItemTable.getInstance().getBuffCategory(category).getCategoryBuffs(); TextBuilder tb = new TextBuilder(); tb.append("<html><body><center>"); tb.append("<br><font color=LEVEL>Choose what you want!</font><br>"); tb.append("<table width = 240 height 32>"); for(int i : temp.keySet()) { L2Skill sk = temp.get(i); if(player.getProfileBuffs(profile).contains(sk)) continue; if(b % 2 == 0) { tb.append("<tr>"); tb.append("<td><a action=\"bypass -h Aioitem_scheme_addbuff "+profile+" "+i+"\">"+sk.getName()+"</a></td>"); } else { tb.append("<td><a action=\"bypass -h Aioitem_scheme_addbuff "+profile+" "+i+"\">"+sk.getName()+"</a></td>"); tb.append("</tr>"); } b++; } tb.append("</table><br><a action=\"bypass -h Aioitem_scheme_main\"><font color=LEVEL>Main</font></a>"); tb.append("</center></body></html>"); NpcHtmlMessage msg = new NpcHtmlMessage(5); msg.setHtml(tb.toString()); player.sendPacket(msg); } private void sendDelBuffWindow(String profile, L2PcInstance player) { if(player.getProfileBuffs(profile) == null) return; int b = 2; TextBuilder tb = new TextBuilder(); tb.append("<html><body><center>"); tb.append("<br><font color=LEVEL>Choose what you want!</font><br>"); tb.append("<table width = 240 height 32>"); for(L2Skill sk : player.getProfileBuffs(profile)) { int id = sk.getId(); if(player.getProfileBuffs(profile).contains(sk)) continue; if(b % 2 == 0) { tb.append("<tr>"); tb.append("<td><a action=\"bypass -h Aioitem_scheme_delbuff "+profile+" "+id+"\">"+sk.getName()+"</a></td>"); } else { tb.append("<td><a action=\"bypass -h Aioitem_scheme_delbuff "+profile+" "+id+"\">"+sk.getName()+"</a></td>"); tb.append("</tr>"); } b++; } tb.append("</table><br><a action=\"bypass -h Aioitem_scheme_main\"><font color=LEVEL>Main</font></a>"); tb.append("</center></body></html>"); NpcHtmlMessage msg = new NpcHtmlMessage(5); msg.setHtml(tb.toString()); player.sendPacket(msg); } }3 answers to this question
Recommended Posts