Пытаюсь реализировать функцию, которая будет снимать "стан-станом"...иными словами, если на игроке висит стан, то при повторном юзе скила на него типажа L2Effect.EffectType.STUN и удачном прохождении старый стан будет сбиватся. делал по аналогии с автоатакой (мулька что при автоатаке есть рандом шанс сбивания стана) вот код методов:
метод прекращения эффекта. L2Character.java
public final void stopStunning(L2Effect effect)
{
if(!isStunned())
return;
if(effect == null)
{
stopEffects(L2Effect.EffectType.STUN);
}
else
{
removeEffect(effect);
}
setIsStunned(false);
getAI().notifyEvent(CtrlEvent.EVT_THINK, null);
updateAbnormalEffect();
}
метод запуска эффекта (красным что добавил) L2Character.java
public final void startStunning()
{
if (isStunned())
{
[color=#ff0000]stopStunning(null);[/color]
return;
}
setIsStunned(true);
/* Aborts any attacks/casts if stunned */
abortAttack();
abortCast();
getAI().stopFollow(); // Like L2OFF char stop to follow if sticked to another one
stopMove(null);
getAI().notifyEvent(CtrlEvent.EVT_STUNNED, null);
updateAbnormalEffect();
}
откуда брал пример (пример с автоатакой) CharStatus.java
if(getActiveChar().isStunned() && Rnd.get(10) == 0)
{
getActiveChar().stopStunning(null);
}
вообщем беда в том, что эффект убирается...тоесть работает все отлично, ноесть одно НО, а именно, что иконка эффекта остается в баффаъ\дебафах не знаю что делать...догадуюсь, что вообще не в тех классах и методах копаю, может кто подскажет ?