Grade Penalty

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

nesss

Единомышленник
Участник
Сообщения
171
Розыгрыши
0
Решения
3
Репутация
-2
Реакции
15
Баллы
130
Хроники
  1. Interlude
Исходники
Присутствуют
Сборка
Собственная
Всем привет, подскажите пожалуйста, какие характеристики и на сколько уменьшает Grade Penalty в Interlude, в сборках Interlude смотрел, там идет и на оружие и на броню, хотя на оружие в Interlude умения с ID 6209 не существует, есть только 4267, и оно только 1го уровня, я так понимаю там че-то намутили по подобию хроник повыше.
 
Интерлюд
Код:
skill_begin    skill_name = [s_grade_penalty]    /* [그레이드 페널티] */    skill_id = 4267    level = 1    operate_type = P    magic_level = 1    effect = {}    skill_end
Видимо сама реализация не в скиле.
 

Да я уже понял, что они тупо зашили пенальти в сам движок, и по грейду, и по перегрузу, и по штрафу после смерти, я вот думаю насколько это правильно, ну тут банально идет проверка на штраф, в конце добавляется пассивный скилл, который не чего не дает, порылся там, его негде и не вызывают и не проверяют, как заглушка, просто для отображения в списке пассивных умений в UI.
 
Да я уже понял, что они тупо зашили пенальти в сам движок, и по грейду, и по перегрузу, и по штрафу после смерти, я вот думаю насколько это правильно, ну тут банально идет проверка на штраф, в конце добавляется пассивный скилл, который не чего не дает, порылся там, его негде и не вызывают и не проверяют, как заглушка, просто для отображения в списке пассивных умений в UI.
Реализация вроде бы описана в тоталчекере, но это хф.
 

Вложения

  • Screenshot_1.webp
    Screenshot_1.webp
    257,5 КБ · Просмотры: 24
Так ну собрав все в кучу, могу сделать такой вывод. Характеристики 0.22 0.19 0.16 0.13 0.1 практически одинаковые, то есть нет разницы, станет у тебя 22% от твой скорости бега, или 13%, вот к примеру, 300 скорости, 66 или 39, так же по скорости атаки, у ММ под фул около 2к скорости Матаки, и того 440 и 260, по сути это бессмысленная разница, так вот проанализировав разные сборки, где штрафы зашиты в движок, где из XML берутся, но везде умение пассивное добавляется в список умений, то есть там где в движке происходит умножение модификаторов на характеристику умение не как не задействовано, просто заглушка. Так же взять во внимание, что уровней умения в клиенте только 1, конечно можно самому дописать 3 уровня и будет 4, но смысла как описывал выше не вижу, исходя из этого, сделал вот такой XML:
XML:
    <passive id="4267" levels="1" name="Grade Penalty">
        <magicLevel value="1"/>
        <effects>
            <effect type="DEBUFF">
                <stats>
                    <per name="P_ATK_SPEED" value="0.84"/>
                    <per name="M_ATK_SPEED" value="0.84"/>
                    <per name="SPEED" value="0.84"/>
                    <per name="HP_REGEN" value="0.84"/>
                    <per name="MP_REGEN" value="0.84"/>
                    <per name="CP_REGEN" value="0.84"/>
                    <unit name="EVASION" value="4"/>
                    <unit name="ACCURACY" value="20"/>
                </stats>
            </effect>
        </effects>
    </passive>

    <passive id="4270" levels="4" name="Weight Penalty">
        <magicLevel value="1,1,1,1"/>
        <effects>
            <effect type="DEBUFF">
                <stats>
                    <per name="SPEED" value="0.0,0.5,0.5,1.0"/>
                    <per name="HP_REGEN" value="0.5,0.5,0.5,0.9"/>
                    <per name="MP_REGEN" value="0.5,0.5,0.5,0.9"/>
                    <per name="CP_REGEN" value="0.5,0.5,0.5,0.9"/>
                </stats>
            </effect>
        </effects>
    </passive>
