Показать сообщение отдельно
Старый 01.02.2012, 15:02   #3
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

Java Код:
int safeEnchantLevel = itemToEnchant.getItem().getBodyPart() == L2Item.SLOT_FULL_ARMOR ? Config.SAFE_ENCHANT_FULL_BODY : Config.SAFE_ENCHANT_COMMON;         double chance;         if(itemToEnchant.getEnchantLevel() < safeEnchantLevel)             chance = 100;         else if(itemType == L2Item.TYPE2_WEAPON)             chance = removedScroll.isCrystallEnchantScroll() ? Config.ENCHANT_CHANCE_CRYSTAL_WEAPON : Config.ENCHANT_CHANCE_WEAPON;         else if(itemType == L2Item.TYPE2_SHIELD_ARMOR)             chance = removedScroll.isCrystallEnchantScroll() ? Config.ENCHANT_CHANCE_CRYSTAL_ARMOR : Config.ENCHANT_CHANCE_ARMOR;         else if(itemType == L2Item.TYPE2_ACCESSORY)             chance = removedScroll.isCrystallEnchantScroll() ? Config.ENCHANT_CHANCE_CRYSTAL_ACCESSORY : Config.ENCHANT_CHANCE_ACCESSORY;         else         {             System.out.println("WTF? Request to enchant " + itemToEnchant.getItemId());             activeChar.sendPacket(EnchantResult.CANCEL);             activeChar.sendActionFailed();             activeChar.sendPacket(Msg.SYSTEM_ERROR);             inventory.addItem(removedScroll);             return;         }         if(scroll.isDivineEnchantScroll()) // Item Mall divine             chance = 100;         else if(scroll.isItemMallEnchantScroll()) // Item Mall normal/ancient             chance += 10;         if(removedCatalyst != null)             chance += removedCatalyst.getCatalystPower();         if(Rnd.chance(chance))         {             itemToEnchant.setEnchantLevel(itemToEnchant.getEnchantLevel() + 1);             itemToEnchant.updateDatabase();             activeChar.sendPacket(new InventoryUpdate().addModifiedItem(itemToEnchant));             Log.add(activeChar.getName() + "|Successfully enchanted|" + itemToEnchant.getItemId() + "|to+" + itemToEnchant.getEnchantLevel() + "|" + chance, "enchants");             Log.LogItem(activeChar, Log.EnchantItem, itemToEnchant);             activeChar.sendPacket(EnchantResult.SUCESS);             if(itemToEnchant.getEnchantLevel() >= (itemType == L2Item.TYPE2_WEAPON ? 6 : 5))             {                 activeChar.altUseSkill(SkillTable.getInstance().getInfo(21006, 1), activeChar);                 activeChar.broadcastPacket(new SystemMessage(SystemMessage.C1_HAS_SUCCESSFULY_ENCHANTED_A__S2_S3).addName(activeChar).addNumber(itemToEnchant.getEnchantLevel()).addItemName(itemToEnchant.getItemId()));             }         }         else         {             Log.add(activeChar.getName() + "|Failed to enchant|" + itemToEnchant.getItemId() + "|+" + itemToEnchant.getEnchantLevel() + "|" + chance, "enchants");             if(scroll.isBlessedEnchantScroll()) // фейл, но заточка блесед             {                 itemToEnchant.setEnchantLevel(0);                 activeChar.sendPacket(new InventoryUpdate().addModifiedItem(itemToEnchant));                 activeChar.sendPacket(Msg.FAILED_IN_BLESSED_ENCHANT_THE_ENCHANT_VALUE_OF_THE_ITEM_BECAME_0);                 activeChar.sendPacket(EnchantResult.BLESSED_FAILED);             }             else if(scroll.isAncientEnchantScroll()) // фейл, но заточка ancient                 activeChar.sendPacket(EnchantResult.ANCIENT_FAILED);             else             // фейл, разбиваем вещь             {                 if(itemToEnchant.isEquipped())                     inventory.unEquipItemInSlot(itemToEnchant.getEquipSlot());                 L2ItemInstance destroyedItem = inventory.destroyItem(itemToEnchant.getObjectId(), 1, true);                 if(destroyedItem == null)                 {                     _log.warning("failed to destroy " + itemToEnchant.getObjectId() + " after unsuccessful enchant attempt by char " + activeChar.getName());                     activeChar.sendActionFailed();                     return;                 }                 Log.LogItem(activeChar, Log.EnchantItemFail, itemToEnchant);                 if(crystalId > 0)                 {                     L2ItemInstance crystalsToAdd = ItemTable.getInstance().createItem(crystalId);                     int count = (int) (itemToEnchant.getItem().getCrystalCount() * 0.87);                     if(destroyedItem.getEnchantLevel() > 3)                         count += itemToEnchant.getItem().getCrystalCount() * 0.25 * (destroyedItem.getEnchantLevel() - 3);                     if(count < 1)                         count = 1;                     crystalsToAdd.setCount(count);                     inventory.addItem(crystalsToAdd);                     Log.LogItem(activeChar, Log.Sys_GetItem, crystalsToAdd);                     activeChar.sendPacket(new EnchantResult(1, crystalsToAdd.getItemId(), count), SystemMessage.obtainItems(crystalId, count, 0));                 }                 else                     activeChar.sendPacket(EnchantResult.FAILED_NO_CRYSTALS);                 activeChar.refreshExpertisePenalty();             }         }
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
За это сообщение supernewbie нажился спасибкой от: