Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Под барьером можно лечится и есть банки.
#1
Здравствуйте, уважаемые администраторы! Заметила очень неприятную проблему. Почему то под целкой от саб-класса можно лечится банками и под бишем а так же своими скилами для лечения. Исходники л2некстген, подскажите пожалуйста как починить эту неприятность Smile Под админсткой целкой так же лечится, хотя на других сборках нет. Хроника: Epilogue
Ответ
#2
Создайте поддержку блокировки регена хп.
В эффекте Invulnerable инитьте блокировку на старте эффекта и снимайте при окончании.
Саму метку проверяйте в скилл типах хила.
Ответ
#3
если вы о ГОД хроника: то на годе оно так и работает (хилит), но вы не указали какой их некстов у вас исход...
Ответ
#4
KateKate7912 Написал:Здравствуйте, уважаемые администраторы! Заметила очень неприятную проблему. Почему то под целкой от саб-класса можно лечится банками и под бишем а так же своими скилами для лечения. Исходники л2некстген, подскажите пожалуйста как починить эту неприятность Smile Под админсткой целкой так же лечится, хотя на других сборках нет.

Там есть чудная функция (L2Character#setHealHPBlocked).
Попрыгал по ядру, вроде бы все проверки на эту функцию расставлены (isHealHPBlocked)
Что нужно сделать:
1) Инстертнуть в эффект (EffectInvulnerable) функцию onStart()
Код:
@Override
    public void onStart()
    {
        _effected.setHealHPBlocked(true);
        _effected.setHealMPBlocked(true);
        _effected.setInvul(true);
    }
2) Инсертнуть функцию onExit()
Код:
@Override
    public void onExit()
    {
        _effected.setHealHPBlocked(false);
        _effected.setHealMPBlocked(false);
        _effected.setInvul(false);        
    }
P.S. на счет мп не уверен, давно забыл эти хроники.
P.P.S. советую вообще переписать данную систему, полностью вынести тип Invul из ядра и переписать его на блокировку статов. (BLOCK_HP, BLOCK_MP, BLOCK_PHYSDMG, ....)
Ответ
#5
Carline Написал:Там есть чудная функция (L2Character#setHealHPBlocked).
Попрыгал по ядру, вроде бы все проверки на эту функцию расставлены (isHealHPBlocked)
Что нужно сделать:
1) Инстертнуть в эффект (EffectInvulnerable) функцию onStart()
Код:
@Override
    public void onStart()
    {
        _effected.setHealHPBlocked(true);
        _effected.setHealMPBlocked(true);
        _effected.setInvul(true);
    }
2) Инсертнуть функцию onExit()
Код:
@Override
    public void onExit()
    {
        _effected.setHealHPBlocked(false);
        _effected.setHealMPBlocked(false);
        _effected.setInvul(false);        
    }
P.S. на счет мп не уверен, давно забыл эти хроники.
P.P.S. советую вообще переписать данную систему, полностью вынести тип Invul из ядра и переписать его на блокировку статов. (BLOCK_HP, BLOCK_MP, BLOCK_PHYSDMG, ....)
Я же это написал)
Ответ
#6
L2CCCP Написал:Я же это написал)

не подробно жиSmile вдруг она не поняла бы как это делать.
Код:
Создайте поддержку блокировки регена хп.
да и создавать ничего нового не нужно.
Ответ
#7
Carline Написал:не подробно жиSmile вдруг она не поняла бы как это делать.
Код:
Создайте поддержку блокировки регена хп.
да и создавать ничего нового не нужно.

Сделала как вы сказали.
Теперь не видно эффекта барьера от саба но в момент когда эффект видно в баффе то хил не идет. Скинула вам в ЛС пример того что изменила. Судя по всему накосячила)

Добавлено через 1 час 7 минут
Все еще актуально.
Проверки Carline дали толк. Но после фикса не видно эффекта барьера.

[SRC="java"]package l2n.game.skills.effects;

import l2n.game.model.L2Effect;
import l2n.game.model.L2Skill;
import l2n.game.model.L2Skill.SkillType;
import l2n.game.skills.Env;

public final class EffectInvulnerable extends L2Effect
{
public EffectInvulnerable(final Env env, final EffectTemplate template)
{
super(env, template);
}

@Override
public void onStart()
{
_effected.setHealHPBlocked(true);
_effected.setHealMPBlocked(true);
_effected.setInvul(true);
}

@Override
public boolean checkCondition()
{
if(_effected.isInvul(false))
return false;
final L2Skill skill = _effected.getCastingSkill();
if(skill != null && (skill.getSkillType() == SkillType.TAKECASTLE || skill.getSkillType() == SkillType.TAKEFORT))
return false;
return super.checkCondition();
}

@Override
public boolean onActionTime()
{
return false;
}

@Override
public void onExit()
{
_effected.setHealHPBlocked(false);
_effected.setHealMPBlocked(false);
_effected.setInvul(false);

}
}[/SRC]
Ответ
#8
Вот только лучше сделать отдельно глобальную переменную (допустим булеву, изначально false). То есть при старте эффекта мы проверяем на наличие блока ХП/МП, и если этого блока нет - присваиваем булевой переменной значение true и ставим блок, иначе - ничего не делаем. А на выходе проверяем булеву переменную, если true - снимаем блок, иначе - ничего не делаем. Все просто.

