помошь по шансовым ЛС скиллам нужна ))

XaPu3Ma

Знающий
Местный
Сообщения
331
Розыгрыши
0
Решения
2
Репутация
100
Реакции
409
Баллы
433
Хроники
  1. Interlude
Исходники
Отсутствуют
Сборка
lucera 3
Как сделать отображение шансовых скиллов в пассивных
123.png


Подскажите пожалуйста! Где может быть данный текст в клиенте интерлюд, помимо skillname-e.dat (там этого нету)
567676.png


что пробовал менять:

skillgrp - oper_type - 2 (ставил и 1 и 2) не помогло


вот что мне ответил один из админов:

Простое изменение skillgrp не сработает. Я уже ковырялся. Дело в том, что есть разные шансовые. Есть обычные шансовые скиллы, они отображаются в пассивках нормально. А есть шансовые Critical, Magical и Phisical, которые в пассивках не отображаются. Не смотря на то, что в пассивках их нет, они нормально работают, это я проверял тоже.
Но вот с отображением в пассивках с ними есть проблемы. Во-первых они все в настройках самого скилла активные почему-то, и если добавить такой скилл себе руками, он будет в активках. Во-вторых никакие изменения этих скиллов не меняют ситуацию и ничего не дает. Как я не старался, они у меня так и не появились. И я бы не парился, если бы в аукционе пухи с такими ЛС отображались бы нормально. Но они там выглядят как обычные, без ЛСа и скиллы в таких пухах на аукционе не видны.
Я так и не смог это победить. Если будет решение - пишите.

Кстати на PTS все они нормально отображаются в пассивныхю

Уважаемые форумчане, помогите разобраться в данной проблеме, пожалуйста
 
Item List
Java:
            writeShort(temp.getTemplate().getType1());
            writeInt(temp.getObjectId());
            writeInt(temp.getItemId());
            writeInt(temp.getCount());
            writeShort(temp.getTemplate().getType2());
            writeShort(temp.getCustomType1());
            writeShort(temp.isEquipped());
            writeInt(temp.getTemplate().getBodyPart());
            writeShort(temp.getEnchantLevel());
            // race tickets
            writeShort(temp.getCustomType2());
            writeInt((temp.isAugmented()) ? temp.getAugmentation().getAugmentationId() : 0);
            writeInt(temp.getMana());
temp.getAugmentation().getAugmentationId() - вот это наш ИД который "эффект прирашения"

В клиенте - скорее всего здесь - optiondata_client-e.dat
 
Item List
Java:
            writeShort(temp.getTemplate().getType1());
            writeInt(temp.getObjectId());
            writeInt(temp.getItemId());
            writeInt(temp.getCount());
            writeShort(temp.getTemplate().getType2());
            writeShort(temp.getCustomType1());
            writeShort(temp.isEquipped());
            writeInt(temp.getTemplate().getBodyPart());
            writeShort(temp.getEnchantLevel());
            // race tickets
            writeShort(temp.getCustomType2());
            writeInt((temp.isAugmented()) ? temp.getAugmentation().getAugmentationId() : 0);
            writeInt(temp.getMana());
temp.getAugmentation().getAugmentationId() - вот это наш ИД который "эффект прирашения"

В клиенте - скорее всего здесь - optiondata_client-e.dat
Приеду посмотрю, обязательно отпишусь
 
Они не отображаются потому что по сути их в списке скиллов у персонажа нет - у персонажа при наличии такой ауги просто регистрируется триггер на определенное действие, например на критическую атаку, и уже сам триггер при срабатывании вызывает нужный скилл.

условно говоря примерно такое вот - пример с овера, но смысл тот же
XML:
<!-- Шанс: Временно уменьшает волю к атаке Вашей цели при критической атаке. -->
    <option id="14571">
        <triggers>
            <trigger id="3109" level="1" type="P_CRIT;M_CRIT" chance="5.0" />    <!-- Предметное Умение: Уменьшение Агрессии / Item Skill: Aggression Down -->
        </triggers>
    </option>
если хочется чтобы были отображаемые пассивки для подобных ауг, то придется добавлять в сервер/клиент отдельные пассивные скиллы, в которые надо будет перенести эти самые триггеры, а в сами ауги уже прописать эти пассивки.
 
В каком-то клиент пакете, 1 строчка дела.
Какой точно, уже не помню
 
Кстати на PTS все они нормально отображаются в пассивныхю
Это сама опция.
Код:
option_begin    [o_s_84_2r_69]    24606    critical_skill={[s_vari_critical_poison10];5.0}    option_end
Это ее скилл.
Код:
skill_begin    skill_name = [s_vari_critical_poison10]    /* [아이템 스킬 : 포이즌] */    skill_id = 3119    level = 10    operate_type = A2    magic_level = 75    self_effect = {}    effect = {{t_hp;-63;5;diff}}    end_effect = {}    is_magic = 2    mp_consume2 = 0    cast_range = 40    effective_range = 400    skill_hit_time = 0    skill_cool_time = 0    skill_hit_cancel_time = 0    reuse_delay = 30    activate_rate = 40    lv_bonus_rate = 1    basic_property = con    abnormal_time = 30    abnormal_lv = 8    abnormal_type = poison    abnormal_instant = 0    irreplaceable_buff = 0    buff_protect_level = 0    attribute = {attr_none;0}    trait = {trait_poison}    effect_point = 0    target_type = enemy_only    affect_scope = single    affect_limit = {0;0}    next_action = none    abnormal_visual_effect = {ave_dot_poison}    debuff = 1    ride_state = {@ride_none;@ride_strider;@ride_wyvern;@ride_wolf}    multi_class = 0    olympiad_use = 1    skill_end

