Fixed exploit with summoning Epoch Hunter more than once.

--HG--
branch : trunk
This commit is contained in:
raczman
2009-03-27 10:59:53 +01:00
parent 52a5c5e8e3
commit 45350f5f52
3 changed files with 11 additions and 1 deletions
@@ -13,6 +13,7 @@
#define TYPE_THRALL_PART4 6 #define TYPE_THRALL_PART4 6
#define DATA_THRALL 7 #define DATA_THRALL 7
#define DATA_TARETHA 8 #define DATA_TARETHA 8
#define DATA_EPOCH 9
#define WORLD_STATE_OH 2436 #define WORLD_STATE_OH 2436
#endif #endif
@@ -28,6 +28,7 @@ EndScriptData */
#define THRALL_ENTRY 17876 #define THRALL_ENTRY 17876
#define TARETHA_ENTRY 18887 #define TARETHA_ENTRY 18887
#define EPOCH_ENTRY 18096
#define DRAKE_ENTRY 17848 #define DRAKE_ENTRY 17848
@@ -44,6 +45,7 @@ struct TRINITY_DLL_DECL instance_old_hillsbrad : public ScriptedInstance
uint64 ThrallGUID; uint64 ThrallGUID;
uint64 TarethaGUID; uint64 TarethaGUID;
uint64 EpochGUID;
void Initialize() void Initialize()
{ {
@@ -51,6 +53,7 @@ struct TRINITY_DLL_DECL instance_old_hillsbrad : public ScriptedInstance
mThrallEventCount = 0; mThrallEventCount = 0;
ThrallGUID = 0; ThrallGUID = 0;
TarethaGUID = 0; TarethaGUID = 0;
EpochGUID = 0;
for(uint8 i = 0; i < ENCOUNTERS; i++) for(uint8 i = 0; i < ENCOUNTERS; i++)
Encounter[i] = NOT_STARTED; Encounter[i] = NOT_STARTED;
@@ -103,6 +106,9 @@ struct TRINITY_DLL_DECL instance_old_hillsbrad : public ScriptedInstance
case TARETHA_ENTRY: case TARETHA_ENTRY:
TarethaGUID = creature->GetGUID(); TarethaGUID = creature->GetGUID();
break; break;
case EPOCH_ENTRY:
EpochGUID = creature->GetGUID();
break;
} }
} }
@@ -216,6 +222,8 @@ struct TRINITY_DLL_DECL instance_old_hillsbrad : public ScriptedInstance
return ThrallGUID; return ThrallGUID;
case DATA_TARETHA: case DATA_TARETHA:
return TarethaGUID; return TarethaGUID;
case DATA_EPOCH:
return EpochGUID;
} }
return 0; return 0;
} }
@@ -819,6 +819,7 @@ bool GossipSelect_npc_taretha(Player *player, Creature *_Creature, uint32 sender
if( pInstance->GetData(TYPE_THRALL_EVENT) == IN_PROGRESS ) if( pInstance->GetData(TYPE_THRALL_EVENT) == IN_PROGRESS )
{ {
pInstance->SetData(TYPE_THRALL_PART4,IN_PROGRESS); pInstance->SetData(TYPE_THRALL_PART4,IN_PROGRESS);
if(pInstance->GetData64(DATA_EPOCH) == 0)
_Creature->SummonCreature(ENTRY_EPOCH,2639.13,698.55,65.43,4.59,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,120000); _Creature->SummonCreature(ENTRY_EPOCH,2639.13,698.55,65.43,4.59,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,120000);
if (uint64 ThrallGUID = pInstance->GetData64(DATA_THRALL)) if (uint64 ThrallGUID = pInstance->GetData64(DATA_THRALL))