В каком смысле, не видно эффекта? Того, что вокруг персонажа светится, или в списке эффектов (баффов)?
Ответ
#9
Warencense Написал:Вот только лучше сделать отдельно глобальную переменную (допустим булеву, изначально false). То есть при старте эффекта мы проверяем на наличие блока ХП/МП, и если этого блока нет - присваиваем булевой переменной значение true и ставим блок, иначе - ничего не делаем. А на выходе проверяем булеву переменную, если true - снимаем блок, иначе - ничего не делаем. Все просто.

Здравствуйте! Увы. Я пока только осваиваю и мне много чего не понятноSmile
Я сделала как ребята выше писали и все работает как надо, но теперь пропал эффект барьера, что самое интересное то это то что начальный эффект в виде всплеска есть и дает бафф, но самого целестила нет как должно быть. Хотя до фикса был, и под ним можно было лечится.

http://rghost.ru/7cFwYNrZL

Не могли бы вы глянуть чистый скрипт, и внести изменения.
Это будет для меня уроком. Благодарю вас!

Добавлено через 3 часа 23 минуты
Warencense Написал:Вот только лучше сделать отдельно глобальную переменную (допустим булеву, изначально false). То есть при старте эффекта мы проверяем на наличие блока ХП/МП, и если этого блока нет - присваиваем булевой переменной значение true и ставим блок, иначе - ничего не делаем. А на выходе проверяем булеву переменную, если true - снимаем блок, иначе - ничего не делаем. Все просто.

В каком смысле, не видно эффекта? Того, что вокруг персонажа светится, или в списке эффектов (баффов)?

В списке эффектов его видно, после добавления проверок перестало его быть видно вокруг персонажа. Пока длится баф фикс работает с проверками, а вот самого барьера не видно вокруг персонажа Sad
Я вам пишу в ЛС но сообщения наверно не доходят Sad

Еще подмечу, когда вылетает целестиал есть первый эффект что то вроде яда перед тем как она вылетает а самой целестиал нет.
Ответ
#10
Warencense Написал:Вот только лучше сделать отдельно глобальную переменную (допустим булеву, изначально false). То есть при старте эффекта мы проверяем на наличие блока ХП/МП, и если этого блока нет - присваиваем булевой переменной значение true и ставим блок, иначе - ничего не делаем. А на выходе проверяем булеву переменную, если true - снимаем блок, иначе - ничего не делаем. Все просто.

В каком смысле, не видно эффекта? Того, что вокруг персонажа светится, или в списке эффектов (баффов)?

И словить баг, когда одновременно вешают две целесты. AtomicState или volatile тогда уж добавлять надо.

А эффекта нет - в датапаке нужно посмотреть прописан ли абнормал. Либо была добавлена ненужная проверка в ядре, которая должна показывать этот самый Abnormal.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Ошибки при компиляции, как можно исправить ? knaif 6 2,064 03-31-2015, 07:08 PM
Последний пост: helly
  Есть Вопрос!? La Luna 7 2,168 09-07-2012, 11:52 AM
Последний пост: Zubastic
  Есть у кого ни будь КТФ на l2jserver с мануальчиком? revlon 3 1,477 09-04-2012, 01:05 PM
Последний пост: NotSpecified
  Банки на ивентах LDD 7 2,178 07-29-2012, 12:58 PM
Последний пост: Visor
  Банки MP ahmet94 2 1,952 04-14-2012, 01:17 AM
Последний пост: Psych_O
  Заблокировать банки. Python NiddHoggUA 3 1,795 10-25-2011, 10:41 AM
Последний пост: Azagthtot
  Ищу партнера Есть МАШИНА НЕТУ СБОРКИ! kasperok 1 1,594 07-24-2011, 05:18 AM
Последний пост: aionfree
  СР и МР банки. leone 3 4,751 05-04-2011, 02:37 PM
Последний пост: xamelion
  Не юзаются банки МП PSRxCob 7 3,513 03-27-2011, 01:51 PM
Последний пост: untunable
  Запретить юзать банки на эвенте SkAvenger 1 2,294 01-17-2011, 10:18 PM
Последний пост: incognito

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


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