Т.е скилл этот, это рабочая часть триггера. Он не добавляется персонажу, а накладывается на таргет с relation enemy_only.
В интерфейсе я тоже не нашел никаких костылей на этот случай. Каких-то дополнительных скиллов, которые бы отображались в клиенте как заглушки, тоже не нашел. ПТС поднять, заглянуть, пока нет возможности.

PS: У меня они тоже не отображаются в пассивках)

1691251903945.png
 
for (L2Skill _skill : _skills) {
writeD(_skill.isPassive() || _skill.isChance() ? 1 : 0);
writeD(_skill.getLevel());
writeD(_skill.getDisplayId());
writeC(_skill.isDisabledFor(_player) ? 1 : 0); //c5
}

серверный пакет скиллист

skillsss.jpg
 
for (L2Skill _skill : _skills) {
writeD(_skill.isPassive() || _skill.isChance() ? 1 : 0);
writeD(_skill.getLevel());
writeD(_skill.getDisplayId());
writeC(_skill.isDisabledFor(_player) ? 1 : 0); //c5
}

серверный пакет скиллист
:Coowl::Coowl::Coowl::Coowl:
Тут скорее вопрос "Как вывести умение, если оно приписано в OPTION data к умению от Аугментации и оно тригерное."
У мобиуса в таком случае есть скилл - у него прописывается "effect="TriggerSkillByAttack"".
У оверов как Гайкотсу выше показывал - в OptionData указывается какой тип триггера используется для вызова умения.
Вопрос в том - как вывести в древо навыков именно умение, которое прописано в эффекте "Trigger", то-есть его по факту нету в SkillTree самого игрока.
 
:Coowl::Coowl::Coowl::Coowl:
Тут скорее вопрос "Как вывести умение, если оно приписано в OPTION data к умению от Аугментации и оно тригерное."
У мобиуса в таком случае есть скилл - у него прописывается "effect="TriggerSkillByAttack"".
Вопрос в том - как вывести в древо навыков именно умение, которое прописано в эффекте "Trigger" :)
тогда таблицу создавать придется
и игроку отправлять уже не умения шансовых ЛСов, а тригеры. Самый простой способ, но вопрос для чего
 
for (L2Skill _skill : _skills) {
writeD(_skill.isPassive() || _skill.isChance() ? 1 : 0);
writeD(_skill.getLevel());
writeD(_skill.getDisplayId());
writeC(_skill.isDisabledFor(_player) ? 1 : 0); //c5
}

серверный пакет скиллист

Посмотреть вложение 54417
Судя по скринам ТСа, у него свежий клиент, которому глубоко похер, че ты укажешь в первом d, т.к сортировка идет силами клиента, исходя из информации в dat файлах. Если скилл помечен как активный, то он будет в окне активных - хоть ты тресни.

В лучшем случае, ты его сможешь просто вывести в клиент, но он всегда будет в активных.
1691262121061.png
 
Судя по скринам ТСа, у него свежий клиент, которому глубоко похер, че ты укажешь в первом d, т.к сортировка идет силами клиента, исходя из информации в dat файлах. Если скилл помечен как активный, то он будет в окне активных - хоть ты тресни.
В ИТ сортирует также клиент. Одно отличие пассивка или активка приходит от сервера, а дальше уже клиент начинает распределять.
Там сто процентов также стоит isPassive в пассивки кидает, остальное в активки, добавить условие шансового нужно
ТС придет попробует, но у ТСа отсутствует исход, так что только один вариант.
 
В ИТ сортирует также клиент. Одно отличие пассивка или активка приходит от сервера, а дальше уже клиент начинает распределять.
Там сто процентов также стоит isPassive в пассивки кидает, остальное в активки, добавить условие шансового нужно
ТС придет попробует, но у ТСа отсутствует исход, так что только один вариант.
На ХФ я их даже не использую при отправке. Они просто нужны, для сохранения структуры пакета. Не влияют на отображение в клиенте.
1691262499372.png 1691262541670.png

Вся сортировка происходит исключительно в инте, исходя из внутренней инфы клиента.
1691262643150.png
Скорее всего новый клиент так же уже не использует серверную инфу для сортировки.

С помощью интерфейса это можно сделать сравнительно не трудно. Можно передавать тот же параметр lock и в инте его парсить для итем-скиллов.
1691264613062.png

1691264636307.png

1691264712660.png
 
Назад
Сверху Снизу