aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKudlaty <none@none>2009-11-13 16:26:01 +0100
committerKudlaty <none@none>2009-11-13 16:26:01 +0100
commitf04da1b620c3510cb9329d8efdb4efeebd83cf48 (patch)
treef2e87018e7591d8a02f7a78d4449c9aa2f09987d
parent18576dab740033c4b096b2482cb4d2e17692fb18 (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.cpp16
-rw-r--r--src/game/CreatureEventAI.h10
-rw-r--r--src/game/CreatureEventAIMgr.cpp4
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: