View Single Post
  #3  
Old 12-31-2007, 10:16 PM
Knightly
Accomplished Programmer
 
Join Date: Nov 2006
Location: Honolulu, HI
Posts: 91
Default

Awesome. I just started playing around with an Ogre today and noticed this needed to be fixed. You saved me a lot of time.

One thing I did differently though is to make the Ogre check first. Six of one, half dozen of the other though.
Code:
    	//check stun chances if bashing
	if (skill_used == BASH && GetLevel() < 56) {
		int stun_resist = itembonuses.StunResist+spellbonuses.StunResist;
		if(this->GetBaseRace() == OGRE && this->IsClient() && !attacker->BehindMob(this, attacker->GetX(), attacker->GetY())) {
			mlog(COMBAT__HITS, "Stun Resisted. Ogres are immune to frontal melee stuns.");
		} else {
			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.");
			}
		}
	}
Reply With Quote