- if (pAttacker)
- {
- // ũ��Ƽ��
- int iCriticalPct = pAttacker->GetPoint(POINT_CRITICAL_PCT);
- if (!IsPC())
- iCriticalPct += pAttacker->GetMarriageBonus(UNIQUE_ITEM_MARRIAGE_CRITICAL_BONUS);
- if (iCriticalPct)
- {
- if (iCriticalPct >= 10) // 10���� ũ�� 5% + (4���� 1%�� ��), ��� ��ġ�� 50�̸� 20%
- iCriticalPct = 5 + (iCriticalPct - 10) / 4;
- else // 10���� ����� �ܼ��� ����� ���, 10 = 5%
- iCriticalPct /= 2;
- //ũ��Ƽ�� ���� �� ���.
- iCriticalPct -= GetPoint(POINT_RESIST_CRITICAL);
- if (number(1, 100) <= iCriticalPct)
- {
- IsCritical = true;
- dam *= 2;
- EffectPacket(SE_CRITICAL);
- if (IsAffectFlag(AFF_MANASHIELD))
- {
- RemoveAffect(AFF_MANASHIELD);
- }
- }
- }