Thread: Stun question
View Single Post
  #2  
Old 08-13-2012, 01:12 AM
Kayen
Developer
 
Join Date: Mar 2009
Location: -
Posts: 228
Default

You are referencing the stun related to BASH which does not have a duration, just interrupts.


This is stun related to spell effects, which does indeed use the effect duration.

Code:
			case SE_Stun:
			{
#ifdef SPELL_EFFECT_SPAM
				snprintf(effect_desc, _EDLEN, "Stun: %d msec", effect_value);
#endif
				//Typically we check for immunities else where but since stun immunities are different and only
				//Block the stun part and not the whole spell, we do it here, also do the message here so we wont get the message on a resist
				int max_level = spell.max[i];
				//max_level of 0 means we assume a default of 55.
				if (max_level == 0)
					max_level = RuleI(Spells, BaseImmunityLevel);
				// NPCs get to ignore max_level for their spells.
                if(SpecAttacks[UNSTUNABLE] || 
					((GetLevel() > max_level) 
					&& caster && (!caster->IsNPC() || (caster->IsNPC() && !RuleB(Spells, NPCIgnoreBaseImmunity)))))
				{
					caster->Message_StringID(MT_SpellFailure, IMMUNE_STUN);
				}
				else
				{
					int stun_resist = itembonuses.StunResist+spellbonuses.StunResist; 
					if(IsClient()) 
						stun_resist += aabonuses.StunResist;

					if(stun_resist <= 0 || MakeRandomInt(0,99) >= stun_resist) 
					{ 
						mlog(COMBAT__HITS, "Stunned. We had %d percent resist chance.", stun_resist);
						Stun(effect_value); 
					}
					else { 
						if(IsClient()) 
							Message_StringID(MT_Stun, SHAKE_OFF_STUN);
							
						mlog(COMBAT__HITS, "Stun Resisted. We had %d percent resist chance.", stun_resist);
					}
				}
				break;
			}
Reply With Quote