Вот даже с Weight Penalty. Что по этому скажете? То есть таким образом, код в ядре в разы чище, задействовано умение как положено, на мой взгляд.
 
Реализация вроде бы описана в тоталчекере, но это хф.
В тоталчекере нет самого механизма. Только эффект, который повышает максимально допустимый уровень грейда.

Достоверно можно сказать, что вот эти параметры точно зависят от грейд-пенальти:
Код:
PATTACKSPEED, MATTACK, MAVOID, MDEFEND, MHIT, MATTACKSPEED, PATTACK, PAVOID, PCRITICAL, PDEFEND, PHIT, PSKILLSPEED, SPEED
Из вот этого енама:
C++:
enum VALIDATE::Enum : __int32
{
  PDEFEND = 0x0,
  MDEFEND = 0x1,
  PATTACK = 0x2,
  MATTACK = 0x3,
  PATTACKSPEED = 0x4,
  MATTACKSPEED = 0x5,
  PSKILLSPEED = 0x6,
  PHIT = 0x7,
  MHIT = 0x8,
  PCRITICAL = 0x9,
  MCRITICAL = 0xA,
  SPEED = 0xB,
  SHIELDDEFENSE = 0xC,
  SHIELDDEFENSERATE = 0xD,
  PAVOID = 0xE,
  MAVOID = 0xF,
  MAX = 0x10,
};

Логика работы следующая: Каждое изменения стата запускает функцию CCreature::ValidateGradePenalty, которая принимает enum значение как аргумент и дергает что-то не очень понятно в CSharedFactory, что я так понимаю, пересчитывает статы чара во внутреннем методе, после чего в зависимости от изменений, обновляется битсет статов и формируется маска. Поэтому, возможно список изменяющихся параметров больше, а эти просто нужны для отправки обновленной инфы в клиент. У себя я делал просто методом тестов на ПТСке, но формулы не дам, т.к там не только моя работа.

PS: Это 162 тоталчекер, так но я не думаю, что там чет прям сильно поменялось.
PPS: Ну и вишенка, что если вещь с грейд пенальти, то не добавляются ее скилы персонажу, включая SA и ЛС.
1) 1 лвл - грейд пенальти 4 уровень.(в руках АС)
1759120031559.webp 1759120075683.webp
2) 1 лвл - грейд пенальти нет. В руках стартовый даггер
1759120229345.webp 1759120260508.webp

Т.е штраф на оружие дает только - точность.

3) 1 лвл - грейд пенальти 4 уровень. На персонаже веспер бижа сет.
1759120600014.webp 1759120613214.webp
4) 1 лвл - грейд пенальти 3 уровень. Снял 1 акссессуар
1759120696389.webp 1759120705580.webp
5) 1 лвл - грейд пенальти 2 уровень. Снял еще 1 акссессуар
1759120757969.webp 1759120771693.webp
6) 1 лвл - грейд пенальти 1 уровень. Снял еще 1 акссессуар
1759120818908.webp 1759120835034.webp
 
Последнее редактирование:
В тоталчекере нет самого механизма. Только эффект, который повышает максимально допустимый уровень грейда.

Достоверно можно сказать, что вот эти параметры точно зависят от грейд-пенальти:
Код:
PATTACKSPEED, MATTACK, MAVOID, MDEFEND, MHIT, MATTACKSPEED, PATTACK, PAVOID, PCRITICAL, PDEFEND, PHIT, PSKILLSPEED, SPEED
Из вот этого енама:
C++:
enum VALIDATE::Enum : __int32
{
  PDEFEND = 0x0,
  MDEFEND = 0x1,
  PATTACK = 0x2,
  MATTACK = 0x3,
  PATTACKSPEED = 0x4,
  MATTACKSPEED = 0x5,
  PSKILLSPEED = 0x6,
  PHIT = 0x7,
  MHIT = 0x8,
  PCRITICAL = 0x9,
  MCRITICAL = 0xA,
  SPEED = 0xB,
  SHIELDDEFENSE = 0xC,
  SHIELDDEFENSERATE = 0xD,
  PAVOID = 0xE,
  MAVOID = 0xF,
  MAX = 0x10,
};

