Jump to content
  • 0

HTML too long/I need to make some pages in java!


Question

Posted

Hi guys once again i need your help.

I added a shift + click droplist panel on my server works fine except one missfaction. When the droplist is too big for example grandbosses the html page crashes.   "Your html is too long use database for this action"

So i need to seperate the droplist data in pages [1,2,3] or adding a next page button. 

Looking for someone to help me! Thank you!

My java code is here i use only requestbypasstoserver.java :

 else if (_command.startsWith("DropListNpc"))
              {
               final L2Object object = activeChar.getTarget();
              
              
               if (object instanceof L2NpcInstance)
               {
                   NpcHtmlMessage html = new NpcHtmlMessage(0);
                   StringBuilder html1 = new StringBuilder("<html>");
                  
                   html1.append("<title>Npc Name: " + object.getName() + "</title>");
                   html1.append("<body>");
                   html1.append("<br>");
                   html1.append("<table cellspacing=2 cellpadding=1 width=\"280\">");
                  
                   if (((L2NpcInstance) object).getTemplate().getDropData() != null)
                   {
                	   
                       for (L2DropCategory cat : ((L2NpcInstance) object).getTemplate().getDropData())
                       {
                          for (L2DropData drop : cat.getAllDrops())
                           {
                               final L2Item item = ItemTable.getInstance().getTemplate(drop.getItemId());
                               
                               if (item == null)
                                   continue;
                               int mind = 0, maxd = 0;
                               String smind = null, smaxd = null;
                               String name = item.getName();
                               if (cat.isSweep())
                               {
                                   mind = (int) (Config.RATE_DROP_SPOIL * drop.getMinDrop());
                                   maxd = (int) (Config.RATE_DROP_SPOIL * drop.getMaxDrop());
                               }
                               else if (drop.getItemId() == 57)
                               {
                                   mind = 300 * drop.getMinDrop();
                                   maxd = 300 * drop.getMaxDrop();
                               }
                               else
                               {
                                   mind = (int) (Config.RATE_DROP_ITEMS * drop.getMinDrop());
                                   maxd = (int) (Config.RATE_DROP_ITEMS * drop.getMaxDrop());
                               }
                               if (mind > 999999)
                               {
                                   DecimalFormat df = new DecimalFormat("###.#");
                                   smind = df.format(((double) (mind)) / 1000000) + " KK";
                                   smaxd = df.format(((double) (maxd)) / 1000000) + " KK";
                               }
                               else if (mind > 999)
                               {
                                   smind = ((mind / 1000)) + " K";
                                   smaxd = ((maxd / 1000)) + " K";
                               }
                              
                               else
                               {
                                   smind = Integer.toString(mind);
                                   smaxd = Integer.toString(maxd);
                               }
                               if (name.startsWith("Common Item - "))
                               {
                                   name = "(CI)" + name.substring(14);
                               }
                               if (name.length() >= 34)
                               {
                                   name = name.substring(0, 30) + "...";
                               }
                               html1.append("<tr>");
                               html1.append("<td valign=top align=center height=38 width=40><img src=\"" + getIcon(item.getItemId()) + "\" height=32 width=32></td>");
                               html1.append("<td>");
                               html1.append("<table cellpadding=0 cellspacing=1 width=260>");
                               html1.append("<tr>");
                               html1.append("<td><font color=fff600>" + name + "</font> " + (maxd == 1 ? "[1]" : "[" + smind + " - " + smaxd + "]") + "</td>");
                               html1.append("</tr>");
                               html1.append("<tr>");
                               html1.append("<td><font color=00ff00>Chance: </font>" + (drop.getChance() >= 10000 ? (double) drop.getChance() / 10000 : drop.getChance() < 10000 ? (double) drop.getChance() / 10000 : "N/A") + "%  "+ "</td>");
                               html1.append("</tr>");
                               html1.append("<tr>");
                               html1.append("<td><font color=00b3b3>Drop Type:</font> " + (drop.isQuestDrop() ? "<font color=00b3b3>[Quest]</font>" : (cat.isSweep() ? "<font color=ff00ff>[Spoil]</font> " : "<font color=00b3b3>[Drop]</font>")) + "</td>");
                               html1.append("</tr>");
                               html1.append("</table><img src=L2UI.SquareGray width=260 height=1>");
                               html1.append("</td>");
                               
                          
                               
                           }
                       }
                   }
                  
                   html1.append("</tr></table>");
                   html1.append("</body>");
                   html1.append("</html>");
                  
                   html.setHtml(html1.toString());
                   activeChar.sendPacket(html);
                  
                   html1 = null;
                   html = null;
               }
           }
           
		}

 

12 answers to this question

Recommended Posts

  • 0
Posted
On 9/19/2020 at 7:06 PM, Rootware said:

Add optional pagination if drop list has more than 20 items.

can i have a preview cause i'm a newbie java coder? in my code i posted above? thank you very much

  • 0
Posted
2 minutes ago, KaLeDoR said:

