When i apply these changes to database when i click to npcs like high priests to clan/alliance/quest that doens't work the npc dialog just close and no error at console
*ima using freya l2j
Added that (DropInfo.java) to bypasshandlers
/*
* 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.handler.IBypassHandler;
import com.l2jserver.gameserver.model.L2DropCategory;
import com.l2jserver.gameserver.model.L2DropData;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.L2Object.InstanceType;
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.network.serverpackets.NpcHtmlMessage;
import com.l2jserver.gameserver.templates.item.L2Item;
import com.l2jserver.util.StringUtil;
public class DropInfo implements IBypassHandler
{
private static final String[] COMMANDS =
{
"drop",
"spoil",
"info",
"quest"
};
@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/custom/mobdrop.htm");
if (!(npc.isChampion() || npc.isMinion() || npc.getInstanceType() == InstanceType.L2GrandBossInstance || npc.isRaid() || npc.isRaidMinion() || npc.isMob()))
return false;
if (npc.getTemplate().getDropData().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().getDropData())
{
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 = ((double)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/custom/mobspoil.htm");
if (!(npc.isChampion() || npc.isMinion() || npc.isRaid() || npc.isRaidMinion() || npc.isMob()))
return false;
if (npc.getTemplate().getDropData().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().getDropData())
{
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 = ((double)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("quest"))
{
try
{
html.setFile(activeChar.getHtmlPrefix(), "data/html/custom/mobquest.htm");
if (!(npc.isChampion() || npc.isMinion() || npc.isRaid() || npc.isRaidMinion() || npc.isMob()))
return false;
if (npc.getTemplate().getDropData().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().getDropData())
{
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 = ((double)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;
}
}
Is it possible to use Adrenalin 1.71 (Cracked) on clients higher than H5? Looking for support for Grand Crusade (109) or Essence: Assassin (418) on a bot-allowed server.
Really? Really
Completely? Completely
We're sorry too. It's been a great way of 10 years, and we are grateful to you for every activation you made. All the details about the closure are available on the website.
Important! The SMS-Activate brand no longer exists. There appear websites that duplicate our name — these are scammers, we have no connection to them. If you receive messages from “SMS-Activate employees”, be sure it's a scam. Currently, our technical support is only processing withdrawals from balances.
We are entering another season, the year 2026, which marks 20 years since the beginning of preparations for the first Chronicle server - Gracia Final.
The plans are the same as 20 years ago: to prepare a new generation of the game with the help of our edited game client, New Era.
There will be special new locations and dungeons for solo players and clans, clan quests and a clan shop, as well as special items and jewelry with attributes.
Enjoy the game at Dark Dragon
https://www.darkdragon.club/wp-content/uploads/2025/12/Dark_Dragon_login_New_Era.mp4
Question
Napster321
When i apply these changes to database when i click to npcs like high priests to clan/alliance/quest that doens't work the npc dialog just close and no error at console
*ima using freya l2j
Added that (DropInfo.java) to bypasshandlers
/* * 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.handler.IBypassHandler; import com.l2jserver.gameserver.model.L2DropCategory; import com.l2jserver.gameserver.model.L2DropData; import com.l2jserver.gameserver.model.L2Object; import com.l2jserver.gameserver.model.L2Object.InstanceType; 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.network.serverpackets.NpcHtmlMessage; import com.l2jserver.gameserver.templates.item.L2Item; import com.l2jserver.util.StringUtil; public class DropInfo implements IBypassHandler { private static final String[] COMMANDS = { "drop", "spoil", "info", "quest" }; @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/custom/mobdrop.htm"); if (!(npc.isChampion() || npc.isMinion() || npc.getInstanceType() == InstanceType.L2GrandBossInstance || npc.isRaid() || npc.isRaidMinion() || npc.isMob())) return false; if (npc.getTemplate().getDropData().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().getDropData()) { 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 = ((double)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/custom/mobspoil.htm"); if (!(npc.isChampion() || npc.isMinion() || npc.isRaid() || npc.isRaidMinion() || npc.isMob())) return false; if (npc.getTemplate().getDropData().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().getDropData()) { 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 = ((double)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("quest")) { try { html.setFile(activeChar.getHtmlPrefix(), "data/html/custom/mobquest.htm"); if (!(npc.isChampion() || npc.isMinion() || npc.isRaid() || npc.isRaidMinion() || npc.isMob())) return false; if (npc.getTemplate().getDropData().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().getDropData()) { 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 = ((double)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; } }13 answers to this question
Recommended Posts