Логика работы следующая: Каждое изменения стата запускает функцию CCreature::ValidateGradePenalty, которая принимает enum значение как аргумент и дергает что-то не очень понятно в CSharedFactory, что я так понимаю, пересчитывает статы чара во внутреннем методе, после чего в зависимости от изменений, обновляется битсет статов и формируется маска. Поэтому, возможно список изменяющихся параметров больше, а эти просто нужны для отправки обновленной инфы в клиент. У себя я делал просто методом тестов на ПТСке, но формулы не дам, т.к там не только моя работа.

PS: Это 162 тоталчекер, так но я не думаю, что там чет прям сильно поменялось.
PPS: Ну и вишенка, что если вещь с грейд пенальти, то не добавляются ее скилы персонажу, включая SA и ЛС.
1) 1 лвл - грейд пенальти 4 уровень.(в руках АС)
Посмотреть вложение 89075Посмотреть вложение 89077
2) 1 лвл - грейд пенальти нет. В руках стартовый даггер
Посмотреть вложение 89078Посмотреть вложение 89079

Т.е штраф на оружие дает только - точность.

3) 1 лвл - грейд пенальти 4 уровень. На персонаже веспер бижа сет.
Посмотреть вложение 89080Посмотреть вложение 89081
4) 1 лвл - грейд пенальти 3 уровень. Снял 1 акссессуар
Посмотреть вложение 89082Посмотреть вложение 89083
5) 1 лвл - грейд пенальти 2 уровень. Снял еще 1 акссессуар
Посмотреть вложение 89084Посмотреть вложение 89085
6) 1 лвл - грейд пенальти 1 уровень. Снял еще 1 акссессуар
Посмотреть вложение 89086Посмотреть вложение 89087
Получается штраф от шмота примерно такой на статы?
Уровень 1: 16.7%
Уровень 2: 31%
Уровень 3: 42%
Уровень 4: 50%

Ну у мобиуса к примеру вот такое в армор грейд пинальти:
XML:
    <skill id="6213" toLevel="4" name="Armor Grade Penalty">
        <icon>
            <value level="1">icon.skill6213_1</value>
            <value level="2">icon.skill6213_2</value>
            <value level="3">icon.skill6213_3</value>
            <value level="4">icon.skill6213_4</value>
        </icon>
        <operateType>P</operateType>
        <magicCriticalRate>-5</magicCriticalRate>
        <magicLevel>1</magicLevel>
        <stayAfterDeath>true</stayAfterDeath>
        <effects>
            <effect name="Speed">
                <amount>
                    <value level="1">-16.67</value>
                    <value level="2">-30.56</value>
                    <value level="3">-42.13</value>
                    <value level="4">-51.77</value>
                </amount>
                <mode>PER</mode>
            </effect>
            <effect name="PhysicalEvasion">
                <amount>
                    <value level="1">-2.5</value>
                    <value level="2">-5</value>
                    <value level="3">-7.5</value>
                    <value level="4">-10</value>
                </amount>
                <mode>DIFF</mode>
            </effect>
            <effect name="PhysicalAttackSpeed">
                <amount>
                    <value level="1">-16.67</value>
                    <value level="2">-30.56</value>
                    <value level="3">-42.13</value>
                    <value level="4">-51.77</value>
                </amount>
                <mode>PER</mode>
            </effect>
            <effect name="MagicalAttackSpeed">
                <amount>
                    <value level="1">-16.67</value>
                    <value level="2">-30.56</value>
                    <value level="3">-42.13</value>
                    <value level="4">-51.77</value>
                </amount>
                <mode>PER</mode>
            </effect>
        </effects>
    </skill>
