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

    • Very nice attempt and good luck with your sales.   Don't let the voices in this topic discourage you. Most of those people are just flexing. So if Celestine decides to write a bootkit or hook system calls or whatever and false-feed your anti-cheat fake info just because it sits in user mode just to go play in a private server with 100 people, I'll tell you one thing:   Who the fuck cares ... 😛   The average player won't / can't make these things, the big players like adrenaline won't bother (yet) (they don't have signed drivers do they ? They also run in user mode I believe). And even if they somehow manage to do so, there's a minority of players who would trust putting this thing on their pc. I wouldn't let anyone tamper with my kernel mode even if he had a signed certificate from Microsoft.    Also, in a scene where collusion has been brought out between bot makers and cheat guards, having many options is a blessing regardless of their strength. It makes colusion, conflict of interest and cartel more difficult, it drains from cheating software creators more resources to focus on more cheat guards, and it gives server owners plurality.    This arms race is a numbers game, you stop 90% of the cheaters you add value to all of us.    A couple of senior devs flexing their powers in a forum are not a concern.   If i'd ever make a server, I would definitelly buy from you, not because you have the best anti-cheat, but because you are not well known yet to be the focus of counter measures.     
    • TILL OPENING LEFT LESS THAN - 2 DAYS ! GRAND OPENING FROM - 10/07/2026, FRIDAY, 20:00 +3 GMT !
    • Add me on discord, lets talk   Discord: splicho
    • Add more information about your project, client, rates etc, this can help you find a developer more easily on your needs!
    • Hey guys! I am working on a new l2 private server and lookin for any developers who may be interested in helping me get it up n running. It would require a ton of work at the beginning, but once I am able to handle things on my own, I can do a lot of the work too. I just need someone who is tech savy to help me get things setup, make serious edits, and help me get this project going.   So far I have the project running on Java through eclipse. I have the server up locally, and pushing to GitHub. I just need help with managing edits to quests, skills, and other random functions to get me rolling.   Please reach out if you are interested!   Some current content I am working on: - Class skill edits - NPC skills, stats, and placements - Quest icons for turn in, completion, pick up etc - Quest logic (i.e. kill x mobs, turn in y amount, trigger a mini solo or mini group boss fights) I can handle the quest texts and story - Ability to more quickly upload changes to inventory, crafting, NPC stats/drops, etc... and gear setup. I would like to quickly add new recipes to shops or mob drops so players can start crafting it themselves
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..