Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Исправление Chain Heal 1553
#1
Нужно что бы хилил вот так как на видео-
http://www.youtube.com/watch?v=1u76Qdo5dxc
исходы Фт.
А сейчас хилит цепной только когда у персонажей не фулл хп, и если они находятся в пати.
Скилл

Но я думаю не в скиле дело, т.к если поменять <set name="target" val="TARGET_ONE" на TARGET_AREA и тип скилла просто на HEAL, то он начинает хилить как на видео, а проблема была в том, что не %, а просто 30хп...

ChainHeal.java

Подскажите, что тут исправить...
Ответ
#2
Rolfer Написал:Нужно что бы хилил вот так как на видео-
[/SPOILER]

Подскажите, что тут исправить...

Код:
target.isCurrentHpFull() || ConditionTargetRelation.getRelation(activeChar, target) != ConditionTargetRelation.Relation.Friend
убрать это.
Ответ
#3
PHP код:
<?php 
[javac] D:\dwl\First Team\java\l2ft\gameserver\skills\skillclasses\ChainHeal.java:74: error: ')' expected
[javac] if(target == null || target.isHealBlocked() || target.isCursedWeaponEquipped()
[
javac] ^
[
javac] 1 error

оставил строчку вот так скомпилилось
Код:
if(target == null || target.isHealBlocked() || target.isCursedWeaponEquipped()  )
Ответ
#4
Rolfer Написал:
PHP код:
<?php 
[javac] D:\dwl\First Team\java\l2ft\gameserver\skills\skillclasses\ChainHeal.java:74: error: ')' expected
[javac] if(target == null || target.isHealBlocked() || target.isCursedWeaponEquipped()
[
javac] ^
[
javac] 1 error

Смотрите то место, где убирали. В ошибке сказано, что вы либо забыли скобку, либо там она лишняя.
Ответ
#5
Хилить то оно хилит, но хилит всех в радиусе, даже мобов, рейдов, варов.

Оставил так

PHP код:
<?php 
target
.isHealBlocked() || target.isCursedWeaponEquipped()
- вот так, я понимаю кого он не должен хилить - персонажа акаманаха/зарича.
как правильно суда добавить враждебно настроенных существ?- target.isMonster, и правильно ли думать, что Monster есть моб?... как добавить в блок хила варов, посторонних флагнутых (те кто не в пати)?

если я правильно понимаю, строчка что удалил и есть приминение на дружелюбных. Но в случае если вернуть на место, возвращаемся к 1 вопросу в этой теме...
PHP код:
<?php 
ConditionTargetRelation
.Relation.Friend)
Ответ
#6
Сделал вот так-
PHP код:
<?php 
if(target == null || target.isHealBlocked() || target.isCursedWeaponEquipped() || target.isMonster() )

Луч, отбиваясь от персонажей не хилит: заблокированных к хилу, персонажей с заричем/акаманахом и мобов.
Хилит варов, флагнутых без пати...

Что дописать суда что бы перестало хилить флагнутых без пати, и при этом хилило флагнутых в пати, клане, СС, алли?...
Ответ
#7
ну вот у меня к примеру подбор подходящих целей делается так

[SRC="java"]
List<HealTarget> healTargets = new ArrayList<HealTarget>();
healTargets.add(new HealTarget(-100.0D, aimingTarget));

for (Creature target : targets)
{
if (target == null || target.isHealBlocked() || activeChar.getObjectId() != aimingTarget.getObjectId() && target.getObjectId() == activeChar.getObjectId())
continue;

if (target.isMonster() || target.isDoor())
continue;

if (target.isAutoAttackable(activeChar))
continue;

double hpPercent = target.getCurrentHp() / target.getMaxHp();
healTargets.add(new HealTarget(hpPercent, target));
}
[/SRC]
З.Ы. и еще не забудь добавить кондишн в скилл на то, что основной целью скилла не может быть дверь, а то на осадах замков будет неприятный сюрпрайз.
Ответ
#8
Заранее прошу прощения, продублирую тут...

"Спасибо, код работает, при этом хилит дверь.

Еще слабо представляю как и откуда что берется...
ConditionUsingSkill.java это суда надо добавить?
Либо в сам ChainHeal.java?

Хотелось бы самому сделать, но за последние 2 дня я научился только искать target.is и добавлять что бы он не хилил, но target.isCursedWeaponEquipped() работает, а вот На дверь ругается, пишет "isDoor cannot be resolved or is not a field", это если делать как у меня было...

Нашел еще в Heal.java
Heal

В каком из направлений копать?...
Либо что нужно прочесть что бы понять?

Неужели что-то получилось у самого!)))

Оказался верным последний вариант

Либо можно было сделать как-то лучше?

Что является дверью?
PHP код:
<?php 
if(target != activeChar)
- Вместо чара, как я понимаю надо написать что есть дверь?...
Ответ
#9
Rolfer Написал:Заранее прошу прощения, продублирую тут...

"Спасибо, код работает, при этом хилит дверь.

Еще слабо представляю как и откуда что берется...
ConditionUsingSkill.java это суда надо добавить?
Либо в сам ChainHeal.java?

Хотелось бы самому сделать, но за последние 2 дня я научился только искать target.is и добавлять что бы он не хилил, но target.isCursedWeaponEquipped() работает, а вот На дверь ругается, пишет "isDoor cannot be resolved or is not a field", это если делать как у меня было...

Нашел еще в Heal.java
Heal

В каком из направлений копать?...
Либо что нужно прочесть что бы понять?

Неужели что-то получилось у самого!)))

Оказался верным последний вариант

Либо можно было сделать как-то лучше?

Что является дверью?
PHP код:
<?php 
if(target != activeChar)
- Вместо чара, как я понимаю надо написать что есть дверь?...
Можно убрать if(target != activeChar) и зачем два раза target.isDoor() ?
Студия L2dev.su. Сборки Lindvior, Epilogue. ICQ 1817070. Skype wowan.sm
Ответ
#10
Да, это вчера был первый из многих вариантов.
Я думаю это-
PHP код:
<?php 
if(target.isDoor() && target.isDoor())
continue;

Читается так: если хилящая цель является дверью и цель тоже дверь, то нельзя. Ну само собой это не верно, как может дверь сама себя хилить...

В конечном итоге в файле Heal.java оставил такой вариант-

PHP код:
<?php 
if(target != targets)
(
target.isPlayer() && target.isDoor())
continue;

и кажись перестало хилить)
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  L2SkillType.HEAL || L2SkillType.BUFF Raymon212 7 1,824 11-13-2013, 12:08 AM
Последний пост: Archiel
  ХФ Сhain Heal скил - как работает на офе? Munhgauzen 8 1,671 11-06-2013, 01:04 AM
Последний пост: ММЗ

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


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