Ну и судя по скринам, не дается штраф на скорость атаки.


Aristo пасиб за инфу, реализовал блок кристалов и аугмента при вейпон пенальти)
Код:
[29/09 10:23:04] Player Pzychozes weapon penalty applied - all augmentation and ensoul bonuses removed
[29/09 10:23:31] Player Pzychozes weapon penalty removed - all augmentation and ensoul bonuses restored

Screenshot_2.webp Screenshot_3.webp

Ну и от армора тоже.
 
Последнее редактирование:
  • Мне нравится
Реакции: raz
Ну это все хорошо, для хроник повыше все четко понятно, есть уровни штрафа, и для каждого уровня свои величины штрафов, ну а как для Interlude тогда? Вот к примеру уменьшение физ и маг атаки я негде не нашел, не в сборках аналогичных, не на уже работающих серверах. Вот если брать отсюда:
Код:
enum VALIDATE::Enum : __int32
{
  PDEFEND = 0x0,    - Физ защита, не нашел где применяется.
  MDEFEND = 0x1,    - Маг защита, не нашел где применяется.
  PATTACK = 0x2,    - Физ атака, не нашел где применяется.
  MATTACK = 0x3,    - Маг атака, не нашел где применяется.
  PATTACKSPEED = 0x4,        - Скорость физ атаки, применяется.
  MATTACKSPEED = 0x5,        - Скорость маг атаки, применяется.
  PSKILLSPEED = 0x6,        - Скорость физ атаки скилом (я так понимаю каст физ умений), не нашел где применяется.
  PHIT = 0x7,                - Вот это что?
  MHIT = 0x8,                - Вот это что?
  PCRITICAL = 0x9,            - Рейт физ крита, не нашел где применяется.
  MCRITICAL = 0xA,            - Рейт маг крита, не нашел где применяется.
  SPEED = 0xB,                - Скорость передвижения, применяется.
  SHIELDDEFENSE = 0xC,        - Защита щитом, не нашел где применяется.
  SHIELDDEFENSERATE = 0xD,    - Рейт блока щитом, не нашел где применяется.
  PAVOID = 0xE,                - Вот это что?
  MAVOID = 0xF,                - Вот это что?   
  MAX = 0x10,                - Вот это что?
};
 
Получается штраф от шмота примерно такой на статы?
Уровень 1: 16.7%
Уровень 2: 31%
Уровень 3: 42%
Уровень 4: 50%

Ну у мобиуса к примеру вот такое в армор грейд пинальти:
XML:
    <skill id="6213" toLevel="4" name="Armor Grade Penalty">
        <icon>
            <value level="1">icon.skill6213_1</value>
            <value level="2">icon.skill6213_2</value>
            <value level="3">icon.skill6213_3</value>
            <value level="4">icon.skill6213_4</value>
        </icon>
        <operateType>P</operateType>
        <magicCriticalRate>-5</magicCriticalRate>
        <magicLevel>1</magicLevel>
        <stayAfterDeath>true</stayAfterDeath>
        <effects>
            <effect name="Speed">
                <amount>
                    <value level="1">-16.67</value>
                    <value level="2">-30.56</value>
                    <value level="3">-42.13</value>
                    <value level="4">-51.77</value>
                </amount>
                <mode>PER</mode>
            </effect>
            <effect name="PhysicalEvasion">
                <amount>
                    <value level="1">-2.5</value>
                    <value level="2">-5</value>
                    <value level="3">-7.5</value>
                    <value level="4">-10</value>
                </amount>
                <mode>DIFF</mode>
            </effect>
            <effect name="PhysicalAttackSpeed">
                <amount>
                    <value level="1">-16.67</value>
                    <value level="2">-30.56</value>
                    <value level="3">-42.13</value>
                    <value level="4">-51.77</value>
                </amount>
                <mode>PER</mode>
            </effect>
            <effect name="MagicalAttackSpeed">
                <amount>
                    <value level="1">-16.67</value>
                    <value level="2">-30.56</value>
                    <value level="3">-42.13</value>
                    <value level="4">-51.77</value>
                </amount>
                <mode>PER</mode>
            </effect>
        </effects>
    </skill>
