памогите плиз срочьна надо
|
steem | Дата: Вторник, 20.07.2010, 12:54 | Сообщение # 1 |
 Нецензурная лексика в сторону администрации.
Группа: Заблокированные
Сообщений: 77
Награды: 0
Репутация: -781
Статус: Offline
| как на l2bese зделать шоб у нпц продаваличя точеные пухи через мультисеилл непашыт как ишо мона очень нада
загрузка наград ...
|
|
| |
|
Овощ | Дата: Вторник, 20.07.2010, 13:52 | Сообщение # 2 |
Группа: Администратор
Сообщений: 2491
Награды: 162
Репутация: 5547
Статус: Offline
| Не нужно повторных тем. Тебе сказали, напишут мануал - выложат.
Вёрстка макетов и создание клан сайтов на uCoz, STRESS - в ICQ Хлеба и зрелищ
загрузка наград ...
|
|
| |
|
steem | Дата: Вторник, 20.07.2010, 13:54 | Сообщение # 3 |
 Нецензурная лексика в сторону администрации.
Группа: Заблокированные
Сообщений: 77
Награды: 0
Репутация: -781
Статус: Offline
| нема мануала жду уже день
загрузка наград ...
|
|
| |
|
Овощ | Дата: Вторник, 20.07.2010, 13:58 | Сообщение # 4 |
Группа: Администратор
Сообщений: 2491
Награды: 162
Репутация: 5547
Статус: Offline
| Человек написал же, занят. Будет время напишет. Распинаться спешил фо ю никто не будет. Либо жди, либо не морочь себе голову с заточкой.
Вёрстка макетов и создание клан сайтов на uCoz, STRESS - в ICQ Хлеба и зрелищ
загрузка наград ...
|
|
| |
|
DeMoN | Дата: Вторник, 20.07.2010, 14:52 | Сообщение # 5 |
Группа: Постоянный
Сообщений: 619
Награды: 20
Репутация: 120
Статус: Offline
| Под какую вам сборку надо? Чтобы сделать пример...
загрузка наград ...
|
|
| |
|
Овощ | Дата: Вторник, 20.07.2010, 14:59 | Сообщение # 6 |
Группа: Администратор
Сообщений: 2491
Награды: 162
Репутация: 5547
Статус: Offline
|
Вёрстка макетов и создание клан сайтов на uCoz, STRESS - в ICQ Хлеба и зрелищ
загрузка наград ...
|
|
| |
|
DeMoN | Дата: Вторник, 20.07.2010, 15:34 | Сообщение # 7 |
Группа: Постоянный
Сообщений: 619
Награды: 20
Репутация: 120
Статус: Offline
| На la2base есть данная функция, в файле enchant. Включаете её, ниже прописываете мультиселлы, в которых точить вещи и на сколько.
загрузка наград ...
|
|
| |
|
steem | Дата: Вторник, 20.07.2010, 17:15 | Сообщение # 8 |
 Нецензурная лексика в сторону администрации.
