Merge [SD2]
r1095 Correct one spellId in hyjal - skip r1096 Remove more grid search code from scripts and use functions. r1097 Remove obsolete functions redefined in 1094 r1098 Added text for bosses in map 615 r1099 Added instance script for map 615 --HG-- branch : trunk
This commit is contained in:
@@ -246,6 +246,8 @@ SET(trinityscript_LIB_SRCS
|
||||
scripts/zone/naxxramas/def_naxxramas.h
|
||||
scripts/zone/naxxramas/instance_naxxramas.cpp
|
||||
scripts/zone/netherstorm/netherstorm.cpp
|
||||
scripts/zone/obsidian_sanctum/def_obsidian_sanctum.h
|
||||
scripts/zone/obsidian_sanctum/instance_obsidian_sanctum.cpp
|
||||
scripts/zone/onyxias_lair/boss_onyxia.cpp
|
||||
scripts/zone/orgrimmar/orgrimmar.cpp
|
||||
scripts/zone/razorfen_downs/boss_amnennar_the_coldbringer.cpp
|
||||
|
||||
@@ -414,6 +414,9 @@ extern void AddSC_boss_ormorok();
|
||||
extern void AddSC_boss_keristrasza();
|
||||
extern void AddSC_instance_nexus();
|
||||
|
||||
//Obsidian Sanctum
|
||||
extern void AddSC_instance_obsidian_sanctum();
|
||||
|
||||
//Onyxia's Lair
|
||||
extern void AddSC_boss_onyxia();
|
||||
|
||||
@@ -1315,6 +1318,9 @@ void ScriptsInit(char const* cfg_file = "trinitycore.conf")
|
||||
AddSC_boss_keristrasza();
|
||||
AddSC_instance_nexus();
|
||||
|
||||
//Obsidian Sanctum
|
||||
AddSC_instance_obsidian_sanctum();
|
||||
|
||||
//Onyxia's Lair
|
||||
AddSC_boss_onyxia();
|
||||
|
||||
|
||||
@@ -2818,6 +2818,18 @@
|
||||
</File>
|
||||
</Filter>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Obsidian Sanctum"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\scripts\zone\obsidian_sanctum\def_obsidian_sanctum.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\scripts\zone\obsidian_sanctum\instance_obsidian_sanctum.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Vault of Archavon"
|
||||
>
|
||||
|
||||
@@ -2819,6 +2819,18 @@
|
||||
</File>
|
||||
</Filter>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Obsidian Sanctum"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\scripts\zone\obsidian_sanctum\def_obsidian_sanctum.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\scripts\zone\obsidian_sanctum\instance_obsidian_sanctum.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Vault of Archavon"
|
||||
>
|
||||
|
||||
@@ -1,4 +1,20 @@
|
||||
#ifndef DEF_OBSIDIAN_SANCTUM_H
|
||||
#define DEF_OBSIDIAN_SANCTUM_H
|
||||
|
||||
enum
|
||||
{
|
||||
TYPE_SARTHARION_EVENT = 1,
|
||||
|
||||
DATA_SARTHARION = 10,
|
||||
DATA_TENEBRON = 11,
|
||||
DATA_SHADRON = 12,
|
||||
DATA_VESPERON = 13,
|
||||
|
||||
NPC_SARTHARION = 28860,
|
||||
NPC_TENEBRON = 30452,
|
||||
NPC_SHADRON = 30451,
|
||||
NPC_VESPERON = 30449,
|
||||
GO_TWILIGHT_PORTAL = 193988
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,9 +1,86 @@
|
||||
#include "precompiled.h"
|
||||
#include "def_obsidian_sanctum.h"
|
||||
|
||||
#define ENCOUNTERS 1
|
||||
|
||||
/* Obsidian Sanctum encounters:
|
||||
0 - Sartharion
|
||||
*/
|
||||
|
||||
struct TRINITY_DLL_DECL instance_obsidian_sanctum : public ScriptedInstance
|
||||
{
|
||||
instance_obsidian_sanctum(Map *Map) : ScriptedInstance(Map) {Initialize();};
|
||||
|
||||
uint32 m_uiEncounter[ENCOUNTERS];
|
||||
uint64 m_uiSartharionGUID;
|
||||
uint64 m_uiTenebronGUID;
|
||||
uint64 m_uiShadronGUID;
|
||||
uint64 m_uiVesperonGUID;
|
||||
|
||||
void Initialize()
|
||||
{
|
||||
m_uiSartharionGUID = 0;
|
||||
m_uiTenebronGUID = 0;
|
||||
m_uiShadronGUID = 0;
|
||||
m_uiVesperonGUID = 0;
|
||||
|
||||
for(uint8 i = 0; i < ENCOUNTERS; ++i)
|
||||
m_uiEncounter[i] = NOT_STARTED;
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature* pCreature, uint32 entry)
|
||||
{
|
||||
switch(pCreature->GetEntry())
|
||||
{
|
||||
case NPC_SARTHARION:
|
||||
m_uiSartharionGUID = pCreature->GetGUID();
|
||||
break;
|
||||
//three dragons below set to active state once created.
|
||||
//we must expect bigger raid to encounter main boss, and then three dragons must be active due to grid differences
|
||||
case NPC_TENEBRON:
|
||||
m_uiTenebronGUID = pCreature->GetGUID();
|
||||
pCreature->setActive(true);
|
||||
break;
|
||||
case NPC_SHADRON:
|
||||
m_uiShadronGUID = pCreature->GetGUID();
|
||||
pCreature->setActive(true);
|
||||
break;
|
||||
case NPC_VESPERON:
|
||||
m_uiVesperonGUID = pCreature->GetGUID();
|
||||
pCreature->setActive(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void SetData(uint32 uiType, uint32 uiData)
|
||||
{
|
||||
if (uiType == TYPE_SARTHARION_EVENT)
|
||||
m_uiEncounter[0] = uiData;
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 uiType)
|
||||
{
|
||||
if (uiType == TYPE_SARTHARION_EVENT)
|
||||
return m_uiEncounter[0];
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 uiData)
|
||||
{
|
||||
switch(uiData)
|
||||
{
|
||||
case DATA_SARTHARION:
|
||||
return m_uiSartharionGUID;
|
||||
case DATA_TENEBRON:
|
||||
return m_uiTenebronGUID;
|
||||
case DATA_SHADRON:
|
||||
return m_uiShadronGUID;
|
||||
case DATA_VESPERON:
|
||||
return m_uiVesperonGUID;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
InstanceData* GetInstanceData_instance_obsidian_sanctum(Map* map)
|
||||
|
||||
@@ -312,40 +312,18 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI
|
||||
}
|
||||
}
|
||||
|
||||
class AnyBugCheck
|
||||
{
|
||||
public:
|
||||
AnyBugCheck(WorldObject const* obj, float range) : i_obj(obj), i_range(range) {}
|
||||
bool operator()(Creature* u)
|
||||
{
|
||||
Creature *c = u;
|
||||
if (!i_obj->IsWithinDistInMap(c, i_range))
|
||||
return false;
|
||||
return (c->GetEntry() == 15316 || c->GetEntry() == 15317);
|
||||
}
|
||||
private:
|
||||
WorldObject const* i_obj;
|
||||
float i_range;
|
||||
};
|
||||
|
||||
Creature *RespawnNearbyBugsAndGetOne()
|
||||
{
|
||||
CellPair p(Trinity::ComputeCellPair(m_creature->GetPositionX(), m_creature->GetPositionY()));
|
||||
Cell cell(p);
|
||||
cell.data.Part.reserved = ALL_DISTRICT;
|
||||
cell.SetNoCreate();
|
||||
std::list<Creature*> lUnitList;
|
||||
m_creature->GetCreatureListWithEntryInGrid(lUnitList,15316,150.0f);
|
||||
m_creature->GetCreatureListWithEntryInGrid(lUnitList,15317,150.0f);
|
||||
|
||||
std::list<Creature*> unitList;
|
||||
|
||||
AnyBugCheck u_check(m_creature, 150);
|
||||
Trinity::CreatureListSearcher<AnyBugCheck> searcher(m_creature, unitList, u_check);
|
||||
TypeContainerVisitor<Trinity::CreatureListSearcher<AnyBugCheck>, GridTypeMapContainer > grid_creature_searcher(searcher);
|
||||
CellLock<GridReadGuard> cell_lock(cell, p);
|
||||
cell_lock->Visit(cell_lock, grid_creature_searcher, *(m_creature->GetMap()));
|
||||
if (lUnitList.empty())
|
||||
return NULL;
|
||||
|
||||
Creature *nearb = NULL;
|
||||
|
||||
for(std::list<Creature*>::iterator iter = unitList.begin(); iter != unitList.end(); ++iter)
|
||||
for(std::list<Creature*>::iterator iter = lUnitList.begin(); iter != lUnitList.end(); ++iter)
|
||||
{
|
||||
Creature *c = *iter;
|
||||
if (c)
|
||||
|
||||
@@ -23,6 +23,10 @@
|
||||
|
||||
#include "Common.h"
|
||||
|
||||
#ifndef HAVE_CONFIG_H
|
||||
#define HAVE_ACE_STACK_TRACE_H 1
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ACE_STACK_TRACE_H
|
||||
#include "ace/Stack_Trace.h"
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user