refactor(Core/Scripts): restyle scripts lib with astyle (#3467)
This commit is contained in:
@@ -141,7 +141,7 @@ public:
|
||||
if (!*_args)
|
||||
return false;
|
||||
|
||||
char* args = (char *)_args;
|
||||
char* args = (char*)_args;
|
||||
|
||||
char const* oldArenaStr = handler->extractQuotedArg(args);
|
||||
if (!oldArenaStr)
|
||||
|
||||
@@ -293,8 +293,7 @@ public:
|
||||
std::string banTime = permanent ? handler->GetAcoreString(LANG_BANINFO_INFINITE) : secsToTimeString(fields[1].GetUInt64(), true);
|
||||
handler->PSendSysMessage(LANG_BANINFO_HISTORYENTRY,
|
||||
fields[0].GetCString(), banTime.c_str(), active ? handler->GetAcoreString(LANG_YES) : handler->GetAcoreString(LANG_NO), fields[4].GetCString(), fields[5].GetCString());
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -341,8 +340,7 @@ public:
|
||||
std::string banTime = permanent ? handler->GetAcoreString(LANG_BANINFO_INFINITE) : secsToTimeString(fields[1].GetUInt64(), true);
|
||||
handler->PSendSysMessage(LANG_BANINFO_HISTORYENTRY,
|
||||
fields[0].GetCString(), banTime.c_str(), active ? handler->GetAcoreString(LANG_YES) : handler->GetAcoreString(LANG_NO), fields[4].GetCString(), fields[5].GetCString());
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -428,8 +426,7 @@ public:
|
||||
Field* fields2 = banResult->Fetch();
|
||||
handler->PSendSysMessage("%s", fields2[0].GetCString());
|
||||
}
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
}
|
||||
// Console wide output
|
||||
else
|
||||
@@ -466,7 +463,7 @@ public:
|
||||
if (fields2[0].GetUInt32() == fields2[1].GetUInt32())
|
||||
{
|
||||
handler->PSendSysMessage("|%-15.15s|%02d-%02d-%02d %02d:%02d| permanent |%-15.15s|%-15.15s|",
|
||||
accountName.c_str(), tmBan.tm_year%100, tmBan.tm_mon+1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
|
||||
accountName.c_str(), tmBan.tm_year % 100, tmBan.tm_mon + 1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
|
||||
fields2[2].GetCString(), fields2[3].GetCString());
|
||||
}
|
||||
else
|
||||
@@ -475,15 +472,13 @@ public:
|
||||
tm tmUnban;
|
||||
localtime_r(&timeUnban, &tmUnban);
|
||||
handler->PSendSysMessage("|%-15.15s|%02d-%02d-%02d %02d:%02d|%02d-%02d-%02d %02d:%02d|%-15.15s|%-15.15s|",
|
||||
accountName.c_str(), tmBan.tm_year%100, tmBan.tm_mon+1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
|
||||
tmUnban.tm_year%100, tmUnban.tm_mon+1, tmUnban.tm_mday, tmUnban.tm_hour, tmUnban.tm_min,
|
||||
accountName.c_str(), tmBan.tm_year % 100, tmBan.tm_mon + 1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
|
||||
tmUnban.tm_year % 100, tmUnban.tm_mon + 1, tmUnban.tm_mday, tmUnban.tm_hour, tmUnban.tm_min,
|
||||
fields2[2].GetCString(), fields2[3].GetCString());
|
||||
}
|
||||
} while (banInfo->NextRow());
|
||||
}
|
||||
while (banInfo->NextRow());
|
||||
}
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
|
||||
handler->SendSysMessage(" ===============================================================================");
|
||||
}
|
||||
@@ -523,8 +518,7 @@ public:
|
||||
PreparedQueryResult banResult = CharacterDatabase.Query(stmt2);
|
||||
if (banResult)
|
||||
handler->PSendSysMessage("%s", (*banResult)[0].GetCString());
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
}
|
||||
// Console wide output
|
||||
else
|
||||
@@ -555,7 +549,7 @@ public:
|
||||
if (banFields[0].GetUInt32() == banFields[1].GetUInt32())
|
||||
{
|
||||
handler->PSendSysMessage("|%-15.15s|%02d-%02d-%02d %02d:%02d| permanent |%-15.15s|%-15.15s|",
|
||||
char_name.c_str(), tmBan.tm_year%100, tmBan.tm_mon+1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
|
||||
char_name.c_str(), tmBan.tm_year % 100, tmBan.tm_mon + 1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
|
||||
banFields[2].GetCString(), banFields[3].GetCString());
|
||||
}
|
||||
else
|
||||
@@ -564,15 +558,13 @@ public:
|
||||
tm tmUnban;
|
||||
localtime_r(&timeUnban, &tmUnban);
|
||||
handler->PSendSysMessage("|%-15.15s|%02d-%02d-%02d %02d:%02d|%02d-%02d-%02d %02d:%02d|%-15.15s|%-15.15s|",
|
||||
char_name.c_str(), tmBan.tm_year%100, tmBan.tm_mon+1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
|
||||
tmUnban.tm_year%100, tmUnban.tm_mon+1, tmUnban.tm_mday, tmUnban.tm_hour, tmUnban.tm_min,
|
||||
char_name.c_str(), tmBan.tm_year % 100, tmBan.tm_mon + 1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
|
||||
tmUnban.tm_year % 100, tmUnban.tm_mon + 1, tmUnban.tm_mday, tmUnban.tm_hour, tmUnban.tm_min,
|
||||
banFields[2].GetCString(), banFields[3].GetCString());
|
||||
}
|
||||
} while (banInfo->NextRow());
|
||||
}
|
||||
while (banInfo->NextRow());
|
||||
}
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
handler->SendSysMessage(" =============================================================================== ");
|
||||
}
|
||||
|
||||
@@ -616,8 +608,7 @@ public:
|
||||
{
|
||||
Field* fields = result->Fetch();
|
||||
handler->PSendSysMessage("%s", fields[0].GetCString());
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
}
|
||||
// Console wide output
|
||||
else
|
||||
@@ -635,7 +626,7 @@ public:
|
||||
if (fields[1].GetUInt32() == fields[2].GetUInt32())
|
||||
{
|
||||
handler->PSendSysMessage("|%-15.15s|%02d-%02d-%02d %02d:%02d| permanent |%-15.15s|%-15.15s|",
|
||||
fields[0].GetCString(), tmBan.tm_year%100, tmBan.tm_mon+1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
|
||||
fields[0].GetCString(), tmBan.tm_year % 100, tmBan.tm_mon + 1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
|
||||
fields[3].GetCString(), fields[4].GetCString());
|
||||
}
|
||||
else
|
||||
@@ -644,12 +635,11 @@ public:
|
||||
tm tmUnban;
|
||||
localtime_r(&timeUnban, &tmUnban);
|
||||
handler->PSendSysMessage("|%-15.15s|%02d-%02d-%02d %02d:%02d|%02d-%02d-%02d %02d:%02d|%-15.15s|%-15.15s|",
|
||||
fields[0].GetCString(), tmBan.tm_year%100, tmBan.tm_mon+1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
|
||||
tmUnban.tm_year%100, tmUnban.tm_mon+1, tmUnban.tm_mday, tmUnban.tm_hour, tmUnban.tm_min,
|
||||
fields[0].GetCString(), tmBan.tm_year % 100, tmBan.tm_mon + 1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
|
||||
tmUnban.tm_year % 100, tmUnban.tm_mon + 1, tmUnban.tm_mday, tmUnban.tm_hour, tmUnban.tm_min,
|
||||
fields[3].GetCString(), fields[4].GetCString());
|
||||
}
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
|
||||
handler->SendSysMessage(" ===============================================================================");
|
||||
}
|
||||
|
||||
@@ -136,8 +136,7 @@ public:
|
||||
AccountMgr::GetName(info.accountId, info.accountName);
|
||||
info.deleteDate = time_t(fields[3].GetUInt32());
|
||||
foundList.push_back(info);
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -885,10 +884,11 @@ public:
|
||||
QueryResult result = CharacterDatabase.PQuery("SELECT guid FROM characters");
|
||||
if (!result)
|
||||
return true;
|
||||
do{
|
||||
do
|
||||
{
|
||||
uint64 _guid = result->Fetch()[0].GetUInt64();
|
||||
char buff[20];
|
||||
sprintf(buff,"%u", (uint32)_guid);
|
||||
sprintf(buff, "%u", (uint32)_guid);
|
||||
switch(PlayerDumpWriter().WriteDump(buff, uint32(_guid)))
|
||||
{
|
||||
case DUMP_SUCCESS:
|
||||
@@ -907,7 +907,7 @@ public:
|
||||
handler->SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
}while(result->NextRow());
|
||||
} while(result->NextRow());
|
||||
}
|
||||
|
||||
if (!fileStr || !playerStr)
|
||||
@@ -985,11 +985,21 @@ public:
|
||||
|
||||
switch (BagSlot)
|
||||
{
|
||||
case 2: BagSlot = 19; break;
|
||||
case 3: BagSlot = 20; break;
|
||||
case 4: BagSlot = 21; break;
|
||||
case 5: BagSlot = 22; break;
|
||||
default: BagSlot = 1; break;
|
||||
case 2:
|
||||
BagSlot = 19;
|
||||
break;
|
||||
case 3:
|
||||
BagSlot = 20;
|
||||
break;
|
||||
case 4:
|
||||
BagSlot = 21;
|
||||
break;
|
||||
case 5:
|
||||
BagSlot = 22;
|
||||
break;
|
||||
default:
|
||||
BagSlot = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
handler->PSendSysMessage("--------------------------------------");
|
||||
|
||||
@@ -451,7 +451,7 @@ public:
|
||||
char const* name = "test";
|
||||
uint8 code = atoi(args);
|
||||
|
||||
WorldPacket data(SMSG_CHANNEL_NOTIFY, (1+10));
|
||||
WorldPacket data(SMSG_CHANNEL_NOTIFY, (1 + 10));
|
||||
data << code; // notify type
|
||||
data << name; // channel name
|
||||
data << uint32(0);
|
||||
@@ -787,7 +787,7 @@ public:
|
||||
if (!target || target->IsTotem() || target->IsPet())
|
||||
return false;
|
||||
|
||||
ThreatContainer::StorageType const &threatList = target->getThreatManager().getThreatList();
|
||||
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().c_str(), target->GetGUIDLow());
|
||||
@@ -801,7 +801,7 @@ public:
|
||||
}
|
||||
handler->PSendSysMessage(" %u. %s (guid %u) - threat %f", ++count, unit->GetName().c_str(), unit->GetGUIDLow(), (*itr)->getThreat());
|
||||
}
|
||||
ThreatContainer::StorageType const &threatList2 = target->getThreatManager().getOfflineThreatList();
|
||||
ThreatContainer::StorageType const& threatList2 = target->getThreatManager().getOfflineThreatList();
|
||||
for (itr = threatList2.begin(); itr != threatList2.end(); ++itr)
|
||||
{
|
||||
Unit* unit = (*itr)->getTarget();
|
||||
@@ -1128,13 +1128,13 @@ public:
|
||||
if (isInt32)
|
||||
{
|
||||
uint32 value = (uint32)atoi(y);
|
||||
target->SetUInt32Value(opcode , value);
|
||||
target->SetUInt32Value(opcode, value);
|
||||
handler->PSendSysMessage(LANG_SET_UINT_FIELD, GUID_LOPART(guid), opcode, value);
|
||||
}
|
||||
else
|
||||
{
|
||||
float value = (float)atof(y);
|
||||
target->SetFloatValue(opcode , value);
|
||||
target->SetFloatValue(opcode, value);
|
||||
handler->PSendSysMessage(LANG_SET_FLOAT_FIELD, GUID_LOPART(guid), opcode, value);
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include "SpellAuras.h"
|
||||
#include "SpellAuraEffects.h"
|
||||
|
||||
enum Spells
|
||||
enum Spells
|
||||
{
|
||||
LFG_SPELL_DUNGEON_DESERTER = 71041,
|
||||
BG_SPELL_DESERTER = 26013
|
||||
@@ -127,7 +127,7 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_deserter_commandscript()
|
||||
void AddSC_deserter_commandscript()
|
||||
{
|
||||
new deserter_commandscript();
|
||||
}
|
||||
|
||||
@@ -195,8 +195,8 @@ public:
|
||||
float z = player->GetPositionZ();
|
||||
float ang = player->GetOrientation();
|
||||
|
||||
float rot2 = sin(ang/2);
|
||||
float rot3 = cos(ang/2);
|
||||
float rot2 = sin(ang / 2);
|
||||
float rot3 = cos(ang / 2);
|
||||
|
||||
uint32 objectId = atoi(id);
|
||||
|
||||
@@ -685,7 +685,7 @@ public:
|
||||
object->SetByteValue(GAMEOBJECT_BYTES_1, objectType, objectState);
|
||||
else if (objectType == 4)
|
||||
{
|
||||
WorldPacket data(SMSG_GAMEOBJECT_CUSTOM_ANIM, 8+4);
|
||||
WorldPacket data(SMSG_GAMEOBJECT_CUSTOM_ANIM, 8 + 4);
|
||||
data << object->GetGUID();
|
||||
data << (uint32)(objectState);
|
||||
object->SendMessageToSet(&data, true);
|
||||
|
||||
@@ -136,7 +136,10 @@ public:
|
||||
uint32 dungeon = 0, battleground = 0, arena = 0, spectators = 0;
|
||||
sMapMgr->GetNumInstances(dungeon, battleground, arena);
|
||||
handler->PSendSysMessage("instances loaded: dungeons (%d), battlegrounds (%d), arenas (%d)", dungeon, battleground, arena);
|
||||
dungeon = 0; battleground = 0; arena = 0; spectators = 0;
|
||||
dungeon = 0;
|
||||
battleground = 0;
|
||||
arena = 0;
|
||||
spectators = 0;
|
||||
sMapMgr->GetNumPlayersInInstances(dungeon, battleground, arena, spectators);
|
||||
handler->PSendSysMessage("players in instances: dungeons (%d), battlegrounds (%d), arenas (%d + %d spect)", dungeon, battleground, arena, spectators);
|
||||
|
||||
|
||||
@@ -248,7 +248,7 @@ public:
|
||||
// search highest talent rank
|
||||
uint32 spellId = 0;
|
||||
|
||||
for (int8 rank = MAX_TALENT_RANK-1; rank >= 0; --rank)
|
||||
for (int8 rank = MAX_TALENT_RANK - 1; rank >= 0; --rank)
|
||||
{
|
||||
if (talentInfo->RankID[rank] != 0)
|
||||
{
|
||||
|
||||
@@ -105,8 +105,7 @@ public:
|
||||
handler->PSendSysMessage(LANG_CREATURE_LIST_CHAT, guid, guid, cInfo->Name.c_str(), x, y, z, mapId);
|
||||
else
|
||||
handler->PSendSysMessage(LANG_CREATURE_LIST_CONSOLE, guid, cInfo->Name.c_str(), x, y, z, mapId);
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
}
|
||||
|
||||
handler->PSendSysMessage(LANG_COMMAND_LISTCREATUREMESSAGE, creatureId, creatureCount);
|
||||
@@ -185,8 +184,7 @@ public:
|
||||
itemPos = "";
|
||||
|
||||
handler->PSendSysMessage(LANG_ITEMLIST_SLOT, itemGuid, ownerName.c_str(), ownerGuid, ownerAccountId, itemPos);
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
|
||||
uint32 resultCount = uint32(result->GetRowCount());
|
||||
|
||||
@@ -232,8 +230,7 @@ public:
|
||||
char const* itemPos = "[in mail]";
|
||||
|
||||
handler->PSendSysMessage(LANG_ITEMLIST_MAIL, itemGuid, itemSenderName.c_str(), itemSender, itemSenderAccountId, itemReceiverName.c_str(), itemReceiver, itemReceiverAccount, itemPos);
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
|
||||
uint32 resultCount = uint32(result->GetRowCount());
|
||||
|
||||
@@ -276,8 +273,7 @@ public:
|
||||
char const* itemPos = "[in auction]";
|
||||
|
||||
handler->PSendSysMessage(LANG_ITEMLIST_AUCTION, itemGuid, ownerName.c_str(), owner, ownerAccountId, itemPos);
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
}
|
||||
|
||||
// guild bank case
|
||||
@@ -307,8 +303,7 @@ public:
|
||||
char const* itemPos = "[in guild bank]";
|
||||
|
||||
handler->PSendSysMessage(LANG_ITEMLIST_GUILD, itemGuid, guildName.c_str(), guildGuid, itemPos);
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
|
||||
uint32 resultCount = uint32(result->GetRowCount());
|
||||
|
||||
@@ -395,8 +390,7 @@ public:
|
||||
handler->PSendSysMessage(LANG_GO_LIST_CHAT, guid, entry, guid, gInfo->name.c_str(), x, y, z, mapId);
|
||||
else
|
||||
handler->PSendSysMessage(LANG_GO_LIST_CONSOLE, guid, gInfo->name.c_str(), x, y, z, mapId);
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
}
|
||||
|
||||
handler->PSendSysMessage(LANG_COMMAND_LISTOBJMESSAGE, gameObjectId, objectCount);
|
||||
|
||||
@@ -125,7 +125,7 @@ public:
|
||||
// send area in "id - [name]" format
|
||||
std::ostringstream ss;
|
||||
if (handler->GetSession())
|
||||
ss << areaEntry->ID << " - |cffffffff|Harea:" << areaEntry->ID << "|h[" << name << ' ' << localeNames[locale]<< "]|h|r";
|
||||
ss << areaEntry->ID << " - |cffffffff|Harea:" << areaEntry->ID << "|h[" << name << ' ' << localeNames[locale] << "]|h|r";
|
||||
else
|
||||
ss << areaEntry->ID << " - " << name << ' ' << localeNames[locale];
|
||||
|
||||
@@ -1025,7 +1025,7 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleLookupTaxiNodeCommand(ChatHandler* handler, const char * args)
|
||||
static bool HandleLookupTaxiNodeCommand(ChatHandler* handler, const char* args)
|
||||
{
|
||||
if (!*args)
|
||||
return false;
|
||||
@@ -1126,7 +1126,7 @@ public:
|
||||
uint32 maxResults = sWorld->getIntConfig(CONFIG_MAX_RESULTS_LOOKUP_COMMANDS);
|
||||
bool limitReached = false;
|
||||
|
||||
GameTeleContainer const & teleMap = sObjectMgr->GetGameTeleMap();
|
||||
GameTeleContainer const& teleMap = sObjectMgr->GetGameTeleMap();
|
||||
for (GameTeleContainer::const_iterator itr = teleMap.begin(); itr != teleMap.end(); ++itr)
|
||||
{
|
||||
GameTele const* tele = &itr->second;
|
||||
@@ -1428,15 +1428,13 @@ public:
|
||||
}
|
||||
|
||||
if (plevel > 0 && prace > 0 && prace <= RACE_DRAENEI && pclass > 0 && pclass <= CLASS_DRUID)
|
||||
handler->PSendSysMessage(" %s (GUID %u) - %s - %s - %u%s", name.c_str(), guid, name_races[prace-1], name_classes[pclass-1], plevel, (online ? " - [ONLINE]" : ""));
|
||||
handler->PSendSysMessage(" %s (GUID %u) - %s - %s - %u%s", name.c_str(), guid, name_races[prace - 1], name_classes[pclass - 1], plevel, (online ? " - [ONLINE]" : ""));
|
||||
else
|
||||
handler->PSendSysMessage(LANG_LOOKUP_PLAYER_CHARACTER, name.c_str(), guid);
|
||||
++counter;
|
||||
} while (result2->NextRow() && (limit == -1 || counter < limit));
|
||||
}
|
||||
while (result2->NextRow() && (limit == -1 || counter < limit));
|
||||
}
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
|
||||
if (counter == 0) // empty accounts only
|
||||
{
|
||||
|
||||
@@ -91,7 +91,7 @@ public:
|
||||
std::string str = handler->GetAcoreString(LANG_GLOBAL_NOTIFY);
|
||||
str += args;
|
||||
|
||||
WorldPacket data(SMSG_NOTIFICATION, (str.size()+1));
|
||||
WorldPacket data(SMSG_NOTIFICATION, (str.size() + 1));
|
||||
data << str;
|
||||
sWorld->SendGlobalMessage(&data);
|
||||
|
||||
@@ -106,7 +106,7 @@ public:
|
||||
std::string str = handler->GetAcoreString(LANG_GM_NOTIFY);
|
||||
str += args;
|
||||
|
||||
WorldPacket data(SMSG_NOTIFICATION, (str.size()+1));
|
||||
WorldPacket data(SMSG_NOTIFICATION, (str.size() + 1));
|
||||
data << str;
|
||||
sWorld->SendGlobalGMMessage(&data);
|
||||
|
||||
|
||||
@@ -189,7 +189,7 @@ public:
|
||||
return false;
|
||||
}
|
||||
|
||||
if (tokens.size() != uint16(count+2))
|
||||
if (tokens.size() != uint16(count + 2))
|
||||
{
|
||||
handler->PSendSysMessage("Invalid number of nicknames for this bracket.");
|
||||
handler->SetSentErrorMessage(true);
|
||||
@@ -231,8 +231,8 @@ public:
|
||||
players[cnt++] = plr;
|
||||
}
|
||||
|
||||
for (uint8 i=0; i<cnt && !error; ++i)
|
||||
for (uint8 j=i+1; j<cnt; ++j)
|
||||
for (uint8 i = 0; i < cnt && !error; ++i)
|
||||
for (uint8 j = i + 1; j < cnt; ++j)
|
||||
if (players[i]->GetGUID() == players[j]->GetGUID())
|
||||
{
|
||||
last_name = players[i]->GetName();
|
||||
@@ -311,7 +311,7 @@ public:
|
||||
|
||||
TeamId teamId1 = Player::TeamIdForRace(players[0]->getRace());
|
||||
TeamId teamId2 = (teamId1 == TEAM_ALLIANCE ? TEAM_HORDE : TEAM_ALLIANCE);
|
||||
for (uint8 i=0; i<cnt; ++i)
|
||||
for (uint8 i = 0; i < cnt; ++i)
|
||||
{
|
||||
Player* player = players[i];
|
||||
|
||||
@@ -601,7 +601,7 @@ public:
|
||||
else
|
||||
_player->SaveRecallPosition();
|
||||
|
||||
if (_player->TeleportTo(target->GetMapId(), target->GetPositionX(), target->GetPositionY(), target->GetPositionZ()+0.25f, _player->GetOrientation(), TELE_TO_GM_MODE, target))
|
||||
if (_player->TeleportTo(target->GetMapId(), target->GetPositionX(), target->GetPositionY(), target->GetPositionZ() + 0.25f, _player->GetOrientation(), TELE_TO_GM_MODE, target))
|
||||
_player->SetPhaseMask(target->GetPhaseMask() | 1, false);
|
||||
}
|
||||
else
|
||||
@@ -1032,7 +1032,7 @@ public:
|
||||
{
|
||||
uint64 guid = handler->extractGuidFromLink((char*)args);
|
||||
if (guid)
|
||||
obj = (WorldObject*)ObjectAccessor::GetObjectByTypeMask(*handler->GetSession()->GetPlayer(), guid, TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT);
|
||||
obj = (WorldObject*)ObjectAccessor::GetObjectByTypeMask(*handler->GetSession()->GetPlayer(), guid, TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT);
|
||||
|
||||
if (!obj)
|
||||
{
|
||||
@@ -1258,7 +1258,7 @@ public:
|
||||
uint32 zoneId = player->GetZoneId();
|
||||
|
||||
AreaTableEntry const* areaEntry = sAreaTableStore.LookupEntry(zoneId);
|
||||
if (!areaEntry || areaEntry->zone !=0)
|
||||
if (!areaEntry || areaEntry->zone != 0)
|
||||
{
|
||||
handler->PSendSysMessage(LANG_COMMAND_GRAVEYARDWRONGZONE, graveyardId, zoneId);
|
||||
handler->SetSentErrorMessage(true);
|
||||
@@ -1423,7 +1423,7 @@ public:
|
||||
|
||||
if (itemNameStr && itemNameStr[0])
|
||||
{
|
||||
std::string itemName = itemNameStr+1;
|
||||
std::string itemName = itemNameStr + 1;
|
||||
WorldDatabase.EscapeString(itemName);
|
||||
|
||||
PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_ITEM_TEMPLATE_BY_NAME);
|
||||
@@ -1432,7 +1432,7 @@ public:
|
||||
|
||||
if (!result)
|
||||
{
|
||||
handler->PSendSysMessage(LANG_COMMAND_COULDNOTFIND, itemNameStr+1);
|
||||
handler->PSendSysMessage(LANG_COMMAND_COULDNOTFIND, itemNameStr + 1);
|
||||
handler->SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
@@ -2324,7 +2324,7 @@ public:
|
||||
if (!*args)
|
||||
return false;
|
||||
|
||||
char *nameStr = strtok((char*)args, "");
|
||||
char* nameStr = strtok((char*)args, "");
|
||||
if (!nameStr)
|
||||
return false;
|
||||
|
||||
@@ -2349,7 +2349,7 @@ public:
|
||||
// helper for mutehistory
|
||||
static bool HandleMuteInfoHelper(uint32 accountId, char const* accountName, ChatHandler* handler)
|
||||
{
|
||||
PreparedStatement *stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_MUTE_INFO);
|
||||
PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_MUTE_INFO);
|
||||
stmt->setUInt16(0, accountId);
|
||||
PreparedQueryResult result = LoginDatabase.Query(stmt);
|
||||
|
||||
@@ -2885,7 +2885,7 @@ public:
|
||||
}
|
||||
|
||||
// prepare visual effect for levelup
|
||||
pet->SetUInt32Value(UNIT_FIELD_LEVEL, creatureTarget->getLevel()-1);
|
||||
pet->SetUInt32Value(UNIT_FIELD_LEVEL, creatureTarget->getLevel() - 1);
|
||||
|
||||
pet->GetCharmInfo()->SetPetNumber(sObjectMgr->GeneratePetNumber(), true);
|
||||
// this enables pet details window (Shift+P)
|
||||
@@ -3028,7 +3028,7 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleUnFreezeCommand(ChatHandler* handler, char const*args)
|
||||
static bool HandleUnFreezeCommand(ChatHandler* handler, char const* args)
|
||||
{
|
||||
std::string name;
|
||||
Player* player;
|
||||
|
||||
@@ -103,9 +103,9 @@ public:
|
||||
handler->PSendSysMessage("Building: %s", useStraightPath ? "StraightPath" : useStraightLine ? "Raycast" : "SmoothPath");
|
||||
handler->PSendSysMessage("Result: %s - Length: " SZFMTD " - Type: %u", (result ? "true" : "false"), pointPath.size(), path.GetPathType());
|
||||
|
||||
G3D::Vector3 const &start = path.GetStartPosition();
|
||||
G3D::Vector3 const &end = path.GetEndPosition();
|
||||
G3D::Vector3 const &actualEnd = path.GetActualEndPosition();
|
||||
G3D::Vector3 const& start = path.GetStartPosition();
|
||||
G3D::Vector3 const& end = path.GetEndPosition();
|
||||
G3D::Vector3 const& actualEnd = path.GetActualEndPosition();
|
||||
|
||||
handler->PSendSysMessage("StartPosition (%.3f, %.3f, %.3f)", start.x, start.y, start.z);
|
||||
handler->PSendSysMessage("EndPosition (%.3f, %.3f, %.3f)", end.x, end.y, end.z);
|
||||
|
||||
@@ -167,8 +167,8 @@ public:
|
||||
// int32 manam = atoi(pmanaMax);
|
||||
// int32 mana = atoi(pmana);
|
||||
|
||||
int32 energy = atoi((char*)args)*10;
|
||||
int32 energym = atoi((char*)args)*10;
|
||||
int32 energy = atoi((char*)args) * 10;
|
||||
int32 energym = atoi((char*)args) * 10;
|
||||
|
||||
if (energy <= 0 || energym <= 0 || energym < energy)
|
||||
{
|
||||
@@ -189,9 +189,9 @@ public:
|
||||
if (handler->HasLowerSecurity(target, 0))
|
||||
return false;
|
||||
|
||||
handler->PSendSysMessage(LANG_YOU_CHANGE_ENERGY, handler->GetNameLink(target).c_str(), energy/10, energym/10);
|
||||
handler->PSendSysMessage(LANG_YOU_CHANGE_ENERGY, handler->GetNameLink(target).c_str(), energy / 10, energym / 10);
|
||||
if (handler->needReportToTarget(target))
|
||||
(ChatHandler(target->GetSession())).PSendSysMessage(LANG_YOURS_ENERGY_CHANGED, handler->GetNameLink().c_str(), energy/10, energym/10);
|
||||
(ChatHandler(target->GetSession())).PSendSysMessage(LANG_YOURS_ENERGY_CHANGED, handler->GetNameLink().c_str(), energy / 10, energym / 10);
|
||||
|
||||
target->SetMaxPower(POWER_ENERGY, energym);
|
||||
target->SetPower(POWER_ENERGY, energy);
|
||||
@@ -220,8 +220,8 @@ public:
|
||||
// int32 manam = atoi(pmanaMax);
|
||||
// int32 mana = atoi(pmana);
|
||||
|
||||
int32 rage = atoi((char*)args)*10;
|
||||
int32 ragem = atoi((char*)args)*10;
|
||||
int32 rage = atoi((char*)args) * 10;
|
||||
int32 ragem = atoi((char*)args) * 10;
|
||||
|
||||
if (rage <= 0 || ragem <= 0 || ragem < rage)
|
||||
{
|
||||
@@ -242,9 +242,9 @@ public:
|
||||
if (handler->HasLowerSecurity(target, 0))
|
||||
return false;
|
||||
|
||||
handler->PSendSysMessage(LANG_YOU_CHANGE_RAGE, handler->GetNameLink(target).c_str(), rage/10, ragem/10);
|
||||
handler->PSendSysMessage(LANG_YOU_CHANGE_RAGE, handler->GetNameLink(target).c_str(), rage / 10, ragem / 10);
|
||||
if (handler->needReportToTarget(target))
|
||||
(ChatHandler(target->GetSession())).PSendSysMessage(LANG_YOURS_RAGE_CHANGED, handler->GetNameLink().c_str(), rage/10, ragem/10);
|
||||
(ChatHandler(target->GetSession())).PSendSysMessage(LANG_YOURS_RAGE_CHANGED, handler->GetNameLink().c_str(), rage / 10, ragem / 10);
|
||||
|
||||
target->SetMaxPower(POWER_RAGE, ragem);
|
||||
target->SetPower(POWER_RAGE, rage);
|
||||
@@ -258,8 +258,8 @@ public:
|
||||
if (!*args)
|
||||
return false;
|
||||
|
||||
int32 rune = atoi((char*)args)*10;
|
||||
int32 runem = atoi((char*)args)*10;
|
||||
int32 rune = atoi((char*)args) * 10;
|
||||
int32 runem = atoi((char*)args) * 10;
|
||||
|
||||
if (rune <= 0 || runem <= 0 || runem < rune)
|
||||
{
|
||||
@@ -276,9 +276,9 @@ public:
|
||||
return false;
|
||||
}
|
||||
|
||||
handler->PSendSysMessage(LANG_YOU_CHANGE_RUNIC_POWER, handler->GetNameLink(target).c_str(), rune/10, runem/10);
|
||||
handler->PSendSysMessage(LANG_YOU_CHANGE_RUNIC_POWER, handler->GetNameLink(target).c_str(), rune / 10, runem / 10);
|
||||
if (handler->needReportToTarget(target))
|
||||
(ChatHandler(target->GetSession())).PSendSysMessage(LANG_YOURS_RUNIC_POWER_CHANGED, handler->GetNameLink().c_str(), rune/10, runem/10);
|
||||
(ChatHandler(target->GetSession())).PSendSysMessage(LANG_YOURS_RUNIC_POWER_CHANGED, handler->GetNameLink().c_str(), rune / 10, runem / 10);
|
||||
|
||||
target->SetMaxPower(POWER_RUNIC_POWER, runem);
|
||||
target->SetPower(POWER_RUNIC_POWER, rune);
|
||||
@@ -315,7 +315,7 @@ public:
|
||||
uint32 factionid = atoi(pfactionid);
|
||||
uint32 flag;
|
||||
|
||||
char *pflag = strtok(nullptr, " ");
|
||||
char* pflag = strtok(nullptr, " ");
|
||||
if (!pflag)
|
||||
flag = target->GetUInt32Value(UNIT_FIELD_FLAGS);
|
||||
else
|
||||
@@ -400,7 +400,7 @@ public:
|
||||
if (handler->needReportToTarget(target))
|
||||
(ChatHandler(target->GetSession())).PSendSysMessage(LANG_YOURS_SPELLFLATID_CHANGED, handler->GetNameLink().c_str(), spellflatid, val, mark);
|
||||
|
||||
WorldPacket data(SMSG_SET_FLAT_SPELL_MODIFIER, (1+1+2+2));
|
||||
WorldPacket data(SMSG_SET_FLAT_SPELL_MODIFIER, (1 + 1 + 2 + 2));
|
||||
data << uint8(spellflatid);
|
||||
data << uint8(op);
|
||||
data << uint16(val);
|
||||
@@ -737,211 +737,211 @@ public:
|
||||
switch (num)
|
||||
{
|
||||
case 1:
|
||||
mId=14340;
|
||||
mId = 14340;
|
||||
break;
|
||||
case 2:
|
||||
mId=4806;
|
||||
mId = 4806;
|
||||
break;
|
||||
case 3:
|
||||
mId=6471;
|
||||
mId = 6471;
|
||||
break;
|
||||
case 4:
|
||||
mId=12345;
|
||||
mId = 12345;
|
||||
break;
|
||||
case 5:
|
||||
mId=6472;
|
||||
mId = 6472;
|
||||
break;
|
||||
case 6:
|
||||
mId=6473;
|
||||
mId = 6473;
|
||||
break;
|
||||
case 7:
|
||||
mId=10670;
|
||||
mId = 10670;
|
||||
break;
|
||||
case 8:
|
||||
mId=10719;
|
||||
mId = 10719;
|
||||
break;
|
||||
case 9:
|
||||
mId=10671;
|
||||
mId = 10671;
|
||||
break;
|
||||
case 10:
|
||||
mId=10672;
|
||||
mId = 10672;
|
||||
break;
|
||||
case 11:
|
||||
mId=10720;
|
||||
mId = 10720;
|
||||
break;
|
||||
case 12:
|
||||
mId=14349;
|
||||
mId = 14349;
|
||||
break;
|
||||
case 13:
|
||||
mId=11641;
|
||||
mId = 11641;
|
||||
break;
|
||||
case 14:
|
||||
mId=12244;
|
||||
mId = 12244;
|
||||
break;
|
||||
case 15:
|
||||
mId=12242;
|
||||
mId = 12242;
|
||||
break;
|
||||
case 16:
|
||||
mId=14578;
|
||||
mId = 14578;
|
||||
break;
|
||||
case 17:
|
||||
mId=14579;
|
||||
mId = 14579;
|
||||
break;
|
||||
case 18:
|
||||
mId=14349;
|
||||
mId = 14349;
|
||||
break;
|
||||
case 19:
|
||||
mId=12245;
|
||||
mId = 12245;
|
||||
break;
|
||||
case 20:
|
||||
mId=14335;
|
||||
mId = 14335;
|
||||
break;
|
||||
case 21:
|
||||
mId=207;
|
||||
mId = 207;
|
||||
break;
|
||||
case 22:
|
||||
mId=2328;
|
||||
mId = 2328;
|
||||
break;
|
||||
case 23:
|
||||
mId=2327;
|
||||
mId = 2327;
|
||||
break;
|
||||
case 24:
|
||||
mId=2326;
|
||||
mId = 2326;
|
||||
break;
|
||||
case 25:
|
||||
mId=14573;
|
||||
mId = 14573;
|
||||
break;
|
||||
case 26:
|
||||
mId=14574;
|
||||
mId = 14574;
|
||||
break;
|
||||
case 27:
|
||||
mId=14575;
|
||||
mId = 14575;
|
||||
break;
|
||||
case 28:
|
||||
mId=604;
|
||||
mId = 604;
|
||||
break;
|
||||
case 29:
|
||||
mId=1166;
|
||||
mId = 1166;
|
||||
break;
|
||||
case 30:
|
||||
mId=2402;
|
||||
mId = 2402;
|
||||
break;
|
||||
case 31:
|
||||
mId=2410;
|
||||
mId = 2410;
|
||||
break;
|
||||
case 32:
|
||||
mId=2409;
|
||||
mId = 2409;
|
||||
break;
|
||||
case 33:
|
||||
mId=2408;
|
||||
mId = 2408;
|
||||
break;
|
||||
case 34:
|
||||
mId=2405;
|
||||
mId = 2405;
|
||||
break;
|
||||
case 35:
|
||||
mId=14337;
|
||||
mId = 14337;
|
||||
break;
|
||||
case 36:
|
||||
mId=6569;
|
||||
mId = 6569;
|
||||
break;
|
||||
case 37:
|
||||
mId=10661;
|
||||
mId = 10661;
|
||||
break;
|
||||
case 38:
|
||||
mId=10666;
|
||||
mId = 10666;
|
||||
break;
|
||||
case 39:
|
||||
mId=9473;
|
||||
mId = 9473;
|
||||
break;
|
||||
case 40:
|
||||
mId=9476;
|
||||
mId = 9476;
|
||||
break;
|
||||
case 41:
|
||||
mId=9474;
|
||||
mId = 9474;
|
||||
break;
|
||||
case 42:
|
||||
mId=14374;
|
||||
mId = 14374;
|
||||
break;
|
||||
case 43:
|
||||
mId=14376;
|
||||
mId = 14376;
|
||||
break;
|
||||
case 44:
|
||||
mId=14377;
|
||||
mId = 14377;
|
||||
break;
|
||||
case 45:
|
||||
mId=2404;
|
||||
mId = 2404;
|
||||
break;
|
||||
case 46:
|
||||
mId=2784;
|
||||
mId = 2784;
|
||||
break;
|
||||
case 47:
|
||||
mId=2787;
|
||||
mId = 2787;
|
||||
break;
|
||||
case 48:
|
||||
mId=2785;
|
||||
mId = 2785;
|
||||
break;
|
||||
case 49:
|
||||
mId=2736;
|
||||
mId = 2736;
|
||||
break;
|
||||
case 50:
|
||||
mId=2786;
|
||||
mId = 2786;
|
||||
break;
|
||||
case 51:
|
||||
mId=14347;
|
||||
mId = 14347;
|
||||
break;
|
||||
case 52:
|
||||
mId=14346;
|
||||
mId = 14346;
|
||||
break;
|
||||
case 53:
|
||||
mId=14576;
|
||||
mId = 14576;
|
||||
break;
|
||||
case 54:
|
||||
mId=9695;
|
||||
mId = 9695;
|
||||
break;
|
||||
case 55:
|
||||
mId=9991;
|
||||
mId = 9991;
|
||||
break;
|
||||
case 56:
|
||||
mId=6448;
|
||||
mId = 6448;
|
||||
break;
|
||||
case 57:
|
||||
mId=6444;
|
||||
mId = 6444;
|
||||
break;
|
||||
case 58:
|
||||
mId=6080;
|
||||
mId = 6080;
|
||||
break;
|
||||
case 59:
|
||||
mId=6447;
|
||||
mId = 6447;
|
||||
break;
|
||||
case 60:
|
||||
mId=4805;
|
||||
mId = 4805;
|
||||
break;
|
||||
case 61:
|
||||
mId=9714;
|
||||
mId = 9714;
|
||||
break;
|
||||
case 62:
|
||||
mId=6448;
|
||||
mId = 6448;
|
||||
break;
|
||||
case 63:
|
||||
mId=6442;
|
||||
mId = 6442;
|
||||
break;
|
||||
case 64:
|
||||
mId=14632;
|
||||
mId = 14632;
|
||||
break;
|
||||
case 65:
|
||||
mId=14332;
|
||||
mId = 14332;
|
||||
break;
|
||||
case 66:
|
||||
mId=14331;
|
||||
mId = 14331;
|
||||
break;
|
||||
case 67:
|
||||
mId=8469;
|
||||
mId = 8469;
|
||||
break;
|
||||
case 68:
|
||||
mId=2830;
|
||||
mId = 2830;
|
||||
break;
|
||||
case 69:
|
||||
mId=2346;
|
||||
mId = 2346;
|
||||
break;
|
||||
default:
|
||||
handler->SendSysMessage(LANG_NO_MOUNT);
|
||||
@@ -968,14 +968,14 @@ public:
|
||||
target->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP);
|
||||
target->Mount(mId);
|
||||
|
||||
WorldPacket data(SMSG_FORCE_RUN_SPEED_CHANGE, (8+4+1+4));
|
||||
WorldPacket data(SMSG_FORCE_RUN_SPEED_CHANGE, (8 + 4 + 1 + 4));
|
||||
data.append(target->GetPackGUID());
|
||||
data << (uint32)0;
|
||||
data << (uint8)0; //new 2.1.0
|
||||
data << float(speed);
|
||||
target->SendMessageToSet(&data, true);
|
||||
|
||||
data.Initialize(SMSG_FORCE_SWIM_SPEED_CHANGE, (8+4+4));
|
||||
data.Initialize(SMSG_FORCE_SWIM_SPEED_CHANGE, (8 + 4 + 4));
|
||||
data.append(target->GetPackGUID());
|
||||
data << (uint32)0;
|
||||
data << float(speed);
|
||||
@@ -1100,14 +1100,14 @@ public:
|
||||
return false;
|
||||
}
|
||||
|
||||
if (target->HasFlag(field, (1<<(bit-1))))
|
||||
if (target->HasFlag(field, (1 << (bit - 1))))
|
||||
{
|
||||
target->RemoveFlag(field, (1<<(bit-1)));
|
||||
target->RemoveFlag(field, (1 << (bit - 1)));
|
||||
handler->PSendSysMessage(LANG_REMOVE_BIT, bit, field);
|
||||
}
|
||||
else
|
||||
{
|
||||
target->SetFlag(field, (1<<(bit-1)));
|
||||
target->SetFlag(field, (1 << (bit - 1)));
|
||||
handler->PSendSysMessage(LANG_SET_BIT, bit, field);
|
||||
}
|
||||
return true;
|
||||
@@ -1178,7 +1178,7 @@ public:
|
||||
uint32 factionId = atoi(factionTxt);
|
||||
|
||||
int32 amount = 0;
|
||||
char *rankTxt = strtok(nullptr, " ");
|
||||
char* rankTxt = strtok(nullptr, " ");
|
||||
if (!factionTxt || !rankTxt)
|
||||
return false;
|
||||
|
||||
@@ -1207,13 +1207,13 @@ public:
|
||||
|
||||
if (wrank.substr(0, wrankStr.size()) == wrankStr)
|
||||
{
|
||||
char *deltaTxt = strtok(nullptr, " ");
|
||||
char* deltaTxt = strtok(nullptr, " ");
|
||||
if (deltaTxt)
|
||||
{
|
||||
int32 delta = atoi(deltaTxt);
|
||||
if ((delta < 0) || (delta > ReputationMgr::PointsInRank[r] -1))
|
||||
if ((delta < 0) || (delta > ReputationMgr::PointsInRank[r] - 1))
|
||||
{
|
||||
handler->PSendSysMessage(LANG_COMMAND_FACTION_DELTA, (ReputationMgr::PointsInRank[r]-1));
|
||||
handler->PSendSysMessage(LANG_COMMAND_FACTION_DELTA, (ReputationMgr::PointsInRank[r] - 1));
|
||||
handler->SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -68,38 +68,38 @@ struct MechanicImmune
|
||||
|
||||
MechanicImmune const mechanicImmunes[MAX_MECHANIC] =
|
||||
{
|
||||
{ MECHANIC_NONE , "MECHANIC_NONE" },
|
||||
{ MECHANIC_CHARM , "MECHANIC_CHARM" },
|
||||
{ MECHANIC_DISORIENTED , "MECHANIC_DISORIENTED" },
|
||||
{ MECHANIC_DISARM , "MECHANIC_DISARM" },
|
||||
{ MECHANIC_DISTRACT , "MECHANIC_DISTRACT" },
|
||||
{ MECHANIC_FEAR , "MECHANIC_FEAR" },
|
||||
{ MECHANIC_GRIP , "MECHANIC_GRIP" },
|
||||
{ MECHANIC_ROOT , "MECHANIC_ROOT" },
|
||||
{ MECHANIC_SLOW_ATTACK , "MECHANIC_SLOW_ATTACK" },
|
||||
{ MECHANIC_SILENCE , "MECHANIC_SILENCE" },
|
||||
{ MECHANIC_SLEEP , "MECHANIC_SLEEP" },
|
||||
{ MECHANIC_SNARE , "MECHANIC_SNARE" },
|
||||
{ MECHANIC_STUN , "MECHANIC_STUN" },
|
||||
{ MECHANIC_FREEZE , "MECHANIC_FREEZE" },
|
||||
{ MECHANIC_KNOCKOUT , "MECHANIC_KNOCKOUT" },
|
||||
{ MECHANIC_BLEED , "MECHANIC_BLEED" },
|
||||
{ MECHANIC_BANDAGE , "MECHANIC_BANDAGE" },
|
||||
{ MECHANIC_POLYMORPH , "MECHANIC_POLYMORPH" },
|
||||
{ MECHANIC_BANISH , "MECHANIC_BANISH" },
|
||||
{ MECHANIC_SHIELD , "MECHANIC_SHIELD" },
|
||||
{ MECHANIC_SHACKLE , "MECHANIC_SHACKLE" },
|
||||
{ MECHANIC_MOUNT , "MECHANIC_MOUNT" },
|
||||
{ MECHANIC_INFECTED , "MECHANIC_INFECTED" },
|
||||
{ MECHANIC_TURN , "MECHANIC_TURN" },
|
||||
{ MECHANIC_HORROR , "MECHANIC_HORROR" },
|
||||
{ MECHANIC_INVULNERABILITY , "MECHANIC_INVULNERABILITY" },
|
||||
{ MECHANIC_INTERRUPT , "MECHANIC_INTERRUPT" },
|
||||
{ MECHANIC_DAZE , "MECHANIC_DAZE" },
|
||||
{ MECHANIC_DISCOVERY , "MECHANIC_DISCOVERY" },
|
||||
{ MECHANIC_IMMUNE_SHIELD , "MECHANIC_IMMUNE_SHIELD" },
|
||||
{ MECHANIC_SAPPED , "MECHANIC_SAPPED" },
|
||||
{ MECHANIC_ENRAGED , "MECHANIC_ENRAGED" },
|
||||
{ MECHANIC_NONE, "MECHANIC_NONE" },
|
||||
{ MECHANIC_CHARM, "MECHANIC_CHARM" },
|
||||
{ MECHANIC_DISORIENTED, "MECHANIC_DISORIENTED" },
|
||||
{ MECHANIC_DISARM, "MECHANIC_DISARM" },
|
||||
{ MECHANIC_DISTRACT, "MECHANIC_DISTRACT" },
|
||||
{ MECHANIC_FEAR, "MECHANIC_FEAR" },
|
||||
{ MECHANIC_GRIP, "MECHANIC_GRIP" },
|
||||
{ MECHANIC_ROOT, "MECHANIC_ROOT" },
|
||||
{ MECHANIC_SLOW_ATTACK, "MECHANIC_SLOW_ATTACK" },
|
||||
{ MECHANIC_SILENCE, "MECHANIC_SILENCE" },
|
||||
{ MECHANIC_SLEEP, "MECHANIC_SLEEP" },
|
||||
{ MECHANIC_SNARE, "MECHANIC_SNARE" },
|
||||
{ MECHANIC_STUN, "MECHANIC_STUN" },
|
||||
{ MECHANIC_FREEZE, "MECHANIC_FREEZE" },
|
||||
{ MECHANIC_KNOCKOUT, "MECHANIC_KNOCKOUT" },
|
||||
{ MECHANIC_BLEED, "MECHANIC_BLEED" },
|
||||
{ MECHANIC_BANDAGE, "MECHANIC_BANDAGE" },
|
||||
{ MECHANIC_POLYMORPH, "MECHANIC_POLYMORPH" },
|
||||
{ MECHANIC_BANISH, "MECHANIC_BANISH" },
|
||||
{ MECHANIC_SHIELD, "MECHANIC_SHIELD" },
|
||||
{ MECHANIC_SHACKLE, "MECHANIC_SHACKLE" },
|
||||
{ MECHANIC_MOUNT, "MECHANIC_MOUNT" },
|
||||
{ MECHANIC_INFECTED, "MECHANIC_INFECTED" },
|
||||
{ MECHANIC_TURN, "MECHANIC_TURN" },
|
||||
{ MECHANIC_HORROR, "MECHANIC_HORROR" },
|
||||
{ MECHANIC_INVULNERABILITY, "MECHANIC_INVULNERABILITY" },
|
||||
{ MECHANIC_INTERRUPT, "MECHANIC_INTERRUPT" },
|
||||
{ MECHANIC_DAZE, "MECHANIC_DAZE" },
|
||||
{ MECHANIC_DISCOVERY, "MECHANIC_DISCOVERY" },
|
||||
{ MECHANIC_IMMUNE_SHIELD, "MECHANIC_IMMUNE_SHIELD" },
|
||||
{ MECHANIC_SAPPED, "MECHANIC_SAPPED" },
|
||||
{ MECHANIC_ENRAGED, "MECHANIC_ENRAGED" },
|
||||
};
|
||||
|
||||
class npc_commandscript : public CommandScript
|
||||
@@ -442,15 +442,15 @@ public:
|
||||
{
|
||||
if (((Pet*)creature)->getPetType() == HUNTER_PET)
|
||||
{
|
||||
creature->SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, sObjectMgr->GetXPForLevel(lvl)/4);
|
||||
creature->SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, sObjectMgr->GetXPForLevel(lvl) / 4);
|
||||
creature->SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, 0);
|
||||
}
|
||||
((Pet*)creature)->GivePetLevel(lvl);
|
||||
}
|
||||
else
|
||||
{
|
||||
creature->SetMaxHealth(100 + 30*lvl);
|
||||
creature->SetHealth(100 + 30*lvl);
|
||||
creature->SetMaxHealth(100 + 30 * lvl);
|
||||
creature->SetHealth(100 + 30 * lvl);
|
||||
creature->SetLevel(lvl);
|
||||
creature->SaveToDB();
|
||||
}
|
||||
@@ -722,7 +722,7 @@ public:
|
||||
uint32 nativeid = target->GetNativeDisplayId();
|
||||
uint32 Entry = target->GetEntry();
|
||||
|
||||
int64 curRespawnDelay = target->GetRespawnTimeEx()-time(nullptr);
|
||||
int64 curRespawnDelay = target->GetRespawnTimeEx() - time(nullptr);
|
||||
if (curRespawnDelay < 0)
|
||||
curRespawnDelay = 0;
|
||||
std::string curRespawnDelayStr = secsToTimeString(uint64(curRespawnDelay), true);
|
||||
@@ -791,8 +791,7 @@ public:
|
||||
handler->PSendSysMessage(LANG_CREATURE_LIST_CHAT, guid, guid, creatureTemplate->Name.c_str(), x, y, z, mapId);
|
||||
|
||||
++count;
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
}
|
||||
|
||||
handler->PSendSysMessage(LANG_COMMAND_NEAR_NPC_MESSAGE, distance, count);
|
||||
@@ -1122,7 +1121,7 @@ public:
|
||||
}
|
||||
|
||||
MovementGeneratorType mtype = IDLE_MOTION_TYPE;
|
||||
if (option >0.0f)
|
||||
if (option > 0.0f)
|
||||
mtype = RANDOM_MOTION_TYPE;
|
||||
|
||||
Creature* creature = handler->getSelectedCreature();
|
||||
@@ -1214,9 +1213,15 @@ public:
|
||||
char lastchar = args[strlen(args) - 1];
|
||||
switch (lastchar)
|
||||
{
|
||||
case '?': creature->HandleEmoteCommand(EMOTE_ONESHOT_QUESTION); break;
|
||||
case '!': creature->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION); break;
|
||||
default: creature->HandleEmoteCommand(EMOTE_ONESHOT_TALK); break;
|
||||
case '?':
|
||||
creature->HandleEmoteCommand(EMOTE_ONESHOT_QUESTION);
|
||||
break;
|
||||
case '!':
|
||||
creature->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
|
||||
break;
|
||||
default:
|
||||
creature->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -1386,7 +1391,7 @@ public:
|
||||
// place pet before player
|
||||
float x, y, z;
|
||||
player->GetClosePoint (x, y, z, creatureTarget->GetObjectSize(), CONTACT_DISTANCE);
|
||||
pet->Relocate(x, y, z, M_PI-player->GetOrientation());
|
||||
pet->Relocate(x, y, z, M_PI - player->GetOrientation());
|
||||
|
||||
// set pet to defensive mode by default (some classes can't control controlled pets in fact).
|
||||
pet->SetReactState(REACT_DEFENSIVE);
|
||||
@@ -1442,7 +1447,7 @@ public:
|
||||
|
||||
group_member = new FormationInfo;
|
||||
group_member->follow_angle = (creature->GetAngle(chr) - chr->GetOrientation()) * 180 / M_PI;
|
||||
group_member->follow_dist = sqrtf(pow(chr->GetPositionX() - creature->GetPositionX(), int(2))+pow(chr->GetPositionY() - creature->GetPositionY(), int(2)));
|
||||
group_member->follow_dist = sqrtf(pow(chr->GetPositionX() - creature->GetPositionX(), int(2)) + pow(chr->GetPositionY() - creature->GetPositionY(), int(2)));
|
||||
group_member->leaderGUID = leaderGUID;
|
||||
group_member->groupAI = 0;
|
||||
|
||||
|
||||
@@ -181,11 +181,11 @@ public:
|
||||
uint32 curItemCount = player->GetItemCount(id, true);
|
||||
|
||||
ItemPosCountVec dest;
|
||||
uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, id, count-curItemCount);
|
||||
uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, id, count - curItemCount);
|
||||
if (msg == EQUIP_ERR_OK)
|
||||
{
|
||||
Item* item = player->StoreNewItem(dest, id, true);
|
||||
player->SendNewItem(item, count-curItemCount, true, false);
|
||||
player->SendNewItem(item, count - curItemCount, true, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -484,7 +484,7 @@ public:
|
||||
cInfo->SkinLootId = fields[45].GetUInt32();
|
||||
|
||||
for (uint8 i = SPELL_SCHOOL_HOLY; i < MAX_SPELL_SCHOOL; ++i)
|
||||
cInfo->resistance[i] = fields[46 + i -1].GetUInt16();
|
||||
cInfo->resistance[i] = fields[46 + i - 1].GetUInt16();
|
||||
|
||||
cInfo->spells[0] = fields[52].GetUInt32();
|
||||
cInfo->spells[1] = fields[53].GetUInt32();
|
||||
|
||||
@@ -31,25 +31,25 @@ public:
|
||||
static std::vector<ChatCommand> serverIdleRestartCommandTable =
|
||||
{
|
||||
{ "cancel", SEC_ADMINISTRATOR, true, &HandleServerShutDownCancelCommand, "" },
|
||||
{ "" , SEC_ADMINISTRATOR, true, &HandleServerIdleRestartCommand, "" }
|
||||
{ "", SEC_ADMINISTRATOR, true, &HandleServerIdleRestartCommand, "" }
|
||||
};
|
||||
|
||||
static std::vector<ChatCommand> serverIdleShutdownCommandTable =
|
||||
{
|
||||
{ "cancel", SEC_ADMINISTRATOR, true, &HandleServerShutDownCancelCommand, "" },
|
||||
{ "" , SEC_ADMINISTRATOR, true, &HandleServerIdleShutDownCommand, "" }
|
||||
{ "", SEC_ADMINISTRATOR, true, &HandleServerIdleShutDownCommand, "" }
|
||||
};
|
||||
|
||||
static std::vector<ChatCommand> serverRestartCommandTable =
|
||||
{
|
||||
{ "cancel", SEC_ADMINISTRATOR, true, &HandleServerShutDownCancelCommand, "" },
|
||||
{ "" , SEC_ADMINISTRATOR, true, &HandleServerRestartCommand, "" }
|
||||
{ "", SEC_ADMINISTRATOR, true, &HandleServerRestartCommand, "" }
|
||||
};
|
||||
|
||||
static std::vector<ChatCommand> serverShutdownCommandTable =
|
||||
{
|
||||
{ "cancel", SEC_ADMINISTRATOR, true, &HandleServerShutDownCancelCommand, "" },
|
||||
{ "" , SEC_ADMINISTRATOR, true, &HandleServerShutDownCommand, "" }
|
||||
{ "", SEC_ADMINISTRATOR, true, &HandleServerShutDownCommand, "" }
|
||||
};
|
||||
|
||||
static std::vector<ChatCommand> serverSetCommandTable =
|
||||
|
||||
@@ -152,7 +152,7 @@ bool ArenaSpectator::HandleSpectatorSpectateCommand(ChatHandler* handler, char c
|
||||
const Unit::VisibleAuraMap* va = player->GetVisibleAuras();
|
||||
for (Unit::VisibleAuraMap::const_iterator itr = va->begin(); itr != va->end(); ++itr)
|
||||
if (Aura* aura = itr->second->GetBase())
|
||||
if (!itr->second->IsPositive() && !aura->IsPermanent() && aura->GetDuration() < HOUR*IN_MILLISECONDS)
|
||||
if (!itr->second->IsPositive() && !aura->IsPermanent() && aura->GetDuration() < HOUR * IN_MILLISECONDS)
|
||||
{
|
||||
switch (aura->GetSpellInfo()->Id)
|
||||
{
|
||||
@@ -192,7 +192,7 @@ bool ArenaSpectator::HandleSpectatorSpectateCommand(ChatHandler* handler, char c
|
||||
{
|
||||
handler->PSendSysMessage("To spectate, please fix the following:");
|
||||
for (std::list<std::string>::const_iterator itr = errors.begin(); itr != errors.end(); ++itr)
|
||||
handler->PSendSysMessage("- %s",(*itr).c_str());
|
||||
handler->PSendSysMessage("- %s", (*itr).c_str());
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -203,7 +203,7 @@ bool ArenaSpectator::HandleSpectatorSpectateCommand(ChatHandler* handler, char c
|
||||
player->SetPendingSpectatorForBG(spectate->GetBattlegroundId());
|
||||
player->SetBattlegroundId(spectate->GetBattlegroundId(), spectate->GetBattlegroundTypeId(), PLAYER_MAX_BATTLEGROUND_QUEUES, false, false, TEAM_NEUTRAL);
|
||||
player->SetEntryPoint();
|
||||
float z = spectate->GetMapId() == 618 ? std::max(28.27f, spectate->GetPositionZ()+0.25f) : spectate->GetPositionZ()+0.25f;
|
||||
float z = spectate->GetMapId() == 618 ? std::max(28.27f, spectate->GetPositionZ() + 0.25f) : spectate->GetPositionZ() + 0.25f;
|
||||
player->TeleportTo(spectate->GetMapId(), spectate->GetPositionX(), spectate->GetPositionY(), z, spectate->GetOrientation(), TELE_TO_GM_MODE);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ public:
|
||||
PreparedQueryResult result = WorldDatabase.Query(stmt);
|
||||
|
||||
uint32 maxpathid = result->Fetch()->GetInt32();
|
||||
pathid = maxpathid+1;
|
||||
pathid = maxpathid + 1;
|
||||
handler->PSendSysMessage("%s%s|r", "|cff00ff00", "New path started.");
|
||||
}
|
||||
}
|
||||
@@ -121,7 +121,7 @@ public:
|
||||
|
||||
WorldDatabase.Execute(stmt);
|
||||
|
||||
handler->PSendSysMessage("%s%s%u%s%u%s|r", "|cff00ff00", "PathID: |r|cff00ffff", pathid, "|r|cff00ff00: Waypoint |r|cff00ffff", point+1, "|r|cff00ff00 created. ");
|
||||
handler->PSendSysMessage("%s%s%u%s%u%s|r", "|cff00ff00", "PathID: |r|cff00ffff", pathid, "|r|cff00ff00: Waypoint |r|cff00ffff", point + 1, "|r|cff00ff00 created. ");
|
||||
return true;
|
||||
} // HandleWpAddCommand
|
||||
|
||||
@@ -318,7 +318,7 @@ public:
|
||||
|
||||
WorldDatabase.Execute(stmt);
|
||||
|
||||
handler->PSendSysMessage("%s%s%u|r", "|cff00ff00", "Wp Event: New waypoint event added: |r|cff00ffff", id+1);
|
||||
handler->PSendSysMessage("%s%s%u|r", "|cff00ff00", "Wp Event: New waypoint event added: |r|cff00ffff", id + 1);
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -365,8 +365,7 @@ public:
|
||||
a11 = fields[9].GetFloat();
|
||||
|
||||
handler->PSendSysMessage("|cffff33ffid:|r|cff00ffff %u|r|cff00ff00, guid: |r|cff00ffff%u|r|cff00ff00, delay: |r|cff00ffff%u|r|cff00ff00, command: |r|cff00ffff%u|r|cff00ff00, datalong: |r|cff00ffff%u|r|cff00ff00, datalong2: |r|cff00ffff%u|r|cff00ff00, datatext: |r|cff00ffff%s|r|cff00ff00, posx: |r|cff00ffff%f|r|cff00ff00, posy: |r|cff00ffff%f|r|cff00ff00, posz: |r|cff00ffff%f|r|cff00ff00, orientation: |r|cff00ffff%f|r", id, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
}
|
||||
|
||||
if (show == "del")
|
||||
@@ -619,8 +618,7 @@ public:
|
||||
Field* fields = result->Fetch();
|
||||
pathid = fields[0].GetUInt32();
|
||||
point = fields[1].GetUInt32();
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
|
||||
// We have the waypoint number and the GUID of the "master npc"
|
||||
// Text is enclosed in "<>", all other arguments not
|
||||
@@ -719,7 +717,7 @@ public:
|
||||
return true;
|
||||
} // move
|
||||
|
||||
const char *text = arg_str;
|
||||
const char* text = arg_str;
|
||||
|
||||
if (text == 0)
|
||||
{
|
||||
@@ -824,8 +822,7 @@ public:
|
||||
handler->PSendSysMessage("|cff00ff00Show info: Move flag: |r|cff00ffff%u|r", flag);
|
||||
handler->PSendSysMessage("|cff00ff00Show info: Waypoint event: |r|cff00ffff%u|r", ev_id);
|
||||
handler->PSendSysMessage("|cff00ff00Show info: Event chance: |r|cff00ffff%u|r", ev_chance);
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -881,8 +878,7 @@ public:
|
||||
creature->AddObjectToRemoveList();
|
||||
}
|
||||
|
||||
}
|
||||
while (result2->NextRow());
|
||||
} while (result2->NextRow());
|
||||
|
||||
if (hasError)
|
||||
{
|
||||
@@ -938,8 +934,7 @@ public:
|
||||
wpCreature->SetObjectScale(0.5f);
|
||||
wpCreature->SetLevel(point > STRONG_MAX_LEVEL ? STRONG_MAX_LEVEL : point);
|
||||
}
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
|
||||
handler->SendSysMessage("|cff00ff00Showing the current creature's path.|r");
|
||||
return true;
|
||||
@@ -1079,8 +1074,7 @@ public:
|
||||
creature->DeleteFromDB();
|
||||
creature->AddObjectToRemoveList();
|
||||
}
|
||||
}
|
||||
while (result->NextRow());
|
||||
} while (result->NextRow());
|
||||
// set "wpguid" column to "empty" - no visual waypoint spawned
|
||||
stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_WAYPOINT_DATA_ALL_WPGUID);
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ SpellPair const _auraPairs[MAX_SPELL_PAIRS] =
|
||||
|
||||
class npc_av_marshal_or_warmaster : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
npc_av_marshal_or_warmaster() : CreatureScript("npc_av_marshal_or_warmaster") { }
|
||||
|
||||
struct npc_av_marshal_or_warmasterAI : public ScriptedAI
|
||||
|
||||
@@ -61,7 +61,8 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_WATERBOLT);
|
||||
waterBoltTimer = 5 * IN_MILLISECONDS;
|
||||
} else waterBoltTimer -= diff;
|
||||
}
|
||||
else waterBoltTimer -= diff;
|
||||
|
||||
// check if creature is not outside of building
|
||||
if (resetTimer < diff)
|
||||
@@ -70,7 +71,8 @@ public:
|
||||
if (me->GetDistance2d(pBalinda->GetHomePosition().GetPositionX(), pBalinda->GetHomePosition().GetPositionY()) > 50)
|
||||
EnterEvadeMode();
|
||||
resetTimer = 5 * IN_MILLISECONDS;
|
||||
} else resetTimer -= diff;
|
||||
}
|
||||
else resetTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
@@ -145,31 +147,36 @@ public:
|
||||
if (summons.empty())
|
||||
me->SummonCreature(NPC_WATER_ELEMENTAL, 0, 0, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45 * IN_MILLISECONDS);
|
||||
waterElementalTimer = 50 * IN_MILLISECONDS;
|
||||
} else waterElementalTimer -= diff;
|
||||
}
|
||||
else waterElementalTimer -= diff;
|
||||
|
||||
if (arcaneExplosionTimer < diff)
|
||||
{
|
||||
DoCastVictim(SPELL_ARCANE_EXPLOSION);
|
||||
arcaneExplosionTimer = urand(5 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
|
||||
} else arcaneExplosionTimer -= diff;
|
||||
}
|
||||
else arcaneExplosionTimer -= diff;
|
||||
|
||||
if (coneOfColdTimer < diff)
|
||||
{
|
||||
DoCastVictim(SPELL_CONE_OF_COLD);
|
||||
coneOfColdTimer = urand(10 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
|
||||
} else coneOfColdTimer -= diff;
|
||||
}
|
||||
else coneOfColdTimer -= diff;
|
||||
|
||||
if (fireBoltTimer < diff)
|
||||
{
|
||||
DoCastVictim(SPELL_FIREBALL);
|
||||
fireBoltTimer = urand(5 * IN_MILLISECONDS, 9 * IN_MILLISECONDS);
|
||||
} else fireBoltTimer -= diff;
|
||||
}
|
||||
else fireBoltTimer -= diff;
|
||||
|
||||
if (frostboltTimer < diff)
|
||||
{
|
||||
DoCastVictim(SPELL_FROSTBOLT);
|
||||
frostboltTimer = urand(4 * IN_MILLISECONDS, 12 * IN_MILLISECONDS);
|
||||
} else frostboltTimer -= diff;
|
||||
}
|
||||
else frostboltTimer -= diff;
|
||||
|
||||
// check if creature is not outside of building
|
||||
if (resetTimer < diff)
|
||||
@@ -180,7 +187,8 @@ public:
|
||||
Talk(YELL_EVADE);
|
||||
}
|
||||
resetTimer = 5 * IN_MILLISECONDS;
|
||||
} else resetTimer -= diff;
|
||||
}
|
||||
else resetTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
@@ -73,31 +73,36 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_WHIRLWIND);
|
||||
WhirlwindTimer = urand(8 * IN_MILLISECONDS, 18 * IN_MILLISECONDS);
|
||||
} else WhirlwindTimer -= diff;
|
||||
}
|
||||
else WhirlwindTimer -= diff;
|
||||
|
||||
if (Whirlwind2Timer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_WHIRLWIND2);
|
||||
Whirlwind2Timer = urand(7 * IN_MILLISECONDS, 25 * IN_MILLISECONDS);
|
||||
} else Whirlwind2Timer -= diff;
|
||||
}
|
||||
else Whirlwind2Timer -= diff;
|
||||
|
||||
if (KnockdownTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_KNOCKDOWN);
|
||||
KnockdownTimer = urand(10 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
|
||||
} else KnockdownTimer -= diff;
|
||||
}
|
||||
else KnockdownTimer -= diff;
|
||||
|
||||
if (FrenzyTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_FRENZY);
|
||||
FrenzyTimer = urand(20 * IN_MILLISECONDS, 30 * IN_MILLISECONDS);
|
||||
} else FrenzyTimer -= diff;
|
||||
}
|
||||
else FrenzyTimer -= diff;
|
||||
|
||||
if (YellTimer <= diff)
|
||||
{
|
||||
Talk(YELL_RANDOM);
|
||||
YellTimer = urand(20 * IN_MILLISECONDS, 30 * IN_MILLISECONDS); //20 to 30 seconds
|
||||
} else YellTimer -= diff;
|
||||
}
|
||||
else YellTimer -= diff;
|
||||
|
||||
// check if creature is not outside of building
|
||||
if (ResetTimer <= diff)
|
||||
@@ -108,7 +113,8 @@ public:
|
||||
Talk(YELL_EVADE);
|
||||
}
|
||||
ResetTimer = 5 * IN_MILLISECONDS;
|
||||
} else ResetTimer -= diff;
|
||||
}
|
||||
else ResetTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
@@ -67,31 +67,36 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_CLEAVE);
|
||||
CleaveTimer = urand(10 * IN_MILLISECONDS, 16 * IN_MILLISECONDS);
|
||||
} else CleaveTimer -= diff;
|
||||
}
|
||||
else CleaveTimer -= diff;
|
||||
|
||||
if (FrighteningShoutTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_FRIGHTENING_SHOUT);
|
||||
FrighteningShoutTimer = urand(10 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
|
||||
} else FrighteningShoutTimer -= diff;
|
||||
}
|
||||
else FrighteningShoutTimer -= diff;
|
||||
|
||||
if (Whirlwind1Timer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_WHIRLWIND1);
|
||||
Whirlwind1Timer = urand(6 * IN_MILLISECONDS, 10 * IN_MILLISECONDS);
|
||||
} else Whirlwind1Timer -= diff;
|
||||
}
|
||||
else Whirlwind1Timer -= diff;
|
||||
|
||||
if (Whirlwind2Timer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_WHIRLWIND2);
|
||||
Whirlwind2Timer = urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS);
|
||||
} else Whirlwind2Timer -= diff;
|
||||
}
|
||||
else Whirlwind2Timer -= diff;
|
||||
|
||||
if (MortalStrikeTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_MORTAL_STRIKE);
|
||||
MortalStrikeTimer = urand(10 * IN_MILLISECONDS, 30 * IN_MILLISECONDS);
|
||||
} else MortalStrikeTimer -= diff;
|
||||
}
|
||||
else MortalStrikeTimer -= diff;
|
||||
|
||||
// check if creature is not outside of building
|
||||
if (ResetTimer <= diff)
|
||||
@@ -102,7 +107,8 @@ public:
|
||||
Talk(YELL_EVADE);
|
||||
}
|
||||
ResetTimer = 5 * IN_MILLISECONDS;
|
||||
} else ResetTimer -= diff;
|
||||
}
|
||||
else ResetTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
@@ -62,25 +62,29 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_AVATAR);
|
||||
AvatarTimer = urand(15 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
|
||||
} else AvatarTimer -= diff;
|
||||
}
|
||||
else AvatarTimer -= diff;
|
||||
|
||||
if (ThunderclapTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_THUNDERCLAP);
|
||||
ThunderclapTimer = urand(5 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
|
||||
} else ThunderclapTimer -= diff;
|
||||
}
|
||||
else ThunderclapTimer -= diff;
|
||||
|
||||
if (StormboltTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_STORMBOLT);
|
||||
StormboltTimer = urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS);
|
||||
} else StormboltTimer -= diff;
|
||||
}
|
||||
else StormboltTimer -= diff;
|
||||
|
||||
if (YellTimer <= diff)
|
||||
{
|
||||
Talk(YELL_RANDOM);
|
||||
YellTimer = urand(20 * IN_MILLISECONDS, 30 * IN_MILLISECONDS); //20 to 30 seconds
|
||||
} else YellTimer -= diff;
|
||||
}
|
||||
else YellTimer -= diff;
|
||||
|
||||
// check if creature is not outside of building
|
||||
if (ResetTimer <= diff)
|
||||
@@ -91,7 +95,8 @@ public:
|
||||
Talk(YELL_EVADE);
|
||||
}
|
||||
ResetTimer = 5 * IN_MILLISECONDS;
|
||||
} else ResetTimer -= diff;
|
||||
}
|
||||
else ResetTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
+31
-17
@@ -29,18 +29,27 @@ public:
|
||||
else
|
||||
instance->SetData(TYPE_LYCEUM, IN_PROGRESS);
|
||||
// If used brazier open linked doors (North or South)
|
||||
if (go->GetGUID() == instance->GetData64(DATA_SF_BRAZIER_N)) {
|
||||
if (braziersUsed == 0) {
|
||||
if (go->GetGUID() == instance->GetData64(DATA_SF_BRAZIER_N))
|
||||
{
|
||||
if (braziersUsed == 0)
|
||||
{
|
||||
braziersUsed = 1;
|
||||
}else if(braziersUsed == 2){
|
||||
}
|
||||
else if(braziersUsed == 2)
|
||||
{
|
||||
instance->HandleGameObject(instance->GetData64(DATA_GOLEM_DOOR_N), true);
|
||||
instance->HandleGameObject(instance->GetData64(DATA_GOLEM_DOOR_S), true);
|
||||
braziersUsed = 0;
|
||||
}
|
||||
}else if (go->GetGUID() == instance->GetData64(DATA_SF_BRAZIER_S)) {
|
||||
if (braziersUsed == 0) {
|
||||
}
|
||||
else if (go->GetGUID() == instance->GetData64(DATA_SF_BRAZIER_S))
|
||||
{
|
||||
if (braziersUsed == 0)
|
||||
{
|
||||
braziersUsed = 2;
|
||||
}else if (braziersUsed == 1) {
|
||||
}
|
||||
else if (braziersUsed == 1)
|
||||
{
|
||||
instance->HandleGameObject(instance->GetData64(DATA_GOLEM_DOOR_N), true);
|
||||
instance->HandleGameObject(instance->GetData64(DATA_GOLEM_DOOR_S), true);
|
||||
braziersUsed = 0;
|
||||
@@ -66,7 +75,7 @@ uint32 theldrenTeam[] =
|
||||
16053, 16055, 16050, 16051, 16049, 16052, 16054, 16058
|
||||
};
|
||||
|
||||
uint32 RingMob[]=
|
||||
uint32 RingMob[] =
|
||||
{
|
||||
8925, // Dredge Worm
|
||||
8926, // Deep Stinger
|
||||
@@ -76,7 +85,7 @@ uint32 RingMob[]=
|
||||
8932, // Borer Beetle
|
||||
};
|
||||
|
||||
uint32 RingBoss[]=
|
||||
uint32 RingBoss[] =
|
||||
{
|
||||
9027, // Gorosh
|
||||
9028, // Grizzle
|
||||
@@ -133,7 +142,7 @@ public:
|
||||
npc_grimstoneAI(Creature* creature) : npc_escortAI(creature), summons(me)
|
||||
{
|
||||
instance = creature->GetInstanceScript();
|
||||
MobSpawnId = rand()%6;
|
||||
MobSpawnId = rand() % 6;
|
||||
eventPhase = 0;
|
||||
eventTimer = 1000;
|
||||
theldrenEvent = false;
|
||||
@@ -215,11 +224,11 @@ public:
|
||||
theldrenEvent = true;
|
||||
me->SummonCreature(NPC_THELDREN, 644.300f, -175.989f, -53.739f, 3.418f, TEMPSUMMON_DEAD_DESPAWN, 0);
|
||||
uint8 rand = urand(0, 4);
|
||||
for (uint8 i = rand; i < rand+4; ++i)
|
||||
for (uint8 i = rand; i < rand + 4; ++i)
|
||||
me->SummonCreature(theldrenTeam[i], 644.300f, -175.989f, -53.739f, 3.418f, TEMPSUMMON_DEAD_DESPAWN, 0);
|
||||
}
|
||||
else
|
||||
me->SummonCreature(RingBoss[rand()%6], 644.300f, -175.989f, -53.739f, 3.418f, TEMPSUMMON_DEAD_DESPAWN, 0);
|
||||
me->SummonCreature(RingBoss[rand() % 6], 644.300f, -175.989f, -53.739f, 3.418f, TEMPSUMMON_DEAD_DESPAWN, 0);
|
||||
}
|
||||
|
||||
void UpdateEscortAI(uint32 diff)
|
||||
@@ -287,7 +296,7 @@ public:
|
||||
if (GameObject* go = me->SummonGameObject(GO_ARENA_SPOILS, 596.48f, -187.91f, -54.14f, 4.9f, 0.0f, 0.0f, 0.0f, 0.0f, 300))
|
||||
go->SetOwnerGUID(0);
|
||||
|
||||
Map::PlayerList const &pl = me->GetMap()->GetPlayers();
|
||||
Map::PlayerList const& pl = me->GetMap()->GetPlayers();
|
||||
for (Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr)
|
||||
itr->GetSource()->KilledMonsterCredit(16166, 0);
|
||||
}
|
||||
@@ -351,7 +360,8 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_THUNDERCLAP);
|
||||
ThunderClap_Timer = 10000;
|
||||
} else ThunderClap_Timer -= diff;
|
||||
}
|
||||
else ThunderClap_Timer -= diff;
|
||||
|
||||
//FireballVolley_Timer
|
||||
if (HealthBelowPct(51))
|
||||
@@ -360,7 +370,8 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_FIREBALLVOLLEY);
|
||||
FireballVolley_Timer = 15000;
|
||||
} else FireballVolley_Timer -= diff;
|
||||
}
|
||||
else FireballVolley_Timer -= diff;
|
||||
}
|
||||
|
||||
//MightyBlow_Timer
|
||||
@@ -368,7 +379,8 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_MIGHTYBLOW);
|
||||
MightyBlow_Timer = 10000;
|
||||
} else MightyBlow_Timer -= diff;
|
||||
}
|
||||
else MightyBlow_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
@@ -1173,7 +1185,8 @@ public:
|
||||
DoGo(DATA_GO_BAR_KEG, 0);
|
||||
BreakKeg_Timer = 0;
|
||||
BreakDoor_Timer = 1000;
|
||||
} else BreakKeg_Timer -= diff;
|
||||
}
|
||||
else BreakKeg_Timer -= diff;
|
||||
}
|
||||
|
||||
if (BreakDoor_Timer)
|
||||
@@ -1192,7 +1205,8 @@ public:
|
||||
instance->SetData(TYPE_BAR, DONE);
|
||||
|
||||
BreakDoor_Timer = 0;
|
||||
} else BreakDoor_Timer -= diff;
|
||||
}
|
||||
else BreakDoor_Timer -= diff;
|
||||
}
|
||||
|
||||
npc_escortAI::UpdateAI(diff);
|
||||
|
||||
+10
-5
@@ -58,7 +58,8 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_SHADOWBOLT);
|
||||
ShadowBolt_Timer = 7000;
|
||||
} else ShadowBolt_Timer -= diff;
|
||||
}
|
||||
else ShadowBolt_Timer -= diff;
|
||||
|
||||
//CurseOfTongues_Timer
|
||||
if (CurseOfTongues_Timer <= diff)
|
||||
@@ -66,21 +67,24 @@ public:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(target, SPELL_CURSEOFTONGUES);
|
||||
CurseOfTongues_Timer = 18000;
|
||||
} else CurseOfTongues_Timer -= diff;
|
||||
}
|
||||
else CurseOfTongues_Timer -= diff;
|
||||
|
||||
//CurseOfWeakness_Timer
|
||||
if (CurseOfWeakness_Timer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_CURSEOFWEAKNESS);
|
||||
CurseOfWeakness_Timer = 45000;
|
||||
} else CurseOfWeakness_Timer -= diff;
|
||||
}
|
||||
else CurseOfWeakness_Timer -= diff;
|
||||
|
||||
//DemonArmor_Timer
|
||||
if (DemonArmor_Timer <= diff)
|
||||
{
|
||||
DoCast(me, SPELL_DEMONARMOR);
|
||||
DemonArmor_Timer = 300000;
|
||||
} else DemonArmor_Timer -= diff;
|
||||
}
|
||||
else DemonArmor_Timer -= diff;
|
||||
|
||||
//EnvelopingWeb_Timer
|
||||
if (EnvelopingWeb_Timer <= diff)
|
||||
@@ -88,7 +92,8 @@ public:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(target, SPELL_ENVELOPINGWEB);
|
||||
EnvelopingWeb_Timer = 12000;
|
||||
} else EnvelopingWeb_Timer -= diff;
|
||||
}
|
||||
else EnvelopingWeb_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
+4
-2
@@ -91,14 +91,16 @@ public:
|
||||
HandOfThaurissan_Timer = 5000;
|
||||
//Counter = 0;
|
||||
//}
|
||||
} else HandOfThaurissan_Timer -= diff;
|
||||
}
|
||||
else HandOfThaurissan_Timer -= diff;
|
||||
|
||||
//AvatarOfFlame_Timer
|
||||
if (AvatarOfFlame_Timer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_AVATAROFFLAME);
|
||||
AvatarOfFlame_Timer = 18000;
|
||||
} else AvatarOfFlame_Timer -= diff;
|
||||
}
|
||||
else AvatarOfFlame_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
+8
-4
@@ -68,21 +68,24 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_MIGHTYBLOW);
|
||||
MightyBlow_Timer = 18000;
|
||||
} else MightyBlow_Timer -= diff;
|
||||
}
|
||||
else MightyBlow_Timer -= diff;
|
||||
|
||||
//HamString_Timer
|
||||
if (HamString_Timer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_HAMSTRING);
|
||||
HamString_Timer = 15000;
|
||||
} else HamString_Timer -= diff;
|
||||
}
|
||||
else HamString_Timer -= diff;
|
||||
|
||||
//Cleave_Timer
|
||||
if (Cleave_Timer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_CLEAVE);
|
||||
Cleave_Timer = 9000;
|
||||
} else Cleave_Timer -= diff;
|
||||
}
|
||||
else Cleave_Timer -= diff;
|
||||
|
||||
//Adds_Timer
|
||||
if (HealthBelowPct(21))
|
||||
@@ -95,7 +98,8 @@ public:
|
||||
SummonAdds(me->GetVictim());
|
||||
|
||||
Adds_Timer = 25000;
|
||||
} else Adds_Timer -= diff;
|
||||
}
|
||||
else Adds_Timer -= diff;
|
||||
}
|
||||
|
||||
//Summon Medics
|
||||
|
||||
+4
-2
@@ -51,14 +51,16 @@ public:
|
||||
{
|
||||
DoCast(me, SPELL_WHIRLWIND);
|
||||
WhirlWind_Timer = 15000;
|
||||
} else WhirlWind_Timer -= diff;
|
||||
}
|
||||
else WhirlWind_Timer -= diff;
|
||||
|
||||
//MortalStrike_Timer
|
||||
if (MortalStrike_Timer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_MORTALSTRIKE);
|
||||
MortalStrike_Timer = 15000;
|
||||
} else MortalStrike_Timer -= diff;
|
||||
}
|
||||
else MortalStrike_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
+5
-3
@@ -34,7 +34,7 @@ public:
|
||||
void Reset()
|
||||
{
|
||||
GroundTremor_Timer = 12000;
|
||||
Frenzy_Timer =0;
|
||||
Frenzy_Timer = 0;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) { }
|
||||
@@ -50,7 +50,8 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_GROUNDTREMOR);
|
||||
GroundTremor_Timer = 8000;
|
||||
} else GroundTremor_Timer -= diff;
|
||||
}
|
||||
else GroundTremor_Timer -= diff;
|
||||
|
||||
//Frenzy_Timer
|
||||
if (HealthBelowPct(51))
|
||||
@@ -61,7 +62,8 @@ public:
|
||||
Talk(EMOTE_FRENZY_KILL);
|
||||
|
||||
Frenzy_Timer = 15000;
|
||||
} else Frenzy_Timer -= diff;
|
||||
}
|
||||
else Frenzy_Timer -= diff;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
|
||||
+8
-4
@@ -56,7 +56,8 @@ public:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(target, SPELL_SHADOWWORDPAIN);
|
||||
ShadowWordPain_Timer = 7000;
|
||||
} else ShadowWordPain_Timer -= diff;
|
||||
}
|
||||
else ShadowWordPain_Timer -= diff;
|
||||
|
||||
//ManaBurn_Timer
|
||||
if (ManaBurn_Timer <= diff)
|
||||
@@ -64,21 +65,24 @@ public:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(target, SPELL_MANABURN);
|
||||
ManaBurn_Timer = 10000;
|
||||
} else ManaBurn_Timer -= diff;
|
||||
}
|
||||
else ManaBurn_Timer -= diff;
|
||||
|
||||
//PsychicScream_Timer
|
||||
if (PsychicScream_Timer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_PSYCHICSCREAM);
|
||||
PsychicScream_Timer = 30000;
|
||||
} else PsychicScream_Timer -= diff;
|
||||
}
|
||||
else PsychicScream_Timer -= diff;
|
||||
|
||||
//ShadowShield_Timer
|
||||
if (ShadowShield_Timer <= diff)
|
||||
{
|
||||
DoCast(me, SPELL_SHADOWSHIELD);
|
||||
ShadowShield_Timer = 25000;
|
||||
} else ShadowShield_Timer -= diff;
|
||||
}
|
||||
else ShadowShield_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
+5
-3
@@ -38,7 +38,7 @@ public:
|
||||
void Reset()
|
||||
{
|
||||
FieryBurst_Timer = 5000;
|
||||
WarStomp_Timer =0;
|
||||
WarStomp_Timer = 0;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) { }
|
||||
@@ -54,7 +54,8 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_FIERYBURST);
|
||||
FieryBurst_Timer = 6000;
|
||||
} else FieryBurst_Timer -= diff;
|
||||
}
|
||||
else FieryBurst_Timer -= diff;
|
||||
|
||||
//WarStomp_Timer
|
||||
if (HealthBelowPct(51))
|
||||
@@ -63,7 +64,8 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_WARSTOMP);
|
||||
WarStomp_Timer = 8000;
|
||||
} else WarStomp_Timer -= diff;
|
||||
}
|
||||
else WarStomp_Timer -= diff;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
|
||||
+6
-3
@@ -57,21 +57,24 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_MINDBLAST);
|
||||
MindBlast_Timer = 14000;
|
||||
} else MindBlast_Timer -= diff;
|
||||
}
|
||||
else MindBlast_Timer -= diff;
|
||||
|
||||
//ShadowWordPain_Timer
|
||||
if (ShadowWordPain_Timer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_SHADOWWORDPAIN);
|
||||
ShadowWordPain_Timer = 18000;
|
||||
} else ShadowWordPain_Timer -= diff;
|
||||
}
|
||||
else ShadowWordPain_Timer -= diff;
|
||||
|
||||
//Smite_Timer
|
||||
if (Smite_Timer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_SMITE);
|
||||
Smite_Timer = 10000;
|
||||
} else Smite_Timer -= diff;
|
||||
}
|
||||
else Smite_Timer -= diff;
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
+1
-1
@@ -53,7 +53,7 @@ public:
|
||||
if (InstanceScript* instance = creature->GetInstanceScript())
|
||||
{
|
||||
//are 5 minutes expected? go template may have data to despawn when used at quest
|
||||
instance->DoRespawnGameObject(instance->GetData64(DATA_GO_CHALICE), MINUTE*5);
|
||||
instance->DoRespawnGameObject(instance->GetData64(DATA_GO_CHALICE), MINUTE * 5);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
+95
-33
@@ -152,16 +152,36 @@ public:
|
||||
{
|
||||
switch (creature->GetEntry())
|
||||
{
|
||||
case NPC_EMPEROR: EmperorGUID = creature->GetGUID(); break;
|
||||
case NPC_PHALANX: PhalanxGUID = creature->GetGUID(); break;
|
||||
case NPC_MOIRA: MoiraGUID = creature->GetGUID(); break;
|
||||
case NPC_ANGERREL: TombBossGUIDs[0] = creature->GetGUID(); break;
|
||||
case NPC_SEETHREL: TombBossGUIDs[1] = creature->GetGUID(); break;
|
||||
case NPC_DOPEREL: TombBossGUIDs[2] = creature->GetGUID(); break;
|
||||
case NPC_GLOOMREL: TombBossGUIDs[3] = creature->GetGUID(); break;
|
||||
case NPC_VILEREL: TombBossGUIDs[4] = creature->GetGUID(); break;
|
||||
case NPC_HATEREL: TombBossGUIDs[5] = creature->GetGUID(); break;
|
||||
case NPC_DOOMREL: TombBossGUIDs[6] = creature->GetGUID(); break;
|
||||
case NPC_EMPEROR:
|
||||
EmperorGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_PHALANX:
|
||||
PhalanxGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_MOIRA:
|
||||
MoiraGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_ANGERREL:
|
||||
TombBossGUIDs[0] = creature->GetGUID();
|
||||
break;
|
||||
case NPC_SEETHREL:
|
||||
TombBossGUIDs[1] = creature->GetGUID();
|
||||
break;
|
||||
case NPC_DOPEREL:
|
||||
TombBossGUIDs[2] = creature->GetGUID();
|
||||
break;
|
||||
case NPC_GLOOMREL:
|
||||
TombBossGUIDs[3] = creature->GetGUID();
|
||||
break;
|
||||
case NPC_VILEREL:
|
||||
TombBossGUIDs[4] = creature->GetGUID();
|
||||
break;
|
||||
case NPC_HATEREL:
|
||||
TombBossGUIDs[5] = creature->GetGUID();
|
||||
break;
|
||||
case NPC_DOOMREL:
|
||||
TombBossGUIDs[6] = creature->GetGUID();
|
||||
break;
|
||||
case NPC_MAGMUS:
|
||||
MagmusGUID = creature->GetGUID();
|
||||
if (!creature->IsAlive())
|
||||
@@ -174,18 +194,42 @@ public:
|
||||
{
|
||||
switch (go->GetEntry())
|
||||
{
|
||||
case GO_ARENA1: GoArena1GUID = go->GetGUID(); break;
|
||||
case GO_ARENA2: GoArena2GUID = go->GetGUID(); break;
|
||||
case GO_ARENA3: GoArena3GUID = go->GetGUID(); break;
|
||||
case GO_ARENA4: GoArena4GUID = go->GetGUID(); break;
|
||||
case GO_SHADOW_LOCK: GoShadowLockGUID = go->GetGUID(); break;
|
||||
case GO_SHADOW_MECHANISM: GoShadowMechGUID = go->GetGUID(); break;
|
||||
case GO_SHADOW_GIANT_DOOR: GoShadowGiantGUID = go->GetGUID(); break;
|
||||
case GO_SHADOW_DUMMY: GoShadowDummyGUID = go->GetGUID(); break;
|
||||
case GO_BAR_KEG_SHOT: GoBarKegGUID = go->GetGUID(); break;
|
||||
case GO_BAR_KEG_TRAP: GoBarKegTrapGUID = go->GetGUID(); break;
|
||||
case GO_BAR_DOOR: GoBarDoorGUID = go->GetGUID(); break;
|
||||
case GO_TOMB_ENTER: GoTombEnterGUID = go->GetGUID(); break;
|
||||
case GO_ARENA1:
|
||||
GoArena1GUID = go->GetGUID();
|
||||
break;
|
||||
case GO_ARENA2:
|
||||
GoArena2GUID = go->GetGUID();
|
||||
break;
|
||||
case GO_ARENA3:
|
||||
GoArena3GUID = go->GetGUID();
|
||||
break;
|
||||
case GO_ARENA4:
|
||||
GoArena4GUID = go->GetGUID();
|
||||
break;
|
||||
case GO_SHADOW_LOCK:
|
||||
GoShadowLockGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_SHADOW_MECHANISM:
|
||||
GoShadowMechGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_SHADOW_GIANT_DOOR:
|
||||
GoShadowGiantGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_SHADOW_DUMMY:
|
||||
GoShadowDummyGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_BAR_KEG_SHOT:
|
||||
GoBarKegGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_BAR_KEG_TRAP:
|
||||
GoBarKegTrapGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_BAR_DOOR:
|
||||
GoBarDoorGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_TOMB_ENTER:
|
||||
GoTombEnterGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_TOMB_EXIT:
|
||||
GoTombExitGUID = go->GetGUID();
|
||||
if (GhostKillCount >= 7)
|
||||
@@ -193,14 +237,30 @@ public:
|
||||
else
|
||||
HandleGameObject(0, false, go);
|
||||
break;
|
||||
case GO_LYCEUM: GoLyceumGUID = go->GetGUID(); break;
|
||||
case GO_SF_S: GoSFSGUID = go->GetGUID(); break;
|
||||
case GO_SF_N: GoSFNGUID = go->GetGUID(); break;
|
||||
case GO_GOLEM_ROOM_N: GoGolemNGUID = go->GetGUID(); break;
|
||||
case GO_GOLEM_ROOM_S: GoGolemSGUID = go->GetGUID(); break;
|
||||
case GO_THRONE_ROOM: GoThroneGUID = go->GetGUID(); break;
|
||||
case GO_CHEST_SEVEN: GoChestGUID = go->GetGUID(); break;
|
||||
case GO_SPECTRAL_CHALICE: GoSpectralChaliceGUID = go->GetGUID(); break;
|
||||
case GO_LYCEUM:
|
||||
GoLyceumGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_SF_S:
|
||||
GoSFSGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_SF_N:
|
||||
GoSFNGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_GOLEM_ROOM_N:
|
||||
GoGolemNGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_GOLEM_ROOM_S:
|
||||
GoGolemSGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_THRONE_ROOM:
|
||||
GoThroneGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_CHEST_SEVEN:
|
||||
GoChestGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_SPECTRAL_CHALICE:
|
||||
GoSpectralChaliceGUID = go->GetGUID();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -400,7 +460,8 @@ public:
|
||||
if (Creature* boss = instance->GetCreature(TombBossGUIDs[i]))
|
||||
{
|
||||
if (!boss->IsAlive())
|
||||
{//do not call EnterEvadeMode(), it will create infinit loops
|
||||
{
|
||||
//do not call EnterEvadeMode(), it will create infinit loops
|
||||
boss->Respawn();
|
||||
boss->RemoveAllAuras();
|
||||
boss->DeleteThreatList();
|
||||
@@ -450,11 +511,12 @@ public:
|
||||
{
|
||||
if (!boss->IsAlive())
|
||||
{
|
||||
GhostKillCount = i+1;
|
||||
GhostKillCount = i + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else TombTimer -= diff;
|
||||
}
|
||||
else TombTimer -= diff;
|
||||
}
|
||||
if (GhostKillCount >= 7 && TombEventStarterGUID)
|
||||
TombOfSevenEnd();
|
||||
|
||||
+4
-4
@@ -50,8 +50,8 @@ public:
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_FATAL_BITE, urand(17000,20000));
|
||||
events.ScheduleEvent(EVENT_INFECTED_BITE, urand(10000,12000));
|
||||
events.ScheduleEvent(EVENT_FATAL_BITE, urand(17000, 20000));
|
||||
events.ScheduleEvent(EVENT_INFECTED_BITE, urand(10000, 12000));
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
@@ -75,11 +75,11 @@ public:
|
||||
{
|
||||
case EVENT_FATAL_BITE:
|
||||
DoCastVictim(SPELL_FATAL_BITE);
|
||||
events.ScheduleEvent(EVENT_FATAL_BITE, urand(8000,10000));
|
||||
events.ScheduleEvent(EVENT_FATAL_BITE, urand(8000, 10000));
|
||||
break;
|
||||
case EVENT_INFECTED_BITE:
|
||||
DoCast(me, SPELL_INFECTED_BITE);
|
||||
events.ScheduleEvent(EVENT_FATAL_BITE, urand(8000,10000));
|
||||
events.ScheduleEvent(EVENT_FATAL_BITE, urand(8000, 10000));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
+3
-3
@@ -45,8 +45,8 @@ public:
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_REND, urand(17000,20000));
|
||||
events.ScheduleEvent(EVENT_THRASH, urand(10000,12000));
|
||||
events.ScheduleEvent(EVENT_REND, urand(17000, 20000));
|
||||
events.ScheduleEvent(EVENT_THRASH, urand(10000, 12000));
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
@@ -73,7 +73,7 @@ public:
|
||||
{
|
||||
case EVENT_REND:
|
||||
DoCastVictim(SPELL_REND);
|
||||
events.ScheduleEvent(EVENT_REND, urand(8000,10000));
|
||||
events.ScheduleEvent(EVENT_REND, urand(8000, 10000));
|
||||
break;
|
||||
case EVENT_THRASH:
|
||||
DoCast(me, SPELL_THRASH);
|
||||
|
||||
+6
-6
@@ -47,8 +47,8 @@ public:
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_SUMMON_SPECTRAL_ASSASSIN, urand(6000,8000));
|
||||
events.ScheduleEvent(EVENT_SHADOW_WRATH, urand(9000,18000));
|
||||
events.ScheduleEvent(EVENT_SUMMON_SPECTRAL_ASSASSIN, urand(6000, 8000));
|
||||
events.ScheduleEvent(EVENT_SHADOW_WRATH, urand(9000, 18000));
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
@@ -72,15 +72,15 @@ public:
|
||||
{
|
||||
case EVENT_SUMMON_SPECTRAL_ASSASSIN:
|
||||
DoCast(me, SPELL_SUMMON_SPECTRAL_ASSASSIN);
|
||||
events.ScheduleEvent(EVENT_SUMMON_SPECTRAL_ASSASSIN, urand(30000,35000));
|
||||
events.ScheduleEvent(EVENT_SUMMON_SPECTRAL_ASSASSIN, urand(30000, 35000));
|
||||
break;
|
||||
case EVENT_SHADOW_BOLT_VOLLEY:
|
||||
DoCastVictim(SPELL_SHADOW_BOLT_VOLLEY);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, urand(4000,6000));
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, urand(4000, 6000));
|
||||
break;
|
||||
case EVENT_SHADOW_WRATH:
|
||||
DoCastVictim(SPELL_SHADOW_WRATH);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WRATH, urand(19000,24000));
|
||||
events.ScheduleEvent(EVENT_SHADOW_WRATH, urand(19000, 24000));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -102,7 +102,7 @@ public:
|
||||
if (HealthBelowPct(15))
|
||||
{
|
||||
DoCast(me, SPELL_FRENZY);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, urand(7000,14000));
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, urand(7000, 14000));
|
||||
frenzy15 = true;
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -239,7 +239,7 @@ public:
|
||||
{
|
||||
// Check to see if all players in instance have aura SPELL_EMBERSEER_START before starting event
|
||||
bool _hasAura = false;
|
||||
Map::PlayerList const &players = me->GetMap()->GetPlayers();
|
||||
Map::PlayerList const& players = me->GetMap()->GetPlayers();
|
||||
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
|
||||
if (Player* player = itr->GetSource()->ToPlayer())
|
||||
if (player->HasAura(SPELL_EMBERSEER_OBJECT_VISUAL))
|
||||
@@ -323,7 +323,7 @@ public:
|
||||
|
||||
void Reset()
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
if (Creature* Emberseer = me->FindNearestCreature(NPC_PYROGAURD_EMBERSEER, 30.0f, true))
|
||||
Emberseer->AI()->SetData(1, 3);
|
||||
}
|
||||
@@ -337,7 +337,7 @@ public:
|
||||
{
|
||||
if (data == 1 && value == 1)
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->InterruptSpell(CURRENT_CHANNELED_SPELL);
|
||||
_events.CancelEvent(EVENT_ENCAGED_EMBERSEER);
|
||||
}
|
||||
|
||||
+11
-11
@@ -70,14 +70,14 @@ static Wave Wave1[] = // 22 sec
|
||||
{ 10442, 201.008f, -416.648f, 110.974f }
|
||||
};
|
||||
|
||||
static Wave Wave2[]= // 22 sec
|
||||
static Wave Wave2[] = // 22 sec
|
||||
{
|
||||
{ 10447, 209.8637f, -428.2729f, 110.9877f },
|
||||
{ 10442, 209.3122f, -430.8724f, 110.9814f },
|
||||
{ 10442, 211.3309f, -425.9111f, 111.0006f }
|
||||
};
|
||||
|
||||
static Wave Wave3[]= // 60 sec
|
||||
static Wave Wave3[] = // 60 sec
|
||||
{
|
||||
{ 10742, 208.6493f, -424.5787f, 110.9872f },
|
||||
{ 10447, 203.9482f, -428.9446f, 110.982f, },
|
||||
@@ -85,7 +85,7 @@ static Wave Wave3[]= // 60 sec
|
||||
{ 10442, 206.3079f, -424.7509f, 110.9943f }
|
||||
};
|
||||
|
||||
static Wave Wave4[]= // 49 sec
|
||||
static Wave Wave4[] = // 49 sec
|
||||
{
|
||||
{ 10742, 212.3541f, -412.6826f, 111.0352f },
|
||||
{ 10447, 212.5754f, -410.2841f, 111.0296f },
|
||||
@@ -93,7 +93,7 @@ static Wave Wave4[]= // 49 sec
|
||||
{ 10442, 210.6568f, -412.1552f, 111.0124f }
|
||||
};
|
||||
|
||||
static Wave Wave5[]= // 60 sec
|
||||
static Wave Wave5[] = // 60 sec
|
||||
{
|
||||
{ 10742, 210.2188f, -410.6686f, 111.0211f },
|
||||
{ 10447, 209.4078f, -414.13f, 111.0264f },
|
||||
@@ -102,7 +102,7 @@ static Wave Wave5[]= // 60 sec
|
||||
{ 10442, 208.0854f, -412.1505f, 111.0057f }
|
||||
};
|
||||
|
||||
static Wave Wave6[]= // 27 sec
|
||||
static Wave Wave6[] = // 27 sec
|
||||
{
|
||||
{ 10742, 213.9138f, -426.512f, 111.0013f },
|
||||
{ 10447, 213.7121f, -429.8102f, 110.9888f },
|
||||
@@ -413,22 +413,22 @@ public:
|
||||
me->SummonCreature(NPC_GYTH, 211.762f, -397.5885f, 111.1817f, 4.747295f);
|
||||
break;
|
||||
case EVENT_WAVE_1:
|
||||
SummonWave(Wave1,4);
|
||||
SummonWave(Wave1, 4);
|
||||
break;
|
||||
case EVENT_WAVE_2:
|
||||
SummonWave(Wave2,3);
|
||||
SummonWave(Wave2, 3);
|
||||
break;
|
||||
case EVENT_WAVE_3:
|
||||
SummonWave(Wave3,4);
|
||||
SummonWave(Wave3, 4);
|
||||
break;
|
||||
case EVENT_WAVE_4:
|
||||
SummonWave(Wave4,4);
|
||||
SummonWave(Wave4, 4);
|
||||
break;
|
||||
case EVENT_WAVE_5:
|
||||
SummonWave(Wave5,5);
|
||||
SummonWave(Wave5, 5);
|
||||
break;
|
||||
case EVENT_WAVE_6:
|
||||
SummonWave(Wave6,5);
|
||||
SummonWave(Wave6, 5);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
+4
-4
@@ -52,8 +52,8 @@ public:
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(SPELL_REND, urand(17000,20000));
|
||||
events.ScheduleEvent(SPELL_STRIKE, urand(10000,12000));
|
||||
events.ScheduleEvent(SPELL_REND, urand(17000, 20000));
|
||||
events.ScheduleEvent(SPELL_STRIKE, urand(10000, 12000));
|
||||
Talk(SAY_AGGRO);
|
||||
}
|
||||
|
||||
@@ -78,11 +78,11 @@ public:
|
||||
{
|
||||
case SPELL_REND:
|
||||
DoCastVictim(SPELL_REND);
|
||||
events.ScheduleEvent(SPELL_REND, urand(8000,10000));
|
||||
events.ScheduleEvent(SPELL_REND, urand(8000, 10000));
|
||||
break;
|
||||
case SPELL_STRIKE:
|
||||
DoCastVictim(SPELL_STRIKE);
|
||||
events.ScheduleEvent(SPELL_STRIKE, urand(8000,10000));
|
||||
events.ScheduleEvent(SPELL_STRIKE, urand(8000, 10000));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
+1
-1
@@ -223,7 +223,7 @@ public:
|
||||
break;
|
||||
case EVENT_AFFLICTION:
|
||||
{
|
||||
Map::PlayerList const &players = me->GetMap()->GetPlayers();
|
||||
Map::PlayerList const& players = me->GetMap()->GetPlayers();
|
||||
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
|
||||
{
|
||||
if (Player* player = itr->GetSource()->ToPlayer())
|
||||
|
||||
+8
-7
@@ -127,10 +127,10 @@ enum Spells
|
||||
SPELL_ROGUE = 23414, // Paralise
|
||||
SPELL_DEATH_KNIGHT = 49576 // Death Grip
|
||||
|
||||
// 19484
|
||||
// 22664
|
||||
// 22674
|
||||
// 22666
|
||||
// 19484
|
||||
// 22664
|
||||
// 22674
|
||||
// 22666
|
||||
};
|
||||
|
||||
Position const DrakeSpawnLoc[2] = // drakonid
|
||||
@@ -322,7 +322,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_MIND_CONTROL, urand(30000, 35000));
|
||||
break;
|
||||
case EVENT_SPAWN_ADD:
|
||||
for (uint8 i=0; i<2; ++i)
|
||||
for (uint8 i = 0; i < 2; ++i)
|
||||
{
|
||||
uint32 CreatureID;
|
||||
if (urand(0, 2) == 0)
|
||||
@@ -428,7 +428,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* victim)
|
||||
{
|
||||
if (rand()%5)
|
||||
if (rand() % 5)
|
||||
return;
|
||||
|
||||
Talk(SAY_SLAY, victim);
|
||||
@@ -458,7 +458,8 @@ public:
|
||||
for (std::list<Creature*>::const_iterator itr = constructList.begin(); itr != constructList.end(); ++itr)
|
||||
(*itr)->DespawnOrUnsummon();
|
||||
|
||||
} else DespawnTimer -= diff;
|
||||
}
|
||||
else DespawnTimer -= diff;
|
||||
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
+1
-1
@@ -166,7 +166,7 @@ public:
|
||||
|
||||
class spell_egg_event : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_egg_event() : SpellScriptLoader("spell_egg_event") { }
|
||||
|
||||
class spell_egg_eventSpellScript : public SpellScript
|
||||
|
||||
+1
-1
@@ -99,7 +99,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* victim)
|
||||
{
|
||||
if (rand()%5)
|
||||
if (rand() % 5)
|
||||
return;
|
||||
|
||||
Talk(SAY_KILLTARGET, victim);
|
||||
|
||||
+20
-11
@@ -198,7 +198,7 @@ public:
|
||||
nefarian->DespawnOrUnsummon();
|
||||
break;
|
||||
case FAIL:
|
||||
_events.ScheduleEvent(EVENT_RESPAWN_NEFARIUS, 15*IN_MILLISECONDS*MINUTE);
|
||||
_events.ScheduleEvent(EVENT_RESPAWN_NEFARIUS, 15 * IN_MILLISECONDS * MINUTE);
|
||||
SetBossState(BOSS_NEFARIAN, NOT_STARTED);
|
||||
break;
|
||||
default:
|
||||
@@ -213,15 +213,24 @@ public:
|
||||
{
|
||||
switch (id)
|
||||
{
|
||||
case DATA_RAZORGORE_THE_UNTAMED: return RazorgoreTheUntamedGUID;
|
||||
case DATA_VAELASTRAZ_THE_CORRUPT: return VaelastraszTheCorruptGUID;
|
||||
case DATA_BROODLORD_LASHLAYER: return BroodlordLashlayerGUID;
|
||||
case DATA_FIRENAW: return FiremawGUID;
|
||||
case DATA_EBONROC: return EbonrocGUID;
|
||||
case DATA_FLAMEGOR: return FlamegorGUID;
|
||||
case DATA_CHROMAGGUS: return ChromaggusGUID;
|
||||
case DATA_LORD_VICTOR_NEFARIUS: return LordVictorNefariusGUID;
|
||||
case DATA_NEFARIAN: return NefarianGUID;
|
||||
case DATA_RAZORGORE_THE_UNTAMED:
|
||||
return RazorgoreTheUntamedGUID;
|
||||
case DATA_VAELASTRAZ_THE_CORRUPT:
|
||||
return VaelastraszTheCorruptGUID;
|
||||
case DATA_BROODLORD_LASHLAYER:
|
||||
return BroodlordLashlayerGUID;
|
||||
case DATA_FIRENAW:
|
||||
return FiremawGUID;
|
||||
case DATA_EBONROC:
|
||||
return EbonrocGUID;
|
||||
case DATA_FLAMEGOR:
|
||||
return FlamegorGUID;
|
||||
case DATA_CHROMAGGUS:
|
||||
return ChromaggusGUID;
|
||||
case DATA_LORD_VICTOR_NEFARIUS:
|
||||
return LordVictorNefariusGUID;
|
||||
case DATA_NEFARIAN:
|
||||
return NefarianGUID;
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -234,7 +243,7 @@ public:
|
||||
switch (data)
|
||||
{
|
||||
case IN_PROGRESS:
|
||||
_events.ScheduleEvent(EVENT_RAZOR_SPAWN, 45*IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_RAZOR_SPAWN, 45 * IN_MILLISECONDS);
|
||||
EggEvent = data;
|
||||
EggCount = 0;
|
||||
break;
|
||||
|
||||
+1
-1
@@ -38,7 +38,7 @@ enum Events
|
||||
|
||||
class boss_baron_geddon : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
boss_baron_geddon() : CreatureScript("boss_baron_geddon") { }
|
||||
|
||||
struct boss_baron_geddonAI : public BossAI
|
||||
|
||||
@@ -36,7 +36,7 @@ enum Events
|
||||
|
||||
class boss_garr : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
boss_garr() : CreatureScript("boss_garr") { }
|
||||
|
||||
struct boss_garrAI : public BossAI
|
||||
@@ -91,7 +91,7 @@ class boss_garr : public CreatureScript
|
||||
|
||||
class npc_firesworn : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
npc_firesworn() : CreatureScript("npc_firesworn") { }
|
||||
|
||||
struct npc_fireswornAI : public ScriptedAI
|
||||
|
||||
@@ -32,7 +32,7 @@ enum Events
|
||||
|
||||
class boss_gehennas : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
boss_gehennas() : CreatureScript("boss_gehennas") { }
|
||||
|
||||
struct boss_gehennasAI : public BossAI
|
||||
|
||||
@@ -42,7 +42,7 @@ enum Events
|
||||
|
||||
class boss_golemagg : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
boss_golemagg() : CreatureScript("boss_golemagg") { }
|
||||
|
||||
struct boss_golemaggAI : public BossAI
|
||||
@@ -63,9 +63,9 @@ class boss_golemagg : public CreatureScript
|
||||
events.ScheduleEvent(EVENT_PYROBLAST, 7000);
|
||||
|
||||
// The two ragers should join the fight alongside me against my foes.
|
||||
std::list<Creature *> ragers;
|
||||
std::list<Creature*> ragers;
|
||||
me->GetCreaturesWithEntryInRange(ragers, 100, NPC_CORE_RAGER);
|
||||
for (Creature * i : ragers)
|
||||
for (Creature* i : ragers)
|
||||
{
|
||||
if (i && i->IsAlive() && !i->IsInCombat())
|
||||
{
|
||||
@@ -123,7 +123,7 @@ class boss_golemagg : public CreatureScript
|
||||
|
||||
class npc_core_rager : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
npc_core_rager() : CreatureScript("npc_core_rager") { }
|
||||
|
||||
struct npc_core_ragerAI : public ScriptedAI
|
||||
@@ -135,7 +135,7 @@ class npc_core_rager : public CreatureScript
|
||||
|
||||
void Reset()
|
||||
{
|
||||
mangleTimer = 7*IN_MILLISECONDS; // These times are probably wrong
|
||||
mangleTimer = 7 * IN_MILLISECONDS; // These times are probably wrong
|
||||
}
|
||||
|
||||
void DamageTaken(Unit*, uint32& /*damage*/, DamageEffectType, SpellSchoolMask)
|
||||
@@ -163,7 +163,7 @@ class npc_core_rager : public CreatureScript
|
||||
if (mangleTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_MANGLE);
|
||||
mangleTimer = 10*IN_MILLISECONDS;
|
||||
mangleTimer = 10 * IN_MILLISECONDS;
|
||||
}
|
||||
else
|
||||
mangleTimer -= diff;
|
||||
|
||||
@@ -32,7 +32,7 @@ enum Events
|
||||
|
||||
class boss_lucifron : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
boss_lucifron() : CreatureScript("boss_lucifron") { }
|
||||
|
||||
struct boss_lucifronAI : public BossAI
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_Magmadar
|
||||
SD%Complete: 75
|
||||
SDComment: Conflag on ground nyi
|
||||
SDCategory: Molten Core
|
||||
EndScriptData */
|
||||
/* ScriptData
|
||||
SDName: Boss_Magmadar
|
||||
SD%Complete: 75
|
||||
SDComment: Conflag on ground nyi
|
||||
SDCategory: Molten Core
|
||||
EndScriptData */
|
||||
|
||||
#include "ObjectMgr.h"
|
||||
#include "ScriptMgr.h"
|
||||
@@ -122,11 +122,12 @@ public:
|
||||
}
|
||||
|
||||
EventMap events;
|
||||
std::list<Creature *> hounds;
|
||||
std::list<Creature*> hounds;
|
||||
bool smoldering = false;
|
||||
Unit* killer;
|
||||
|
||||
void removeFeignDeath() {
|
||||
void removeFeignDeath()
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_29);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
@@ -161,11 +162,13 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void Reset() {
|
||||
void Reset()
|
||||
{
|
||||
removeFeignDeath();
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) {
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
removeFeignDeath();
|
||||
}
|
||||
|
||||
@@ -186,7 +189,8 @@ public:
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_SERRATED_BITE:
|
||||
if (UpdateVictim() && !smoldering) {
|
||||
if (UpdateVictim() && !smoldering)
|
||||
{
|
||||
DoCast(me->GetVictim(), SPELL_SERRATED_BITE);
|
||||
events.ScheduleEvent(EVENT_SERRATED_BITE, 10000); // again, timer may be wrong
|
||||
}
|
||||
@@ -194,7 +198,7 @@ public:
|
||||
case EVENT_IGNITE:
|
||||
smoldering = false;
|
||||
me->GetCreaturesWithEntryInRange(hounds, 80, NPC_CORE_HOUND);
|
||||
for (Creature * i : hounds)
|
||||
for (Creature* i : hounds)
|
||||
{
|
||||
if (i && i->IsAlive() && i->IsInCombat() && !i->HasUnitState(UNIT_STATE_DIED))
|
||||
{
|
||||
|
||||
+1
-1
@@ -56,7 +56,7 @@ enum Events
|
||||
|
||||
class boss_majordomo : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
boss_majordomo() : CreatureScript("boss_majordomo") { }
|
||||
|
||||
struct boss_majordomoAI : public BossAI
|
||||
|
||||
@@ -64,7 +64,7 @@ enum Events
|
||||
|
||||
class boss_ragnaros : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
boss_ragnaros() : CreatureScript("boss_ragnaros") { }
|
||||
|
||||
struct boss_ragnarosAI : public BossAI
|
||||
@@ -299,7 +299,7 @@ class boss_ragnaros : public CreatureScript
|
||||
|
||||
class npc_son_of_flame : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
npc_son_of_flame() : CreatureScript("npc_SonOfFlame") { }
|
||||
|
||||
struct npc_son_of_flameAI : public ScriptedAI
|
||||
|
||||
@@ -31,7 +31,7 @@ enum Events
|
||||
|
||||
class boss_shazzrah : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
boss_shazzrah() : CreatureScript("boss_shazzrah") { }
|
||||
|
||||
struct boss_shazzrahAI : public BossAI
|
||||
@@ -108,7 +108,7 @@ class boss_shazzrah : public CreatureScript
|
||||
// 23138 - Gate of Shazzrah
|
||||
class spell_shazzrah_gate_dummy : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_shazzrah_gate_dummy() : SpellScriptLoader("spell_shazzrah_gate_dummy") { }
|
||||
|
||||
class spell_shazzrah_gate_dummy_SpellScript : public SpellScript
|
||||
|
||||
+2
-2
@@ -46,7 +46,7 @@ enum Events
|
||||
|
||||
class boss_sulfuron : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
boss_sulfuron() : CreatureScript("boss_sulfuron") { }
|
||||
|
||||
struct boss_sulfuronAI : public BossAI
|
||||
@@ -123,7 +123,7 @@ class boss_sulfuron : public CreatureScript
|
||||
|
||||
class npc_flamewaker_priest : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
npc_flamewaker_priest() : CreatureScript("npc_flamewaker_priest") { }
|
||||
|
||||
struct npc_flamewaker_priestAI : public ScriptedAI
|
||||
|
||||
+3
-2
@@ -34,7 +34,7 @@ Position const SummonPositions[10] =
|
||||
|
||||
class instance_molten_core : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
instance_molten_core() : InstanceMapScript("instance_molten_core", 409) { }
|
||||
|
||||
struct instance_molten_core_InstanceMapScript : public InstanceScript
|
||||
@@ -147,7 +147,8 @@ class instance_molten_core : public InstanceMapScript
|
||||
if (CheckMajordomoExecutus())
|
||||
SummonMajordomoExecutus();
|
||||
|
||||
if (bossId == BOSS_MAJORDOMO_EXECUTUS && state == DONE) {
|
||||
if (bossId == BOSS_MAJORDOMO_EXECUTUS && state == DONE)
|
||||
{
|
||||
DoRespawnGameObject(_cacheOfTheFirelordGUID, 7 * DAY);
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ enum Spels
|
||||
|
||||
class boss_mr_smite : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
boss_mr_smite() : CreatureScript("boss_mr_smite") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
class instance_deadmines : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
instance_deadmines() : InstanceMapScript("instance_deadmines", 36) { }
|
||||
|
||||
struct instance_deadmines_InstanceMapScript : public InstanceScript
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
class instance_gnomeregan : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
instance_gnomeregan() : InstanceMapScript("instance_gnomeregan", 90) { }
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const
|
||||
@@ -33,7 +33,7 @@ enum eKernobee
|
||||
|
||||
class npc_kernobee : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
npc_kernobee() : CreatureScript("npc_kernobee") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
@@ -87,7 +87,7 @@ class npc_kernobee : public CreatureScript
|
||||
|
||||
class spell_gnomeregan_radiation_bolt : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_gnomeregan_radiation_bolt() : SpellScriptLoader("spell_gnomeregan_radiation_bolt") { }
|
||||
|
||||
class spell_gnomeregan_radiation_bolt_SpellScript : public SpellScript
|
||||
|
||||
@@ -35,7 +35,7 @@ enum Curator
|
||||
|
||||
class boss_curator : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
boss_curator() : CreatureScript("boss_curator") { }
|
||||
|
||||
struct boss_curatorAI : public BossAI
|
||||
|
||||
@@ -28,7 +28,7 @@ enum MaidenOfVirtue
|
||||
|
||||
class boss_maiden_of_virtue : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
boss_maiden_of_virtue() : CreatureScript("boss_maiden_of_virtue") { }
|
||||
|
||||
struct boss_maiden_of_virtueAI : public BossAI
|
||||
|
||||
@@ -68,7 +68,7 @@ enum eMisc
|
||||
|
||||
class boss_midnight : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
boss_midnight() : CreatureScript("boss_midnight") { }
|
||||
|
||||
struct boss_midnightAI : public BossAI
|
||||
@@ -192,7 +192,7 @@ class boss_midnight : public CreatureScript
|
||||
|
||||
class boss_attumen : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
boss_attumen() : CreatureScript("boss_attumen") { }
|
||||
|
||||
struct boss_attumenAI : public ScriptedAI
|
||||
@@ -243,7 +243,7 @@ class boss_attumen : public CreatureScript
|
||||
{
|
||||
Talk(SAY_ATTUMEN1_MOUNT);
|
||||
_events.Reset();
|
||||
me->GetMotionMaster()->MovePoint(POINT_MOVE_TO_MIDNIGHT, target->GetPositionX() + 2.0f*cos(target->GetAngle(me)), target->GetPositionY() + 2.0f*sin(target->GetAngle(me)), target->GetPositionZ()+0.2f, true, true, MOTION_SLOT_CONTROLLED);
|
||||
me->GetMotionMaster()->MovePoint(POINT_MOVE_TO_MIDNIGHT, target->GetPositionX() + 2.0f * cos(target->GetAngle(me)), target->GetPositionY() + 2.0f * sin(target->GetAngle(me)), target->GetPositionZ() + 0.2f, true, true, MOTION_SLOT_CONTROLLED);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -305,7 +305,7 @@ class boss_attumen : public CreatureScript
|
||||
|
||||
class boss_attumen_midnight : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
boss_attumen_midnight() : CreatureScript("boss_attumen_midnight") { }
|
||||
|
||||
struct boss_attumen_midnightAI : public ScriptedAI
|
||||
@@ -410,7 +410,7 @@ class boss_attumen_midnight : public CreatureScript
|
||||
|
||||
class spell_midnight_fixate : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_midnight_fixate() : SpellScriptLoader("spell_midnight_fixate") { }
|
||||
|
||||
class spell_midnight_fixate_AuraScript : public AuraScript
|
||||
|
||||
@@ -55,7 +55,7 @@ const Position GuestsPosition[4] =
|
||||
{-10976.38f, -1882.59f, 81.73f, 2.31f},
|
||||
};
|
||||
|
||||
const uint32 GuestEntries[6]=
|
||||
const uint32 GuestEntries[6] =
|
||||
{
|
||||
17007,
|
||||
19872,
|
||||
@@ -67,7 +67,7 @@ const uint32 GuestEntries[6]=
|
||||
|
||||
class boss_moroes : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
boss_moroes() : CreatureScript("boss_moroes") { }
|
||||
|
||||
struct boss_moroesAI : public BossAI
|
||||
@@ -102,7 +102,7 @@ class boss_moroes : public CreatureScript
|
||||
_activeGuests |= 0x3F;
|
||||
uint8 rand1 = RAND(0x01, 0x02, 0x04);
|
||||
uint8 rand2 = RAND(0x08, 0x10, 0x20);
|
||||
_activeGuests &= ~(rand1|rand2);
|
||||
_activeGuests &= ~(rand1 | rand2);
|
||||
}
|
||||
|
||||
for (uint8 i = 0; i < MAX_GUEST_COUNT; ++i)
|
||||
@@ -247,7 +247,7 @@ class boss_moroes : public CreatureScript
|
||||
|
||||
class spell_moroes_vanish : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_moroes_vanish() : SpellScriptLoader("spell_moroes_vanish") { }
|
||||
|
||||
class spell_moroes_vanish_SpellScript : public SpellScript
|
||||
|
||||
@@ -39,7 +39,8 @@ const float PortalCoord[3][3] =
|
||||
{-11094.493164f, -1591.969238f, 279.949188f} // Back side
|
||||
};
|
||||
|
||||
enum Netherspite_Portal{
|
||||
enum Netherspite_Portal
|
||||
{
|
||||
RED_PORTAL = 0, // Perseverence
|
||||
GREEN_PORTAL = 1, // Serenity
|
||||
BLUE_PORTAL = 2 // Dominance
|
||||
@@ -68,7 +69,7 @@ public:
|
||||
{
|
||||
instance = creature->GetInstanceScript();
|
||||
|
||||
for (int i=0; i<3; ++i)
|
||||
for (int i = 0; i < 3; ++i)
|
||||
{
|
||||
PortalGUID[i] = 0;
|
||||
BeamTarget[i] = 0;
|
||||
@@ -107,12 +108,12 @@ public:
|
||||
if (dist(xn, yn, xh, yh) >= dist(xn, yn, xp, yp) || dist(xp, yp, xh, yh) >= dist(xn, yn, xp, yp))
|
||||
return false;
|
||||
// check distance from the beam
|
||||
return (abs((xn-xp)*yh+(yp-yn)*xh-xn*yp+xp*yn)/dist(xn, yn, xp, yp) < 1.5f);
|
||||
return (abs((xn - xp) * yh + (yp - yn) * xh - xn * yp + xp * yn) / dist(xn, yn, xp, yp) < 1.5f);
|
||||
}
|
||||
|
||||
float dist(float xa, float ya, float xb, float yb) // auxiliary method for distance
|
||||
{
|
||||
return sqrt((xa-xb)*(xa-xb) + (ya-yb)*(ya-yb));
|
||||
return sqrt((xa - xb) * (xa - xb) + (ya - yb) * (ya - yb));
|
||||
}
|
||||
|
||||
void Reset()
|
||||
@@ -128,13 +129,13 @@ public:
|
||||
|
||||
void SummonPortals()
|
||||
{
|
||||
uint8 r = rand()%4;
|
||||
uint8 r = rand() % 4;
|
||||
uint8 pos[3];
|
||||
pos[RED_PORTAL] = ((r % 2) ? (r > 1 ? 2 : 1) : 0);
|
||||
pos[GREEN_PORTAL] = ((r % 2) ? 0 : (r > 1 ? 2 : 1));
|
||||
pos[BLUE_PORTAL] = (r > 1 ? 1 : 2); // Blue Portal not on the left side (0)
|
||||
|
||||
for (int i=0; i<3; ++i)
|
||||
for (int i = 0; i < 3; ++i)
|
||||
if (Creature* portal = me->SummonCreature(PortalID[i], PortalCoord[pos[i]][0], PortalCoord[pos[i]][1], PortalCoord[pos[i]][2], 0, TEMPSUMMON_TIMED_DESPAWN, 60000))
|
||||
{
|
||||
PortalGUID[i] = portal->GetGUID();
|
||||
@@ -144,7 +145,7 @@ public:
|
||||
|
||||
void DestroyPortals()
|
||||
{
|
||||
for (int i=0; i<3; ++i)
|
||||
for (int i = 0; i < 3; ++i)
|
||||
{
|
||||
if (Creature* portal = ObjectAccessor::GetCreature(*me, PortalGUID[i]))
|
||||
portal->DisappearAndDie();
|
||||
@@ -157,7 +158,7 @@ public:
|
||||
|
||||
void UpdatePortals() // Here we handle the beams' behavior
|
||||
{
|
||||
for (int j=0; j<3; ++j) // j = color
|
||||
for (int j = 0; j < 3; ++j) // j = color
|
||||
if (Creature* portal = ObjectAccessor::GetCreature(*me, PortalGUID[j]))
|
||||
{
|
||||
// the one who's been cast upon before
|
||||
@@ -174,10 +175,10 @@ public:
|
||||
{
|
||||
Player* p = i->GetSource();
|
||||
if (p && p->IsAlive() // alive
|
||||
&& (!target || target->GetDistance2d(portal)>p->GetDistance2d(portal)) // closer than current best
|
||||
&& (!target || target->GetDistance2d(portal) > p->GetDistance2d(portal)) // closer than current best
|
||||
&& !p->HasAura(PlayerDebuff[j], 0) // not exhausted
|
||||
&& !p->HasAura(PlayerBuff[(j+1)%3], 0) // not on another beam
|
||||
&& !p->HasAura(PlayerBuff[(j+2)%3], 0)
|
||||
&& !p->HasAura(PlayerBuff[(j + 1) % 3], 0) // not on another beam
|
||||
&& !p->HasAura(PlayerBuff[(j + 2) % 3], 0)
|
||||
&& IsBetween(me, p, portal)) // on the beam
|
||||
target = p;
|
||||
}
|
||||
@@ -208,7 +209,7 @@ public:
|
||||
}
|
||||
// aggro target if Red Beam
|
||||
if (j == RED_PORTAL && me->GetVictim() != target && target->GetTypeId() == TYPEID_PLAYER)
|
||||
me->getThreatManager().addThreat(target, 100000.0f+DoGetThreat(me->GetVictim()));
|
||||
me->getThreatManager().addThreat(target, 100000.0f + DoGetThreat(me->GetVictim()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -268,7 +269,8 @@ public:
|
||||
{
|
||||
DoCast(SelectTarget(SELECT_TARGET_RANDOM, 1, 45, true), SPELL_VOIDZONE, true);
|
||||
VoidZoneTimer = 15000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
VoidZoneTimer -= diff;
|
||||
|
||||
// NetherInfusion Berserk
|
||||
@@ -277,7 +279,8 @@ public:
|
||||
me->AddAura(SPELL_NETHER_INFUSION, me);
|
||||
DoCast(me, SPELL_NETHERSPITE_ROAR);
|
||||
Berserk = true;
|
||||
} else
|
||||
}
|
||||
else
|
||||
NetherInfusionTimer -= diff;
|
||||
|
||||
if (PortalPhase) // PORTAL PHASE
|
||||
@@ -287,7 +290,8 @@ public:
|
||||
{
|
||||
UpdatePortals();
|
||||
PortalTimer = 1000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
PortalTimer -= diff;
|
||||
|
||||
// Empowerment & Nether Burn
|
||||
@@ -296,7 +300,8 @@ public:
|
||||
DoCast(me, SPELL_EMPOWERMENT);
|
||||
me->AddAura(SPELL_NETHERBURN_AURA, me);
|
||||
EmpowermentTimer = 90000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
EmpowermentTimer -= diff;
|
||||
|
||||
if (PhaseTimer <= diff)
|
||||
@@ -306,7 +311,8 @@ public:
|
||||
SwitchToBanishPhase();
|
||||
return;
|
||||
}
|
||||
} else
|
||||
}
|
||||
else
|
||||
PhaseTimer -= diff;
|
||||
}
|
||||
else // BANISH PHASE
|
||||
@@ -317,7 +323,8 @@ public:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 40, true))
|
||||
DoCast(target, SPELL_NETHERBREATH);
|
||||
NetherbreathTimer = urand(5000, 7000);
|
||||
} else
|
||||
}
|
||||
else
|
||||
NetherbreathTimer -= diff;
|
||||
|
||||
if (PhaseTimer <= diff)
|
||||
@@ -327,7 +334,8 @@ public:
|
||||
SwitchToPortalPhase();
|
||||
return;
|
||||
}
|
||||
} else
|
||||
}
|
||||
else
|
||||
PhaseTimer -= diff;
|
||||
}
|
||||
|
||||
|
||||
@@ -190,7 +190,7 @@ public:
|
||||
return;
|
||||
}
|
||||
|
||||
MovePhase = id+1;
|
||||
MovePhase = id + 1;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -205,7 +205,7 @@ public:
|
||||
}
|
||||
|
||||
if (id < 8)
|
||||
MovePhase = id+1;
|
||||
MovePhase = id + 1;
|
||||
else
|
||||
{
|
||||
Phase = 1;
|
||||
@@ -295,14 +295,16 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_BELLOWING_ROAR);
|
||||
BellowingRoarTimer = urand(30000, 40000);
|
||||
} else
|
||||
}
|
||||
else
|
||||
BellowingRoarTimer -= diff;
|
||||
|
||||
if (SmolderingBreathTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_SMOLDERING_BREATH);
|
||||
SmolderingBreathTimer = 20000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
SmolderingBreathTimer -= diff;
|
||||
|
||||
if (CharredEarthTimer <= diff)
|
||||
@@ -310,7 +312,8 @@ public:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(target, SPELL_CHARRED_EARTH);
|
||||
CharredEarthTimer = 20000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
CharredEarthTimer -= diff;
|
||||
|
||||
if (TailSweepTimer <= diff)
|
||||
@@ -319,7 +322,8 @@ public:
|
||||
if (!me->HasInArc(M_PI, target))
|
||||
DoCast(target, SPELL_TAIL_SWEEP);
|
||||
TailSweepTimer = 15000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
TailSweepTimer -= diff;
|
||||
|
||||
if (SearingCindersTimer <= diff)
|
||||
@@ -327,7 +331,8 @@ public:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(target, SPELL_SEARING_CINDERS);
|
||||
SearingCindersTimer = 10000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
SearingCindersTimer -= diff;
|
||||
|
||||
uint32 Prozent = uint32(me->GetHealthPct());
|
||||
@@ -363,7 +368,8 @@ public:
|
||||
DoCastVictim(SPELL_RAIN_OF_BONES);
|
||||
RainBones = true;
|
||||
SmokingBlastTimer = 20000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
RainofBonesTimer -= diff;
|
||||
|
||||
if (DistractingAshTimer <= diff)
|
||||
@@ -371,7 +377,8 @@ public:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(target, SPELL_DISTRACTING_ASH);
|
||||
DistractingAshTimer = 2000; //timer wrong
|
||||
} else
|
||||
}
|
||||
else
|
||||
DistractingAshTimer -= diff;
|
||||
}
|
||||
|
||||
@@ -381,7 +388,8 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_SMOKING_BLAST);
|
||||
SmokingBlastTimer = 1500; //timer wrong
|
||||
} else
|
||||
}
|
||||
else
|
||||
SmokingBlastTimer -= diff;
|
||||
}
|
||||
|
||||
@@ -390,7 +398,8 @@ public:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_FARTHEST, 0))
|
||||
DoCast(target, SPELL_FIREBALL_BARRAGE);
|
||||
FireballBarrageTimer = 20000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
FireballBarrageTimer -= diff;
|
||||
|
||||
if (FlyTimer <= diff) //landing
|
||||
@@ -401,7 +410,8 @@ public:
|
||||
me->GetMotionMaster()->MovePoint(3, IntroWay[3][0], IntroWay[3][1], IntroWay[3][2]);
|
||||
|
||||
Flying = true;
|
||||
} else
|
||||
}
|
||||
else
|
||||
FlyTimer -= diff;
|
||||
}
|
||||
}
|
||||
@@ -419,7 +429,7 @@ public:
|
||||
if (InstanceScript* pInstance = go->GetInstanceScript())
|
||||
{
|
||||
if (pInstance->GetData(DATA_NIGHTBANE) != DONE && !go->FindNearestCreature(NPC_NIGHTBANE, 40.0f))
|
||||
if (Creature *cr = ObjectAccessor::GetCreature(*player, pInstance->GetData64(DATA_NIGHTBANE)))
|
||||
if (Creature* cr = ObjectAccessor::GetCreature(*player, pInstance->GetData64(DATA_NIGHTBANE)))
|
||||
cr->GetMotionMaster()->MovePoint(0, IntroWay[0][0], IntroWay[0][1], IntroWay[0][2]);
|
||||
}
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@ public:
|
||||
uint32 HellfireTimer;
|
||||
uint32 CleanupTimer;
|
||||
uint64 malchezaar;
|
||||
InfernalPoint *point;
|
||||
InfernalPoint* point;
|
||||
|
||||
void Reset() { }
|
||||
void EnterCombat(Unit* /*who*/) { }
|
||||
@@ -143,7 +143,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* done_by, uint32 &damage, DamageEffectType, SpellSchoolMask)
|
||||
void DamageTaken(Unit* done_by, uint32& damage, DamageEffectType, SpellSchoolMask)
|
||||
{
|
||||
if (!done_by || done_by->GetGUID() != malchezaar)
|
||||
damage = 0;
|
||||
@@ -246,7 +246,7 @@ public:
|
||||
if (!info)
|
||||
return;
|
||||
|
||||
ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList();
|
||||
ThreatContainer::StorageType const& t_list = me->getThreatManager().getThreatList();
|
||||
std::vector<Unit*> targets;
|
||||
|
||||
if (t_list.empty())
|
||||
@@ -290,7 +290,7 @@ public:
|
||||
|
||||
void SummonInfernal()
|
||||
{
|
||||
InfernalPoint *point = 0;
|
||||
InfernalPoint* point = 0;
|
||||
Position pos;
|
||||
|
||||
if ((me->GetMapId() == 532))
|
||||
@@ -445,11 +445,11 @@ public:
|
||||
}
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class prince_axes : public CreatureScript
|
||||
{
|
||||
public:
|
||||
class prince_axes : public CreatureScript
|
||||
{
|
||||
public:
|
||||
prince_axes() : CreatureScript("prince_axes") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
@@ -513,11 +513,11 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
void AddSC_boss_malchezaar()
|
||||
{
|
||||
void AddSC_boss_malchezaar()
|
||||
{
|
||||
new boss_malchezaar();
|
||||
new prince_axes();
|
||||
new netherspite_infernal();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ enum ServantQuertersMisc
|
||||
|
||||
class boss_servant_quarters : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
boss_servant_quarters() : CreatureScript("boss_servant_quarters") { }
|
||||
|
||||
struct boss_servant_quartersAI : public BossAI
|
||||
|
||||
@@ -148,7 +148,7 @@ public:
|
||||
void FlameWreathEffect()
|
||||
{
|
||||
std::vector<Unit*> targets;
|
||||
ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList();
|
||||
ThreatContainer::StorageType const& t_list = me->getThreatManager().getThreatList();
|
||||
|
||||
if (t_list.empty())
|
||||
return;
|
||||
@@ -515,7 +515,7 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit*, uint32 &damage, DamageEffectType, SpellSchoolMask)
|
||||
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask)
|
||||
{
|
||||
if (!DrinkInturrupted && Drinking && damage)
|
||||
DrinkInturrupted = true;
|
||||
@@ -537,9 +537,15 @@ public:
|
||||
|
||||
switch (CurrentNormalSpell)
|
||||
{
|
||||
case SPELL_ARCMISSLE: ArcaneCooldown = 5000; break;
|
||||
case SPELL_FIREBALL: FireCooldown = 5000; break;
|
||||
case SPELL_FROSTBOLT: FrostCooldown = 5000; break;
|
||||
case SPELL_ARCMISSLE:
|
||||
ArcaneCooldown = 5000;
|
||||
break;
|
||||
case SPELL_FIREBALL:
|
||||
FireCooldown = 5000;
|
||||
break;
|
||||
case SPELL_FROSTBOLT:
|
||||
FrostCooldown = 5000;
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -108,7 +108,8 @@ public:
|
||||
DoCastVictim(SPELL_AMPLIFY_FLAMES);
|
||||
|
||||
AmplifyTimer = urand(10000, 20000);
|
||||
} else
|
||||
}
|
||||
else
|
||||
AmplifyTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
@@ -166,7 +167,7 @@ public:
|
||||
|
||||
struct npc_fiendish_portalAI : public PassiveAI
|
||||
{
|
||||
npc_fiendish_portalAI(Creature* creature) : PassiveAI(creature), summons(me){ }
|
||||
npc_fiendish_portalAI(Creature* creature) : PassiveAI(creature), summons(me) { }
|
||||
|
||||
SummonList summons;
|
||||
|
||||
@@ -223,7 +224,8 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_FIREBOLT);
|
||||
FireboltTimer = 2200;
|
||||
} else
|
||||
}
|
||||
else
|
||||
FireboltTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
@@ -389,14 +391,16 @@ public:
|
||||
SacrificeTimer = 30000;
|
||||
}
|
||||
}
|
||||
} else
|
||||
}
|
||||
else
|
||||
SacrificeTimer -= diff;
|
||||
|
||||
if (ShadowboltTimer <= diff)
|
||||
{
|
||||
DoCast(SelectTarget(SELECT_TARGET_TOPAGGRO, 0), SPELL_SHADOW_BOLT);
|
||||
ShadowboltTimer = 10000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
ShadowboltTimer -= diff;
|
||||
|
||||
if (SummonTimer <= diff)
|
||||
@@ -413,7 +417,8 @@ public:
|
||||
pPortal->CastSpell(me->GetVictim(), SPELL_SUMMON_FIENDISIMP, false);
|
||||
SummonTimer = 5000;
|
||||
}
|
||||
} else
|
||||
}
|
||||
else
|
||||
SummonTimer -= diff;
|
||||
|
||||
if (!Berserk)
|
||||
@@ -422,7 +427,8 @@ public:
|
||||
{
|
||||
DoCast(me, SPELL_BERSERK);
|
||||
Berserk = true;
|
||||
} else
|
||||
}
|
||||
else
|
||||
BerserkTimer -= diff;
|
||||
}
|
||||
|
||||
|
||||
@@ -193,7 +193,8 @@ public:
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
AggroTimer = 0;
|
||||
} else
|
||||
}
|
||||
else
|
||||
AggroTimer -= diff;
|
||||
}
|
||||
|
||||
@@ -204,14 +205,16 @@ public:
|
||||
{
|
||||
DoCast(SelectTarget(SELECT_TARGET_RANDOM, 0), SPELL_WATERBOLT);
|
||||
WaterBoltTimer = TitoDied ? 1500 : 5000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
WaterBoltTimer -= diff;
|
||||
|
||||
if (FearTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_SCREAM);
|
||||
FearTimer = 30000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
FearTimer -= diff;
|
||||
|
||||
if (!SummonedTito)
|
||||
@@ -277,7 +280,8 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_YIPPING);
|
||||
YipTimer = 10000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
YipTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
@@ -357,7 +361,7 @@ public:
|
||||
|
||||
void SpellHit(Unit* /*caster*/, const SpellInfo* Spell)
|
||||
{
|
||||
if ((Spell->SchoolMask == SPELL_SCHOOL_MASK_FIRE) && (!(rand()%10)))
|
||||
if ((Spell->SchoolMask == SPELL_SCHOOL_MASK_FIRE) && (!(rand() % 10)))
|
||||
{
|
||||
/*
|
||||
if (not direct damage(aoe, dot))
|
||||
@@ -388,7 +392,8 @@ public:
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
AggroTimer = 0;
|
||||
} else
|
||||
}
|
||||
else
|
||||
AggroTimer -= diff;
|
||||
}
|
||||
|
||||
@@ -399,7 +404,8 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_BRAIN_BASH);
|
||||
BrainBashTimer = 15000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
BrainBashTimer -= diff;
|
||||
|
||||
if (BrainWipeTimer <= diff)
|
||||
@@ -407,7 +413,8 @@ public:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(target, SPELL_BRAIN_WIPE);
|
||||
BrainWipeTimer = 20000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
BrainWipeTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
@@ -497,7 +504,8 @@ public:
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
AggroTimer = 0;
|
||||
} else
|
||||
}
|
||||
else
|
||||
AggroTimer -= diff;
|
||||
}
|
||||
|
||||
@@ -508,7 +516,8 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_CLEAVE);
|
||||
CleaveTimer = 5000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
CleaveTimer -= diff;
|
||||
|
||||
if (RustCount < 8)
|
||||
@@ -519,7 +528,8 @@ public:
|
||||
Talk(EMOTE_RUST);
|
||||
DoCast(me, SPELL_RUST);
|
||||
RustTimer = 6000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
RustTimer -= diff;
|
||||
}
|
||||
|
||||
@@ -608,7 +618,8 @@ public:
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
AggroTimer = 0;
|
||||
} else
|
||||
}
|
||||
else
|
||||
AggroTimer -= diff;
|
||||
}
|
||||
|
||||
@@ -619,21 +630,24 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_MANGLE);
|
||||
MangleTimer = urand(5000, 8000);
|
||||
} else
|
||||
}
|
||||
else
|
||||
MangleTimer -= diff;
|
||||
|
||||
if (ShredTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_SHRED);
|
||||
ShredTimer = urand(10000, 15000);
|
||||
} else
|
||||
}
|
||||
else
|
||||
ShredTimer -= diff;
|
||||
|
||||
if (ScreamTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_FRIGHTENED_SCREAM);
|
||||
ScreamTimer = urand(20000, 30000);
|
||||
} else
|
||||
}
|
||||
else
|
||||
ScreamTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
@@ -703,14 +717,16 @@ public:
|
||||
if (Creature* Cyclone = DoSpawnCreature(CREATURE_CYCLONE, float(urand(0, 9)), float(urand(0, 9)), 0, 0, TEMPSUMMON_TIMED_DESPAWN, 15000))
|
||||
Cyclone->CastSpell(Cyclone, SPELL_CYCLONE_VISUAL, true);
|
||||
CycloneTimer = 22000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
CycloneTimer -= diff;
|
||||
|
||||
if (ChainLightningTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_CHAIN_LIGHTNING);
|
||||
ChainLightningTimer = 8000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
ChainLightningTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
@@ -757,7 +773,8 @@ public:
|
||||
me->GetRandomNearPosition(pos, 10);
|
||||
me->GetMotionMaster()->MovePoint(0, pos);
|
||||
MoveTimer = urand(3000, 5000);
|
||||
} else
|
||||
}
|
||||
else
|
||||
MoveTimer -= diff;
|
||||
}
|
||||
};
|
||||
@@ -795,7 +812,7 @@ public:
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF)
|
||||
{
|
||||
if (Creature* pBigBadWolf = creature->SummonCreature(CREATURE_BIG_BAD_WOLF, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, HOUR*2*IN_MILLISECONDS))
|
||||
if (Creature* pBigBadWolf = creature->SummonCreature(CREATURE_BIG_BAD_WOLF, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, HOUR * 2 * IN_MILLISECONDS))
|
||||
pBigBadWolf->AI()->AttackStart(player);
|
||||
|
||||
creature->DespawnOrUnsummon();
|
||||
@@ -915,7 +932,8 @@ public:
|
||||
|
||||
ChaseTimer = 40000;
|
||||
}
|
||||
} else
|
||||
}
|
||||
else
|
||||
ChaseTimer -= diff;
|
||||
|
||||
if (IsChasing)
|
||||
@@ -925,14 +943,16 @@ public:
|
||||
{
|
||||
DoCastVictim(SPELL_TERRIFYING_HOWL);
|
||||
FearTimer = urand(25000, 35000);
|
||||
} else
|
||||
}
|
||||
else
|
||||
FearTimer -= diff;
|
||||
|
||||
if (SwipeTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_WIDE_SWIPE);
|
||||
SwipeTimer = urand(25000, 30000);
|
||||
} else
|
||||
}
|
||||
else
|
||||
SwipeTimer -= diff;
|
||||
}
|
||||
};
|
||||
@@ -1112,7 +1132,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit*, uint32 &damage, DamageEffectType, SpellSchoolMask);
|
||||
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask);
|
||||
|
||||
void JustDied(Unit*)
|
||||
{
|
||||
@@ -1185,7 +1205,7 @@ public:
|
||||
me->DespawnOrUnsummon();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit*, uint32 &damage, DamageEffectType, SpellSchoolMask)
|
||||
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask)
|
||||
{
|
||||
if (damage < me->GetHealth())
|
||||
return;
|
||||
@@ -1293,7 +1313,8 @@ public:
|
||||
JulianneDead = false;
|
||||
ResurrectTimer = 10000;
|
||||
}
|
||||
} else
|
||||
}
|
||||
else
|
||||
ResurrectTimer -= diff;
|
||||
}
|
||||
|
||||
@@ -1305,14 +1326,16 @@ public:
|
||||
DoCast(target, SPELL_BACKWARD_LUNGE);
|
||||
BackwardLungeTimer = urand(15000, 30000);
|
||||
}
|
||||
} else
|
||||
}
|
||||
else
|
||||
BackwardLungeTimer -= diff;
|
||||
|
||||
if (DaringTimer <= diff)
|
||||
{
|
||||
DoCast(me, SPELL_DARING);
|
||||
DaringTimer = urand(20000, 40000);
|
||||
} else
|
||||
}
|
||||
else
|
||||
DaringTimer -= diff;
|
||||
|
||||
if (DeadlySwatheTimer <= diff)
|
||||
@@ -1320,14 +1343,16 @@ public:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(target, SPELL_DEADLY_SWATHE);
|
||||
DeadlySwatheTimer = urand(15000, 25000);
|
||||
} else
|
||||
}
|
||||
else
|
||||
DeadlySwatheTimer -= diff;
|
||||
|
||||
if (PoisonThrustTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_POISON_THRUST);
|
||||
PoisonThrustTimer = urand(10000, 20000);
|
||||
} else
|
||||
}
|
||||
else
|
||||
PoisonThrustTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
@@ -1343,7 +1368,8 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
|
||||
{
|
||||
Talk(SAY_JULIANNE_ENTER);
|
||||
EntryYellTimer = 0;
|
||||
} else
|
||||
}
|
||||
else
|
||||
EntryYellTimer -= diff;
|
||||
}
|
||||
|
||||
@@ -1355,7 +1381,8 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->setFaction(16);
|
||||
AggroYellTimer = 0;
|
||||
} else
|
||||
}
|
||||
else
|
||||
AggroYellTimer -= diff;
|
||||
}
|
||||
|
||||
@@ -1368,7 +1395,8 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
|
||||
Phase = PHASE_ROMULO;
|
||||
SummonRomuloTimer = 10000;
|
||||
DrinkPoisonTimer = 0;
|
||||
} else
|
||||
}
|
||||
else
|
||||
DrinkPoisonTimer -= diff;
|
||||
}
|
||||
|
||||
@@ -1376,7 +1404,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
|
||||
{
|
||||
if (SummonRomuloTimer <= diff)
|
||||
{
|
||||
if (Creature* pRomulo = me->SummonCreature(CREATURE_ROMULO, ROMULO_X, ROMULO_Y, me->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, HOUR*2*IN_MILLISECONDS))
|
||||
if (Creature* pRomulo = me->SummonCreature(CREATURE_ROMULO, ROMULO_X, ROMULO_Y, me->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, HOUR * 2 * IN_MILLISECONDS))
|
||||
{
|
||||
RomuloGUID = pRomulo->GetGUID();
|
||||
CAST_AI(boss_romulo::boss_romuloAI, pRomulo->AI())->JulianneGUID = me->GetGUID();
|
||||
@@ -1386,7 +1414,8 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
|
||||
pRomulo->setFaction(16);
|
||||
}
|
||||
SummonedRomulo = true;
|
||||
} else
|
||||
}
|
||||
else
|
||||
SummonRomuloTimer -= diff;
|
||||
}
|
||||
|
||||
@@ -1403,7 +1432,8 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
|
||||
|
||||
ResurrectSelfTimer = 0;
|
||||
ResurrectTimer = 1000;
|
||||
} else
|
||||
}
|
||||
else
|
||||
ResurrectSelfTimer -= diff;
|
||||
}
|
||||
|
||||
@@ -1423,7 +1453,8 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
|
||||
RomuloDead = false;
|
||||
ResurrectTimer = 10000;
|
||||
}
|
||||
} else
|
||||
}
|
||||
else
|
||||
ResurrectTimer -= diff;
|
||||
}
|
||||
|
||||
@@ -1432,21 +1463,24 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(target, SPELL_BLINDING_PASSION);
|
||||
BlindingPassionTimer = urand(30000, 45000);
|
||||
} else
|
||||
}
|
||||
else
|
||||
BlindingPassionTimer -= diff;
|
||||
|
||||
if (DevotionTimer <= diff)
|
||||
{
|
||||
DoCast(me, SPELL_DEVOTION);
|
||||
DevotionTimer = urand(15000, 45000);
|
||||
} else
|
||||
}
|
||||
else
|
||||
DevotionTimer -= diff;
|
||||
|
||||
if (PowerfulAttractionTimer <= diff)
|
||||
{
|
||||
DoCast(SelectTarget(SELECT_TARGET_RANDOM, 0), SPELL_POWERFUL_ATTRACTION);
|
||||
PowerfulAttractionTimer = urand(5000, 30000);
|
||||
} else
|
||||
}
|
||||
else
|
||||
PowerfulAttractionTimer -= diff;
|
||||
|
||||
if (EternalAffectionTimer <= diff)
|
||||
@@ -1456,16 +1490,18 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
|
||||
Creature* Romulo = (ObjectAccessor::GetCreature((*me), RomuloGUID));
|
||||
if (Romulo && Romulo->IsAlive() && !RomuloDead)
|
||||
DoCast(Romulo, SPELL_ETERNAL_AFFECTION);
|
||||
} else DoCast(me, SPELL_ETERNAL_AFFECTION);
|
||||
}
|
||||
else DoCast(me, SPELL_ETERNAL_AFFECTION);
|
||||
|
||||
EternalAffectionTimer = urand(45000, 60000);
|
||||
} else
|
||||
}
|
||||
else
|
||||
EternalAffectionTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
void boss_julianne::boss_julianneAI::DamageTaken(Unit* /*done_by*/, uint32 &damage, DamageEffectType, SpellSchoolMask)
|
||||
void boss_julianne::boss_julianneAI::DamageTaken(Unit* /*done_by*/, uint32& damage, DamageEffectType, SpellSchoolMask)
|
||||
{
|
||||
if (damage < me->GetHealth())
|
||||
return;
|
||||
|
||||
@@ -268,22 +268,38 @@ public:
|
||||
{
|
||||
switch (data)
|
||||
{
|
||||
case DATA_KILREK: return m_uiKilrekGUID;
|
||||
case DATA_TERESTIAN: return m_uiTerestianGUID;
|
||||
case DATA_MOROES: return m_uiMoroesGUID;
|
||||
case DATA_GO_STAGEDOORLEFT: return m_uiStageDoorLeftGUID;
|
||||
case DATA_GO_STAGEDOORRIGHT: return m_uiStageDoorRightGUID;
|
||||
case DATA_GO_CURTAINS: return m_uiCurtainGUID;
|
||||
case DATA_GO_LIBRARY_DOOR: return m_uiLibraryDoor;
|
||||
case DATA_GO_MASSIVE_DOOR: return m_uiMassiveDoor;
|
||||
case DATA_GO_SIDE_ENTRANCE_DOOR: return m_uiSideEntranceDoor;
|
||||
case DATA_GO_GAME_DOOR: return m_uiGamesmansDoor;
|
||||
case DATA_GO_GAME_EXIT_DOOR: return m_uiGamesmansExitDoor;
|
||||
case DATA_GO_NETHER_DOOR: return m_uiNetherspaceDoor;
|
||||
case DATA_MASTERS_TERRACE_DOOR_1: return MastersTerraceDoor[0];
|
||||
case DATA_MASTERS_TERRACE_DOOR_2: return MastersTerraceDoor[1];
|
||||
case DATA_IMAGE_OF_MEDIVH: return ImageGUID;
|
||||
case DATA_NIGHTBANE: return m_uiNightBaneGUID;
|
||||
case DATA_KILREK:
|
||||
return m_uiKilrekGUID;
|
||||
case DATA_TERESTIAN:
|
||||
return m_uiTerestianGUID;
|
||||
case DATA_MOROES:
|
||||
return m_uiMoroesGUID;
|
||||
case DATA_GO_STAGEDOORLEFT:
|
||||
return m_uiStageDoorLeftGUID;
|
||||
case DATA_GO_STAGEDOORRIGHT:
|
||||
return m_uiStageDoorRightGUID;
|
||||
case DATA_GO_CURTAINS:
|
||||
return m_uiCurtainGUID;
|
||||
case DATA_GO_LIBRARY_DOOR:
|
||||
return m_uiLibraryDoor;
|
||||
case DATA_GO_MASSIVE_DOOR:
|
||||
return m_uiMassiveDoor;
|
||||
case DATA_GO_SIDE_ENTRANCE_DOOR:
|
||||
return m_uiSideEntranceDoor;
|
||||
case DATA_GO_GAME_DOOR:
|
||||
return m_uiGamesmansDoor;
|
||||
case DATA_GO_GAME_EXIT_DOOR:
|
||||
return m_uiGamesmansExitDoor;
|
||||
case DATA_GO_NETHER_DOOR:
|
||||
return m_uiNetherspaceDoor;
|
||||
case DATA_MASTERS_TERRACE_DOOR_1:
|
||||
return MastersTerraceDoor[0];
|
||||
case DATA_MASTERS_TERRACE_DOOR_2:
|
||||
return MastersTerraceDoor[1];
|
||||
case DATA_IMAGE_OF_MEDIVH:
|
||||
return ImageGUID;
|
||||
case DATA_NIGHTBANE:
|
||||
return m_uiNightBaneGUID;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU GPL v2 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-GPL2
|
||||
* Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/>
|
||||
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
||||
*/
|
||||
/*
|
||||
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU GPL v2 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-GPL2
|
||||
* Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/>
|
||||
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Karazhan
|
||||
@@ -71,7 +71,7 @@ struct Dialogue
|
||||
uint32 timer;
|
||||
};
|
||||
|
||||
static Dialogue OzDialogue[]=
|
||||
static Dialogue OzDialogue[] =
|
||||
{
|
||||
{0, 6000},
|
||||
{1, 18000},
|
||||
@@ -79,7 +79,7 @@ static Dialogue OzDialogue[]=
|
||||
{3, 15000}
|
||||
};
|
||||
|
||||
static Dialogue HoodDialogue[]=
|
||||
static Dialogue HoodDialogue[] =
|
||||
{
|
||||
{4, 6000},
|
||||
{5, 10000},
|
||||
@@ -87,7 +87,7 @@ static Dialogue HoodDialogue[]=
|
||||
{7, 15000}
|
||||
};
|
||||
|
||||
static Dialogue RAJDialogue[]=
|
||||
static Dialogue RAJDialogue[] =
|
||||
{
|
||||
{8, 5000},
|
||||
{9, 7000},
|
||||
@@ -96,7 +96,7 @@ static Dialogue RAJDialogue[]=
|
||||
};
|
||||
|
||||
// Entries and spawn locations for creatures in Oz event
|
||||
float Spawns[6][2]=
|
||||
float Spawns[6][2] =
|
||||
{
|
||||
{17535, -10896}, // Dorothee
|
||||
{17546, -10891}, // Roar
|
||||
@@ -242,11 +242,11 @@ public:
|
||||
break;
|
||||
case EVENT_HOOD:
|
||||
index = 4;
|
||||
count = index+1;
|
||||
count = index + 1;
|
||||
break;
|
||||
case EVENT_RAJ:
|
||||
index = 5;
|
||||
count = index+1;
|
||||
count = index + 1;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -255,7 +255,7 @@ public:
|
||||
uint32 entry = ((uint32)Spawns[index][0]);
|
||||
float PosX = Spawns[index][1];
|
||||
|
||||
if (Creature* creature = me->SummonCreature(entry, PosX, SPAWN_Y, SPAWN_Z, SPAWN_O, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, HOUR*2*IN_MILLISECONDS))
|
||||
if (Creature* creature = me->SummonCreature(entry, PosX, SPAWN_Y, SPAWN_Z, SPAWN_O, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, HOUR * 2 * IN_MILLISECONDS))
|
||||
{
|
||||
// In case database has bad flags
|
||||
creature->SetUInt32Value(UNIT_FIELD_FLAGS, 0);
|
||||
@@ -285,7 +285,8 @@ public:
|
||||
|
||||
Talk(TalkCount);
|
||||
++TalkCount;
|
||||
} else TalkTimer -= diff;
|
||||
}
|
||||
else TalkTimer -= diff;
|
||||
}
|
||||
|
||||
if (PerformanceReady)
|
||||
@@ -298,7 +299,7 @@ public:
|
||||
if (!map->IsDungeon())
|
||||
return;
|
||||
|
||||
Map::PlayerList const &PlayerList = map->GetPlayers();
|
||||
Map::PlayerList const& PlayerList = map->GetPlayers();
|
||||
if (PlayerList.isEmpty())
|
||||
return;
|
||||
|
||||
@@ -320,7 +321,8 @@ public:
|
||||
}
|
||||
|
||||
WipeTimer = 15000;
|
||||
} else WipeTimer -= diff;
|
||||
}
|
||||
else WipeTimer -= diff;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -334,7 +336,7 @@ public:
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, OZ_GOSSIP2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, OZ_GOSSIP2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, 8971, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
@@ -535,7 +537,7 @@ public:
|
||||
case 14:
|
||||
if (me->GetMap()->IsDungeon())
|
||||
{
|
||||
InstanceMap::PlayerList const &PlayerList = me->GetMap()->GetPlayers();
|
||||
InstanceMap::PlayerList const& PlayerList = me->GetMap()->GetPlayers();
|
||||
for (InstanceMap::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
|
||||
{
|
||||
if (i->GetSource()->GetQuestStatus(9645) == QUEST_STATUS_INCOMPLETE)
|
||||
@@ -564,7 +566,8 @@ public:
|
||||
{
|
||||
if (EventStarted)
|
||||
YellTimer = NextStep(Step++);
|
||||
} else YellTimer -= diff;
|
||||
}
|
||||
else YellTimer -= diff;
|
||||
|
||||
if (Step >= 7 && Step <= 8)
|
||||
{
|
||||
|
||||
@@ -94,7 +94,7 @@ public:
|
||||
summons.DespawnAll();
|
||||
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_INTERRUPT_CAST, false);
|
||||
instance->SetData(DATA_KAELTHAS_EVENT, NOT_STARTED);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* summon)
|
||||
@@ -108,7 +108,7 @@ public:
|
||||
void InitializeAI()
|
||||
{
|
||||
ScriptedAI::InitializeAI();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
}
|
||||
|
||||
void JustDied(Unit*)
|
||||
@@ -146,11 +146,11 @@ public:
|
||||
{
|
||||
if (damage >= me->GetHealth())
|
||||
{
|
||||
damage = me->GetHealth()-1;
|
||||
damage = me->GetHealth() - 1;
|
||||
if (me->isRegeneratingHealth())
|
||||
{
|
||||
me->SetRegeneratingHealth(false);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE|UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->CombatStop();
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
LapseAction(ACTION_REMOVE_FLY);
|
||||
@@ -169,7 +169,7 @@ public:
|
||||
if (Player* player = itr->GetSource())
|
||||
{
|
||||
if (action == ACTION_TELEPORT_PLAYERS)
|
||||
me->CastSpell(player, SPELL_GRAVITY_LAPSE_PLAYER+counter, true);
|
||||
me->CastSpell(player, SPELL_GRAVITY_LAPSE_PLAYER + counter, true);
|
||||
else if (action == ACTION_KNOCKUP)
|
||||
player->CastSpell(player, SPELL_GRAVITY_LAPSE_DOT, true, nullptr, nullptr, me->GetGUID());
|
||||
else if (action == ACTION_ALLOW_FLY)
|
||||
@@ -188,7 +188,7 @@ public:
|
||||
switch (events2.ExecuteEvent())
|
||||
{
|
||||
case EVENT_INIT_COMBAT:
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
if (Unit* target = SelectTargetFromPlayerList(50.0f))
|
||||
AttackStart(target);
|
||||
return;
|
||||
@@ -285,7 +285,7 @@ public:
|
||||
|
||||
class spell_mt_phoenix_burn : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_mt_phoenix_burn() : SpellScriptLoader("spell_mt_phoenix_burn") { }
|
||||
|
||||
class spell_mt_phoenix_burn_SpellScript : public SpellScript
|
||||
|
||||
@@ -33,7 +33,7 @@ enum Misc
|
||||
MAX_HELPERS_COUNT = 8
|
||||
};
|
||||
|
||||
const Position helpersLocations[MAX_ACTIVE_HELPERS]=
|
||||
const Position helpersLocations[MAX_ACTIVE_HELPERS] =
|
||||
{
|
||||
{123.77f, 17.6007f, -19.921f, 4.98f},
|
||||
{131.731f, 15.0827f, -19.921f, 4.98f},
|
||||
@@ -163,7 +163,7 @@ public:
|
||||
{
|
||||
Talk(SAY_DEATH);
|
||||
|
||||
if (HelpersKilled == MAX_ACTIVE_HELPERS+1)
|
||||
if (HelpersKilled == MAX_ACTIVE_HELPERS + 1)
|
||||
instance->SetData(DATA_DELRISSA_EVENT, DONE);
|
||||
}
|
||||
|
||||
@@ -209,9 +209,15 @@ public:
|
||||
Unit* target = nullptr;
|
||||
switch (urand(0, 2))
|
||||
{
|
||||
case 0: target = SelectTarget(SELECT_TARGET_RANDOM, 0, 30, true); break;
|
||||
case 1: target = me; break;
|
||||
case 2: target = ObjectAccessor::GetCreature(*me, acore::Containers::SelectRandomContainerElement(summons)); break;
|
||||
case 0:
|
||||
target = SelectTarget(SELECT_TARGET_RANDOM, 0, 30, true);
|
||||
break;
|
||||
case 1:
|
||||
target = me;
|
||||
break;
|
||||
case 2:
|
||||
target = ObjectAccessor::GetCreature(*me, acore::Containers::SelectRandomContainerElement(summons));
|
||||
break;
|
||||
}
|
||||
|
||||
if (target)
|
||||
@@ -269,11 +275,12 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI
|
||||
float GetThreatMod(float dist, float /*armor*/, uint32 health, uint32 /*maxhealth*/, Unit* target)
|
||||
{
|
||||
float unimportant_dist = (aiType == AI_TYPE_MELEE ? 5.0f : 25.0f);
|
||||
if (dist > unimportant_dist) dist -= unimportant_dist; else dist = 0.0f;
|
||||
if (dist > unimportant_dist) dist -= unimportant_dist;
|
||||
else dist = 0.0f;
|
||||
const float dist_factor = (aiType == AI_TYPE_MELEE ? 15.0f : 25.0f);
|
||||
float mod_dist = dist_factor/(dist_factor + dist); // 0.2 .. 1.0
|
||||
float mod_health = health > 20000 ? 2.0f : (40000-health)/10000.0f; // 2.0 .. 4.0
|
||||
float mod_armor = aiType == AI_TYPE_MELEE ? Unit::CalcArmorReducedDamage(me, target, 10000, nullptr)/10000.0f : 1.0f;
|
||||
float mod_dist = dist_factor / (dist_factor + dist); // 0.2 .. 1.0
|
||||
float mod_health = health > 20000 ? 2.0f : (40000 - health) / 10000.0f; // 2.0 .. 4.0
|
||||
float mod_armor = aiType == AI_TYPE_MELEE ? Unit::CalcArmorReducedDamage(me, target, 10000, nullptr) / 10000.0f : 1.0f;
|
||||
return mod_dist * mod_health * mod_armor;
|
||||
}
|
||||
|
||||
@@ -496,7 +503,7 @@ enum WarlockEnum
|
||||
|
||||
EVENT_SPELL_IMMOLATE = 1,
|
||||
EVENT_SPELL_SHADOW_BOLT = 2,
|
||||
EVENT_SPELL_SEED_OF_CORRUPTION= 3,
|
||||
EVENT_SPELL_SEED_OF_CORRUPTION = 3,
|
||||
EVENT_SPELL_CURSE_OF_AGONY = 4,
|
||||
EVENT_SPELL_FEAR = 5,
|
||||
};
|
||||
@@ -723,8 +730,8 @@ public:
|
||||
case EVENT_SPELL_BLINK:
|
||||
{
|
||||
bool InMeleeRange = false;
|
||||
ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList();
|
||||
for (ThreatContainer::StorageType::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 = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid()))
|
||||
if (target->IsWithinMeleeRange(me))
|
||||
{
|
||||
|
||||
@@ -72,7 +72,7 @@ public:
|
||||
|
||||
void SetControl(Player* player, bool on)
|
||||
{
|
||||
WorldPacket data(SMSG_CLIENT_CONTROL_UPDATE, me->GetPackGUID().size()+1);
|
||||
WorldPacket data(SMSG_CLIENT_CONTROL_UPDATE, me->GetPackGUID().size() + 1);
|
||||
data.append(me->GetPackGUID());
|
||||
data << uint8(on ? 1 : 0);
|
||||
player->GetSession()->SendPacket(&data);
|
||||
@@ -103,7 +103,7 @@ public:
|
||||
{
|
||||
me->SetSpeed(MOVE_FLIGHT, 5.0f, true);
|
||||
|
||||
const Position EYE_DESTINATION_1 = { me->GetPositionX()-40.0f, me->GetPositionY(), me->GetPositionZ()+10.0f, 0.0f };
|
||||
const Position EYE_DESTINATION_1 = { me->GetPositionX() - 40.0f, me->GetPositionY(), me->GetPositionZ() + 10.0f, 0.0f };
|
||||
const Position EYE_DESTINATION_2 = { 1768.0f, -5876.0f, 153.0f, 0.0f };
|
||||
|
||||
me->GetMotionMaster()->MovePoint(EYE_POINT_DESTINATION_1, EYE_DESTINATION_1);
|
||||
@@ -127,7 +127,7 @@ public:
|
||||
|
||||
class spell_q12641_death_comes_from_on_high_summon_ghouls : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_q12641_death_comes_from_on_high_summon_ghouls() : SpellScriptLoader("spell_q12641_death_comes_from_on_high_summon_ghouls") { }
|
||||
|
||||
class spell_q12641_death_comes_from_on_high_summon_ghouls_SpellScript : public SpellScript
|
||||
@@ -261,11 +261,11 @@ public:
|
||||
me->GetMotionMaster()->MoveFollow(caster, 2.0f, 0.0f);
|
||||
|
||||
events.ScheduleEvent(EVENT_SPEAK, 3000);
|
||||
events.ScheduleEvent(EVENT_SPEAK+1, 7000);
|
||||
events.ScheduleEvent(EVENT_SPEAK+2, 8000);
|
||||
events.ScheduleEvent(EVENT_SPEAK+3, 9000);
|
||||
events.ScheduleEvent(EVENT_SPEAK+4, 10000);
|
||||
events.ScheduleEvent(EVENT_SPEAK+5, 11000);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 1, 7000);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 2, 8000);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 3, 9000);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 4, 10000);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 5, 11000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -279,7 +279,7 @@ public:
|
||||
{
|
||||
damage = 0;
|
||||
events.ScheduleEvent(EVENT_DUEL_LOST, 2000);
|
||||
events.ScheduleEvent(EVENT_DUEL_LOST+1, 6000);
|
||||
events.ScheduleEvent(EVENT_DUEL_LOST + 1, 6000);
|
||||
_duelGUID = 0;
|
||||
_duelInProgress = 0;
|
||||
|
||||
@@ -315,16 +315,16 @@ public:
|
||||
Talk(SAY_DUEL, ObjectAccessor::GetPlayer(*me, _duelGUID));
|
||||
break;
|
||||
case EVENT_SPEAK+1:
|
||||
Talk(SAY_DUEL+1, ObjectAccessor::GetPlayer(*me, _duelGUID));
|
||||
Talk(SAY_DUEL + 1, ObjectAccessor::GetPlayer(*me, _duelGUID));
|
||||
break;
|
||||
case EVENT_SPEAK+2:
|
||||
Talk(SAY_DUEL+2, ObjectAccessor::GetPlayer(*me, _duelGUID));
|
||||
Talk(SAY_DUEL + 2, ObjectAccessor::GetPlayer(*me, _duelGUID));
|
||||
break;
|
||||
case EVENT_SPEAK+3:
|
||||
Talk(SAY_DUEL+3, ObjectAccessor::GetPlayer(*me, _duelGUID));
|
||||
Talk(SAY_DUEL + 3, ObjectAccessor::GetPlayer(*me, _duelGUID));
|
||||
break;
|
||||
case EVENT_SPEAK+4:
|
||||
Talk(SAY_DUEL+4, ObjectAccessor::GetPlayer(*me, _duelGUID));
|
||||
Talk(SAY_DUEL + 4, ObjectAccessor::GetPlayer(*me, _duelGUID));
|
||||
break;
|
||||
case EVENT_SPEAK+5:
|
||||
me->setFaction(FACTION_HOSTILE);
|
||||
@@ -377,7 +377,7 @@ enum GiftOfTheHarvester
|
||||
|
||||
class spell_item_gift_of_the_harvester : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_item_gift_of_the_harvester() : SpellScriptLoader("spell_item_gift_of_the_harvester") { }
|
||||
|
||||
class spell_item_gift_of_the_harvester_SpellScript : public SpellScript
|
||||
@@ -411,7 +411,7 @@ class spell_item_gift_of_the_harvester : public SpellScriptLoader
|
||||
|
||||
class spell_q12698_the_gift_that_keeps_on_giving : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_q12698_the_gift_that_keeps_on_giving() : SpellScriptLoader("spell_q12698_the_gift_that_keeps_on_giving") { }
|
||||
|
||||
class spell_q12698_the_gift_that_keeps_on_giving_SpellScript : public SpellScript
|
||||
@@ -507,7 +507,7 @@ public:
|
||||
me->SetReactState(REACT_DEFENSIVE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
if (Player* owner = me->GetCharmerOrOwnerPlayerOrPlayerItself())
|
||||
me->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, frand(0.0f, 2*M_PI));
|
||||
me->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, frand(0.0f, 2 * M_PI));
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_GHOUL_CHECK_COMBAT, 1000);
|
||||
return;
|
||||
@@ -567,7 +567,7 @@ public:
|
||||
creature->CastSpell(owner, 52517, true);
|
||||
|
||||
creature->AI()->SetGUID(me->GetGUID());
|
||||
creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -611,7 +611,7 @@ public:
|
||||
if (summonAttackers >= 15000)
|
||||
{
|
||||
for (uint8 i = 0; i < 15; ++i)
|
||||
if (Creature* summon = me->SummonCreature(28834 /*NPC_SCARLET_FLEET_DEFENDER*/, 2192.56f+irand(-10, 10), -6147.90f+irand(-10, 10), 5.2f, 4.7f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 45000))
|
||||
if (Creature* summon = me->SummonCreature(28834 /*NPC_SCARLET_FLEET_DEFENDER*/, 2192.56f + irand(-10, 10), -6147.90f + irand(-10, 10), 5.2f, 4.7f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 45000))
|
||||
{
|
||||
summon->SetHomePosition(me->GetHomePosition());
|
||||
summon->AI()->AttackStart(me);
|
||||
@@ -942,7 +942,7 @@ public:
|
||||
{
|
||||
npc_scarlet_miner_cartAI(Creature* creature) : PassiveAI(creature), minerGUID(0)
|
||||
{
|
||||
me->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->setFaction(35);
|
||||
me->SetDisplayId(me->GetCreatureTemplate()->Modelid1); // Modelid2 is a horse.
|
||||
}
|
||||
@@ -965,7 +965,7 @@ public:
|
||||
me->SetSpeed(MOVE_RUN, 1.25f);
|
||||
|
||||
me->GetMotionMaster()->MoveFollow(miner, 1.0f, 0);
|
||||
me->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->setFaction(35);
|
||||
}
|
||||
}
|
||||
@@ -1076,7 +1076,7 @@ public:
|
||||
{
|
||||
me->SetFacingToObject(car);
|
||||
// xinef: add some flags
|
||||
car->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
car->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
car->setFaction(35);
|
||||
}
|
||||
Talk(SAY_SCARLET_MINER_0);
|
||||
@@ -1118,7 +1118,8 @@ public:
|
||||
car->AI()->DoAction(0);
|
||||
IntroPhase = 0;
|
||||
}
|
||||
} else IntroTimer-=diff;
|
||||
}
|
||||
else IntroTimer -= diff;
|
||||
}
|
||||
npc_escortAI::UpdateAI(diff);
|
||||
}
|
||||
|
||||
@@ -139,7 +139,8 @@ public:
|
||||
++speechCounter;
|
||||
DoCastAOE(SPELL_THREAT_PULSE, true);
|
||||
|
||||
} else
|
||||
}
|
||||
else
|
||||
speechTimer -= diff;
|
||||
|
||||
return;
|
||||
@@ -468,7 +469,8 @@ public:
|
||||
}
|
||||
uiStage_timer = 3000;
|
||||
uiStage = 0;
|
||||
} else uiStage_timer -= diff;
|
||||
}
|
||||
else uiStage_timer -= diff;
|
||||
}
|
||||
|
||||
if (!UpdateVictim())
|
||||
@@ -532,28 +534,31 @@ public:
|
||||
Shout();
|
||||
DoCast(me, SPELL_RENEW);
|
||||
uiRenew_timer = urand(1000, 6000);
|
||||
} else uiRenew_timer -= diff;
|
||||
}
|
||||
else uiRenew_timer -= diff;
|
||||
|
||||
if (uiInquisitor_Penance_timer <= diff)
|
||||
{
|
||||
Shout();
|
||||
DoCastVictim(SPELL_INQUISITOR_PENANCE);
|
||||
uiInquisitor_Penance_timer = urand(2000, 7000);
|
||||
} else uiInquisitor_Penance_timer -= diff;
|
||||
}
|
||||
else uiInquisitor_Penance_timer -= diff;
|
||||
|
||||
if (uiValroth_Smite_timer <= diff)
|
||||
{
|
||||
Shout();
|
||||
DoCastVictim(SPELL_VALROTH_SMITE);
|
||||
uiValroth_Smite_timer = urand(1000, 6000);
|
||||
} else uiValroth_Smite_timer -= diff;
|
||||
}
|
||||
else uiValroth_Smite_timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
void Shout()
|
||||
{
|
||||
if (rand()%100 < 15)
|
||||
if (rand() % 100 < 15)
|
||||
Talk(SAY_VALROTH_RAND);
|
||||
}
|
||||
|
||||
@@ -737,14 +742,30 @@ public:
|
||||
case RACE_HUMAN:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_1, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_5, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_1, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_1, player); break;
|
||||
case 5: Talk(SAY_EXEC_NOREM_5, player); break;
|
||||
case 6: Talk(SAY_EXEC_THINK_7, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_1, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_5, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_1, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_1, player);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_EXEC_NOREM_5, player);
|
||||
break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_7, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_1, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -767,14 +788,30 @@ public:
|
||||
case RACE_ORC:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_1, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_6, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_1, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_1, player); break;
|
||||
case 5: Talk(SAY_EXEC_NOREM_7, player); break;
|
||||
case 6: Talk(SAY_EXEC_THINK_8, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_1, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_6, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_1, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_1, player);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_EXEC_NOREM_7, player);
|
||||
break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_8, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_1, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -797,14 +834,30 @@ public:
|
||||
case RACE_DWARF:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_2, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_2, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_1, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_3, player); break;
|
||||
case 5: Talk(SAY_EXEC_NOREM_2, player); break;
|
||||
case 6: Talk(SAY_EXEC_THINK_5, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_2, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_2, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_2, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_1, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_3, player);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_EXEC_NOREM_2, player);
|
||||
break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_5, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_2, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -827,14 +880,30 @@ public:
|
||||
case RACE_NIGHTELF:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_1, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_5, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_1, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_1, player); break;
|
||||
case 5: Talk(SAY_EXEC_NOREM_6, player); break;
|
||||
case 6: Talk(SAY_EXEC_THINK_2, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_1, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_5, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_1, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_1, player);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_EXEC_NOREM_6, player);
|
||||
break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_2, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_1, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -857,14 +926,30 @@ public:
|
||||
case RACE_UNDEAD_PLAYER:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_1, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_3, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_1, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_4, player); break;
|
||||
case 5: Talk(SAY_EXEC_NOREM_3, player); break;
|
||||
case 6: Talk(SAY_EXEC_THINK_1, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_3, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_1, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_3, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_1, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_4, player);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_EXEC_NOREM_3, player);
|
||||
break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_1, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_3, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -887,14 +972,30 @@ public:
|
||||
case RACE_TAUREN:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_1, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_1, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_1, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_5, player); break;
|
||||
case 5: Talk(SAY_EXEC_NOREM_8, player); break;
|
||||
case 6: Talk(SAY_EXEC_THINK_9, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_1, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_1, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_1, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_5, player);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_EXEC_NOREM_8, player);
|
||||
break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_9, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_1, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -917,14 +1018,30 @@ public:
|
||||
case RACE_GNOME:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_1, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_4, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_1, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_1, player); break;
|
||||
case 5: Talk(SAY_EXEC_NOREM_4, player); break;
|
||||
case 6: Talk(SAY_EXEC_THINK_6, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_1, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_4, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_1, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_1, player);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_EXEC_NOREM_4, player);
|
||||
break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_6, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_1, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -947,14 +1064,30 @@ public:
|
||||
case RACE_TROLL:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_3, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_7, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_2, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_6, player); break;
|
||||
case 5: Talk(SAY_EXEC_NOREM_9, player); break;
|
||||
case 6: Talk(SAY_EXEC_THINK_10, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_4, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_3, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_7, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_2, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_6, player);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_EXEC_NOREM_9, player);
|
||||
break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_10, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_4, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -977,14 +1110,28 @@ public:
|
||||
case RACE_BLOODELF:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_1, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_1, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_1, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_1, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_1, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_1, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_1, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_1, player);
|
||||
break;
|
||||
//case 5: //unknown
|
||||
case 6: Talk(SAY_EXEC_THINK_3, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_3, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_1, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -1007,14 +1154,30 @@ public:
|
||||
case RACE_DRAENEI:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_1, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_1, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_1, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_2, player); break;
|
||||
case 5: Talk(SAY_EXEC_NOREM_1, player); break;
|
||||
case 6: Talk(SAY_EXEC_THINK_4, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_1, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_1, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_1, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_2, player);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_EXEC_NOREM_1, player);
|
||||
break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_4, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_1, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -1052,7 +1215,7 @@ public:
|
||||
|
||||
class spell_q12779_an_end_to_all_things : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_q12779_an_end_to_all_things() : SpellScriptLoader("spell_q12779_an_end_to_all_things") { }
|
||||
|
||||
class spell_q12779_an_end_to_all_things_SpellScript : public SpellScript
|
||||
|
||||
@@ -302,7 +302,7 @@ const Position LightOfDawnFightPos[] =
|
||||
|
||||
class DelayedSummonEvent : public BasicEvent
|
||||
{
|
||||
public:
|
||||
public:
|
||||
DelayedSummonEvent(Unit* owner, uint32 entry, Position pos) : _owner(owner), _entry(entry), _pos(pos) { }
|
||||
|
||||
bool Execute(uint64 /*eventTime*/, uint32 /*updateTime*/)
|
||||
@@ -311,7 +311,7 @@ class DelayedSummonEvent : public BasicEvent
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
private:
|
||||
Unit* _owner;
|
||||
uint32 _entry;
|
||||
Position _pos;
|
||||
@@ -342,7 +342,7 @@ public:
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+1)
|
||||
if (action == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
{
|
||||
ClearGossipMenuFor(player);
|
||||
CloseGossipMenuFor(player);
|
||||
@@ -356,8 +356,8 @@ public:
|
||||
npc_highlord_darion_mograineAI(Creature* creature) : ScriptedAI(creature), summons(me)
|
||||
{
|
||||
battleStarted = ENCOUNTER_STATE_NONE;
|
||||
me->SetCorpseDelay(3*60);
|
||||
me->SetRespawnTime(3*60);
|
||||
me->SetCorpseDelay(3 * 60);
|
||||
me->SetRespawnTime(3 * 60);
|
||||
resetExecuted = false;
|
||||
}
|
||||
|
||||
@@ -403,12 +403,18 @@ public:
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case WORLD_STATE_DEFENDERS_COUNT: return defendersRemaining;
|
||||
case WORLD_STATE_SCOURGE_COUNT: return scourgeRemaining;
|
||||
case WORLD_STATE_SOLDIERS_ENABLE: return me->IsAlive() && (startTimeRemaining || battleStarted);
|
||||
case WORLD_STATE_COUNTDOWN_ENABLE: return me->IsAlive() && startTimeRemaining;
|
||||
case WORLD_STATE_COUNTDOWN_TIME: return startTimeRemaining;
|
||||
case WORLD_STATE_EVENT_BEGIN_ENABLE: return me->IsAlive() && !startTimeRemaining && battleStarted;
|
||||
case WORLD_STATE_DEFENDERS_COUNT:
|
||||
return defendersRemaining;
|
||||
case WORLD_STATE_SCOURGE_COUNT:
|
||||
return scourgeRemaining;
|
||||
case WORLD_STATE_SOLDIERS_ENABLE:
|
||||
return me->IsAlive() && (startTimeRemaining || battleStarted);
|
||||
case WORLD_STATE_COUNTDOWN_ENABLE:
|
||||
return me->IsAlive() && startTimeRemaining;
|
||||
case WORLD_STATE_COUNTDOWN_TIME:
|
||||
return startTimeRemaining;
|
||||
case WORLD_STATE_EVENT_BEGIN_ENABLE:
|
||||
return me->IsAlive() && !startTimeRemaining && battleStarted;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -449,7 +455,7 @@ public:
|
||||
if (battleStarted == ENCOUNTER_STATE_OUTRO && cr->GetEntry() == NPC_DEFENDER_OF_THE_LIGHT)
|
||||
{
|
||||
cr->SetReactState(REACT_PASSIVE);
|
||||
cr->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
cr->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
cr->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY1H);
|
||||
cr->HandleEmoteCommand(EMOTE_STATE_READY1H);
|
||||
}
|
||||
@@ -480,8 +486,8 @@ public:
|
||||
void JustDied(Unit*) override
|
||||
{
|
||||
summons.DespawnAll();
|
||||
me->SetCorpseDelay(3*60);
|
||||
me->SetRespawnTime(3*60);
|
||||
me->SetCorpseDelay(3 * 60);
|
||||
me->SetRespawnTime(3 * 60);
|
||||
}
|
||||
|
||||
void FinishFight()
|
||||
@@ -530,8 +536,8 @@ public:
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP|UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
me->SetVisible(true);
|
||||
me->setActive(true);
|
||||
@@ -654,7 +660,7 @@ public:
|
||||
break;
|
||||
}
|
||||
case EVENT_START_COUNTDOWN_14:
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SummonCreatureGroup(5);
|
||||
return;
|
||||
case EVENT_FINISH_FIGHT_1:
|
||||
@@ -682,13 +688,13 @@ public:
|
||||
{
|
||||
summon->CombatStop(true);
|
||||
summon->DeleteThreatList();
|
||||
summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
summon->SetReactState(REACT_PASSIVE);
|
||||
summon->GetMotionMaster()->Clear(false);
|
||||
}
|
||||
me->CombatStop(true);
|
||||
me->DeleteThreatList();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->GetMotionMaster()->Clear(false);
|
||||
|
||||
@@ -927,7 +933,7 @@ public:
|
||||
if (summon->GetEntry() <= NPC_RIMBLAT_EARTHSHATTER && summon->GetEntry() != NPC_HIGHLORD_TIRION_FORDRING)
|
||||
{
|
||||
float o = lk->GetAngle(summon);
|
||||
summon->GetMotionMaster()->MovePoint(3, lk->GetPositionX() + 2.0f*cos(o), lk->GetPositionY() + 2.0f*sin(o), lk->GetPositionZ());
|
||||
summon->GetMotionMaster()->MovePoint(3, lk->GetPositionX() + 2.0f * cos(o), lk->GetPositionY() + 2.0f * sin(o), lk->GetPositionZ());
|
||||
summon->ToTempSummon()->SetTempSummonType(TEMPSUMMON_MANUAL_DESPAWN);
|
||||
}
|
||||
}
|
||||
@@ -1011,7 +1017,7 @@ public:
|
||||
{
|
||||
tirion->CastSpell(tirion, SPELL_TIRION_CHARGE, true);
|
||||
tirion->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
|
||||
tirion->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
tirion->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
}
|
||||
break;
|
||||
case EVENT_OUTRO_SCENE_44:
|
||||
@@ -1036,7 +1042,7 @@ public:
|
||||
if (Creature* tirion = GetEntryFromSummons(NPC_HIGHLORD_TIRION_FORDRING))
|
||||
{
|
||||
float o = me->GetAngle(tirion);
|
||||
tirion->GetMotionMaster()->MovePoint(4, me->GetPositionX() + 2.0f*cos(o), me->GetPositionY() + 2.0f*sin(o), me->GetPositionZ(), false);
|
||||
tirion->GetMotionMaster()->MovePoint(4, me->GetPositionX() + 2.0f * cos(o), me->GetPositionY() + 2.0f * sin(o), me->GetPositionZ(), false);
|
||||
tirion->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
tirion->setFaction(35);
|
||||
}
|
||||
@@ -1108,14 +1114,14 @@ public:
|
||||
break;
|
||||
case EVENT_OUTRO_SCENE_60:
|
||||
{
|
||||
Map::PlayerList const &PlayerList = me->GetMap()->GetPlayers();
|
||||
Map::PlayerList const& PlayerList = me->GetMap()->GetPlayers();
|
||||
if (!PlayerList.isEmpty())
|
||||
{
|
||||
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
|
||||
if (i->GetSource()->IsAlive() && me->IsWithinDistInMap(i->GetSource(), 100))
|
||||
i->GetSource()->CastSpell(i->GetSource(), SPELL_THE_LIGHT_OF_DAWN_Q, false);
|
||||
}
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP|UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
break;
|
||||
}
|
||||
case EVENT_OUTRO_SCENE_61:
|
||||
@@ -1162,7 +1168,7 @@ public:
|
||||
|
||||
class spell_chapter5_light_of_dawn_aura : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_chapter5_light_of_dawn_aura() : SpellScriptLoader("spell_chapter5_light_of_dawn_aura") { }
|
||||
|
||||
class spell_chapter5_light_of_dawn_aura_AuraScript : public AuraScript
|
||||
@@ -1200,7 +1206,7 @@ class spell_chapter5_light_of_dawn_aura : public SpellScriptLoader
|
||||
|
||||
class spell_chapter5_rebuke : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_chapter5_rebuke() : SpellScriptLoader("spell_chapter5_rebuke") { }
|
||||
|
||||
class spell_chapter5_rebuke_SpellScript : public SpellScript
|
||||
|
||||
@@ -108,7 +108,8 @@ public:
|
||||
break;
|
||||
}
|
||||
++phase;
|
||||
} else FlyBackTimer-=diff;
|
||||
}
|
||||
else FlyBackTimer -= diff;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -106,7 +106,9 @@ public:
|
||||
switch (go->GetEntry())
|
||||
{
|
||||
//case ENTRY_PUMPKIN_SHRINE: PumpkinShrineGUID = go->GetGUID(); break;
|
||||
case DOOR_HIGH_INQUISITOR_ID: DoorHighInquisitorGUID = go->GetGUID(); break;
|
||||
case DOOR_HIGH_INQUISITOR_ID:
|
||||
DoorHighInquisitorGUID = go->GetGUID();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -114,8 +116,12 @@ public:
|
||||
{
|
||||
switch (creature->GetEntry())
|
||||
{
|
||||
case NPC_COMMANDER_MOGRAINE: MograineGUID = creature->GetGUID(); break;
|
||||
case NPC_INQUISITOR_WHITEMANE: WhitemaneGUID = creature->GetGUID(); break;
|
||||
case NPC_COMMANDER_MOGRAINE:
|
||||
MograineGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_INQUISITOR_WHITEMANE:
|
||||
WhitemaneGUID = creature->GetGUID();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -144,9 +150,12 @@ public:
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case DATA_MOGRAINE: return MograineGUID;
|
||||
case DATA_WHITEMANE: return WhitemaneGUID;
|
||||
case DATA_DOOR_WHITEMANE: return DoorHighInquisitorGUID;
|
||||
case DATA_MOGRAINE:
|
||||
return MograineGUID;
|
||||
case DATA_WHITEMANE:
|
||||
return WhitemaneGUID;
|
||||
case DATA_DOOR_WHITEMANE:
|
||||
return DoorHighInquisitorGUID;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -56,7 +56,8 @@ Position const PosMove[2] =
|
||||
|
||||
class boss_kirtonos_the_herald : public CreatureScript
|
||||
{
|
||||
public: boss_kirtonos_the_herald() : CreatureScript("boss_kirtonos_the_herald") { }
|
||||
public:
|
||||
boss_kirtonos_the_herald() : CreatureScript("boss_kirtonos_the_herald") { }
|
||||
|
||||
struct boss_kirtonos_the_heraldAI : public ScriptedAI
|
||||
{
|
||||
@@ -101,7 +102,7 @@ class boss_kirtonos_the_herald : public CreatureScript
|
||||
events2.ScheduleEvent(INTRO_1, 500);
|
||||
me->SetDisableGravity(true);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
Talk(EMOTE_SUMMONED);
|
||||
}
|
||||
|
||||
@@ -142,7 +143,7 @@ class boss_kirtonos_the_herald : public CreatureScript
|
||||
case INTRO_5:
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
|
||||
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_KIRTONOS_STAFF));
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
break;
|
||||
case INTRO_6:
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
class instance_scholomance : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
instance_scholomance() : InstanceMapScript("instance_scholomance", 289) { }
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const
|
||||
@@ -161,7 +161,7 @@ class instance_scholomance : public InstanceMapScript
|
||||
|
||||
class spell_scholomance_fixate : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_scholomance_fixate() : SpellScriptLoader("spell_scholomance_fixate") { }
|
||||
|
||||
class spell_scholomance_fixate_AuraScript : public AuraScript
|
||||
@@ -198,7 +198,7 @@ class spell_scholomance_fixate : public SpellScriptLoader
|
||||
|
||||
class spell_kormok_summon_bone_mages : SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_kormok_summon_bone_mages() : SpellScriptLoader("spell_kormok_summon_bone_mages") { }
|
||||
|
||||
class spell_kormok_summon_bone_magesSpellScript : public SpellScript
|
||||
@@ -209,7 +209,7 @@ class spell_kormok_summon_bone_mages : SpellScriptLoader
|
||||
{
|
||||
PreventHitDefaultEffect(effIndex);
|
||||
for (uint8 i = 0; i < 2; ++i)
|
||||
GetCaster()->CastSpell(GetCaster(), SPELL_SUMMON_BONE_MAGE_FRONT_LEFT+urand(0, 3), true);
|
||||
GetCaster()->CastSpell(GetCaster(), SPELL_SUMMON_BONE_MAGE_FRONT_LEFT + urand(0, 3), true);
|
||||
}
|
||||
|
||||
void Register()
|
||||
@@ -226,7 +226,7 @@ class spell_kormok_summon_bone_mages : SpellScriptLoader
|
||||
|
||||
class spell_kormok_summon_bone_minions : SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_kormok_summon_bone_minions() : SpellScriptLoader("spell_kormok_summon_bone_minions") { }
|
||||
|
||||
class spell_kormok_summon_bone_minionsSpellScript : public SpellScript
|
||||
@@ -238,7 +238,7 @@ class spell_kormok_summon_bone_minions : SpellScriptLoader
|
||||
PreventHitDefaultEffect(effIndex);
|
||||
|
||||
for (uint32 i = 0; i < 4; ++i)
|
||||
GetCaster()->CastSpell(GetCaster(), SPELL_SUMMON_BONE_MINION1+i, true);
|
||||
GetCaster()->CastSpell(GetCaster(), SPELL_SUMMON_BONE_MINION1 + i, true);
|
||||
}
|
||||
|
||||
void Register()
|
||||
@@ -266,7 +266,7 @@ enum Rooms
|
||||
|
||||
class spell_scholomance_shadow_portal : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_scholomance_shadow_portal() : SpellScriptLoader("spell_scholomance_shadow_portal") { }
|
||||
|
||||
class spell_scholomance_shadow_portal_SpellScript : public SpellScript
|
||||
@@ -334,7 +334,7 @@ class spell_scholomance_shadow_portal : public SpellScriptLoader
|
||||
}
|
||||
else
|
||||
{
|
||||
room = (room+1)%ROOM_MAX;
|
||||
room = (room + 1) % ROOM_MAX;
|
||||
++attempts;
|
||||
}
|
||||
}
|
||||
@@ -352,7 +352,7 @@ class spell_scholomance_shadow_portal : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
Position const SummonPos[3*ROOM_MAX] =
|
||||
Position const SummonPos[3 * ROOM_MAX] =
|
||||
{
|
||||
// Hall of Secrects
|
||||
{ 230.80f, 0.138f, 85.23f, 0.0f },
|
||||
@@ -382,7 +382,7 @@ Position const SummonPos[3*ROOM_MAX] =
|
||||
|
||||
class spell_scholomance_shadow_portal_rooms : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_scholomance_shadow_portal_rooms() : SpellScriptLoader("spell_scholomance_shadow_portal_rooms") { }
|
||||
|
||||
class spell_scholomance_shadow_portal_rooms_SpellScript : public SpellScript
|
||||
@@ -405,27 +405,27 @@ class spell_scholomance_shadow_portal_rooms : public SpellScriptLoader
|
||||
switch (GetSpellInfo()->Id)
|
||||
{
|
||||
case SPELL_SHADOW_PORTAL_HALLOFSECRETS:
|
||||
summonPos = ROOM_HALL_OF_SECRETS*3;
|
||||
summonPos = ROOM_HALL_OF_SECRETS * 3;
|
||||
gateId = GO_GATE_POLKELT;
|
||||
break;
|
||||
case SPELL_SHADOW_PORTAL_HALLOFTHEDAMNED:
|
||||
summonPos = ROOM_HALL_OF_THE_DAMNED*3;
|
||||
summonPos = ROOM_HALL_OF_THE_DAMNED * 3;
|
||||
gateId = GO_GATE_THEOLEN;
|
||||
break;
|
||||
case SPELL_SHADOW_PORTAL_THECOVEN:
|
||||
summonPos = ROOM_THE_COVEN*3;
|
||||
summonPos = ROOM_THE_COVEN * 3;
|
||||
gateId = GO_GATE_MALICIA;
|
||||
break;
|
||||
case SPELL_SHADOW_PORTAL_THESHADOWVAULT:
|
||||
summonPos = ROOM_THE_SHADOW_VAULT*3;
|
||||
summonPos = ROOM_THE_SHADOW_VAULT * 3;
|
||||
gateId = GO_GATE_ILLUCIA;
|
||||
break;
|
||||
case SPELL_SHADOW_PORTAL_BAROVFAMILYVAULT:
|
||||
summonPos = ROOM_BAROV_FAMILY_VAULT*4;
|
||||
summonPos = ROOM_BAROV_FAMILY_VAULT * 4;
|
||||
gateId = GO_GATE_BAROV;
|
||||
break;
|
||||
case SPELL_SHADOW_PORTAL_VAULTOFTHERAVENIAN:
|
||||
summonPos = ROOM_VAULT_OF_THE_RAVENIAN*3;
|
||||
summonPos = ROOM_VAULT_OF_THE_RAVENIAN * 3;
|
||||
gateId = GO_GATE_RAVENIAN;
|
||||
break;
|
||||
}
|
||||
@@ -434,10 +434,10 @@ class spell_scholomance_shadow_portal_rooms : public SpellScriptLoader
|
||||
{
|
||||
for (uint8 i = 0; i < 3; ++i)
|
||||
{
|
||||
if (Creature* summon = GetCaster()->SummonCreature(NPC_RISEN_GUARDIAN, SummonPos[summonPos+i], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 120000))
|
||||
if (Creature* summon = GetCaster()->SummonCreature(NPC_RISEN_GUARDIAN, SummonPos[summonPos + i], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 120000))
|
||||
{
|
||||
summon->GetMotionMaster()->MoveRandom(8.0f);
|
||||
summon->AI()->SetData(0, summonPos/3 + 1);
|
||||
summon->AI()->SetData(0, summonPos / 3 + 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -464,7 +464,7 @@ class spell_scholomance_shadow_portal_rooms : public SpellScriptLoader
|
||||
|
||||
class spell_scholomance_boon_of_life : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_scholomance_boon_of_life() : SpellScriptLoader("spell_scholomance_boon_of_life") { }
|
||||
|
||||
class spell_scholomance_boon_of_life_AuraScript : public AuraScript
|
||||
@@ -492,7 +492,7 @@ class spell_scholomance_boon_of_life : public SpellScriptLoader
|
||||
creature->SetDisplayId(MODEL_RAS_HUMAN);
|
||||
creature->SetHealth(target->GetMaxHealth());
|
||||
if (InstanceScript* instance = creature->GetInstanceScript())
|
||||
instance->SetData(DATA_RAS_HUMAN,1);
|
||||
instance->SetData(DATA_RAS_HUMAN, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ enum Creatures
|
||||
|
||||
class instance_shadowfang_keep : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
instance_shadowfang_keep() : InstanceMapScript("instance_shadowfang_keep", 33) { }
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const
|
||||
@@ -104,7 +104,7 @@ class instance_shadowfang_keep : public InstanceMapScript
|
||||
|
||||
class spell_shadowfang_keep_haunting_spirits : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_shadowfang_keep_haunting_spirits() : SpellScriptLoader("spell_shadowfang_keep_haunting_spirits") { }
|
||||
|
||||
class spell_shadowfang_keep_haunting_spirits_AuraScript : public AuraScript
|
||||
@@ -114,7 +114,7 @@ class spell_shadowfang_keep_haunting_spirits : public SpellScriptLoader
|
||||
void CalcPeriodic(AuraEffect const* /*aurEff*/, bool& isPeriodic, int32& amplitude)
|
||||
{
|
||||
isPeriodic = true;
|
||||
amplitude = irand(30*IN_MILLISECONDS, 90*IN_MILLISECONDS);
|
||||
amplitude = irand(30 * IN_MILLISECONDS, 90 * IN_MILLISECONDS);
|
||||
}
|
||||
|
||||
void HandleDummyTick(AuraEffect const* aurEff)
|
||||
@@ -149,7 +149,7 @@ enum ForsakenSpells
|
||||
|
||||
class spell_shadowfang_keep_forsaken_skills : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_shadowfang_keep_forsaken_skills() : SpellScriptLoader("spell_shadowfang_keep_forsaken_skills") { }
|
||||
|
||||
class spell_shadowfang_keep_forsaken_skills_AuraScript : public AuraScript
|
||||
|
||||
@@ -10,17 +10,17 @@
|
||||
|
||||
const Position BlackGuardPos[10] =
|
||||
{
|
||||
{4032.73f+0.0f, -3378.26f+0.0f, 119.76f, 4.67f},
|
||||
{4032.73f+2.0f, -3378.26f+2.0f, 119.76f, 4.67f},
|
||||
{4032.73f+2.0f, -3378.26f-2.0f, 119.76f, 4.67f},
|
||||
{4032.73f-2.0f, -3378.26f+2.0f, 119.76f, 4.67f},
|
||||
{4032.73f-2.0f, -3378.26f-2.0f, 119.76f, 4.67f},
|
||||
{4032.73f + 0.0f, -3378.26f + 0.0f, 119.76f, 4.67f},
|
||||
{4032.73f + 2.0f, -3378.26f + 2.0f, 119.76f, 4.67f},
|
||||
{4032.73f + 2.0f, -3378.26f - 2.0f, 119.76f, 4.67f},
|
||||
{4032.73f - 2.0f, -3378.26f + 2.0f, 119.76f, 4.67f},
|
||||
{4032.73f - 2.0f, -3378.26f - 2.0f, 119.76f, 4.67f},
|
||||
|
||||
{4032.73f+0.0f, -3407.38f+0.0f, 115.56f, 0.0f},
|
||||
{4032.73f+2.0f, -3407.38f+2.0f, 115.56f, 0.0f},
|
||||
{4032.73f+2.0f, -3407.38f-2.0f, 115.56f, 0.0f},
|
||||
{4032.73f-2.0f, -3407.38f+2.0f, 115.56f, 0.0f},
|
||||
{4032.73f-2.0f, -3407.38f-2.0f, 115.56f, 0.0f}
|
||||
{4032.73f + 0.0f, -3407.38f + 0.0f, 115.56f, 0.0f},
|
||||
{4032.73f + 2.0f, -3407.38f + 2.0f, 115.56f, 0.0f},
|
||||
{4032.73f + 2.0f, -3407.38f - 2.0f, 115.56f, 0.0f},
|
||||
{4032.73f - 2.0f, -3407.38f + 2.0f, 115.56f, 0.0f},
|
||||
{4032.73f - 2.0f, -3407.38f - 2.0f, 115.56f, 0.0f}
|
||||
};
|
||||
|
||||
// Creatures to be spawned during the trap events
|
||||
@@ -40,7 +40,7 @@ static const Position aGateTrap[] =
|
||||
|
||||
class instance_stratholme : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
instance_stratholme() : InstanceMapScript("instance_stratholme", 329) { }
|
||||
|
||||
struct instance_stratholme_InstanceMapScript : public InstanceScript
|
||||
@@ -79,7 +79,7 @@ class instance_stratholme : public InstanceMapScript
|
||||
{
|
||||
if (_baronRunTime > 0)
|
||||
if (Aura* aura = player->AddAura(SPELL_BARON_ULTIMATUM, player))
|
||||
aura->SetDuration(_baronRunTime*MINUTE*IN_MILLISECONDS);
|
||||
aura->SetDuration(_baronRunTime * MINUTE * IN_MILLISECONDS);
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature* creature)
|
||||
@@ -122,7 +122,7 @@ class instance_stratholme : public InstanceMapScript
|
||||
if (_slaughterProgress == 2)
|
||||
{
|
||||
for (uint32 i = 0; i < 33; ++i)
|
||||
events.ScheduleEvent(EVENT_SPAWN_MINDLESS, 5000 + i*210);
|
||||
events.ScheduleEvent(EVENT_SPAWN_MINDLESS, 5000 + i * 210);
|
||||
if (Creature* baron = instance->GetCreature(_baronRivendareGUID))
|
||||
if (GameObject* gate = baron->FindNearestGameObject(GO_SLAUGHTER_GATE_SIDE, 200.0f))
|
||||
gate->SetGoState(GO_STATE_ACTIVE);
|
||||
@@ -271,7 +271,7 @@ class instance_stratholme : public InstanceMapScript
|
||||
}
|
||||
case TYPE_ZIGGURAT1:
|
||||
{
|
||||
if (data == _zigguratState1+1)
|
||||
if (data == _zigguratState1 + 1)
|
||||
++_zigguratState1;
|
||||
|
||||
if (_zigguratState1 == 1)
|
||||
@@ -283,7 +283,7 @@ class instance_stratholme : public InstanceMapScript
|
||||
}
|
||||
case TYPE_ZIGGURAT2:
|
||||
{
|
||||
if (data == _zigguratState2+1)
|
||||
if (data == _zigguratState2 + 1)
|
||||
++_zigguratState2;
|
||||
|
||||
if (_zigguratState2 == 1)
|
||||
@@ -295,7 +295,7 @@ class instance_stratholme : public InstanceMapScript
|
||||
}
|
||||
case TYPE_ZIGGURAT3:
|
||||
{
|
||||
if (data == _zigguratState3+1)
|
||||
if (data == _zigguratState3 + 1)
|
||||
++_zigguratState3;
|
||||
|
||||
if (_zigguratState3 == 1)
|
||||
@@ -525,8 +525,8 @@ class instance_stratholme : public InstanceMapScript
|
||||
if (Creature* guard = instance->SummonCreature(NPC_BLACK_GUARD, BlackGuardPos[i]))
|
||||
{
|
||||
guard->SetWalk(true);
|
||||
guard->GetMotionMaster()->MovePoint(0, BlackGuardPos[i+5]);
|
||||
guard->SetHomePosition(BlackGuardPos[i+5]);
|
||||
guard->GetMotionMaster()->MovePoint(0, BlackGuardPos[i + 5]);
|
||||
guard->SetHomePosition(BlackGuardPos[i + 5]);
|
||||
if (i == 0 && guard->AI())
|
||||
guard->AI()->Talk(SAY_BLACK_GUARD_INIT);
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
class instance_sunken_temple : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
instance_sunken_temple() : InstanceMapScript("instance_sunken_temple", 109) { }
|
||||
|
||||
struct instance_sunken_temple_InstanceMapScript : public InstanceScript
|
||||
@@ -59,7 +59,7 @@ class instance_sunken_temple : public InstanceMapScript
|
||||
case GO_ATALAI_STATUE4:
|
||||
case GO_ATALAI_STATUE5:
|
||||
case GO_ATALAI_STATUE6:
|
||||
if (gameobject->GetEntry() < GO_ATALAI_STATUE1+_statuePhase)
|
||||
if (gameobject->GetEntry() < GO_ATALAI_STATUE1 + _statuePhase)
|
||||
{
|
||||
instance->SummonGameObject(GO_ATALAI_LIGHT2, gameobject->GetPositionX(), gameobject->GetPositionY(), gameobject->GetPositionZ(), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
|
||||
gameobject->SetUInt32Value(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
@@ -200,7 +200,7 @@ enum MalfurionMisc
|
||||
|
||||
class at_malfurion_stormrage : public AreaTriggerScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
at_malfurion_stormrage() : AreaTriggerScript("at_malfurion_stormrage") { }
|
||||
|
||||
bool OnTrigger(Player* player, const AreaTrigger* /*at*/)
|
||||
@@ -214,7 +214,7 @@ class at_malfurion_stormrage : public AreaTriggerScript
|
||||
|
||||
class spell_temple_of_atal_hakkar_hex_of_jammal_an : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_temple_of_atal_hakkar_hex_of_jammal_an() : SpellScriptLoader("spell_temple_of_atal_hakkar_hex_of_jammal_an") { }
|
||||
|
||||
class spell_temple_of_atal_hakkar_hex_of_jammal_an_AuraScript : public AuraScript
|
||||
@@ -245,7 +245,7 @@ class spell_temple_of_atal_hakkar_hex_of_jammal_an : public SpellScriptLoader
|
||||
|
||||
class spell_temple_of_atal_hakkar_awaken_the_soulflayer : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_temple_of_atal_hakkar_awaken_the_soulflayer() : SpellScriptLoader("spell_temple_of_atal_hakkar_awaken_the_soulflayer") { }
|
||||
|
||||
class spell_temple_of_atal_hakkar_awaken_the_soulflayer_SpellScript : public SpellScript
|
||||
|
||||
@@ -321,7 +321,7 @@ public:
|
||||
if (Creature* brutallus = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_BRUTALLUS)))
|
||||
{
|
||||
brutallus->SetDisableGravity(true);
|
||||
brutallus->GetMotionMaster()->MovePoint(0, brutallus->GetPositionX(), brutallus->GetPositionY()-30.0f, brutallus->GetPositionZ()+15.0f, false, true);
|
||||
brutallus->GetMotionMaster()->MovePoint(0, brutallus->GetPositionX(), brutallus->GetPositionY() - 30.0f, brutallus->GetPositionZ() + 15.0f, false, true);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_MAD_15, 10000);
|
||||
break;
|
||||
@@ -392,7 +392,7 @@ public:
|
||||
|
||||
class spell_madrigosa_activate_barrier : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_madrigosa_activate_barrier() : SpellScriptLoader("spell_madrigosa_activate_barrier") { }
|
||||
|
||||
class spell_madrigosa_activate_barrier_SpellScript : public SpellScript
|
||||
@@ -407,7 +407,7 @@ class spell_madrigosa_activate_barrier : public SpellScriptLoader
|
||||
go->SetGoState(GO_STATE_READY);
|
||||
if (Map* map = go->GetMap())
|
||||
{
|
||||
Map::PlayerList const &PlayerList = map->GetPlayers();
|
||||
Map::PlayerList const& PlayerList = map->GetPlayers();
|
||||
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
|
||||
if (i->GetSource())
|
||||
{
|
||||
@@ -435,7 +435,7 @@ class spell_madrigosa_activate_barrier : public SpellScriptLoader
|
||||
|
||||
class spell_madrigosa_deactivate_barrier : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_madrigosa_deactivate_barrier() : SpellScriptLoader("spell_madrigosa_deactivate_barrier") { }
|
||||
|
||||
class spell_madrigosa_deactivate_barrier_SpellScript : public SpellScript
|
||||
@@ -450,7 +450,7 @@ class spell_madrigosa_deactivate_barrier : public SpellScriptLoader
|
||||
go->SetGoState(GO_STATE_ACTIVE);
|
||||
if (Map* map = go->GetMap())
|
||||
{
|
||||
Map::PlayerList const &PlayerList = map->GetPlayers();
|
||||
Map::PlayerList const& PlayerList = map->GetPlayers();
|
||||
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
|
||||
if (i->GetSource())
|
||||
{
|
||||
@@ -478,7 +478,7 @@ class spell_madrigosa_deactivate_barrier : public SpellScriptLoader
|
||||
|
||||
class spell_brutallus_burn : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_brutallus_burn() : SpellScriptLoader("spell_brutallus_burn") { }
|
||||
|
||||
class spell_brutallus_burn_SpellScript : public SpellScript
|
||||
@@ -507,7 +507,7 @@ class spell_brutallus_burn : public SpellScriptLoader
|
||||
|
||||
class AreaTrigger_at_sunwell_madrigosa : public AreaTriggerScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
|
||||
AreaTrigger_at_sunwell_madrigosa() : AreaTriggerScript("at_sunwell_madrigosa") {}
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ enum Misc
|
||||
|
||||
EVENT_SPELL_SHADOW_BLADES = 1,
|
||||
EVENT_SPELL_SHADOW_NOVA = 2,
|
||||
EVENT_SPELL_CONFOUNDING_BLOW= 3,
|
||||
EVENT_SPELL_CONFOUNDING_BLOW = 3,
|
||||
EVENT_SHADOW_IMAGE = 4,
|
||||
EVENT_SPELL_ENRAGE = 5,
|
||||
EVENT_SPELL_CONFLAGRATION = 6,
|
||||
@@ -94,7 +94,7 @@ public:
|
||||
|
||||
uint32 timer = events.GetNextEventTime(EVENT_SPELL_SHADOW_NOVA);
|
||||
events.CancelEvent(EVENT_SPELL_SHADOW_NOVA);
|
||||
events.ScheduleEvent(EVENT_SPELL_CONFLAGRATION, timer-events.GetTimer());
|
||||
events.ScheduleEvent(EVENT_SPELL_CONFLAGRATION, timer - events.GetTimer());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,7 +126,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* victim)
|
||||
{
|
||||
if (victim->GetTypeId() == TYPEID_PLAYER && urand(0,1))
|
||||
if (victim->GetTypeId() == TYPEID_PLAYER && urand(0, 1))
|
||||
Talk(YELL_SAC_KILL);
|
||||
}
|
||||
|
||||
@@ -242,7 +242,7 @@ public:
|
||||
|
||||
uint32 timer = events.GetNextEventTime(EVENT_SPELL_CONFLAGRATION);
|
||||
events.CancelEvent(EVENT_SPELL_CONFLAGRATION);
|
||||
events.ScheduleEvent(EVENT_SPELL_SHADOW_NOVA, timer-events.GetTimer());
|
||||
events.ScheduleEvent(EVENT_SPELL_SHADOW_NOVA, timer - events.GetTimer());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -274,7 +274,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* victim)
|
||||
{
|
||||
if (victim->GetTypeId() == TYPEID_PLAYER && urand(0,1))
|
||||
if (victim->GetTypeId() == TYPEID_PLAYER && urand(0, 1))
|
||||
Talk(YELL_SAC_KILL);
|
||||
}
|
||||
|
||||
@@ -353,7 +353,7 @@ public:
|
||||
|
||||
class spell_eredar_twins_apply_dark_touched : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_eredar_twins_apply_dark_touched() : SpellScriptLoader("spell_eredar_twins_apply_dark_touched") { }
|
||||
|
||||
class spell_eredar_twins_apply_dark_touched_SpellScript : public SpellScript
|
||||
@@ -380,7 +380,7 @@ class spell_eredar_twins_apply_dark_touched : public SpellScriptLoader
|
||||
|
||||
class spell_eredar_twins_apply_flame_touched : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_eredar_twins_apply_flame_touched() : SpellScriptLoader("spell_eredar_twins_apply_flame_touched") { }
|
||||
|
||||
class spell_eredar_twins_apply_flame_touched_SpellScript : public SpellScript
|
||||
@@ -407,7 +407,7 @@ class spell_eredar_twins_apply_flame_touched : public SpellScriptLoader
|
||||
|
||||
class spell_eredar_twins_handle_touch : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_eredar_twins_handle_touch() : SpellScriptLoader("spell_eredar_twins_handle_touch") { }
|
||||
|
||||
class spell_eredar_twins_handle_touch_SpellScript : public SpellScript
|
||||
@@ -454,7 +454,7 @@ class spell_eredar_twins_handle_touch : public SpellScriptLoader
|
||||
|
||||
class spell_eredar_twins_blaze : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_eredar_twins_blaze() : SpellScriptLoader("spell_eredar_twins_blaze") { }
|
||||
|
||||
class spell_eredar_twins_blaze_SpellScript : public SpellScript
|
||||
@@ -482,7 +482,7 @@ class spell_eredar_twins_blaze : public SpellScriptLoader
|
||||
|
||||
class AreaTrigger_at_sunwell_eredar_twins : public AreaTriggerScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
|
||||
AreaTrigger_at_sunwell_eredar_twins() : AreaTriggerScript("at_sunwell_eredar_twins") {}
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ enum Misc
|
||||
|
||||
class CorruptTriggers : public BasicEvent
|
||||
{
|
||||
public:
|
||||
public:
|
||||
CorruptTriggers(Unit* caster) : _caster(caster)
|
||||
{
|
||||
}
|
||||
@@ -107,7 +107,7 @@ class CorruptTriggers : public BasicEvent
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
private:
|
||||
Unit* _caster;
|
||||
};
|
||||
|
||||
@@ -244,7 +244,7 @@ public:
|
||||
events2.ScheduleEvent(EVENT_INTRO_3, 1500);
|
||||
break;
|
||||
case EVENT_INTRO_3:
|
||||
me->GetMotionMaster()->MovePoint(POINT_AIR, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()+10.0f, false, true);
|
||||
me->GetMotionMaster()->MovePoint(POINT_AIR, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 10.0f, false, true);
|
||||
events2.ScheduleEvent(EVENT_INTRO_4, 2000);
|
||||
break;
|
||||
case EVENT_INTRO_4:
|
||||
@@ -322,20 +322,20 @@ public:
|
||||
events.ScheduleEvent(EVENT_LAND_FIGHT, 86000);
|
||||
break;
|
||||
case EVENT_FLIGHT_MOVE_UP:
|
||||
me->GetMotionMaster()->MovePoint(POINT_AIR, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()+15.0f, false, true);
|
||||
me->GetMotionMaster()->MovePoint(POINT_AIR, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 15.0f, false, true);
|
||||
break;
|
||||
case EVENT_FLIGHT_VAPOR:
|
||||
me->CastSpell(me, SPELL_SUMMON_DEMONIC_VAPOR, true);
|
||||
break;
|
||||
case EVENT_FLIGHT_BREATH1:
|
||||
{
|
||||
Position pos = {1447.0f + urand(0, 2)*25.0f, 705.0f, 50.0f, 4.71f};
|
||||
Position pos = {1447.0f + urand(0, 2) * 25.0f, 705.0f, 50.0f, 4.71f};
|
||||
me->GetMotionMaster()->MovePoint(POINT_AIR_BREATH_START1, pos, false, true);
|
||||
break;
|
||||
}
|
||||
case EVENT_FLIGHT_BREATH2:
|
||||
{
|
||||
Position pos = {1447.0f + urand(0, 2)*25.0f, 515.0f, 50.0f, 1.57f};
|
||||
Position pos = {1447.0f + urand(0, 2) * 25.0f, 515.0f, 50.0f, 1.57f};
|
||||
me->GetMotionMaster()->MovePoint(POINT_AIR_BREATH_START2, pos, false, true);
|
||||
break;
|
||||
}
|
||||
@@ -356,11 +356,11 @@ public:
|
||||
break;
|
||||
case EVENT_FLIGHT_FLYOVER1:
|
||||
me->CastSpell(me, SPELL_FELMYST_SPEED_BURST, true);
|
||||
me->GetMotionMaster()->MovePoint(POINT_AIR_BREATH_END1, me->GetPositionX(), me->GetPositionY()-200.0f, me->GetPositionZ()+5.0f, false, true);
|
||||
me->GetMotionMaster()->MovePoint(POINT_AIR_BREATH_END1, me->GetPositionX(), me->GetPositionY() - 200.0f, me->GetPositionZ() + 5.0f, false, true);
|
||||
break;
|
||||
case EVENT_FLIGHT_FLYOVER2:
|
||||
me->CastSpell(me, SPELL_FELMYST_SPEED_BURST, true);
|
||||
me->GetMotionMaster()->MovePoint(POINT_AIR_BREATH_END2, me->GetPositionX(), me->GetPositionY()+200.0f, me->GetPositionZ()+5.0f, false, true);
|
||||
me->GetMotionMaster()->MovePoint(POINT_AIR_BREATH_END2, me->GetPositionX(), me->GetPositionY() + 200.0f, me->GetPositionZ() + 5.0f, false, true);
|
||||
break;
|
||||
case EVENT_LAND_FIGHT:
|
||||
me->GetMotionMaster()->MovePoint(POINT_GROUND, 1500.0f, 552.8f, 26.52f, false, true);
|
||||
@@ -438,7 +438,7 @@ public:
|
||||
me->CastSpell(me, SPELL_DEMONIC_VAPOR_TRAIL_PERIODIC, true);
|
||||
}
|
||||
|
||||
void SpellHitTarget(Unit* , const SpellInfo* spellInfo)
|
||||
void SpellHitTarget(Unit*, const SpellInfo* spellInfo)
|
||||
{
|
||||
if (spellInfo->Id == SPELL_DEMONIC_VAPOR)
|
||||
me->CastSpell(me, SPELL_SUMMON_BLAZING_DEAD, true);
|
||||
@@ -467,7 +467,7 @@ public:
|
||||
|
||||
class spell_felmyst_fog_of_corruption : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_felmyst_fog_of_corruption() : SpellScriptLoader("spell_felmyst_fog_of_corruption") { }
|
||||
|
||||
class spell_felmyst_fog_of_corruption_SpellScript : public SpellScript
|
||||
@@ -495,7 +495,7 @@ class spell_felmyst_fog_of_corruption : public SpellScriptLoader
|
||||
|
||||
class spell_felmyst_fog_of_corruption_charm : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_felmyst_fog_of_corruption_charm() : SpellScriptLoader("spell_felmyst_fog_of_corruption_charm") { }
|
||||
|
||||
class spell_felmyst_fog_of_corruption_charm_AuraScript : public AuraScript
|
||||
@@ -529,7 +529,7 @@ class spell_felmyst_fog_of_corruption_charm : public SpellScriptLoader
|
||||
|
||||
class DoorsGuidCheck
|
||||
{
|
||||
public:
|
||||
public:
|
||||
bool operator()(WorldObject* object) const
|
||||
{
|
||||
if (object->GetTypeId() != TYPEID_UNIT)
|
||||
@@ -542,7 +542,7 @@ class DoorsGuidCheck
|
||||
|
||||
class spell_felmyst_open_brutallus_back_doors : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_felmyst_open_brutallus_back_doors() : SpellScriptLoader("spell_felmyst_open_brutallus_back_doors") { }
|
||||
|
||||
class spell_felmyst_open_brutallus_back_doors_SpellScript : public SpellScript
|
||||
|
||||
@@ -604,14 +604,14 @@ public:
|
||||
|
||||
class SpectralBlastCheck
|
||||
{
|
||||
public:
|
||||
public:
|
||||
SpectralBlastCheck(Unit* victim) : _victim(victim) { }
|
||||
|
||||
bool operator()(WorldObject* unit)
|
||||
{
|
||||
return unit->GetPositionZ() < 50.0f || unit->ToUnit()->HasAura(SPELL_SPECTRAL_EXHAUSTION) || unit->GetGUID() == _victim->GetGUID();
|
||||
}
|
||||
private:
|
||||
private:
|
||||
Unit* _victim;
|
||||
};
|
||||
|
||||
@@ -656,7 +656,7 @@ public:
|
||||
|
||||
class spell_kalecgos_curse_of_boundless_agony : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_kalecgos_curse_of_boundless_agony() : SpellScriptLoader("spell_kalecgos_curse_of_boundless_agony") { }
|
||||
|
||||
class spell_kalecgos_curse_of_boundless_agony_AuraScript : public AuraScript
|
||||
@@ -672,8 +672,8 @@ class spell_kalecgos_curse_of_boundless_agony : public SpellScriptLoader
|
||||
|
||||
void OnPeriodic(AuraEffect const* aurEff)
|
||||
{
|
||||
if (aurEff->GetTickNumber() > 1 && aurEff->GetTickNumber()%5 == 1)
|
||||
GetAura()->GetEffect(aurEff->GetEffIndex())->SetAmount(aurEff->GetAmount()*2);
|
||||
if (aurEff->GetTickNumber() > 1 && aurEff->GetTickNumber() % 5 == 1)
|
||||
GetAura()->GetEffect(aurEff->GetEffIndex())->SetAmount(aurEff->GetAmount() * 2);
|
||||
}
|
||||
|
||||
void Register()
|
||||
@@ -691,7 +691,7 @@ class spell_kalecgos_curse_of_boundless_agony : public SpellScriptLoader
|
||||
|
||||
class spell_kalecgos_spectral_realm_dummy : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_kalecgos_spectral_realm_dummy() : SpellScriptLoader("spell_kalecgos_spectral_realm_dummy") { }
|
||||
|
||||
class spell_kalecgos_spectral_realm_dummy_SpellScript : public SpellScript
|
||||
@@ -727,7 +727,7 @@ class spell_kalecgos_spectral_realm_dummy : public SpellScriptLoader
|
||||
|
||||
class spell_kalecgos_spectral_realm : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_kalecgos_spectral_realm() : SpellScriptLoader("spell_kalecgos_spectral_realm") { }
|
||||
|
||||
class spell_kalecgos_spectral_realm_AuraScript : public AuraScript
|
||||
|
||||
@@ -130,7 +130,7 @@ enum Misc
|
||||
|
||||
class CastArmageddon : public BasicEvent
|
||||
{
|
||||
public:
|
||||
public:
|
||||
CastArmageddon(Creature* caster) : _caster(caster)
|
||||
{
|
||||
}
|
||||
@@ -138,11 +138,11 @@ class CastArmageddon : public BasicEvent
|
||||
bool Execute(uint64 /*execTime*/, uint32 /*diff*/)
|
||||
{
|
||||
_caster->CastSpell(_caster, SPELL_ARMAGEDDON_MISSILE, true);
|
||||
_caster->SetPosition(_caster->GetPositionX(), _caster->GetPositionY(), _caster->GetPositionZ()-20.0f, 0.0f);
|
||||
_caster->SetPosition(_caster->GetPositionX(), _caster->GetPositionY(), _caster->GetPositionZ() - 20.0f, 0.0f);
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
private:
|
||||
Creature* _caster;
|
||||
};
|
||||
|
||||
@@ -170,7 +170,7 @@ public:
|
||||
void ResetOrbs()
|
||||
{
|
||||
for (uint8 i = 0; i < 4; ++i)
|
||||
if (GameObject* orb = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1+i)))
|
||||
if (GameObject* orb = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1 + i)))
|
||||
orb->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
@@ -184,7 +184,7 @@ public:
|
||||
me->SummonCreature(NPC_HAND_OF_THE_DECEIVER, 1702.62f, 611.19f, 27.66f, 1.81f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000);
|
||||
me->SummonCreature(NPC_HAND_OF_THE_DECEIVER, 1684.099f, 618.848f, 27.67f, 0.589f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000);
|
||||
me->SummonCreature(NPC_HAND_OF_THE_DECEIVER, 1688.38f, 641.10f, 27.50f, 5.43f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000);
|
||||
me->SummonCreature(NPC_ANVEENA, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()+40.0f, 0.0f);
|
||||
me->SummonCreature(NPC_ANVEENA, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 40.0f, 0.0f);
|
||||
|
||||
me->CastSpell(me, SPELL_DESTROY_ALL_DRAKES, true);
|
||||
me->CastSpell(me, SPELL_ANVEENA_ENERGY_DRAIN, true);
|
||||
@@ -224,7 +224,7 @@ public:
|
||||
if (!summons.HasEntry(NPC_HAND_OF_THE_DECEIVER))
|
||||
{
|
||||
me->RemoveAurasDueToSpell(SPELL_ANVEENA_ENERGY_DRAIN);
|
||||
me->SummonCreature(NPC_KILJAEDEN, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()+1.5f, 4.3f, TEMPSUMMON_MANUAL_DESPAWN);
|
||||
me->SummonCreature(NPC_KILJAEDEN, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 1.5f, 4.3f, TEMPSUMMON_MANUAL_DESPAWN);
|
||||
me->SummonCreature(NPC_KALECGOS_KJ, 1726.80f, 661.43f, 138.65f, 3.95f, TEMPSUMMON_MANUAL_DESPAWN);
|
||||
}
|
||||
}
|
||||
@@ -373,7 +373,7 @@ public:
|
||||
summon->SetDisableGravity(true);
|
||||
summon->SetCanFly(true);
|
||||
summon->CastSpell(summon, SPELL_ARMAGEDDON_VISUAL, true);
|
||||
summon->SetPosition(summon->GetPositionX(), summon->GetPositionY(), summon->GetPositionZ()+20.0f, 0.0f);
|
||||
summon->SetPosition(summon->GetPositionX(), summon->GetPositionY(), summon->GetPositionZ() + 20.0f, 0.0f);
|
||||
summon->m_Events.AddEvent(new CastArmageddon(summon), summon->m_Events.CalculateTime(6000));
|
||||
summon->DespawnOrUnsummon(10000);
|
||||
}
|
||||
@@ -571,8 +571,8 @@ public:
|
||||
case EVENT_SUMMON_ORBS:
|
||||
for (uint8 i = 1; i < phase; ++i)
|
||||
{
|
||||
float x = me->GetPositionX() + 18.0f*cos((i*2.0f-1.0f)*M_PI/3.0f);
|
||||
float y = me->GetPositionY() + 18.0f*sin((i*2.0f-1.0f)*M_PI/3.0f);
|
||||
float x = me->GetPositionX() + 18.0f * cos((i * 2.0f - 1.0f) * M_PI / 3.0f);
|
||||
float y = me->GetPositionY() + 18.0f * sin((i * 2.0f - 1.0f) * M_PI / 3.0f);
|
||||
if (Creature* orb = me->SummonCreature(NPC_SHIELD_ORB, x, y, 40.0f, 0, TEMPSUMMON_CORPSE_DESPAWN))
|
||||
{
|
||||
Movement::PointsArray movementArray;
|
||||
@@ -581,8 +581,8 @@ public:
|
||||
// generate movement array
|
||||
for (uint8 j = 1; j < 20; ++j)
|
||||
{
|
||||
x = me->GetPositionX() + 18.0f*cos(((i*2.0f-1.0f)*M_PI/3.0f) + (j/20.0f*2*M_PI));
|
||||
y = me->GetPositionY() + 18.0f*sin(((i*2.0f-1.0f)*M_PI/3.0f) + (j/20.0f*2*M_PI));
|
||||
x = me->GetPositionX() + 18.0f * cos(((i * 2.0f - 1.0f) * M_PI / 3.0f) + (j / 20.0f * 2 * M_PI));
|
||||
y = me->GetPositionY() + 18.0f * sin(((i * 2.0f - 1.0f) * M_PI / 3.0f) + (j / 20.0f * 2 * M_PI));
|
||||
movementArray.push_back(G3D::Vector3(x, y, 40.0f));
|
||||
}
|
||||
|
||||
@@ -629,12 +629,12 @@ public:
|
||||
{
|
||||
for (uint8 i = 0; i < 4; ++i)
|
||||
{
|
||||
if (GameObject* orb = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1+i)))
|
||||
if (GameObject* orb = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1 + i)))
|
||||
{
|
||||
if (orb->HasFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE))
|
||||
{
|
||||
orb->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
if (Creature* trigger = me->SummonTrigger(orb->GetPositionX(), orb->GetPositionY(), orb->GetPositionZ(), 0, 10*MINUTE*IN_MILLISECONDS))
|
||||
if (Creature* trigger = me->SummonTrigger(orb->GetPositionX(), orb->GetPositionY(), orb->GetPositionZ(), 0, 10 * MINUTE * IN_MILLISECONDS))
|
||||
{
|
||||
trigger->CastSpell(trigger, SPELL_RING_OF_BLUE_FLAMES, true, nullptr, nullptr, trigger->GetGUID());
|
||||
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_KILJAEDEN_CONTROLLER)))
|
||||
@@ -717,7 +717,7 @@ enum postEvent
|
||||
|
||||
class MoveDelayed : public BasicEvent
|
||||
{
|
||||
public:
|
||||
public:
|
||||
MoveDelayed(Creature* owner, float x, float y, float z, float o) : _owner(owner), _x(x), _y(y), _z(z), _o(o)
|
||||
{
|
||||
}
|
||||
@@ -731,14 +731,14 @@ class MoveDelayed : public BasicEvent
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
private:
|
||||
Creature* _owner;
|
||||
float _x, _y, _z, _o;
|
||||
};
|
||||
|
||||
class FixOrientation : public BasicEvent
|
||||
{
|
||||
public:
|
||||
public:
|
||||
FixOrientation(Creature* owner) : _owner(owner)
|
||||
{
|
||||
}
|
||||
@@ -752,7 +752,7 @@ class FixOrientation : public BasicEvent
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
private:
|
||||
Creature* _owner;
|
||||
};
|
||||
|
||||
@@ -818,7 +818,7 @@ public:
|
||||
if (Creature* riftwaker = summon->FindNearestCreature(NPC_SHATTERED_SUN_RIFTWAKER, 10.0f))
|
||||
riftwaker->CastSpell(summon, SPELL_OPEN_PORTAL_FROM_SHATTRATH, false);
|
||||
summon->SetWalk(true);
|
||||
summon->GetMotionMaster()->MovePoint(0, summon->GetPositionX(), summon->GetPositionY(), summon->GetPositionZ()+30.0f, false, true);
|
||||
summon->GetMotionMaster()->MovePoint(0, summon->GetPositionX(), summon->GetPositionY(), summon->GetPositionZ() + 30.0f, false, true);
|
||||
}
|
||||
else if (summon->GetEntry() == NPC_INERT_PORTAL)
|
||||
summon->CastSpell(summon, SPELL_BOSS_ARCANE_PORTAL_STATE, true);
|
||||
@@ -846,21 +846,21 @@ public:
|
||||
{
|
||||
case EVENT_SCENE_01:
|
||||
Talk(SAY_KALECGOS_GOODBYE);
|
||||
events.ScheduleEvent(eventId+1, 15000);
|
||||
events.ScheduleEvent(eventId + 1, 15000);
|
||||
break;
|
||||
case EVENT_SCENE_02:
|
||||
me->SummonCreature(NPC_SHATTERED_SUN_RIFTWAKER, 1688.42f, 641.82f, 27.60f, 0.67f);
|
||||
me->SummonCreature(NPC_SHATTERED_SUN_RIFTWAKER, 1712.58f, 616.29f, 27.78f, 0.76f);
|
||||
events.ScheduleEvent(eventId+1, 6000);
|
||||
events.ScheduleEvent(eventId + 1, 6000);
|
||||
break;
|
||||
case EVENT_SCENE_03:
|
||||
me->SummonCreature(NPC_SHATTRATH_PORTAL_DUMMY, 1727.08f+cos(5.14f), 656.82f+sin(5.14f), 28.37f+2.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 10000);
|
||||
me->SummonCreature(NPC_SHATTRATH_PORTAL_DUMMY, 1738.84f+cos(2.0f), 627.32f+sin(2.0f), 28.26f+2.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 10000);
|
||||
events.ScheduleEvent(eventId+1, 11000);
|
||||
me->SummonCreature(NPC_SHATTRATH_PORTAL_DUMMY, 1727.08f + cos(5.14f), 656.82f + sin(5.14f), 28.37f + 2.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 10000);
|
||||
me->SummonCreature(NPC_SHATTRATH_PORTAL_DUMMY, 1738.84f + cos(2.0f), 627.32f + sin(2.0f), 28.26f + 2.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 10000);
|
||||
events.ScheduleEvent(eventId + 1, 11000);
|
||||
break;
|
||||
case EVENT_SCENE_04:
|
||||
me->SummonCreature(NPC_INERT_PORTAL, 1734.96f, 642.43f, 28.06f, 3.49f);
|
||||
events.ScheduleEvent(eventId+1, 4000);
|
||||
events.ScheduleEvent(eventId + 1, 4000);
|
||||
break;
|
||||
case EVENT_SCENE_05:
|
||||
if (Creature* first = me->SummonCreature(NPC_SHATTERED_SUN_SOLDIER, 1729.48f, 640.49f, 28.06f, 3.49f))
|
||||
@@ -868,10 +868,10 @@ public:
|
||||
first->m_Events.AddEvent(new MoveDelayed(first, 1718.70f, 607.78f, 28.06f, 2.323f), first->m_Events.CalculateTime(5000));
|
||||
first->m_Events.AddEvent(new FixOrientation(first), first->m_Events.CalculateTime(12000));
|
||||
for (uint8 i = 0; i < 9; ++i)
|
||||
if (Creature* follower = me->SummonCreature(NPC_SHATTERED_SUN_SOLDIER, 1729.48f+5*cos(i*2.0f*M_PI/9), 640.49f+5*sin(i*2.0f*M_PI/9), 28.06f, 3.49f))
|
||||
if (Creature* follower = me->SummonCreature(NPC_SHATTERED_SUN_SOLDIER, 1729.48f + 5 * cos(i * 2.0f * M_PI / 9), 640.49f + 5 * sin(i * 2.0f * M_PI / 9), 28.06f, 3.49f))
|
||||
follower->GetMotionMaster()->MoveFollow(first, 3.0f, follower->GetAngle(first));
|
||||
}
|
||||
events.ScheduleEvent(eventId+1, 10000);
|
||||
events.ScheduleEvent(eventId + 1, 10000);
|
||||
break;
|
||||
case EVENT_SCENE_06:
|
||||
if (Creature* first = me->SummonCreature(NPC_SHATTERED_SUN_SOLDIER, 1729.48f, 640.49f, 28.06f, 3.49f))
|
||||
@@ -879,36 +879,36 @@ public:
|
||||
first->m_Events.AddEvent(new MoveDelayed(first, 1678.69f, 649.27f, 28.06f, 5.46f), first->m_Events.CalculateTime(5000));
|
||||
first->m_Events.AddEvent(new FixOrientation(first), first->m_Events.CalculateTime(14500));
|
||||
for (uint8 i = 0; i < 9; ++i)
|
||||
if (Creature* follower = me->SummonCreature(NPC_SHATTERED_SUN_SOLDIER, 1729.48f+5*cos(i*2.0f*M_PI/9), 640.49f+5*sin(i*2.0f*M_PI/9), 28.06f, 3.49f))
|
||||
if (Creature* follower = me->SummonCreature(NPC_SHATTERED_SUN_SOLDIER, 1729.48f + 5 * cos(i * 2.0f * M_PI / 9), 640.49f + 5 * sin(i * 2.0f * M_PI / 9), 28.06f, 3.49f))
|
||||
follower->GetMotionMaster()->MoveFollow(first, 3.0f, follower->GetAngle(first));
|
||||
}
|
||||
events.ScheduleEvent(eventId+1, 12000);
|
||||
events.ScheduleEvent(eventId + 1, 12000);
|
||||
break;
|
||||
case EVENT_SCENE_07:
|
||||
me->SummonCreature(NPC_LADY_LIADRIN, 1719.87f, 644.265f, 28.06f, 3.83f);
|
||||
me->SummonCreature(NPC_PROPHET_VELEN, 1717.97f, 646.44f, 28.06f, 3.94f);
|
||||
events.ScheduleEvent(eventId+1, 7000);
|
||||
events.ScheduleEvent(eventId + 1, 7000);
|
||||
break;
|
||||
case EVENT_SCENE_08:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
velen->AI()->Talk(SAY_VELEN_01);
|
||||
events.ScheduleEvent(eventId+1, 25000);
|
||||
events.ScheduleEvent(eventId + 1, 25000);
|
||||
break;
|
||||
case EVENT_SCENE_09:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
velen->AI()->Talk(SAY_VELEN_02);
|
||||
events.ScheduleEvent(eventId+1, 14500);
|
||||
events.ScheduleEvent(eventId + 1, 14500);
|
||||
break;
|
||||
case EVENT_SCENE_10:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
velen->AI()->Talk(SAY_VELEN_03);
|
||||
events.ScheduleEvent(eventId+1, 12500);
|
||||
events.ScheduleEvent(eventId + 1, 12500);
|
||||
break;
|
||||
case EVENT_SCENE_11:
|
||||
me->SummonCreature(NPC_THE_CORE_OF_ENTROPIUS, 1698.86f, 628.73f, 92.83f, 0.0f);
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
velen->CastSpell(velen, SPELL_CALL_ENTROPIUS, false);
|
||||
events.ScheduleEvent(eventId+1, 8000);
|
||||
events.ScheduleEvent(eventId + 1, 8000);
|
||||
break;
|
||||
case EVENT_SCENE_12:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
@@ -916,32 +916,32 @@ public:
|
||||
velen->InterruptNonMeleeSpells(false);
|
||||
velen->AI()->Talk(SAY_VELEN_04);
|
||||
}
|
||||
events.ScheduleEvent(eventId+1, 20000);
|
||||
events.ScheduleEvent(eventId + 1, 20000);
|
||||
break;
|
||||
case EVENT_SCENE_13:
|
||||
if (Creature* liadrin = summons.GetCreatureWithEntry(NPC_LADY_LIADRIN))
|
||||
liadrin->GetMotionMaster()->MovePoint(0, 1711.28f, 637.29f, 27.29f);
|
||||
events.ScheduleEvent(eventId+1, 6000);
|
||||
events.ScheduleEvent(eventId + 1, 6000);
|
||||
break;
|
||||
case EVENT_SCENE_14:
|
||||
if (Creature* liadrin = summons.GetCreatureWithEntry(NPC_LADY_LIADRIN))
|
||||
liadrin->AI()->Talk(SAY_LIADRIN_01);
|
||||
events.ScheduleEvent(eventId+1, 10000);
|
||||
events.ScheduleEvent(eventId + 1, 10000);
|
||||
break;
|
||||
case EVENT_SCENE_15:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
velen->AI()->Talk(SAY_VELEN_05);
|
||||
events.ScheduleEvent(eventId+1, 14000);
|
||||
events.ScheduleEvent(eventId + 1, 14000);
|
||||
break;
|
||||
case EVENT_SCENE_16:
|
||||
if (Creature* liadrin = summons.GetCreatureWithEntry(NPC_LADY_LIADRIN))
|
||||
liadrin->AI()->Talk(SAY_LIADRIN_02);
|
||||
events.ScheduleEvent(eventId+1, 2000);
|
||||
events.ScheduleEvent(eventId + 1, 2000);
|
||||
break;
|
||||
case EVENT_SCENE_17:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
velen->AI()->Talk(SAY_VELEN_06);
|
||||
events.ScheduleEvent(eventId+1, 3000);
|
||||
events.ScheduleEvent(eventId + 1, 3000);
|
||||
break;
|
||||
case EVENT_SCENE_18:
|
||||
if (Creature* core = summons.GetCreatureWithEntry(NPC_THE_CORE_OF_ENTROPIUS))
|
||||
@@ -949,7 +949,7 @@ public:
|
||||
core->RemoveAllAuras();
|
||||
core->CastSpell(core, SPELL_BLAZE_TO_LIGHT, true);
|
||||
}
|
||||
events.ScheduleEvent(eventId+1, 8000);
|
||||
events.ScheduleEvent(eventId + 1, 8000);
|
||||
break;
|
||||
case EVENT_SCENE_19:
|
||||
if (Creature* core = summons.GetCreatureWithEntry(NPC_THE_CORE_OF_ENTROPIUS))
|
||||
@@ -957,34 +957,34 @@ public:
|
||||
core->SetObjectScale(0.75f);
|
||||
core->GetMotionMaster()->MovePoint(0, core->GetPositionX(), core->GetPositionY(), 28.0f);
|
||||
}
|
||||
events.ScheduleEvent(eventId+1, 2000);
|
||||
events.ScheduleEvent(eventId + 1, 2000);
|
||||
break;
|
||||
case EVENT_SCENE_20:
|
||||
if (Creature* core = summons.GetCreatureWithEntry(NPC_THE_CORE_OF_ENTROPIUS))
|
||||
core->CastSpell(core, SPELL_SUNWELL_IGNITION, true);
|
||||
events.ScheduleEvent(eventId+1, 3000);
|
||||
events.ScheduleEvent(eventId + 1, 3000);
|
||||
break;
|
||||
case EVENT_SCENE_21:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
velen->AI()->Talk(SAY_VELEN_07);
|
||||
events.ScheduleEvent(eventId+1, 15000);
|
||||
events.ScheduleEvent(eventId + 1, 15000);
|
||||
break;
|
||||
case EVENT_SCENE_22:
|
||||
if (Creature* liadrin = summons.GetCreatureWithEntry(NPC_LADY_LIADRIN))
|
||||
liadrin->AI()->Talk(SAY_LIADRIN_03);
|
||||
events.ScheduleEvent(eventId+1, 20000);
|
||||
events.ScheduleEvent(eventId + 1, 20000);
|
||||
break;
|
||||
case EVENT_SCENE_23:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
velen->AI()->Talk(SAY_VELEN_08);
|
||||
if (Creature* liadrin = summons.GetCreatureWithEntry(NPC_LADY_LIADRIN))
|
||||
liadrin->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
events.ScheduleEvent(eventId+1, 8000);
|
||||
events.ScheduleEvent(eventId + 1, 8000);
|
||||
break;
|
||||
case EVENT_SCENE_24:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
velen->AI()->Talk(SAY_VELEN_09);
|
||||
events.ScheduleEvent(eventId+1, 5000);
|
||||
events.ScheduleEvent(eventId + 1, 5000);
|
||||
break;
|
||||
case EVENT_SCENE_25:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
@@ -992,7 +992,7 @@ public:
|
||||
velen->GetMotionMaster()->MovePoint(0, 1739.38f, 643.79f, 28.06f);
|
||||
velen->DespawnOrUnsummon(5000);
|
||||
}
|
||||
events.ScheduleEvent(eventId+1, 3000);
|
||||
events.ScheduleEvent(eventId + 1, 3000);
|
||||
break;
|
||||
case EVENT_SCENE_26:
|
||||
for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
|
||||
@@ -1000,9 +1000,9 @@ public:
|
||||
if (summon->GetEntry() == NPC_SHATTERED_SUN_SOLDIER)
|
||||
{
|
||||
summon->GetMotionMaster()->MovePoint(0, 1739.38f, 643.79f, 28.06f);
|
||||
summon->DespawnOrUnsummon(summon->GetExactDist2d(1734.96f, 642.43f)*100);
|
||||
summon->DespawnOrUnsummon(summon->GetExactDist2d(1734.96f, 642.43f) * 100);
|
||||
}
|
||||
events.ScheduleEvent(eventId+1, 7000);
|
||||
events.ScheduleEvent(eventId + 1, 7000);
|
||||
break;
|
||||
case EVENT_SCENE_27:
|
||||
me->setActive(false);
|
||||
@@ -1016,7 +1016,7 @@ public:
|
||||
|
||||
class spell_kiljaeden_shadow_spike : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_kiljaeden_shadow_spike() : SpellScriptLoader("spell_kiljaeden_shadow_spike") { }
|
||||
|
||||
class spell_kiljaeden_shadow_spike_AuraScript : public AuraScript
|
||||
@@ -1044,7 +1044,7 @@ class spell_kiljaeden_shadow_spike : public SpellScriptLoader
|
||||
|
||||
class spell_kiljaeden_sinister_reflection : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_kiljaeden_sinister_reflection() : SpellScriptLoader("spell_kiljaeden_sinister_reflection") { }
|
||||
|
||||
class spell_kiljaeden_sinister_reflection_SpellScript : public SpellScript
|
||||
@@ -1081,7 +1081,7 @@ class spell_kiljaeden_sinister_reflection : public SpellScriptLoader
|
||||
|
||||
class spell_kiljaeden_sinister_reflection_clone : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_kiljaeden_sinister_reflection_clone() : SpellScriptLoader("spell_kiljaeden_sinister_reflection_clone") { }
|
||||
|
||||
class spell_kiljaeden_sinister_reflection_clone_SpellScript : public SpellScript
|
||||
@@ -1115,7 +1115,7 @@ class spell_kiljaeden_sinister_reflection_clone : public SpellScriptLoader
|
||||
|
||||
class spell_kiljaeden_flame_dart : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_kiljaeden_flame_dart() : SpellScriptLoader("spell_kiljaeden_flame_dart") { }
|
||||
|
||||
class spell_kiljaeden_flame_dart_SpellScript : public SpellScript
|
||||
@@ -1142,7 +1142,7 @@ class spell_kiljaeden_flame_dart : public SpellScriptLoader
|
||||
|
||||
class spell_kiljaeden_darkness : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_kiljaeden_darkness() : SpellScriptLoader("spell_kiljaeden_darkness") { }
|
||||
|
||||
class spell_kiljaeden_darkness_AuraScript : public AuraScript
|
||||
@@ -1171,7 +1171,7 @@ class spell_kiljaeden_darkness : public SpellScriptLoader
|
||||
|
||||
class spell_kiljaeden_power_of_the_blue_flight : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_kiljaeden_power_of_the_blue_flight() : SpellScriptLoader("spell_kiljaeden_power_of_the_blue_flight") { }
|
||||
|
||||
class spell_kiljaeden_power_of_the_blue_flight_SpellScript : public SpellScript
|
||||
@@ -1202,7 +1202,7 @@ class spell_kiljaeden_power_of_the_blue_flight : public SpellScriptLoader
|
||||
|
||||
class spell_kiljaeden_vengeance_of_the_blue_flight : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_kiljaeden_vengeance_of_the_blue_flight() : SpellScriptLoader("spell_kiljaeden_vengeance_of_the_blue_flight") { }
|
||||
|
||||
class spell_kiljaeden_vengeance_of_the_blue_flight_AuraScript : public AuraScript
|
||||
@@ -1236,7 +1236,7 @@ class spell_kiljaeden_vengeance_of_the_blue_flight : public SpellScriptLoader
|
||||
|
||||
class spell_kiljaeden_armageddon_periodic : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_kiljaeden_armageddon_periodic() : SpellScriptLoader("spell_kiljaeden_armageddon_periodic") { }
|
||||
|
||||
class spell_kiljaeden_armageddon_periodic_AuraScript : public AuraScript
|
||||
@@ -1264,7 +1264,7 @@ class spell_kiljaeden_armageddon_periodic : public SpellScriptLoader
|
||||
|
||||
class spell_kiljaeden_armageddon_missile : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_kiljaeden_armageddon_missile() : SpellScriptLoader("spell_kiljaeden_armageddon_missile") { }
|
||||
|
||||
class spell_kiljaeden_armageddon_missile_SpellScript : public SpellScript
|
||||
@@ -1291,7 +1291,7 @@ class spell_kiljaeden_armageddon_missile : public SpellScriptLoader
|
||||
|
||||
class spell_kiljaeden_dragon_breath : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_kiljaeden_dragon_breath() : SpellScriptLoader("spell_kiljaeden_dragon_breath") { }
|
||||
|
||||
class spell_kiljaeden_dragon_breath_SpellScript : public SpellScript
|
||||
|
||||
@@ -84,7 +84,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_SPELL_ENRAGE, 600000);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit*, uint32 &damage, DamageEffectType, SpellSchoolMask)
|
||||
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask)
|
||||
{
|
||||
if (damage >= me->GetHealth())
|
||||
{
|
||||
@@ -314,7 +314,7 @@ public:
|
||||
|
||||
class spell_muru_summon_blood_elves_periodic : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_muru_summon_blood_elves_periodic() : SpellScriptLoader("spell_muru_summon_blood_elves_periodic") { }
|
||||
|
||||
class spell_muru_summon_blood_elves_periodic_AuraScript : public AuraScript
|
||||
@@ -352,7 +352,7 @@ class spell_muru_summon_blood_elves_periodic : public SpellScriptLoader
|
||||
|
||||
class spell_muru_darkness : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_muru_darkness() : SpellScriptLoader("spell_muru_darkness") { }
|
||||
|
||||
class spell_muru_darkness_AuraScript : public AuraScript
|
||||
@@ -363,7 +363,7 @@ class spell_muru_darkness : public SpellScriptLoader
|
||||
{
|
||||
if (aurEff->GetTickNumber() == 3)
|
||||
for (uint8 i = 0; i < 8; ++i)
|
||||
GetUnitOwner()->CastSpell(GetUnitOwner(), SPELL_SUMMON_DARK_FIEND+i, true);
|
||||
GetUnitOwner()->CastSpell(GetUnitOwner(), SPELL_SUMMON_DARK_FIEND + i, true);
|
||||
}
|
||||
|
||||
void Register()
|
||||
@@ -380,7 +380,7 @@ class spell_muru_darkness : public SpellScriptLoader
|
||||
|
||||
class spell_entropius_negative_energy : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_entropius_negative_energy() : SpellScriptLoader("spell_entropius_negative_energy") { }
|
||||
|
||||
class spell_entropius_negative_energy_SpellScript : public SpellScript
|
||||
@@ -419,7 +419,7 @@ class spell_entropius_negative_energy : public SpellScriptLoader
|
||||
|
||||
class spell_entropius_void_zone_visual : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_entropius_void_zone_visual() : SpellScriptLoader("spell_entropius_void_zone_visual") { }
|
||||
|
||||
class spell_entropius_void_zone_visual_AuraScript : public AuraScript
|
||||
@@ -451,7 +451,7 @@ class spell_entropius_void_zone_visual : public SpellScriptLoader
|
||||
|
||||
class spell_entropius_black_hole_effect : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_entropius_black_hole_effect() : SpellScriptLoader("spell_entropius_black_hole_effect") { }
|
||||
|
||||
class spell_entropius_black_hole_effect_SpellScript : public SpellScript
|
||||
@@ -468,11 +468,11 @@ class spell_entropius_black_hole_effect : public SpellScriptLoader
|
||||
Position pos;
|
||||
if (target->GetDistance(GetCaster()) < 5.0f)
|
||||
{
|
||||
float o = frand(0, 2*M_PI);
|
||||
pos.Relocate(GetCaster()->GetPositionX() + 4.0f*cos(o), GetCaster()->GetPositionY() + 4.0f*sin(o), GetCaster()->GetPositionZ()+frand(10.0f, 15.0f));
|
||||
float o = frand(0, 2 * M_PI);
|
||||
pos.Relocate(GetCaster()->GetPositionX() + 4.0f * cos(o), GetCaster()->GetPositionY() + 4.0f * sin(o), GetCaster()->GetPositionZ() + frand(10.0f, 15.0f));
|
||||
}
|
||||
else
|
||||
pos.Relocate(GetCaster()->GetPositionX(), GetCaster()->GetPositionY(), GetCaster()->GetPositionZ()+1.0f);
|
||||
pos.Relocate(GetCaster()->GetPositionX(), GetCaster()->GetPositionY(), GetCaster()->GetPositionZ() + 1.0f);
|
||||
|
||||
float speedXY = float(GetSpellInfo()->Effects[effIndex].MiscValue) * 0.1f;
|
||||
float speedZ = target->GetDistance(pos) / speedXY * 0.5f * Movement::gravity;
|
||||
|
||||
@@ -20,7 +20,7 @@ DoorData const doorData[] =
|
||||
|
||||
class instance_sunwell_plateau : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
instance_sunwell_plateau() : InstanceMapScript("instance_sunwell_plateau", 580) { }
|
||||
|
||||
struct instance_sunwell_plateau_InstanceMapScript : public InstanceScript
|
||||
@@ -230,7 +230,7 @@ class instance_sunwell_plateau : public InstanceMapScript
|
||||
case DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_2:
|
||||
case DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_3:
|
||||
case DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_4:
|
||||
return blueFlightOrbGUID[id-DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1];
|
||||
return blueFlightOrbGUID[id - DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -316,7 +316,7 @@ enum cataclysmBreath
|
||||
|
||||
class spell_cataclysm_breath : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_cataclysm_breath() : SpellScriptLoader("spell_cataclysm_breath") { }
|
||||
|
||||
class spell_cataclysm_breath_SpellScript : public SpellScript
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
class instance_the_stockade : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
instance_the_stockade() : InstanceMapScript("instance_the_stockade", 34) { }
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const
|
||||
|
||||
@@ -21,7 +21,7 @@ enum Events
|
||||
|
||||
class instance_uldaman : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
instance_uldaman() : InstanceMapScript("instance_uldaman", 70) { }
|
||||
|
||||
struct instance_uldaman_InstanceMapScript : public InstanceScript
|
||||
@@ -133,7 +133,7 @@ class instance_uldaman : public InstanceMapScript
|
||||
|
||||
class spell_uldaman_sub_boss_agro_keepers : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_uldaman_sub_boss_agro_keepers() : SpellScriptLoader("spell_uldaman_sub_boss_agro_keepers") { }
|
||||
|
||||
class spell_uldaman_sub_boss_agro_keepers_SpellScript : public SpellScript
|
||||
@@ -160,7 +160,7 @@ class spell_uldaman_sub_boss_agro_keepers : public SpellScriptLoader
|
||||
|
||||
class spell_uldaman_stoned : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_uldaman_stoned() : SpellScriptLoader("spell_uldaman_stoned") { }
|
||||
|
||||
class spell_uldaman_stoned_AuraScript : public AuraScript
|
||||
@@ -176,14 +176,14 @@ class spell_uldaman_stoned : public SpellScriptLoader
|
||||
{
|
||||
Creature* target = GetUnitOwner()->ToCreature();
|
||||
target->SetReactState(REACT_PASSIVE);
|
||||
target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
}
|
||||
|
||||
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
Creature* target = GetUnitOwner()->ToCreature();
|
||||
target->SetReactState(REACT_AGGRESSIVE);
|
||||
target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
}
|
||||
|
||||
void Register()
|
||||
@@ -201,7 +201,7 @@ class spell_uldaman_stoned : public SpellScriptLoader
|
||||
|
||||
class spell_uldaman_boss_agro_archaedas : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_uldaman_boss_agro_archaedas() : SpellScriptLoader("spell_uldaman_boss_agro_archaedas") { }
|
||||
|
||||
class spell_uldaman_boss_agro_archaedas_SpellScript : public SpellScript
|
||||
|
||||
@@ -69,7 +69,7 @@ enum Events
|
||||
|
||||
class boss_akilzon : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
boss_akilzon() : CreatureScript("boss_akilzon") { }
|
||||
|
||||
struct boss_akilzonAI : public BossAI
|
||||
@@ -103,7 +103,7 @@ class boss_akilzon : public CreatureScript
|
||||
events.ScheduleEvent(EVENT_CALL_LIGHTNING, urand(10000, 20000)); // totaly random timer. can't find any info on this
|
||||
events.ScheduleEvent(EVENT_ELECTRICAL_STORM, 60000); // 60 seconds(bosskillers)
|
||||
events.ScheduleEvent(EVENT_RAIN, urand(47000, 52000));
|
||||
events.ScheduleEvent(EVENT_ENRAGE, 10*MINUTE*IN_MILLISECONDS); // 10 minutes till enrage(bosskillers)
|
||||
events.ScheduleEvent(EVENT_ENRAGE, 10 * MINUTE * IN_MILLISECONDS); // 10 minutes till enrage(bosskillers)
|
||||
|
||||
Talk(SAY_AGGRO);
|
||||
//DoZoneInCombat();
|
||||
@@ -132,7 +132,7 @@ class boss_akilzon : public CreatureScript
|
||||
if (!map->IsDungeon())
|
||||
return;
|
||||
|
||||
WorldPacket data(SMSG_WEATHER, (4+4+4));
|
||||
WorldPacket data(SMSG_WEATHER, (4 + 4 + 4));
|
||||
data << uint32(weather) << float(grade) << uint8(0);
|
||||
|
||||
map->SendToPlayers(&data);
|
||||
@@ -177,10 +177,10 @@ class boss_akilzon : public CreatureScript
|
||||
// visual
|
||||
float x, y, z;
|
||||
z = me->GetPositionZ();
|
||||
for (uint8 i = 0; i < 5+rand()%5; ++i)
|
||||
for (uint8 i = 0; i < 5 + rand() % 5; ++i)
|
||||
{
|
||||
x = 343.0f+rand()%60;
|
||||
y = 1380.0f+rand()%60;
|
||||
x = 343.0f + rand() % 60;
|
||||
y = 1380.0f + rand() % 60;
|
||||
if (Unit* trigger = me->SummonTrigger(x, y, z, 0, 2000))
|
||||
{
|
||||
trigger->setFaction(35);
|
||||
@@ -271,7 +271,7 @@ class boss_akilzon : public CreatureScript
|
||||
}
|
||||
*/
|
||||
|
||||
Unit* Cloud = me->SummonTrigger(x, y, me->GetPositionZ()+16, 0, 15000);
|
||||
Unit* Cloud = me->SummonTrigger(x, y, me->GetPositionZ() + 16, 0, 15000);
|
||||
if (Cloud)
|
||||
{
|
||||
CloudGUID = Cloud->GetGUID();
|
||||
@@ -369,7 +369,7 @@ class boss_akilzon : public CreatureScript
|
||||
|
||||
class npc_akilzon_eagle : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
npc_akilzon_eagle() : CreatureScript("npc_akilzon_eagle") { }
|
||||
|
||||
struct npc_akilzon_eagleAI : public ScriptedAI
|
||||
|
||||
@@ -55,7 +55,7 @@ enum Yells
|
||||
|
||||
class boss_halazzi : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
boss_halazzi() : CreatureScript("boss_halazzi") { }
|
||||
|
||||
struct boss_halazziAI : public ScriptedAI
|
||||
@@ -110,7 +110,7 @@ class boss_halazzi : public CreatureScript
|
||||
summons.Summon(summon);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit*, uint32 &damage, DamageEffectType, SpellSchoolMask)
|
||||
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask)
|
||||
{
|
||||
if (damage >= me->GetHealth() && Phase != PHASE_ENRAGE)
|
||||
damage = 0;
|
||||
@@ -189,7 +189,8 @@ class boss_halazzi : public CreatureScript
|
||||
Talk(SAY_BERSERK);
|
||||
DoCast(me, SPELL_BERSERK, true);
|
||||
BerserkTimer = 60000;
|
||||
} else BerserkTimer -= diff;
|
||||
}
|
||||
else BerserkTimer -= diff;
|
||||
|
||||
if (Phase == PHASE_LYNX || Phase == PHASE_ENRAGE)
|
||||
{
|
||||
@@ -200,13 +201,15 @@ class boss_halazzi : public CreatureScript
|
||||
DoCastVictim(SPELL_SABER_LASH, true);
|
||||
//me->RemoveAurasDueToSpell(41296);
|
||||
SaberlashTimer = 30000;
|
||||
} else SaberlashTimer -= diff;
|
||||
}
|
||||
else SaberlashTimer -= diff;
|
||||
|
||||
if (FrenzyTimer <= diff)
|
||||
{
|
||||
DoCast(me, SPELL_FRENZY);
|
||||
FrenzyTimer = urand(10000, 15000);
|
||||
} else FrenzyTimer -= diff;
|
||||
}
|
||||
else FrenzyTimer -= diff;
|
||||
|
||||
if (Phase == PHASE_LYNX)
|
||||
{
|
||||
@@ -215,7 +218,8 @@ class boss_halazzi : public CreatureScript
|
||||
if (HealthBelowPct(25 * (3 - TransformCount)))
|
||||
EnterPhase(PHASE_SPLIT);
|
||||
CheckTimer = 1000;
|
||||
} else CheckTimer -= diff;
|
||||
}
|
||||
else CheckTimer -= diff;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -225,7 +229,8 @@ class boss_halazzi : public CreatureScript
|
||||
{
|
||||
DoCast(me, SPELL_SUMMON_TOTEM);
|
||||
TotemTimer = 20000;
|
||||
} else TotemTimer -= diff;
|
||||
}
|
||||
else TotemTimer -= diff;
|
||||
|
||||
if (ShockTimer <= diff)
|
||||
{
|
||||
@@ -237,7 +242,8 @@ class boss_halazzi : public CreatureScript
|
||||
DoCast(target, SPELL_FLAMESHOCK);
|
||||
ShockTimer = urand(10000, 15000);
|
||||
}
|
||||
} else ShockTimer -= diff;
|
||||
}
|
||||
else ShockTimer -= diff;
|
||||
|
||||
if (Phase == PHASE_HUMAN)
|
||||
{
|
||||
@@ -252,7 +258,8 @@ class boss_halazzi : public CreatureScript
|
||||
EnterPhase(PHASE_MERGE);
|
||||
}
|
||||
CheckTimer = 1000;
|
||||
} else CheckTimer -= diff;
|
||||
}
|
||||
else CheckTimer -= diff;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -274,7 +281,8 @@ class boss_halazzi : public CreatureScript
|
||||
}
|
||||
}
|
||||
CheckTimer = 1000;
|
||||
} else CheckTimer -= diff;
|
||||
}
|
||||
else CheckTimer -= diff;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
@@ -304,7 +312,7 @@ class boss_halazzi : public CreatureScript
|
||||
// Spirits Lynx AI
|
||||
class npc_halazzi_lynx : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
npc_halazzi_lynx() : CreatureScript("npc_halazzi_lynx") { }
|
||||
|
||||
struct npc_halazzi_lynxAI : public ScriptedAI
|
||||
@@ -320,7 +328,7 @@ class npc_halazzi_lynx : public CreatureScript
|
||||
shredder_timer = 4000;
|
||||
}
|
||||
|
||||
void DamageTaken(Unit*, uint32 &damage, DamageEffectType, SpellSchoolMask)
|
||||
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask)
|
||||
{
|
||||
if (damage >= me->GetHealth())
|
||||
damage = 0;
|
||||
@@ -343,13 +351,15 @@ class npc_halazzi_lynx : public CreatureScript
|
||||
{
|
||||
DoCast(me, SPELL_LYNX_FRENZY);
|
||||
FrenzyTimer = urand(30000, 50000); //frenzy every 30-50 seconds
|
||||
} else FrenzyTimer -= diff;
|
||||
}
|
||||
else FrenzyTimer -= diff;
|
||||
|
||||
if (shredder_timer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_SHRED_ARMOR);
|
||||
shredder_timer = 4000;
|
||||
} else shredder_timer -= diff;
|
||||
}
|
||||
else shredder_timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
@@ -123,7 +123,7 @@ enum Spells
|
||||
|
||||
static float Pos_X[4] = {112.8827f, 107.8827f, 122.8827f, 127.8827f};
|
||||
|
||||
static uint32 AddEntryList[8]=
|
||||
static uint32 AddEntryList[8] =
|
||||
{
|
||||
24240, //Alyson Antille
|
||||
24241, //Thurg
|
||||
@@ -155,45 +155,55 @@ struct PlayerAbilityStruct
|
||||
static PlayerAbilityStruct PlayerAbility[][3] =
|
||||
{
|
||||
// 1 warrior
|
||||
{{SPELL_WR_SPELL_REFLECT, ABILITY_TARGET_SELF, 10000},
|
||||
{ {SPELL_WR_SPELL_REFLECT, ABILITY_TARGET_SELF, 10000},
|
||||
{SPELL_WR_WHIRLWIND, ABILITY_TARGET_SELF, 10000},
|
||||
{SPELL_WR_MORTAL_STRIKE, ABILITY_TARGET_VICTIM, 6000}},
|
||||
{SPELL_WR_MORTAL_STRIKE, ABILITY_TARGET_VICTIM, 6000}
|
||||
},
|
||||
// 2 paladin
|
||||
{{SPELL_PA_CONSECRATION, ABILITY_TARGET_SELF, 10000},
|
||||
{ {SPELL_PA_CONSECRATION, ABILITY_TARGET_SELF, 10000},
|
||||
{SPELL_PA_HOLY_LIGHT, ABILITY_TARGET_HEAL, 10000},
|
||||
{SPELL_PA_AVENGING_WRATH, ABILITY_TARGET_SELF, 10000}},
|
||||
{SPELL_PA_AVENGING_WRATH, ABILITY_TARGET_SELF, 10000}
|
||||
},
|
||||
// 3 hunter
|
||||
{{SPELL_HU_EXPLOSIVE_TRAP, ABILITY_TARGET_SELF, 10000},
|
||||
{ {SPELL_HU_EXPLOSIVE_TRAP, ABILITY_TARGET_SELF, 10000},
|
||||
{SPELL_HU_FREEZING_TRAP, ABILITY_TARGET_SELF, 10000},
|
||||
{SPELL_HU_SNAKE_TRAP, ABILITY_TARGET_SELF, 10000}},
|
||||
{SPELL_HU_SNAKE_TRAP, ABILITY_TARGET_SELF, 10000}
|
||||
},
|
||||
// 4 rogue
|
||||
{{SPELL_RO_WOUND_POISON, ABILITY_TARGET_VICTIM, 3000},
|
||||
{ {SPELL_RO_WOUND_POISON, ABILITY_TARGET_VICTIM, 3000},
|
||||
{SPELL_RO_SLICE_DICE, ABILITY_TARGET_SELF, 10000},
|
||||
{SPELL_RO_BLIND, ABILITY_TARGET_ENEMY, 10000}},
|
||||
{SPELL_RO_BLIND, ABILITY_TARGET_ENEMY, 10000}
|
||||
},
|
||||
// 5 priest
|
||||
{{SPELL_PR_PAIN_SUPP, ABILITY_TARGET_HEAL, 10000},
|
||||
{ {SPELL_PR_PAIN_SUPP, ABILITY_TARGET_HEAL, 10000},
|
||||
{SPELL_PR_HEAL, ABILITY_TARGET_HEAL, 10000},
|
||||
{SPELL_PR_PSYCHIC_SCREAM, ABILITY_TARGET_SELF, 10000}},
|
||||
{SPELL_PR_PSYCHIC_SCREAM, ABILITY_TARGET_SELF, 10000}
|
||||
},
|
||||
// 5* shadow priest
|
||||
{{SPELL_PR_MIND_CONTROL, ABILITY_TARGET_ENEMY, 15000},
|
||||
{ {SPELL_PR_MIND_CONTROL, ABILITY_TARGET_ENEMY, 15000},
|
||||
{SPELL_PR_MIND_BLAST, ABILITY_TARGET_ENEMY, 5000},
|
||||
{SPELL_PR_SW_DEATH, ABILITY_TARGET_ENEMY, 10000}},
|
||||
{SPELL_PR_SW_DEATH, ABILITY_TARGET_ENEMY, 10000}
|
||||
},
|
||||
// 7 shaman
|
||||
{{SPELL_SH_FIRE_NOVA, ABILITY_TARGET_SELF, 10000},
|
||||
{ {SPELL_SH_FIRE_NOVA, ABILITY_TARGET_SELF, 10000},
|
||||
{SPELL_SH_HEALING_WAVE, ABILITY_TARGET_HEAL, 10000},
|
||||
{SPELL_SH_CHAIN_LIGHT, ABILITY_TARGET_ENEMY, 8000}},
|
||||
{SPELL_SH_CHAIN_LIGHT, ABILITY_TARGET_ENEMY, 8000}
|
||||
},
|
||||
// 8 mage
|
||||
{{SPELL_MG_FIREBALL, ABILITY_TARGET_ENEMY, 5000},
|
||||
{ {SPELL_MG_FIREBALL, ABILITY_TARGET_ENEMY, 5000},
|
||||
{SPELL_MG_FROSTBOLT, ABILITY_TARGET_ENEMY, 5000},
|
||||
{SPELL_MG_ICE_LANCE, ABILITY_TARGET_SPECIAL, 2000}},
|
||||
{SPELL_MG_ICE_LANCE, ABILITY_TARGET_SPECIAL, 2000}
|
||||
},
|
||||
// 9 warlock
|
||||
{{SPELL_WL_CURSE_OF_DOOM, ABILITY_TARGET_ENEMY, 10000},
|
||||
{ {SPELL_WL_CURSE_OF_DOOM, ABILITY_TARGET_ENEMY, 10000},
|
||||
{SPELL_WL_RAIN_OF_FIRE, ABILITY_TARGET_ENEMY, 10000},
|
||||
{SPELL_WL_UNSTABLE_AFFL, ABILITY_TARGET_ENEMY, 10000}},
|
||||
{SPELL_WL_UNSTABLE_AFFL, ABILITY_TARGET_ENEMY, 10000}
|
||||
},
|
||||
// 11 druid
|
||||
{{SPELL_DR_LIFEBLOOM, ABILITY_TARGET_HEAL, 10000},
|
||||
{ {SPELL_DR_LIFEBLOOM, ABILITY_TARGET_HEAL, 10000},
|
||||
{SPELL_DR_THORNS, ABILITY_TARGET_SELF, 10000},
|
||||
{SPELL_DR_MOONFIRE, ABILITY_TARGET_ENEMY, 8000}}
|
||||
{SPELL_DR_MOONFIRE, ABILITY_TARGET_ENEMY, 8000}
|
||||
}
|
||||
};
|
||||
|
||||
struct boss_hexlord_addAI : public ScriptedAI
|
||||
@@ -226,7 +236,7 @@ struct boss_hexlord_addAI : public ScriptedAI
|
||||
|
||||
class boss_hexlord_malacrass : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
|
||||
boss_hexlord_malacrass()
|
||||
: CreatureScript("boss_hexlord_malacrass")
|
||||
@@ -331,7 +341,7 @@ class boss_hexlord_malacrass : public CreatureScript
|
||||
AddList.push_back(AddEntryList[i]);
|
||||
|
||||
while (AddList.size() > 4)
|
||||
AddList.erase(AddList.begin()+rand()%AddList.size());
|
||||
AddList.erase(AddList.begin() + rand() % AddList.size());
|
||||
|
||||
uint8 i = 0;
|
||||
for (std::vector<uint32>::const_iterator itr = AddList.begin(); itr != AddList.end(); ++itr, ++i)
|
||||
@@ -371,7 +381,8 @@ class boss_hexlord_malacrass : public CreatureScript
|
||||
return;
|
||||
}
|
||||
ResetTimer = 5000;
|
||||
} else ResetTimer -= diff;
|
||||
}
|
||||
else ResetTimer -= diff;
|
||||
|
||||
if (CheckAddState_Timer <= diff)
|
||||
{
|
||||
@@ -381,14 +392,16 @@ class boss_hexlord_malacrass : public CreatureScript
|
||||
temp->AI()->AttackStart(me->GetVictim());
|
||||
|
||||
CheckAddState_Timer = 5000;
|
||||
} else CheckAddState_Timer -= diff;
|
||||
}
|
||||
else CheckAddState_Timer -= diff;
|
||||
|
||||
if (DrainPower_Timer <= diff)
|
||||
{
|
||||
DoCast(me, SPELL_DRAIN_POWER, true);
|
||||
Talk(SAY_DRAIN_POWER);
|
||||
DrainPower_Timer = urand(40000, 55000); // must cast in 60 sec, or buff/debuff will disappear
|
||||
} else DrainPower_Timer -= diff;
|
||||
}
|
||||
else DrainPower_Timer -= diff;
|
||||
|
||||
if (SpiritBolts_Timer <= diff)
|
||||
{
|
||||
@@ -402,7 +415,8 @@ class boss_hexlord_malacrass : public CreatureScript
|
||||
SiphonSoul_Timer = 10000; // ready to drain
|
||||
PlayerAbility_Timer = 99999;
|
||||
}
|
||||
} else SpiritBolts_Timer -= diff;
|
||||
}
|
||||
else SpiritBolts_Timer -= diff;
|
||||
|
||||
if (SiphonSoul_Timer <= diff)
|
||||
{
|
||||
@@ -428,14 +442,15 @@ class boss_hexlord_malacrass : public CreatureScript
|
||||
PlayerAbility_Timer = urand(8000, 10000);
|
||||
PlayerClass = target->getClass() - 1;
|
||||
|
||||
if (PlayerClass == CLASS_DRUID-1)
|
||||
if (PlayerClass == CLASS_DRUID - 1)
|
||||
PlayerClass = CLASS_DRUID;
|
||||
else if (PlayerClass == CLASS_PRIEST-1 && target->HasSpell(15473))
|
||||
else if (PlayerClass == CLASS_PRIEST - 1 && target->HasSpell(15473))
|
||||
PlayerClass = CLASS_PRIEST; // shadow priest
|
||||
|
||||
SiphonSoul_Timer = 99999; // buff lasts 30 sec
|
||||
}
|
||||
} else SiphonSoul_Timer -= diff;
|
||||
}
|
||||
else SiphonSoul_Timer -= diff;
|
||||
|
||||
if (PlayerAbility_Timer <= diff)
|
||||
{
|
||||
@@ -445,7 +460,8 @@ class boss_hexlord_malacrass : public CreatureScript
|
||||
UseAbility();
|
||||
PlayerAbility_Timer = urand(8000, 10000);
|
||||
//}
|
||||
} else PlayerAbility_Timer -= diff;
|
||||
}
|
||||
else PlayerAbility_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
@@ -490,7 +506,7 @@ class boss_hexlord_malacrass : public CreatureScript
|
||||
|
||||
class boss_thurg : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
|
||||
boss_thurg()
|
||||
: CreatureScript("boss_thurg")
|
||||
@@ -527,13 +543,15 @@ class boss_thurg : public CreatureScript
|
||||
DoCast(target, SPELL_BLOODLUST, false);
|
||||
}
|
||||
bloodlust_timer = 12000;
|
||||
} else bloodlust_timer -= diff;
|
||||
}
|
||||
else bloodlust_timer -= diff;
|
||||
|
||||
if (cleave_timer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_CLEAVE, false);
|
||||
cleave_timer = 12000; //3 sec cast
|
||||
} else cleave_timer -= diff;
|
||||
}
|
||||
else cleave_timer -= diff;
|
||||
|
||||
boss_hexlord_addAI::UpdateAI(diff);
|
||||
}
|
||||
@@ -547,7 +565,7 @@ class boss_thurg : public CreatureScript
|
||||
|
||||
class boss_alyson_antille : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
|
||||
boss_alyson_antille()
|
||||
: CreatureScript("boss_alyson_antille")
|
||||
@@ -616,7 +634,8 @@ class boss_alyson_antille : public CreatureScript
|
||||
DoCast(target, SPELL_DISPEL_MAGIC, false);
|
||||
}
|
||||
flashheal_timer = 2500;
|
||||
} else flashheal_timer -= diff;
|
||||
}
|
||||
else flashheal_timer -= diff;
|
||||
|
||||
/*if (dispelmagic_timer <= diff)
|
||||
{
|
||||
@@ -678,7 +697,8 @@ struct boss_gazakrothAI : public boss_hexlord_addAI
|
||||
{
|
||||
DoCastVictim(SPELL_FIREBOLT, false);
|
||||
firebolt_timer = 700;
|
||||
} else firebolt_timer -= diff;
|
||||
}
|
||||
else firebolt_timer -= diff;
|
||||
|
||||
boss_hexlord_addAI::UpdateAI(diff);
|
||||
}
|
||||
@@ -686,7 +706,7 @@ struct boss_gazakrothAI : public boss_hexlord_addAI
|
||||
|
||||
class boss_lord_raadan : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
|
||||
boss_lord_raadan()
|
||||
: CreatureScript("boss_lord_raadan")
|
||||
@@ -717,13 +737,15 @@ class boss_lord_raadan : public CreatureScript
|
||||
{
|
||||
DoCastVictim(SPELL_THUNDERCLAP, false);
|
||||
thunderclap_timer = 12000;
|
||||
} else thunderclap_timer -= diff;
|
||||
}
|
||||
else thunderclap_timer -= diff;
|
||||
|
||||
if (flamebreath_timer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_FLAME_BREATH, false);
|
||||
flamebreath_timer = 12000;
|
||||
} else flamebreath_timer -= diff;
|
||||
}
|
||||
else flamebreath_timer -= diff;
|
||||
|
||||
boss_hexlord_addAI::UpdateAI(diff);
|
||||
}
|
||||
@@ -737,7 +759,7 @@ class boss_lord_raadan : public CreatureScript
|
||||
|
||||
class boss_darkheart : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
|
||||
boss_darkheart()
|
||||
: CreatureScript("boss_darkheart")
|
||||
@@ -764,7 +786,8 @@ class boss_darkheart : public CreatureScript
|
||||
{
|
||||
DoCastVictim(SPELL_PSYCHIC_WAIL, false);
|
||||
psychicwail_timer = 12000;
|
||||
} else psychicwail_timer -= diff;
|
||||
}
|
||||
else psychicwail_timer -= diff;
|
||||
|
||||
boss_hexlord_addAI::UpdateAI(diff);
|
||||
}
|
||||
@@ -779,7 +802,7 @@ class boss_darkheart : public CreatureScript
|
||||
|
||||
class boss_slither : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
|
||||
boss_slither()
|
||||
: CreatureScript("boss_slither")
|
||||
@@ -823,7 +846,8 @@ class boss_slither : public CreatureScript
|
||||
if (Unit* victim = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(victim, SPELL_VENOM_SPIT, false);
|
||||
venomspit_timer = 2500;
|
||||
} else venomspit_timer -= diff;
|
||||
}
|
||||
else venomspit_timer -= diff;
|
||||
|
||||
boss_hexlord_addAI::UpdateAI(diff);
|
||||
}
|
||||
@@ -837,7 +861,7 @@ class boss_slither : public CreatureScript
|
||||
|
||||
class boss_fenstalker : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
|
||||
boss_fenstalker()
|
||||
: CreatureScript("boss_fenstalker")
|
||||
@@ -866,7 +890,8 @@ class boss_fenstalker : public CreatureScript
|
||||
// core bug
|
||||
me->GetVictim()->CastSpell(me->GetVictim(), SPELL_VOLATILE_INFECTION, false);
|
||||
volatileinf_timer = 12000;
|
||||
} else volatileinf_timer -= diff;
|
||||
}
|
||||
else volatileinf_timer -= diff;
|
||||
|
||||
boss_hexlord_addAI::UpdateAI(diff);
|
||||
}
|
||||
@@ -880,7 +905,7 @@ class boss_fenstalker : public CreatureScript
|
||||
|
||||
class boss_koragg : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
|
||||
boss_koragg()
|
||||
: CreatureScript("boss_koragg")
|
||||
@@ -930,7 +955,7 @@ class boss_koragg : public CreatureScript
|
||||
|
||||
class spell_hexlord_unstable_affliction : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
public:
|
||||
spell_hexlord_unstable_affliction() : SpellScriptLoader("spell_hexlord_unstable_affliction") { }
|
||||
|
||||
class spell_hexlord_unstable_affliction_AuraScript : public AuraScript
|
||||
|
||||
@@ -74,9 +74,9 @@ float JanalainPos[1][3] =
|
||||
float FireWallCoords[4][4] =
|
||||
{
|
||||
{-10.13f, 1149.27f, 19, 3.1415f},
|
||||
{-33.93f, 1123.90f, 19, 0.5f*3.1415f},
|
||||
{-33.93f, 1123.90f, 19, 0.5f * 3.1415f},
|
||||
{-54.80f, 1150.08f, 19, 0},
|
||||
{-33.93f, 1175.68f, 19, 1.5f*3.1415f}
|
||||
{-33.93f, 1175.68f, 19, 1.5f * 3.1415f}
|
||||
};
|
||||
|
||||
float hatcherway[2][5][3] =
|
||||
@@ -98,7 +98,7 @@ float hatcherway[2][5][3] =
|
||||
};
|
||||
class boss_janalai : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
|
||||
boss_janalai()
|
||||
: CreatureScript("boss_janalai")
|
||||
@@ -138,10 +138,10 @@ class boss_janalai : public CreatureScript
|
||||
BombSequenceTimer = 1000;
|
||||
BombCount = 0;
|
||||
HatcherTimer = 10000;
|
||||
EnrageTimer = MINUTE*5*IN_MILLISECONDS;
|
||||
EnrageTimer = MINUTE * 5 * IN_MILLISECONDS;
|
||||
|
||||
noeggs = false;
|
||||
isBombing =false;
|
||||
isBombing = false;
|
||||
enraged = false;
|
||||
|
||||
isFlameBreathing = false;
|
||||
@@ -172,11 +172,11 @@ class boss_janalai : public CreatureScript
|
||||
// DoZoneInCombat();
|
||||
}
|
||||
|
||||
void DamageDealt(Unit* target, uint32 &damage, DamageEffectType /*damagetype*/)
|
||||
void DamageDealt(Unit* target, uint32& damage, DamageEffectType /*damagetype*/)
|
||||
{
|
||||
if (isFlameBreathing)
|
||||
{
|
||||
if (!me->HasInArc(M_PI/6, target))
|
||||
if (!me->HasInArc(M_PI / 6, target))
|
||||
damage = 0;
|
||||
}
|
||||
}
|
||||
@@ -195,9 +195,9 @@ class boss_janalai : public CreatureScript
|
||||
for (uint8 j = 0; j < WallNum; j++)
|
||||
{
|
||||
if (WallNum == 3)
|
||||
wall = me->SummonCreature(NPC_FIRE_BOMB, FireWallCoords[i][0], FireWallCoords[i][1]+5*(j-1), FireWallCoords[i][2], FireWallCoords[i][3], TEMPSUMMON_TIMED_DESPAWN, 15000);
|
||||
wall = me->SummonCreature(NPC_FIRE_BOMB, FireWallCoords[i][0], FireWallCoords[i][1] + 5 * (j - 1), FireWallCoords[i][2], FireWallCoords[i][3], TEMPSUMMON_TIMED_DESPAWN, 15000);
|
||||
else
|
||||
wall = me->SummonCreature(NPC_FIRE_BOMB, FireWallCoords[i][0]-2+4*j, FireWallCoords[i][1], FireWallCoords[i][2], FireWallCoords[i][3], TEMPSUMMON_TIMED_DESPAWN, 15000);
|
||||
wall = me->SummonCreature(NPC_FIRE_BOMB, FireWallCoords[i][0] - 2 + 4 * j, FireWallCoords[i][1], FireWallCoords[i][2], FireWallCoords[i][3], TEMPSUMMON_TIMED_DESPAWN, 15000);
|
||||
if (wall) wall->CastSpell(wall, SPELL_FIRE_WALL, true);
|
||||
}
|
||||
}
|
||||
@@ -208,8 +208,8 @@ class boss_janalai : public CreatureScript
|
||||
float dx, dy;
|
||||
for (int i(0); i < 40; ++i)
|
||||
{
|
||||
dx = float(irand(-area_dx/2, area_dx/2));
|
||||
dy = float(irand(-area_dy/2, area_dy/2));
|
||||
dx = float(irand(-area_dx / 2, area_dx / 2));
|
||||
dy = float(irand(-area_dy / 2, area_dy / 2));
|
||||
|
||||
Creature* bomb = DoSpawnCreature(NPC_FIRE_BOMB, dx, dy, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 15000);
|
||||
if (bomb)
|
||||
@@ -245,7 +245,7 @@ class boss_janalai : public CreatureScript
|
||||
{
|
||||
if (action == 1)
|
||||
(*i)->SetDisplayId(10056);
|
||||
else if (action == 2 &&(*i)->GetDisplayId() != 11686)
|
||||
else if (action == 2 && (*i)->GetDisplayId() != 11686)
|
||||
(*i)->CastSpell(*i, SPELL_HATCH_EGG, false);
|
||||
}
|
||||
return true;
|
||||
@@ -290,7 +290,8 @@ class boss_janalai : public CreatureScript
|
||||
if (BombCount == 40)
|
||||
{
|
||||
BombSequenceTimer = 5000;
|
||||
} else BombSequenceTimer = 100;
|
||||
}
|
||||
else BombSequenceTimer = 100;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -345,7 +346,8 @@ class boss_janalai : public CreatureScript
|
||||
DoCast(me, SPELL_BERSERK, true);
|
||||
EnrageTimer = 300000;
|
||||
}
|
||||
} else EnrageTimer -= diff;
|
||||
}
|
||||
else EnrageTimer -= diff;
|
||||
|
||||
if (BombTimer <= diff)
|
||||
{
|
||||
@@ -369,14 +371,15 @@ class boss_janalai : public CreatureScript
|
||||
if (!map->IsDungeon())
|
||||
return;
|
||||
|
||||
Map::PlayerList const &PlayerList = map->GetPlayers();
|
||||
Map::PlayerList const& PlayerList = map->GetPlayers();
|
||||
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
|
||||
if (Player* i_pl = i->GetSource())
|
||||
if (i_pl->IsAlive())
|
||||
DoTeleportPlayer(i_pl, JanalainPos[0][0]-5+rand()%10, JanalainPos[0][1]-5+rand()%10, JanalainPos[0][2], 0);
|
||||
DoTeleportPlayer(i_pl, JanalainPos[0][0] - 5 + rand() % 10, JanalainPos[0][1] - 5 + rand() % 10, JanalainPos[0][2], 0);
|
||||
//DoCast(Temp, SPELL_SUMMON_PLAYERS, true) // core bug, spell does not work if too far
|
||||
return;
|
||||
} else BombTimer -= diff;
|
||||
}
|
||||
else BombTimer -= diff;
|
||||
|
||||
if (!noeggs)
|
||||
{
|
||||
@@ -403,7 +406,8 @@ class boss_janalai : public CreatureScript
|
||||
}
|
||||
else
|
||||
noeggs = true;
|
||||
} else HatcherTimer -= diff;
|
||||
}
|
||||
else HatcherTimer -= diff;
|
||||
}
|
||||
|
||||
EnterEvadeIfOutOfCombatArea();
|
||||
@@ -421,7 +425,8 @@ class boss_janalai : public CreatureScript
|
||||
isFlameBreathing = true;
|
||||
}
|
||||
FireBreathTimer = 8000;
|
||||
} else FireBreathTimer -= diff;
|
||||
}
|
||||
else FireBreathTimer -= diff;
|
||||
}
|
||||
|
||||
bool CheckEvadeIfOutOfCombatArea() const
|
||||
@@ -438,7 +443,7 @@ class boss_janalai : public CreatureScript
|
||||
|
||||
class npc_janalai_firebomb : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
|
||||
npc_janalai_firebomb()
|
||||
: CreatureScript("npc_janalai_firebomb")
|
||||
@@ -447,7 +452,7 @@ class npc_janalai_firebomb : public CreatureScript
|
||||
|
||||
struct npc_janalai_firebombAI : public ScriptedAI
|
||||
{
|
||||
npc_janalai_firebombAI(Creature* creature) : ScriptedAI(creature){ }
|
||||
npc_janalai_firebombAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
void Reset() { }
|
||||
|
||||
@@ -475,7 +480,7 @@ class npc_janalai_firebomb : public CreatureScript
|
||||
|
||||
class npc_janalai_hatcher : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
|
||||
npc_janalai_hatcher()
|
||||
: CreatureScript("npc_janalai_hatcher")
|
||||
@@ -502,7 +507,7 @@ class npc_janalai_hatcher : public CreatureScript
|
||||
void Reset()
|
||||
{
|
||||
me->SetWalk(true);
|
||||
side =(me->GetPositionY() < 1150);
|
||||
side = (me->GetPositionY() < 1150);
|
||||
waypoint = 0;
|
||||
isHatching = false;
|
||||
hasChangedSide = false;
|
||||
@@ -595,7 +600,8 @@ class npc_janalai_hatcher : public CreatureScript
|
||||
else
|
||||
me->DisappearAndDie();
|
||||
|
||||
} else WaitTimer -= diff;
|
||||
}
|
||||
else WaitTimer -= diff;
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -608,7 +614,7 @@ class npc_janalai_hatcher : public CreatureScript
|
||||
|
||||
class npc_janalai_hatchling : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
|
||||
npc_janalai_hatchling()
|
||||
: CreatureScript("npc_janalai_hatchling")
|
||||
@@ -629,9 +635,9 @@ class npc_janalai_hatchling : public CreatureScript
|
||||
{
|
||||
BuffetTimer = 7000;
|
||||
if (me->GetPositionY() > 1150)
|
||||
me->GetMotionMaster()->MovePoint(0, hatcherway[0][3][0]+rand()%4-2, 1150.0f+rand()%4-2, hatcherway[0][3][2]);
|
||||
me->GetMotionMaster()->MovePoint(0, hatcherway[0][3][0] + rand() % 4 - 2, 1150.0f + rand() % 4 - 2, hatcherway[0][3][2]);
|
||||
else
|
||||
me->GetMotionMaster()->MovePoint(0, hatcherway[1][3][0]+rand()%4-2, 1150.0f+rand()%4-2, hatcherway[1][3][2]);
|
||||
me->GetMotionMaster()->MovePoint(0, hatcherway[1][3][0] + rand() % 4 - 2, 1150.0f + rand() % 4 - 2, hatcherway[1][3][2]);
|
||||
|
||||
me->SetDisableGravity(true);
|
||||
}
|
||||
@@ -653,7 +659,8 @@ class npc_janalai_hatchling : public CreatureScript
|
||||
{
|
||||
DoCastVictim(SPELL_FLAMEBUFFET, false);
|
||||
BuffetTimer = 10000;
|
||||
} else BuffetTimer -= diff;
|
||||
}
|
||||
else BuffetTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
@@ -677,7 +684,7 @@ public:
|
||||
|
||||
struct npc_janalai_eggAI : public ScriptedAI
|
||||
{
|
||||
npc_janalai_eggAI(Creature* creature) : ScriptedAI(creature){ }
|
||||
npc_janalai_eggAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
void Reset() { }
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU GPL v2 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-GPL2
|
||||
* Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/>
|
||||
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
||||
*/
|
||||
/*
|
||||
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU GPL v2 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-GPL2
|
||||
* Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/>
|
||||
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_Nalorakk
|
||||
@@ -69,7 +69,7 @@ enum Talks
|
||||
|
||||
class boss_nalorakk : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
|
||||
boss_nalorakk()
|
||||
: CreatureScript("boss_nalorakk")
|
||||
@@ -319,7 +319,7 @@ class boss_nalorakk : public CreatureScript
|
||||
switch (MovePhase)
|
||||
{
|
||||
case 2:
|
||||
me->SetOrientation(3.1415f*2);
|
||||
me->SetOrientation(3.1415f * 2);
|
||||
inMove = false;
|
||||
return;
|
||||
case 1:
|
||||
@@ -331,11 +331,11 @@ class boss_nalorakk : public CreatureScript
|
||||
inMove = true;
|
||||
return;
|
||||
case 5:
|
||||
me->SetOrientation(3.1415f*0.5f);
|
||||
me->SetOrientation(3.1415f * 0.5f);
|
||||
inMove = false;
|
||||
return;
|
||||
case 7:
|
||||
me->SetOrientation(3.1415f*0.5f);
|
||||
me->SetOrientation(3.1415f * 0.5f);
|
||||
inMove = false;
|
||||
return;
|
||||
}
|
||||
@@ -352,7 +352,8 @@ class boss_nalorakk : public CreatureScript
|
||||
(*me).GetMotionMaster()->MovementExpired();
|
||||
(*me).GetMotionMaster()->MovePoint(MovePhase, NalorakkWay[MovePhase][0], NalorakkWay[MovePhase][1], NalorakkWay[MovePhase][2]);
|
||||
waitTimer = 0;
|
||||
} else waitTimer -= diff;
|
||||
}
|
||||
else waitTimer -= diff;
|
||||
}
|
||||
|
||||
if (!UpdateVictim())
|
||||
@@ -363,7 +364,8 @@ class boss_nalorakk : public CreatureScript
|
||||
DoCast(me, SPELL_BERSERK, true);
|
||||
Talk(SAY_BERSERK);
|
||||
Berserk_Timer = 600000;
|
||||
} else Berserk_Timer -= diff;
|
||||
}
|
||||
else Berserk_Timer -= diff;
|
||||
|
||||
if (ShapeShift_Timer <= diff)
|
||||
{
|
||||
@@ -389,7 +391,8 @@ class boss_nalorakk : public CreatureScript
|
||||
ShapeShift_Timer = urand(20000, 25000); // dur 30s
|
||||
inBearForm = true;
|
||||
}
|
||||
} else ShapeShift_Timer -= diff;
|
||||
}
|
||||
else ShapeShift_Timer -= diff;
|
||||
|
||||
if (!inBearForm)
|
||||
{
|
||||
@@ -397,7 +400,8 @@ class boss_nalorakk : public CreatureScript
|
||||
{
|
||||
DoCastVictim(SPELL_BRUTALSWIPE);
|
||||
BrutalSwipe_Timer = urand(7000, 12000);
|
||||
} else BrutalSwipe_Timer -= diff;
|
||||
}
|
||||
else BrutalSwipe_Timer -= diff;
|
||||
|
||||
if (Mangle_Timer <= diff)
|
||||
{
|
||||
@@ -407,7 +411,8 @@ class boss_nalorakk : public CreatureScript
|
||||
Mangle_Timer = 1000;
|
||||
}
|
||||
else Mangle_Timer = urand(10000, 15000);
|
||||
} else Mangle_Timer -= diff;
|
||||
}
|
||||
else Mangle_Timer -= diff;
|
||||
|
||||
if (Surge_Timer <= diff)
|
||||
{
|
||||
@@ -416,7 +421,8 @@ class boss_nalorakk : public CreatureScript
|
||||
if (target)
|
||||
DoCast(target, SPELL_SURGE);
|
||||
Surge_Timer = urand(15000, 20000);
|
||||
} else Surge_Timer -= diff;
|
||||
}
|
||||
else Surge_Timer -= diff;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -424,19 +430,22 @@ class boss_nalorakk : public CreatureScript
|
||||
{
|
||||
DoCastVictim(SPELL_LACERATINGSLASH);
|
||||
LaceratingSlash_Timer = urand(18000, 23000);
|
||||
} else LaceratingSlash_Timer -= diff;
|
||||
}
|
||||
else LaceratingSlash_Timer -= diff;
|
||||
|
||||
if (RendFlesh_Timer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_RENDFLESH);
|
||||
RendFlesh_Timer = urand(5000, 10000);
|
||||
} else RendFlesh_Timer -= diff;
|
||||
}
|
||||
else RendFlesh_Timer -= diff;
|
||||
|
||||
if (DeafeningRoar_Timer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_DEAFENINGROAR);
|
||||
DeafeningRoar_Timer = urand(15000, 20000);
|
||||
} else DeafeningRoar_Timer -= diff;
|
||||
}
|
||||
else DeafeningRoar_Timer -= diff;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user