Сообщений: 1,058
Тем: 129
Зарегистрирован: May 2009
Репутация:
11,626
Доброго времени суток.
Данную тему я создал, дабы не плодить темы со своими тупыми вопросами.
Мне предстоит сложный путь, создание всех классов с нуля.
Сейчас веду работу над способностью "Спрятаться" и уже столкнулся с проблемой.
* Спрятаться - Воровское ремесло - которое позволяет слиться с окружающей средой на 30/60/90 секунд. Эффект спадает если вы двигаетесь, атакуете, применяете способности/магию. Откат: 30 секунд.
За основу, я взял понятное дело простой инвиз, в который (как я думаю) необходимо только добавить нужные мне условия. Все условия, которые нужны мне, необходимо дописать в onActionTime, я надеюсь что это именно так.
код
Код: public boolean onActionTime()
{
if (getEffector() instanceof L2PcInstance)
{
L2PcInstance activeChar = ((L2PcInstance) getEffector());
if (activeChar.isDead())
{
activeChar.getAppearance().setVisible();
activeChar.stopAbnormalEffect(AbnormalEffect.STEALTH);
}
else if (activeChar.isRunning())
{
activeChar.getAppearance().setVisible();
activeChar.stopAbnormalEffect(AbnormalEffect.STEALTH);
}
}
return false;
}
По какой причине второе условие игнорируется?
Спасибо.
P.S. Я знаю, что руки у меня кривые, но все же, хотелось бы узнать в чем я допустил ошибку...
Сообщений: 2,036
Тем: 37
Зарегистрирован: Jun 2011
Репутация:
10,597
Если выполняемый код после условия совпадает, то проще сделать if (activeChar.isDead() || activeChar.isRunning()). Имхо.
Сообщений: 1,058
Тем: 129
Зарегистрирован: May 2009
Репутация:
11,626
Dеmon Написал:Если выполняемый код после условия совпадает, то проще сделать if (activeChar.isDead() || activeChar.isRunning()). Имхо.
Совпадает, сейчас попробуемс.
Итог: персонаж все равно, при беге не выходит из данного эффекта, я все перепробывал...
Сообщений: 2,036
Тем: 37
Зарегистрирован: Jun 2011
Репутация:
10,597
finfan Написал:Совпадает, сейчас попробуемс.
Итог: персонаж все равно, при беге не выходит из данного эффекта, я все перепробывал...
Это не должно было помочь, это был просто совет на будущее.
Сообщений: 1,058
Тем: 129
Зарегистрирован: May 2009
Репутация:
11,626
Dеmon Написал:Это не должно было помочь, это был просто совет на будущее. ![Smile Smile](https://forum.zone-game.info/images/smilies/smile.png)
И за совет спасибо и за преподанный урок)
Сообщений: 5,863
Тем: 105
Зарегистрирован: Sep 2010
Репутация:
13,014
Цитата:activeChar.isRunning()
Посмотри работает ли это вообще.
Сообщений: 1,484
Тем: 12
Зарегистрирован: Mar 2010
Репутация:
2,994
11-25-2012, 02:19 AM
(Сообщение последний раз редактировалось: 11-25-2012, 02:52 AM Visor.)
public boolean onActionTime()
в эффекте выполняется, если у вас баф с тиками время/кол-во, а когда 1 время и 1 кол-во то выполняется только 1 раз.
Самый простой путь - прицепить в начале эффекта таск и в нем по интервалу проверять состояние.
Сообщений: 1,058
Тем: 129
Зарегистрирован: May 2009
Репутация:
11,626
Visor Написал:public boolean onActionTime()
в эффекте выполняется, если у вас баф с тиками время/кол-во, а когда 1 время и 1 кол-во то выполняется только 1 раз.
>.<! Как тогда быть? В голове каша...
Сообщений: 1,484
Тем: 12
Зарегистрирован: Mar 2010
Репутация:
2,994
Я там дописал в посте, как раз когда у вас вопрос возник как быть.
Есть и второй путь ... но он сложный - это через АИ чара - где собрать действия playable вход через точку, и там анализаровать что происходит.
Можно еще на конкретные события чара повесить.
Как видите варианты есть. Чтобы не забивать голову - проще всего 1 вариант в пред посте.
Сообщений: 1,058
Тем: 129
Зарегистрирован: May 2009
Репутация:
11,626
Zubastic Написал:Посмотри работает ли это вообще.
работает, только везде где есть count'ы... поэтому я и работал на фрозенах методы были void а не були, мне было проще понять аналоги )
Visor Написал:Я там дописал в посте, как раз когда у вас вопрос возник как быть.
Есть и второй путь ... но он сложный - это через АИ чара - где собрать действия playable вход через точку, и там анализаровать что происходит.
Можно еще на конкретные события чара повесить.
Как видите варианты есть. Чтобы не забивать голову - проще всего 1 вариант в пред посте.
Знаете, больше всего, я боялся что в работе с исходным кодом, мне попадётся то, с чем я никогда не работал, к чему никогда не "прибегал", и сейчас - тот случай. Наверное поэтому я и выбрал в одно время фрозенов, так было легче... время прошло и структуру сервера я более-менее научился понимать незная явы вообще, я создавал разные типы способностей по аналогам изменяя в них то что мне нужно. В ядре я никогда не понимал что за task и string-и меня окружают, меньше всего я надеялся работать с этими двумя факторами, панический страх стал развиваться как у школьника.
Могу я попросить у вас пример с task-ами? Если разберусь с одним, думаю что и другие осилю... Если нет, то я пойму, продолжу дробить свой мозг до потери пульса.
Спасибо.
|