Атрибут

Мишаня

Бессмертный
Партнер
Emu-Dev
Победитель в номинации 2023
Победитель в номинации 2022
Победитель в номинации 2021
Танкист
Любитель реакций
Неукротимое пламя
Стальной Визионер
Старожил I степени
Преподаватель
Клиент разработчик
Победитель в номинации 2019
Разработчик
За заслуги перед форумом
Сообщения
621
Розыгрыши
1
Решения
2
Репутация
740
Реакции
524
Баллы
1 613
Всем добрый вечер! Ребят шарит кто-нибудь как сделать в сборке атрибут до 12 лвла? После некоторых манипуляций в исходниках мне удалось сделать атрибут до 9 лвла, 12 не получается, потолок вставки 450/180 хотелось бы сделать 600/240 сборка HF first-team
 
его можно так же и на ХФ реализовать, я лет 5-6 назад играл на сервере где было реализовано, кстати сами Jewel и Energy камни в сборке присутствуют
 
Код:
package l2ft.gameserver.network.l2.s2c;

import l2ft.gameserver.model.base.Element;
import l2ft.gameserver.model.items.ItemInstance;
import l2ft.gameserver.utils.ItemFunctions;

public class ExChooseInventoryAttributeItem extends L2GameServerPacket
{
    private int _itemId;
    private boolean _disableFire;
    private boolean _disableWater;
    private boolean _disableEarth;
    private boolean _disableWind;
    private boolean _disableDark;
    private boolean _disableHoly;
    private int _stoneLvl;

    public ExChooseInventoryAttributeItem(ItemInstance item)
    {
        _itemId = item.getItemId();
        _disableFire = ItemFunctions.getEnchantAttributeStoneElement(item.getItemId(), false) == Element.FIRE;
        _disableWater = ItemFunctions.getEnchantAttributeStoneElement(item.getItemId(), false) == Element.WATER;
        _disableWind = ItemFunctions.getEnchantAttributeStoneElement(item.getItemId(), false) == Element.WIND;
        _disableEarth = ItemFunctions.getEnchantAttributeStoneElement(item.getItemId(), false) == Element.EARTH;
        _disableHoly = ItemFunctions.getEnchantAttributeStoneElement(item.getItemId(), false) == Element.HOLY;
        _disableDark = ItemFunctions.getEnchantAttributeStoneElement(item.getItemId(), false) == Element.UNHOLY;
        _stoneLvl = item.getTemplate().isAttributeCrystal() ? 6 : 3;
        _stoneLvl = item.getTemplate().isAttributeJewel() ? 9 : 6;
        _stoneLvl = item.getTemplate().isAttributeEnergy() ? 12 : 9;
    }

    @Override
    protected final void writeImpl()
    {
        writeEx(0x62);
        writeD(_itemId);
        writeD(_disableFire ? 1 : 0);  //fire
        writeD(_disableWater ? 1 : 0); // water
        writeD(_disableWind ? 1 : 0);  //wind
        writeD(_disableEarth ? 1 : 0);  //earth
        writeD(_disableHoly ? 1 : 0); //holy
        writeD(_disableDark ? 1 : 0); //dark
        writeD(_stoneLvl); //max enchant lvl
    }
}