Группа: Заблокированные
Сообщений: 77
Награды: 0
Репутация: -781
Статус: Offline
| о спс те огромное я видел ета но непонел шо ета шас папробую
загрузка наград ...
|
|
| |
|
timon | Дата: Понедельник, 13.06.2011, 21:10 | Сообщение # 9 |
Группа: Постоянный
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
| Доброе время суток всем! Не стал создавать отдельный топ, что бы не мусорить... Подскажи пожалуйста, как добавить в мультиселл точеную вещь? Сборка L2jx
PS: заранее благодарен
загрузка наград ...
|
|
| |
|
manzharov123 | Дата: Понедельник, 13.06.2011, 21:41 | Сообщение # 10 |
Группа: Постоянный
Сообщений: 142
Награды: 28
Репутация: 15
Статус: Offline
| <item id="тут порядковый номер"> <production id="id предмета" count="сколько их будет при покупке" enchant="на сколько заточен"/> <ingredient id="id предмета" count="сколько надо что бы купить"/> </item> должно работать
Помог поставь +)))
загрузка наград ...
Сообщение отредактировал manzharov123 - Понедельник, 13.06.2011, 21:41 |
|
| |
|
timon | Дата: Понедельник, 13.06.2011, 21:53 | Сообщение # 11 |
Группа: Постоянный
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
| <?xml version='1.0' encoding='utf-8'?> <list> <config showall="true" notax="true" keepenchanted="true" /> <!-- Forgotten Blade Haste --> <item id="1"> <ingredient id="57" count="90000000" /> <production id="6581" count="1" enchant="4"/> </item>
Вот кусок кода...не работает к сожалению...
загрузка наград ...
|
|
| |
|
Овощ | Дата: Понедельник, 13.06.2011, 23:03 | Сообщение # 12 |
Группа: Администратор
Сообщений: 2491
Награды: 162
Репутация: 5547
Статус: Offline
| Обсуждалось. Юзай поиск.
Вёрстка макетов и создание клан сайтов на uCoz, STRESS - в ICQ Хлеба и зрелищ
загрузка наград ...
|
|
| |
|
timon | Дата: Понедельник, 13.06.2011, 23:18 | Сообщение # 13 |
Группа: Постоянный
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
| Пересмотрел все темы с подобными проблемами, не одна не решила проблемы. в файле "enchant.ini" отсутствует функция которая оттвечает за мультиселл.
загрузка наград ...
|
|
| |
|
Avelan | Дата: Вторник, 14.06.2011, 09:51 | Сообщение # 14 |
Группа: Постоянный
Сообщений: 250
Награды: 7
Репутация: 26
Статус: Offline
| ы=))
загрузка наград ...
|
|
| |
|
DeMoN | Дата: Вторник, 14.06.2011, 10:59 | Сообщение # 15 |
Группа: Постоянный
Сообщений: 619
Награды: 20
Репутация: 120
Статус: Offline
| Quote (timon) Пересмотрел все темы с подобными проблемами, не одна не решила проблемы. в файле "enchant.ini" отсутствует функция которая оттвечает за мультиселл.
Тогда берем в руки исходники и реализуем Ну или в крайнем случае декомпилятор.
загрузка наград ...
|
|
| |
|
timon | Дата: Вторник, 14.06.2011, 12:59 | Сообщение # 16 |
Группа: Постоянный
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
| юзал поиск данный мануал не помог здравому смыслу http://l2edit.ru/news/2010-07-06-1608
Декомпелировал исходник RequestEnchantItem.class, подскажите что тут нужно изменить [code]// Decompiled by DJ v3.11.11.95 Copyright 2009 Atanas Neshkov Date: 14.06.2011 11:52:59 // Home Page: http://members.fortunecity.com/neshkov/dj.html http://www.neshkov.com/dj.html - Check often for new version! // Decompiler options: packimports(3) // Source File Name: RequestEnchantItem.java
package net.sf.l2j.gameserver.network.clientpackets;
import java.util.List; import java.util.logging.Logger; import javolution.util.FastMap; import net.sf.l2j.Config; import net.sf.l2j.gameserver.model.L2World; import net.sf.l2j.gameserver.model.actor.instance.L2ItemInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.base.Race; import net.sf.l2j.gameserver.model.item.PcInventory; import net.sf.l2j.gameserver.network.L2GameClient; import net.sf.l2j.gameserver.network.SystemMessageId; import net.sf.l2j.gameserver.network.serverpackets.*; import net.sf.l2j.gameserver.templates.L2Item; import net.sf.l2j.gameserver.templates.L2WeaponType; import net.sf.l2j.gameserver.util.*; import net.sf.l2j.util.Rnd;
// Referenced classes of package net.sf.l2j.gameserver.network.clientpackets: // L2GameClientPacket
public final class RequestEnchantItem extends L2GameClientPacket {
public RequestEnchantItem() { }
protected void readImpl() { _objectId = readD(); }
protected void runImpl() { L2PcInstance activeChar; L2ItemInstance item; boolean blessedScroll; int crystalId; int maxEnchantLevel; label0: { activeChar = ((L2GameClient)getClient()).getActiveChar(); if(activeChar == null || _objectId == 0) return; if(!activeChar.getFloodProtectors().getUseItem().tryPerformAction("enchant")) { activeChar.sendPacket(ActionFailed.STATIC_PACKET); return; } if(activeChar.isProcessingTransaction() || activeChar.isInStoreMode()) { activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION)); activeChar.setActiveEnchantItem(null); return; } if(activeChar.isOnline() == 0) { activeChar.setActiveEnchantItem(null); return; } item = activeChar.getInventory().getItemByObjectId(_objectId); L2ItemInstance scroll = activeChar.getActiveEnchantItem(); if(item == null || scroll == null) { activeChar.setActiveEnchantItem(null); return; } if(activeChar.isMoving()) { activeChar.sendPacket(new EnchantResult(item.getEnchantLevel())); activeChar.setActiveEnchantItem(null); activeChar.sendMessage("\u0412\u044B \u043D\u0435 \u043C\u043E\u0436\u0435\u0442\u0435 \u0442\u043E\u0447\u0438\u0442\u044C \u0432\u043E \u0432\u0440\u0435\u043C\u044F \u0431\u0435\u0433\u0430."); return; } if(item.getItem().getItemType() == L2WeaponType.ROD || !Config.ENCHANT_HERO_WEAPONS && item.getItemId() >= 6611 && item.getItemId() <= 6621 || item.getItemId() >= 7816 && item.getItemId() <= 7831 || item.isShadowItem() || item.isDonatorRented()) { activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION)); activeChar.setActiveEnchantItem(null); return; } if(activeChar.getActiveTradeList() != null) { activeChar.cancelActiveTrade(); activeChar.sendMessage("\u0422\u043E\u0440\u0433\u043E\u0432\u043B\u044F \u0431\u044B\u043B\u0430 \u043E\u0442\u043C\u0435\u043D\u0435\u043D\u0430."); return; } if(item.isWear()) { Util.handleIllegalPlayerAction(activeChar, (new StringBuilder()).append("Player ").append(activeChar.getName()).append(" tried to enchant a weared Item").toString(), Config.DEFAULT_PUNISH); activeChar.closeNetConnection(); return; } /* anonymous class not found */ class _anm1 {}
switch(_cls1..SwitchMap.net.sf.l2j.gameserver.model.actor.instance.L2ItemInstance.ItemLocation[item.getLocation().ordinal()]) { case 1: // '\001' case 2: // '\002' if(item.getOwnerId() != activeChar.getObjectId()) { activeChar.setActiveEnchantItem(null); return; } break;
default: Util.handleIllegalPlayerAction(activeChar, (new StringBuilder()).append("Player ").append(activeChar.getName()).append(" tried to use enchant Exploit!").toString(), Config.DEFAULT_PUNISH); activeChar.closeNetConnection(); return; } int itemType2 = item.getItem().getType2(); boolean enchantItem = false; blessedScroll = false; crystalId = 0; switch(item.getItem().getCrystalType()) { case 4: // '\004' crystalId = 1461; switch(scroll.getItemId()) { case 729: case 731: case 6569: if(itemType2 == 0) enchantItem = true; break;
case 730: case 732: case 6570: if(itemType2 == 1 || itemType2 == 2) enchantItem = true; break; } break;
case 3: // '\003' crystalId = 1460; switch(scroll.getItemId()) { case 947: case 949: case 6571: if(itemType2 == 0) enchantItem = true; break;
case 948: case 950: case 6572: if(itemType2 == 1 || itemType2 == 2) enchantItem = true; break; } break;
case 2: // '\002' crystalId = 1459; switch(scroll.getItemId()) { case 951: case 953: case 6573: if(itemType2 == 0) enchantItem = true; break;
case 952: case 954: case 6574: if(itemType2 == 1 || itemType2 == 2) enchantItem = true; break; } break;
case 1: // '\001' crystalId = 1458; switch(scroll.getItemId()) { case 955: case 957: case 6575: if(itemType2 == 0) enchantItem = true; break;
case 956: case 958: case 6576: if(itemType2 == 1 || itemType2 == 2) enchantItem = true; break; } break;
case 5: // '\005' crystalId = 1462; switch(scroll.getItemId()) { default: break;
case 959: case 961: case 6577: if(itemType2 == 0) enchantItem = true; break;
case 960: case 962: case 6578: if(itemType2 == 1 || itemType2 == 2) enchantItem = true; break; } break; } if(!enchantItem) { activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION)); return; } if(scroll.getItemId() >= 6569 && scroll.getItemId() <= 6578) { blessedScroll = true; } else { int arr$[] = CRYSTAL_SCROLLS; int len$ = arr$.length; int i$ = 0; do { if(i$ >= len$) break; int crystalscroll = arr$[i$]; if(scroll.getItemId() == crystalscroll) { blessedScroll = false; break; } i$++; } while(true); } if(Config.ENCHANT_SCROLL_STACKABLE == 0) scroll = activeChar.getInventory().destroyItem("Enchant", scroll, activeChar, item); else scroll = activeChar.getInventory().destroyItem("Enchant", scroll.getObjectId(), 1, activeChar, item); if(scroll == null) { activeChar.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_ITEMS)); Util.handleIllegalPlayerAction(activeChar, (new StringBuilder()).append("Player ").append(activeChar.getName()).append(" tried to enchant with a scroll he doesnt have").toString(), Config.DEFAULT_PUNISH); activeChar.closeNetConnection(); return; } int chance = 0; maxEnchantLevel = 0; if(item.getItem().getType2() == 0) { int arr$[] = ENCHANT_SCROLLS; int len$ = arr$.length; for(int i$ = 0; i$ < len$; i$++) { int scrollId = arr$[i$]; if(scroll.getItemId() != scrollId) continue; if(item.getEnchantLevel() + 1 > Config.NORMAL_WEAPON_ENCHANT_LEVEL.size()) { if(activeChar.isDonator()) { if(Config.MAGE_WEAPON_ID_LIST.contains(Integer.valueOf(item.getItemId()))) chance = ((Integer)Config.NORMAL_WEAPON_MAGE_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(Config.NORMAL_WEAPON_MAGE_ENCHANT_LEVEL_DONATE.size()))).intVal ue(); else chance = ((Integer)Config.NORMAL_WEAPON_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(Config.NORMAL_WEAPON_ENCHANT_LEVEL_DONATE.size()))).intValue(); } else if(Config.MAGE_WEAPON_ID_LIST.contains(Integer.valueOf(item.getItemId()))) chance = ((Integer)Config.NORMAL_WEAPON_MAGE_ENCHANT_LEVEL.get(Integer.valueOf(Config.NORMAL_WEAPON_MAGE_ENCHANT_LEVEL.size()))).intValue(); else chance = ((Integer)Config.NORMAL_WEAPON_ENCHANT_LEVEL.get(Integer.valueOf(Config.NORMAL_WEAPON_ENCHANT_LEVEL.size()))).intValue(); } else if(activeChar.isDonator()) { if(Config.MAGE_WEAPON_ID_LIST.contains(Integer.valueOf(item.getItemId()))) chance = ((Integer)Config.NORMAL_WEAPON_MAGE_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); else chance = ((Integer)Config.NORMAL_WEAPON_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); } else if(Config.MAGE_WEAPON_ID_LIST.contains(Integer.valueOf(item.getItemId()))) chance = ((Integer)Config.NORMAL_WEAPON_MAGE_ENCHANT_LEVEL.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); else chance = ((Integer)Config.NORMAL_WEAPON_ENCHANT_LEVEL.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); if(activeChar.isDonator()) maxEnchantLevel = Config.ENCHANT_MAX_WEAPON_DONATE; else maxEnchantLevel = Config.ENCHANT_MAX_WEAPON; }
arr$ = CRYSTAL_SCROLLS; len$ = arr$.length; for(int i$ = 0; i$ < len$; i$++) { int scrollId = arr$[i$]; if(scroll.getItemId() != scrollId) continue; if(item.getEnchantLevel() + 1 > Config.CRYSTAL_WEAPON_ENCHANT_LEVEL.size()) { if(activeChar.isDonator()) { if(Config.MAGE_WEAPON_ID_LIST.contains(Integer.valueOf(item.getItemId()))) chance = ((Integer)Config.CRYSTAL_WEAPON_MAGE_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(Config.CRYSTAL_WEAPON_MAGE_ENCHANT_LEVEL_DONATE.size()))).intV alue(); else chance = ((Integer)Config.CRYSTAL_WEAPON_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(Config.CRYSTAL_WEAPON_ENCHANT_LEVEL_DONATE.size()))).intValue(); } else if(Config.MAGE_WEAPON_ID_LIST.contains(Integer.valueOf(item.getItemId()))) chance = ((Integer)Config.CRYSTAL_WEAPON_MAGE_ENCHANT_LEVEL.get(Integer.valueOf(Config.CRYSTAL_WEAPON_MAGE_ENCHANT_LEVEL.size()))).intValue(); else chance = ((Integer)Config.CRYSTAL_WEAPON_ENCHANT_LEVEL.get(Integer.valueOf(Config.CRYSTAL_WEAPON_ENCHANT_LEVEL.size()))).intValue(); } else if(activeChar.isDonator()) { if(Config.MAGE_WEAPON_ID_LIST.contains(Integer.valueOf(item.getItemId()))) chance = ((Integer)Config.CRYSTAL_WEAPON_MAGE_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); else chance = ((Integer)Config.CRYSTAL_WEAPON_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); } else if(Config.MAGE_WEAPON_ID_LIST.contains(Integer.valueOf(item.getItemId()))) chance = ((Integer)Config.CRYSTAL_WEAPON_MAGE_ENCHANT_LEVEL.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); else chance = ((Integer)Config.CRYSTAL_WEAPON_ENCHANT_LEVEL.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); if(activeChar.isDonator()) maxEnchantLevel = Config.ENCHANT_MAX_WEAPON_DONATE; else maxEnchantLevel = Config.ENCHANT_MAX_WEAPON;
загрузка наград ...
|
|
| |
|
timon | Дата: Вторник, 14.06.2011, 12:59 | Сообщение # 17 |
Группа: Постоянный
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
| }
arr$ = BLESSED_SCROLLS; len$ = arr$.length; for(int i$ = 0; i$ < len$; i$++) { int scrollId = arr$[i$]; if(scroll.getItemId() == scrollId) { if(item.getEnchantLevel() + 1 > Config.BLESS_WEAPON_ENCHANT_LEVEL.size()) { if(activeChar.isDonator()) { if(Config.MAGE_WEAPON_ID_LIST.contains(Integer.valueOf(item.getItemId()))) chance = ((Integer)Config.BLESS_WEAPON_MAGE_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(Config.BLESS_WEAPON_MAGE_ENCHANT_LEVEL_DONATE.size()))).intValue (); else chance = ((Integer)Config.BLESS_WEAPON_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(Config.BLESS_WEAPON_ENCHANT_LEVEL_DONATE.size()))).intValue(); } else if(Config.MAGE_WEAPON_ID_LIST.contains(Integer.valueOf(item.getItemId()))) chance = ((Integer)Config.BLESS_WEAPON_MAGE_ENCHANT_LEVEL.get(Integer.valueOf(Config.BLESS_WEAPON_MAGE_ENCHANT_LEVEL.size()))).intValue(); else chance = ((Integer)Config.BLESS_WEAPON_ENCHANT_LEVEL.get(Integer.valueOf(Config.BLESS_WEAPON_ENCHANT_LEVEL.size()))).intValue(); } else if(activeChar.isDonator()) { if(Config.MAGE_WEAPON_ID_LIST.contains(Integer.valueOf(item.getItemId()))) chance = ((Integer)Config.BLESS_WEAPON_MAGE_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); else chance = ((Integer)Config.BLESS_WEAPON_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); } else if(Config.MAGE_WEAPON_ID_LIST.contains(Integer.valueOf(item.getItemId()))) chance = ((Integer)Config.BLESS_WEAPON_MAGE_ENCHANT_LEVEL.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); else chance = ((Integer)Config.BLESS_WEAPON_ENCHANT_LEVEL.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); if(activeChar.isDonator()) maxEnchantLevel = Config.ENCHANT_MAX_WEAPON_DONATE; else maxEnchantLevel = Config.ENCHANT_MAX_WEAPON; } }
} else if(item.getItem().getType2() == 1) { int arr$[] = ENCHANT_SCROLLS; int len$ = arr$.length; for(int i$ = 0; i$ < len$; i$++) { int scrollId = arr$[i$]; if(scroll.getItemId() != scrollId) continue; if(item.getEnchantLevel() + 1 > Config.NORMAL_ARMOR_ENCHANT_LEVEL.size()) { if(activeChar.isDonator()) { if(item.getItem().getBodyPart() == 32768) chance = ((Integer)Config.NORMAL_FULL_ARMOR_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(Config.NORMAL_FULL_ARMOR_ENCHANT_LEVEL_DONATE.size()))).intValue (); else chance = ((Integer)Config.NORMAL_ARMOR_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(Config.NORMAL_ARMOR_ENCHANT_LEVEL_DONATE.size()))).intValue(); } else if(item.getItem().getBodyPart() == 32768) chance = ((Integer)Config.NORMAL_FULL_ARMOR_ENCHANT_LEVEL.get(Integer.valueOf(Config.NORMAL_FULL_ARMOR_ENCHANT_LEVEL.size()))).intValue(); else chance = ((Integer)Config.NORMAL_ARMOR_ENCHANT_LEVEL.get(Integer.valueOf(Config.NORMAL_ARMOR_ENCHANT_LEVEL.size()))).intValue(); } else if(activeChar.isDonator()) { if(item.getItem().getBodyPart() == 32768) chance = ((Integer)Config.NORMAL_FULL_ARMOR_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); else chance = ((Integer)Config.NORMAL_ARMOR_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); } else if(item.getItem().getBodyPart() == 32768) chance = ((Integer)Config.NORMAL_FULL_ARMOR_ENCHANT_LEVEL.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); else chance = ((Integer)Config.NORMAL_ARMOR_ENCHANT_LEVEL.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); if(activeChar.isDonator()) maxEnchantLevel = Config.ENCHANT_MAX_ARMOR_DONATE; else maxEnchantLevel = Config.ENCHANT_MAX_ARMOR; }
arr$ = CRYSTAL_SCROLLS; len$ = arr$.length; for(int i$ = 0; i$ < len$; i$++) { int scrollId = arr$[i$]; if(scroll.getItemId() != scrollId) continue; if(item.getEnchantLevel() + 1 > Config.CRYSTAL_ARMOR_ENCHANT_LEVEL.size()) { if(activeChar.isDonator()) { if(item.getItem().getBodyPart() == 32768) chance = ((Integer)Config.CRYSTAL_FULL_ARMOR_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(Config.CRYSTAL_FULL_ARMOR_ENCHANT_LEVEL_DONATE.size()))).intVal ue(); else chance = ((Integer)Config.CRYSTAL_ARMOR_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(Config.CRYSTAL_ARMOR_ENCHANT_LEVEL_DONATE.size()))).intValue(); } else if(item.getItem().getBodyPart() == 32768) chance = ((Integer)Config.CRYSTAL_FULL_ARMOR_ENCHANT_LEVEL.get(Integer.valueOf(Config.CRYSTAL_FULL_ARMOR_ENCHANT_LEVEL.size()))).intValue(); else chance = ((Integer)Config.CRYSTAL_ARMOR_ENCHANT_LEVEL.get(Integer.valueOf(Config.CRYSTAL_ARMOR_ENCHANT_LEVEL.size()))).intValue(); } else if(activeChar.isDonator()) { if(item.getItem().getBodyPart() == 32768) chance = ((Integer)Config.CRYSTAL_FULL_ARMOR_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); else chance = ((Integer)Config.CRYSTAL_ARMOR_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); } else if(item.getItem().getBodyPart() == 32768) chance = ((Integer)Config.CRYSTAL_FULL_ARMOR_ENCHANT_LEVEL.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); else chance = ((Integer)Config.CRYSTAL_ARMOR_ENCHANT_LEVEL.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); if(activeChar.isDonator()) maxEnchantLevel = Config.ENCHANT_MAX_ARMOR_DONATE; else maxEnchantLevel = Config.ENCHANT_MAX_ARMOR; }
arr$ = BLESSED_SCROLLS; len$ = arr$.length; for(int i$ = 0; i$ < len$; i$++) { int scrollId = arr$[i$]; if(scroll.getItemId() == scrollId) { if(item.getEnchantLevel() + 1 > Config.BLESS_ARMOR_ENCHANT_LEVEL.size()) { if(activeChar.isDonator()) { if(item.getItem().getBodyPart() == 32768) chance = ((Integer)Config.BLESS_FULL_ARMOR_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(Config.BLESS_FULL_ARMOR_ENCHANT_LEVEL_DONATE.size()))).intValue() ; else chance = ((Integer)Config.BLESS_ARMOR_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(Config.BLESS_ARMOR_ENCHANT_LEVEL_DONATE.size()))).intValue(); } else if(item.getItem().getBodyPart() == 32768) chance = ((Integer)Config.BLESS_FULL_ARMOR_ENCHANT_LEVEL.get(Integer.valueOf(Config.BLESS_FULL_ARMOR_ENCHANT_LEVEL.size()))).intValue(); else chance = ((Integer)Config.BLESS_ARMOR_ENCHANT_LEVEL.get(Integer.valueOf(Config.BLESS_ARMOR_ENCHANT_LEVEL.size()))).intValue(); } else if(activeChar.isDonator()) { if(item.getItem().getBodyPart() == 32768) chance = ((Integer)Config.BLESS_FULL_ARMOR_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); else chance = ((Integer)Config.BLESS_ARMOR_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); } else if(item.getItem().getBodyPart() == 32768) chance = ((Integer)Config.BLESS_FULL_ARMOR_ENCHANT_LEVEL.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); else chance = ((Integer)Config.BLESS_ARMOR_ENCHANT_LEVEL.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); if(activeChar.isDonator()) maxEnchantLevel = Config.ENCHANT_MAX_ARMOR_DONATE; else maxEnchantLevel = Config.ENCHANT_MAX_ARMOR; } }
} else if(item.getItem().getType2() == 2) { int arr$[] = ENCHANT_SCROLLS; int len$ = arr$.length; for(int i$ = 0; i$ < len$; i$++) { int scrollId = arr$[i$]; if(scroll.getItemId() != scrollId) continue; if(item.getEnchantLevel() + 1 > Config.NORMAL_JEWELRY_ENCHANT_LEVEL.size()) { if(activeChar.isDonator()) chance = ((Integer)Config.NORMAL_JEWELRY_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(Config.NORMAL_JEWELRY_ENCHANT_LEVEL_DONATE.size()))).intValue(); else chance = ((Integer)Config.NORMAL_JEWELRY_ENCHANT_LEVEL.get(Integer.valueOf(Config.NORMAL_JEWELRY_ENCHANT_LEVEL.size()))).intValue(); } else if(activeChar.isDonator()) chance = ((Integer)Config.NORMAL_JEWELRY_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); else chance = ((Integer)Config.NORMAL_JEWELRY_ENCHANT_LEVEL.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); if(activeChar.isDonator()) maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY_DONATE; else maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY; }
arr$ = CRYSTAL_SCROLLS; len$ = arr$.length; for(int i$ = 0; i$ < len$; i$++) { int scrollId = arr$[i$]; if(scroll.getItemId() != scrollId) continue; if(item.getEnchantLevel() + 1 > Config.CRYSTAL_JEWELRY_ENCHANT_LEVEL.size()) { if(activeChar.isDonator()) chance = ((Integer)Config.CRYSTAL_JEWELRY_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(Config.CRYSTAL_JEWELRY_ENCHANT_LEVEL_DONATE.size()))).intValue(); else chance = ((Integer)Config.CRYSTAL_JEWELRY_ENCHANT_LEVEL.get(Integer.valueOf(Config.CRYSTAL_JEWELRY_ENCHANT_LEVEL.size()))).intValue(); } else if(activeChar.isDonator()) chance = ((Integer)Config.CRYSTAL_JEWELRY_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); else chance = ((Integer)Config.CRYSTAL_JEWELRY_ENCHANT_LEVEL.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); if(activeChar.isDonator()) maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY_DONATE; else maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY; }
arr$ = BLESSED_SCROLLS; len$ = arr$.length; for(int i$ = 0; i$ < len$; i$++) { int scrollId = arr$[i$]; if(scroll.getItemId() != scrollId) continue; if(item.getEnchantLevel() + 1 > Config.BLESS_JEWELRY_ENCHANT_LEVEL.size()) { if(activeChar.isDonator()) chance = ((Integer)Config.BLESS_JEWELRY_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(Config.BLESS_JEWELRY_ENCHANT_LEVEL_DONATE.size()))).intValue(); else chance = ((Integer)Config.BLESS_JEWELRY_ENCHANT_LEVEL.get(Integer.valueOf(Config.BLESS_JEWELRY_ENCHANT_LEVEL.size()))).intValue(); } else if(activeChar.isDonator()) chance = ((Integer)Config.BLESS_JEWELRY_ENCHANT_LEVEL_DONATE.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); else chance = ((Integer)Config.BLESS_JEWELRY_ENCHANT_LEVEL.get(Integer.valueOf(item.getEnchantLevel() + 1))).intValue(); if(activeChar.isDonator()) maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY_DONATE; else maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY; }
} if(item.getEnchantLevel() >= maxEnchantLevel && maxEnchantLevel != 0) { activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION)); return; } int rndValue = Rnd.get(100); if(Config.ENABLE_DWARF_ENCHANT_BONUS && activeChar.getRace() == Race.dwarf && activeChar.getLevel() >= Config.DWARF_ENCHANT_MIN_LEVEL) rndValue -= Config.DWARF_ENCHANT_BONUS; if(rndValue >= chance) break MISSING_BLOCK_LABEL_4196; synchronized(item) { if(item.getOwnerId() == activeChar.getObjectId() && (item.getEnchantLevel() < maxEnchantLevel || maxEnchantLevel == 0)) break label0; activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION)); } return; } if(item.getLocation() == net.sf.l2j.gameserver.model.actor.instance.L2ItemInstance.ItemLocation.INVENTORY || item.getLocation() == net.sf.l2j.gameserver.model.actor.instance.L2ItemInstance.ItemLocation.PAPERDOLL) break MISSING_BLOCK_LABEL_4055; activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION)); l2iteminstance; JVM INSTR monitorexit ; return; if(item.getEnchantLevel() < maxEnchantLevel || maxEnchantLevel == 0) break MISSING_BLOCK_LABEL_4087; activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION)); l2iteminstance; JVM INSTR monitorexit ; return; if(item.getEnchantLevel() == 0) { SystemMessage sm = new SystemMessage(SystemMessageId.S1_SUCCESSFULLY_ENCHANTED); sm.addItemName(item.getItemId()); activeChar.sendPacket(sm); } else { SystemMessage sm = new SystemMessage(SystemMessageId.S1_S2_SUCCESSFULLY_ENCHANTED); sm.addNumber(item.getEnchantLevel()); sm.addItemName(item.getItemId()); activeChar.sendPacket(sm); } item.setEnchantLevel(item.getEnchantLevel() + Config.ALTERNATIVE_ENCHANT_VALUE); item.updateDatabase(); l2iteminstance; JVM INSTR monitorexit ; break MISSING_BLOCK_LABEL_4688; exception; throw exception; if(!blessedScroll) { if(item.getEnchantLevel() > 0) { SystemMessage sm = new SystemMessage(SystemMessageId.ENCHANTMENT_FAILED_S1_S2_EVAPORATED); sm.addNumber(item.getEnchantLevel()); sm.addItemName(item.getItemId()); activeChar.sendPacket(sm); } else { SystemMessage sm = new SystemMessage(SystemMessageId.ENCHANTMENT_FAILED_S1_EVAPORATED); sm.addItemName(item.getItemId()); activeChar.sendPacket(sm); } } else { SystemMessage sm = new SystemMessage(SystemMessageId.BLESSED_ENCHANT_FAILED); activeChar.sendPacket(sm); } if(!blessedScroll) { SystemMessage sm; if(item.getEnchantLevel() > 0) { sm = new SystemMessage(SystemMessageId.EQUIPMENT_S1_S2_REMOVED); sm.addNumber(item.getEnchantLevel()); sm.addItemName(item.getItemId()); activeChar.sendPacket(sm); } else { sm = new SystemMessage(SystemMessageId.S1_DISARMED); sm.addItemName(item.getItemId()); activeChar.sendPacket(sm); } L2ItemInstance unequiped[] = activeChar.getInventory().unEquipItemInSlotAndRecord(item.getEquipSlot()); if(item.isEquipped()) { InventoryUpdate iu = new InventoryUpdate(); L2ItemInstance arr$[] = unequiped; int len$ = arr$.length; for(int i$ = 0; i$ < len$; i$++) { L2ItemInstance element = arr$[i$]; iu.addModifiedItem(element); }
activeChar.sendPacket(iu); activeChar.broadcastUserInfo(); } int count = item.getCrystalCount() - (item.getItem().getCrystalCount() + 1) / 2; if(count < 1) count = 1; L2ItemInstance destroyItem = activeChar.getInventory().destroyItem("Enchant", item, activeChar, null); if(destroyItem == null) return; L2ItemInstance crystals = activeChar.getInventory().addItem("Enchant", crystalId, count, activeChar, destroyItem); sm = new SystemMessage(SystemMessageId.EARNED_S2_S1_S); sm.addItemName(crystals.getItemId()); sm.addNumber(count); activeChar.sendPacket(sm); if(!Config.FORCE_INVENTORY_UPDATE) { InventoryUpdate iu = new InventoryUpdate(); if(destroyItem.getCount() == 0) iu.addRemovedItem(destroyItem); else iu.addModifiedItem(destroyItem); iu.addItem(crystals); activeChar.sendPacket(iu); } else { activeChar.sendPacket(new ItemList(activeChar, true)); } StatusUpdate su = new StatusUpdate(activeChar.getObjectId()); su.addAttribute(14, activeChar.getCurrentLoad()); activeChar.sendPacket(su); activeChar.broadcastUserInfo(); L2World world = L2World.getInstance(); world.removeObject(destroyItem); } else { item.setEnchantLevel(Config.ENCHANT_BREAK); item.updateDatabase(); } SystemMessage sm = null; StatusUpdate su = new StatusUpdate(activeChar.getObjectId()); su.addAttribute(14, activeChar.getCurrentLoad()); activeChar.sendPacket(su); su = null; activeChar.sendPacket(new EnchantResult(item.getEnchantLevel())); activeChar.sendPacket(new ItemList(activeChar, false)); activeChar.broadcastUserInfo(); return; }
public String getType() { return "[C] 58 RequestEnchantItem"; }
protected static final Logger _log = Logger.getLogger(net/sf/l2j/gameserver/network/clientpackets/RequestEnchantItem.getName()); private static final String _C__58_REQUESTENCHANTITEM = "[C] 58 RequestEnchantItem"; private static final int ENCHANT_SCROLLS[] = { 729, 730, 947, 948, 951, 952, 955, 956, 959, 960 }; private static final int CRYSTAL_SCROLLS[] = { 731, 732, 949, 950, 953, 954, 957, 958, 961, 962 }; private static final int BLESSED_SCROLLS[] = { 6569, 6570, 6571, 6572, 6573, 6574, 6575, 6576, 6577, 6578 }; private int _objectId;
} [/code]
загрузка наград ...
|
|
| |
|
timon | Дата: Вторник, 14.06.2011, 13:01 | Сообщение # 18 |
Группа: Постоянный
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
| ЗАрание очень сильно прошу прощения за флуд...не получилось реализовать в виде [code]...
загрузка наград ...
|
|
| |
|
timon | Дата: Вторник, 14.06.2011, 13:35 | Сообщение # 19 |
Группа: Постоянный
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
| 1-ый вопрос: и все? 2ой: И каким образом будет реализоваться функция заточки?
<?xml version='1.0' encoding='utf-8'?> <list> <config showall="true" notax="true" keepenchanted="true" /> <!-- Forgotten Blade Haste --> <item id="1"> <ingredient id="57" count="90000000" /> <production id="6581" count="1" enchant="4"/> </item>
этим методом?
загрузка наград ...
|
|
| |
|
DeMoN | Дата: Вторник, 14.06.2011, 13:46 | Сообщение # 20 |
Группа: Постоянный
Сообщений: 619
Награды: 20
Репутация: 120
Статус: Offline
| Думал об одном, написал о другом. Данный вид заточки тяжелее реализовать. К вечеру напишу мануальчик.
загрузка наград ...
|
|
| |
|
timon | Дата: Вторник, 14.06.2011, 13:49 | Сообщение # 21 |
Группа: Постоянный
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
| Буду весьма благодарен! Спасибо за труд))) Вам бы памятник ))) а лучше Колосс)
загрузка наград ...
|
|
| |
|
Avelan | Дата: Вторник, 14.06.2011, 15:14 | Сообщение # 22 |
Группа: Постоянный
Сообщений: 250
Награды: 7
Репутация: 26
Статус: Offline
| вот система L2jCore хз ли на базе пашет
<item id="23"> <ingredient id="57" count="10000000" enchant="0"/> <production id="6845" count="1" enchant="0"/> </item>
<production id="6845" count="1" enchant="40"/>
и вещь продаетса сразу +40
загрузка наград ...
|
|
| |
|
timon | Дата: Среда, 15.06.2011, 20:18 | Сообщение # 23 |
Группа: Постоянный
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
| жду в надежде мануальчик... )
загрузка наград ...
|
|
| |
|
DeMoN | Дата: Среда, 15.06.2011, 22:59 | Сообщение # 24 |
Группа: Постоянный
Сообщений: 619
Награды: 20
Репутация: 120
Статус: Offline
| К сожалению вчера не нашлось времени, но сейчас в кратце напишу. Декомпилируйте класс L2Multisell, который находится: gameserver.model Там находим функцию MultiSellEntry parseEntry(Node n)
В ней выбираем парсинг для продаж, у меня он выглядит так:
else if ("production".equalsIgnoreCase(n.getNodeName())) { int id = Integer.parseInt(n.getAttributes().getNamedItem("id").getNodeValue()); int count = Integer.parseInt(n.getAttributes().getNamedItem("count").getNodeValue());
MultiSellIngredient e = new MultiSellIngredient(id, count, false, false); entry.addProduct(e); }
Изменяем его вот так:
else if ("production".equalsIgnoreCase(n.getNodeName())) { int id = Integer.parseInt(n.getAttributes().getNamedItem("id").getNodeValue()); int count = Integer.parseInt(n.getAttributes().getNamedItem("count").getNodeValue()); int enchant = 0;
if(n.getAttributes().getNamedItem("enchant") != null) enchant = Integer.parseInt(n.getAttributes().getNamedItem("enchant").getNodeValue());
MultiSellIngredient e = new MultiSellIngredient(id, count, enchant, false, false); entry.addProduct(e); }
загрузка наград ...
|
|
| |