Ну и судя по скринам, не дается штраф на скорость атаки.


Aristo пасиб за инфу, реализовал блок кристалов и аугмента при вейпон пенальти)
Код:
[29/09 10:23:04] Player Pzychozes weapon penalty applied - all augmentation and ensoul bonuses removed
[29/09 10:23:31] Player Pzychozes weapon penalty removed - all augmentation and ensoul bonuses restored

Посмотреть вложение 89088Посмотреть вложение 89089

Ну и от армора тоже.
согласен аналогично поправил если будет кому интерестно тоже добавлю скрины вырубает фул сет СА и бла бла как сказал аристо
 
В тоталчекере нет самого механизма. Только эффект, который повышает максимально допустимый уровень грейда.

Достоверно можно сказать, что вот эти параметры точно зависят от грейд-пенальти:
Код:
PATTACKSPEED, MATTACK, MAVOID, MDEFEND, MHIT, MATTACKSPEED, PATTACK, PAVOID, PCRITICAL, PDEFEND, PHIT, PSKILLSPEED, SPEED
Из вот этого енама:
C++:
enum VALIDATE::Enum : __int32
{
  PDEFEND = 0x0,
  MDEFEND = 0x1,
  PATTACK = 0x2,
  MATTACK = 0x3,
  PATTACKSPEED = 0x4,
  MATTACKSPEED = 0x5,
  PSKILLSPEED = 0x6,
  PHIT = 0x7,
  MHIT = 0x8,
  PCRITICAL = 0x9,
  MCRITICAL = 0xA,
  SPEED = 0xB,
  SHIELDDEFENSE = 0xC,
  SHIELDDEFENSERATE = 0xD,
  PAVOID = 0xE,
  MAVOID = 0xF,
  MAX = 0x10,
};

Логика работы следующая: Каждое изменения стата запускает функцию CCreature::ValidateGradePenalty, которая принимает enum значение как аргумент и дергает что-то не очень понятно в CSharedFactory, что я так понимаю, пересчитывает статы чара во внутреннем методе, после чего в зависимости от изменений, обновляется битсет статов и формируется маска. Поэтому, возможно список изменяющихся параметров больше, а эти просто нужны для отправки обновленной инфы в клиент. У себя я делал просто методом тестов на ПТСке, но формулы не дам, т.к там не только моя работа.

PS: Это 162 тоталчекер, так но я не думаю, что там чет прям сильно поменялось.
PPS: Ну и вишенка, что если вещь с грейд пенальти, то не добавляются ее скилы персонажу, включая SA и ЛС.
1) 1 лвл - грейд пенальти 4 уровень.(в руках АС)
Посмотреть вложение 89075Посмотреть вложение 89077
2) 1 лвл - грейд пенальти нет. В руках стартовый даггер
Посмотреть вложение 89078Посмотреть вложение 89079

Т.е штраф на оружие дает только - точность.

3) 1 лвл - грейд пенальти 4 уровень. На персонаже веспер бижа сет.
Посмотреть вложение 89080Посмотреть вложение 89081
4) 1 лвл - грейд пенальти 3 уровень. Снял 1 акссессуар
Посмотреть вложение 89082Посмотреть вложение 89083
5) 1 лвл - грейд пенальти 2 уровень. Снял еще 1 акссессуар
Посмотреть вложение 89084Посмотреть вложение 89085
6) 1 лвл - грейд пенальти 1 уровень. Снял еще 1 акссессуар
Посмотреть вложение 89086Посмотреть вложение 89087
Со скринами согласен, но там ты говоришь, что пинльти на оружие отнимает только точность, а на скрине видно, что отнимает еще и скорость физ атаки, при одинаковых условиях, скорость атаки дагером должна бить одинаковой, в независимости от грейда. Это одно, а второе, для Interlude это котируется? интересует именно разделение на пенальти от оружия и брони отдельно? так же уровень пенальти за броню, у тебя в хрониках 4 уровня пенальти, у меня 1, и он как для оружия так и для брони.
 