can i have a preview cause i'm a newbie java coder? in my code i posted above? thank you very much

 

The preview will contains the full completed code. And this will not help in solving your problem, but doing the work for you. You need make a choice: get help or asking do work for you.

  • 0
Posted (edited)

You can check pagination system on aCis. It basically store all elements in a List than sublist it based on given page number.

 

Simply check one of the 7 occurences of MathUtil#countPagesNumber.

 

https://gitlab.com/Tryskell/acis_public/-/blob/master/aCis_gameserver/java/net/sf/l2j/commons/math/MathUtil.java

 

Exemple of use #showBookmarks :

 

https://gitlab.com/Tryskell/acis_public/-/blob/master/aCis_gameserver/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminBookmark.java

 

By default L2J got also some handwritten pagination, maybe 1 or 2 times, but I don't find it really readable.

Edited by Tryskell
  • 0
Posted
On 9/20/2020 at 11:20 PM, Rootware said:

 

The preview will contains the full completed code. And this will not help in solving your problem, but doing the work for you. You need make a choice: get help or asking do work for you.

If anyone can make the work done i could pay him a small fee by paypall. I already tried to add pagination like stinkymadness did in his code but not working sth i do wrong propably.

  • 0
Posted
On 9/19/2020 at 7:06 PM, Rootware said:

Add optional pagination if drop list has more than 20 items.

I haven't the knowledge to do this to you want to do the job and get paid?

  • 0
Posted (edited)
13 hours ago, KaLeDoR said:

I haven't the knowledge to do this to you want to do the job and get paid?

Dude just adapt 10 lines of existing code, you dont have to create a new one or pay for such a thing

Edited by Zake
  • 0
Posted
26 minutes ago, Zake said:

Dude just adapt 10 lines of existing code, you dont have to create a new one or pay for such a thing

I dont have the knowledge to do this thats why i made a topic if theres anyone willing to help but i can pay for cause i didnt receive any help