может тут где накосячил???
Код:
    else if(itemToEnchant.isWeapon())
        {
            if(itemToEnchant.getAttributeElement() != Element.NONE && itemToEnchant.getAttributeElement() != element)
            {
                activeChar.sendPacket(SystemMsg.ANOTHER_ELEMENTAL_POWER_HAS_ALREADY_BEEN_ADDED_THIS_ELEMENTAL_POWER_CANNOT_BE_ADDED, ActionFail.STATIC);
                return;
            }
        }
        else
        {
            activeChar.sendPacket(SystemMsg.INAPPROPRIATE_ENCHANT_CONDITIONS, ActionFail.STATIC);
            return;
        }

        if(item.isUnderwear() || item.isCloak() || item.isBracelet() || item.isBelt() || !item.isAttributable())
        {
            activeChar.sendPacket(SystemMsg.INAPPROPRIATE_ENCHANT_CONDITIONS, ActionFail.STATIC);
            return;
        }

        int minValue = 0;
        int maxValue = itemToEnchant.isWeapon() ? 150 : 60;
        int maxValueCrystal = itemToEnchant.isWeapon() ? 300 : 120;
        int maxValueJewel = itemToEnchant.isWeapon() ? 450 : 180;
        int maxValueEnergy = itemToEnchant.isWeapon() ? 600 : 240;

        if(!stone.getTemplate().isAttributeCrystal() && itemToEnchant.getAttributeElementValue(element, false) >= maxValue
            || stone.getTemplate().isAttributeCrystal() && (itemToEnchant.getAttributeElementValue(element, false) < maxValue
            || itemToEnchant.getAttributeElementValue(element, false) >= maxValueCrystal))
          
        if(!stone.getTemplate().isAttributeJewel() && itemToEnchant.getAttributeElementValue(element, false) >= maxValueCrystal
            || stone.getTemplate().isAttributeJewel() && (itemToEnchant.getAttributeElementValue(element, false) < maxValueCrystal
            || itemToEnchant.getAttributeElementValue(element, false) >= maxValueJewel))
          
        if(!stone.getTemplate().isAttributeEnergy() && itemToEnchant.getAttributeElementValue(element, false) >= maxValueJewel
            || stone.getTemplate().isAttributeEnergy() && (itemToEnchant.getAttributeElementValue(element, false) < maxValueJewel
            || itemToEnchant.getAttributeElementValue(element, false) >= maxValueEnergy))
        {
            activeChar.sendPacket(SystemMsg.ELEMENTAL_POWER_ENHANCER_USAGE_REQUIREMENT_IS_NOT_SUFFICIENT, ActionFail.STATIC);
            return;
        }
 
Последнее редактирование модератором:
Запрещено публиковать исходный код без BB-кода — CODE.
 
А я ещё раз повторю, максимально 450. Нужно больше тогда только редактировать интерфейс
 
А я ещё раз повторю, максимально 450. Нужно больше тогда только редактировать интерфейс
Может можно хотя бы ограничение 9 уровня атт увеличить до 600/240? потому что через админку я в шмот могу 32к атт поставить, стало быть и ограничение как-то можно расширить
 

Вложения

  • Shot00009.jpg
    Shot00009.jpg
    14,4 КБ · Просмотры: 140
Может можно хотя бы ограничение 9 уровня атт увеличить до 600/240? потому что через админку я в шмот могу 32к атт поставить, стало быть и ограничение как-то можно расширить

Незнаю как у тебя но в моей сборке на оружие ур 13 макс 600
одежка ур 13 макс 240
а так могу помочь в скайп отписывай
 
В интерфейсе на хф есть 600
если ты про Jewel'ы и Energy, то игровыми способами нигде - только продавать в донат-шопах и все такое.
и насколько помню, если к примеру до 450 атт в пушки можно вставить, то до 600 уже проблемно - помнится я пробовал когда-то в хф их вводить, но в самом клиенте есть ограничение - диалог вставки просто отказывается показывать те же пушки с 450 атт и выше.
 
