aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/CMakeLists.txt1
-rw-r--r--src/server/scripts/Commands/cs_account.cpp6
-rw-r--r--src/server/scripts/Commands/cs_character.cpp4
-rw-r--r--src/server/scripts/Commands/cs_debug.cpp20
-rw-r--r--src/server/scripts/Commands/cs_gm.cpp11
-rw-r--r--src/server/scripts/Commands/cs_lfg.cpp14
-rw-r--r--src/server/scripts/Commands/cs_lookup.cpp2
-rw-r--r--src/server/scripts/Commands/cs_message.cpp2
-rw-r--r--src/server/scripts/Commands/cs_misc.cpp12
-rw-r--r--src/server/scripts/Commands/cs_npc.cpp84
-rw-r--r--src/server/scripts/Commands/cs_ticket.cpp10
-rw-r--r--src/server/scripts/Commands/cs_titles.cpp20
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp7
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp12
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp16
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp3
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp22
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/karazhan.h1
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp47
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp17
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp15
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp7
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h3
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp7
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp39
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp3
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp30
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp25
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp7
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp6
-rw-r--r--src/server/scripts/Events/CMakeLists.txt17
-rw-r--r--src/server/scripts/Events/childrens_week.cpp1048
-rw-r--r--src/server/scripts/Events/event.cpp25
-rw-r--r--src/server/scripts/Examples/example_gossip_codebox.cpp4
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp21
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp4
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp20
-rw-r--r--src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp8
-rw-r--r--src/server/scripts/Northrend/sholazar_basin.cpp109
-rw-r--r--src/server/scripts/Northrend/wintergrasp.cpp3
-rwxr-xr-xsrc/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp10
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp13
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_illidan.cpp21
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp18
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_supremus.cpp10
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp40
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp8
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp40
-rw-r--r--src/server/scripts/Spells/spell_rogue.cpp2
-rw-r--r--src/server/scripts/World/areatrigger_scripts.cpp81
-rwxr-xr-xsrc/server/scripts/World/chat_log.cpp42
63 files changed, 1514 insertions, 522 deletions
diff --git a/src/server/scripts/CMakeLists.txt b/src/server/scripts/CMakeLists.txt
index 3dfb5b39c24..b85a30dc5f9 100644
--- a/src/server/scripts/CMakeLists.txt
+++ b/src/server/scripts/CMakeLists.txt
@@ -44,6 +44,7 @@ if(SCRIPTS)
include(Kalimdor/CMakeLists.txt)
include(Outland/CMakeLists.txt)
include(Northrend/CMakeLists.txt)
+ include(Events/CMakeLists.txt)
endif()
message(STATUS "SCRIPT PREPARATION COMPLETE")
diff --git a/src/server/scripts/Commands/cs_account.cpp b/src/server/scripts/Commands/cs_account.cpp
index 1024a3acf15..15a724e69d1 100644
--- a/src/server/scripts/Commands/cs_account.cpp
+++ b/src/server/scripts/Commands/cs_account.cpp
@@ -111,9 +111,9 @@ public:
handler->PSendSysMessage(LANG_ACCOUNT_CREATED, accountName);
if (handler->GetSession())
{
- sLog->outInfo(LOG_FILTER_CHARACTER, "Account: %d (IP: %s) Character:[%s] (GUID: %u) Change Password."
- , handler->GetSession()->GetAccountId(),handler->GetSession()->GetRemoteAddress().c_str()
- , handler->GetSession()->GetPlayer()->GetName(), handler->GetSession()->GetPlayer()->GetGUIDLow());
+ sLog->outInfo(LOG_FILTER_CHARACTER, "Account: %d (IP: %s) Character:[%s] (GUID: %u) Change Password.",
+ handler->GetSession()->GetAccountId(), handler->GetSession()->GetRemoteAddress().c_str(),
+ handler->GetSession()->GetPlayer()->GetName().c_str(), handler->GetSession()->GetPlayer()->GetGUIDLow());
}
break;
case AOR_NAME_TOO_LONG:
diff --git a/src/server/scripts/Commands/cs_character.cpp b/src/server/scripts/Commands/cs_character.cpp
index d6c4ef54d15..d0bd7503216 100644
--- a/src/server/scripts/Commands/cs_character.cpp
+++ b/src/server/scripts/Commands/cs_character.cpp
@@ -265,7 +265,7 @@ public:
return false;
LocaleConstant loc = handler->GetSessionDbcLocale();
- char const* targetName = target->GetName();
+ char const* targetName = target->GetName().c_str();
char const* knownStr = handler->GetTrinityString(LANG_KNOWN);
// Search in CharTitles.dbc
@@ -681,7 +681,7 @@ public:
uint64 characterGuid;
uint32 accountId;
- Player* player = sObjectAccessor->FindPlayerByName(characterName.c_str());
+ Player* player = sObjectAccessor->FindPlayerByName(characterName);
if (player)
{
characterGuid = player->GetGUID();
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp
index 6c5abfe60e6..2f5049c9da6 100644
--- a/src/server/scripts/Commands/cs_debug.cpp
+++ b/src/server/scripts/Commands/cs_debug.cpp
@@ -418,7 +418,7 @@ public:
sLog->outDebug(LOG_FILTER_NETWORKIO, "Sending opcode %u", data.GetOpcode());
data.hexlike();
player->GetSession()->SendPacket(&data, true);
- handler->PSendSysMessage(LANG_COMMAND_OPCODESENT, data.GetOpcode(), unit->GetName());
+ handler->PSendSysMessage(LANG_COMMAND_OPCODESENT, data.GetOpcode(), unit->GetName().c_str());
return true;
}
@@ -497,7 +497,9 @@ public:
if (!target)
return false;
- handler->PSendSysMessage("Loot recipient for creature %s (GUID %u, DB GUID %u) is %s", target->GetName(), target->GetGUIDLow(), target->GetDBTableGUIDLow(), target->hasLootRecipient() ? (target->GetLootRecipient() ? target->GetLootRecipient()->GetName() : "offline") : "no loot recipient");
+ handler->PSendSysMessage("Loot recipient for creature %s (GUID %u, DB GUID %u) is %s",
+ target->GetName().c_str(), target->GetGUIDLow(), target->GetDBTableGUIDLow(),
+ target->hasLootRecipient() ? (target->GetLootRecipient() ? target->GetLootRecipient()->GetName().c_str() : "offline") : "no loot recipient");
return true;
}
@@ -797,17 +799,17 @@ public:
if (!target || target->isTotem() || target->isPet())
return false;
- std::list<HostileReference*>& threatList = target->getThreatManager().getThreatList();
- std::list<HostileReference*>::iterator itr;
+ ThreatContainer::StorageType const &threatList = target->getThreatManager().getThreatList();
+ ThreatContainer::StorageType::const_iterator itr;
uint32 count = 0;
- handler->PSendSysMessage("Threat list of %s (guid %u)", target->GetName(), target->GetGUIDLow());
+ handler->PSendSysMessage("Threat list of %s (guid %u)", target->GetName().c_str(), target->GetGUIDLow());
for (itr = threatList.begin(); itr != threatList.end(); ++itr)
{
Unit* unit = (*itr)->getTarget();
if (!unit)
continue;
++count;
- handler->PSendSysMessage(" %u. %s (guid %u) - threat %f", count, unit->GetName(), unit->GetGUIDLow(), (*itr)->getThreat());
+ handler->PSendSysMessage(" %u. %s (guid %u) - threat %f", count, unit->GetName().c_str(), unit->GetGUIDLow(), (*itr)->getThreat());
}
handler->SendSysMessage("End of threat list.");
return true;
@@ -820,13 +822,13 @@ public:
target = handler->GetSession()->GetPlayer();
HostileReference* ref = target->getHostileRefManager().getFirst();
uint32 count = 0;
- handler->PSendSysMessage("Hostil reference list of %s (guid %u)", target->GetName(), target->GetGUIDLow());
+ handler->PSendSysMessage("Hostil reference list of %s (guid %u)", target->GetName().c_str(), target->GetGUIDLow());
while (ref)
{
if (Unit* unit = ref->getSource()->getOwner())
{
++count;
- handler->PSendSysMessage(" %u. %s (guid %u) - threat %f", count, unit->GetName(), unit->GetGUIDLow(), ref->getThreat());
+ handler->PSendSysMessage(" %u. %s (guid %u) - threat %f", count, unit->GetName().c_str(), unit->GetGUIDLow(), ref->getThreat());
}
ref = ref->next();
}
@@ -1061,7 +1063,7 @@ public:
static bool HandleDebugLoSCommand(ChatHandler* handler, char const* /*args*/)
{
if (Unit* unit = handler->getSelectedUnit())
- handler->PSendSysMessage("Unit %s (GuidLow: %u) is %sin LoS", unit->GetName(), unit->GetGUIDLow(), handler->GetSession()->GetPlayer()->IsWithinLOSInMap(unit) ? "" : "not ");
+ handler->PSendSysMessage("Unit %s (GuidLow: %u) is %sin LoS", unit->GetName().c_str(), unit->GetGUIDLow(), handler->GetSession()->GetPlayer()->IsWithinLOSInMap(unit) ? "" : "not ");
return true;
}
diff --git a/src/server/scripts/Commands/cs_gm.cpp b/src/server/scripts/Commands/cs_gm.cpp
index 0230ebcd1e7..087a72764dc 100644
--- a/src/server/scripts/Commands/cs_gm.cpp
+++ b/src/server/scripts/Commands/cs_gm.cpp
@@ -130,16 +130,17 @@ public:
handler->SendSysMessage(LANG_GMS_ON_SRV);
handler->SendSysMessage("========================");
}
- char const* name = itr->second->GetName();
+ std::string const& name = itr->second->GetName();
+ uint8 size = name.size();
uint8 security = itrSec;
- uint8 max = ((16 - strlen(name)) / 2);
+ uint8 max = ((16 - size) / 2);
uint8 max2 = max;
- if ((max + max2 + strlen(name)) == 16)
+ if ((max + max2 + size) == 16)
max2 = max - 1;
if (handler->GetSession())
- handler->PSendSysMessage("| %s GMLevel %u", name, security);
+ handler->PSendSysMessage("| %s GMLevel %u", name.c_str(), security);
else
- handler->PSendSysMessage("|%*s%s%*s| %u |", max, " ", name, max2, " ", security);
+ handler->PSendSysMessage("|%*s%s%*s| %u |", max, " ", name.c_str(), max2, " ", security);
}
}
if (footer)
diff --git a/src/server/scripts/Commands/cs_lfg.cpp b/src/server/scripts/Commands/cs_lfg.cpp
index 45ecc4e4721..5f1ed59176f 100644
--- a/src/server/scripts/Commands/cs_lfg.cpp
+++ b/src/server/scripts/Commands/cs_lfg.cpp
@@ -28,9 +28,9 @@ void GetPlayerInfo(ChatHandler* handler, Player* player)
uint64 guid = player->GetGUID();
LfgDungeonSet dungeons = sLFGMgr->GetSelectedDungeons(guid);
- char const * const state = sLFGMgr->GetStateString(sLFGMgr->GetState(guid));
- handler->PSendSysMessage(LANG_LFG_PLAYER_INFO, player->GetName(),
- state, uint8(dungeons.size()), sLFGMgr->ConcatenateDungeons(dungeons).c_str(),
+ std::string const& state = sLFGMgr->GetStateString(sLFGMgr->GetState(guid));
+ handler->PSendSysMessage(LANG_LFG_PLAYER_INFO, player->GetName().c_str(),
+ state.c_str(), uint8(dungeons.size()), sLFGMgr->ConcatenateDungeons(dungeons).c_str(),
sLFGMgr->GetRolesString(sLFGMgr->GetRoles(guid)).c_str(), sLFGMgr->GetComment(guid).c_str());
}
@@ -85,9 +85,9 @@ public:
}
uint64 guid = grp->GetGUID();
- char const * const state = sLFGMgr->GetStateString(sLFGMgr->GetState(guid));
+ std::string const& state = sLFGMgr->GetStateString(sLFGMgr->GetState(guid));
handler->PSendSysMessage(LANG_LFG_GROUP_INFO, grp->isLFGGroup(),
- state, sLFGMgr->GetDungeon(guid));
+ state.c_str(), sLFGMgr->GetDungeon(guid));
for (GroupReference* itr = grp->GetFirstMember(); itr != NULL; itr = itr->next())
GetPlayerInfo(handler, itr->getSource());
@@ -114,9 +114,9 @@ public:
return true;
}
- static bool HandleLfgQueueInfoCommand(ChatHandler* handler, char const* /*args*/)
+ static bool HandleLfgQueueInfoCommand(ChatHandler* handler, char const* args)
{
- handler->SendSysMessage(sLFGMgr->DumpQueueInfo().c_str());
+ handler->SendSysMessage(sLFGMgr->DumpQueueInfo(*args).c_str());
return true;
}
diff --git a/src/server/scripts/Commands/cs_lookup.cpp b/src/server/scripts/Commands/cs_lookup.cpp
index 3a2ef366ace..6e592e47fb8 100644
--- a/src/server/scripts/Commands/cs_lookup.cpp
+++ b/src/server/scripts/Commands/cs_lookup.cpp
@@ -970,7 +970,7 @@ public:
Player* target = handler->getSelectedPlayer();
// title name have single string arg for player name
- char const* targetName = target ? target->GetName() : "NAME";
+ char const* targetName = target ? target->GetName().c_str() : "NAME";
std::string namePart = args;
std::wstring wNamePart;
diff --git a/src/server/scripts/Commands/cs_message.cpp b/src/server/scripts/Commands/cs_message.cpp
index d61abf34e2f..de2fcf26943 100644
--- a/src/server/scripts/Commands/cs_message.cpp
+++ b/src/server/scripts/Commands/cs_message.cpp
@@ -71,7 +71,7 @@ public:
Player* player = handler->GetSession()->GetPlayer();
Channel* channcel = NULL;
- if (ChannelMgr* cMgr = channelMgr(player->GetTeam()))
+ if (ChannelMgr* cMgr = ChannelMgr::forTeam(player->GetTeam()))
channcel = cMgr->GetChannel(channelStr, player);
if (strcmp(argStr, "on") == 0)
diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp
index 7c7adafdfeb..d69e7e1cc6b 100644
--- a/src/server/scripts/Commands/cs_misc.cpp
+++ b/src/server/scripts/Commands/cs_misc.cpp
@@ -1922,9 +1922,9 @@ public:
if (!target)
handler->SendSysMessage(LANG_MOVEGENS_CHASE_NULL);
else if (target->GetTypeId() == TYPEID_PLAYER)
- handler->PSendSysMessage(LANG_MOVEGENS_CHASE_PLAYER, target->GetName(), target->GetGUIDLow());
+ handler->PSendSysMessage(LANG_MOVEGENS_CHASE_PLAYER, target->GetName().c_str(), target->GetGUIDLow());
else
- handler->PSendSysMessage(LANG_MOVEGENS_CHASE_CREATURE, target->GetName(), target->GetGUIDLow());
+ handler->PSendSysMessage(LANG_MOVEGENS_CHASE_CREATURE, target->GetName().c_str(), target->GetGUIDLow());
break;
}
case FOLLOW_MOTION_TYPE:
@@ -1938,9 +1938,9 @@ public:
if (!target)
handler->SendSysMessage(LANG_MOVEGENS_FOLLOW_NULL);
else if (target->GetTypeId() == TYPEID_PLAYER)
- handler->PSendSysMessage(LANG_MOVEGENS_FOLLOW_PLAYER, target->GetName(), target->GetGUIDLow());
+ handler->PSendSysMessage(LANG_MOVEGENS_FOLLOW_PLAYER, target->GetName().c_str(), target->GetGUIDLow());
else
- handler->PSendSysMessage(LANG_MOVEGENS_FOLLOW_CREATURE, target->GetName(), target->GetGUIDLow());
+ handler->PSendSysMessage(LANG_MOVEGENS_FOLLOW_CREATURE, target->GetName().c_str(), target->GetGUIDLow());
break;
}
case HOME_MOTION_TYPE:
@@ -2533,7 +2533,7 @@ public:
{
name = TargetName;
normalizePlayerName(name);
- player = sObjectAccessor->FindPlayerByName(name.c_str());
+ player = sObjectAccessor->FindPlayerByName(name);
}
if (!player)
@@ -2592,7 +2592,7 @@ public:
{
name = targetName;
normalizePlayerName(name);
- player = sObjectAccessor->FindPlayerByName(name.c_str());
+ player = sObjectAccessor->FindPlayerByName(name);
}
else // If no name was entered - use target
{
diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp
index 30713728cf6..1fa84985445 100644
--- a/src/server/scripts/Commands/cs_npc.cpp
+++ b/src/server/scripts/Commands/cs_npc.cpp
@@ -47,19 +47,19 @@ public:
{ "weapon", SEC_ADMINISTRATOR, false, &HandleNpcAddWeaponCommand, "", NULL },
//}
{ "", SEC_GAMEMASTER, false, &HandleNpcAddCommand, "", NULL },
- { NULL, 0, false, NULL, "", NULL }
+ { NULL, SEC_PLAYER, false, NULL, "", NULL }
};
static ChatCommand npcDeleteCommandTable[] =
{
{ "item", SEC_GAMEMASTER, false, &HandleNpcDeleteVendorItemCommand, "", NULL },
{ "", SEC_GAMEMASTER, false, &HandleNpcDeleteCommand, "", NULL },
- { NULL, 0, false, NULL, "", NULL }
+ { NULL, SEC_PLAYER, false, NULL, "", NULL }
};
static ChatCommand npcFollowCommandTable[] =
{
{ "stop", SEC_GAMEMASTER, false, &HandleNpcUnFollowCommand, "", NULL },
{ "", SEC_GAMEMASTER, false, &HandleNpcFollowCommand, "", NULL },
- { NULL, 0, false, NULL, "", NULL }
+ { NULL, SEC_PLAYER, false, NULL, "", NULL }
};
static ChatCommand npcSetCommandTable[] =
{
@@ -79,7 +79,7 @@ public:
{ "name", SEC_GAMEMASTER, false, &HandleNpcSetNameCommand, "", NULL },
{ "subname", SEC_GAMEMASTER, false, &HandleNpcSetSubNameCommand, "", NULL },
//}
- { NULL, 0, false, NULL, "", NULL }
+ { NULL, SEC_PLAYER, false, NULL, "", NULL }
};
static ChatCommand npcCommandTable[] =
{
@@ -95,18 +95,18 @@ public:
{ "delete", SEC_GAMEMASTER, false, NULL, "", npcDeleteCommandTable },
{ "follow", SEC_GAMEMASTER, false, NULL, "", npcFollowCommandTable },
{ "set", SEC_GAMEMASTER, false, NULL, "", npcSetCommandTable },
- { NULL, 0, false, NULL, "", NULL }
+ { NULL, SEC_PLAYER, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "npc", SEC_MODERATOR, false, NULL, "", npcCommandTable },
- { NULL, 0, false, NULL, "", NULL }
+ { NULL, SEC_PLAYER, false, NULL, "", NULL }
};
return commandTable;
}
//add spawn of creature
- static bool HandleNpcAddCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcAddCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -231,7 +231,7 @@ public:
}
//add move for creature
- static bool HandleNpcAddMoveCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcAddMoveCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -295,7 +295,7 @@ public:
return true;
}
- static bool HandleNpcSetAllowMovementCommand(ChatHandler* handler, const char* /*args*/)
+ static bool HandleNpcSetAllowMovementCommand(ChatHandler* handler, char const* /*args*/)
{
if (sWorld->getAllowMovement())
{
@@ -310,7 +310,7 @@ public:
return true;
}
- static bool HandleNpcSetEntryCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcSetEntryCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -335,7 +335,7 @@ public:
}
//change level of creature or pet
- static bool HandleNpcSetLevelCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcSetLevelCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -376,7 +376,7 @@ public:
return true;
}
- static bool HandleNpcDeleteCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcDeleteCommand(ChatHandler* handler, char const* args)
{
Creature* unit = NULL;
@@ -415,7 +415,7 @@ public:
}
//del item from vendor list
- static bool HandleNpcDeleteVendorItemCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcDeleteVendorItemCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -453,7 +453,7 @@ public:
}
//set faction of creature
- static bool HandleNpcSetFactionIdCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcSetFactionIdCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -500,7 +500,7 @@ public:
}
//set npcflag of creature
- static bool HandleNpcSetFlagCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcSetFlagCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -531,7 +531,7 @@ public:
}
//set data of creature for testing scripting
- static bool HandleNpcSetDataCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcSetDataCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -559,12 +559,12 @@ public:
creature->AI()->SetData(data_1, data_2);
std::string AIorScript = creature->GetAIName() != "" ? "AI type: " + creature->GetAIName() : (creature->GetScriptName() != "" ? "Script Name: " + creature->GetScriptName() : "No AI or Script Name Set");
- handler->PSendSysMessage(LANG_NPC_SETDATA, creature->GetGUID(), creature->GetEntry(), creature->GetName(), data_1, data_2, AIorScript.c_str());
+ handler->PSendSysMessage(LANG_NPC_SETDATA, creature->GetGUID(), creature->GetEntry(), creature->GetName().c_str(), data_1, data_2, AIorScript.c_str());
return true;
}
//npc follow handling
- static bool HandleNpcFollowCommand(ChatHandler* handler, const char* /*args*/)
+ static bool HandleNpcFollowCommand(ChatHandler* handler, char const* /*args*/)
{
Player* player = handler->GetSession()->GetPlayer();
Creature* creature = handler->getSelectedCreature();
@@ -579,11 +579,11 @@ public:
// Follow player - Using pet's default dist and angle
creature->GetMotionMaster()->MoveFollow(player, PET_FOLLOW_DIST, creature->GetFollowAngle());
- handler->PSendSysMessage(LANG_CREATURE_FOLLOW_YOU_NOW, creature->GetName());
+ handler->PSendSysMessage(LANG_CREATURE_FOLLOW_YOU_NOW, creature->GetName().c_str());
return true;
}
- static bool HandleNpcInfoCommand(ChatHandler* handler, const char* /*args*/)
+ static bool HandleNpcInfoCommand(ChatHandler* handler, char const* /*args*/)
{
Creature* target = handler->getSelectedCreature();
@@ -629,7 +629,7 @@ public:
}
//move selected creature
- static bool HandleNpcMoveCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcMoveCommand(ChatHandler* handler, char const* args)
{
uint32 lowguid = 0;
@@ -717,7 +717,7 @@ public:
}
//play npc emote
- static bool HandleNpcPlayEmoteCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcPlayEmoteCommand(ChatHandler* handler, char const* args)
{
uint32 emote = atoi((char*)args);
@@ -746,7 +746,7 @@ public:
}
//set model of creature
- static bool HandleNpcSetModelCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcSetModelCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -782,7 +782,7 @@ public:
* additional parameter: NODEL - so no waypoints are deleted, if you
* change the movement type
*/
- static bool HandleNpcSetMoveTypeCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcSetMoveTypeCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -918,7 +918,7 @@ public:
//npc phasemask handling
//change phasemask of creature or pet
- static bool HandleNpcSetPhaseCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcSetPhaseCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -948,7 +948,7 @@ public:
}
//set spawn dist of creature
- static bool HandleNpcSetSpawnDistCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcSetSpawnDistCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -994,7 +994,7 @@ public:
}
//spawn time handling
- static bool HandleNpcSetSpawnTimeCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcSetSpawnTimeCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -1034,7 +1034,7 @@ public:
return true;
}
- static bool HandleNpcSayCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcSayCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -1062,7 +1062,7 @@ public:
}
//show text emote by creature in chat
- static bool HandleNpcTextEmoteCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcTextEmoteCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -1082,7 +1082,7 @@ public:
}
//npc unfollow handling
- static bool HandleNpcUnFollowCommand(ChatHandler* handler, const char* /*args*/)
+ static bool HandleNpcUnFollowCommand(ChatHandler* handler, char const* /*args*/)
{
Player* player = handler->GetSession()->GetPlayer();
Creature* creature = handler->getSelectedCreature();
@@ -1097,7 +1097,7 @@ public:
if (/*creature->GetMotionMaster()->empty() ||*/
creature->GetMotionMaster()->GetCurrentMovementGeneratorType() != FOLLOW_MOTION_TYPE)
{
- handler->PSendSysMessage(LANG_CREATURE_NOT_FOLLOW_YOU, creature->GetName());
+ handler->PSendSysMessage(LANG_CREATURE_NOT_FOLLOW_YOU, creature->GetName().c_str());
handler->SetSentErrorMessage(true);
return false;
}
@@ -1106,7 +1106,7 @@ public:
if (mgen->GetTarget() != player)
{
- handler->PSendSysMessage(LANG_CREATURE_NOT_FOLLOW_YOU, creature->GetName());
+ handler->PSendSysMessage(LANG_CREATURE_NOT_FOLLOW_YOU, creature->GetName().c_str());
handler->SetSentErrorMessage(true);
return false;
}
@@ -1114,12 +1114,12 @@ public:
// reset movement
creature->GetMotionMaster()->MovementExpired(true);
- handler->PSendSysMessage(LANG_CREATURE_NOT_FOLLOW_YOU_NOW, creature->GetName());
+ handler->PSendSysMessage(LANG_CREATURE_NOT_FOLLOW_YOU_NOW, creature->GetName().c_str());
return true;
}
// make npc whisper to player
- static bool HandleNpcWhisperCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcWhisperCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -1146,7 +1146,7 @@ public:
return true;
}
- static bool HandleNpcYellCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcYellCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -1168,7 +1168,7 @@ public:
}
// add creature, temp only
- static bool HandleNpcAddTempSpawnCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcAddTempSpawnCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -1188,7 +1188,7 @@ public:
}
//npc tame handling
- static bool HandleNpcTameCommand(ChatHandler* handler, const char* /*args*/)
+ static bool HandleNpcTameCommand(ChatHandler* handler, char const* /*args*/)
{
Creature* creatureTarget = handler->getSelectedCreature();
if (!creatureTarget || creatureTarget->isPet())
@@ -1254,7 +1254,7 @@ public:
return true;
}
- static bool HandleNpcAddFormationCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcAddFormationCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -1306,7 +1306,7 @@ public:
return true;
}
- static bool HandleNpcSetLinkCommand(ChatHandler* handler, const char* args)
+ static bool HandleNpcSetLinkCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
@@ -1341,7 +1341,7 @@ public:
}
//TODO: NpcCommands that need to be fixed :
- static bool HandleNpcAddWeaponCommand(ChatHandler* /*handler*/, const char* /*args*/)
+ static bool HandleNpcAddWeaponCommand(ChatHandler* /*handler*/, char const* /*args*/)
{
/*if (!*args)
return false;
@@ -1409,7 +1409,7 @@ public:
return true;
}
- static bool HandleNpcSetNameCommand(ChatHandler* /*handler*/, const char* /*args*/)
+ static bool HandleNpcSetNameCommand(ChatHandler* /*handler*/, char const* /*args*/)
{
/* Temp. disabled
if (!*args)
@@ -1456,7 +1456,7 @@ public:
return true;
}
- static bool HandleNpcSetSubNameCommand(ChatHandler* /*handler*/, const char* /*args*/)
+ static bool HandleNpcSetSubNameCommand(ChatHandler* /*handler*/, char const* /*args*/)
{
/* Temp. disabled
diff --git a/src/server/scripts/Commands/cs_ticket.cpp b/src/server/scripts/Commands/cs_ticket.cpp
index baaa5d2bd43..c99931a90fb 100644
--- a/src/server/scripts/Commands/cs_ticket.cpp
+++ b/src/server/scripts/Commands/cs_ticket.cpp
@@ -156,7 +156,7 @@ public:
sTicketMgr->CloseTicket(ticket->GetId(), player ? player->GetGUID() : -1);
sTicketMgr->UpdateLastChange();
- std::string msg = ticket->FormatMessageString(*handler, player ? player->GetName() : "Console", NULL, NULL, NULL);
+ std::string msg = ticket->FormatMessageString(*handler, player ? player->GetName().c_str() : "Console", NULL, NULL, NULL);
handler->SendGlobalGMSysMessage(msg.c_str());
// Inform player, who submitted this ticket, that it is closed
@@ -206,7 +206,7 @@ public:
sTicketMgr->UpdateLastChange();
std::string msg = ticket->FormatMessageString(*handler, NULL, ticket->GetAssignedToName().c_str(), NULL, NULL);
- msg += handler->PGetParseString(LANG_COMMAND_TICKETLISTADDCOMMENT, player ? player->GetName() : "Console", comment);
+ msg += handler->PGetParseString(LANG_COMMAND_TICKETLISTADDCOMMENT, player ? player->GetName().c_str() : "Console", comment);
handler->SendGlobalGMSysMessage(msg.c_str());
return true;
@@ -258,7 +258,7 @@ public:
return true;
}
- std::string msg = ticket->FormatMessageString(*handler, NULL, NULL, NULL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName() : "Console");
+ std::string msg = ticket->FormatMessageString(*handler, NULL, NULL, NULL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName().c_str() : "Console");
handler->SendGlobalGMSysMessage(msg.c_str());
sTicketMgr->RemoveTicket(ticket->GetId());
@@ -389,7 +389,7 @@ public:
sTicketMgr->UpdateLastChange();
std::string msg = ticket->FormatMessageString(*handler, NULL, ticket->GetAssignedToName().c_str(),
- handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName() : "Console", NULL);
+ handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName().c_str() : "Console", NULL);
handler->SendGlobalGMSysMessage(msg.c_str());
return true;
@@ -427,7 +427,7 @@ public:
// Detect target's GUID
uint64 guid = 0;
- if (Player* player = sObjectAccessor->FindPlayerByName(name.c_str()))
+ if (Player* player = sObjectAccessor->FindPlayerByName(name))
guid = player->GetGUID();
else
guid = sObjectMgr->GetPlayerGUIDByName(name);
diff --git a/src/server/scripts/Commands/cs_titles.cpp b/src/server/scripts/Commands/cs_titles.cpp
index cb52844c626..046841128e8 100644
--- a/src/server/scripts/Commands/cs_titles.cpp
+++ b/src/server/scripts/Commands/cs_titles.cpp
@@ -36,7 +36,7 @@ public:
static ChatCommand titlesSetCommandTable[] =
{
{ "mask", SEC_GAMEMASTER, false, &HandleTitlesSetMaskCommand, "", NULL },
- { NULL, 0, false, NULL, "", NULL }
+ { NULL, SEC_PLAYER, false, NULL, "", NULL }
};
static ChatCommand titlesCommandTable[] =
{
@@ -44,17 +44,17 @@ public:
{ "current", SEC_GAMEMASTER, false, &HandleTitlesCurrentCommand, "", NULL },
{ "remove", SEC_GAMEMASTER, false, &HandleTitlesRemoveCommand, "", NULL },
{ "set", SEC_GAMEMASTER, false, NULL, "", titlesSetCommandTable },
- { NULL, 0, false, NULL, "", NULL }
+ { NULL, SEC_PLAYER, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "titles", SEC_GAMEMASTER, false, NULL, "", titlesCommandTable },
- { NULL, 0, false, NULL, "", NULL }
+ { NULL, SEC_PLAYER, false, NULL, "", NULL }
};
return commandTable;
}
- static bool HandleTitlesCurrentCommand(ChatHandler* handler, const char* args)
+ static bool HandleTitlesCurrentCommand(ChatHandler* handler, char const* args)
{
// number or [name] Shift-click form |color|Htitle:title_id|h[name]|h|r
char* id_p = handler->extractKeyFromLink((char*)args, "Htitle");
@@ -99,7 +99,7 @@ public:
return true;
}
- static bool HandleTitlesAddCommand(ChatHandler* handler, const char* args)
+ static bool HandleTitlesAddCommand(ChatHandler* handler, char const* args)
{
// number or [name] Shift-click form |color|Htitle:title_id|h[name]|h|r
char* id_p = handler->extractKeyFromLink((char*)args, "Htitle");
@@ -136,9 +136,8 @@ public:
std::string tNameLink = handler->GetNameLink(target);
- char const* targetName = target->GetName();
char titleNameStr[80];
- snprintf(titleNameStr, 80, titleInfo->name, targetName);
+ snprintf(titleNameStr, 80, titleInfo->name, target->GetName().c_str());
target->SetTitle(titleInfo);
handler->PSendSysMessage(LANG_TITLE_ADD_RES, id, titleNameStr, tNameLink.c_str());
@@ -146,7 +145,7 @@ public:
return true;
}
- static bool HandleTitlesRemoveCommand(ChatHandler* handler, const char* args)
+ static bool HandleTitlesRemoveCommand(ChatHandler* handler, char const* args)
{
// number or [name] Shift-click form |color|Htitle:title_id|h[name]|h|r
char* id_p = handler->extractKeyFromLink((char*)args, "Htitle");
@@ -185,9 +184,8 @@ public:
std::string tNameLink = handler->GetNameLink(target);
- char const* targetName = target->GetName();
char titleNameStr[80];
- snprintf(titleNameStr, 80, titleInfo->name, targetName);
+ snprintf(titleNameStr, 80, titleInfo->name, target->GetName().c_str());
handler->PSendSysMessage(LANG_TITLE_REMOVE_RES, id, titleNameStr, tNameLink.c_str());
@@ -201,7 +199,7 @@ public:
}
//Edit Player KnownTitles
- static bool HandleTitlesSetMaskCommand(ChatHandler* handler, const char* args)
+ static bool HandleTitlesSetMaskCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp
index 25c3f2e41e3..9beb3bb10fe 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp
@@ -240,8 +240,8 @@ public:
//Affliction_Timer
if (Affliction_Timer <= diff)
{
- std::list<HostileReference*> threatlist = me->getThreatManager().getThreatList();
- for (std::list<HostileReference*>::const_iterator i = threatlist.begin(); i != threatlist.end(); ++i)
+ ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList();
+ for (ThreatContainer::StorageType::const_iterator i = threatlist.begin(); i != threatlist.end(); ++i)
{
if ((*i) && (*i)->getSource())
{
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp
index bf27cad44ef..2c7e1b9c48a 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp
@@ -187,13 +187,11 @@ public:
if (Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO, 1))
DoCast(target, SPELL_HATEFUL_BOLT);
-
} else HatefulBoltTimer -= diff;
DoMeleeAttackIfReady();
}
};
-
};
void AddSC_boss_curator()
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp
index 8921867be21..5f974a890bf 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp
@@ -132,9 +132,7 @@ public:
DoMeleeAttackIfReady();
}
-
};
-
};
void AddSC_boss_maiden_of_virtue()
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
index ea9cfe5c3c1..7eeced1d970 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
@@ -111,7 +111,6 @@ public:
DoScriptText(SAY_DISARMED, me);
}
};
-
};
class boss_midnight : public CreatureScript
@@ -232,7 +231,6 @@ public:
CAST_AI(boss_attumen::boss_attumenAI, pAttumen->AI())->Midnight = value;
}
};
-
};
void boss_attumen::boss_attumenAI::UpdateAI(const uint32 diff)
@@ -284,9 +282,9 @@ void boss_attumen::boss_attumenAI::UpdateAI(const uint32 diff)
if (ChargeTimer <= diff)
{
Unit* target = NULL;
- std::list<HostileReference*> t_list = me->getThreatManager().getThreatList();
+ ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList();
std::vector<Unit*> target_list;
- for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
+ for (ThreatContainer::StorageType::const_iterator itr = t_list.begin(); itr != t_list.end(); ++itr)
{
target = Unit::GetUnit(*me, (*itr)->getUnitGuid());
if (target && !target->IsWithinDist(me, ATTACK_DISTANCE, false))
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp
index 533a1aac2f0..99f2cb51c85 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp
@@ -307,7 +307,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
struct boss_moroes_guestAI : public ScriptedAI
@@ -452,7 +451,6 @@ public:
} else ShadowWordPain_Timer -= diff;
}
};
-
};
class boss_baron_rafe_dreuger : public CreatureScript
@@ -510,7 +508,6 @@ public:
} else HammerOfJustice_Timer -= diff;
}
};
-
};
class boss_lady_catriona_von_indi : public CreatureScript
@@ -581,7 +578,6 @@ public:
} else DispelMagic_Timer -= diff;
}
};
-
};
class boss_lady_keira_berrybuck : public CreatureScript
@@ -656,7 +652,6 @@ public:
} else Cleanse_Timer -= diff;
}
};
-
};
class boss_lord_robin_daris : public CreatureScript
@@ -713,7 +708,6 @@ public:
} else WhirlWind_Timer -= diff;
}
};
-
};
class boss_lord_crispin_ference : public CreatureScript
@@ -778,7 +772,6 @@ public:
} else ShieldWall_Timer -= diff;
}
};
-
};
void AddSC_boss_moroes()
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
index 60e1a5ebc4c..c6587c3cd8a 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
@@ -333,7 +333,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
void AddSC_boss_netherspite()
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
index e2420749a4c..690822203b5 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
@@ -413,7 +413,6 @@ public:
}
}
};
-
};
void AddSC_boss_nightbane()
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
index f4195620dda..d1c4790d705 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
@@ -169,7 +169,6 @@ public:
void Cleanup();
};
-
};
class boss_malchezaar : public CreatureScript
@@ -314,14 +313,14 @@ public:
if (!info)
return;
- std::list<HostileReference*> t_list = me->getThreatManager().getThreatList();
+ ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList();
std::vector<Unit*> targets;
if (t_list.empty())
return;
//begin + 1, so we don't target the one with the highest threat
- std::list<HostileReference*>::const_iterator itr = t_list.begin();
+ ThreatContainer::StorageType::const_iterator itr = t_list.begin();
std::advance(itr, 1);
for (; itr != t_list.end(); ++itr) //store the threat list in a different container
if (Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid()))
@@ -483,14 +482,12 @@ public:
{
DoCast(me->getVictim(), SPELL_SUNDER_ARMOR);
SunderArmorTimer = urand(10000, 18000);
-
} else SunderArmorTimer -= diff;
if (Cleave_Timer <= diff)
{
DoCast(me->getVictim(), SPELL_CLEAVE);
Cleave_Timer = urand(6000, 12000);
-
} else Cleave_Timer -= diff;
}
else
@@ -602,15 +599,14 @@ public:
positions.push_back(point);
}
};
-
};
void netherspite_infernal::netherspite_infernalAI::Cleanup()
{
- Unit* pMalchezaar = Unit::GetUnit(*me, malchezaar);
+ Creature *pMalchezaar = Unit::GetCreature(*me, malchezaar);
if (pMalchezaar && pMalchezaar->isAlive())
- CAST_AI(boss_malchezaar::boss_malchezaarAI, CAST_CRE(pMalchezaar)->AI())->Cleanup(me, point);
+ CAST_AI(boss_malchezaar::boss_malchezaarAI, pMalchezaar->AI())->Cleanup(me, point);
}
void AddSC_boss_malchezaar()
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
index 7dd4e731a18..25fafdfcd0d 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
@@ -187,13 +187,13 @@ public:
void FlameWreathEffect()
{
std::vector<Unit*> targets;
- std::list<HostileReference*> t_list = me->getThreatManager().getThreatList();
+ ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList();
if (t_list.empty())
return;
//store the threat list in a different container
- for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
+ for (ThreatContainer::StorageType::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
{
Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid());
//only on alive players
@@ -508,7 +508,6 @@ public:
}
}
};
-
};
class mob_aran_elemental : public CreatureScript
@@ -546,7 +545,6 @@ public:
} else CastTimer -= diff;
}
};
-
};
void AddSC_boss_shade_of_aran()
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
index 44cd7e0faea..688a678060f 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
@@ -127,7 +127,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
class mob_demon_chain : public CreatureScript
@@ -165,7 +164,6 @@ public:
}
}
};
-
};
class mob_fiendish_portal : public CreatureScript
@@ -200,7 +198,6 @@ public:
summons.DespawnAll();
}
};
-
};
#define SPELL_FIREBOLT 30050 // Blasts a target for 181-209 Fire damage.
@@ -245,7 +242,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
class boss_terestian_illhoof : public CreatureScript
@@ -422,7 +418,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
void AddSC_boss_terestian_illhoof()
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
index 30d33dc65cf..a4f4f603206 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
@@ -216,7 +216,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
class mob_tito : public CreatureScript
@@ -271,7 +270,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
void boss_dorothee::boss_dorotheeAI::SummonTito()
@@ -398,7 +396,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
class boss_tinhead : public CreatureScript
@@ -508,7 +505,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
class boss_roar : public CreatureScript
@@ -617,7 +613,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
class boss_crone : public CreatureScript
@@ -699,7 +694,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
class mob_cyclone : public CreatureScript
@@ -743,7 +737,6 @@ public:
} else MoveTimer -= diff;
}
};
-
};
/**************************************/
@@ -792,7 +785,6 @@ public:
return true;
}
-
};
class boss_bigbadwolf : public CreatureScript
@@ -915,10 +907,8 @@ public:
DoCast(me->getVictim(), SPELL_WIDE_SWIPE);
SwipeTimer = urand(25000, 30000);
} else SwipeTimer -= diff;
-
}
};
-
};
/**********************************************/
@@ -977,7 +967,7 @@ void PretendToDie(Creature* creature)
creature->GetMotionMaster()->MovementExpired(false);
creature->GetMotionMaster()->MoveIdle();
creature->SetStandState(UNIT_STAND_STATE_DEAD);
-};
+}
void Resurrect(Creature* target)
{
@@ -992,7 +982,7 @@ void Resurrect(Creature* target)
}
else
target->GetMotionMaster()->Initialize();
-};
+}
class boss_julianne : public CreatureScript
{
@@ -1114,7 +1104,6 @@ public:
void UpdateAI(const uint32 diff);
};
-
};
class boss_romulo : public CreatureScript
@@ -1321,7 +1310,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
void boss_julianne::boss_julianneAI::UpdateAI(const uint32 diff)
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp
index 05d6ecf1478..2ecd98cbc4c 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp
@@ -288,7 +288,7 @@ public:
return 0;
}
- void Load(const char* chrIn)
+ void Load(char const* chrIn)
{
if (!chrIn)
{
@@ -308,7 +308,6 @@ public:
OUT_LOAD_INST_DATA_COMPLETE;
}
};
-
};
void AddSC_instance_karazhan()
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
index b84fc15d664..3bdfeab30da 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
@@ -321,7 +321,6 @@ public:
WipeTimer = 15000;
} else WipeTimer -= diff;
}
-
}
}
};
@@ -344,17 +343,17 @@ public:
case GOSSIP_ACTION_INFO_DEF+3:
player->CLOSE_GOSSIP_MENU();
pBarnesAI->m_uiEventId = EVENT_OZ;
- sLog->outInfo(LOG_FILTER_TSCR, "TSCR: player (GUID " UI64FMTD ") manually set Opera event to EVENT_OZ", player->GetGUID());
+ sLog->outInfo(LOG_FILTER_TSCR, "player (GUID " UI64FMTD ") manually set Opera event to EVENT_OZ", player->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+4:
player->CLOSE_GOSSIP_MENU();
pBarnesAI->m_uiEventId = EVENT_HOOD;
- sLog->outInfo(LOG_FILTER_TSCR, "TSCR: player (GUID " UI64FMTD ") manually set Opera event to EVENT_HOOD", player->GetGUID());
+ sLog->outInfo(LOG_FILTER_TSCR, "player (GUID " UI64FMTD ") manually set Opera event to EVENT_HOOD", player->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+5:
player->CLOSE_GOSSIP_MENU();
pBarnesAI->m_uiEventId = EVENT_RAJ;
- sLog->outInfo(LOG_FILTER_TSCR, "TSCR: player (GUID " UI64FMTD ") manually set Opera event to EVENT_RAJ", player->GetGUID());
+ sLog->outInfo(LOG_FILTER_TSCR, "player (GUID " UI64FMTD ") manually set Opera event to EVENT_RAJ", player->GetGUID());
break;
}
@@ -397,7 +396,6 @@ public:
{
return new npc_barnesAI(creature);
}
-
};
/*###
@@ -438,7 +436,6 @@ public:
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
return true;
}
-
};
/*###
@@ -538,7 +535,7 @@ public:
uint32 NextStep(uint32 Step)
{
- Unit* arca = Unit::GetUnit(*me, ArcanagosGUID);
+ Creature* arca = Unit::GetCreature(*me, ArcanagosGUID);
Map* map = me->GetMap();
switch (Step)
{
@@ -548,21 +545,21 @@ public:
return 10000;
case 2:
if (arca)
- CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_2, LANG_UNIVERSAL, 0);
+ arca->MonsterYell(SAY_DIALOG_ARCANAGOS_2, LANG_UNIVERSAL, 0);
return 20000;
case 3:
me->MonsterYell(SAY_DIALOG_MEDIVH_3, LANG_UNIVERSAL, 0);
return 10000;
case 4:
if (arca)
- CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_4, LANG_UNIVERSAL, 0);
+ arca->MonsterYell(SAY_DIALOG_ARCANAGOS_4, LANG_UNIVERSAL, 0);
return 20000;
case 5:
me->MonsterYell(SAY_DIALOG_MEDIVH_5, LANG_UNIVERSAL, 0);
return 20000;
case 6:
if (arca)
- CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_6, LANG_UNIVERSAL, 0);
+ arca->MonsterYell(SAY_DIALOG_ARCANAGOS_6, LANG_UNIVERSAL, 0);
return 10000;
case 7:
FireArcanagosTimer = 500;
@@ -580,7 +577,7 @@ public:
return 1000;
case 11:
if (arca)
- CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_8, LANG_UNIVERSAL, 0);
+ arca->MonsterYell(SAY_DIALOG_ARCANAGOS_8, LANG_UNIVERSAL, 0);
return 5000;
case 12:
arca->GetMotionMaster()->MovePoint(0, -11010.82f, -1761.18f, 156.47f);
@@ -613,12 +610,10 @@ public:
return 5000;
default : return 9999999;
}
-
}
void UpdateAI(const uint32 diff)
{
-
if (YellTimer <= diff)
{
if (EventStarted)
@@ -645,7 +640,6 @@ public:
}
}
};
-
};
void AddSC_karazhan()
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h
index e1817034189..c8a1aa55c7e 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h
+++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h
@@ -64,4 +64,3 @@ enum OperaEvents
#define ERROR_INST_DATA(a) sLog->outError(LOG_FILTER_TSCR, "Instance Data for Karazhan not set properly. Encounter for Creature Entry %u may not work properly.", a->GetEntry());
#endif
-
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
index d1b0e076d9c..7fbd329ab87 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
@@ -189,20 +189,20 @@ public:
ScriptedAI::MoveInLineOfSight(who);
}
- void SetThreatList(Creature* SummonedUnit)
+ void SetThreatList(Creature* summonedUnit)
{
- if (!SummonedUnit)
+ if (!summonedUnit)
return;
- std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList();
- std::list<HostileReference*>::const_iterator i = m_threatlist.begin();
- for (i = m_threatlist.begin(); i != m_threatlist.end(); ++i)
+ ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList();
+ ThreatContainer::StorageType::const_iterator i = threatlist.begin();
+ for (i = threatlist.begin(); i != threatlist.end(); ++i)
{
Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (unit && unit->isAlive())
{
float threat = me->getThreatManager().getThreat(unit);
- SummonedUnit->AddThreat(unit, threat);
+ summonedUnit->AddThreat(unit, threat);
}
}
}
@@ -212,9 +212,9 @@ public:
float x = KaelLocations[0][0];
float y = KaelLocations[0][1];
me->SetPosition(x, y, LOCATION_Z, 0.0f);
- //me->SendMonsterMove(x, y, LOCATION_Z, 0, 0, 0); // causes some issues...
- std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin();
- for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i)
+ ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList();
+ ThreatContainer::StorageType::const_iterator i = threatlist.begin();
+ for (i = threatlist.begin(); i != threatlist.end(); ++i)
{
Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (unit && (unit->GetTypeId() == TYPEID_PLAYER))
@@ -225,8 +225,9 @@ public:
void CastGravityLapseKnockUp()
{
- std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin();
- for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i)
+ ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList();
+ ThreatContainer::StorageType::const_iterator i = threatlist.begin();
+ for (i = threatlist.begin(); i != threatlist.end(); ++i)
{
Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (unit && (unit->GetTypeId() == TYPEID_PLAYER))
@@ -237,8 +238,9 @@ public:
void CastGravityLapseFly() // Use Fly Packet hack for now as players can't cast "fly" spells unless in map 530. Has to be done a while after they get knocked into the air...
{
- std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin();
- for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i)
+ ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList();
+ ThreatContainer::StorageType::const_iterator i = threatlist.begin();
+ for (i = threatlist.begin(); i != threatlist.end(); ++i)
{
Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (unit && (unit->GetTypeId() == TYPEID_PLAYER))
@@ -256,8 +258,9 @@ public:
void RemoveGravityLapse()
{
- std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin();
- for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i)
+ ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList();
+ ThreatContainer::StorageType::const_iterator i = threatlist.begin();
+ for (i = threatlist.begin(); i != threatlist.end(); ++i)
{
Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (unit && (unit->GetTypeId() == TYPEID_PLAYER))
@@ -304,7 +307,6 @@ public:
if (PhoenixTimer <= diff)
{
-
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1);
uint8 random = urand(1, 2);
@@ -408,7 +410,6 @@ public:
Orb->AddThreat(target, 1000000.0f);
Orb->AI()->AttackStart(target);
}
-
}
DoCast(me, SPELL_GRAVITY_LAPSE_CHANNEL);
@@ -429,7 +430,6 @@ public:
}
}
};
-
};
class mob_felkael_flamestrike : public CreatureScript
@@ -471,7 +471,6 @@ public:
} else FlameStrikeTimer -= diff;
}
};
-
};
class mob_felkael_phoenix : public CreatureScript
@@ -520,7 +519,6 @@ public:
{
damage = 0;
return;
-
}
//Don't really die in all phases of Kael'Thas
if (instance && instance->GetData(DATA_KAELTHAS_EVENT) == 0)
@@ -542,9 +540,7 @@ public:
me->GetMotionMaster()->Clear();
me->GetMotionMaster()->MoveIdle();
me->SetStandState(UNIT_STAND_STATE_DEAD);
-
}
-
}
void JustDied(Unit* /*killer*/)
@@ -554,7 +550,6 @@ public:
void UpdateAI(const uint32 diff)
{
-
//If we are fake death, we cast revbirth and after that we kill the phoenix to spawn the egg.
if (FakeDeath)
{
@@ -566,7 +561,6 @@ public:
if (Rebirth)
{
-
if (Death_Timer <= diff)
{
me->SummonCreature(CREATURE_PHOENIX_EGG, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45000);
@@ -574,7 +568,6 @@ public:
Rebirth = false;
} else Death_Timer -= diff;
}
-
}
if (!UpdateVictim())
@@ -591,7 +584,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
class mob_felkael_phoenix_egg : public CreatureScript
@@ -625,10 +617,8 @@ public:
me->SummonCreature(CREATURE_PHOENIX, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000);
me->Kill(me);
} else HatchTimer -= diff;
-
}
};
-
};
class mob_arcane_sphere : public CreatureScript
@@ -685,7 +675,6 @@ public:
} else ChangeTargetTimer -= diff;
}
};
-
};
void AddSC_boss_felblood_kaelthas()
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp
index 7ce9b08845f..2af417381a5 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp
@@ -331,7 +331,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
enum eHealingPotion
@@ -574,7 +573,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
enum eWarlockSpells
@@ -671,7 +669,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
enum eKickDown
@@ -728,7 +725,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
enum eMageSpells
@@ -835,8 +831,8 @@ public:
if (Blink_Timer <= diff)
{
bool InMeleeRange = false;
- std::list<HostileReference*>& t_list = me->getThreatManager().getThreatList();
- for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
+ ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList();
+ for (ThreatContainer::StorageType::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
{
if (Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid()))
{
@@ -859,7 +855,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
enum eWarriorSpells
@@ -922,8 +917,8 @@ public:
if (Intercept_Stun_Timer <= diff)
{
bool InMeleeRange = false;
- std::list<HostileReference*>& t_list = me->getThreatManager().getThreatList();
- for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
+ ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList();
+ for (ThreatContainer::StorageType::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
{
if (Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid()))
{
@@ -979,7 +974,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
enum eHunterSpells
@@ -1103,7 +1097,6 @@ public:
}
}
};
-
};
enum Spells
@@ -1203,7 +1196,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
enum eEngineerSpells
@@ -1298,7 +1290,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
/*
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp
index 82ad3ee2630..430bbb79bde 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp
@@ -105,20 +105,20 @@ public:
for (std::list<uint64>::const_iterator itr = Crystals.begin(); itr != Crystals.end(); ++itr)
{
//Unit* unit = Unit::GetUnit(*me, FelCrystals[i]);
- Unit* unit = Unit::GetUnit(*me, *itr);
- if (unit)
+ if (Creature *creature = Unit::GetCreature(*me, *itr))
{
- if (!unit->isAlive())
- CAST_CRE(unit)->Respawn(); // Let the core handle setting death state, etc.
+ if (!creature->isAlive())
+ creature->Respawn(); // Let the core handle setting death state, etc.
// Only need to set unselectable flag. You can't attack unselectable units so non_attackable flag is not necessary here.
- unit->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
}
instance->HandleGameObject(instance->GetData64(DATA_SELIN_ENCOUNTER_DOOR), true);
// Open the big encounter door. Close it in Aggro and open it only in JustDied(and here)
- // Small door opened after event are expected to be closed by default
+ // Small door opened after event are expected to be closed by default
+
// Set Inst data for encounter
instance->SetData(DATA_SELIN_EVENT, NOT_STARTED);
} else sLog->outError(LOG_FILTER_TSCR, ERROR_INST_DATA);
@@ -291,7 +291,6 @@ public:
DrainCrystalTimer = urand(20000, 25000);
} else DrainCrystalTimer -= diff;
}
-
}else
{
if (IsDraining)
@@ -319,7 +318,6 @@ public:
DoMeleeAttackIfReady(); // No need to check if we are draining crystal here, as the spell has a stun.
}
};
-
};
class mob_fel_crystal : public CreatureScript
@@ -365,7 +363,6 @@ public:
} else sLog->outError(LOG_FILTER_TSCR, ERROR_INST_DATA);
}
};
-
};
void AddSC_boss_selin_fireheart()
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp
index b5cf443c5a5..34682683ee3 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp
@@ -192,7 +192,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
class mob_pure_energy : public CreatureScript
@@ -224,7 +223,6 @@ public:
void MoveInLineOfSight(Unit* /*who*/) {}
void AttackStart(Unit* /*who*/) {}
};
-
};
void AddSC_boss_vexallus()
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp
index cd2874f7253..da8b24c3985 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp
@@ -262,7 +262,6 @@ public:
return 0;
}
};
-
};
void AddSC_instance_magisters_terrace()
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp
index 69e0e5bff40..64b6c8d75b2 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp
@@ -140,14 +140,14 @@ public:
if (lList.isEmpty())
return;
- SpellInfo const* pSpell = sSpellMgr->GetSpellInfo(SPELL_ORB_KILL_CREDIT);
+ SpellInfo const* spell = sSpellMgr->GetSpellInfo(SPELL_ORB_KILL_CREDIT);
for (Map::PlayerList::const_iterator i = lList.begin(); i != lList.end(); ++i)
{
if (Player* player = i->getSource())
{
- if (pSpell && pSpell->Effects[0].MiscValue)
- player->KilledMonsterCredit(pSpell->Effects[0].MiscValue, 0);
+ if (spell && spell->Effects[0].MiscValue)
+ player->KilledMonsterCredit(spell->Effects[0].MiscValue, 0);
}
}
}
@@ -170,7 +170,6 @@ public:
}
}
};
-
};
void AddSC_magisters_terrace()
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h
index 78aa14b9102..660e58d325a 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h
@@ -20,7 +20,6 @@
#define DEF_MAGISTERS_TERRACE_H
#define ERROR_INST_DATA "TSCR Error: Instance Data not set properly for Magister's Terrace instance (map 585). Encounters will be buggy."
-#endif
enum Data
{
@@ -47,3 +46,5 @@ enum Data
DATA_ESCAPE_ORB = 16
};
+
+#endif
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
index 8cf964808d3..34c1c9b2c83 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
@@ -46,7 +46,7 @@ uint32 RandomLaugh[] = {11965, 11975, 11976};
enum Entry
{
HH_MOUNTED = 23682,
- HH_DISMOUNTED = 23800, // unhorsed?? wtf type of engrish was that?
+ HH_DISMOUNTED = 23800,
HEAD = 23775,
PULSING_PUMPKIN = 23694,
PUMPKIN_FIEND = 23545,
@@ -127,7 +127,7 @@ static Locations Spawn[]=
{1765.28f, 1347.46f, 17.55f} //spawn point for smoke
};
-static const char* Text[]=
+static char const* Text[]=
{
"Horseman rise...",
"Your time is nigh...",
@@ -592,8 +592,8 @@ public:
caster->GetMotionMaster()->Clear(false);
caster->GetMotionMaster()->MoveFollow(me, 6, float(urand(0, 5)));
//DoResetThreat();//not sure if need
- std::list<HostileReference*>::const_iterator itr;
- for (itr = caster->getThreatManager().getThreatList().begin(); itr != caster->getThreatManager().getThreatList().end(); ++itr)
+ ThreatContainer::StorageType threatlist = caster->getThreatManager().getThreatList();
+ for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)
{
Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());
if (unit && unit->isAlive() && unit != caster)
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp
index 59244585ecf..dbbbb7fb0dd 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp
@@ -153,12 +153,7 @@ public:
uint32 Start_Timer;
void Reset() {}
-
- void WaypointReached(uint32 /*waypointId*/)
- {
-
- }
-
+ void WaypointReached(uint32 /*waypointId*/) {}
void EnterCombat(Unit* /*who*/) {}
void UpdateAI(const uint32 diff)
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
index e40a48d0251..c763cb69dec 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
@@ -344,7 +344,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
void AddSC_boss_brutallus()
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
index e7b0e86285e..34548ec9116 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
@@ -121,13 +121,12 @@ public:
if (instance)
{
- Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_ALYTHESS));
- if (Temp)
+ if (Creature *temp = Unit::GetCreature(*me, instance->GetData64(DATA_ALYTHESS)))
{
- if (Temp->isDead())
- CAST_CRE(Temp)->Respawn();
- else if (Temp->getVictim())
- me->getThreatManager().addThreat(Temp->getVictim(), 0.0f);
+ if (temp->isDead())
+ temp->Respawn();
+ else if (temp->getVictim())
+ me->getThreatManager().addThreat(temp->getVictim(), 0.0f);
}
}
@@ -153,9 +152,9 @@ public:
if (instance)
{
- Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_ALYTHESS));
- if (Temp && Temp->isAlive() && !(Temp->getVictim()))
- CAST_CRE(Temp)->AI()->AttackStart(who);
+ Creature *temp = Unit::GetCreature(*me, instance->GetData64(DATA_ALYTHESS));
+ if (temp && temp->isAlive() && !temp->getVictim())
+ temp->AI()->AttackStart(who);
}
if (instance)
@@ -341,7 +340,6 @@ public:
}
}
};
-
};
class boss_alythess : public CreatureScript
@@ -383,13 +381,12 @@ public:
if (instance)
{
- Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_SACROLASH));
- if (Temp)
+ if (Creature *temp = Unit::GetCreature((*me), instance->GetData64(DATA_SACROLASH)))
{
- if (Temp->isDead())
- CAST_CRE(Temp)->Respawn();
- else if (Temp->getVictim())
- me->getThreatManager().addThreat(Temp->getVictim(), 0.0f);
+ if (temp->isDead())
+ temp->Respawn();
+ else if (temp->getVictim())
+ me->getThreatManager().addThreat(temp->getVictim(), 0.0f);
}
}
@@ -416,9 +413,9 @@ public:
if (instance)
{
- Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_SACROLASH));
- if (Temp && Temp->isAlive() && !(Temp->getVictim()))
- CAST_CRE(Temp)->AI()->AttackStart(who);
+ Creature *temp = Unit::GetCreature(*me, instance->GetData64(DATA_SACROLASH));
+ if (temp && temp->isAlive() && !temp->getVictim())
+ temp->AI()->AttackStart(who);
}
if (instance)
@@ -480,7 +477,6 @@ public:
{
switch (spell->Id)
{
-
case SPELL_BLAZE:
target->CastSpell(target, SPELL_BLAZE_SUMMON, true);
case SPELL_CONFLAGRATION:
@@ -670,7 +666,6 @@ public:
} else EnrageTimer -= diff;
}
};
-
};
class mob_shadow_image : public CreatureScript
@@ -705,7 +700,6 @@ public:
{
switch (spell->Id)
{
-
case SPELL_SHADOW_FURY:
case SPELL_DARK_STRIKE:
if (!target->HasAura(SPELL_DARK_FLAME))
@@ -752,7 +746,6 @@ public:
} else DarkstrikeTimer -= diff;
}
};
-
};
void AddSC_boss_eredar_twins()
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
index 7267c4e1bdb..bc841d76714 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
@@ -512,7 +512,6 @@ public:
}
}
};
-
};
class mob_felmyst_vapor : public CreatureScript
@@ -545,7 +544,6 @@ public:
AttackStart(target);
}
};
-
};
class mob_felmyst_trail : public CreatureScript
@@ -573,7 +571,6 @@ public:
void MoveInLineOfSight(Unit* /*who*/) {}
void UpdateAI(const uint32 /*diff*/) {}
};
-
};
void AddSC_boss_felmyst()
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
index 57e69238816..3e503a547d8 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
@@ -304,11 +304,20 @@ public:
if (SpectralBlastTimer <= diff)
{
- std::list<HostileReference*> &m_threatlist = me->getThreatManager().getThreatList();
+ ThreatContainer::StorageType const& m_threatlist = me->getThreatManager().getThreatList();
std::list<Unit*> targetList;
- for (std::list<HostileReference*>::const_iterator itr = m_threatlist.begin(); itr!= m_threatlist.end(); ++itr)
- if ((*itr)->getTarget() && (*itr)->getTarget()->GetTypeId() == TYPEID_PLAYER && (*itr)->getTarget()->GetGUID() != me->getVictim()->GetGUID() && !(*itr)->getTarget()->HasAura(AURA_SPECTRAL_EXHAUSTION) && (*itr)->getTarget()->GetPositionZ() > me->GetPositionZ()-5)
- targetList.push_back((*itr)->getTarget());
+ for (ThreatContainer::StorageType::const_iterator itr = m_threatlist.begin(); itr!= m_threatlist.end(); ++itr)
+ {
+ Unit* target = (*itr)->getTarget();
+ if (target
+ && target->GetTypeId() == TYPEID_PLAYER
+ && target->GetGUID() != me->getVictim()->GetGUID()
+ && target->GetPositionZ() > me->GetPositionZ() - 5
+ && !target->HasAura(AURA_SPECTRAL_EXHAUSTION))
+ {
+ targetList.push_back(target);
+ }
+ }
if (targetList.empty())
{
SpectralBlastTimer = 1000;
@@ -431,7 +440,6 @@ public:
}
}
};
-
};
class boss_kalec : public CreatureScript
@@ -533,7 +541,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
class kalecgos_teleporter : public GameObjectScript
@@ -561,7 +568,6 @@ public:
player->CastSpell(player, SPELL_TELEPORT_SPECTRAL, true);
return true;
}
-
};
class boss_sathrovarr : public CreatureScript
@@ -761,15 +767,12 @@ public:
if (ResetThreat <= diff)
{
- for (std::list<HostileReference*>::const_iterator itr = me->getThreatManager().getThreatList().begin(); itr != me->getThreatManager().getThreatList().end(); ++itr)
+ ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList();
+ for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)
{
if (Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid()))
- {
- if (unit->GetPositionZ() > me->GetPositionZ()+5)
- {
+ if (unit->GetPositionZ() > me->GetPositionZ() + 5)
me->getThreatManager().modifyThreatPercent(unit, -100);
- }
- }
}
ResetThreat = 1000;
} else ResetThreat -= diff;
@@ -799,7 +802,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
void AddSC_boss_kalecgos()
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
index 9085bf239a6..8dabe2b842d 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
@@ -367,7 +367,6 @@ public:
}
}
};
-
};
class go_orb_of_the_blue_flight : public GameObjectScript
@@ -391,7 +390,6 @@ public:
}
return true;
}
-
};
//AI for Kil'jaeden Event Controller
@@ -492,7 +490,6 @@ public:
}
}
};
-
};
//AI for Kil'jaeden
@@ -900,7 +897,6 @@ public:
}
}
};
-
};
//AI for Hand of the Deceiver
@@ -987,8 +983,8 @@ public:
{
if (Creature* pPortal = DoSpawnCreature(CREATURE_FELFIRE_PORTAL, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 20000))
{
- std::list<HostileReference*>::iterator itr;
- for (itr = me->getThreatManager().getThreatList().begin(); itr != me->getThreatManager().getThreatList().end(); ++itr)
+ ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList();
+ for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)
{
Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());
if (unit)
@@ -1001,7 +997,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
//AI for Felfire Portal
@@ -1046,7 +1041,6 @@ public:
} else uiSpawnFiendTimer -= diff;
}
};
-
};
//AI for Felfire Fiend
@@ -1104,7 +1098,6 @@ public:
}
}
};
-
};
//AI for Armageddon target
@@ -1159,7 +1152,6 @@ public:
} else uiTimer -=diff;
}
};
-
};
//AI for Shield Orbs
@@ -1247,7 +1239,6 @@ public:
bPointReached = true;
}
};
-
};
//AI for Sinister Reflection
@@ -1310,7 +1301,8 @@ public:
}
}
- switch (victimClass) {
+ switch (victimClass)
+ {
case CLASS_DRUID:
if (uiTimer[1] <= diff)
{
@@ -1411,13 +1403,12 @@ public:
}
DoMeleeAttackIfReady();
break;
- }
- sLog->outDebug(LOG_FILTER_TSCR, "Sinister-Timer");
- for (uint8 i = 0; i < 3; ++i)
- uiTimer[i] -= diff;
}
+ sLog->outDebug(LOG_FILTER_TSCR, "Sinister-Timer");
+ for (uint8 i = 0; i < 3; ++i)
+ uiTimer[i] -= diff;
+ }
};
-
};
void AddSC_boss_kiljaeden()
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
index c00ab84b567..9fd0a5eb5d8 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
@@ -199,7 +199,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
class boss_muru : public CreatureScript
@@ -364,7 +363,6 @@ public:
}
}
};
-
};
class npc_muru_portal : public CreatureScript
@@ -448,7 +446,6 @@ public:
} else SummonTimer -= diff;
}
};
-
};
class npc_dark_fiend : public CreatureScript
@@ -500,7 +497,6 @@ public:
}
else
{
-
if (me->IsWithinDist(me->getVictim(), 5))
{
DoCastAOE(SPELL_DARKFIEND_AOE, false);
@@ -511,7 +507,6 @@ public:
} else WaitTimer -= diff;
}
};
-
};
class npc_void_sentinel : public CreatureScript
@@ -567,7 +562,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
class npc_blackhole : public CreatureScript
@@ -646,7 +640,6 @@ public:
else DespawnTimer -= diff;
}
};
-
};
void AddSC_boss_muru()
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp
index 6324c5adf16..bea73837304 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp
@@ -134,8 +134,9 @@ public:
return player;
}
}
+ else
+ sLog->outDebug(LOG_FILTER_TSCR, "Instance Sunwell Plateau: GetPlayerInMap, but PlayerList is empty!");
- sLog->outDebug(LOG_FILTER_TSCR, "Instance Sunwell Plateau: GetPlayerInMap, but PlayerList is empty!");
return NULL;
}
@@ -281,7 +282,7 @@ public:
return stream.str();
}
- void Load(const char* in)
+ void Load(char const* in)
{
if (!in)
{
@@ -299,7 +300,6 @@ public:
OUT_LOAD_INST_DATA_COMPLETE;
}
};
-
};
void AddSC_instance_sunwell_plateau()
diff --git a/src/server/scripts/Events/CMakeLists.txt b/src/server/scripts/Events/CMakeLists.txt
new file mode 100644
index 00000000000..d8be052d645
--- /dev/null
+++ b/src/server/scripts/Events/CMakeLists.txt
@@ -0,0 +1,17 @@
+# Copyright (C) 2008-2011 TrinityCore <http://www.trinitycore.org/>
+#
+# This file is free software; as a special exception the author gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+set(scripts_STAT_SRCS
+ ${scripts_STAT_SRCS}
+ Events/childrens_week.cpp
+ Events/event.cpp
+)
+
+message(" -> Prepared: Events")
diff --git a/src/server/scripts/Events/childrens_week.cpp b/src/server/scripts/Events/childrens_week.cpp
new file mode 100644
index 00000000000..c4d3650868d
--- /dev/null
+++ b/src/server/scripts/Events/childrens_week.cpp
@@ -0,0 +1,1048 @@
+/*
+* Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
+*
+* This program is free software; you can redistribute it and/or modify it
+* under the terms of the GNU General Public License as published by the
+* Free Software Foundation; either version 2 of the License, or (at your
+* option) any later version.
+*
+* This program is distributed in the hope that it will be useful, but WITHOUT
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+* more details.
+*
+* You should have received a copy of the GNU General Public License along
+* with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+
+enum Orphans
+{
+ ORPHAN_ORACLE = 33533,
+ ORPHAN_WOLVAR = 33532,
+ ORPHAN_BLOOD_ELF = 22817,
+ ORPHAN_DRAENEI = 22818,
+ ORPHAN_HUMAN = 14305,
+ ORPHAN_ORCISH = 14444,
+};
+
+enum Texts
+{
+ TEXT_ORACLE_ORPHAN_1 = 1,
+ TEXT_ORACLE_ORPHAN_2 = 2,
+ TEXT_ORACLE_ORPHAN_3 = 3,
+ TEXT_ORACLE_ORPHAN_4 = 4,
+ TEXT_ORACLE_ORPHAN_5 = 5,
+ TEXT_ORACLE_ORPHAN_6 = 6,
+ TEXT_ORACLE_ORPHAN_7 = 7,
+ TEXT_ORACLE_ORPHAN_8 = 8,
+ TEXT_ORACLE_ORPHAN_9 = 9,
+ TEXT_ORACLE_ORPHAN_10 = 10,
+ TEXT_ORACLE_ORPHAN_11 = 11,
+ TEXT_ORACLE_ORPHAN_12 = 12,
+ TEXT_ORACLE_ORPHAN_13 = 13,
+ TEXT_ORACLE_ORPHAN_14 = 14,
+
+ TEXT_WOLVAR_ORPHAN_1 = 1,
+ TEXT_WOLVAR_ORPHAN_2 = 2,
+ TEXT_WOLVAR_ORPHAN_3 = 3,
+ TEXT_WOLVAR_ORPHAN_4 = 4,
+ TEXT_WOLVAR_ORPHAN_5 = 5,
+ // 6 - 9 used in Nesingwary script
+ TEXT_WOLVAR_ORPHAN_10 = 10,
+ TEXT_WOLVAR_ORPHAN_11 = 11,
+ TEXT_WOLVAR_ORPHAN_12 = 12,
+ TEXT_WOLVAR_ORPHAN_13 = 13,
+
+ TEXT_WINTERFIN_PLAYMATE_1 = 1,
+ TEXT_WINTERFIN_PLAYMATE_2 = 2,
+
+ TEXT_SNOWFALL_GLADE_PLAYMATE_1 = 1,
+ TEXT_SNOWFALL_GLADE_PLAYMATE_2 = 2,
+
+ TEXT_SOO_ROO_1 = 1,
+ TEXT_ELDER_KEKEK_1 = 1,
+
+ TEXT_ALEXSTRASZA_2 = 2,
+ TEXT_KRASUS_8 = 8,
+};
+
+enum Quests
+{
+ QUEST_PLAYMATE_WOLVAR = 13951,
+ QUEST_PLAYMATE_ORACLE = 13950,
+ QUEST_THE_BIGGEST_TREE_EVER = 13929,
+ QUEST_THE_BRONZE_DRAGONSHRINE_ORACLE = 13933,
+ QUEST_THE_BRONZE_DRAGONSHRINE_WOLVAR = 13934,
+ QUEST_MEETING_A_GREAT_ONE = 13956,
+ QUEST_THE_MIGHTY_HEMET_NESINGWARY = 13957,
+ QUEST_DOWN_AT_THE_DOCKS = 910,
+ QUEST_GATEWAY_TO_THE_FRONTIER = 911,
+ QUEST_BOUGHT_OF_ETERNALS = 1479,
+ QUEST_SPOOKY_LIGHTHOUSE = 1687,
+ QUEST_STONEWROUGHT_DAM = 1558,
+ QUEST_DARK_PORTAL_H = 10951,
+ QUEST_DARK_PORTAL_A = 10952,
+ QUEST_LORDAERON_THRONE_ROOM = 1800,
+ QUEST_AUCHINDOUN_AND_THE_RING = 10950,
+ QUEST_TIME_TO_VISIT_THE_CAVERNS_H = 10963,
+ QUEST_TIME_TO_VISIT_THE_CAVERNS_A = 10962,
+ QUEST_THE_SEAT_OF_THE_NARUU = 10956,
+ QUEST_CALL_ON_THE_FARSEER = 10968,
+ QUEST_JHEEL_IS_AT_AERIS_LANDING = 10954,
+ QUEST_HCHUU_AND_THE_MUSHROOM_PEOPLE = 10945,
+ QUEST_VISIT_THE_THRONE_OF_ELEMENTS = 10953,
+ QUEST_NOW_WHEN_I_GROW_UP = 11975,
+ QUEST_HOME_OF_THE_BEAR_MEN = 13930,
+ QUEST_THE_DRAGON_QUEEN_ORACLE = 13954,
+ QUEST_THE_DRAGON_QUEEN_WOLVAR = 13955,
+};
+
+enum Areatriggers
+{
+ AT_DOWN_AT_THE_DOCKS = 3551,
+ AT_GATEWAY_TO_THE_FRONTIER = 3549,
+ AT_LORDAERON_THRONE_ROOM = 3547,
+ AT_BOUGHT_OF_ETERNALS = 3546,
+ AT_SPOOKY_LIGHTHOUSE = 3552,
+ AT_STONEWROUGHT_DAM = 3548,
+ AT_DARK_PORTAL = 4356,
+
+ NPC_CAVERNS_OF_TIME_CW_TRIGGER = 22872,
+ NPC_EXODAR_01_CW_TRIGGER = 22851,
+ NPC_EXODAR_02_CW_TRIGGER = 22905,
+ NPC_AERIS_LANDING_CW_TRIGGER = 22838,
+ NPC_AUCHINDOUN_CW_TRIGGER = 22831,
+ NPC_SPOREGGAR_CW_TRIGGER = 22829,
+ NPC_THRONE_OF_ELEMENTS_CW_TRIGGER = 22839,
+ NPC_SILVERMOON_01_CW_TRIGGER = 22866,
+ NPC_KRASUS = 27990,
+};
+
+enum Misc
+{
+ SPELL_SNOWBALL = 21343,
+ SPELL_ORPHAN_OUT = 58818,
+
+ DISPLAY_INVISIBLE = 11686,
+};
+
+uint64 getOrphanGUID(Player* player, uint32 orphan)
+{
+ if (Aura* orphanOut = player->GetAura(SPELL_ORPHAN_OUT))
+ if (orphanOut->GetCaster() && orphanOut->GetCaster()->GetEntry() == orphan)
+ return orphanOut->GetCaster()->GetGUID();
+
+ return 0;
+}
+
+/*######
+## npc_winterfin_playmate
+######*/
+class npc_winterfin_playmate : public CreatureScript
+{
+ public:
+ npc_winterfin_playmate() : CreatureScript("npc_winterfin_playmate") {}
+
+ struct npc_winterfin_playmateAI : public ScriptedAI
+ {
+ npc_winterfin_playmateAI(Creature* creature) : ScriptedAI (creature) {}
+
+ void Reset()
+ {
+ timer = 0;
+ phase = 0;
+ playerGUID = 0;
+ orphanGUID = 0;
+ }
+
+ void MoveInLineOfSight(Unit* who)
+ {
+ if (!phase && who && who->GetDistance2d(me) < 10.0f)
+ if (Player* player = who->ToPlayer())
+ if (player->GetQuestStatus(QUEST_PLAYMATE_ORACLE) == QUEST_STATUS_INCOMPLETE)
+ {
+ playerGUID = player->GetGUID();
+ if ((orphanGUID = getOrphanGUID(player, ORPHAN_ORACLE)))
+ phase = 1;
+ }
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ if (!phase)
+ return;
+
+ if (timer <= diff)
+ {
+ Player* player = Player::GetPlayer(*me, playerGUID);
+ Creature* orphan = Creature::GetCreature(*me, orphanGUID);
+
+ if (!orphan || !player)
+ {
+ Reset();
+ return;
+ }
+
+ switch(phase)
+ {
+ case 1:
+ orphan->GetMotionMaster()->MovePoint(0, me->GetPositionX() + cos(me->GetOrientation()) * 5,me->GetPositionY() + sin(me->GetOrientation()) * 5, me->GetPositionZ());
+ orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_1);
+ timer = 3000;
+ break;
+ case 2:
+ orphan->SetFacingToObject(me);
+ Talk(TEXT_WINTERFIN_PLAYMATE_1);
+ me->HandleEmoteCommand(EMOTE_STATE_DANCE);
+ timer = 3000;
+ break;
+ case 3:
+ orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_2);
+ timer = 3000;
+ break;
+ case 4:
+ Talk(TEXT_WINTERFIN_PLAYMATE_2);
+ timer = 5000;
+ break;
+ case 5:
+ orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_3);
+ me->HandleEmoteCommand(EMOTE_STATE_NONE);
+ player->GroupEventHappens(QUEST_PLAYMATE_ORACLE, me);
+ orphan->GetMotionMaster()->MoveFollow(player, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
+ Reset();
+ return;
+ }
+ ++phase;
+ }
+ else
+ timer -= diff;
+ }
+
+ private:
+ uint32 timer;
+ int8 phase;
+ uint64 playerGUID;
+ uint64 orphanGUID;
+
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new npc_winterfin_playmateAI(creature);
+ }
+};
+
+/*######
+## npc_snowfall_glade_playmate
+######*/
+class npc_snowfall_glade_playmate : public CreatureScript
+{
+ public:
+ npc_snowfall_glade_playmate() : CreatureScript("npc_snowfall_glade_playmate") {}
+
+ struct npc_snowfall_glade_playmateAI : public ScriptedAI
+ {
+ npc_snowfall_glade_playmateAI(Creature* creature) : ScriptedAI (creature) {}
+
+ void Reset()
+ {
+ timer = 0;
+ phase = 0;
+ playerGUID = 0;
+ orphanGUID = 0;
+ }
+
+ void MoveInLineOfSight(Unit* who)
+ {
+ if (!phase && who && who->GetDistance2d(me) < 10.0f)
+ if (Player* player = who->ToPlayer())
+ if (player->GetQuestStatus(QUEST_PLAYMATE_WOLVAR) == QUEST_STATUS_INCOMPLETE)
+ {
+ playerGUID = player->GetGUID();
+ if ((orphanGUID = getOrphanGUID(player, ORPHAN_WOLVAR)))
+ phase = 1;
+ }
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ if (!phase)
+ return;
+
+ if (timer <= diff)
+ {
+ Player* player = Player::GetPlayer(*me, playerGUID);
+ Creature* orphan = Creature::GetCreature(*me, orphanGUID);
+
+ if (!orphan || !player)
+ {
+ Reset();
+ return;
+ }
+
+ switch (phase)
+ {
+ case 1:
+ orphan->GetMotionMaster()->MovePoint(0, me->GetPositionX() + cos(me->GetOrientation()) * 5,me->GetPositionY() + sin(me->GetOrientation()) * 5, me->GetPositionZ());
+ orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_1);
+ timer = 5000;
+ break;
+ case 2:
+ orphan->SetFacingToObject(me);
+ Talk(TEXT_SNOWFALL_GLADE_PLAYMATE_1);
+ DoCast(orphan, SPELL_SNOWBALL);
+ timer = 5000;
+ break;
+ case 3:
+ Talk(TEXT_SNOWFALL_GLADE_PLAYMATE_2);
+ timer = 5000;
+ break;
+ case 4:
+ orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_2);
+ orphan->AI()->DoCast(me, SPELL_SNOWBALL);
+ timer = 5000;
+ break;
+ case 5:
+ orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_3);
+ player->GroupEventHappens(QUEST_PLAYMATE_WOLVAR, me);
+ orphan->GetMotionMaster()->MoveFollow(player, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
+ Reset();
+ return;
+ }
+ ++phase;
+ }
+ else
+ timer -= diff;
+ }
+
+ private:
+ uint32 timer;
+ int8 phase;
+ uint64 playerGUID;
+ uint64 orphanGUID;
+ };
+
+ CreatureAI* GetAI(Creature* pCreature) const
+ {
+ return new npc_snowfall_glade_playmateAI(pCreature);
+ }
+};
+
+/*######
+## npc_the_biggest_tree
+######*/
+class npc_the_biggest_tree : public CreatureScript
+{
+ public:
+ npc_the_biggest_tree() : CreatureScript("npc_the_biggest_tree") {}
+
+ struct npc_the_biggest_treeAI : public ScriptedAI
+ {
+ npc_the_biggest_treeAI(Creature* creature) : ScriptedAI (creature)
+ {
+ me->SetDisplayId(DISPLAY_INVISIBLE);
+ }
+
+ void Reset()
+ {
+ timer = 1000;
+ phase = 0;
+ playerGUID = 0;
+ orphanGUID = 0;
+ }
+
+ void MoveInLineOfSight(Unit* who)
+ {
+ if (!phase && who && who->GetDistance2d(me) < 10.0f)
+ if (Player* player = who->ToPlayer())
+ if (player->GetQuestStatus(QUEST_THE_BIGGEST_TREE_EVER) == QUEST_STATUS_INCOMPLETE)
+ {
+ playerGUID = player->GetGUID();
+ if ((orphanGUID = getOrphanGUID(player, ORPHAN_ORACLE)))
+ phase = 1;
+ }
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ if (!phase)
+ return;
+
+ if (timer <= diff)
+ {
+ Player* player = Player::GetPlayer(*me, playerGUID);
+ Creature* orphan = Creature::GetCreature(*me, orphanGUID);
+
+ if (!orphan || !player)
+ {
+ Reset();
+ return;
+ }
+
+ switch (phase)
+ {
+ case 1:
+ orphan->GetMotionMaster()->MovePoint(0, me->GetPositionX() + cos(me->GetOrientation()) * 5, me->GetPositionY() + sin(me->GetOrientation()) * 5, me->GetPositionZ());
+ timer = 2000;
+ break;
+ case 2:
+ orphan->SetFacingToObject(me);
+ orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_4);
+ timer = 5000;
+ break;
+ case 3:
+ player->GroupEventHappens(QUEST_THE_BIGGEST_TREE_EVER, me);
+ orphan->GetMotionMaster()->MoveFollow(player, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
+ Reset();
+ return;
+ }
+ ++phase;
+ }
+ else
+ timer -= diff;
+ }
+
+ private:
+ uint32 timer;
+ uint8 phase;
+ uint64 playerGUID;
+ uint64 orphanGUID;
+
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new npc_the_biggest_treeAI(creature);
+ }
+};
+
+/*######
+## npc_high_oracle_soo_roo
+######*/
+class npc_high_oracle_soo_roo : public CreatureScript
+{
+ public:
+ npc_high_oracle_soo_roo() : CreatureScript("npc_high_oracle_soo_roo") {}
+
+ struct npc_high_oracle_soo_rooAI : public ScriptedAI
+ {
+ npc_high_oracle_soo_rooAI(Creature* creature) : ScriptedAI (creature) {}
+
+ void Reset()
+ {
+ timer = 0;
+ phase = 0;
+ playerGUID = 0;
+ orphanGUID = 0;
+ }
+
+ void MoveInLineOfSight(Unit* who)
+ {
+ if (!phase && who && who->GetDistance2d(me) < 10.0f)
+ if (Player* player = who->ToPlayer())
+ if (player->GetQuestStatus(QUEST_THE_BRONZE_DRAGONSHRINE_ORACLE) == QUEST_STATUS_INCOMPLETE)
+ {
+ playerGUID = player->GetGUID();
+ if ((orphanGUID = getOrphanGUID(player, ORPHAN_ORACLE)))
+ phase = 1;
+ }
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ if (!phase)
+ return;
+
+ if (timer <= diff)
+ {
+ Player* player = Player::GetPlayer(*me, playerGUID);
+ Creature* orphan = Creature::GetCreature(*me, orphanGUID);
+
+ if (!orphan || !player)
+ {
+ Reset();
+ return;
+ }
+
+ switch (phase)
+ {
+ case 1:
+ orphan->GetMotionMaster()->MovePoint(0, me->GetPositionX() + cos(me->GetOrientation()) * 5, me->GetPositionY() + sin(me->GetOrientation()) * 5, me->GetPositionZ());
+ orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_5);
+ timer = 3000;
+ break;
+ case 2:
+ orphan->SetFacingToObject(me);
+ Talk(TEXT_SOO_ROO_1);
+ timer = 6000;
+ break;
+ case 3:
+ orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_6);
+ player->GroupEventHappens(QUEST_THE_BRONZE_DRAGONSHRINE_ORACLE, me);
+ orphan->GetMotionMaster()->MoveFollow(player, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
+ Reset();
+ return;
+ }
+ ++phase;
+ }
+ else
+ timer -= diff;
+ }
+
+ private:
+ uint32 timer;
+ int8 phase;
+ uint64 playerGUID;
+ uint64 orphanGUID;
+
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new npc_high_oracle_soo_rooAI(creature);
+ }
+};
+
+/*######
+## npc_elder_kekek
+######*/
+class npc_elder_kekek : public CreatureScript
+{
+ public:
+ npc_elder_kekek() : CreatureScript("npc_elder_kekek") {}
+
+ struct npc_elder_kekekAI : public ScriptedAI
+ {
+ npc_elder_kekekAI(Creature* creature) : ScriptedAI (creature) {}
+
+ void Reset()
+ {
+ timer = 0;
+ phase = 0;
+ playerGUID = 0;
+ orphanGUID = 0;
+ }
+
+ void MoveInLineOfSight(Unit* who)
+ {
+ if (!phase && who && who->GetDistance2d(me) < 10.0f)
+ if (Player* player = who->ToPlayer())
+ if (player->GetQuestStatus(QUEST_THE_BRONZE_DRAGONSHRINE_WOLVAR) == QUEST_STATUS_INCOMPLETE)
+ {
+ playerGUID = player->GetGUID();
+ if ((orphanGUID = getOrphanGUID(player, ORPHAN_WOLVAR)))
+ phase = 1;
+ }
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ if (!phase)
+ return;
+
+ if (timer <= diff)
+ {
+ Player* player = Player::GetPlayer(*me, playerGUID);
+ Creature* orphan = Creature::GetCreature(*me, orphanGUID);
+
+ if (!player || !orphan)
+ {
+ Reset();
+ return;
+ }
+
+ switch (phase)
+ {
+ case 1:
+ orphan->GetMotionMaster()->MovePoint(0, me->GetPositionX() + cos(me->GetOrientation()) * 5, me->GetPositionY() + sin(me->GetOrientation()) * 5, me->GetPositionZ());
+ orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_4);
+ timer = 3000;
+ break;
+ case 2:
+ Talk(TEXT_ELDER_KEKEK_1);
+ timer = 6000;
+ break;
+ case 3:
+ orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_5);
+ player->GroupEventHappens(QUEST_THE_BRONZE_DRAGONSHRINE_WOLVAR, me);
+ orphan->GetMotionMaster()->MoveFollow(player, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
+ Reset();
+ return;
+ }
+ ++phase;
+ }
+ else
+ timer -= diff;
+ }
+
+ private:
+ uint32 timer;
+ int8 phase;
+ uint64 playerGUID;
+ uint64 orphanGUID;
+
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new npc_elder_kekekAI(creature);
+ }
+};
+
+/*######
+## npc_the_etymidian
+## TODO: A red crystal as a gift for the great one should be spawned during the event.
+######*/
+class npc_the_etymidian : public CreatureScript
+{
+ public:
+ npc_the_etymidian() : CreatureScript("npc_the_etymidian") {}
+
+ struct npc_the_etymidianAI : public ScriptedAI
+ {
+ npc_the_etymidianAI(Creature* creature) : ScriptedAI (creature) {}
+
+ void Reset()
+ {
+ timer = 0;
+ phase = 0;
+ playerGUID = 0;
+ orphanGUID = 0;
+ }
+
+ void MoveInLineOfSight(Unit* who)
+ {
+ if (!phase && who && who->GetDistance2d(me) < 10.0f)
+ if (Player* player = who->ToPlayer())
+ if (player->GetQuestStatus(QUEST_MEETING_A_GREAT_ONE) == QUEST_STATUS_INCOMPLETE)
+ {
+ playerGUID = player->GetGUID();
+ if ((orphanGUID = getOrphanGUID(player, ORPHAN_ORACLE)))
+ phase = 1;
+ }
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ if (!phase)
+ return;
+
+ if (timer <= diff)
+ {
+ Player* player = Player::GetPlayer(*me, playerGUID);
+ Creature* orphan = Creature::GetCreature(*me, orphanGUID);
+
+ if (!orphan || !player)
+ {
+ Reset();
+ return;
+ }
+
+ switch (phase)
+ {
+ case 1:
+ orphan->GetMotionMaster()->MovePoint(0, me->GetPositionX() + cos(me->GetOrientation()) * 5, me->GetPositionY() + sin(me->GetOrientation()) * 5, me->GetPositionZ());
+ orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_7);
+ timer = 5000;
+ break;
+ case 2:
+ orphan->SetFacingToObject(me);
+ orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_8);
+ timer = 5000;
+ break;
+ case 3:
+ orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_9);
+ timer = 5000;
+ break;
+ case 4:
+ orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_10);
+ timer = 5000;
+ break;
+ case 5:
+ orphan->GetMotionMaster()->MoveFollow(player, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
+ player->GroupEventHappens(QUEST_MEETING_A_GREAT_ONE, me);
+ Reset();
+ return;
+ }
+ ++phase;
+ }
+ else
+ timer -= diff;
+ }
+
+ private:
+ uint32 timer;
+ int8 phase;
+ uint32 GOtimer;
+ uint64 playerGUID;
+ uint64 orphanGUID;
+
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new npc_the_etymidianAI(creature);
+ }
+};
+
+/*######
+## npc_cw_alexstrasza_trigger
+######*/
+class npc_alexstraza_the_lifebinder : public CreatureScript
+{
+ public:
+ npc_alexstraza_the_lifebinder() : CreatureScript("npc_alexstraza_the_lifebinder") {}
+
+ struct npc_alexstraza_the_lifebinderAI : public ScriptedAI
+ {
+ npc_alexstraza_the_lifebinderAI(Creature* creature) : ScriptedAI (creature) {}
+
+ void Reset()
+ {
+ timer = 0;
+ phase = 0;
+ playerGUID = 0;
+ orphanGUID = 0;
+ }
+
+ void SetData(uint32 type, uint32 data)
+ {
+ // Existing SmartAI
+ if (type == 0)
+ {
+ switch (data)
+ {
+ case 1:
+ me->SetOrientation(1.6049f);
+ break;
+ case 2:
+ me->SetOrientation(me->GetHomePosition().GetOrientation());
+ break;
+ }
+ }
+ }
+
+ void MoveInLineOfSight(Unit* who)
+ {
+ if (!phase && who && who->GetDistance2d(me) < 10.0f)
+ if (Player* player = who->ToPlayer())
+ {
+ if (player->GetQuestStatus(QUEST_THE_DRAGON_QUEEN_ORACLE) == QUEST_STATUS_INCOMPLETE)
+ {
+ if ((orphanGUID = getOrphanGUID(player, ORPHAN_ORACLE)))
+ phase = 1;
+ playerGUID = player->GetGUID();
+ }
+ else if (player->GetQuestStatus(QUEST_THE_DRAGON_QUEEN_WOLVAR) == QUEST_STATUS_INCOMPLETE)
+ {
+ if ((orphanGUID = getOrphanGUID(player, ORPHAN_WOLVAR)))
+ phase = 7;
+ playerGUID = player->GetGUID();
+ }
+ }
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ if (!phase)
+ return;
+
+ if (timer <= diff)
+ {
+ Player* player = Player::GetPlayer(*me, playerGUID);
+ Creature* orphan = Creature::GetCreature(*me, orphanGUID);
+
+ if (!orphan || !player)
+ {
+ Reset();
+ return;
+ }
+
+ switch (phase)
+ {
+ case 1:
+ orphan->GetMotionMaster()->MovePoint(0, me->GetPositionX() + cos(me->GetOrientation()) * 5, me->GetPositionY() + sin(me->GetOrientation()) * 5, me->GetPositionZ());
+ orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_11);
+ timer = 5000;
+ break;
+ case 2:
+ orphan->SetFacingToObject(me);
+ orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_12);
+ timer = 5000;
+ break;
+ case 3:
+ orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_13);
+ timer = 5000;
+ break;
+ case 4:
+ Talk(TEXT_ALEXSTRASZA_2);
+ me->SetStandState(UNIT_STAND_STATE_KNEEL);
+ me->SetFacingToObject(orphan);
+ timer = 5000;
+ break;
+ case 5:
+ orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_14);
+ timer = 5000;
+ break;
+ case 6:
+ me->SetStandState(UNIT_STAND_STATE_STAND);
+ me->SetOrientation(me->GetHomePosition().GetOrientation());
+ player->GroupEventHappens(QUEST_THE_DRAGON_QUEEN_ORACLE, me);
+ orphan->GetMotionMaster()->MoveFollow(player, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
+ Reset();
+ return;
+ case 7:
+ orphan->GetMotionMaster()->MovePoint(0, me->GetPositionX() + cos(me->GetOrientation()) * 5, me->GetPositionY() + sin(me->GetOrientation()) * 5, me->GetPositionZ());
+ orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_11);
+ timer = 5000;
+ break;
+ case 8:
+ if(Creature* krasus = me->FindNearestCreature(NPC_KRASUS, 10.0f))
+ {
+ orphan->SetFacingToObject(krasus);
+ krasus->AI()->Talk(TEXT_KRASUS_8);
+ }
+ timer = 5000;
+ break;
+ case 9:
+ orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_12);
+ timer = 5000;
+ break;
+ case 10:
+ orphan->SetFacingToObject(me);
+ Talk(TEXT_ALEXSTRASZA_2);
+ timer = 5000;
+ break;
+ case 11:
+ orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_13);
+ timer = 5000;
+ break;
+ case 12:
+ player->GroupEventHappens(QUEST_THE_DRAGON_QUEEN_WOLVAR, me);
+ orphan->GetMotionMaster()->MoveFollow(player, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
+ Reset();
+ return;
+ }
+ ++phase;
+ }
+ else
+ timer -= diff;
+ }
+
+ private:
+ int8 phase;
+ uint32 timer;
+ uint64 playerGUID;
+ uint64 orphanGUID;
+ uint64 alexstraszaGUID;
+
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new npc_alexstraza_the_lifebinderAI(creature);
+ }
+};
+
+/*######
+## at_bring_your_orphan_to
+######*/
+
+class at_bring_your_orphan_to : public AreaTriggerScript
+{
+ public:
+ at_bring_your_orphan_to() : AreaTriggerScript("at_bring_your_orphan_to") { }
+
+ bool OnTrigger(Player* player, AreaTriggerEntry const* trigger)
+ {
+ if (player->isDead() || !player->HasAura(SPELL_ORPHAN_OUT))
+ return false;
+
+ uint32 questId = 0;
+ uint32 orphanId = 0;
+
+ switch (trigger->id)
+ {
+ case AT_DOWN_AT_THE_DOCKS:
+ questId = QUEST_DOWN_AT_THE_DOCKS;
+ orphanId = ORPHAN_ORCISH;
+ break;
+ case AT_GATEWAY_TO_THE_FRONTIER:
+ questId = QUEST_GATEWAY_TO_THE_FRONTIER;
+ orphanId = ORPHAN_ORCISH;
+ break;
+ case AT_LORDAERON_THRONE_ROOM:
+ questId = QUEST_LORDAERON_THRONE_ROOM;
+ orphanId = ORPHAN_ORCISH;
+ break;
+ case AT_BOUGHT_OF_ETERNALS:
+ questId = QUEST_BOUGHT_OF_ETERNALS;
+ orphanId = ORPHAN_HUMAN;
+ break;
+ case AT_SPOOKY_LIGHTHOUSE:
+ questId = QUEST_SPOOKY_LIGHTHOUSE;
+ orphanId = ORPHAN_HUMAN;
+ break;
+ case AT_STONEWROUGHT_DAM:
+ questId = QUEST_STONEWROUGHT_DAM;
+ orphanId = ORPHAN_HUMAN;
+ break;
+ case AT_DARK_PORTAL:
+ questId = player->GetTeam() == ALLIANCE ? QUEST_DARK_PORTAL_A : QUEST_DARK_PORTAL_H;
+ orphanId = player->GetTeam() == ALLIANCE ? ORPHAN_DRAENEI : ORPHAN_BLOOD_ELF;
+ break;
+ }
+
+ if (questId && orphanId && getOrphanGUID(player, orphanId) && player->GetQuestStatus(questId) == QUEST_STATUS_INCOMPLETE)
+ player->AreaExploredOrEventHappens(questId);
+
+ return true;
+ }
+};
+
+/*######
+## npc_cw_area_trigger
+######*/
+class npc_cw_area_trigger : public CreatureScript
+{
+ public:
+ npc_cw_area_trigger() : CreatureScript("npc_cw_area_trigger") {}
+
+ struct npc_cw_area_triggerAI : public ScriptedAI
+ {
+ npc_cw_area_triggerAI(Creature* creature) : ScriptedAI (creature)
+ {
+ me->SetDisplayId(DISPLAY_INVISIBLE);
+ }
+
+ void MoveInLineOfSight(Unit* who)
+ {
+ if (who && me->GetDistance2d(who) < 20.0f)
+ if (Player* player = who->ToPlayer())
+ if (player->HasAura(SPELL_ORPHAN_OUT))
+ {
+ uint32 questId = 0;
+ uint32 orphanId = 0;
+ switch (me->GetEntry())
+ {
+ case NPC_CAVERNS_OF_TIME_CW_TRIGGER:
+ questId = player->GetTeam() == ALLIANCE ? QUEST_TIME_TO_VISIT_THE_CAVERNS_A : QUEST_TIME_TO_VISIT_THE_CAVERNS_H;
+ orphanId = player->GetTeam() == ALLIANCE ? ORPHAN_DRAENEI : ORPHAN_BLOOD_ELF;
+ break;
+ case NPC_EXODAR_01_CW_TRIGGER:
+ questId = QUEST_THE_SEAT_OF_THE_NARUU;
+ orphanId = ORPHAN_DRAENEI;
+ break;
+ case NPC_EXODAR_02_CW_TRIGGER:
+ questId = QUEST_CALL_ON_THE_FARSEER;
+ orphanId = ORPHAN_DRAENEI;
+ break;
+ case NPC_AERIS_LANDING_CW_TRIGGER:
+ questId = QUEST_JHEEL_IS_AT_AERIS_LANDING;
+ orphanId = ORPHAN_DRAENEI;
+ break;
+ case NPC_AUCHINDOUN_CW_TRIGGER:
+ questId = QUEST_AUCHINDOUN_AND_THE_RING;
+ orphanId = ORPHAN_DRAENEI;
+ break;
+ case NPC_SPOREGGAR_CW_TRIGGER:
+ questId = QUEST_HCHUU_AND_THE_MUSHROOM_PEOPLE;
+ orphanId = ORPHAN_BLOOD_ELF;
+ break;
+ case NPC_THRONE_OF_ELEMENTS_CW_TRIGGER:
+ questId = QUEST_VISIT_THE_THRONE_OF_ELEMENTS;
+ orphanId = ORPHAN_BLOOD_ELF;
+ break;
+ case NPC_SILVERMOON_01_CW_TRIGGER:
+ if (player->GetQuestStatus(QUEST_NOW_WHEN_I_GROW_UP) == QUEST_STATUS_INCOMPLETE && getOrphanGUID(player, ORPHAN_BLOOD_ELF))
+ {
+ player->AreaExploredOrEventHappens(QUEST_NOW_WHEN_I_GROW_UP);
+ if (player->GetQuestStatus(QUEST_NOW_WHEN_I_GROW_UP) == QUEST_STATUS_COMPLETE)
+ if (Creature* samuro = me->FindNearestCreature(25151, 20.0f))
+ {
+ uint32 emote = 0;
+ switch(urand(1,5))
+ {
+ case 1:
+ emote = EMOTE_ONESHOT_WAVE;
+ break;
+ case 2:
+ emote = EMOTE_ONESHOT_ROAR;
+ break;
+ case 3:
+ emote = EMOTE_ONESHOT_FLEX;
+ break;
+ case 4:
+ emote = EMOTE_ONESHOT_SALUTE;
+ break;
+ case 5:
+ emote = EMOTE_ONESHOT_DANCE;
+ break;
+ }
+ samuro->HandleEmoteCommand(emote);
+ }
+ }
+ break;
+ }
+ if (questId && orphanId && getOrphanGUID(player, orphanId) && player->GetQuestStatus(questId) == QUEST_STATUS_INCOMPLETE)
+ player->AreaExploredOrEventHappens(questId);
+ }
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new npc_cw_area_triggerAI(creature);
+ }
+};
+
+/*######
+## npc_grizzlemaw_cw_trigger
+######*/
+class npc_grizzlemaw_cw_trigger : public CreatureScript
+{
+ public:
+ npc_grizzlemaw_cw_trigger() : CreatureScript("npc_grizzlemaw_cw_trigger") {}
+
+ struct npc_grizzlemaw_cw_triggerAI : public ScriptedAI
+ {
+ npc_grizzlemaw_cw_triggerAI(Creature* creature) : ScriptedAI (creature)
+ {
+ me->SetDisplayId(DISPLAY_INVISIBLE);
+ }
+
+ void MoveInLineOfSight(Unit* who)
+ {
+ if (who && who->GetDistance2d(me) < 10.0f)
+ if (Player* player = who->ToPlayer())
+ if (player->GetQuestStatus(QUEST_HOME_OF_THE_BEAR_MEN) == QUEST_STATUS_INCOMPLETE)
+ if (Creature* orphan = Creature::GetCreature(*me, getOrphanGUID(player, ORPHAN_WOLVAR)))
+ {
+ player->AreaExploredOrEventHappens(QUEST_HOME_OF_THE_BEAR_MEN);
+ orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_10);
+ }
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new npc_grizzlemaw_cw_triggerAI(creature);
+ }
+};
+
+void AddSC_event_childrens_week()
+{
+ new npc_elder_kekek();
+ new npc_high_oracle_soo_roo();
+ new npc_winterfin_playmate();
+ new npc_snowfall_glade_playmate();
+ new npc_the_etymidian();
+ new npc_the_biggest_tree();
+ new at_bring_your_orphan_to();
+ new npc_grizzlemaw_cw_trigger();
+ new npc_cw_area_trigger();
+ new npc_alexstraza_the_lifebinder();
+}
diff --git a/src/server/scripts/Events/event.cpp b/src/server/scripts/Events/event.cpp
new file mode 100644
index 00000000000..22334f8d365
--- /dev/null
+++ b/src/server/scripts/Events/event.cpp
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptPCH.h"
+
+void AddSC_event_childrens_week();
+
+void AddSC_event_scripts()
+{
+ AddSC_event_childrens_week();
+}
diff --git a/src/server/scripts/Examples/example_gossip_codebox.cpp b/src/server/scripts/Examples/example_gossip_codebox.cpp
index a5627c68ff6..d6936c8fb9e 100644
--- a/src/server/scripts/Examples/example_gossip_codebox.cpp
+++ b/src/server/scripts/Examples/example_gossip_codebox.cpp
@@ -72,7 +72,7 @@ class example_gossip_codebox : public CreatureScript
return true;
}
- bool OnGossipSelectCode(Player* player, Creature* creature, uint32 sender, uint32 action, const char* code)
+ bool OnGossipSelectCode(Player* player, Creature* creature, uint32 sender, uint32 action, char const* code)
{
player->PlayerTalkClass->ClearMenus();
if (sender == GOSSIP_SENDER_MAIN)
@@ -80,7 +80,7 @@ class example_gossip_codebox : public CreatureScript
switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
- if (std::strcmp(code, player->GetName()) != 0)
+ if (player->GetName() != code)
{
DoScriptText(SAY_WRONG, creature);
creature->CastSpell(player, SPELL_POLYMORPH, true);
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
index ee988accbac..1c91d78cd29 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
@@ -129,7 +129,6 @@ public:
} else CheckTimer -= diff;
}
};
-
};
/* This script is merely a placeholder for the Doomfire that triggers Doomfire spell. It will
@@ -220,7 +219,6 @@ public:
} else ChangeTargetTimer -= diff;
}
};
-
};
/* Finally, Archimonde's script. His script isn't extremely complex, most are simply spells on timers.
@@ -315,8 +313,8 @@ public:
{
Talk(SAY_SLAY);
- if (victim && (victim->GetTypeId() == TYPEID_PLAYER))
- GainSoulCharge(CAST_PLR(victim));
+ if (victim && victim->GetTypeId() == TYPEID_PLAYER)
+ GainSoulCharge(victim->ToPlayer());
}
void GainSoulCharge(Player* victim)
@@ -360,13 +358,13 @@ public:
if (victim && me->IsWithinDistInMap(victim, me->GetAttackDistance(victim)))
return false;
- std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList();
- if (m_threatlist.empty())
+ ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList();
+ if (threatlist.empty())
return false;
std::list<Unit*> targets;
- std::list<HostileReference*>::const_iterator itr = m_threatlist.begin();
- for (; itr != m_threatlist.end(); ++itr)
+ ThreatContainer::StorageType::const_iterator itr = threatlist.begin();
+ for (; itr != threatlist.end(); ++itr)
{
Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());
if (unit && unit->isAlive())
@@ -637,13 +635,8 @@ public:
DoMeleeAttackIfReady();
}
-
- void WaypointReached(uint32 /*waypointId*/)
- {
-
- }
+ void WaypointReached(uint32 /*waypointId*/) { }
};
-
};
void AddSC_boss_archimonde()
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
index 9aa2ccbee9d..411e55275b9 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
@@ -368,7 +368,7 @@ class boss_halion : public CreatureScript
{
events.SetPhase(PHASE_TWO);
Talk(SAY_PHASE_TWO);
-
+
me->CastStop();
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
DoCast(me, SPELL_TWILIGHT_PHASING);
@@ -1740,7 +1740,7 @@ void AddSC_boss_halion()
{
new boss_halion();
new boss_twilight_halion();
-
+
new npc_halion_controller();
new npc_meteor_strike_initial();
new npc_meteor_strike();
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
index 10b40b490c4..c88377da3f3 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
@@ -59,7 +59,8 @@ enum Yells
SAY_REQUEST_AID = -1533103, //start of phase 3
SAY_ANSWER_REQUEST = -1533104 //lich king answer
};
-enum Event
+
+enum Events
{
EVENT_NONE,
EVENT_BOLT,
@@ -607,13 +608,17 @@ public:
case EVENT_DETONATE:
{
std::vector<Unit*> unitList;
- std::list<HostileReference*> *threatList = &me->getThreatManager().getThreatList();
- for (std::list<HostileReference*>::const_iterator itr = threatList->begin(); itr != threatList->end(); ++itr)
+ ThreatContainer::StorageType const &threatList = me->getThreatManager().getThreatList();
+ for (ThreatContainer::StorageType::const_iterator itr = threatList.begin(); itr != threatList.end(); ++itr)
{
- if ((*itr)->getTarget()->GetTypeId() == TYPEID_PLAYER
- && (*itr)->getTarget()->getPowerType() == POWER_MANA
- && (*itr)->getTarget()->GetPower(POWER_MANA))
- unitList.push_back((*itr)->getTarget());
+ Unit * const target = (*itr)->getTarget();
+
+ if (target->GetTypeId() == TYPEID_PLAYER
+ && target->getPowerType() == POWER_MANA
+ && target->GetPower(POWER_MANA))
+ {
+ unitList.push_back(target);
+ }
}
if (!unitList.empty())
@@ -654,7 +659,6 @@ public:
{
return new boss_kelthuzadAI (creature);
}
-
};
class at_kelthuzad_center : public AreaTriggerScript
diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
index 9f5eb8d879a..28f73ed14b0 100644
--- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
+++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
@@ -305,8 +305,8 @@ public:
summons.DespawnAll();
// players that used Hover Disk are no in the aggro list
me->SetInCombatWithZone();
- std::list<HostileReference*> &m_threatlist = me->getThreatManager().getThreatList();
- for (std::list<HostileReference*>::const_iterator itr = m_threatlist.begin(); itr!= m_threatlist.end(); ++itr)
+ ThreatContainer::StorageType const& m_threatlist = me->getThreatManager().getThreatList();
+ for (ThreatContainer::StorageType::const_iterator itr = m_threatlist.begin(); itr!= m_threatlist.end(); ++itr)
{
if (Unit* target = (*itr)->getTarget())
{
@@ -683,8 +683,8 @@ class spell_malygos_vortex_visual : public SpellScriptLoader
{
if (Unit* caster = GetCaster())
{
- std::list<HostileReference*> &m_threatlist = caster->getThreatManager().getThreatList();
- for (std::list<HostileReference*>::const_iterator itr = m_threatlist.begin(); itr!= m_threatlist.end(); ++itr)
+ ThreatContainer::StorageType const& m_threatlist = caster->getThreatManager().getThreatList();
+ for (ThreatContainer::StorageType::const_iterator itr = m_threatlist.begin(); itr!= m_threatlist.end(); ++itr)
{
if (Unit* target = (*itr)->getTarget())
{
diff --git a/src/server/scripts/Northrend/sholazar_basin.cpp b/src/server/scripts/Northrend/sholazar_basin.cpp
index 56ef25c5753..14319d26cf5 100644
--- a/src/server/scripts/Northrend/sholazar_basin.cpp
+++ b/src/server/scripts/Northrend/sholazar_basin.cpp
@@ -470,11 +470,27 @@ public:
enum utils
{
- NPC_HEMET = 27986,
- NPC_HADRIUS = 28047,
- NPC_TAMARA = 28568,
- SPELL_OFFER = 51962,
- QUEST_ENTRY = 12645,
+ NPC_HEMET = 27986,
+ NPC_HADRIUS = 28047,
+ NPC_TAMARA = 28568,
+ SPELL_OFFER = 51962,
+ QUEST_ENTRY = 12645,
+};
+
+enum NesingwaryChildrensWeek
+{
+ SPELL_ORPHAN_OUT = 58818,
+
+ QUEST_THE_MIGHTY_HEMET_NESINGWARY = 13957,
+
+ ORPHAN_WOLVAR = 33532,
+
+ TEXT_WOLVAR_ORPHAN_6 = 6,
+ TEXT_WOLVAR_ORPHAN_7 = 7,
+ TEXT_WOLVAR_ORPHAN_8 = 8,
+ TEXT_WOLVAR_ORPHAN_9 = 9,
+
+ TEXT_NESINGWARY_1 = 1,
};
class npc_jungle_punch_target : public CreatureScript
@@ -486,17 +502,86 @@ public:
{
npc_jungle_punch_targetAI(Creature* creature) : ScriptedAI(creature) {}
- uint16 sayTimer;
- uint8 sayStep;
-
void Reset()
{
sayTimer = 3500;
sayStep = 0;
+ timer = 0;
+ phase = 0;
+ playerGUID = 0;
+ orphanGUID = 0;
+ }
+
+ void MoveInLineOfSight(Unit* who)
+ {
+ if (!phase && who && who->GetDistance2d(me) < 10.0f)
+ if (Player* player = who->ToPlayer())
+ if (player->GetQuestStatus(QUEST_THE_MIGHTY_HEMET_NESINGWARY) == QUEST_STATUS_INCOMPLETE)
+ {
+ playerGUID = player->GetGUID();
+ if (Aura* orphanOut = player->GetAura(SPELL_ORPHAN_OUT))
+ if (orphanOut->GetCaster() && orphanOut->GetCaster()->GetEntry() == ORPHAN_WOLVAR)
+ {
+ orphanGUID = orphanOut->GetCaster()->GetGUID();
+ phase = 1;
+ }
+ }
+ }
+
+ void proceedCwEvent(const uint32 diff)
+ {
+ if (timer <= diff)
+ {
+ Player* player = Player::GetPlayer(*me, playerGUID);
+ Creature* orphan = Creature::GetCreature(*me, orphanGUID);
+
+ if(!orphan || !player)
+ {
+ Reset();
+ return;
+ }
+
+ switch(phase)
+ {
+ case 1:
+ orphan->GetMotionMaster()->MovePoint(0, me->GetPositionX() + cos(me->GetOrientation()) * 5, me->GetPositionY() + sin(me->GetOrientation()) * 5, me->GetPositionZ());
+ orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_6);
+ timer = 5000;
+ break;
+ case 2:
+ orphan->SetFacingToObject(me);
+ orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_7);
+ timer = 5000;
+ break;
+ case 3:
+ Talk(TEXT_NESINGWARY_1);
+ timer = 5000;
+ break;
+ case 4:
+ orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_8);
+ timer = 5000;
+ break;
+ case 5:
+ orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_9);
+ timer = 5000;
+ break;
+ case 6:
+ orphan->GetMotionMaster()->MoveFollow(player, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
+ player->GroupEventHappens(QUEST_THE_MIGHTY_HEMET_NESINGWARY, me);
+ Reset();
+ return;
+ }
+ ++phase;
+ }
+ else
+ timer -= diff;
}
void UpdateAI(const uint32 uiDiff)
{
+ if (phase)
+ proceedCwEvent(uiDiff);
+
if (!sayStep)
return;
@@ -588,6 +673,14 @@ public:
break;
}
}
+
+ private:
+ uint16 sayTimer;
+ uint8 sayStep;
+ uint32 timer;
+ int8 phase;
+ uint64 playerGUID;
+ uint64 orphanGUID;
};
CreatureAI* GetAI(Creature* creature) const
diff --git a/src/server/scripts/Northrend/wintergrasp.cpp b/src/server/scripts/Northrend/wintergrasp.cpp
index 2aed813550d..d4a3f83ab70 100644
--- a/src/server/scripts/Northrend/wintergrasp.cpp
+++ b/src/server/scripts/Northrend/wintergrasp.cpp
@@ -559,7 +559,8 @@ public:
{
if (Battlefield* wg = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG))
if (Player* target = GetExplTargetUnit()->ToPlayer())
- if (target->GetTeamId() != wg->GetDefenderTeam() || target->HasAura(SPELL_WINTERGRASP_TELEPORT_TRIGGER))
+ // check if we are in Wintergrasp at all, SotA uses same teleport spells
+ if ((target->GetZoneId() == 4197) && target->GetTeamId() != wg->GetDefenderTeam() || target->HasAura(SPELL_WINTERGRASP_TELEPORT_TRIGGER))
return SPELL_FAILED_BAD_TARGETS;
return SPELL_CAST_OK;
}
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp
index 9572125a4bd..fdf6533a64b 100755
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp
@@ -296,9 +296,12 @@ void OPvPCapturePointTF::ChangeState()
uint32 alliance_towers = ((OutdoorPvPTF*)m_PvP)->GetAllianceTowersControlled();
if (alliance_towers < TF_TOWER_NUM)
((OutdoorPvPTF*)m_PvP)->SetAllianceTowersControlled(++alliance_towers);
+
sWorld->SendZoneText(OutdoorPvPTFBuffZones[0], sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_TF_CAPTURE_A));
+
for (PlayerSet::iterator itr = m_activePlayers[0].begin(); itr != m_activePlayers[0].end(); ++itr)
- (*itr)->AreaExploredOrEventHappens(TF_ALLY_QUEST);
+ if (Player* player = ObjectAccessor::FindPlayer(*itr))
+ player->AreaExploredOrEventHappens(TF_ALLY_QUEST);
break;
}
case OBJECTIVESTATE_HORDE:
@@ -308,9 +311,12 @@ void OPvPCapturePointTF::ChangeState()
uint32 horde_towers = ((OutdoorPvPTF*)m_PvP)->GetHordeTowersControlled();
if (horde_towers < TF_TOWER_NUM)
((OutdoorPvPTF*)m_PvP)->SetHordeTowersControlled(++horde_towers);
+
sWorld->SendZoneText(OutdoorPvPTFBuffZones[0], sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_TF_CAPTURE_H));
+
for (PlayerSet::iterator itr = m_activePlayers[1].begin(); itr != m_activePlayers[1].end(); ++itr)
- (*itr)->AreaExploredOrEventHappens(TF_HORDE_QUEST);
+ if (Player* player = ObjectAccessor::FindPlayer(*itr))
+ player->AreaExploredOrEventHappens(TF_HORDE_QUEST);
break;
}
case OBJECTIVESTATE_NEUTRAL:
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp
index 4f8fc917424..0f3bcce6493 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp
@@ -80,8 +80,8 @@ public:
void SonicBoomEffect()
{
- std::list<HostileReference*> t_list = me->getThreatManager().getThreatList();
- for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
+ ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList();
+ for (ThreatContainer::StorageType::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
{
Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid());
if (target && target->GetTypeId() == TYPEID_PLAYER)
@@ -165,8 +165,8 @@ public:
// Thundering Storm
if (ThunderingStorm_Timer <= diff)
{
- std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList();
- for (std::list<HostileReference*>::const_iterator i = m_threatlist.begin(); i != m_threatlist.end(); ++i)
+ ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList();
+ for (ThreatContainer::StorageType::const_iterator i = threatlist.begin(); i != threatlist.end(); ++i)
if (Unit* target = Unit::GetUnit(*me, (*i)->getUnitGuid()))
if (target->isAlive() && !me->IsWithinDist(target, 35, false))
DoCast(target, SPELL_THUNDERING_STORM, true);
@@ -188,8 +188,8 @@ public:
return;
if (!me->IsWithinMeleeRange(me->getVictim()))
{
- std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList();
- for (std::list<HostileReference*>::const_iterator i = m_threatlist.begin(); i != m_threatlist.end(); ++i)
+ ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList();
+ for (ThreatContainer::StorageType::const_iterator i = threatlist.begin(); i != threatlist.end(); ++i)
if (Unit* target = Unit::GetUnit(*me, (*i)->getUnitGuid()))
if (target->isAlive() && me->IsWithinMeleeRange(target))
{
@@ -201,7 +201,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
void AddSC_boss_murmur()
diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
index 6fd6f61c061..f812b1b35cd 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
@@ -46,9 +46,9 @@ EndScriptData */
#define SOUND_AKAMA_LEAVE 11390
// Self explanatory
-const char* SAY_KILL1 = "Who shall be next to taste my blades?!";
+char const* SAY_KILL1 = "Who shall be next to taste my blades?!";
#define SOUND_KILL1 11473
-const char* SAY_KILL2 = "This is too easy!";
+char const* SAY_KILL2 = "This is too easy!";
#define SOUND_KILL2 11472
// I think I'll fly now and let my subordinates take you on
@@ -254,7 +254,6 @@ struct Yells
};
static const Yells Conversation[22] =
-
{
{11463, "Akama... your duplicity is hardly surprising. I should have slaughtered you and your malformed brethren long ago.", ILLIDAN_STORMRAGE, 8000, 0, true},
{0, "", ILLIDAN_STORMRAGE, 5000, 396, true},
@@ -464,7 +463,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
/************************************** Illidan's AI* **************************************/
@@ -614,7 +612,8 @@ public:
void DeleteFromThreatList(uint64 TargetGUID)
{
- for (std::list<HostileReference*>::const_iterator itr = me->getThreatManager().getThreatList().begin(); itr != me->getThreatManager().getThreatList().end(); ++itr)
+ ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList();
+ for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)
{
if ((*itr)->getUnitGuid() == TargetGUID)
{
@@ -1151,7 +1150,6 @@ public:
}
}
};
-
};
/********************************** End of Illidan AI* *****************************************/
@@ -1378,7 +1376,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
class npc_akama_illidan : public CreatureScript
@@ -1491,9 +1488,9 @@ public:
void KillAllElites()
{
- std::list<HostileReference*>& threatList = me->getThreatManager().getThreatList();
+ ThreatContainer::StorageType const &threatList = me->getThreatManager().getThreatList();
std::vector<Unit*> eliteList;
- for (std::list<HostileReference*>::const_iterator itr = threatList.begin(); itr != threatList.end(); ++itr)
+ for (ThreatContainer::StorageType::const_iterator itr = threatList.begin(); itr != threatList.end(); ++itr)
{
Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());
if (unit && unit->GetEntry() == ILLIDARI_ELITE)
@@ -1649,7 +1646,8 @@ public:
void HandleChannelSequence()
{
- Unit* Channel = NULL, *Spirit[2] = { NULL, NULL };
+ Unit* Channel = NULL;
+ Unit* Spirit[2] = { NULL, NULL };
if (ChannelCount <= 5)
{
Channel = Unit::GetUnit(*me, ChannelGUID);
@@ -1840,7 +1838,6 @@ public:
{
return new npc_akama_illidanAI(creature);
}
-
};
void boss_illidan_stormrage::boss_illidan_stormrageAI::Reset()
@@ -2000,7 +1997,6 @@ void boss_illidan_stormrage::boss_illidan_stormrageAI::HandleTalkSequence()
Akama->SetPosition(x, y, z, 0.0f);
Akama->MonsterMoveWithSpeed(x, y, z, 0); // Illidan must not die until Akama arrives.
Akama->GetMotionMaster()->MoveChase(me);
-
}
}
break;
@@ -2194,7 +2190,6 @@ public:
me->SetDisplayId(21431);// appear when hit by Illidan's glaive
}
};
-
};
class mob_parasitic_shadowfiend : public CreatureScript
diff --git a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
index ec9e4e116bf..5ab9dcab667 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
@@ -128,7 +128,6 @@ public:
void JustDied(Unit* /*killer*/);
};
-
};
class boss_reliquary_of_souls : public CreatureScript
@@ -233,9 +232,8 @@ public:
if (!target)
return;
- std::list<HostileReference*>& m_threatlist = target->getThreatManager().getThreatList();
- std::list<HostileReference*>::const_iterator itr = m_threatlist.begin();
- for (; itr != m_threatlist.end(); ++itr)
+ ThreatContainer::StorageType threatlist = target->getThreatManager().getThreatList();
+ for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)
{
Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());
if (unit)
@@ -376,7 +374,6 @@ public:
} else Timer -= diff;
}
};
-
};
void npc_enslaved_soul::npc_enslaved_soulAI::JustDied(Unit* /*killer*/)
@@ -453,12 +450,12 @@ public:
void CastFixate()
{
- std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList();
- if (m_threatlist.empty())
+ ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList();
+ if (threatlist.empty())
return; // No point continuing if empty threatlist.
std::list<Unit*> targets;
- std::list<HostileReference*>::const_iterator itr = m_threatlist.begin();
- for (; itr != m_threatlist.end(); ++itr)
+ ThreatContainer::StorageType::const_iterator itr = threatlist.begin();
+ for (; itr != threatlist.end(); ++itr)
{
Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());
if (unit && unit->isAlive() && (unit->GetTypeId() == TYPEID_PLAYER)) // Only alive players
@@ -511,7 +508,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
class boss_essence_of_desire : public CreatureScript
@@ -615,7 +611,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
class boss_essence_of_anger : public CreatureScript
@@ -716,7 +711,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
void AddSC_boss_reliquary_of_souls()
diff --git a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp
index e34a229eea5..77d1c86951b 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp
@@ -78,7 +78,6 @@ public:
me->CastSpell(me, SPELL_MOLTEN_FLAME, true);
}
};
-
};
class boss_supremus : public CreatureScript
@@ -183,9 +182,9 @@ public:
uint32 health = 0;
Unit* target = NULL;
- std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList();
- std::list<HostileReference*>::const_iterator i = m_threatlist.begin();
- for (i = m_threatlist.begin(); i!= m_threatlist.end(); ++i)
+ ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList();
+ ThreatContainer::StorageType::const_iterator i = threatlist.begin();
+ for (i = threatlist.begin(); i != threatlist.end(); ++i)
{
Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (unit && me->IsWithinMeleeRange(unit))
@@ -258,7 +257,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
class npc_volcano : public CreatureScript
@@ -303,9 +301,7 @@ public:
}
else wait -= diff;
}
-
};
-
};
void AddSC_boss_supremus()
diff --git a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp
index 524992b3c44..9a200d07d2b 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp
@@ -169,12 +169,12 @@ public:
void CheckPlayers()
{
- std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList();
- if (m_threatlist.empty())
+ ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList();
+ if (threatlist.empty())
return; // No threat list. Don't continue.
- std::list<HostileReference*>::const_iterator itr = m_threatlist.begin();
+ ThreatContainer::StorageType::const_iterator itr = threatlist.begin();
std::list<Unit*> targets;
- for (; itr != m_threatlist.end(); ++itr)
+ for (; itr != threatlist.end(); ++itr)
{
Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());
if (unit && unit->isAlive())
@@ -207,7 +207,6 @@ public:
} else CheckTeronTimer -= diff;
}
};
-
};
class boss_teron_gorefiend : public CreatureScript
@@ -317,20 +316,20 @@ public:
return coord;
}
- void SetThreatList(Creature* Blossom)
+ void SetThreatList(Creature* blossom)
{
- if (!Blossom)
+ if (!blossom)
return;
- std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList();
- std::list<HostileReference*>::const_iterator i = m_threatlist.begin();
- for (i = m_threatlist.begin(); i != m_threatlist.end(); ++i)
+ ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList();
+ ThreatContainer::StorageType::const_iterator i = threatlist.begin();
+ for (i = threatlist.begin(); i != threatlist.end(); ++i)
{
Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (unit && unit->isAlive())
{
float threat = DoGetThreat(unit);
- Blossom->AddThreat(unit, threat);
+ blossom->AddThreat(unit, threat);
}
}
}
@@ -344,26 +343,26 @@ public:
/** WHAT IS FULLY NECESSARY FOR GOREFIEND TO BE 100% COMPLETE *****/
/************************************************************************/
- Unit* Ghost = NULL;
+ Unit* ghost = NULL;
if (GhostGUID)
- Ghost = Unit::GetUnit(*me, GhostGUID);
- if (Ghost && Ghost->isAlive() && Ghost->HasAura(SPELL_SHADOW_OF_DEATH))
+ ghost = Unit::GetUnit(*me, GhostGUID);
+ if (ghost && ghost->isAlive() && ghost->HasAura(SPELL_SHADOW_OF_DEATH))
{
/*float x, y, z;
- Ghost->GetPosition(x, y, z);
+ ghost->GetPosition(x, y, z);
Creature* control = me->SummonCreature(CREATURE_GHOST, x, y, z, 0, TEMPSUMMON_TIMED_DESAWN, 30000);
if (control)
{
- CAST_PLR(Ghost)->Possess(control);
- Ghost->DealDamage(Ghost, Ghost->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL,
+ CAST_PLR(ghost)->Possess(control);
+ ghost->DealDamage(ghost, ghost->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL,
false);
}*/
for (uint8 i = 0; i < 4; ++i)
{
Creature* Construct = NULL;
- float X = CalculateRandomLocation(Ghost->GetPositionX(), 10);
- float Y = CalculateRandomLocation(Ghost->GetPositionY(), 10);
- Construct = me->SummonCreature(CREATURE_SHADOWY_CONSTRUCT, X, Y, Ghost->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45000);
+ float X = CalculateRandomLocation(ghost->GetPositionX(), 10);
+ float Y = CalculateRandomLocation(ghost->GetPositionY(), 10);
+ Construct = me->SummonCreature(CREATURE_SHADOWY_CONSTRUCT, X, Y, ghost->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45000);
if (Construct)
{
Construct->CastSpell(Construct, SPELL_PASSIVE_SHADOWFORM, true);
@@ -511,7 +510,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
void AddSC_boss_teron_gorefiend()
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
index 81e03a19c1f..9b739a1a6ac 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
@@ -171,7 +171,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
//Original Leotheras the Blind AI
@@ -263,7 +262,6 @@ public:
Creature* binder = me->SummonCreature(MOB_SPELLBINDER, nx, ny, z, o, TEMPSUMMON_DEAD_DESPAWN, 0);
if (binder)
SpellBinderGUID[i] = binder->GetGUID();
-
}
}
void MoveInLineOfSight(Unit* who)
@@ -525,9 +523,9 @@ public:
//Summon Inner Demon
if (InnerDemons_Timer <= diff)
{
- std::list<HostileReference*>& ThreatList = me->getThreatManager().getThreatList();
+ ThreatContainer::StorageType const & ThreatList = me->getThreatManager().getThreatList();
std::vector<Unit*> TargetList;
- for (std::list<HostileReference*>::const_iterator itr = ThreatList.begin(); itr != ThreatList.end(); ++itr)
+ for (ThreatContainer::StorageType::const_iterator itr = ThreatList.begin(); itr != ThreatList.end(); ++itr)
{
Unit* tempTarget = Unit::GetUnit(*me, (*itr)->getUnitGuid());
if (tempTarget && tempTarget->GetTypeId() == TYPEID_PLAYER && tempTarget->GetGUID() != me->getVictim()->GetGUID() && TargetList.size()<5)
@@ -602,7 +600,6 @@ public:
}
}
};
-
};
//Leotheras the Blind Demon Form AI
@@ -812,7 +809,6 @@ public:
void JustDied(Unit* /*killer*/) {}
};
-
};
void AddSC_boss_leotheras_the_blind()
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
index cb9f9cbc15c..2008a1bc640 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
@@ -176,7 +176,7 @@ struct advisorbase_ai : public ScriptedAI
//reset encounter
if (instance && (instance->GetData(DATA_KAELTHASEVENT) == 1 || instance->GetData(DATA_KAELTHASEVENT) == 3))
- if (Creature* Kaelthas = Unit::GetCreature((*me), instance->GetData64(DATA_KAELTHAS)))
+ if (Creature* Kaelthas = Unit::GetCreature(*me, instance->GetData64(DATA_KAELTHAS)))
Kaelthas->AI()->EnterEvadeMode();
}
@@ -344,7 +344,7 @@ class boss_kaelthas : public CreatureScript
{
for (uint8 i = 0; i < MAX_ADVISORS; ++i)
{
- if (Creature* creature = Unit::GetCreature((*me), m_auiAdvisorGuid[i]))
+ if (Creature* creature = Unit::GetCreature(*me, m_auiAdvisorGuid[i]))
{
creature->Respawn();
creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -379,7 +379,6 @@ class boss_kaelthas : public CreatureScript
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
AttackStart(target);
-
}
else
{
@@ -499,7 +498,7 @@ class boss_kaelthas : public CreatureScript
case 1:
if (Phase_Timer <= diff)
{
- Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[0]));
+ Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[0]));
if (Advisor)
{
@@ -517,7 +516,7 @@ class boss_kaelthas : public CreatureScript
//Subphase 2 - Start
case 2:
- Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[0]));
+ Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[0]));
if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD))
{
@@ -533,7 +532,7 @@ class boss_kaelthas : public CreatureScript
case 3:
if (Phase_Timer <= diff)
{
- Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[1]));
+ Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[1]));
if (Advisor)
{
@@ -551,7 +550,7 @@ class boss_kaelthas : public CreatureScript
//Subphase 3 - Start
case 4:
- Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[1]));
+ Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[1]));
if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD))
{
@@ -567,7 +566,7 @@ class boss_kaelthas : public CreatureScript
case 5:
if (Phase_Timer <= diff)
{
- Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[2]));
+ Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[2]));
if (Advisor)
{
@@ -585,7 +584,7 @@ class boss_kaelthas : public CreatureScript
//Subphase 4 - Start
case 6:
- Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[2]));
+ Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[2]));
if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD))
{
@@ -601,7 +600,7 @@ class boss_kaelthas : public CreatureScript
case 7:
if (Phase_Timer <= diff)
{
- Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[3]));
+ Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[3]));
if (Advisor)
{
@@ -620,7 +619,7 @@ class boss_kaelthas : public CreatureScript
//End of phase 1
case 8:
- Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[3]));
+ Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[3]));
if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD))
{
@@ -691,7 +690,7 @@ class boss_kaelthas : public CreatureScript
Creature* Advisor;
for (uint8 i = 0; i < MAX_ADVISORS; ++i)
{
- Advisor = Unit::GetCreature((*me), m_auiAdvisorGuid[i]);
+ Advisor = Unit::GetCreature(*me, m_auiAdvisorGuid[i]);
if (!Advisor)
sLog->outError(LOG_FILTER_TSCR, "SD2: Kael'Thas Advisor %u does not exist. Possibly despawned? Incorrectly Killed?", i);
@@ -787,7 +786,7 @@ class boss_kaelthas : public CreatureScript
if (me->getThreatManager().getThreatList().size() >= 2)
for (uint32 i = 0; i < 3; ++i)
{
- sLog->outDebug(LOG_FILTER_TSCR, "SD2: Kael'Thas mind control not supported.");
+ sLog->outDebug(LOG_FILTER_TSCR, "Kael'Thas mind control not supported.");
//DoCast(unit, SPELL_MIND_CONTROL);
}
@@ -879,11 +878,12 @@ class boss_kaelthas : public CreatureScript
//Phase 5
if (Phase == 6)
{
-
//GravityLapse_Timer
if (GravityLapse_Timer <= diff)
{
- std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin();
+ ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList();
+ ThreatContainer::StorageType::const_iterator i = threatlist.begin();
+
switch (GravityLapse_Phase)
{
case 0:
@@ -894,7 +894,7 @@ class boss_kaelthas : public CreatureScript
me->MonsterMoveWithSpeed(afGravityPos[0], afGravityPos[1], afGravityPos[2], 0);
// 1) Kael'thas will portal the whole raid right into his body
- for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i)
+ for (i = threatlist.begin(); i != threatlist.end(); ++i)
{
Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (unit && (unit->GetTypeId() == TYPEID_PLAYER))
@@ -915,7 +915,7 @@ class boss_kaelthas : public CreatureScript
DoScriptText(RAND(SAY_GRAVITYLAPSE1, SAY_GRAVITYLAPSE2), me);
// 2) At that point he will put a Gravity Lapse debuff on everyone
- for (i = me->getThreatManager().getThreatList().begin(); i != me->getThreatManager().getThreatList().end(); ++i)
+ for (i = threatlist.begin(); i != threatlist.end(); ++i)
{
if (Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()))
{
@@ -947,7 +947,7 @@ class boss_kaelthas : public CreatureScript
case 3:
//Remove flight
- for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i)
+ for (i = threatlist.begin(); i != threatlist.end(); ++i)
{
if (Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()))
{
@@ -1285,8 +1285,8 @@ class boss_grand_astromancer_capernian : public CreatureScript
{
bool InMeleeRange = false;
Unit* target = NULL;
- std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList();
- for (std::list<HostileReference*>::const_iterator i = m_threatlist.begin(); i!= m_threatlist.end(); ++i)
+ ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList();
+ for (ThreatContainer::StorageType::const_iterator i = threatlist.begin(); i!= threatlist.end(); ++i)
{
Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
//if in melee range
diff --git a/src/server/scripts/Spells/spell_rogue.cpp b/src/server/scripts/Spells/spell_rogue.cpp
index c47e155accb..d456f2a1f56 100644
--- a/src/server/scripts/Spells/spell_rogue.cpp
+++ b/src/server/scripts/Spells/spell_rogue.cpp
@@ -353,7 +353,7 @@ class spell_rog_deadly_poison : public SpellScriptLoader
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(enchant->spellid[s]);
if (!spellInfo)
{
- sLog->outError(LOG_FILTER_SPELLS_AURAS, "Player::CastItemCombatSpell Enchant %i, player (Name: %s, GUID: %u) cast unknown spell %i", enchant->ID, player->GetName(), player->GetGUIDLow(), enchant->spellid[s]);
+ sLog->outError(LOG_FILTER_SPELLS_AURAS, "Player::CastItemCombatSpell Enchant %i, player (Name: %s, GUID: %u) cast unknown spell %i", enchant->ID, player->GetName().c_str(), player->GetGUIDLow(), enchant->spellid[s]);
continue;
}
diff --git a/src/server/scripts/World/areatrigger_scripts.cpp b/src/server/scripts/World/areatrigger_scripts.cpp
index f302009a4f3..67aeda314bf 100644
--- a/src/server/scripts/World/areatrigger_scripts.cpp
+++ b/src/server/scripts/World/areatrigger_scripts.cpp
@@ -235,21 +235,19 @@ enum eWaygate
QUEST_THE_MAKERS_OVERLOOK = 12613,
QUEST_THE_MAKERS_PERCH = 12559,
+ QUEST_MEETING_A_GREAT_ONE = 13956,
};
class AreaTrigger_at_sholazar_waygate : public AreaTriggerScript
{
public:
- AreaTrigger_at_sholazar_waygate()
- : AreaTriggerScript("at_sholazar_waygate")
- {
- }
+ AreaTrigger_at_sholazar_waygate() : AreaTriggerScript("at_sholazar_waygate") {}
bool OnTrigger(Player* player, AreaTriggerEntry const* trigger)
{
- if (player->GetQuestStatus(QUEST_THE_MAKERS_OVERLOOK) == QUEST_STATUS_REWARDED && !player->isDead() &&
- player->GetQuestStatus(QUEST_THE_MAKERS_PERCH) == QUEST_STATUS_REWARDED)
+ if (!player->isDead() && (player->GetQuestStatus(QUEST_MEETING_A_GREAT_ONE) != QUEST_STATUS_NONE ||
+ (player->GetQuestStatus(QUEST_THE_MAKERS_OVERLOOK) == QUEST_STATUS_REWARDED && player->GetQuestStatus(QUEST_THE_MAKERS_PERCH) == QUEST_STATUS_REWARDED)))
{
switch (trigger->id)
{
@@ -303,76 +301,6 @@ class AreaTrigger_at_nats_landing : public AreaTriggerScript
};
/*######
-## at_bring_your_orphan_to
-######*/
-
-enum BringYourOrphanTo
-{
- QUEST_DOWN_AT_THE_DOCKS = 910,
- QUEST_GATEWAY_TO_THE_FRONTIER = 911,
- QUEST_LORDAERON_THRONE_ROOM = 1800,
- QUEST_BOUGHT_OF_ETERNALS = 1479,
- QUEST_SPOOKY_LIGHTHOUSE = 1687,
- QUEST_STONEWROUGHT_DAM = 1558,
- QUEST_DARK_PORTAL_H = 10951,
- QUEST_DARK_PORTAL_A = 10952,
-
- AT_DOWN_AT_THE_DOCKS = 3551,
- AT_GATEWAY_TO_THE_FRONTIER = 3549,
- AT_LORDAERON_THRONE_ROOM = 3547,
- AT_BOUGHT_OF_ETERNALS = 3546,
- AT_SPOOKY_LIGHTHOUSE = 3552,
- AT_STONEWROUGHT_DAM = 3548,
- AT_DARK_PORTAL = 4356,
-
- AURA_ORPHAN_OUT = 58818,
-};
-
-class AreaTrigger_at_bring_your_orphan_to : public AreaTriggerScript
-{
- public:
- AreaTrigger_at_bring_your_orphan_to() : AreaTriggerScript("at_bring_your_orphan_to") { }
-
- bool OnTrigger(Player* player, AreaTriggerEntry const* trigger)
- {
- uint32 questId = 0;
-
- if (player->isDead() || !player->HasAura(AURA_ORPHAN_OUT))
- return false;
-
- switch (trigger->id)
- {
- case AT_DOWN_AT_THE_DOCKS:
- questId = QUEST_DOWN_AT_THE_DOCKS;
- break;
- case AT_GATEWAY_TO_THE_FRONTIER:
- questId = QUEST_GATEWAY_TO_THE_FRONTIER;
- break;
- case AT_LORDAERON_THRONE_ROOM:
- questId = QUEST_LORDAERON_THRONE_ROOM;
- break;
- case AT_BOUGHT_OF_ETERNALS:
- questId = QUEST_BOUGHT_OF_ETERNALS;
- break;
- case AT_SPOOKY_LIGHTHOUSE:
- questId = QUEST_SPOOKY_LIGHTHOUSE;
- break;
- case AT_STONEWROUGHT_DAM:
- questId = QUEST_STONEWROUGHT_DAM;
- break;
- case AT_DARK_PORTAL:
- questId = player->GetTeam() == ALLIANCE ? QUEST_DARK_PORTAL_A : QUEST_DARK_PORTAL_H;
- break;
- }
-
- if (questId && player->GetQuestStatus(questId) == QUEST_STATUS_INCOMPLETE)
- player->AreaExploredOrEventHappens(questId);
-
- return true;
- }
-};
-
-/*######
## at_brewfest
######*/
@@ -505,7 +433,6 @@ void AddSC_areatrigger_scripts()
new AreaTrigger_at_last_rites();
new AreaTrigger_at_sholazar_waygate();
new AreaTrigger_at_nats_landing();
- new AreaTrigger_at_bring_your_orphan_to();
new AreaTrigger_at_brewfest();
new AreaTrigger_at_area_52_entrance();
}
diff --git a/src/server/scripts/World/chat_log.cpp b/src/server/scripts/World/chat_log.cpp
index fb540c177bc..236436b229b 100755
--- a/src/server/scripts/World/chat_log.cpp
+++ b/src/server/scripts/World/chat_log.cpp
@@ -32,25 +32,25 @@ public:
case CHAT_MSG_ADDON:
if (sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[ADDON] Player %s sends: %s",
- player->GetName(), msg.c_str());
+ player->GetName().c_str(), msg.c_str());
break;
case CHAT_MSG_SAY:
if (sWorld->getBoolConfig(CONFIG_CHATLOG_PUBLIC))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[SAY] Player %s says (language %u): %s",
- player->GetName(), lang, msg.c_str());
+ player->GetName().c_str(), lang, msg.c_str());
break;
case CHAT_MSG_EMOTE:
if (sWorld->getBoolConfig(CONFIG_CHATLOG_PUBLIC))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[TEXTEMOTE] Player %s emotes: %s",
- player->GetName(), msg.c_str());
+ player->GetName().c_str(), msg.c_str());
break;
case CHAT_MSG_YELL:
if (sWorld->getBoolConfig(CONFIG_CHATLOG_PUBLIC))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[YELL] Player %s yells (language %u): %s",
- player->GetName(), lang, msg.c_str());
+ player->GetName().c_str(), lang, msg.c_str());
break;
}
}
@@ -59,10 +59,10 @@ public:
{
if (lang != LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_WHISPER))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[WHISPER] Player %s tells %s: %s",
- player->GetName(), receiver ? receiver->GetName() : "<unknown>", msg.c_str());
+ player->GetName().c_str(), receiver ? receiver->GetName().c_str() : "<unknown>", msg.c_str());
else if (lang == LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[ADDON] Player %s tells %s: %s",
- player->GetName(), receiver ? receiver->GetName() : "<unknown>", msg.c_str());
+ player->GetName().c_str(), receiver ? receiver->GetName().c_str() : "<unknown>", msg.c_str());
}
void OnChat(Player* player, uint32 type, uint32 lang, std::string& msg, Group* group)
@@ -74,52 +74,52 @@ public:
case CHAT_MSG_PARTY:
if (lang != LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_PARTY))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[PARTY] Player %s tells group with leader %s: %s",
- player->GetName(), group ? group->GetLeaderName() : "<unknown>", msg.c_str());
+ player->GetName().c_str(), group ? group->GetLeaderName() : "<unknown>", msg.c_str());
else if (lang == LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[ADDON] Player %s tells group with leader %s: %s",
- player->GetName(), group ? group->GetLeaderName() : "<unknown>", msg.c_str());
+ player->GetName().c_str(), group ? group->GetLeaderName() : "<unknown>", msg.c_str());
break;
case CHAT_MSG_PARTY_LEADER:
if (sWorld->getBoolConfig(CONFIG_CHATLOG_PARTY))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[PARTY] Leader %s tells group: %s",
- player->GetName(), msg.c_str());
+ player->GetName().c_str(), msg.c_str());
break;
case CHAT_MSG_RAID:
if (lang != LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_RAID))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[RAID] Player %s tells raid with leader %s: %s",
- player->GetName(), group ? group->GetLeaderName() : "<unknown>", msg.c_str());
+ player->GetName().c_str(), group ? group->GetLeaderName() : "<unknown>", msg.c_str());
else if (lang == LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[ADDON] Player %s tells raid with leader %s: %s",
- player->GetName(), group ? group->GetLeaderName() : "<unknown>", msg.c_str());
+ player->GetName().c_str(), group ? group->GetLeaderName() : "<unknown>", msg.c_str());
break;
case CHAT_MSG_RAID_LEADER:
if (sWorld->getBoolConfig(CONFIG_CHATLOG_RAID))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[RAID] Leader player %s tells raid: %s",
- player->GetName(), msg.c_str());
+ player->GetName().c_str(), msg.c_str());
break;
case CHAT_MSG_RAID_WARNING:
if (sWorld->getBoolConfig(CONFIG_CHATLOG_RAID))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[RAID] Leader player %s warns raid with: %s",
- player->GetName(), msg.c_str());
+ player->GetName().c_str(), msg.c_str());
break;
case CHAT_MSG_BATTLEGROUND:
if (lang != LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_BGROUND))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[BATTLEGROUND] Player %s tells battleground with leader %s: %s",
- player->GetName(), group ? group->GetLeaderName() : "<unknown>", msg.c_str());
+ player->GetName().c_str(), group ? group->GetLeaderName() : "<unknown>", msg.c_str());
else if (lang == LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[ADDON] Player %s tells battleground with leader %s: %s",
- player->GetName(), group ? group->GetLeaderName() : "<unknown>", msg.c_str());
+ player->GetName().c_str(), group ? group->GetLeaderName() : "<unknown>", msg.c_str());
break;
case CHAT_MSG_BATTLEGROUND_LEADER:
if (sWorld->getBoolConfig(CONFIG_CHATLOG_BGROUND))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[BATTLEGROUND] Leader player %s tells battleground: %s",
- player->GetName(), msg.c_str());
+ player->GetName().c_str(), msg.c_str());
break;
}
}
@@ -131,16 +131,16 @@ public:
case CHAT_MSG_GUILD:
if (lang != LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_GUILD))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[GUILD] Player %s tells guild %s: %s",
- player->GetName(), guild ? guild->GetName().c_str() : "<unknown>", msg.c_str());
+ player->GetName().c_str(), guild ? guild->GetName().c_str() : "<unknown>", msg.c_str());
else if (lang == LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[ADDON] Player %s sends to guild %s: %s",
- player->GetName(), guild ? guild->GetName().c_str() : "<unknown>", msg.c_str());
+ player->GetName().c_str(), guild ? guild->GetName().c_str() : "<unknown>", msg.c_str());
break;
case CHAT_MSG_OFFICER:
if (sWorld->getBoolConfig(CONFIG_CHATLOG_GUILD))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[OFFICER] Player %s tells guild %s officers: %s",
- player->GetName(), guild ? guild->GetName().c_str() : "<unknown>", msg.c_str());
+ player->GetName().c_str(), guild ? guild->GetName().c_str() : "<unknown>", msg.c_str());
break;
}
}
@@ -155,10 +155,10 @@ public:
if (sWorld->getBoolConfig(CONFIG_CHATLOG_SYSCHAN) && isSystem)
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[SYSCHAN] Player %s tells channel %s: %s",
- player->GetName(), channel->GetName().c_str(), msg.c_str());
+ player->GetName().c_str(), channel->GetName().c_str(), msg.c_str());
else if (sWorld->getBoolConfig(CONFIG_CHATLOG_CHANNEL))
sLog->outDebug(LOG_FILTER_PLAYER_CHATLOG, "[CHANNEL] Player %s tells channel %s: %s",
- player->GetName(), channel ? channel->GetName().c_str() : "<unknown>", msg.c_str());
+ player->GetName().c_str(), channel ? channel->GetName().c_str() : "<unknown>", msg.c_str());
}
};