diff --git a/trunk/dist/game/data/stats/skills/17900-17999.xml b/trunk/dist/game/data/stats/skills/17900-17999.xml index a56cd0c036..cce716256e 100644 --- a/trunk/dist/game/data/stats/skills/17900-17999.xml +++ b/trunk/dist/game/data/stats/skills/17900-17999.xml @@ -159,201 +159,499 @@ - + + 1540,2;39461,2 + 39471,2;39461,2 + 39472,2;39461,2 + 39473,2;39461,2 +
+ + 39471,1 + 39472,1 + 39473,1 + 39474,1 +
+ +
- + + 1061,2;39461,1 + 39466,2;39461,1 + 39467,2;39461,1 + 39468,2;39461,1 +
+ + 39466,3 + 39467,2 + 39468,2 + 39469,2 +
+ +
- + + 6035,3;735,2;39461,20 + 39476,2;39461,2 + 32316,2;39461,3 + 39478,2;39461,1 +
+ + 39476,1 + 39477,1 + 39478,1 + 39479,1 +
+ +
- + + 37097,3;37098,2;37099,1 +
+ + 39481,1 +
+ +
- icon.etc_potion_scarlet_i00 icon.etc_potion_gold_i00 icon.love_potion
+ + 39469,2;39592,1 + 39474,2;39592,2 + 37041,3;39479,1;39592,1 +
+ + 39470,50 + 39475,10 + 39480,1 +
+ + -
- icon.giant_scrl_of_ench_am_r icon.giant_scrl_of_ench_wp_r
+ + 17527,2;39461,3 + 17526,2;39461,3 +
+ + 36389,1 + 36386,1 +
+ +
- icon.giant_ench_armor_stone_r_i01 icon.giant_ench_wp_stone_r_i01
+ + 36389,2;39461,3 + 36386,2;39461,2 +
+ + 39462,1 + 39463,1 +
+ +
- icon.giant_ench_armor_stone_r_i02 icon.giant_ench_wp_stone_r_i02
+ + 39462,2;39592,2 + 39463,2;39592,2 +
+ + 39464,1 + 39465,1 +
+ + -
icon.lv1_unique_dye_men_luc icon.lv1_unique_dye_con_luc icon.lv1_unique_dye_wit_luc icon.lv1_unique_dye_dex_luc icon.lv1_unique_dye_int_luc icon.lv1_unique_dye_str_luc
- - - 17642,3;39386,2;39461,100 - 17642,3;39386,2;39461,100 - 17642,3;39386,2;39461,100 - 17642,3;39386,2;39461,100 - 17642,3;39386,2;39461,100 - 17642,3;39386,2;39461,100 + 17639,3;39386,2;39461,100 + 17641,3;39386,2;39461,100 + 17638,3;39386,2;39461,100 + 17640,3;39386,2;39461,100 + 17637,3;39386,2;39461,100
39426,1 - 39426,1 - 39426,1 - 39426,1 - 39426,1 - 39426,1 + 39423,1 + 39425,1 + 39422,1 + 39424,1 + 39421,1
+ + +
- icon.lv2_unique_dye_men_luc icon.lv2_unique_dye_con_luc icon.lv2_unique_dye_wit_luc icon.lv2_unique_dye_dex_luc icon.lv2_unique_dye_int_luc icon.lv2_unique_dye_str_luc
+ + 17660,3;39387,2;39461,100 + 17657,3;39387,2;39461,100 + 17659,3;39387,2;39461,100 + 17656,3;39387,2;39461,100 + 17658,3;39387,2;39461,100 + 17655,3;39387,2;39461,100 +
+ + 39432,1 + 39429,1 + 39431,1 + 39428,1 + 39430,1 + 39427,1 +
+ +
- icon.lv3_unique_dye_men_luc icon.lv3_unique_dye_con_luc icon.lv3_unique_dye_wit_luc icon.lv3_unique_dye_dex_luc icon.lv3_unique_dye_int_luc icon.lv3_unique_dye_str_luc
+ + 17678,3;39388,2;39461,100 + 17675,3;39388,2;39461,100 + 17677,3;39388,2;39461,100 + 17674,3;39388,2;39461,100 + 17676,3;39388,2;39461,100 + 17673,3;39388,2;39461,100 +
+ + 39438,1 + 39435,1 + 39437,1 + 39434,1 + 39436,1 + 39433,1 +
+ +
- icon.lv4_unique_dye_men_luc icon.lv4_unique_dye_con_luc icon.lv4_unique_dye_wit_luc icon.lv4_unique_dye_dex_luc icon.lv4_unique_dye_int_luc icon.lv4_unique_dye_str_luc
+ + 17696,3;39389,2;39461,100 + 17693,3;39389,2;39461,100 + 17695,3;39389,2;39461,100 + 17692,3;39389,2;39461,100 + 17694,3;39389,2;39461,100 + 17691,3;39389,2;39461,100 +
+ + 39444,1 + 39441,1 + 39443,1 + 39440,1 + 39442,1 + 39439,1 +
+ +
- icon.lv1_unique_dye_men_cha icon.lv1_unique_dye_con_cha icon.lv1_unique_dye_wit_cha icon.lv1_unique_dye_dex_cha icon.lv1_unique_dye_int_cha icon.lv1_unique_dye_str_cha
+ + 17642,3;39381,2;39461,100 + 17639,3;39381,2;39461,100 + 17641,3;39381,2;39461,100 + 17638,3;39381,2;39461,100 + 17640,3;39381,2;39461,100 + 17637,3;39381,2;39461,100 +
+ + 39396,1 + 39393,1 + 39395,1 + 39392,1 + 39394,1 + 39391,1 +
+ +
- icon.lv2_unique_dye_men_cha icon.lv2_unique_dye_con_cha icon.lv2_unique_dye_wit_cha icon.lv2_unique_dye_dex_cha icon.lv2_unique_dye_int_cha icon.lv2_unique_dye_str_cha
+ + 17660,3;39382,2;39461,100 + 17657,3;39382,2;39461,100 + 17659,3;39382,2;39461,100 + 17656,3;39382,2;39461,100 + 17658,3;39382,2;39461,100 + 17655,3;39382,2;39461,100 +
+ + 39402,1 + 39399,1 + 39401,1 + 39398,1 + 39400,1 + 39397,1 +
+ +
- icon.lv3_unique_dye_men_cha icon.lv3_unique_dye_con_cha icon.lv3_unique_dye_wit_cha icon.lv3_unique_dye_dex_cha icon.lv3_unique_dye_int_cha icon.lv3_unique_dye_str_cha
+ + 17678,3;39383,2;39461,100 + 17675,3;39383,2;39461,100 + 17677,3;39383,2;39461,100 + 17674,3;39383,2;39461,100 + 17676,3;39383,2;39461,100 + 17673,3;39383,2;39461,100 +
+ + 39408,1 + 39405,1 + 39407,1 + 39404,1 + 39406,1 + 39403,1 +
+ +
- icon.lv4_unique_dye_men_cha icon.lv4_unique_dye_con_cha icon.lv4_unique_dye_wit_cha icon.lv4_unique_dye_dex_cha icon.lv4_unique_dye_int_cha icon.lv4_unique_dye_str_cha
+ + 17696,3;39384,2;39461,100 + 17693,3;39384,2;39461,100 + 17695,3;39384,2;39461,100 + 17692,3;39384,2;39461,100 + 17694,3;39384,2;39461,100 + 17691,3;39384,2;39461,100 +
+ + 39414,1 + 39411,1 + 39413,1 + 39410,1 + 39412,1 + 39409,1 +
+ +
- icon.lv5_unique_dye_men_luc icon.lv5_unique_dye_con_luc icon.lv5_unique_dye_wit_luc icon.lv5_unique_dye_dex_luc icon.lv5_unique_dye_int_luc icon.lv5_unique_dye_str_luc icon.lv5_unique_dye_men_cha icon.lv5_unique_dye_con_cha icon.lv5_unique_dye_wit_cha icon.lv5_unique_dye_dex_cha icon.lv5_unique_dye_int_cha icon.lv5_unique_dye_str_cha icon.lv5_unique_dye_cha_luc icon.lv5_unique_dye_luc_cha
+ + 17714,3;39390,2;39592,1 + 17711,3;39390,2;39592,1 + 17713,3;39390,2;39592,1 + 17710,3;39390,2;39592,1 + 17712,3;39390,2;39592,1 + 17709,3;39390,2;39592,1 + 17714,3;39385,2;39592,1 + 17711,3;39385,2;39592,1 + 17713,3;39385,2;39592,1 + 17710,3;39385,2;39592,1 + 17712,3;39385,2;39592,1 + 17709,3;39385,2;39592,1 + 39385,3;39390,2;39592,1 + 39390,3;39385,2;39592,1 +
+ + 39450,1 + 39447,1 + 39449,1 + 39446,1 + 39448,1 + 39445,1 + 39420,1 + 39417,1 + 39419,1 + 39416,1 + 39418,1 + 39415,1 + 39455,1 + 39460,1 +
+ + -
- icon.r_mineral_special_i00 icon.r_mineral_rare_i00 icon.r_mineral_unique_i00
+ + 18563,2;39461,3 + 18564,2;39461,2 + 18565,2;39461,3 +
+ + 18564,2 + 18565,1 + 18566,1 +
+ +
- icon.r95_mineral_special_i00 icon.r95_mineral_rare_i00 icon.r95_mineral_unique_i00
+ + 18568,2;39461,2 + 18569,2;39461,2 + 18570,2;39461,3 +
+ + 18569,1 + 18570,1 + 18571,1 +
+ +
- icon.r99_mineral_special_i00 icon.r99_mineral_rare_i00 icon.r99_mineral_unique_i00
+ + 18573,2;39461,2 + 18574,2;39461,2 + 18575,2;39461,3 +
+ + 18574,1 + 18575,1 + 18576,1 +
+ +
- + + 18576,3;36515,10;39592,50 +
+ + 36731,1 +
+ + -
- icon.lv1_unique_dye_cha_luc icon.lv2_unique_dye_cha_luc icon.lv3_unique_dye_cha_luc icon.lv4_unique_dye_cha_luc
+ + 39381,3;39386,2;39461,100 + 39382,3;39387,2;39461,100 + 39383,3;39388,2;39461,100 + 39384,3;39389,2;39461,100 +
+ + 39451,1 + 39452,1 + 39453,1 + 39454,1 +
+ +
- icon.lv1_unique_dye_luc_cha icon.lv2_unique_dye_luc_cha icon.lv3_unique_dye_luc_cha icon.lv4_unique_dye_luc_cha
+ + 39386,3;39381,2;39461,100 + 39387,3;39382,2;39461,100 + 39388,3;39383,2;39461,100 + 39389,3;39384,2;39461,100 +
+ + 39456,1 + 39457,1 + 39458,1 + 39459,1 +
+ + diff --git a/trunk/dist/game/data/stats/skills/26900-26999.xml b/trunk/dist/game/data/stats/skills/26900-26999.xml index e0a345ba9d..2e56bc2bb2 100644 --- a/trunk/dist/game/data/stats/skills/26900-26999.xml +++ b/trunk/dist/game/data/stats/skills/26900-26999.xml @@ -37,36 +37,84 @@
- + + 17371,2;39461,20 + 24368,2;39461,1 + 24369,2;39461,1 + 24370,2;39461,1 +
+ + 24368,1 + 24369,1 + 24370,1 + 24371,1 +
+ + -
- + + 17371,2;39461,20 + 24372,2;39461,1 + 24373,2;39461,1 + 24374,2;39461,1 +
+ + 24372,1 + 24373,1 + 24374,1 + 24375,1 +
+ + -
- + + 17371,2;39461,20 + 24376,2;39461,1 + 24377,2;39461,1 + 24378,2;39461,1 +
+ + 24376,1 + 24377,1 + 24378,1 + 24379,1 +
+ + -
- + + 24368,3;24372,1;24376,1 + 24369,3;24373,1;24377,1 + 24370,3;24374,1;24378,1 + 24371,3;24375,1;24379,1 +
+ + 24380,1 + 24381,1 + 24382,1 + 24383,1 +
+ + -
diff --git a/trunk/java/com/l2jserver/gameserver/network/clientpackets/RequestAlchemyConversion.java b/trunk/java/com/l2jserver/gameserver/network/clientpackets/RequestAlchemyConversion.java index 440d3b54f1..ee3e11aac6 100644 --- a/trunk/java/com/l2jserver/gameserver/network/clientpackets/RequestAlchemyConversion.java +++ b/trunk/java/com/l2jserver/gameserver/network/clientpackets/RequestAlchemyConversion.java @@ -18,16 +18,14 @@ */ package com.l2jserver.gameserver.network.clientpackets; -import com.l2jserver.Config; import com.l2jserver.gameserver.datatables.SkillData; import com.l2jserver.gameserver.enums.Race; +import com.l2jserver.gameserver.model.L2AlchemySkill; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.holders.ItemHolder; -import com.l2jserver.gameserver.model.items.instance.L2ItemInstance; import com.l2jserver.gameserver.model.skills.Skill; import com.l2jserver.gameserver.network.SystemMessageId; import com.l2jserver.gameserver.network.serverpackets.ExAlchemyConversion; -import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate; import com.l2jserver.gameserver.network.serverpackets.ItemList; import com.l2jserver.util.Rnd; @@ -49,7 +47,7 @@ public class RequestAlchemyConversion extends L2GameClientPacket protected void readImpl() { _skillUseCount = readD(); - _unk = readH(); // Unk = 10; xs is + _unk = readH(); // Unk = 10; _skillId = readD(); _skillLevel = readD(); readB(new byte[28]); @@ -58,19 +56,17 @@ public class RequestAlchemyConversion extends L2GameClientPacket @Override protected void runImpl() { - L2PcInstance activeChar = getClient().getActiveChar(); - Skill skill = SkillData.getInstance().getSkill(_skillId, _skillLevel); - L2ItemInstance invitem = null; + final L2PcInstance activeChar = getClient().getActiveChar(); + final Skill skill = SkillData.getInstance().getSkill(_skillId, _skillLevel); + final L2AlchemySkill alchemySkill = skill.getAlchemySkill(); - if ((activeChar == null) || (activeChar.getRace() != Race.ERTHEIA)) + if ((activeChar == null) || (activeChar.getRace() != Race.ERTHEIA) || (_skillUseCount < 0)) { return; } - double chance = 100; // 100% ? - boolean hasIngidients = true; - for (ItemHolder item : skill.getAlchemySkill().getIngridientItems()) + for (ItemHolder item : alchemySkill.getIngridientItems()) { if ((activeChar.getInventory().getInventoryItemCount(item.getId(), -1) * _skillUseCount) < (item.getCount() * _skillUseCount)) { @@ -84,43 +80,39 @@ public class RequestAlchemyConversion extends L2GameClientPacket return; } + final double chance = 80; // 80% ? for (int i = 0; i < _skillUseCount; i++) { boolean ok = Rnd.get(1, 100) < chance; - skill.getAlchemySkill().getIngridientItems().forEach(holder -> activeChar.getInventory().destroyItemByItemId("Alchemy", holder.getId(), holder.getCount(), activeChar, null)); if (ok) { - _resultItemCount = skill.getAlchemySkill().getTransmutedItem().getCount() * _skillUseCount; + _resultItemCount += alchemySkill.getTransmutedItem().getCount(); } else { - _resultFailCount++; // ? + _resultFailCount++; } - } - if (_resultItemCount > 0) - { - invitem = activeChar.getInventory().addItem("Alchemy", skill.getAlchemySkill().getTransmutedItem().getId(), _resultItemCount, activeChar, null); + + alchemySkill.getIngridientItems().forEach(holder -> activeChar.getInventory().destroyItemByItemId("Alchemy", holder.getId(), holder.getCount(), activeChar, null)); } - if (_resultFailCount > 0) // ? + if (_resultItemCount > 0) { - invitem = activeChar.getInventory().destroyItemByItemId("Alchemy", skill.getAlchemySkill().getTransmutedItem().getId(), _resultFailCount, activeChar, null); + activeChar.addItem("Alchemy", alchemySkill.getTransmutedItem(), activeChar, true); + } + if (_resultFailCount > 0) + { + for (ItemHolder item : alchemySkill.getIngridientItems()) + { + activeChar.getInventory().destroyItemByItemId("Alchemy", item.getId(), _resultFailCount, activeChar, null); + break; // FIXME: Take only 1st ingridient. + } activeChar.sendPacket(SystemMessageId.FAILURE_TO_TRANSMUTE_WILL_DESTROY_SOME_INGREDIENTS); } activeChar.sendPacket(new ExAlchemyConversion((int) _resultItemCount, (int) _resultFailCount)); - - if (Config.FORCE_INVENTORY_UPDATE) - { - activeChar.sendPacket(new ItemList(activeChar, false)); - } - else - { - InventoryUpdate playerIU = new InventoryUpdate(); - playerIU.addItem(invitem); - sendPacket(playerIU); - } + activeChar.sendPacket(new ItemList(activeChar, false)); } @Override diff --git a/trunk/java/com/l2jserver/gameserver/network/serverpackets/ExAlchemyConversion.java b/trunk/java/com/l2jserver/gameserver/network/serverpackets/ExAlchemyConversion.java index 1588236e10..89dc751b45 100644 --- a/trunk/java/com/l2jserver/gameserver/network/serverpackets/ExAlchemyConversion.java +++ b/trunk/java/com/l2jserver/gameserver/network/serverpackets/ExAlchemyConversion.java @@ -19,16 +19,16 @@ package com.l2jserver.gameserver.network.serverpackets; /** - * @author GenCloud + * @author Mobius */ public class ExAlchemyConversion extends L2GameServerPacket { private final int _itemCount; private final int _failCount; - public ExAlchemyConversion(int _resultItemCount, int failCount) + public ExAlchemyConversion(int itemCount, int failCount) { - _itemCount = _resultItemCount; + _itemCount = itemCount; _failCount = failCount; }