Only tryskel gave me some info about pagination on acis but i use frozen and i cant understand the use of list arrays and bookmarks even if i tried is so hard for my skills

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 account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • --- Interlude Faction/GvE PvP grand opening 2025-11-15 19:00 GMT+2 ---   Gameplay: Chronicle: Interlude Type: Faction/GvE (Angels vs Nature vs Demons) GM Shop: B-S grade Buff slots: 20+4 Starting level: 74 + rebirth system   New Features: Client: Modern interface based on Essence Balance: New class skills for better balance Achievement Rewards: Daily, Weekly, One-time TOP rankings: PvP, Event PvP, Map PvP, Clan PvP, Event MvP, Map MvP Zones: 70 different PvP zones,  18 different events (8 map events | 10 main events) 12 Grand/raid bosses. Castle siege Olympiad Clan Hall challenge Custom Enchant System: Dynamic success chance (greater enchant level or item grade less enchanting success chance) Enchant rate: Blessed scrolls dynamic from 100% to 25%. Crystal Scrolls: 100%; Max enchant weapon +12 Max enchant armor +8 Safe point enchant system Extra Features: PvP items with level upgrade Weapon/Armor upgrade (from B grade to S) system Attributes system   Website: https://l2cygnus.com Community: Discord Facebook: https://www.facebook.com/l2cygnus Youtube:   
    • More fluid combat, not 100% yet, but I think it's acceptable. I put the following logic in movetopawn, moveto, maybemovetopawn, validatelocation, movetolocation: If Config.GeoData is active, it applies the coordinates using geodata; if disabled, use setdistanceplansq to measure the distance of things! Fix for reflected damage (if the attacker is null, it will not be calculated). Minor improvements to the Day/Night item generation manager. Fix to not punish players who destroy items with a count = 0... Fix for when a player tried to use a resurrection scroll while seated, it disappeared without effect. Fix for when it was possible to equip armor while paralyzed. Cleanup of System message. Rework of PathNodes. Fixed the ia for mobs attack range when chasing the player (test) Fixed Pathnodes loading Added # ------------------------ #Show Red Name for Aggressive Mobs # ------------------------ ShowRedName = True Which was missing in the configs
    • ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ⚔️ L2JOmen High Five - SERVIDOR 100% RETAIL ⚔️ 📢 SOLICITAMOS APOYO PARA TESTING 📢 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ¡Saludos, comunidad de Lineage II! Estamos desarrollando un proyecto ambicioso y de calidad: L2JOmen High Five, un servidor  100% RETAIL que busca ofrecer la experiencia más auténtica de High Five.  Nos encontramos en la fase de desarrollo y testing, y necesitamos tu ayuda para hacerlo  grande. Si eres un amante del retail, disfrutas probar nuevas funciones y quieres formar  parte de un proyecto serio desde sus inicios, ¡tu apoyo es invaluable! ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🎮 CARACTERÍSTICAS PRINCIPALES 🎮 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ✅ SERVIDOR 100% RETAIL    • Experiencia auténtica de High Five    • Geodata PTS Official    • Plataforma Premium 2025 ✅ SISTEMA DE RATES DINÁMICO (Progresión Retail x1 con ayuda x5 -> x1)    • XP: 1-20 (5.0x) | 21-40 (3.0x) | 41-60 (2.0x) | 61-75 (1.5x) | 76-85 (1.0x)    • SP: 1-20 (5.0x) | 21-40 (3.0x) | 41-60 (2.0x) | 61-75 (1.5x) | 76-85 (1.0x)    • Adena: x2.0 (Retail con pequeño ajuste)    • Drop y Spoil: x1.0 (Mobs, Raids y Epics) ✅ SISTEMA DE ENCANTAMIENTO PROFESIONAL    • Enchant Safe: +6 (100% seguro hasta +6)    • Enchant Máximo: +30    • Tasas de encantamiento balanceadas:      * 0-3: 100% | 4: 80% | 5: 75% | 6: 70% | 7: 65% | 8: 60%      * 9: 55% | 10: 50% | 11: 45% | 12: 40%      * 13: 10% | 14-25: 5-9% | 26-30: 1-4%    • Sistema Blessed Enchant habilitado ✅ INICIO DE PERSONAJE    • Dynasty Masterwork Set completo +12    • 1 Ticket para Weapon S +12    • Duración: 7 días ✅ CONFIGURACIÓN RETAIL    • Element Limit: Nivel 4    • Buffs: Duración de 1 hora    • Nobless: Obtenible mediante quest    • Subclass Máxima: 10 (Certificación para cada Subclass) ✅ SISTEMA DE FARM Y ECONOMÍA    • Múltiples monedas de farm (Adena, Ancient Adena, Coin of Luck, PC Bang Points, Farm Coins)    • Varias zonas de farm disponibles    • Zona de Party Farm (se habilita cada 3 horas por 1 hora)    • 4 Raids diarias programadas ✅ SISTEMA PC BANG POINTS    • Aproximadamente 10,000 puntos por 24 horas conectado    • Entrega cada 10 minutos    • Jugadores Normales: 60-72 puntos/intervalo    • Jugadores Premium: 96-116 puntos/intervalo    • 5% probabilidad de doble puntos ✅ SHOPS COMPLETOS    • Shop Normal (Adena y Farm Coins)    • Shop Donate (con opciones premium)    • Armaduras y Armas hasta Grado Dynasty, Moirai, S84    • Joyas completas, no incluye Epics    • Scrolls (Normales, Blessed, Divine, Ancient)    • Elementos hasta nivel 4-7    • Accesorios y consumibles ✅ SISTEMA VIP    • 5 niveles de VIP disponibles    • Bonificaciones progresivas de XP/SP/Drop    • Recompensas diarias exclusivas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🤝 ¿QUÉ NECESITAMOS DE TI? 🤝 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🔍 TESTERS ACTIVOS    • Jugadores que prueben todas las funciones del servidor    • Feedback constructivo sobre bugs, balance y mejoras    • Reporte de problemas encontrados 🎮 JUGADORES DEDICADOS    • Amantes del retail que valoren la experiencia auténtica    • Personas dispuestas a ayudar a mejorar el proyecto    • Comunidad comprometida con el crecimiento del servidor 📊 REPORTES DETALLADOS    • Bugs y errores encontrados    • Sugerencias de balance    • Opiniones sobre el gameplay    • Feedback sobre sistemas implementados ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 💎 ¿POR QUÉ UNIRTE A L2JOmen? 💎 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🌟 PROYECTO SERIO Y COMPROMETIDO    • Desarrollo constante y mejoras continuas    • Atención a la comunidad activa    • Transparencia en todas las decisiones 🎯 EXPERIENCIA 100% RETAIL    • Sin modificaciones que rompan el juego original    • Balance auténtico de High Five    • Gameplay puro y tradicional ⚡ TECNOLOGÍA DE VANGUARDIA    • Servidor optimizado y estable    • Geodata oficial de PTS    • Sistema robusto y sin lag    • Sistema Anticheat Premium 🎁 RECOMPENSAS PARA TESTERS    • Participación activa en el desarrollo    • Reconocimiento especial en el lanzamiento    • Beneficios exclusivos para early testers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📞 CONTACTO E INFORMACIÓN 📞 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Si estás interesado en formar parte de este proyecto y ayudarnos a crear el mejor  servidor retail de High Five, contáctanos. Tu apoyo es fundamental para hacer realidad  este grandioso proyecto. 💬 Únete a nuestro grupo de testing 🌐 WhatsApp: https://chat.whatsapp.com/Km6uRtFsoUq2tNZZalo5HB?mode=wwt ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🏆 ¡Juntos construimos el mejor servidor retail! 🏆 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
    • any server used these files? if yes let me know in pm.
    • L2Net is an in-game (IG) bot. I already have Adrenaline for that. I'm looking for an out-of-game (OOG) bot - one that doesn’t require the Lineage 2 client to run.
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock