Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Трабл с сетами
#1
Добавил на сервер свои шмотки сделал из них сеты, однако плащи на них не напяливаются, после кучи разнообразных действий нашел способ, менял ИД скилла сета дино со своим ИД скилла сета и плащ напялялся, есть мысли полагать что существует некий список сетов на которые дозволено надевать плащи, про список получил 2 потверждения с форумов разрабов, однако куда именно копать они таки не сказали, но на 1 жестко так намекнули что ето гдето в ядре.....сам ни черта в яве не понимаю опираюсь только на свои мозги и логику, 5-ый день пытаюсь разобратся в ядре ничего не получается, кто нибудь может подсказать куда копать???
P.S. сборка l2first-team
Ответ
#2
Тебе уже был дан ответ, так и на моём форуме Wink
---
За это отвечает список доступных скилов для еквипа плащей! Подцепи на свою шмотку, скил какого нить верпеса (сета) и очумеешь xD
Ответ
#3
хыхы, не думал что на тя наткнусь)) порблемку ету я решил подменой Ид, но я хочу не подменять а добавить))

хммм, там диапозон скиллов доступных для плаща или список.....
Ответ
#4
Код:
        // Плащи
        if(item.getItem().isCloak())
        {
            // Can be worn by Knights or higher ranks who own castle
            if(item.getName().contains("Knight") && (owner.getPledgeClass() < L2Player.RANK_KNIGHT || owner.getCastle() == null))
            {
                return Msg.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM;
            }
            // Плащи для камаэлей
            if(item.getName().contains("Kamael") && owner.getRace() != Race.kamael)
            {
                return Msg.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM;
            }
            // Плащи можно носить только с S80 или S84 сетом
            boolean cloack_usable = false;
            for(int skill : [B][color=red]L2Skill.SKILLS_S80_AND_S84_SETS[/color][/B])
            {
                if(owner.getSkillLevel(skill) > 0)
                {
                    cloack_usable = true;
                }
            }
            if(!cloack_usable)
            {
                return Msg.THE_CLOAK_CANNOT_BE_EQUIPPED_BECAUSE_A_NECESSARY_ITEM_IS_NOT_EQUIPPED;
            }
        }

Импровизируем, и О ЧУДО!!!
Код:
    public static final int[] [B][color=Red]SKILLS_S80_AND_S84_SETS[/color][/B] = {
        3416,
        8210,
        3354,
        8211,
        3355,
        8212,
        3356,
        8213,
        3357,
        8214,
        3412,
        8202,
        3348,
        8203,
        3349,
        8204,
        3350,
        8205,
        3351,
        8206,
        3413,
        8207,
        3352,
        8208,
        3353,
        8209,
        3414,
        8215,
        3415,
        8216,
        3420,
        8217,
        3420,
        8218,
        3645,
        8229,
        3646,
        8230,
        3647,
        8231,
        3648,
        8232,
        3636,
        8219,
        3637,
        8220,
        3638,
        8221,
        3639,
        8222,
        3640,
        8223,
        3641,
        8224,
        3642,
        8225,
        3643,
        8226,
        3644,
        8227,
        3805,
        8228,
        8283,
        8285,
        8287,
        8284,
        8286,
        8288,
        8301,
        8303,
        8305,
        8302,
        8304,
        8306,
        8397,
        8398,
        8399,
        8400,
        8401,
        8402,
        8403,
        8404,
        8405,
        8406,
        8407,
        8408,
        8409,
        8410,
        8411,
        8412,
        8413,
        8414};
Ответ
#5
ааааааа, ндя одной логики мало для правки ядра.....незнал что в ети пустые скобки вписать чтото можно xD спасибо огромное пошел править....
Ответ
#6
Lich;155118 Написал:ааааааа, ндя одной логики мало для правки ядра.....незнал что в ети пустые скобки вписать чтото можно xD спасибо огромное пошел править....
Спасибки у нас кнопочкой ставятся Wink
Ответ
#7
ужо поставил, есть еще один вопросик

boolean flag = false;
int ai[] = L2Skill.SKILLS_S80_AND_S84_SETS;
int i1 = ai.length;
for(int k1 = 0; k1 < i1; k1++)
{
int l1 = ai[k1];
if(l2player.getSkillLevel(Integer.valueOf(l1)) > 0)
flag = true;
}

if(!flag)
return Msg.THE_CLOAK_CANNOT_BE_EQUIPPED_BECAUSE_A_NECESSARY_ITEM_IS_NOT_EQUIPPED;
}

я тот кусок кода нашел? чтоб не ошибится....
Ответ
#8
печально...
Класс L2Skill, SKILLS_S80_AND_S84_SETS.
Дописываем свой скилл накладываемый на СЕТ!
Ответ
#9
public static final int SKILLS_S80_AND_S84_SETS[] = {
3416, 8210, 3354, 8211, 3355, 8212, 3356, 8213, 3357, 8214,
3412, 8202, 3348, 8203, 3349, 8204, 3350, 8205, 3351, 8206,
3413, 8207, 3352, 8208, 3353, 8209, 3414, 8215, 3415, 8216,
3420, 8217, 3420, 8218, 3645, 8229, 3646, 8230, 3647, 8231,
3648, 8232, 3636, 8219, 3637, 8220, 3638, 8221, 3639, 8222,
3640, 8223, 3641, 8224, 3642, 8225, 3643, 8226, 3644, 8227,
3805, 8228, 8283, 8285, 8287, 8284, 8286, 8288, 8301, 8303,
8305, 8302, 8304, 8306, 8397, 8398, 8399, 8400, 8401, 8402,
8403, 8404, 8405, 8406, 8407, 8408, 8409, 8410, 8411, 8412,
8413, 8414
};

фак, как жестко я лоханулся, тут уже ессть списочек оказывается(((
сори за беспокойство, и спасибо за внимание))
Ответ
#10
гибче надо делать, гибче - зачем пихать жесткие списки разрешенных скиллов сетов, да еще и в ядро? это же каждый раз лезть в ядро если захочется еще добавить сетов с которыми можно носить плащи.

у меня к примеру сделано проще и гибче, если в описании скилла сета задан этот параметр
Код:
<set name="openCloakSlot" val="true" />
то значит с сетом можно будет без проблем одеть плащ.

объяснять как добавить новый параметр для скиллов и где его проверять не буду - это же проще простого.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)