Thread: Slay Undead Fix
View Single Post
  #1  
Old 10-18-2008, 02:13 AM
seveianrex
Sarnak
 
Join Date: Sep 2008
Location: asdf
Posts: 60
Default Slay Undead Fix

{attack.cpp}

~2631, right after the definition of Mob::TryCriticalHit, add:

Code:
	bool slayUndeadCrit = false;
A few lines down, find the following:

Code:
	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:

Code:
		slayUndeadCrit = true;
Then, a few more lines down find the following:

Code:
	if(critChance > 0){
		if(MakeRandomFloat(0, 1) <= critChance)
		{
And add immediately below:

Code:
			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;
			}
Reply With Quote