- 0
-
Posts
-
well i didnt used to had that issue u reffering , u can always lower the page value that would show on each page . keep in mind it was taken from h5 that it can handle more html length than interlude . package handlers.admincommandhandlers; import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; import org.l2jmobius.gameserver.util.Util; public class AdminInventory implements IAdminCommandHandler { private static final String[] ADMIN_COMMANDS = { "admin_showinv", "admin_delete_item" }; @Override public boolean useAdminCommand(String command, Player activeChar) { WorldObject target = activeChar.getTarget(); if (target == null || !target.isPlayer()) { activeChar.sendPacket(SystemMessageId.INVALID_TARGET); return false; } if (command.startsWith(ADMIN_COMMANDS[0])) { if (command.length() > ADMIN_COMMANDS[0].length()) { String com = command.substring(ADMIN_COMMANDS[0].length() + 1); if (Util.isDigit(com)) { showItemsPage(activeChar, Integer.parseInt(com)); } } else { showItemsPage(activeChar, 0); } } int count = 1; if (command.contains(ADMIN_COMMANDS[1])) { String[] parts = command.split(" "); if (parts.length == 3) { try { count = Integer.parseInt(parts[2]); } catch (NumberFormatException e) { activeChar.sendMessage("Invalid quantity format."); return false; } } if (count == 0) { activeChar.sendMessage("Quantity must be 1 or above, or left blank for default."); showItemsPage(activeChar, 0); return false; } String val = parts[1]; target.getActingPlayer().destroyItem("GM Destroy", Integer.parseInt(val), count, null, true); showItemsPage(activeChar, 0); } return true; } private void showItemsPage(Player activeChar, int page) { final WorldObject target = activeChar.getTarget(); final Player player = target.getActingPlayer(); final Item[] items = player.getInventory().getItems().toArray(new Item[0]); int maxItemsPerPage = 13; int maxPages = items.length / maxItemsPerPage; if (items.length > (maxItemsPerPage * maxPages)) { maxPages++; } if (page > maxPages) { page = maxPages; } int itemsStart = maxItemsPerPage * page; int itemsEnd = items.length; if ((itemsEnd - itemsStart) > maxItemsPerPage) { itemsEnd = itemsStart + maxItemsPerPage; } final NpcHtmlMessage adminReply = new NpcHtmlMessage(0); adminReply.setFile(activeChar, "data/html/admin/inventory.htm"); adminReply.replace("%PLAYER_NAME%", activeChar.getName()); StringBuilder sbPages = new StringBuilder(); for (int x = 0; x < maxPages; x++) { int pagenr = x + 1; sbPages.append("<td><button value=\"" + pagenr + "\" action=\"bypass -h admin_showinv " + x + "\" width=20 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>"); } adminReply.replace("%PAGES%", sbPages.toString()); StringBuilder sbItems = getStringBuilder(itemsStart, itemsEnd, items); adminReply.replace("%ITEMS%", sbItems.toString()); activeChar.sendPacket(adminReply); } private static StringBuilder getStringBuilder(int itemsStart, int itemsEnd, Item[] items) { StringBuilder sbItems = new StringBuilder(); sbItems.append("<table width=270>"); sbItems.append("<tr>"); sbItems.append("<td width=24><b> </b></td>"); sbItems.append("<td width=120><b> </b></td>"); sbItems.append("<td width=90><b>Count</b></td>"); sbItems.append("<td width=65><b>Quantity</b></td>"); sbItems.append("</tr>"); for (int i = itemsStart; i < itemsEnd; i++) { Item item = items[i]; sbItems.append("<tr>"); sbItems.append("<td><img src=").append(item.getTemplate().getIcon()).append(" width=24 height=24></td>"); sbItems.append("<td>").append(item.getName()).append("</td>"); sbItems.append("<td>").append(item.getCount()).append("</td>"); sbItems.append("<td>"); sbItems.append("<edit var=\"itemCount_").append(i).append("\" width=40>"); sbItems.append("</td>"); sbItems.append("<td><button action=\"bypass -h admin_delete_item ").append(item.getObjectId()).append(" $itemCount_").append(i).append("\" width=16 height=16 back=\"L2UI_ct1.Button_DF_Delete\" fore=\"L2UI_ct1.Button_DF_Delete\"></button></td>"); sbItems.append("</tr>"); } sbItems.append("</table>"); return sbItems; } @Override public String[] getAdminCommandList() { return ADMIN_COMMANDS; } } Since i did jumped to mobius here the mobius one with quantity field aswell . feel free to adapt it back to acis or wherever <html><body><title>Inventory : %PLAYER_NAME%</title> <center> <table width=270> <tr> %PAGES% </tr> </table> </center> <br> %ITEMS% </body> </html>
-
DISCORD SERVER: 2MVCtXHvbH
-
~ DISCORD SERVER: 2MVCtXHvbH DISCORD SERVER: 2MVCtXHvbH
-
DISCORD SERVER: 2MVCtXHvbH
-
-
Topics
Question
n0t1s15
Kalispera. Eimai newbie kai den iksera pou na ftiakso afto to topic
gi afto kai to eftiaksa edo..Epsaksa alla den vrika tpt gi afto kai i8ela
na rotiso mipos kseri kanenas pos mporo na ftiakso enan l2 freya server java?
Thanx :)
Link to comment
Share on other sites
4 answers to this question
Recommended Posts