Καλησπέρα παιδία μηπως μπορεί κάποιος να μου πει πως μπορώ να κάνω όταν κάποιος πατάει shift+click για να δει τα drop να γινεται μονο σε attackable npc ? πχ mob - boss klp
else if (Config.ALT_GAME_VIEWNPC)
{
// Set the target of the L2PcInstance player
player.setTarget(this);
// Send a Server->Client packet MyTargetSelected to the L2PcInstance player
// The player.getLevel() - getLevel() permit to display the correct color in the select window
MyTargetSelected my = new MyTargetSelected(getObjectId(), player.getLevel() - getLevel());
player.sendPacket(my);
my = null;
// Check if the player is attackable (without a forced attack)
if (isAutoAttackable(player))
{
// Send a Server->Client packet StatusUpdate of the L2NpcInstance to the L2PcInstance to update its HP bar
StatusUpdate su = new StatusUpdate(getObjectId());
su.addAttribute(StatusUpdate.CUR_HP, (int) getCurrentHp());
su.addAttribute(StatusUpdate.MAX_HP, getMaxHp());
player.sendPacket(su);
su = null;
}
NpcHtmlMessage html = new NpcHtmlMessage(0);
TextBuilder html1 = new TextBuilder("<html><body>");
html1.append("<br><center><font color=\"LEVEL\">[Combat Stats]</font></center>");
html1.append("<table border=0 width=\"100%\">");
html1.append("<tr><td>Max.HP</td><td>" + (int) (getMaxHp() / getStat().calcStat(Stats.MAX_HP, 1, this, null)) + "*" + (int) getStat().calcStat(Stats.MAX_HP, 1, this, null) + "</td><td>Max.MP</td><td>" + getMaxMp() + "</td></tr>");
html1.append("<tr><td>P.Atk.</td><td>" + getPAtk(null) + "</td><td>M.Atk.</td><td>" + getMAtk(null, null) + "</td></tr>");
html1.append("<tr><td>P.Def.</td><td>" + getPDef(null) + "</td><td>M.Def.</td><td>" + getMDef(null, null) + "</td></tr>");
html1.append("<tr><td>Accuracy</td><td>" + getAccuracy() + "</td><td>Evasion</td><td>" + getEvasionRate(null) + "</td></tr>");
html1.append("<tr><td>Critical</td><td>" + getCriticalHit(null, null) + "</td><td>Speed</td><td>" + getRunSpeed() + "</td></tr>");
html1.append("<tr><td>Atk.Speed</td><td>" + getPAtkSpd() + "</td><td>Cast.Speed</td><td>" + getMAtkSpd() + "</td></tr>");
html1.append("<tr><td>Race</td><td>" + getTemplate().race + "</td><td></td><td></td></tr>");
html1.append("</table>");
html1.append("<br><center><font color=\"LEVEL\">[Basic Stats]</font></center>");
html1.append("<table border=0 width=\"100%\">");
html1.append("<tr><td>STR</td><td>" + getSTR() + "</td><td>DEX</td><td>" + getDEX() + "</td><td>CON</td><td>" + getCON() + "</td></tr>");
html1.append("<tr><td>INT</td><td>" + getINT() + "</td><td>WIT</td><td>" + getWIT() + "</td><td>MEN</td><td>" + getMEN() + "</td></tr>");
html1.append("</table>");
html1.append("<br><center><font color=\"LEVEL\">[Drop Info]</font></center>");
html1.append("Rates legend: <font color=\"ff0000\">50%+</font> <font color=\"00ff00\">30%+</font> <font color=\"0000ff\">less than 30%</font>");
html1.append("<table border=0 width=\"100%\">");
for (final L2DropCategory cat : getTemplate().getDropData())
{
final FastList<L2DropData> drops = cat.getAllDrops();
if (drops != null)
for (final L2DropData drop : drops)
{
if (drop == null || ItemTable.getInstance().getTemplate(drop.getItemId()) == null)
{
continue;
}
final String name = ItemTable.getInstance().getTemplate(drop.getItemId()).getName();
if (drop.getChance() >= 600000)
{
html1.append("<tr><td><font color=\"ff0000\">" + name + "</font></td><td>" + (drop.isQuestDrop() ? "Quest" : cat.isSweep() ? "Sweep" : "Drop") + "</td></tr>");
}
else if (drop.getChance() >= 300000)
{
html1.append("<tr><td><font color=\"00ff00\">" + name + "</font></td><td>" + (drop.isQuestDrop() ? "Quest" : cat.isSweep() ? "Sweep" : "Drop") + "</td></tr>");
}
else
{
html1.append("<tr><td><font color=\"0000ff\">" + name + "</font></td><td>" + (drop.isQuestDrop() ? "Quest" : cat.isSweep() ? "Sweep" : "Drop") + "</td></tr>");
}
}
}
html1.append("</table>");
html1.append("</body></html>");
html.setHtml(html1.toString());
player.sendPacket(html);
html = null;
html1 = null;
}
🔥 Launch was a success!
Over 500 players joined L2Elixir on opening day, and we are holding a steady 420–450 online!
We faced extortion attempts and heavy DDoS attacks, but our protections held strong — even if the cost was far higher than expected.
What matters is we fought back and kept the server online for you. ⚔️
💙 Our priority is simple:
Deliver a stable, fair, and growing server that will evolve for years to come.
We continue to invest in protections, advertising, and development — and we won’t stop.
All we ask from YOU is one thing:
👉 Keep playing. The more active the community is, the faster the server grows.
💠 Important Note:
We have no paid clans or CPs, no “boosted” groups, no unfair benefits.
Everyone has an equal chance to progress and compete.
Thank you to everyone who joined, supported, and believed in this project.
Let’s make L2Elixir great again — even in 2025–2026! 🚀
Website: https://l2elixir.org/
Discord: https://discord.gg/5ydPHvhbxs
@Atom Can you please move to Private Servers? Thanks!
Question
FunKermaN
Καλησπέρα παιδία μηπως μπορεί κάποιος να μου πει πως μπορώ να κάνω όταν κάποιος πατάει shift+click για να δει τα drop να γινεται μονο σε attackable npc ? πχ mob - boss klp
else if (Config.ALT_GAME_VIEWNPC) { // Set the target of the L2PcInstance player player.setTarget(this); // Send a Server->Client packet MyTargetSelected to the L2PcInstance player // The player.getLevel() - getLevel() permit to display the correct color in the select window MyTargetSelected my = new MyTargetSelected(getObjectId(), player.getLevel() - getLevel()); player.sendPacket(my); my = null; // Check if the player is attackable (without a forced attack) if (isAutoAttackable(player)) { // Send a Server->Client packet StatusUpdate of the L2NpcInstance to the L2PcInstance to update its HP bar StatusUpdate su = new StatusUpdate(getObjectId()); su.addAttribute(StatusUpdate.CUR_HP, (int) getCurrentHp()); su.addAttribute(StatusUpdate.MAX_HP, getMaxHp()); player.sendPacket(su); su = null; } NpcHtmlMessage html = new NpcHtmlMessage(0); TextBuilder html1 = new TextBuilder("<html><body>"); html1.append("<br><center><font color=\"LEVEL\">[Combat Stats]</font></center>"); html1.append("<table border=0 width=\"100%\">"); html1.append("<tr><td>Max.HP</td><td>" + (int) (getMaxHp() / getStat().calcStat(Stats.MAX_HP, 1, this, null)) + "*" + (int) getStat().calcStat(Stats.MAX_HP, 1, this, null) + "</td><td>Max.MP</td><td>" + getMaxMp() + "</td></tr>"); html1.append("<tr><td>P.Atk.</td><td>" + getPAtk(null) + "</td><td>M.Atk.</td><td>" + getMAtk(null, null) + "</td></tr>"); html1.append("<tr><td>P.Def.</td><td>" + getPDef(null) + "</td><td>M.Def.</td><td>" + getMDef(null, null) + "</td></tr>"); html1.append("<tr><td>Accuracy</td><td>" + getAccuracy() + "</td><td>Evasion</td><td>" + getEvasionRate(null) + "</td></tr>"); html1.append("<tr><td>Critical</td><td>" + getCriticalHit(null, null) + "</td><td>Speed</td><td>" + getRunSpeed() + "</td></tr>"); html1.append("<tr><td>Atk.Speed</td><td>" + getPAtkSpd() + "</td><td>Cast.Speed</td><td>" + getMAtkSpd() + "</td></tr>"); html1.append("<tr><td>Race</td><td>" + getTemplate().race + "</td><td></td><td></td></tr>"); html1.append("</table>"); html1.append("<br><center><font color=\"LEVEL\">[Basic Stats]</font></center>"); html1.append("<table border=0 width=\"100%\">"); html1.append("<tr><td>STR</td><td>" + getSTR() + "</td><td>DEX</td><td>" + getDEX() + "</td><td>CON</td><td>" + getCON() + "</td></tr>"); html1.append("<tr><td>INT</td><td>" + getINT() + "</td><td>WIT</td><td>" + getWIT() + "</td><td>MEN</td><td>" + getMEN() + "</td></tr>"); html1.append("</table>"); html1.append("<br><center><font color=\"LEVEL\">[Drop Info]</font></center>"); html1.append("Rates legend: <font color=\"ff0000\">50%+</font> <font color=\"00ff00\">30%+</font> <font color=\"0000ff\">less than 30%</font>"); html1.append("<table border=0 width=\"100%\">"); for (final L2DropCategory cat : getTemplate().getDropData()) { final FastList<L2DropData> drops = cat.getAllDrops(); if (drops != null) for (final L2DropData drop : drops) { if (drop == null || ItemTable.getInstance().getTemplate(drop.getItemId()) == null) { continue; } final String name = ItemTable.getInstance().getTemplate(drop.getItemId()).getName(); if (drop.getChance() >= 600000) { html1.append("<tr><td><font color=\"ff0000\">" + name + "</font></td><td>" + (drop.isQuestDrop() ? "Quest" : cat.isSweep() ? "Sweep" : "Drop") + "</td></tr>"); } else if (drop.getChance() >= 300000) { html1.append("<tr><td><font color=\"00ff00\">" + name + "</font></td><td>" + (drop.isQuestDrop() ? "Quest" : cat.isSweep() ? "Sweep" : "Drop") + "</td></tr>"); } else { html1.append("<tr><td><font color=\"0000ff\">" + name + "</font></td><td>" + (drop.isQuestDrop() ? "Quest" : cat.isSweep() ? "Sweep" : "Drop") + "</td></tr>"); } } } html1.append("</table>"); html1.append("</body></html>"); html.setHtml(html1.toString()); player.sendPacket(html); html = null; html1 = null; }9 answers to this question
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now