PPS: Ну и вишенка, что если вещь с грейд пенальти, то не добавляются ее скилы персонажу, включая SA и ЛС.
Ну для оружия да, а для брони? я имею ввиду умения от сета, или умения от эпик бижи? Вот нашел часть кода в другой сборке, но тут только для оружия:

Java:
            // Activate / desactivate weapon effects.
            final ItemInstance item = getActiveWeaponInstance();
            if (item != null)
            {
                if (_weaponGradePenalty)
                    ItemPassiveSkillsListener.getInstance().onUnequip(Paperdoll.NULL, item, this);
                else
                    ItemPassiveSkillsListener.getInstance().onEquip(Paperdoll.NULL, item, this);
            }
 
nesss, я хз насчет ИЛ. Скорее всего нет достоверного способа получить эту информацию в текущий момент времени, т.к нет валидных ИЛ ПТС серверов. У тебя сейчас по сути выбор: делать на глазок, аппроксимируя данные из различных ИЛ сборок, либо сделать аналогично тому, как это сделано в каких-то хрониках ближайших к ИЛ, но в которых информацию можно достоверно узнать. Например есть ПТС С4 и ПТС ГФ.
Кстати, в ХФ пассивные скиллы пенальти тоже не добавляются персонажу и в принципе не имеют никаких эффектов. Т.е их единственная функция - визуально отобразить информацию о пенальти в клиенте, когда будет отправлен пакет статуса. Возможно, в ИЛ это работает так же на уровне сервера, но просто визуализируется по-другому. Ты просто рассуждаешь с точки зрения кодера L2j, что если в клиенте есть скилл с описанием эффекта, то он должен быть и в датапаке. В ПТС много скиллов-болванок, которые есть в клиенте, у них и анимация, и иконка с описанием, но на сервере их логика захардкожена.

согласен аналогично поправил если будет кому интерестно тоже добавлю скрины вырубает фул сет СА и бла бла как сказал аристо
Я наверное не так выразился. СА и ЛС только в оружие. Штраф армор пенальти не влияет на бонусы сетов армора или скиллы армора. Только на скиллы оружия, включая СА и ЛС
Посмотреть вложение 4288095471166159150.mp4

Посмотреть вложение -7746745801170534801.mp4
 
Последнее редактирование модератором:
  • Мне нравится
