OverWorld/LostWorld

  • Автор темы Автор темы kick
  • Дата начала Дата начала

kick

Предвестник
Administrator
За веру и верность форуму
Отец-основатель
Сообщения
6 970
Розыгрыши
22
Решения
1
Репутация
6 046
Реакции
6 829
Баллы
2 688
Код:
 /**
    * Enchant
    */

    /**
    * При фейле эти свитки не ломают вещь, но сбрасывают заточку
    */
    public static boolean isBlessedEnchantScroll(int itemId)
    {
        switch(itemId)
        {
            case 6575: // Wpn D
            case 6576: // Arm D
            case 6573: // Wpn C
            case 6574: // Arm C
            case 6571: // Wpn B
            case 6572: // Arm B
            case 6569: // Wpn A
            case 6570: // Arm A
            case 6577: // Wpn S
            case 6578: // Arm S
            case 21582: // Blessed Enchant Scroll T'Shirt
                return true;
        }
        return false;
    }

    /**
    * При фейле эти свитки не имеют побочных эффектов
    */
    public static boolean isAncientEnchantScroll(int itemId)
    {
        switch(itemId)
        {
            case 22014: // Wpn B
            case 22016: // Arm B
            case 22015: // Wpn A
            case 22017: // Arm A
            case 20519: // Wpn S
            case 20520: // Arm S
                return true;
        }
        return false;
    }

    /**
    * HF5: При неудачной модификации предмет не исчезает и сохраняет уровень модификации за счет силы Богини Разрушения. Не действует на предметы выше +15.
    */
    public static boolean isDestructionWpnEnchantScroll(int itemId)
    {
        switch(itemId)
        {
            case 22221:
            case 22223:
            case 22225:
            case 22227:
            case 22229:
                return true;
        }
        return false;
    }

    /**
    * HF5: При неудачной модификации предмет не исчезает и сохраняет уровень модификации за счет силы Богини Разрушения. Не действует на предметы выше +6.
    */
    public static boolean isDestructionArmEnchantScroll(int itemId)
    {
        switch(itemId)
        {
            case 22222:
            case 22224:
            case 22226:
            case 22228:
            case 22230:
                return true;
        }
        return false;
    }

    /**
    * Эти свитки имеют 10% бонус шанса заточки
    */
    public static boolean isItemMallEnchantScroll(int itemId)
    {
        switch(itemId)
        {
            case 22006: // Wpn D
            case 22010: // Arm D
            case 22007: // Wpn C
            case 22011: // Arm C
            case 22008: // Wpn B
            case 22012: // Arm B
            case 22009: // Wpn A
            case 22013: // Arm A
            case 20517: // Wpn S
            case 20518: // Arm S
                return true;
            default:
                return isAncientEnchantScroll(itemId);
        }
    }

    /**
    * Эти свитки имеют 100% шанс
    */
    public static boolean isDivineEnchantScroll(int itemId)
    {
        switch(itemId)
        {
            case 22018: // Wpn B
            case 22020: // Arm B
            case 22019: // Wpn A
            case 22021: // Arm A
            case 20521: // Wpn S
            case 20522: // Arm S
                return true;
        }
        return false;
    }

    /**
    * Они не используются официальным серером, но могут быть задействованы альтами
    */
    public static boolean isCrystallEnchantScroll(int itemId)
    {
        switch(itemId)
        {
            case 957: // Wpn D
            case 958: // Arm D
            case 953: // Wpn C
            case 954: // Arm C
            case 949: // Wpn B
            case 950: // Arm B
            case 731: // Wpn A
            case 732: // Arm A
            case 961: // Wpn S
            case 962: // Arm S
                return true;
        }
        return false;
    }
    /**
    * Возвращает список свитков, которые подходят для вещи.
    */
    public static int[] getEnchantScrollId(ItemInstance item)
    {
        if(item.getTemplate().getType2() == ItemTemplate.TYPE2_WEAPON)
        {
            switch(item.getCrystalType().cry)
            {
                case ItemTemplate.CRYSTAL_NONE:
                    return new int[] { 13540 };
                case ItemTemplate.CRYSTAL_D:
                    return new int[] { 955, 6575, 957, 22006, 22229 };
                case ItemTemplate.CRYSTAL_C:
                    return new int[] { 951, 6573, 953, 22007, 22227 };
                case ItemTemplate.CRYSTAL_B:
                    return new int[] { 947, 6571, 949, 22008, 22014, 22018, 22225 };
                case ItemTemplate.CRYSTAL_A:
                    return new int[] { 729, 6569, 731, 22009, 22015, 22019, 22223 };
                case ItemTemplate.CRYSTAL_S:
                    return new int[] { 959, 6577, 961, 20517, 20519, 20521, 22221 };
            }
        }
        else if(item.getTemplate().getType2() == ItemTemplate.TYPE2_SHIELD_ARMOR || item.getTemplate().getType2() == ItemTemplate.TYPE2_ACCESSORY)
        {
            switch(item.getCrystalType().cry)
            {
                case ItemTemplate.CRYSTAL_NONE:
                    return new int[] { 21581, 21582 };
                case ItemTemplate.CRYSTAL_D:
                    return new int[] { 956, 6576, 958, 22010, 22230 };
                case ItemTemplate.CRYSTAL_C:
                    return new int[] { 952, 6574, 954, 22011, 22228 };
                case ItemTemplate.CRYSTAL_B:
                    return new int[] { 948, 6572, 950, 22012, 22016, 22020, 22226 };
                case ItemTemplate.CRYSTAL_A:
                    return new int[] { 730, 6570, 732, 22013, 22017, 22021, 22224 };
                case ItemTemplate.CRYSTAL_S:
                    return new int[] { 960, 6578, 962, 20518, 20520, 20522, 22222 };
            }
        }
        return new int[0];
    }

    public static final int[][] catalyst = {
            // enchant catalyst list
            { 12362, 14078, 14702 }, // 0 - W D
            { 12363, 14079, 14703 }, // 1 - W C
            { 12364, 14080, 14704 }, // 2 - W B
            { 12365, 14081, 14705 }, // 3 - W A
            { 12366, 14082, 14706 }, // 4 - W S
            { 12367, 14083, 14707 }, // 5 - A D
            { 12368, 14084, 14708 }, // 6 - A C
            { 12369, 14085, 14709 }, // 7 - A B
            { 12370, 14086, 14710 }, // 8 - A A
            { 12371, 14087, 14711 }, // 9 - A S
    };

    /**
    * Augmentation
    */
    public static boolean isLifeStone(int itemId)
    {
        return itemId >= 8723 && itemId <= 8762 || itemId >= 9573 && itemId <= 9576 || itemId >= 10483 && itemId <= 10486 ||
              itemId >= 14166 && itemId <= 14169 || itemId >= 16160 && itemId <= 16167;
    }

    public static boolean isAccessoryLifeStone(int itemId)
    {
        return itemId >= 12754 && itemId <= 12763 || itemId >= 12840 && itemId <= 12851 || itemId == 12821 || itemId == 12822 || itemId == 14008 ||
              itemId == 16177 || itemId == 16178;
    }

    public static int getLifeStoneGrade(int itemId)
    {
        switch(itemId)
        {
            case 8723:
            case 8724:
            case 8725:
            case 8726:
            case 8727:
            case 8728:
            case 8729:
            case 8730:
            case 8731:
            case 8732:
            case 9573:
            case 10483:
            case 14166:
            case 16160:
            case 16164:
                return 0;
            case 8733:
            case 8734:
            case 8735:
            case 8736:
            case 8737:
            case 8738:
            case 8739:
            case 8740:
            case 8741:
            case 8742:
            case 9574:
            case 10484:
            case 14167:
            case 16161:
            case 16165:
                return 1;
            case 8743:
            case 8744:
            case 8745:
            case 8746:
            case 8747:
            case 8748:
            case 8749:
            case 8750:
            case 8751:
            case 8752:
            case 9575:
            case 10485:
            case 14168:
            case 16162:
            case 16166:
                return 2;
            case 8753:
            case 8754:
            case 8755:
            case 8756:
            case 8757:
            case 8758:
            case 8759:
            case 8760:
            case 8761:
            case 8762:
            case 9576:
            case 10486:
            case 14169:
            case 16163:
            case 16167:
                return 3;
            default:
                return 0;
        }
    }

    public static int getLifeStoneLevel(int itemId)
    {
        switch(itemId)
        {
            case 8723:
            case 8733:
            case 8743:
            case 8753:
            case 12754:
            case 12840:
                return 1;
            case 8724:
            case 8734:
            case 8744:
            case 8754:
            case 12755:
            case 12841:
                return 2;
            case 8725:
            case 8735:
            case 8745:
            case 8755:
            case 12756:
            case 12842:
                return 3;
            case 8726:
            case 8736:
            case 8746:
            case 8756:
            case 12757:
            case 12843:
                return 4;
            case 8727:
            case 8737:
            case 8747:
            case 8757:
            case 12758:
            case 12844:
                return 5;
            case 8728:
            case 8738:
            case 8748:
            case 8758:
            case 12759:
            case 12845:
                return 6;
            case 8729:
            case 8739:
            case 8749:
            case 8759:
            case 12760:
            case 12846:
                return 7;
            case 8730:
            case 8740:
            case 8750:
            case 8760:
            case 12761:
            case 12847:
                return 8;
            case 8731:
            case 8741:
            case 8751:
            case 8761:
            case 12762:
            case 12848:
                return 9;
            case 8732:
            case 8742:
            case 8752:
            case 8762:
            case 12763:
            case 12849:
                return 10;
            case 9573:
            case 9574:
            case 9575:
            case 9576:
            case 12821:
            case 12850:
                return 11;
            case 10483:
            case 10484:
            case 10485:
            case 10486:
            case 12822:
            case 12851:
                return 12;
            case 14008:
            case 14166:
            case 14167:
            case 14168:
            case 14169:
                return 13;
            case 16160:
            case 16161:
            case 16162:
            case 16163:
            case 16177:
                return 14;
            case 16164:
            case 16165:
            case 16166:
            case 16167:
            case 16178:
                return 15;
            default:
                return 1;
        }
    }

    /**
    * Возвращает тип элемента для камня атрибуции
    *
    * @return значение элемента
    */
    public static Element getEnchantAttributeStoneElement(int itemId, boolean isArmor)
    {
        Element element = Element.NONE;
        switch(itemId)
        {
            case 9546:
            case 9552:
            case 10521:
                element = Element.FIRE;
                break;
            case 9547:
            case 9553:
            case 10522:
                element = Element.WATER;
                break;
            case 9548:
            case 9554:
            case 10523:
                element = Element.EARTH;
                break;
            case 9549:
            case 9555:
            case 10524:
                element = Element.WIND;
                break;
            case 9550:
            case 9556:
            case 10525:
                element = Element.UNHOLY;
                break;
            case 9551:
            case 9557:
            case 10526:
                element = Element.HOLY;
                break;
        }

        if(isArmor)
        {
            return Element.getReverseElement(element);
        }

        return element;
    }
 

0ZsuYWQ.webp
 
Последнее редактирование модератором:
так то эта хрень - наследие еще со времен феникса, по крайней мере большая часть этого.
 
Назад
Сверху Снизу