--HG--
branch : trunk
This commit is contained in:
megamage
2009-04-17 15:29:55 -05:00
12 changed files with 91 additions and 47 deletions
+1
View File
@@ -122,6 +122,7 @@ Params are always read from Param1, then Param2, then Param3.
36 ACTION_T_UPDATE_TEMPLATE TemplateId, Team Changes the creature to a new creature template of (param1) with team = Alliance if (param2) = false or Horde if (param2) = true
37 ACTION_T_DIE No Params Kills the creature
38 ACTION_T_ZONE_COMBAT_PULSE No Params Places all players within the instance into combat with the creature. Only works in combat and only works inside of instances.
39 ACTION_T_SUMMON_GO GameObjectID, DespawnTime Summons object (param1). Despawns after param2. Spawns on top of current creature. DespawnTime is in ms.
* = Use -1 to specify that if this param is picked to do nothing. Random is constant between actions within an event. So if you have a random Yell and a random Sound they will match up (ex: param2 with param2)
@@ -1 +1,15 @@
#include "precompiled.h"
case ACTION_T_SUMMON_GO:
{
GameObject* pObject = NULL;
float x,y,z;
m_creature->GetPosition(x,y,z);
pObject = m_creature->SummonGameObject(param1, x, y, z, 0, 0, 0, 0, 0, param2);
if (!pObject)
{
if (EAI_ErrorLevel > 0)
error_db_log( "SD2: EventAI failed to spawn object %u. Spawn event %d is on creature %d", param1, EventId, m_creature->GetEntry());
}
}
break;
@@ -1,4 +1,5 @@
#ifndef SC_EVENTAI_H
#define SC_EVENTAI_H
ACTION_T_SUMMON_GO = 39, //GameObjectID, DespawnTime in ms
#endif
@@ -112,6 +112,7 @@ struct TRINITY_DLL_DECL boss_priestess_delrissaAI : public ScriptedAI
uint32 ShieldTimer;
uint32 SWPainTimer;
uint32 DispelTimer;
uint32 ResetTimer;
uint32 CombatPulseTimer; // Periodically puts all players in the instance in combat
@@ -127,6 +128,7 @@ struct TRINITY_DLL_DECL boss_priestess_delrissaAI : public ScriptedAI
ShieldTimer = 2000;
SWPainTimer = 5000;
DispelTimer = 7500;
ResetTimer = 5000;
CombatPulseTimer = 5000;
@@ -246,6 +248,18 @@ struct TRINITY_DLL_DECL boss_priestess_delrissaAI : public ScriptedAI
if (!UpdateVictim())
return;
if(ResetTimer < diff)
{
float x, y, z, o;
m_creature->GetHomePosition(x, y, z, o);
if(m_creature->GetPositionZ() >= z+10)
{
EnterEvadeMode();
return;
}
ResetTimer = 5000;
}else ResetTimer -= diff;
if (HealTimer < diff)
{
uint32 health = m_creature->GetHealth();
@@ -217,6 +217,7 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI
uint32 SiphonSoul_Timer;
uint32 PlayerAbility_Timer;
uint32 CheckAddState_Timer;
uint32 ResetTimer;
uint32 PlayerClass;
@@ -232,6 +233,7 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI
SiphonSoul_Timer = 100000;
PlayerAbility_Timer = 99999;
CheckAddState_Timer = 5000;
ResetTimer = 5000;
SpawnAdds();
@@ -332,6 +334,16 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI
if(!UpdateVictim() )
return;
if(ResetTimer < diff)
{
if(m_creature->GetDistance(119.223,1035.45,29.4481) <= 10)
{
EnterEvadeMode();
return;
}
ResetTimer = 5000;
}else ResetTimer -= diff;
if(CheckAddState_Timer < diff)
{
for(uint8 i = 0; i < 4; ++i)
@@ -419,10 +419,13 @@ struct TRINITY_DLL_DECL boss_janalaiAI : public ScriptedAI
if(ResetTimer < diff)
{
/*float x, y, z;
m_creature->GetPosition(x, y, z);
if(x < -70 || x > 0 || y > 1176 || y < 1121 || z < 18)
EnterEvadeMode();*/
float x, y, z, o;
m_creature->GetHomePosition(x, y, z, o);
if(m_creature->GetPositionZ() <= z-7)
{
EnterEvadeMode();
return;
}
ResetTimer = 5000;
}else ResetTimer -= diff;