1. В самом описании xml-скила правим ноду:
Код:
<for>
<effect name="Debuff" abnormalTime="300" val="0" abnormalLvl="3" abnormalType="limit">
<mul order="0x30" stat="maxRecoverableHp" val="0.3" />
<mul order="0x30" stat="maxRecoverableMp" val="0.3" />
<mul order="0x30" stat="maxRecoverableCp" val="0.3" />
</effect>
</for>
Так же добавляем эти статы и их обработчики в ядре (тупо поиском по текущим сорцам лыжи copy-paste)
2. В эффект-хендлере SignetNoise есть (должно быть) условие canAttackCharacter(target). Проверяем, чтобы в L2PcInstance в этом методе было следующее:
Код:
if (isInDuel() && target.isInDuel() && (target.getDuelId() == getDuelId()))
{
return true;
}
else if (isInParty() && target.isInParty())
{
if (getParty() == target.getParty())
{
return false;
}
if ((getParty().getCommandChannel() != null || target.getParty().getCommandChannel() != null)
&& (getParty().getCommandChannel() == target.getParty().getCommandChannel()))
{
return false;
}
}
else if (getClan() != null && target.getClan() != null)
{
if (getClanId() == target.getClanId())
{
return false;
}
if ((getAllyId() > 0 || target.getAllyId() > 0) && (getAllyId() == target.getAllyId()))
{
return false;
}
if (getClan().isAtWarWith(target.getClan().getClanId())
&& target.getClan().isAtWarWith(getClan().getClanId()))
{
return true;
}
}
3. Смотрим пункт 2, а в частности:
Код:
if (isInDuel() && target.isInDuel() && (target.getDuelId() == getDuelId()))
{
return true;
}