1. if (pAttacker)
  2. {
  3. // ũ��Ƽ��
  4. int iCriticalPct = pAttacker->GetPoint(POINT_CRITICAL_PCT);
  5. if (!IsPC())
  6. iCriticalPct += pAttacker->GetMarriageBonus(UNIQUE_ITEM_MARRIAGE_CRITICAL_BONUS);
  7. if (iCriticalPct)
  8. {
  9. if (iCriticalPct >= 10) // 10���� ũ�� 5% + (4���� 1%�� ��), ��� ��ġ�� 50�̸� 20%
  10. iCriticalPct = 5 + (iCriticalPct - 10) / 4;
  11. else // 10���� ����� �ܼ��� ����� ���, 10 = 5%
  12. iCriticalPct /= 2;
  13. //ũ��Ƽ�� ���� �� ���.
  14. iCriticalPct -= GetPoint(POINT_RESIST_CRITICAL);
  15. if (number(1, 100) <= iCriticalPct)
  16. {
  17. IsCritical = true;
  18. dam *= 2;
  19. EffectPacket(SE_CRITICAL);
  20. if (IsAffectFlag(AFF_MANASHIELD))
  21. {
  22. RemoveAffect(AFF_MANASHIELD);
  23. }
  24. }
  25. }