06-19-2011, 03:53 PM
Такой вопрос. Кто может скинуть кусок скрипта метода protected void addEffectFromQueue(L2Effect newEffect)
У меня такая прабла. Если скил стакающийся(стак ордер != null) и я его перебиваю другим скилом. То через некоторое время (когда 1ый скил который был, заканчивается) выскакивает табличка что скил закончился. Мне надо это убрать...
Код:
*L2Effect*
--------------------------------------
protected void addEffectFromQueue(L2Effect newEffect)
{
if (newEffect == null) return;
L2Skill newSkill = newEffect.getSkill();
if (newSkill.isDebuff())
{
if (_debuffs == null) _debuffs = new FastList<L2Effect>().shared();
for (L2Effect e : _debuffs)
{
if (e != null
&& e.getSkill().getId() == newEffect.getSkill().getId()
&& e.getEffectType() == newEffect.getEffectType()
&& e.getStackOrder() == newEffect.getStackOrder()
&& e.getStackType().equals(newEffect.getStackType()))
{
// Started scheduled timer needs to be canceled.
newEffect.exit(true);
return;
}
}
_debuffs.addLast(newEffect);
}
else
{
if (_buffs == null) _buffs = new FastList<L2Effect>().shared();
for (L2Effect e : _buffs)
{
if (e != null
&& e.getSkill().getId() == newEffect.getSkill().getId()
&& e.getEffectType() == newEffect.getEffectType()
&& e.getStackOrder() == newEffect.getStackOrder()
&& e.getStackType().equals(newEffect.getStackType()))
{
e.exit(true);
}
}
// if max buffs, no herb effects are used, even if they would replace one old
if (newEffect.isHerbEffect() && getBuffCount() >= _owner.getMaxBuffCount())
{
newEffect.stopEffectTask();
return;
}
// Remove first buff when buff list is full
if (!doesStack(newSkill) && !newSkill.is7Signs())
{
int effectsToRemove;
if (newSkill.isDance())
{
effectsToRemove = getDanceCount() - Config.DANCES_MAX_AMOUNT;
if (effectsToRemove >= 0)
{
for (L2Effect e : _buffs)
{
if (e == null || !e.getSkill().isDance())
continue;
// get first dance
e.exit(true);
effectsToRemove--;
if (effectsToRemove < 0)
break;
}
}
}
else
{
effectsToRemove = getBuffCount() - _owner.getMaxBuffCount();
if (effectsToRemove >= 0)
{
switch (newSkill.getSkillType())
{
case BUFF:
case REFLECT:
case HEAL_PERCENT:
case MANAHEAL_PERCENT:
for (L2Effect e : _buffs)
{
if (e == null || e.getSkill().isDance())
continue;
switch (e.getSkill().getSkillType())
{
case BUFF:
case REFLECT:
case HEAL_PERCENT:
case MANAHEAL_PERCENT:
e.exit(true);
effectsToRemove--;
break; // break switch()
default:
continue; // continue for()
}
if (effectsToRemove < 0)
break; // break for()
}
}
}
}
}
У меня такая прабла. Если скил стакающийся(стак ордер != null) и я его перебиваю другим скилом. То через некоторое время (когда 1ый скил который был, заканчивается) выскакивает табличка что скил закончился. Мне надо это убрать...