diff options
author | megamage <none@none> | 2009-07-12 17:43:22 +0800 |
---|---|---|
committer | megamage <none@none> | 2009-07-12 17:43:22 +0800 |
commit | aff3744e1aeecf95d0b824a71b70cbdfa86449ac (patch) | |
tree | c00ad97fa31fa12c71af0d63d864984850252268 | |
parent | d93977db11703d0723061cfb7b8b0004a533a254 (diff) |
[8146] Fixed handling of eventchance for CreatureEventAI. Author: ApoC
Check event chance after timers advances othewise event is
not scheduled to next time period and event chance is again
checked on next AI update.
--HG--
branch : trunk
-rw-r--r-- | src/game/CreatureEventAI.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/game/CreatureEventAI.cpp b/src/game/CreatureEventAI.cpp index c6fa47aaeac..b9b3d5bb488 100644 --- a/src/game/CreatureEventAI.cpp +++ b/src/game/CreatureEventAI.cpp @@ -113,13 +113,6 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& pHolder, Unit* pAction if (pHolder.Event.event_inverse_phase_mask & (1 << Phase)) return false; - //Store random here so that all random actions match up - uint32 rnd = rand(); - - //Return if chance for event is not met - if (pHolder.Event.event_chance <= rnd % 100) - return false; - CreatureEventAI_Event const& event = pHolder.Event; //Check event conditions based on the event type, also reset events @@ -331,6 +324,13 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& pHolder, Unit* pAction if (!(pHolder.Event.event_flags & EFLAG_REPEATABLE)) pHolder.Enabled = false; + //Store random here so that all random actions match up + uint32 rnd = rand(); + + //Return if chance for event is not met + if (pHolder.Event.event_chance <= rnd % 100) + return false; + //Process actions for (uint32 j = 0; j < MAX_ACTIONS; j++) ProcessAction(pHolder.Event.action[j], rnd, pHolder.Event.event_id, pActionInvoker); |