Стакинг Prophecy / COV / Magnus

dev951

Знаменитый
Участник
Старожил I степени
Сообщения
28
Розыгрыши
0
Репутация
0
Реакции
7
Баллы
1 235
Хроники
  1. Interlude
Сборка
Lucera 2
Здравствуйте! Столкнулся с проблемой стакинга:
- Prophecy of Water (1355), Fire (1356), Wind (1357),
- Chant of Victory (1363) и Magnus' Chant (1413).

У себя проблему решил изменениями в XML:



После этого баффы нормально заменяют друг друга без необходимости вручную снимать предыдущие.
Если у кого-то проблема останется, стоит проверить логику стакинга в своём CharEffectList2.class, так как в разных сборках она может отличаться.
Возможно кому-то будет полезно: с этой проблемой уже обращались на форуме ранее, надеюсь данное решение также кому-нибудь поможет :)
 
Боже какое извращение, а разве нельзя это просто сделать через абнормалы и одинаковые уровни? или в люцере такого нету? Я же верно понимаю проблема в том что стакаются эти бафы между собой? Обычно это решается банально одинаковыми абнормалами и уровнем тогда они будут взаимозаменяться. Хотя достаточно абнормалов просто уровень абнормала делает перенакладывания бафа, условно 2 уровень ты не заменишь 1 а наобарот заменишь.
 
Боже какое извращение, а разве нельзя это просто сделать через абнормалы и одинаковые уровни? или в люцере такого нету? Я же верно понимаю проблема в том что стакаются эти бафы между собой? Обычно это решается банально одинаковыми абнормалами и уровнем тогда они будут взаимозаменяться. Хотя достаточно абнормалов просто уровень абнормала делает перенакладывания бафа, условно 2 уровень ты не заменишь 1 а наобарот заменишь.
Да, именно так и работает.
Если понадобится, могу также отправить XML-коды этих скиллов
 
Да, именно так и работает.
Если понадобится, могу также отправить XML-коды этих скиллов
Ну мне оно не надо), я просто увидел описание и отписался по своему опыту.
 
Здравствуйте! Столкнулся с проблемой стакинга:
- Prophecy of Water (1355), Fire (1356), Wind (1357),
- Chant of Victory (1363) и Magnus' Chant (1413).

У себя проблему решил изменениями в XML:

*** Скрытый текст не может быть процитирован. ***

После этого баффы нормально заменяют друг друга без необходимости вручную снимать предыдущие.
Если у кого-то проблема останется, стоит проверить логику стакинга в своём CharEffectList2.class, так как в разных сборках она может отличаться.
Возможно кому-то будет полезно: с этой проблемой уже обращались на форуме ранее, надеюсь данное решение также кому-нибудь поможет :)
меня больше интеречует, это вопрос или решение?) Эт же раздел вопросов.
 
меня больше интеречует, это вопрос или решение?) Эт же раздел вопросов.
Это решение проблемы. Я публиковал его в разделе «Ядро» но его перенесли в другой раздел, видимо так будет правильнее. Поэтому, вероятно этот вопрос и вызвал у вас небольшое недоумение)
 
Почему нельзя абнормал который у всех одинаковый заменить на любой рандомный для себя?
 
а...?
типо вопрос почему они не заменяются?
Они типо "subabnormal" должны были быть первоначально?
Здесь проблема не в том, что эти скиллы не являются subabnormal. В XML для этих скиллов вообще не заданы abnormalLvl или effectAbnormalLvl; в gameserver/model/L2Skills.java эти значения только читаются из XML, а при их отсутствии получают значение -1.



В рабочем 1300–1399.xml для 1355, 1356 и 1357 уже стоит stackOrder="2". То есть причина не в отсутствии subabnormal, а в правилах stacking для одной и той же группы multi_buff.

Сообщение объединено:
Почему нельзя абнормал который у всех одинаковый заменить на любой рандомный для себя?
В сервере одинаковый для всех abnormal — это не просто произвольное число. Он используется системой для идентификации эффекта и, в зависимости от реализации, может участвовать в определении того, какие эффекты относятся к одной группе, какой эффект должен заменить другой, а также какой эффект необходимо снять или обновить.

Поэтому заменить общий abnormal на случайный для каждого игрока можно только в том случае, если серверная логика изначально рассчитана на такие динамические значения. В противном случае могут нарушиться механизмы stacking/replacement: один и тот же skill у разных игроков уже не будет иметь одинаковый идентификатор эффекта.

То есть проблема не в том, что random ID технически невозможен. Вопрос в том, используется ли abnormal как часть логики идентификации и stacking. Если используется, изменение идентификатора меняет и поведение этой логики.



Сообщение объединено:
 
Последнее редактирование:

Похожие темы

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