Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
EffectSymbol
#1
Здравствуйте.

К сожалению, возникли трудности по коду, не могу найти нужный код=))
Сборка l2p epilogue

Скил Day of Doom: кидаем купол, кто находится под ним получают отрицательный эффект, если во время действия купола я выхожу из под него, то отрицательный эффект пропадает.

Вопрос: в какой класс нужно смотреть, что бы при выходе из под купола отрицательный не проподал?

Спасибо.

Если что-то даст, то вот код EffectSymbol
EffectSymbol.java

xml скилов
Ответ
#2
[src=java]
// Использовать разрешено только скиллы типа TARGET_ONE
for(L2Character cha : L2World.getAroundCharacters(symbol, getSkill().getSkillRadius(), 200))
if(cha.getEffectList().getEffectsBySkill(skill) == null && skill.checkTarget(effector, cha, cha, false, false) == null)
{
if(skill.isOffensive() && !GeoEngine.canSeeTarget(symbol, cha, false))
continue;
GArray<L2Character> targets = new GArray<L2Character>(1);
targets.add(cha);
effector.callSkill(skill, targets, false);
effector.broadcastPacket(new MagicSkillLaunched(_symbol.getObjectId(), getSkill().getDisplayId(), getSkill().getDisplayLevel(), cha, true));
cha.getAI().notifyEvent(CtrlEvent.EVT_ATTACKED, effector, 1);
}
return true;
[/src]
Fortuna - non penis, in manus non recipe.
Ответ
#3
Ясно спасибо. А что из них отвечает выход за радиус:
это - skill.checkTarget(effector, cha, cha, false, false) == null

или это - !GeoEngine.canSeeTarget(symbol, cha, false)

А то документации нету, нехрена не понятно.... =(
Ответ
#4
Virt Написал:Ясно спасибо. А что из них отвечает выход за радиус:
это - skill.checkTarget(effector, cha, cha, false, false) == null

или это - !GeoEngine.canSeeTarget(symbol, cha, false)

А то документации нету, нехрена не понятно.... =(

Я бы Вам посоветовал взять свои исходники, загнать в IDE и разобрать все проверки и методы цикла for, который я Вам указал.

P.S. Первая проверка - проверка цели на некоторые исключительные случаи и вывод соответствующего сообщения. Вторая проверка - проверка на видимость цели.
Fortuna - non penis, in manus non recipe.
Ответ
#5
Ой, что-то я растерялся совсем из-за: getSkill().getSkillRadius() в L2World.getAroundCharacters(). Не посмотрел реализацию метода. Всё ясно, что отвечает за радиус=)

Еще раз спасибо=)

Добавлено через 1 час 14 минут
К сожалению, ситуация такова, public boolean onActionTime() отвечает только за баф в радиусе.
А за пределами радиуса, в независимости от того какой тут радиус установлен L2World.getAroundCharacters(symbol, getSkill().getSkillRadius()+2000000, 200), дебаф спадает если выходишь за радиуса купола и при этом копол уже исчез (т.к. дебаф идет 2 минуты), а купол держится 7 секунд.

Добавлено через 2 часа 9 минут
Внутри этого радиуса, дебафф не слетает при условии, что купол уже закончил своё дейтсвие.
Код:
_territory = new L2RoundTerritoryWithSkill(_effected.getObjectId(), loc.x, loc.y, _skill.getSkillRadius(), loc.z - 200, loc.z + 200, _effector, skill);
        L2World.addTerritory(_territory);
Поясню.
Купол закончил своё действие, а де бафф продолжается еще действовать 2 минуты.
Пока на мне висит дебаф, я выхожу из круга и дебаф слетает. Заходим опять в круг дебафф появляется.
Ответ
#6
Virt, переделайте механизм. Измените время наложения дебафа на 2 минуты и проверку на то, находится ли цель в куполе.
Ответ
#7
Проще с оверов скамуниздить реализацию, если с знаниями явы все так плохо Smile
Ответ
#8
kingzor Написал:Проще с оверов скамуниздить реализацию, если с знаниями явы все так плохо Smile
К сожалению, нету документации по ядру сервера и этим усложняется весь процесс работы. Дело тут не в знаниях java

Добавлено через 2 минуты
Zubastic Написал:Virt, переделайте механизм. Измените время наложения дебафа на 2 минуты и проверку на то, находится ли цель в куполе.
Спасибо. Эх, придется пределывать под себя. Долговато это будет, пока поймешь где-что найдится.
Ответ
#9
Virt Написал:Долговато это будет...

оффтоп
Ответ
#10
Virt Написал:К сожалению, нету документации по ядру сервера и этим усложняется весь процесс работы. Дело тут не в знаниях java
Вы словно собираетесь шатлом управлять. Зачем вам документация? Есть МНТ, его вполне хватает Wink
Ответ


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


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