evillord 14 Опубликовано 2 августа, 2013 Ребят поставил сборку , точу через алт и б бижу на 20 всю но потом бижа не одевается и остается муляж в слоте чор ти что . В ГС пишит такое WARN items.Inventory: Requested invalid body slot: 3, Item: null, ownerId: '268479886' Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
evillord 14 Опубликовано 3 августа, 2013 <armor id="15717" name="Elegia Ring"> <set name="crystal_count" value="523"/> <set name="crystal_type" value="S84"/> <set name="crystallizable" value="true"/> <set name="icon" value="icon.accessary_verpes_ring_i00"/> <set name="price" value="10897000"/> <set name="type" value="NONE"/> <set name="weight" value="150"/> <equip> <slot id="RIGHT_FINGER"/> <slot id="LEFT_FINGER"/> </equip> <for> <add stat="mDef" order="0x10" value="69"/> <add stat="maxMp" order="0x10" value="27"/> <enchant stat="mDef" order="0x0C" value="0"/> </for> </armor> Вот xml ошибку я понимаю но не понимаю как исправить =( Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SkipOver 2 Опубликовано 3 августа, 2013 (изменено) Я думаю что тут <slot id="RIGHT_FINGER"/> <slot id="LEFT_FINGER"/> нужно прописать Ид слота Изменено 3 августа, 2013 пользователем SkipOver Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dislike 302 Опубликовано 3 августа, 2013 Думаю проблема скорее всего в точильщике, возможно не отсылается пакет Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
evillord 14 Опубликовано 3 августа, 2013 можно как то исправить ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dislike 302 Опубликовано 3 августа, 2013 Скинь код точильщика, под спойлер только 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
evillord 14 Опубликовано 3 августа, 2013 (изменено) EnchantCommunity.java package services.community; import l2r.gameserver.Config; import l2r.gameserver.data.htm.HtmCache; import l2r.gameserver.handler.bbs.CommunityBoardManager; import l2r.gameserver.handler.bbs.ICommunityBoardHandler; import l2r.gameserver.model.Player; import l2r.gameserver.model.base.Element; import l2r.gameserver.model.items.ItemInstance; import l2r.gameserver.network.serverpackets.InventoryUpdate; import l2r.gameserver.network.serverpackets.ShowBoard; import l2r.gameserver.network.serverpackets.components.SystemMsg; import l2r.gameserver.scripts.Functions; import l2r.gameserver.scripts.ScriptFile; import l2r.gameserver.templates.item.EtcItemTemplate; import l2r.gameserver.templates.item.ItemTemplate; import l2r.gameserver.data.xml.holder.ItemHolder; import java.util.StringTokenizer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class EnchantCommunity extends Functions implements ScriptFile, ICommunityBoardHandler { private static EnchantCommunity _Instance = null; private static final Logger _log = LoggerFactory.getLogger(EnchantCommunity.class); public static EnchantCommunity getInstance() { if (_Instance == null) _Instance = new EnchantCommunity(); return _Instance; } /** * Имплементированые методы скриптов */ @Override public void onLoad() { if(Config.ENCHANT_ENABLED) { _log.info("CommunityBoard: Enchant Community service loaded."); CommunityBoardManager.getInstance().registerHandler(this); } } @Override public void onReload() { if(Config.ENCHANT_ENABLED) CommunityBoardManager.getInstance().removeHandler(this); } @Override public void onShutdown() {} @Override public String[] getBypassCommands() { return new String[] { "_bbsechant" }; } @Override public void onBypassCommand(Player activeChar, String command) { if (command.equals("_bbsechant")) { String name = "None Name"; name = ItemHolder.getInstance().getTemplate(Config.ENCHANTER_ITEM_ID).getName(); StringBuilder sb = new StringBuilder(); sb.append("<table width=400>"); ItemInstance[] arr = activeChar.getInventory().getItems(); int len = arr.length; for (int i = 0; i < len; i++) { ItemInstance _item = arr; if (_item == null || _item.getTemplate() instanceof EtcItemTemplate || _item.getTemplate().isShield() || _item.getTemplate().isBelt() || _item.getTemplate().isUnderwear() || !_item.isEquipped() || _item.isHeroWeapon() || _item.getTemplate().isBracelet() || _item.getTemplate().isCloak() || _item.getTemplate().getCrystalType() == ItemTemplate.Grade.NONE || _item.getItemId() >= 7816 && _item.getItemId() <= 7831 || _item.isShadowItem() || _item.isCommonItem() || _item.isTemporalItem() || _item.getEnchantLevel() >= (Config.MAX_ENCHANT + 1)) continue; sb.append(new StringBuilder("<tr><td><img src=icon." + _item.getTemplate().getIcon() + " width=32 height=32></td><td>")); sb.append(new StringBuilder("<font color=\"LEVEL\">" + _item.getTemplate().getName() + " " + (_item.getEnchantLevel() <= 0 ? "" : new StringBuilder("</font><br1><font color=3293F3>Заточено на: +" + _item.getEnchantLevel())) + "</font><br1>")); sb.append(new StringBuilder("Заточка за: <font color=\"LEVEL\">" + name + "</font>")); sb.append("<img src=\"l2ui.squaregray\" width=\"170\" height=\"1\">"); sb.append("</td><td>"); sb.append(new StringBuilder("<button value=\"Обычная\" action=\"bypass _bbsechant;enchlistpage;" + _item.getObjectId() + "\" width=75 height=18 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\">")); sb.append("</td><td>"); sb.append(new StringBuilder("<button value=\"Аттрибут\" action=\"bypass _bbsechant;enchlistpageAtrChus;" + _item.getObjectId() + "\" width=75 height=18 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\">")); sb.append("</td></tr>"); } sb.append("</table>"); String content = HtmCache.getInstance().getNotNull(Config.BBS_HOME_DIR + "pages/enchanter/enchanter.htm", activeChar); content = content.replace("%enchanter%", sb.toString()); ShowBoard.separateAndSend(content, activeChar); } if (command.startsWith("_bbsechant;enchlistpage;")) { StringTokenizer st = new StringTokenizer(command, ";"); st.nextToken(); st.nextToken(); int ItemForEchantObjID = Integer.parseInt(st.nextToken()); String name = "None Name"; name = ItemHolder.getInstance().getTemplate(Config.ENCHANTER_ITEM_ID).getName(); ItemInstance EhchantItem = activeChar.getInventory().getItemByObjectId(ItemForEchantObjID); StringBuilder sb = new StringBuilder(); sb.append("Для обычной заточки выбрана вещь:<br1><table width=300>"); sb.append(new StringBuilder("<tr><td width=32><img src=icon." + EhchantItem.getTemplate().getIcon() + " width=32 height=32> <img src=\"l2ui.squaregray\" width=\"32\" height=\"1\"></td><td width=236><center>")); sb.append(new StringBuilder("<font color=\"LEVEL\">" + EhchantItem.getTemplate().getName() + " " + (EhchantItem.getEnchantLevel() <= 0 ? "" : new StringBuilder("</font><br1><font color=3293F3>Заточено на: +" + EhchantItem.getEnchantLevel())) + "</font><br1>")); sb.append(new StringBuilder("Заточка производится за: <font color=\"LEVEL\">" + name + "</font>")); sb.append("<img src=\"l2ui.squaregray\" width=\"236\" height=\"1\"><center></td>"); sb.append(new StringBuilder("<td width=32><img src=icon." + EhchantItem.getTemplate().getIcon() + " width=32 height=32> <img src=\"l2ui.squaregray\" width=\"32\" height=\"1\"></td>")); sb.append("</tr>"); sb.append("</table>"); sb.append("<br1>"); sb.append("<br1>"); sb.append("<table border=0 width=400><tr><td width=200>"); for(int i = 0; i < Config.ENCHANT_LEVELS.length; i++) { sb.append(new StringBuilder("<center><button value=\"На +" + Config.ENCHANT_LEVELS + " (Цена:" + (EhchantItem.getTemplate().isWeapon() != false ? Config.ENCHANT_PRICE_WPN : Config.ENCHANT_PRICE_ARM) + " " + name + ")\" action=\"bypass _bbsechant;enchantgo;" + Config.ENCHANT_LEVELS + ";" + (EhchantItem.getTemplate().isWeapon() != false ? Config.ENCHANT_PRICE_WPN : Config.ENCHANT_PRICE_ARM) + ";" + ItemForEchantObjID + "\" width=200 height=20 back=\"L2UI_CT1.Button_DF\" fore=\"L2UI_CT1.Button_DF\">")); sb.append("<br1>"); } sb.append("</td></tr></table><br1><button value=\"Назад\" action=\"bypass _bbsechant\" width=70 height=18 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\">"); String content = HtmCache.getInstance().getNotNull(Config.BBS_HOME_DIR + "pages/enchanter/enchanter.htm", activeChar); content = content.replace("%enchanter%", sb.toString()); ShowBoard.separateAndSend(content, activeChar); } if (command.startsWith("_bbsechant;enchlistpageAtrChus;")) { StringTokenizer st = new StringTokenizer(command, ";"); st.nextToken(); st.nextToken(); int ItemForEchantObjID = Integer.parseInt(st.nextToken()); String name = "None Name"; name = ItemHolder.getInstance().getTemplate(Config.ENCHANTER_ITEM_ID).getName(); ItemInstance EhchantItem = activeChar.getInventory().getItemByObjectId(ItemForEchantObjID); StringBuilder sb = new StringBuilder(); sb.append("Для заточки на атрибут выбрана вещь:<br1><table width=300>"); sb.append(new StringBuilder("<tr><td width=32><img src=icon." + EhchantItem.getTemplate().getIcon() + " width=32 height=32> <img src=\"l2ui.squaregray\" width=\"32\" height=\"1\"></td><td width=236><center>")); sb.append(new StringBuilder("<font color=\"LEVEL\">" + EhchantItem.getTemplate().getName() + " " + (EhchantItem.getEnchantLevel() <= 0 ? "" : new StringBuilder("</font><br1><font color=3293F3>Заточено на: +" + EhchantItem.getEnchantLevel())) + "</font><br1>")); sb.append(new StringBuilder("Заточка производится за: <font color=\"LEVEL\">" + name + "</font>")); sb.append("<img src=\"l2ui.squaregray\" width=\"236\" height=\"1\"><center></td>"); sb.append(new StringBuilder("<td width=32><img src=icon." + EhchantItem.getTemplate().getIcon() + " width=32 height=32> <img src=\"l2ui.squaregray\" width=\"32\" height=\"1\"></td>")); sb.append("</tr>"); sb.append("</table>"); sb.append("<br1>"); sb.append("<br1>"); sb.append("<table border=0 width=400><tr><td width=200>"); sb.append("<center><img src=icon.etc_wind_stone_i00 width=32 height=32></center><br1>"); sb.append(new StringBuilder("<button value=\"Wind \" action=\"bypass _bbsechant;enchlistpageAtr;2;" + ItemForEchantObjID + "\" width=200 height=20 back=\"L2UI_CT1.Button_DF\" fore=\"L2UI_CT1.Button_DF\">")); sb.append("<br1><center><img src=icon.etc_earth_stone_i00 width=32 height=32></center><br1>"); sb.append(new StringBuilder("<button value=\"Earth \" action=\"bypass _bbsechant;enchlistpageAtr;3;" + ItemForEchantObjID + "\" width=200 height=20 back=\"L2UI_CT1.Button_DF\" fore=\"L2UI_CT1.Button_DF\">")); sb.append("<br1><center><img src=icon.etc_fire_stone_i00 width=32 height=32></center><br1>"); sb.append(new StringBuilder("<button value=\"Fire \" action=\"bypass _bbsechant;enchlistpageAtr;0;" + ItemForEchantObjID + "\" width=200 height=20 back=\"L2UI_CT1.Button_DF\" fore=\"L2UI_CT1.Button_DF\">")); sb.append("</td><td width=200>"); sb.append("<center><img src=icon.etc_water_stone_i00 width=32 height=32></center><br1>"); sb.append(new StringBuilder("<button value=\"Water \" action=\"bypass _bbsechant;enchlistpageAtr;1;" + ItemForEchantObjID + "\" width=200 height=20 back=\"L2UI_CT1.Button_DF\" fore=\"L2UI_CT1.Button_DF\">")); sb.append("<br1><center><img src=icon.etc_holy_stone_i00 width=32 height=32></center><br1>"); sb.append(new StringBuilder("<button value=\"Divine \" action=\"bypass _bbsechant;enchlistpageAtr;4;" + ItemForEchantObjID + "\" width=200 height=20 back=\"L2UI_CT1.Button_DF\" fore=\"L2UI_CT1.Button_DF\">")); sb.append("<br1><center><img src=icon.etc_unholy_stone_i00 width=32 height=32></center><br1>"); sb.append(new StringBuilder("<button value=\"Dark \" action=\"bypass _bbsechant;enchlistpageAtr;5;" + ItemForEchantObjID + "\" width=200 height=20 back=\"L2UI_CT1.Button_DF\" fore=\"L2UI_CT1.Button_DF\">")); sb.append("</td></tr></table><br1><button value=\"Назад\" action=\"bypass _bbsechant\" width=70 height=18 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\">"); String content = HtmCache.getInstance().getNotNull(Config.BBS_HOME_DIR + "pages/enchanter/enchanter.htm", activeChar); content = content.replace("%enchanter%", sb.toString()); ShowBoard.separateAndSend(content, activeChar); } if (command.startsWith("_bbsechant;enchlistpageAtr;")) { StringTokenizer st = new StringTokenizer(command, ";"); st.nextToken(); st.nextToken(); int AtributType = Integer.parseInt(st.nextToken()); int ItemForEchantObjID = Integer.parseInt(st.nextToken()); String ElementName = ""; if (AtributType == 0) ElementName = "Fire"; else if (AtributType == 1) ElementName = "Water"; else if (AtributType == 2) ElementName = "Wind"; else if (AtributType == 3) ElementName = "Earth"; else if (AtributType == 4) ElementName = "Divine"; else if (AtributType == 5) ElementName = "Dark"; String name = "None Name"; name = ItemHolder.getInstance().getTemplate(Config.ENCHANTER_ITEM_ID).getName(); ItemInstance EhchantItem = activeChar.getInventory().getItemByObjectId(ItemForEchantObjID); StringBuilder sb = new StringBuilder(); sb.append(new StringBuilder("Выбран элемент: <font color=\"LEVEL\">" + ElementName + "</font><br1> Для заточки выбрана вещь:<br1><table width=300>")); sb.append(new StringBuilder("<tr><td width=32><img src=icon." + EhchantItem.getTemplate().getIcon() + " width=32 height=32> <img src=\"l2ui.squaregray\" width=\"32\" height=\"1\"></td><td width=236><center>")); sb.append(new StringBuilder("<font color=\"LEVEL\">" + EhchantItem.getTemplate().getName() + " " + (EhchantItem.getEnchantLevel() <= 0 ? "" : new StringBuilder("</font><br1><font color=3293F3>Заточено на: +" + EhchantItem.getEnchantLevel())) + "</font><br1>")); sb.append(new StringBuilder("Заточка производится за: <font color=\"LEVEL\">" + name + "</font>")); sb.append("<img src=\"l2ui.squaregray\" width=\"236\" height=\"1\"><center></td>"); sb.append(new StringBuilder("<td width=32><img src=icon." + EhchantItem.getTemplate().getIcon() + " width=32 height=32> <img src=\"l2ui.squaregray\" width=\"32\" height=\"1\"></td>")); sb.append("</tr>"); sb.append("</table>"); sb.append("<br1>"); sb.append("<br1>"); if (!EhchantItem.getTemplate().getName().contains("PvP") && (EhchantItem.getTemplate().getCrystalType() == ItemTemplate.Grade.S || EhchantItem.getTemplate().getCrystalType() == ItemTemplate.Grade.S80 || EhchantItem.getTemplate().getCrystalType() == ItemTemplate.Grade.S84)) { sb.append("<table border=0 width=400><tr><td width=200>"); for(int i = 0; i < (EhchantItem.getTemplate().isWeapon() != false ? Config.ENCHANT_ATTRIBUTE_LEVELS.length : Config.ENCHANT_ATTRIBUTE_LEVELS_ARM.length); i++) { sb.append(new StringBuilder("<center><button value=\"На +" + (EhchantItem.getTemplate().isWeapon() != false ? Config.ENCHANT_ATTRIBUTE_LEVELS : Config.ENCHANT_ATTRIBUTE_LEVELS_ARM) + " (Цена:" + (EhchantItem.getTemplate().isWeapon() != false ? Config.ATTRIBUTE_PRICE_WPN : Config.ATTRIBUTE_PRICE_ARM) + " " + name + ")\" action=\"bypass _bbsechant;enchantgoAtr;" + (EhchantItem.getTemplate().isWeapon() != false ? Config.ENCHANT_ATTRIBUTE_LEVELS : Config.ENCHANT_ATTRIBUTE_LEVELS_ARM) + ";" + AtributType + ";" + (EhchantItem.getTemplate().isWeapon() != false ? Config.ATTRIBUTE_PRICE_WPN : Config.ATTRIBUTE_PRICE_ARM) + ";" + ItemForEchantObjID + "\" width=200 height=20 back=\"L2UI_CT1.Button_DF\" fore=\"L2UI_CT1.Button_DF\">")); sb.append("<br1>"); } sb.append("</td></tr></table><br1>"); } else if (EhchantItem.getTemplate().getName().contains("PvP") && Config.ENCHANT_ATT_PVP && (EhchantItem.getTemplate().getCrystalType() == ItemTemplate.Grade.S || EhchantItem.getTemplate().getCrystalType() == ItemTemplate.Grade.S80 || EhchantItem.getTemplate().getCrystalType() == ItemTemplate.Grade.S84)) { sb.append("<table border=0 width=400><tr><td width=200>"); for(int i = 0; i < (EhchantItem.getTemplate().isWeapon() != false ? Config.ENCHANT_ATTRIBUTE_LEVELS.length : Config.ENCHANT_ATTRIBUTE_LEVELS_ARM.length); i++) { sb.append(new StringBuilder("<center><button value=\"На +" + (EhchantItem.getTemplate().isWeapon() != false ? Config.ENCHANT_ATTRIBUTE_LEVELS : Config.ENCHANT_ATTRIBUTE_LEVELS_ARM) + " (Цена:" + (EhchantItem.getTemplate().isWeapon() != false ? Config.ATTRIBUTE_PRICE_WPN : Config.ATTRIBUTE_PRICE_ARM) + " " + name + ")\" action=\"bypass _bbsechant;enchantgoAtr;" + (EhchantItem.getTemplate().isWeapon() != false ? Config.ENCHANT_ATTRIBUTE_LEVELS : Config.ENCHANT_ATTRIBUTE_LEVELS_ARM) + ";" + AtributType + ";" + (EhchantItem.getTemplate().isWeapon() != false ? Config.ATTRIBUTE_PRICE_WPN : Config.ATTRIBUTE_PRICE_ARM) + ";" + ItemForEchantObjID + "\" width=200 height=20 back=\"L2UI_CT1.Button_DF\" fore=\"L2UI_CT1.Button_DF\">")); sb.append("<br1>"); } sb.append("</td></tr></table><br1>"); } else { sb.append("<table border=0 width=400><tr><td width=200>"); sb.append("<br1>"); sb.append("<br1>"); sb.append("<br1>"); sb.append("<br1>"); sb.append("<center><font color=\"LEVEL\">Заточка данной вещи не возможна!</font></center>"); sb.append("<br1>"); sb.append("<br1>"); sb.append("<br1>"); sb.append("<br1>"); sb.append("</td></tr></table><br1>"); } sb.append("<button value=\"Назад\" action=\"bypass _bbsechant\" width=70 height=18 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\">"); String content = HtmCache.getInstance().getNotNull(Config.BBS_HOME_DIR + "pages/enchanter/enchanter.htm", activeChar); content = content.replace("%enchanter%", sb.toString()); ShowBoard.separateAndSend(content, activeChar); } if (command.startsWith("_bbsechant;enchantgo;")) { StringTokenizer st = new StringTokenizer(command, ";"); st.nextToken(); st.nextToken(); int EchantVal = Integer.parseInt(st.nextToken()); int EchantPrice = Integer.parseInt(st.nextToken()); int EchantObjID = Integer.parseInt(st.nextToken()); ItemTemplate item = ItemHolder.getInstance().getTemplate(Config.ENCHANTER_ITEM_ID); ItemInstance pay = activeChar.getInventory().getItemByItemId(item.getItemId()); ItemInstance EhchantItem = activeChar.getInventory().getItemByObjectId(EchantObjID); if (pay != null && pay.getCount() >= EchantPrice) { activeChar.getInventory().destroyItem(pay, EchantPrice); if(EhchantItem.isEquipped()) activeChar.getInventory().unEquipItemInBodySlot(EhchantItem.getEquipSlot()); EhchantItem.setEnchantLevel(EchantVal); activeChar.getInventory().equipItem(EhchantItem); activeChar.sendPacket(new InventoryUpdate().addModifiedItem(EhchantItem)); activeChar.broadcastUserInfo(true); activeChar.sendMessage(new StringBuilder("" + EhchantItem.getTemplate().getName() + " было заточено до " + EchantVal + ". Спасибо.").toString()); onBypassCommand(activeChar, "_bbsechant"); } else activeChar.sendPacket(SystemMsg.INCORRECT_ITEM_COUNT); } if (command.startsWith("_bbsechant;enchantgoAtr;")) { StringTokenizer st = new StringTokenizer(command, ";"); st.nextToken(); st.nextToken(); int EchantVal = Integer.parseInt(st.nextToken()); int AtrType = Integer.parseInt(st.nextToken()); Element el = Element.getElementById(AtrType); int EchantPrice = Integer.parseInt(st.nextToken()); int EchantObjID = Integer.parseInt(st.nextToken()); ItemTemplate item = ItemHolder.getInstance().getTemplate(Config.ENCHANTER_ITEM_ID); ItemInstance pay = activeChar.getInventory().getItemByItemId(item.getItemId()); ItemInstance EhchantItem = activeChar.getInventory().getItemByObjectId(EchantObjID); if(EhchantItem.isWeapon()) { if (pay != null && pay.getCount() >= EchantPrice) { activeChar.getInventory().destroyItem(pay, EchantPrice); if(EhchantItem.isEquipped()) activeChar.getInventory().unEquipItemInBodySlot(EhchantItem.getEquipSlot()); EhchantItem.setAttributeElement(el, EchantVal); activeChar.getInventory().equipItem(EhchantItem); activeChar.sendPacket(new InventoryUpdate().addModifiedItem(EhchantItem)); activeChar.broadcastUserInfo(true); activeChar.sendMessage(new StringBuilder("" + EhchantItem.getTemplate().getName() + " было заточено до " + EchantVal + ". Спасибо.").toString()); onBypassCommand(activeChar, "_bbsechant"); } else activeChar.sendPacket(SystemMsg.INCORRECT_ITEM_COUNT); } else if(EhchantItem.isArmor()) { if(!canEnchantArmorAttribute(AtrType, EhchantItem)) { activeChar.sendMessage("Невозможно вставить аттрибут в броню, не соблюдены условия"); onBypassCommand(activeChar, "_bbsechant"); return; } if (pay != null && pay.getCount() >= EchantPrice) { activeChar.getInventory().destroyItem(pay, EchantPrice); if(EhchantItem.isEquipped()) activeChar.getInventory().unEquipItemInBodySlot(EhchantItem.getEquipSlot()); EhchantItem.setAttributeElement(el, EchantVal); activeChar.getInventory().equipItem(EhchantItem); activeChar.sendPacket(new InventoryUpdate().addModifiedItem(EhchantItem)); activeChar.broadcastUserInfo(true); activeChar.sendMessage(new StringBuilder("" + EhchantItem.getTemplate().getName() + " было заточено до " + EchantVal + ". Спасибо.").toString()); onBypassCommand(activeChar, "_bbsechant"); } } } } @Override public void onWriteCommand(Player player, String bypass, String arg1, String arg2, String arg3, String arg4, String arg5) {} @SuppressWarnings("unused") private boolean canEnchantArmorAttribute(int attr, ItemInstance item) { Element elm = Element.getElementById(attr); switch(attr) { case 0: if(item.getDefenceWater() != 0) return false; break; case 1: if(item.getDefenceFire() != 0) return false; break; case 2: if(item.getDefenceEarth() != 0) return false; break; case 3: if(item.getDefenceWind() != 0) return false; break; case 4: if(item.getDefenceUnholy() != 0) return false; break; case 5: if(item.getDefenceHoly() != 0) return false; break; } return true; } } Изменено 3 августа, 2013 пользователем evillord Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dislike 302 Опубликовано 3 августа, 2013 (изменено) if (pay != null && pay.getCount() >= EchantPrice) { activeChar.getInventory().destroyItem(pay, EchantPrice); if(EhchantItem.isEquipped()) activeChar.getInventory().unEquipItemInBodySlot(EhchantItem.getEquipSlot()); EhchantItem.setEnchantLevel(EchantVal); activeChar.getInventory().equipItem(EhchantItem); activeChar.sendPacket(new InventoryUpdate().addModifiedItem(EhchantItem)); activeChar.broadcastUserInfo(true); activeChar.sendMessage(new StringBuilder("" + EhchantItem.getTemplate().getName() + " было заточено до " + EchantVal + ". Спасибо.").toString()); onBypassCommand(activeChar, "_bbsechant"); } на это if (pay != null && pay.getCount() >= EchantPrice) { activeChar.getInventory().destroyItem(pay, EchantPrice); EhchantItem.setEnchantLevel(EchantVal); activeChar.getInventory().equipItem(EhchantItem); activeChar.sendPacket(new InventoryUpdate().addModifiedItem(EhchantItem)); activeChar.broadcastUserInfo(true); activeChar.broadcastCharInfo(); activeChar.sendMessage(new StringBuilder("" + EhchantItem.getTemplate().getName() + " было заточено до " + EchantVal + ".").toString()); onBypassCommand(activeChar, "_bbsechant"); так будет лучше, итем который точиться не будет сниматься, + бродкаст Изменено 3 августа, 2013 пользователем dislike Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
evillord 14 Опубликовано 3 августа, 2013 Поменял но вроде не помогло =( Но за старания + Вот ошибка точнул серьги и кольца с неклей нет проблем .Когда точнул 1 кольцо или серьга остается"муляжом " и 2 нельзя одеть =( [03.08.13 18:24:13:992] WARN items.Inventory: Requested invalid body slot: 5, Item: null, ownerId: '268479886' [03.08.13 18:24:25:613] WARN items.Inventory: Requested invalid body slot: 3, Item: null, ownerId: '268479886' Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
820 0 Опубликовано 10 марта, 2016 Помогите пожалуйста! Как убрать заточку атт пояса рубахи и щитов в скрипте?? В яве не силен нужна помощь, за ранее спасибо! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты