Jump to content
  • 0

Problem On A Code After Updating The Source!


xXObanXx

Question

Hello guys... so i have l2jserver High Five (unstable) and i updated it to the latest revision.. so i have many custom codes and features in my pack and i've got a problem that pissed me off!!

 

so the file is this:

/*
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * this program. If not, see <http://www.gnu.org/licenses/>.
 */
package handlers.bypasshandlers;

import java.text.DecimalFormat;

import com.l2jserver.gameserver.datatables.ItemTable;
import com.l2jserver.gameserver.enums.InstanceType;
import com.l2jserver.gameserver.handler.IBypassHandler;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.items.L2Item;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jserver.util.StringUtil;

public class DropInfo implements IBypassHandler
{
	private static final String[] COMMANDS =
	{
		"drop",
		"spoil",
		"info",
		"dropquest"
	};
	
	@Override
	public boolean useBypass(String command, L2PcInstance activeChar, L2Character target)
	{
		try
		{
			final NpcHtmlMessage html = new NpcHtmlMessage(0);
			L2Object targetmob = activeChar.getTarget();
			L2Npc npc = (L2Npc) targetmob;
			String droptext = "";
			
			if (command.startsWith("drop"))
			{
				try
				{
					html.setFile(activeChar.getHtmlPrefix(), "data/html/dropinfo/mobdrop.htm");
					
					if (!(npc.isChampion() || npc.isMinion() || (npc.getInstanceType() == InstanceType.L2GrandBossInstance) || npc.isRaid() || npc.isRaidMinion() || npc.isMob()))
					{
						return false;
					}
					if (npc.getTemplate().getDropLists().isEmpty())
					{
						droptext = "WARNING: This Npc has no Drops!";
						html.replace("%drops%", droptext);
						activeChar.sendPacket(html);
						return false;
					}
					String champ = "";
					String imgsg = "<img src=\"l2ui.squaregray\" width=\"274\" height=\"1\">";
					String ta_op = "<table bgcolor=333333 cellspacing=2 cellpadding=1><tr><td height=38 fixwidth=36><img src=\"";
					String ta_op2 = "\" height=32 width=32></td><td fixwidth=234><table VALIGN=top valing = top width=234 cellpadding=0 cellspacing=0><tr>";
					
					final StringBuilder droptext1 = StringUtil.startAppend(9000, champ + "<br>" + imgsg);
					for (L2DropCategory cat : npc.getTemplate().getDropLists())
					{
						for (L2DropData drop : cat.getAllDrops())
						{
							final L2Item item = ItemTable.getInstance().getTemplate(drop.getItemId());
							if (item == null)
							{
								continue;
							}
							if (cat.isSweep())
							{
								continue;
							}
							if (drop.isQuestDrop())
							{
								continue;
							}
							
							String smind = null, drops = null;
							String name = item.getName();
							double chance = (drop.getChance() / 10000);
							
							if (item.getCrystalType() == 0)
							{
								smind = "<img src=\"L2UI_CH3.joypad_shortcut\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 1)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_D\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 2)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_C\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 3)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_B\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 4)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_A\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 5)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_S\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 6)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_80\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 7)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_84\" width=16 height=16>";
							}
							
							if (chance <= 0.001)
							{
								DecimalFormat df = new DecimalFormat("#.####");
								drops = df.format(chance);
							}
							else if (chance <= 0.01)
							{
								DecimalFormat df = new DecimalFormat("#.###");
								drops = df.format(chance);
							}
							else
							{
								DecimalFormat df = new DecimalFormat("##.##");
								drops = df.format(chance);
							}
							if (name.startsWith("Recipe - Sealed"))
							{
								name = "<font color=00FF00>(Re)</font><font color=FF00FF>(Sl)</font>" + name.substring(16);
							}
							if (name.startsWith("Sealed "))
							{
								name = "<font color=FF00FF>(Sl)</font>" + name.substring(7);
							}
							if (name.startsWith("Common Item - "))
							{
								name = "<font color=00FFFF>(Ci)</font>" + name.substring(14);
							}
							if (name.startsWith("Recipe: "))
							{
								name = "<font color=00FF00>(Re)</font>" + name.substring(8);
							}
							if (name.startsWith("Recipe -"))
							{
								name = "<font color=00FF00>(Re)</font>" + name.substring(8);
							}
							if (name.startsWith("Mid-Grade Life Stone"))
							{
								name = "<font color=fff600>Mid-Grade LS</font>" + name.substring(20);
							}
							if (name.startsWith("High-Grade Life Stone"))
							{
								name = "<font color=fff600>High-Grade LS</font>" + name.substring(21);
							}
							if (name.startsWith("Top-Grade Life Stone"))
							{
								name = "<font color=fff600>Top-Grade LS</font>" + name.substring(20);
							}
							if (name.startsWith("Forgotten Scroll - "))
							{
								name = "<font color=fff600>FS - </font>" + name.substring(19);
							}
							if (name.startsWith("Greater Dye of "))
							{
								name = "<font color=fff600>G Dye of </font>" + name.substring(15);
							}
							
							droptext1.append(ta_op + item.getIcon() + ta_op2 + "<td align=left width=16>" + smind + "</td><td align=left width=260><font color=fff600>" + name + "</font></td></tr><tr><td align=left width=16><img src=\"L2UI_CH3.QuestWndToolTipBtn\" width=16 height=16></td><td align=left width=55><font color=E15656>" + drops + "%</font></td></tr></table></td></tr></table>" + imgsg);
						}
					}
					droptext = droptext1.toString();
					html.replace("%drops%", droptext);
					activeChar.sendPacket(html);
				}
				catch (Exception e)
				{
					activeChar.sendMessage("Something went wrong with the drop preview.");
				}
			}
			if (command.startsWith("spoil"))
			{
				try
				{
					html.setFile(activeChar.getHtmlPrefix(), "data/html/dropinfo/mobspoil.htm");
					
					if (!(npc.isChampion() || npc.isMinion() || npc.isRaid() || npc.isRaidMinion() || npc.isMob()))
					{
						return false;
					}
					if (npc.getTemplate().getDropLists().isEmpty())
					{
						droptext = "WARNING: This Npc has no Drops!";
						html.replace("%drops%", droptext);
						activeChar.sendPacket(html);
						return false;
					}
					String champ = "";
					String imgsg = "<img src=\"l2ui.squaregray\" width=\"274\" height=\"1\">";
					String ta_op = "<table bgcolor=333333 cellspacing=2 cellpadding=1><tr><td height=38 fixwidth=36><img src=\"";
					String ta_op2 = "\" height=32 width=32></td><td fixwidth=234><table VALIGN=top valing = top width=234 cellpadding=0 cellspacing=1><tr>";
					final StringBuilder droptext1 = StringUtil.startAppend(1000, champ + "<br>" + imgsg);
					for (L2DropCategory cat : npc.getTemplate().getDropLists())
					{
						for (L2DropData drop : cat.getAllDrops())
						{
							final L2Item item = ItemTable.getInstance().getTemplate(drop.getItemId());
							if (item == null)
							{
								continue;
							}
							if (!(cat.isSweep()))
							{
								continue;
							}
							
							String smind = null, drops = null;
							String name = item.getName();
							double chance = (drop.getChance() / 10000);
							
							if (item.getCrystalType() == 0)
							{
								smind = "<img src=\"L2UI_CH3.joypad_shortcut\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 1)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_D\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 2)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_C\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 3)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_B\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 4)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_A\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 5)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_S\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 6)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_80\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 7)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_84\" width=16 height=16>";
							}
							
							if (chance <= 0.001)
							{
								DecimalFormat df = new DecimalFormat("#.####");
								drops = df.format(chance);
							}
							else if (chance <= 0.01)
							{
								DecimalFormat df = new DecimalFormat("#.###");
								drops = df.format(chance);
							}
							else
							{
								DecimalFormat df = new DecimalFormat("##.##");
								drops = df.format(chance);
							}
							if (name.startsWith("Recipe - Sealed"))
							{
								name = "<font color=00FF00>(Re)</font><font color=FF00FF>(Sl)</font>" + name.substring(16);
							}
							if (name.startsWith("Sealed "))
							{
								name = "<font color=FF00FF>(Sl)</font>" + name.substring(7);
							}
							if (name.startsWith("Common Item - "))
							{
								name = "<font color=00FFFF>(Ci)</font>" + name.substring(14);
							}
							if (name.startsWith("Recipe: "))
							{
								name = "<font color=00FF00>(Re)</font>" + name.substring(8);
							}
							if (name.startsWith("Recipe -"))
							{
								name = "<font color=00FF00>(Re)</font>" + name.substring(8);
							}
							if (name.startsWith("Mid-Grade Life Stone"))
							{
								name = "<font color=fff600>Mid-Grade LS</font>" + name.substring(20);
							}
							if (name.startsWith("High-Grade Life Stone"))
							{
								name = "<font color=fff600>High-Grade LS</font>" + name.substring(21);
							}
							if (name.startsWith("Top-Grade Life Stone"))
							{
								name = "<font color=fff600>Top-Grade LS</font>" + name.substring(20);
							}
							if (name.startsWith("Forgotten Scroll - "))
							{
								name = "<font color=fff600>FS - </font>" + name.substring(19);
							}
							if (name.startsWith("Greater Dye of "))
							{
								name = "<font color=fff600>G Dye of </font>" + name.substring(15);
							}
							
							droptext1.append(ta_op + item.getIcon() + ta_op2 + "<td align=left width=16>" + smind + "</td><td align=left width=260><font color=fff600>" + name + "</font></td></tr><tr><td align=left width=16><img src=\"L2UI_CH3.QuestWndToolTipBtn\" width=16 height=16></td><td align=left width=55><font color=E15656>" + drops + "%</font></td></tr></table></td></tr></table>" + imgsg);
						}
					}
					droptext = droptext1.toString();
					html.replace("%drops%", droptext);
					activeChar.sendPacket(html);
				}
				catch (Exception e)
				{
					activeChar.sendMessage("Something went wrong with the drop preview.");
				}
			}
			if (command.startsWith("dropquest"))
			{
				try
				{
					html.setFile(activeChar.getHtmlPrefix(), "data/html/dropinfo/mobquest.htm");
					
					if (!(npc.isChampion() || npc.isMinion() || npc.isRaid() || npc.isRaidMinion() || npc.isMob()))
					{
						return false;
					}
					if (npc.getTemplate().getDropLists().isEmpty())
					{
						droptext = "WARNING: This Npc has no Drops!";
						html.replace("%drops%", droptext);
						activeChar.sendPacket(html);
						return false;
					}
					String champ = "";
					String imgsg = "<img src=\"l2ui.squaregray\" width=\"274\" height=\"1\">";
					String ta_op = "<table bgcolor=333333 cellspacing=2 cellpadding=1><tr><td height=38 fixwidth=36><img src=\"";
					String ta_op2 = "\" height=32 width=32></td><td fixwidth=234><table VALIGN=top valing = top width=234 cellpadding=0 cellspacing=1><tr>";
					final StringBuilder droptext1 = StringUtil.startAppend(1000, champ + "<br>" + imgsg);
					for (L2DropCategory cat : npc.getTemplate().getDropLists())
					{
						for (L2DropData drop : cat.getAllDrops())
						{
							final L2Item item = ItemTable.getInstance().getTemplate(drop.getItemId());
							if (item == null)
							{
								continue;
							}
							if (!(drop.isQuestDrop()))
							{
								continue;
							}
							
							String smind = null, drops = null;
							String name = item.getName();
							double chance = (drop.getChance() / 10000);
							
							if (item.getCrystalType() == 0)
							{
								smind = "<img src=\"L2UI_CH3.joypad_shortcut\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 1)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_D\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 2)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_C\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 3)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_B\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 4)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_A\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 5)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_S\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 6)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_80\" width=16 height=16>";
							}
							else if (item.getCrystalType() == 7)
							{
								smind = "<img src=\"L2UI_CT1.Icon_DF_ItemGrade_84\" width=16 height=16>";
							}
							
							if (chance <= 0.001)
							{
								DecimalFormat df = new DecimalFormat("#.####");
								drops = df.format(chance);
							}
							else if (chance <= 0.01)
							{
								DecimalFormat df = new DecimalFormat("#.###");
								drops = df.format(chance);
							}
							else
							{
								DecimalFormat df = new DecimalFormat("##.##");
								drops = df.format(chance);
							}
							if (name.startsWith("Recipe - Sealed"))
							{
								name = "<font color=00FF00>(Re)</font><font color=FF00FF>(Sl)</font>" + name.substring(16);
							}
							if (name.startsWith("Sealed "))
							{
								name = "<font color=FF00FF>(Sl)</font>" + name.substring(7);
							}
							if (name.startsWith("Common Item - "))
							{
								name = "<font color=00FFFF>(Ci)</font>" + name.substring(14);
							}
							if (name.startsWith("Recipe: "))
							{
								name = "<font color=00FF00>(Re)</font>" + name.substring(8);
							}
							if (name.startsWith("Recipe -"))
							{
								name = "<font color=00FF00>(Re)</font>" + name.substring(8);
							}
							if (name.startsWith("Mid-Grade Life Stone"))
							{
								name = "<font color=fff600>Mid-Grade LS</font>" + name.substring(20);
							}
							if (name.startsWith("High-Grade Life Stone"))
							{
								name = "<font color=fff600>High-Grade LS</font>" + name.substring(21);
							}
							if (name.startsWith("Top-Grade Life Stone"))
							{
								name = "<font color=fff600>Top-Grade LS</font>" + name.substring(20);
							}
							if (name.startsWith("Forgotten Scroll - "))
							{
								name = "<font color=fff600>FS - </font>" + name.substring(19);
							}
							if (name.startsWith("Greater Dye of "))
							{
								name = "<font color=fff600>G Dye of </font>" + name.substring(15);
							}
							
							droptext1.append(ta_op + item.getIcon() + ta_op2 + "<td align=left width=16>" + smind + "</td><td align=left width=260><font color=fff600>" + name + "</font></td></tr><tr><td align=left width=16><img src=\"L2UI_CH3.QuestWndToolTipBtn\" width=16 height=16></td><td align=left width=55><font color=E15656>" + drops + "%</font></td></tr></table></td></tr></table>" + imgsg);
						}
					}
					droptext = droptext1.toString();
					html.replace("%drops%", droptext);
					activeChar.sendPacket(html);
				}
				catch (Exception e)
				{
					activeChar.sendMessage("Something went wrong with the drop preview.");
				}
			}
		}
		catch (Exception e)
		{
			activeChar.sendMessage("You cant use this option with this target.");
		}
		return false;
	}
	
	@Override
	public String[] getBypassList()
	{
		return COMMANDS;
	}
}

so i have problem with these:

 

for (L2DropCategory cat : npc.getTemplate().getDropLists())
                    {
                        for (L2DropData drop : cat.getAllDrops())

 

 

these codes are placed 3 times in the whole file..!

I'll appreciate your help a lot!
(P.S. these methods (L2DropData and L2DropCategory) have been removed by L2JServer team... but i didn't found any other way to solve these problems!)

Edited by xXObanXx
Link to comment
Share on other sites

1 answer 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.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...