seveianrex
10-18-2008, 02:13 AM
{attack.cpp}
~2631, right after the definition of Mob::TryCriticalHit, add:
bool slayUndeadCrit = false;
A few lines down, find the following:
if(defender && defender->GetBodyType() == BT_Undead || defender->GetBodyType() == BT_SummonedUndead || defender->GetBodyType() == BT_Vampire){
switch(GetAA(aaSlayUndead)){
case 1:
critMod += 33;
break;
case 2:
critMod += 66;
break;
case 3:
critMod += 100;
break;
}
}
And add the following immediately after the switch close bracket:
slayUndeadCrit = true;
Then, a few more lines down find the following:
if(critChance > 0){
if(MakeRandomFloat(0, 1) <= critChance)
{
And add immediately below:
if (slayUndeadCrit)
{
damage = (damage * (critMod * 1.65)) / 100;
entity_list.MessageClose(this, false, 200, MT_CritMelee, "%s cleanses %s target!(%d)", GetCleanName(), this->GetGender() == 0 ? "his" : "her", damage);
return;
}
~2631, right after the definition of Mob::TryCriticalHit, add:
bool slayUndeadCrit = false;
A few lines down, find the following:
if(defender && defender->GetBodyType() == BT_Undead || defender->GetBodyType() == BT_SummonedUndead || defender->GetBodyType() == BT_Vampire){
switch(GetAA(aaSlayUndead)){
case 1:
critMod += 33;
break;
case 2:
critMod += 66;
break;
case 3:
critMod += 100;
break;
}
}
And add the following immediately after the switch close bracket:
slayUndeadCrit = true;
Then, a few more lines down find the following:
if(critChance > 0){
if(MakeRandomFloat(0, 1) <= critChance)
{
And add immediately below:
if (slayUndeadCrit)
{
damage = (damage * (critMod * 1.65)) / 100;
entity_list.MessageClose(this, false, 200, MT_CritMelee, "%s cleanses %s target!(%d)", GetCleanName(), this->GetGender() == 0 ? "his" : "her", damage);
return;
}