TheLieka
12-10-2007, 05:35 AM
Ogres are immune to stuns from frontal melee damage, such as bash.
in .\zone\attack.cpp change:
//check stun chances if bashing
if (skill_used == BASH && GetLevel() < 56) {
int stun_resist = itembonuses.StunResist+spellbonuses.StunResist;
if(stun_resist <= 0 || MakeRandomInt(0,99) >= stun_resist) {
mlog(COMBAT__HITS, "Stunned. We had %dpercent resist chance.");
Stun(0);
} else {
mlog(COMBAT__HITS, "Stun Resisted. We had %dpercent resist chance.");
}
}
if(spell_id != SPELL_UNKNOWN) {
//see if root will break
if (IsRooted()) { // neotoyko: only spells cancel root
if(GetAA(aaEnhancedRoot))
{
if (MakeRandomInt(0, 99) < 10) {
mlog(COMBAT__HITS, "Spell broke root! 10percent chance");
BuffFadeByEffect(SE_Root, buffslot); // buff slot is passed through so a root w/ dam doesnt cancel itself
} else {
mlog(COMBAT__HITS, "Spell did not break root. 10 percent chance");
}
}
else
{
if (MakeRandomInt(0, 99) < 20) {
mlog(COMBAT__HITS, "Spell broke root! 20percent chance");
BuffFadeByEffect(SE_Root, buffslot); // buff slot is passed through so a root w/ dam doesnt cancel itself
} else {
mlog(COMBAT__HITS, "Spell did not break root. 20 percent chance");
}
}
}
}
else{
//increment chances of interrupting
if(IsCasting()) { //shouldnt interrupt on regular spell damage
attacked_count++;
mlog(COMBAT__HITS, "Melee attack while casting. Attack count %d", attacked_count);
}
}
to
//check stun chances if bashing
//Lieka Edit: Making Ogres immune to frontal stun damage
if (skill_used == BASH && GetLevel() < 56) {
int stun_resist = itembonuses.StunResist+spellbonuses.StunResist;
if((stun_resist <= 0 || MakeRandomInt(0,99) >= stun_resist) && ((this->GetBaseRace() != OGRE) || attacker->BehindMob(this, attacker->GetX(), attacker->GetY()))) {
mlog(COMBAT__HITS, "Stunned. We had %dpercent resist chance.");
Stun(0);
} else if (this->GetBaseRace() == OGRE && this->IsClient() && !attacker->BehindMob(this, attacker->GetX(), attacker->GetY())) {
//Message(15,"Ogres are immune to frontal melee stuns."); //Lieka Edit: Debug message
mlog(COMBAT__HITS, "Stun Resisted. Ogres are immune to frontal melee stuns.");
} else {
mlog(COMBAT__HITS, "Stun Resisted. We had %dpercent resist chance.");
}
}
if(spell_id != SPELL_UNKNOWN) {
//see if root will break
if (IsRooted()) { // neotoyko: only spells cancel root
if(GetAA(aaEnhancedRoot))
{
if (MakeRandomInt(0, 99) < 10) {
mlog(COMBAT__HITS, "Spell broke root! 10percent chance");
BuffFadeByEffect(SE_Root, buffslot); // buff slot is passed through so a root w/ dam doesnt cancel itself
} else {
mlog(COMBAT__HITS, "Spell did not break root. 10 percent chance");
}
}
else
{
if (MakeRandomInt(0, 99) < 20) {
mlog(COMBAT__HITS, "Spell broke root! 20percent chance");
BuffFadeByEffect(SE_Root, buffslot); // buff slot is passed through so a root w/ dam doesnt cancel itself
} else {
mlog(COMBAT__HITS, "Spell did not break root. 20 percent chance");
}
}
}
}
else{
//increment chances of interrupting
if(IsCasting()) { //shouldnt interrupt on regular spell damage
attacked_count++;
mlog(COMBAT__HITS, "Melee attack while casting. Attack count %d", attacked_count);
}
}
in .\zone\attack.cpp change:
//check stun chances if bashing
if (skill_used == BASH && GetLevel() < 56) {
int stun_resist = itembonuses.StunResist+spellbonuses.StunResist;
if(stun_resist <= 0 || MakeRandomInt(0,99) >= stun_resist) {
mlog(COMBAT__HITS, "Stunned. We had %dpercent resist chance.");
Stun(0);
} else {
mlog(COMBAT__HITS, "Stun Resisted. We had %dpercent resist chance.");
}
}
if(spell_id != SPELL_UNKNOWN) {
//see if root will break
if (IsRooted()) { // neotoyko: only spells cancel root
if(GetAA(aaEnhancedRoot))
{
if (MakeRandomInt(0, 99) < 10) {
mlog(COMBAT__HITS, "Spell broke root! 10percent chance");
BuffFadeByEffect(SE_Root, buffslot); // buff slot is passed through so a root w/ dam doesnt cancel itself
} else {
mlog(COMBAT__HITS, "Spell did not break root. 10 percent chance");
}
}
else
{
if (MakeRandomInt(0, 99) < 20) {
mlog(COMBAT__HITS, "Spell broke root! 20percent chance");
BuffFadeByEffect(SE_Root, buffslot); // buff slot is passed through so a root w/ dam doesnt cancel itself
} else {
mlog(COMBAT__HITS, "Spell did not break root. 20 percent chance");
}
}
}
}
else{
//increment chances of interrupting
if(IsCasting()) { //shouldnt interrupt on regular spell damage
attacked_count++;
mlog(COMBAT__HITS, "Melee attack while casting. Attack count %d", attacked_count);
}
}
to
//check stun chances if bashing
//Lieka Edit: Making Ogres immune to frontal stun damage
if (skill_used == BASH && GetLevel() < 56) {
int stun_resist = itembonuses.StunResist+spellbonuses.StunResist;
if((stun_resist <= 0 || MakeRandomInt(0,99) >= stun_resist) && ((this->GetBaseRace() != OGRE) || attacker->BehindMob(this, attacker->GetX(), attacker->GetY()))) {
mlog(COMBAT__HITS, "Stunned. We had %dpercent resist chance.");
Stun(0);
} else if (this->GetBaseRace() == OGRE && this->IsClient() && !attacker->BehindMob(this, attacker->GetX(), attacker->GetY())) {
//Message(15,"Ogres are immune to frontal melee stuns."); //Lieka Edit: Debug message
mlog(COMBAT__HITS, "Stun Resisted. Ogres are immune to frontal melee stuns.");
} else {
mlog(COMBAT__HITS, "Stun Resisted. We had %dpercent resist chance.");
}
}
if(spell_id != SPELL_UNKNOWN) {
//see if root will break
if (IsRooted()) { // neotoyko: only spells cancel root
if(GetAA(aaEnhancedRoot))
{
if (MakeRandomInt(0, 99) < 10) {
mlog(COMBAT__HITS, "Spell broke root! 10percent chance");
BuffFadeByEffect(SE_Root, buffslot); // buff slot is passed through so a root w/ dam doesnt cancel itself
} else {
mlog(COMBAT__HITS, "Spell did not break root. 10 percent chance");
}
}
else
{
if (MakeRandomInt(0, 99) < 20) {
mlog(COMBAT__HITS, "Spell broke root! 20percent chance");
BuffFadeByEffect(SE_Root, buffslot); // buff slot is passed through so a root w/ dam doesnt cancel itself
} else {
mlog(COMBAT__HITS, "Spell did not break root. 20 percent chance");
}
}
}
}
else{
//increment chances of interrupting
if(IsCasting()) { //shouldnt interrupt on regular spell damage
attacked_count++;
mlog(COMBAT__HITS, "Melee attack while casting. Attack count %d", attacked_count);
}
}