diff options
author | Kudlaty <none@none> | 2009-11-13 16:26:01 +0100 |
---|---|---|
committer | Kudlaty <none@none> | 2009-11-13 16:26:01 +0100 |
commit | f04da1b620c3510cb9329d8efdb4efeebd83cf48 (patch) | |
tree | f2e87018e7591d8a02f7a78d4449c9aa2f09987d | |
parent | 18576dab740033c4b096b2482cb4d2e17692fb18 (diff) |
Apply #239
EventAI: New Actions:
*ACTION_T_MOVE_RANDOM_POINT: _param1, determines the range that can be the random point.
*ACTION_T_SET_STAND_STATE: _param1, determines the stand state using the enum UnitStandStateType.
*ACTION_T_SET_PHASE_MASK: _param1, determines the phase mask.
*ACTION_T_SET_VISIBILITY: _param1, determines the visibility state using the enum UnitVisibility.
patch by manuel
--HG--
branch : trunk
-rw-r--r-- | src/game/CreatureEventAI.cpp | 16 | ||||
-rw-r--r-- | src/game/CreatureEventAI.h | 10 | ||||
-rw-r--r-- | src/game/CreatureEventAIMgr.cpp | 4 |
3 files changed, 27 insertions, 3 deletions
diff --git a/src/game/CreatureEventAI.cpp b/src/game/CreatureEventAI.cpp index 444e4981ab1..f50f7e4128b 100644 --- a/src/game/CreatureEventAI.cpp +++ b/src/game/CreatureEventAI.cpp @@ -755,6 +755,22 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 break; // TRINITY ONLY + case ACTION_T_MOVE_RANDOM_POINT: //dosen't work in combat + { + float x,y,z; + me->GetClosePoint(x, y, z, me->GetObjectSize() / 3, action.raw.param1); + me->GetMotionMaster()->MovePoint(0,x,y,z); + break; + } + case ACTION_T_SET_STAND_STATE: + me->SetStandState(UnitStandStateType(action.raw.param1)); + break; + case ACTION_T_SET_PHASE_MASK: + me->SetPhaseMask(action.raw.param1, true); + break; + case ACTION_T_SET_VISIBILITY: + me->SetVisibility(UnitVisibility(action.raw.param1)); + break; case ACTION_T_SET_ACTIVE: me->setActive(action.raw.param1 ? true : false); break; diff --git a/src/game/CreatureEventAI.h b/src/game/CreatureEventAI.h index 7882e7542ec..55ae1e20bf3 100644 --- a/src/game/CreatureEventAI.h +++ b/src/game/CreatureEventAI.h @@ -105,15 +105,19 @@ enum EventAI_ActionType ACTION_T_ZONE_COMBAT_PULSE = 38, // No Params ACTION_T_CALL_FOR_HELP = 39, // Radius ACTION_T_SET_SHEATH = 40, // Sheath (0-passive,1-melee,2-ranged) + ACTION_T_FORCE_DESPAWN = 41, // No Params + ACTION_T_SET_INVINCIBILITY_HP_LEVEL = 42, // MinHpValue, format(0-flat,1-percent from max health) + ACTION_T_SET_PHASE_MASK = 97, + ACTION_T_SET_STAND_STATE = 98, + ACTION_T_MOVE_RANDOM_POINT = 99, + ACTION_T_SET_VISIBILITY = 100, ACTION_T_SET_ACTIVE = 101, //Apply ACTION_T_SET_AGGRESSIVE = 102, //Apply ACTION_T_ATTACK_START_PULSE = 103, //Distance ACTION_T_SUMMON_GO = 104, //GameObjectID, DespawnTime in ms - ACTION_T_FORCE_DESPAWN = 41, // No Params - ACTION_T_END = 105, - ACTION_T_SET_INVINCIBILITY_HP_LEVEL = 42, // MinHpValue, format(0-flat,1-percent from max health) + ACTION_T_END = 105, }; enum Target diff --git a/src/game/CreatureEventAIMgr.cpp b/src/game/CreatureEventAIMgr.cpp index 79a17ed9c8d..462a284a17d 100644 --- a/src/game/CreatureEventAIMgr.cpp +++ b/src/game/CreatureEventAIMgr.cpp @@ -689,6 +689,10 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Scripts() sLog.outErrorDb("CreatureEventAI: Event %u Action %u currently unused ACTION type. Did you forget to update database?", i, j+1); break; + case ACTION_T_MOVE_RANDOM_POINT: + case ACTION_T_SET_STAND_STATE: + case ACTION_T_SET_PHASE_MASK: + case ACTION_T_SET_VISIBILITY: case ACTION_T_SET_ACTIVE: case ACTION_T_SET_AGGRESSIVE: case ACTION_T_ATTACK_START_PULSE: |