*Update instance script functions.
--HG-- branch : trunk
This commit is contained in:
@@ -221,13 +221,13 @@ struct TRINITY_DLL_DECL NullCreatureAI : public ScriptedAI
|
||||
struct TRINITY_DLL_DECL BossAI : public ScriptedAI
|
||||
{
|
||||
BossAI(Creature *c, uint32 id) : ScriptedAI(c), bossId(id)
|
||||
, summons(me), instance((ScriptedInstance*)c->GetInstanceData())
|
||||
, summons(me), instance(c->GetInstanceData())
|
||||
{}
|
||||
|
||||
uint32 bossId;
|
||||
EventMap events;
|
||||
SummonList summons;
|
||||
ScriptedInstance *instance;
|
||||
InstanceData *instance;
|
||||
|
||||
void JustSummoned(Creature *summon);
|
||||
void SummonedCreatureDespawn(Creature *summon);
|
||||
|
||||
@@ -17,20 +17,7 @@
|
||||
class TRINITY_DLL_DECL ScriptedInstance : public InstanceData
|
||||
{
|
||||
public:
|
||||
|
||||
ScriptedInstance(Map *map) : InstanceData(map) {}
|
||||
~ScriptedInstance() {}
|
||||
|
||||
//All-purpose data storage 64 bit
|
||||
virtual uint64 GetData64(uint32 Data) { return 0; }
|
||||
virtual void SetData64(uint32 Data, uint64 Value) { }
|
||||
|
||||
// Called every instance update
|
||||
virtual void Update(uint32) {}
|
||||
|
||||
// Save and Load instance data to the database
|
||||
const char* Save() { return NULL; }
|
||||
void Load(const char* in) { }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
+1
-1
@@ -191,7 +191,7 @@ struct TRINITY_DLL_DECL instance_shadow_labyrinth : public ScriptedInstance
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char* Save()
|
||||
std::string GetSaveData()
|
||||
{
|
||||
return str_data.c_str();
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ struct TRINITY_DLL_DECL instance_ahnkahet : public ScriptedInstance
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char* Save()
|
||||
std::string GetSaveData()
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
|
||||
@@ -117,7 +117,7 @@ struct TRINITY_DLL_DECL instance_azjol_nerub : public ScriptedInstance
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char* Save()
|
||||
std::string GetSaveData()
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
|
||||
@@ -303,7 +303,7 @@ struct TRINITY_DLL_DECL instance_black_temple : public ScriptedInstance
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char* Save()
|
||||
std::string GetSaveData()
|
||||
{
|
||||
return str_data.c_str();
|
||||
}
|
||||
|
||||
@@ -265,7 +265,7 @@ struct TRINITY_DLL_DECL instance_blackrock_depths : public ScriptedInstance
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char* Save()
|
||||
std::string GetSaveData()
|
||||
{
|
||||
return str_data.c_str();
|
||||
}
|
||||
|
||||
@@ -279,7 +279,7 @@ struct TRINITY_DLL_DECL instance_mount_hyjal : public ScriptedInstance
|
||||
}else debug_log("TSCR: Instance Hyjal: UpdateWorldState, but PlayerList is empty!");
|
||||
}
|
||||
|
||||
const char* Save()
|
||||
std::string GetSaveData()
|
||||
{
|
||||
return str_data.c_str();
|
||||
}
|
||||
|
||||
+1
-1
@@ -236,7 +236,7 @@ struct TRINITY_DLL_DECL instance_serpentshrine_cavern : public ScriptedInstance
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
const char* Save()
|
||||
std::string GetSaveData()
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
std::ostringstream stream;
|
||||
|
||||
+1
-1
@@ -209,7 +209,7 @@ struct TRINITY_DLL_DECL instance_steam_vault : public ScriptedInstance
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char* Save()
|
||||
std::string GetSaveData()
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
std::ostringstream stream;
|
||||
|
||||
@@ -144,7 +144,7 @@ struct TRINITY_DLL_DECL instance_gruuls_lair : public ScriptedInstance
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char* Save()
|
||||
std::string GetSaveData()
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
std::ostringstream stream;
|
||||
|
||||
@@ -247,7 +247,7 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
|
||||
}
|
||||
}
|
||||
|
||||
const char* Save()
|
||||
std::string GetSaveData()
|
||||
{
|
||||
return str_data.c_str();
|
||||
}
|
||||
|
||||
@@ -77,9 +77,9 @@ inline uint32 GetEruptionSection(float x, float y)
|
||||
return 3;
|
||||
}
|
||||
|
||||
struct TRINITY_DLL_DECL instance_naxxramas : public ScriptedInstance
|
||||
struct TRINITY_DLL_DECL instance_naxxramas : public InstanceData
|
||||
{
|
||||
instance_naxxramas(Map *map) : ScriptedInstance(map)
|
||||
instance_naxxramas(Map *map) : InstanceData(map)
|
||||
, Sapphiron(NULL)
|
||||
{
|
||||
SetBossNumber(MAX_BOSS_NUMBER);
|
||||
@@ -88,12 +88,14 @@ struct TRINITY_DLL_DECL instance_naxxramas : public ScriptedInstance
|
||||
|
||||
std::set<GameObject*> HeiganEruption[4];
|
||||
Creature *Sapphiron;
|
||||
std::set<Creature*> Worshipper;
|
||||
|
||||
void OnCreatureCreate(Creature *creature, bool add)
|
||||
{
|
||||
switch(creature->GetEntry())
|
||||
{
|
||||
case 15989: Sapphiron = add ? creature : NULL; break;
|
||||
case 16506: if(add) Worshipper.insert(creature); else Worshipper.erase(creature); break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,6 +119,20 @@ struct TRINITY_DLL_DECL instance_naxxramas : public ScriptedInstance
|
||||
AddDoor(go, add);
|
||||
}
|
||||
|
||||
void SetBossState(uint32 id, EncounterState state)
|
||||
{
|
||||
InstanceData::SetBossState(id, state);
|
||||
switch(id)
|
||||
{
|
||||
case BOSS_FAERLINA:
|
||||
if(state == NOT_STARTED)
|
||||
for(std::set<Creature*>::iterator itr = Worshipper.begin(); itr != Worshipper.end(); ++itr)
|
||||
if(!(*itr)->isAlive())
|
||||
(*itr)->Respawn();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void SetData(uint32 id, uint32 value)
|
||||
{
|
||||
switch(id)
|
||||
|
||||
@@ -185,7 +185,7 @@ struct TRINITY_DLL_DECL instance_shadowfang_keep : public ScriptedInstance
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char* Save()
|
||||
std::string GetSaveData()
|
||||
{
|
||||
return str_data.c_str();
|
||||
}
|
||||
|
||||
@@ -236,7 +236,7 @@ struct TRINITY_DLL_DECL instance_sunwell_plateau : public ScriptedInstance
|
||||
{
|
||||
}
|
||||
|
||||
const char* Save()
|
||||
std::string GetSaveData()
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
std::ostringstream stream;
|
||||
|
||||
@@ -129,7 +129,7 @@ struct TRINITY_DLL_DECL instance_the_eye : public ScriptedInstance
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char* Save()
|
||||
std::string GetSaveData()
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
std::ostringstream stream;
|
||||
|
||||
+1
-1
@@ -231,7 +231,7 @@ struct TRINITY_DLL_DECL instance_utgarde_keep : public ScriptedInstance
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char* Save()
|
||||
std::string GetSaveData()
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
|
||||
@@ -179,7 +179,7 @@ struct TRINITY_DLL_DECL instance_zulaman : public ScriptedInstance
|
||||
instance->SendToPlayers(&data);
|
||||
}
|
||||
|
||||
const char* Save()
|
||||
std::string GetSaveData()
|
||||
{
|
||||
std::ostringstream ss;
|
||||
ss << "S " << BossKilled << " " << ChestLooted << " " << QuestMinute;
|
||||
|
||||
Reference in New Issue
Block a user