Реакции: raz
nesss, я хз насчет ИЛ. Скорее всего нет достоверного способа получить эту информацию в текущий момент времени, т.к нет валидных ИЛ ПТС серверов. У тебя сейчас по сути выбор: делать на глазок, аппроксимируя данные из различных ИЛ сборок, либо сделать аналогично тому, как это сделано в каких-то хрониках ближайших к ИЛ, но в которых информацию можно достоверно узнать. Например есть ПТС С4 и ПТС ГФ.
Кстати, в ХФ пассивные скиллы пенальти тоже не добавляются персонажу и в принципе не имеют никаких эффектов. Т.е их единственная функция - визуально отобразить информацию о пенальти в клиенте, когда будет отправлен пакет статуса. Возможно, в ИЛ это работает так же на уровне сервера, но просто визуализируется по-другому. Ты просто рассуждаешь с точки зрения кодера L2j, что если в клиенте есть скилл с описанием эффекта, то он должен быть и в датапаке. В ПТС много скиллов-болванок, которые есть в клиенте, у них и анимация, и иконка с описанием, но на сервере их логика захардкожена.
Да я смотрю на разные сборки Interlude, и у каждого по разному. Вот в 1 сборке нашел подобное того, что ты говорил. А именно отнимается от пенальти оружия точность и увеличивается фейл скила, и есть 4 уровня армор пинальти, но по сути это перенесли туда из хроник повыше. Посмотрел в XML, там есть этот скил как пассивный, он просто пустой, там нет статов которые отнимаются, а в коде, он добавляется/отнимается при штрафе. Сам штраф учитывается в коде, а именно при получении скажем скорости бега, идет обращение к методу, который берет скорость бега и умножает на модификатор в зависимости от уровня армор пенальти. И так по каждому пункту, то же самое с Weight Penalty, на мой взгляд это реализовано кустарно, я вот сделал по скилам, если есть скил в пассивных, тогда учитывается штраф. Еще в добавок к этому, по поводу заглушки, такую заглушку делать совсем незачем, так как если нужно что-бы отображать пенальти, есть пакет EtcStatusUpdate, который для этого и создан.
XML:
    <passive id="4267" levels="1" name="Grade Penalty">
        <magicLevel value="1"/>
        <effects>
            <effect type="DEBUFF">
                <stats>
                    <per name="P_ATK_SPEED" value="0.50"/>
                    <per name="M_ATK_SPEED" value="0.50"/>
                    <per name="SPEED" value="0.50"/>
                    <unit name="EVASION" value="8"/>
                    <unit name="ACCURACY" value="20"/>
                </stats>
            </effect>
        </effects>
    </passive>

Вот набросал так, по сути вроде как скорость атаки не отнимается, ну где как, а вот остальные параметры, задействованы у всех, я взял как для 4 уровня, -50% для первых трех и минус 8 уклонения, как 2 на 1 уровень, и минус 20 точности. Вот заходил на сервера тестить, то там 1 уровень, сколько б ты вещей не одел, так же относительно оружия.
 
Чисто теоретически, захарденые в интерлюде штрафы по величине скорее всего очень похожи на те штрафы что позже расписали в 6209 и 6213.
Скорее всего просто корейцы вынесли эти хардкоденые значения в данные скиллы, чтобы было проще их поправлять по необходимости.
XML:
    <skill id="6209" levels="4" name="Штраф Ранга" pts_name="s_weapon_grade_penalty1">
        <stat name="icon" value="{icon.skill6209_1 icon.skill6209_2 icon.skill6209_3 icon.skill6209_4}" />
        <stat name="magic_level" value="1" />
        <stat name="operate_type" value="P" />
        <for>
            <add order="0x40" stat="p_hit" value="-16" />
            <add order="0x40" stat="p_critical_rate" value="{-10 -20 -30 -40};per" />
            <mul order="0x30" stat="p_physical_attack" value="{-10 -20 -30 -40};per" />
            <mul order="0x30" stat="p_attack_speed" value="{-10 -20 -30 -40};per" />
            <mul order="0x30" stat="p_critical_damage" value="{-10 -20 -30 -40};per" />
        </for>
    </skill>
    <skill id="6213" levels="4" name="Штраф Ранга" pts_name="s_armor_grade_penalty1">
        <stat name="icon" value="{icon.skill6213_1 icon.skill6213_2 icon.skill6213_3 icon.skill6213_4}" />
        <stat name="magic_level" value="1" />
        <stat name="operate_type" value="P" />
        <for>
            <add order="0x40" stat="p_avoid" value="{-2.5 -5 -7.5 -10}" />
            <mul order="0x30" stat="p_attack_speed" value="{-16.67 -30.56 -42.13 -51.77};per" />
            <mul order="0x30" stat="p_magic_speed" value="{-16.67 -30.56 -42.13 -51.77};per" />
            <mul order="0x30" stat="p_speed" value="{-16.67 -30.56 -42.13 -51.77};per" />
        </for>
    </skill>
 
