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.
I'm just testing the extender) I couldn't find any critical issues.
I found my own error due to which the autoloot function was not active:
just a syntax error, case-sensitive. You can't use a capital letter in the Myext.ini settings.
AutoLootMobDrop = true. (parameter true must necessarily be with a lowercase letter)
DISCORD :
utchiha_market
telegram :
https://t.me/utchiha_market
SELLIX STORE :
https://utchihamkt.mysellix.io/
Join our server for more products :
https://discord.gg/hood-services
https://campsite.bio/utchihaamkt
Question
AlexHack
### Eclipse Workspace Patch 1.0#P elfobitchIndex:
/gameserver/model/L2Attackable.java
===================================================================---
/gameserver/model/L2Attackable.java (revision 903)
+++ /gameserver/model/L2Attackable.java (working copy)
@@ -244,12 +244,22 @@
protected int _itemId; protected int _count;
+ private int _enchant = -1;
+ private int _chance = 0;
+ public RewardItem(int itemId, int count)
{
_itemId = itemId;
_count = count; }
+ public RewardItem(int itemId, int count, int enchant, int chance)
+ {
+ this(itemId, count);
+ _enchant = enchant;
+ _chance = chance;
+ }
+ public int getItemId()
{
return _itemId;
@@ -259,6 +269,9 @@
{
return _count;
}
+
+ public int getEnchant()
{ return _enchant; }
+ public int getEnchantChance()
{ return _chance;
}
}
/**@@ -1560,7 +1573,7 @@
}
if(itemCount > 0)
- return new RewardItem(drop.getItemId(), itemCount);
+ return new RewardItem(drop.getItemId(), itemCount, drop.getEnchant(), drop.getEnchantChance());
else if(itemCount == 0 && Config.DEBUG)
{
_log.fine("Roll produced 0 items to drop...");
@@ -1845,7 +1858,7 @@
}
if(itemCount > 0)
-
return new RewardItem(drop.getItemId(), itemCount);
+ return new RewardItem(drop.getItemId(), itemCount, drop.getEnchant(), drop.getEnchantChance());
else if(itemCount == 0 && Config.DEBUG)
{
_log.fine("Roll produced 0 items to drop...");
@@ -2503,6 +2516,16 @@
// Init the dropped L2ItemInstance and add it in the world as a visible object at the position where mob was last
*
*/
ditem = ItemTable.getInstance().createItem("Loot", item.getItemId(), item.getCount(), mainDamageDealer, this); ditem.getDropProtection().protect(mainDamageDealer);
+ if(item.getEnchant() > 0)
+ {
+ if(ditem.getItem().getType1() == L2Item.TYPE1_WEAPON_RING_EARRING_NECKLACE+ || ditem.getItem().getType1() == L2Item.TYPE1_SHIELD_ARMOR)
+ {
+ double chance = Rnd.get(1, 100);
+ if(chance <= item.getEnchantChance())
+ ditem.setEnchantLevel(item.getEnchant());
+ }
+ }
ditem.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item taskIndex:
/gameserver/datatables/sql/NpcTable.java
===================================================================
--- gameserver/head-src/com/l2jfrozen/gameserver/datatables/sql/NpcTable.java
(revision 903)
+++ gameserver/head-src/com/l2jfrozen/gameserver/datatables/sql/NpcTable.java
(working copy)
@@ -247,7 +247,7
@@ {
statement = con.prepareStatement("SELECT " + L2DatabaseFactory.getInstance().safetyString(new String[]
{
- "mobId", "itemId", "min", "max", "category", "chance"
+ "mobId", "itemId", "min", "max", "category", "chance", "enchant", "enchantChance" })
+ " FROM custom_droplist ORDER BY mobId, chance DESC");
ResultSet dropData = statement.executeQuery();
@@ -270,6 +270,8 @@
dropDat.setMinDrop(dropData.getInt("min"));
dropDat.setMaxDrop(dropData.getInt("max"));
dropDat.setChance(dropData.getInt("chance"));
+ dropDat.setEnchant(dropData.getInt("enchant"));
+ dropDat.setEnchantChance(dropData.getInt("enchantChance"));
int category = dropData.getInt("category");
@@ -295,7 +297,7 @@
{
statement = con.prepareStatement("SELECT " + L2DatabaseFactory.getInstance().safetyString(new String[]
{
- "mobId", "itemId", "min", "max", "category", "chance"
+ "mobId", "itemId", "min", "max", "category", "chance", "enchant", "enchantChance" })
+ " FROM droplist ORDER BY mobId, chance DESC");
ResultSet dropData = statement.executeQuery();
L2DropData dropDat = null;
@@ -319,6 +321,8 @@
dropDat.setMinDrop(dropData.getInt("min"));
dropDat.setMaxDrop(dropData.getInt("max"));
dropDat.setChance(dropData.getInt("chance"));
+ dropDat.setEnchant(dropData.getInt("enchant"));
+ dropDat.setEnchantChance(dropData.getInt("enchantChance"));
int category = dropData.getInt("category");
Index: /gameserver/script/faenor/FaenorInterface.java
===================================================================
---/gameserver/script/faenor/FaenorInterface.java
(revision 903)+++
gameserver/head-src/com/l2jfrozen/gameserver/script/faenor/FaenorInterface.java
(working copy)
@@ -82,6 +82,27 @@
addDrop(npc, drop, false);
} + public void addQuestDrop(int npcID, int itemID, int min, int max, int chance, String questID, String[] states,
+ int enchant, int enchantChance)
+ {
+ L2NpcTemplate npc = npcTable.getTemplate(npcID);
+ if (npc == null)
+ {
+ _log.info("FeanorInterface: Npc "+npcID+" is null..");
+ return;
+ }
+ L2DropData drop = new L2DropData();
+ drop.setItemId(itemID);
+ drop.setMinDrop(min);
+ drop.setMaxDrop(max);
+ drop.setEnchant(enchant);
+ drop.setEnchantChance(enchantChance);
+ drop.setChance(chance);
+ drop.setQuestID(questID);
+ drop.addStates(states);
+ addDrop(npc, drop, false);
+ }
+ /** * Adds a new Drop to an NPC
*@@ -106,7 +127,31 @@
* addDrop(npc, drop, sweep);
* }
* +
* + public void addDrop(int npcID, int itemID, int min, int max, boolean sweep, int chance,+ int enchant, int enchantChance) throws NullPointerException
* + {
* + L2NpcTemplate npc = npcTable.getTemplate(npcID);
* + if (npc == null)
* + {
* + if (Config.DEBUG)
* + {
* + _log.warning("Npc doesnt Exist");
* + }
* + throw new NullPointerException();
* + }
* + L2DropData drop = new L2DropData();
* + drop.setItemId(itemID);
* + drop.setMinDrop(min);
* + drop.setMaxDrop(max);
* + drop.setChance(chance);
* + drop.setEnchant(enchant);
* + drop.setEnchantChance(enchantChance);
* +
* + addDrop(npc, drop, sweep);
* + }
* + /** * Adds a new drop to an NPC. If the drop is sweep, it adds it to the NPC's Sweep category If the drop is non-sweep, * it creates a new category for this drop.
* Index: /gameserver/handler/admincommandhandlers/AdminEditNpc.java
* ===================================================================
* --- /gameserver/handler/admincommandhandlers/AdminEditNpc.java
* (revision 903)+++
* /gameserver/handler/admincommandhandlers/AdminEditNpc.java
* (working copy)
* @@ -407,7 +407,7 @@
* e.printStackTrace();
* }
*
* }
* - else if(st.countTokens() == 6)
* + else if(st.countTokens() == 8)
* {
* try
* {
* @@ -417,8 +417,10 @@
* int min = Integer.parseInt(st.nextToken());
* int max = Integer.parseInt(st.nextToken());
* int chance = Integer.parseInt(st.nextToken());
* + int enchant = Integer.parseInt(st.nextToken());
* + int enchantChance = Integer.parseInt(st.nextToken());
* - updateDropData(activeChar, npcId, itemId, min, max, category, chance);
* + updateDropData(activeChar, npcId, itemId, min, max, category, chance, enchant, enchantChance);
* }
* catch(Exception e)
* {@@ -430,7 +432,7 @@
}
else
* {
* - activeChar.sendMessage("Usage: //edit_drop <npc_id> <item_id> <category> [<min> <max> <chance>]");
* + activeChar.sendMessage("Usage: //edit_drop <npc_id> <item_id> <category> [<min> <max> <chance> <enchant> <enchantChance>]");
* } st = null;
* @@ -440,7 +442,7 @@
* if(Config.ENABLE_ALL_EXCEPTIONS)
* e.printStackTrace();
* - activeChar.sendMessage("Usage: //edit_drop <npc_id> <item_id> <category> [<min> <max> <chance>]");
* + activeChar.sendMessage("Usage: //edit_drop <npc_id> <item_id> <category> [<min> <max> <chance> <enchant> <enchantChance>]");
* }
* } else if(command.startsWith("admin_add_drop "))
* @@ -474,7 +476,7 @@
* npcData = null;
* }
* }
* - else if(st.countTokens() == 6)
* + else if(st.countTokens() == 8)
* {
* try
* {
* @@ -484,8 +486,10 @@
* int min = Integer.parseInt(st.nextToken());
* int max = Integer.parseInt(st.nextToken());
* int chance = Integer.parseInt(st.nextToken());
* + int enchant = Integer.parseInt(st.nextToken());
* + int enchantChance = Integer.parseInt(st.nextToken());
* - addDropData(activeChar, npcId, itemId, min, max, category, chance);
* + addDropData(activeChar, npcId, itemId, min, max, category, chance, enchant, enchantChance);
* }
* catch(Exception e)
* {
* @@ -497,7 +501,7 @@
* }
* else
* {
* - activeChar.sendMessage("Usage: //add_drop <npc_id> [<item_id> <category> <min> <max> <chance>]");
* + activeChar.sendMessage("Usage: //add_drop <npc_id> [<item_id> <category> <min> <max> <chance> <enchant> <enchantChance>]");
* } st = null;
* @@ -507,7 +511,7 @@
* if(Config.ENABLE_ALL_EXCEPTIONS)
* e.printStackTrace();
* - activeChar.sendMessage("Usage: //add_drop <npc_id> [<item_id> <category> <min> <max> <chance>]");
* + activeChar.sendMessage("Usage: //add_drop <npc_id> [<item_id> <category> <min> <max> <chance> <enchant> <enchantChance>]");
* }
* }
* else if(command.startsWith("admin_del_drop "))
* @@ -1323,7 +1327,7 @@
* {
* con = L2DatabaseFactory.getInstance().getConnection(false);
* - PreparedStatement statement = con.prepareStatement("SELECT mobId, itemId, min, max, category, chance FROM droplist WHERE mobId=" + npcId + " AND itemId=" + itemId + " AND category=" + category);
* + PreparedStatement statement = con.prepareStatement("SELECT mobId, itemId, min, max, category, chance, enchant, enchantChance FROM droplist WHERE mobId=" + npcId + " AND itemId=" + itemId + " AND category=" + category);
* ResultSet dropData = statement.executeQuery();
*
* NpcHtmlMessage adminReply = new NpcHtmlMessage(5);
* @@ -1340,9 +1344,11 @@
* replyMSG.append("<tr><td>MIN(" + dropData.getInt("min") + ")</td><td><edit var=\"min\" width=80></td></tr>");
* replyMSG.append("<tr><td>MAX(" + dropData.getInt("max") + ")</td><td><edit var=\"max\" width=80></td></tr>");
* replyMSG.append("<tr><td>CHANCE(" + dropData.getInt("chance") + ")</td><td><edit var=\"chance\" width=80></td></tr>");
* + replyMSG.append("<tr><td>ENC-VALUE(" + dropData.getInt("enchant") + ")</td><td><edit var=\"enchant\" width=80></td></tr>");
* + replyMSG.append("<tr><td>ENC-CHANCE(" + dropData.getInt("enchantChance") + ")</td><td><edit var=\"enchantChance\" width=80></td></tr>");
* replyMSG.append("</table>");
* replyMSG.append("<center>");
* - replyMSG.append("<button value=\"Save Modify\" action=\"bypass -h admin_edit_drop " + npcId + " " + itemId + " " + category + " $min $max $chance\" width=100 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">");
* + replyMSG.append("<button value=\"Save Modify\" action=\"bypass -h admin_edit_drop " + npcId + " " + itemId + " " + category + " $min $max $chance $enchant $enchantChance\" width=100 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">");
* replyMSG.append("<br><button value=\"DropList\" action=\"bypass -h admin_show_droplist " + dropData.getInt("mobId") + "\" width=100 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">");
* replyMSG.append("</center>");
* }
* @@ -1383,9 +1389,11 @@
* replyMSG.append("<tr><td>MAX</td><td><edit var=\"max\" width=80></td></tr>");
* replyMSG.append("<tr><td>CATEGORY(sweep=-1)</td><td><edit var=\"category\" width=80></td></tr>");
* replyMSG.append("<tr><td>CHANCE(0-1000000)</td><td><edit var=\"chance\" width=80></td></tr>");
* + replyMSG.append("<tr><td>ENC-VALUE(0-65535)</td><td><edit var=\"enchant\" width=80></td></tr>");
* + replyMSG.append("<tr><td>ENC-CHANCE(0-100)</td><td><edit var=\"enchantChance\" width=80></td></tr>");
* replyMSG.append("</table>");
* replyMSG.append("<center>");
* - replyMSG.append("<button value=\"SAVE\" action=\"bypass -h admin_add_drop " + npcData.npcId + " $itemId $category $min $max $chance\" width=100 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">");
* + replyMSG.append("<button value=\"SAVE\" action=\"bypass -h admin_add_drop " + npcData.npcId + " $itemId $category $min $max $chance $enchant $enchantChance\" width=100 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">");
* replyMSG.append("<br><button value=\"DropList\" action=\"bypass -h admin_show_droplist " + npcData.npcId + "\" width=100 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">");
* replyMSG.append("</center>"); replyMSG.append("</body></html>");
* @@ -1397,7 +1405,7 @@
* replyMSG = null;
* }
* - private void updateDropData(L2PcInstance activeChar, int npcId, int itemId, int min, int max, int category, int chance)
* + private void updateDropData(L2PcInstance activeChar, int npcId, int itemId, int min, int max, int category, int chance, int enchant, int enchantChance)
* {
* Connection con = null;
* @@ -1405,13 +1413,15 @@
*
}
}
}
}
}
i Delete the Patch cause to do not advertise another work !
Mporei kapoios na voi8isi an exei kapoios to swsto
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.