Код:
        if(!stone.getTemplate().isAttributeCrystal() && itemToEnchant.getAttributeElementValue(element, false) >= maxValue
            || stone.getTemplate().isAttributeCrystal() && (itemToEnchant.getAttributeElementValue(element, false) < maxValue
            || itemToEnchant.getAttributeElementValue(element, false) >= maxValueCrystal))
          
        if(!stone.getTemplate().isAttributeJewel() && itemToEnchant.getAttributeElementValue(element, false) >= maxValueCrystal
            || stone.getTemplate().isAttributeJewel() && (itemToEnchant.getAttributeElementValue(element, false) < maxValueCrystal
            || itemToEnchant.getAttributeElementValue(element, false) >= maxValueJewel))
          
        if(!stone.getTemplate().isAttributeEnergy() && itemToEnchant.getAttributeElementValue(element, false) >= maxValueJewel
            || stone.getTemplate().isAttributeEnergy() && (itemToEnchant.getAttributeElementValue(element, false) < maxValueJewel
            || itemToEnchant.getAttributeElementValue(element, false) >= maxValueEnergy))
        {
            activeChar.sendPacket(SystemMsg.ELEMENTAL_POWER_ENHANCER_USAGE_REQUIREMENT_IS_NOT_SUFFICIENT, ActionFail.STATIC);
            return;
        }

Это че за треш из серии копипаст программирования?
 
Код:
        if(!stone.getTemplate().isAttributeCrystal() && itemToEnchant.getAttributeElementValue(element, false) >= maxValue
            || stone.getTemplate().isAttributeCrystal() && (itemToEnchant.getAttributeElementValue(element, false) < maxValue
            || itemToEnchant.getAttributeElementValue(element, false) >= maxValueCrystal))
         
        if(!stone.getTemplate().isAttributeJewel() && itemToEnchant.getAttributeElementValue(element, false) >= maxValueCrystal
            || stone.getTemplate().isAttributeJewel() && (itemToEnchant.getAttributeElementValue(element, false) < maxValueCrystal
            || itemToEnchant.getAttributeElementValue(element, false) >= maxValueJewel))
         
        if(!stone.getTemplate().isAttributeEnergy() && itemToEnchant.getAttributeElementValue(element, false) >= maxValueJewel
            || stone.getTemplate().isAttributeEnergy() && (itemToEnchant.getAttributeElementValue(element, false) < maxValueJewel
            || itemToEnchant.getAttributeElementValue(element, false) >= maxValueEnergy))
        {
            activeChar.sendPacket(SystemMsg.ELEMENTAL_POWER_ENHANCER_USAGE_REQUIREMENT_IS_NOT_SUFFICIENT, ActionFail.STATIC);
            return;
        }

Это че за треш из серии копипаст программирования?
слушай, я новичок в этом деле, если тебе нечем помочь - зачем пишешь? можно каждого тролить, смысл тогда вообще писать сюда?
 
Без правок в клиенте ни как.
так, уже ближе, подскажите что именно и в каком файле нужно поправить? я ж не шарю в этом :) оу и да, какую софтинку порекомендуете для этого?
 
так, уже ближе, подскажите что именно и в каком файле нужно поправить? я ж не шарю в этом :) оу и да, какую софтинку порекомендуете для этого?
в общем ни как, вставить пару картинок не получится, нужно редактировать дллки, ну или можешь потратить на изучение всего этого пол года-2года и потом всё получится.
 
слушай, я новичок в этом деле, если тебе нечем помочь - зачем пишешь? можно каждого тролить, смысл тогда вообще писать сюда?
Потому что я вижу код который написан через жопу. У тебя 3 подряд IF которые НИКОГДА не выполнятся. На лицо тупейший баг.
 
Потому что я вижу код который написан через жопу. У тебя 3 подряд IF которые НИКОГДА не выполнятся. На лицо тупейший баг.
молодец, мы все поняли что ты в этом мастер, спасибо что показал ошибку, быть может ты что-нибудь по поводу вопроса напишешь? P.S. эти 3 подряд if на данный момент совершенно не влияют на работу сервера
 
молодец, мы все поняли что ты в этом мастер, спасибо что показал ошибку, быть может ты что-нибудь по поводу вопроса напишешь? P.S. эти 3 подряд if на данный момент совершенно не влияют на работу сервера
Они влияют на бесконечную вставку атрибута, если что.
 
Назад
Сверху Снизу