Со скринами согласен, но там ты говоришь, что пинльти на оружие отнимает только точность, а на скрине видно, что отнимает еще и скорость физ атаки, при одинаковых условиях, скорость атаки дагером должна бить одинаковой, в независимости от грейда. Это одно, а второе, для Interlude это котируется? интересует именно разделение на пенальти от оружия и брони отдельно? так же уровень пенальти за броню, у тебя в хрониках 4 уровня пенальти, у меня 1, и он как для оружия так и для брони.
Есть еще модификатор скорости у оружия.
Вейпон грейд пенальти режет силу крита физ/маг и точность физ/маг, шмот режет уворот физ/маг, скорость бега, скорости каста/атаки.

согласен аналогично поправил если будет кому интерестно тоже добавлю скрины вырубает фул сет СА и бла бла как сказал аристо
Только аугменты и са, шмот не отключает.

Да я смотрю на разные сборки Interlude, и у каждого по разному. Вот в 1 сборке нашел подобное того, что ты говорил. А именно отнимается от пенальти оружия точность и увеличивается фейл скила, и есть 4 уровня армор пинальти, но по сути это перенесли туда из хроник повыше. Посмотрел в XML, там есть этот скил как пассивный, он просто пустой, там нет статов которые отнимаются, а в коде, он добавляется/отнимается при штрафе. Сам штраф учитывается в коде, а именно при получении скажем скорости бега, идет обращение к методу, который берет скорость бега и умножает на модификатор в зависимости от уровня армор пенальти. И так по каждому пункту, то же самое с Weight Penalty, на мой взгляд это реализовано кустарно, я вот сделал по скилам, если есть скил в пассивных, тогда учитывается штраф. Еще в добавок к этому, по поводу заглушки, такую заглушку делать совсем незачем, так как если нужно что-бы отображать пенальти, есть пакет EtcStatusUpdate, который для этого и создан.
XML:
    <passive id="4267" levels="1" name="Grade Penalty">
        <magicLevel value="1"/>
        <effects>
            <effect type="DEBUFF">
                <stats>
                    <per name="P_ATK_SPEED" value="0.50"/>
                    <per name="M_ATK_SPEED" value="0.50"/>
                    <per name="SPEED" value="0.50"/>
                    <unit name="EVASION" value="8"/>
                    <unit name="ACCURACY" value="20"/>
                </stats>
            </effect>
        </effects>
    </passive>

Вот набросал так, по сути вроде как скорость атаки не отнимается, ну где как, а вот остальные параметры, задействованы у всех, я взял как для 4 уровня, -50% для первых трех и минус 8 уклонения, как 2 на 1 уровень, и минус 20 точности. Вот заходил на сервера тестить, то там 1 уровень, сколько б ты вещей не одел, так же относительно оружия.
Дело в том, что скила как такого не существует, он в киенте создан только для визуального отображения.
Никаких параметров у скила в птс нет, скил при грейд пинальти не появляется в пассивках, а просто весит как дебаф
Вся реализация в коде.

Я вчера пол дня реализовывал все это дерьмо, в итоге откатил нахер, т.к. это полнейшая бредятина, а игроки в итоге тебя еще и отxyесосят.
Делай как на хф и не трахай себе голову.
 
Последнее редактирование модератором:
  • Мне нравится
Реакции: raz
Ну я тоже как-бы этой мелочью долго занимаюсь, ну я все-таки сделал все через скилы, не потому-что я так захотел, а потому-что у меня по моему коду будет производительнее это сделать через скилы, к тому-же и смотрел в сборках и уже на запущенных серверах, скилы пассивные, грейд пенальти, вейт пенальти и деад пенальти добавляются в список пассивных умений, они там весят, то есть они и у меня там весят, таким образом от них учтены характеристики, а так же есть всегда доступ к ним и они же являются маркерами. Ну в целом понятно, думаю более менее разобрались с этим, тему думаю можно закрывать.
 

Похожие темы

Ответы
0
Просмотры
362
Назад
Сверху