Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Сокращение времени бафов на N%
#1
L2jserver
Interlude

Доброго времени суток господа.

Есть скилл, суть которого, такова: "Сокращает время всех (полученных) дебаф эффектов на 50%."

Вопрос: где копать на эту тему? первым, в голову лезет L2Effect.java и L2Skill.java, однако и L2Character.java не даёт покоя...

Спасибо.
Ответ
#2
не скажу как в л2ж, но в серверах на базе феникса/овера, расчет длительности дебаффа в зависимости от резистов и т.п. высчитывается в методе getEffects класса Skill.
так что попробуй в том же направлении поискать
Ответ
#3
В L2Effect - посмотреть создание эффекта и задание времени эффекта. В зависимости от этого бафа, который сокращает время на новые offensive эффекты сделать коррекцию времени.
Ответ
#4
Огромное спасибо за отклик в теме.

Gaikotsu: у меня Интерлюд. К сожалению, оверы и фениксы не делали на шару данной хроники.

Visor: нашёл в L2Effect.java то что искал, однако, появилась загвостка... time - является int значением, т.е. добавить туда цифры аля 2.3 или ещё что-то вроде этого - нельзя. Например, у меня в скиле стат снижает время действия дебафф скилов на 50%, разумеется мне было бы проще и точнее делать вот так в .xml:
<mul order="0x30" stat="stat" val="0.5"/>

Так как у меня инте значение, и своего рода это пока-что костыль, я делаю так (временно):
<add order="0x40" stat="stat" val="2"/>

Однако вопрос. Как позволить в value переменной time (эффекта) считывать значения double/float? или еще проще, можно ли как то сделать это чудо через милисекунды...

Спасибо.
Ответ
#5
finfan Написал:Огромное спасибо за отклик в теме.

Gaikotsu: у меня Интерлюд. К сожалению, оверы и фениксы не делали на шару данной хроники.

Visor: нашёл в L2Effect.java то что искал, однако, появилась загвостка... time - является int значением, т.е. добавить туда цифры аля 2.3 или ещё что-то вроде этого - нельзя. Например, у меня в скиле стат снижает время действия дебафф скилов на 50%, разумеется мне было бы проще и точнее делать вот так в .xml:
<mul order="0x30" stat="stat" val="0.5"/>

Так как у меня инте значение, и своего рода это пока-что костыль, я делаю так (временно):
<add order="0x40" stat="stat" val="2"/>

Однако вопрос. Как позволить в value переменной time (эффекта) считывать значения double/float? или еще проще, можно ли как то сделать это чудо через милисекунды...

Спасибо.

Не претендую на идеальный код, но как вариант:

Код:
int a = 0; //время действия баффов
                    double b = a;//дабл для вычисления
                    
                    b *= val; //вычисление
                    
                    a = (int)b; //результат в формуле

Добавлено через 4 минуты
ой, что-то я не совсем то написал. Короче, просто показал как произвести вычисления с использованием дополнительной переменной. Тогда val у вас будет относиться к "b" и восприниматься нормально.
Ответ
#6
создать параметр, модифицировать его эффектом по типу, при добавлении нового эффекта, например по типу buff - начальный период из темплейта * на этот модификатор.
лучше переписать алгоритмы эффекта, там с тиками жесть. еще будет облом после ре-логина, если у тебя и получится что ты задумал
Ответ
#7
Добавить стат в stats - который будет мулить этот баф, мул считается вокруг 1 и идет по 0х30 ордеру в l2j.
Далее calcStat у владельца эффекта определить модификатор поотношению init 1 - и потом умножить на время перед запуском собственно таймера дебафа для кол-ва тиков в эффекте 1. С эффектами типа пореза с кол-вом тиков больше 1 видимо нужно применить на уменьшение кол-ва тиков эффекта, пропорционально снижению общего времени дебафа время*кол-во.
Если так бегло, то я бы примерно так и решил эту задачку.
Ответ
#8
Спасибо всем, проблема решена!
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Отображение времени дебаффа. LifeAfterWoW 28 8,247 02-26-2019, 01:36 PM
Последний пост: moveton
  Анимация бафов & таймаут ccc 5 2,425 05-29-2018, 03:39 PM
Последний пост: MrShyr
  Не правильное расположение бафов 4arli 18 3,410 09-04-2014, 01:02 AM
Последний пост: elastic
  stackType и замена бафов L2J 10 3,118 08-01-2014, 04:14 PM
Последний пост: DiagoD
  Проверка времени mishut 7 2,048 04-16-2014, 07:03 PM
Последний пост: mishut
  Оверлорд настроить замену бафов Munhgauzen 0 1,042 12-18-2013, 09:30 PM
Последний пост: Munhgauzen
  Перевод времени осад, тв и тд volumeOne 7 2,435 12-07-2012, 01:47 AM
Последний пост: CreazyGreen
  Как сделать сохранение бафов l2j bestworld 3 2,326 09-07-2012, 02:39 PM
Последний пост: gorodetskiy
  Продолжительность бафов 1 час. Не через XML!!! Rus. 17 8,743 03-10-2010, 11:22 AM
Последний пост: Astend
  2 вопроса насчет бафов и баффера xSLAYx 4 6,088 11-04-2009, 06:47 PM
Последний пост: glGizma

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


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