branchmerge - urgh!
--HG-- branch : trunk
This commit is contained in:
@@ -5005,7 +5005,7 @@ INSERT INTO `spell_bonus_data` (`entry`,`direct_bonus`,`dot_bonus`,`ap_bonus`,`a
|
|||||||
(42231, 0.12898, -1, -1, -1, 'Druid - Hurricane Triggered'),
|
(42231, 0.12898, -1, -1, -1, 'Druid - Hurricane Triggered'),
|
||||||
(5570, -1, 0.2, -1, -1, 'Druid - Insect Swarm'),
|
(5570, -1, 0.2, -1, -1, 'Druid - Insect Swarm'),
|
||||||
(33745, -1, -1, -1, 0.01, 'Druid - Lacerate($AP*0.05 / number of ticks)'),
|
(33745, -1, -1, -1, 0.01, 'Druid - Lacerate($AP*0.05 / number of ticks)'),
|
||||||
(33778, 0.516, 0, 0, 0, 'Druid - Lifebloom final heal'),
|
(33778, 0.589714, 0, 0, 0, 'Druid - Lifebloom final heal'),
|
||||||
(33763, 0, 0.09518, 0, 0, 'Druid - Lifebloom HoT(rank 1)'),
|
(33763, 0, 0.09518, 0, 0, 'Druid - Lifebloom HoT(rank 1)'),
|
||||||
(48450, 0, 0.09518, 0, 0, 'Druid - Lifebloom HoT(rank 2)'),
|
(48450, 0, 0.09518, 0, 0, 'Druid - Lifebloom HoT(rank 2)'),
|
||||||
(48451, 0, 0.09518, 0, 0, 'Druid - Lifebloom HoT(rank 3)'),
|
(48451, 0, 0.09518, 0, 0, 'Druid - Lifebloom HoT(rank 3)'),
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
DELETE FROM `spell_bonus_data` WHERE `entry`=33778;
|
||||||
|
INSERT INTO `spell_bonus_data` (`entry`,`direct_bonus`,`dot_bonus`,`ap_bonus`,`ap_dot_bonus`,`comments`) VALUES
|
||||||
|
(33778,0.589714,0,0,0, 'Druid - Lifebloom final heal');
|
||||||
@@ -830,8 +830,11 @@ void BattleGroundSA::UpdateDemolisherSpawns()
|
|||||||
{
|
{
|
||||||
uint8 gy = (i >= BG_SA_DEMOLISHER_3 ? 3 : 2);
|
uint8 gy = (i >= BG_SA_DEMOLISHER_3 ? 3 : 2);
|
||||||
if (GraveyardStatus[gy] == attackers)
|
if (GraveyardStatus[gy] == attackers)
|
||||||
Demolisher->Relocate(BG_SA_NpcSpawnlocs[i + 11][0], BG_SA_NpcSpawnlocs[i + 10][1],
|
Demolisher->Relocate(BG_SA_NpcSpawnlocs[i + 11][0], BG_SA_NpcSpawnlocs[i + 11][1],
|
||||||
BG_SA_NpcSpawnlocs[i + 10][2], BG_SA_NpcSpawnlocs[i + 10][3]);
|
BG_SA_NpcSpawnlocs[i + 11][2], BG_SA_NpcSpawnlocs[i + 11][3]);
|
||||||
|
else
|
||||||
|
Demolisher->Relocate(BG_SA_NpcSpawnlocs[i][0], BG_SA_NpcSpawnlocs[i][1],
|
||||||
|
BG_SA_NpcSpawnlocs[i][2], BG_SA_NpcSpawnlocs[i][3]);
|
||||||
|
|
||||||
Demolisher->Respawn();
|
Demolisher->Respawn();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13918,7 +13918,7 @@ void Player::SendPreparedQuest(uint64 guid)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pQuest->HasFlag(QUEST_TRINITY_FLAGS_AUTO_ACCEPT) && CanAddQuest(pQuest, true))
|
if (pQuest->IsAutoAccept() && CanAddQuest(pQuest, true))
|
||||||
{
|
{
|
||||||
AddQuest(pQuest, pObject);
|
AddQuest(pQuest, pObject);
|
||||||
if (CanCompleteQuest(quest_id))
|
if (CanCompleteQuest(quest_id))
|
||||||
|
|||||||
@@ -4735,12 +4735,18 @@ void ObjectMgr::LoadScripts(ScriptMapMap& scripts, char const* tablename)
|
|||||||
tablename,tmp.datalong2,tmp.id);
|
tablename,tmp.datalong2,tmp.id);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (tmp.dataint & ~0x1) // 1 bit (0,1)
|
if (tmp.datalong2 != 4 && tmp.dataint & ~0x1) // 1 bit (0,1)
|
||||||
{
|
{
|
||||||
sLog.outErrorDb("Table `%s` using unknown flags in dataint (%u) in SCRIPT_COMMAND_CAST_SPELL for script id %u",
|
sLog.outErrorDb("Table `%s` using unknown flags in dataint (%u) in SCRIPT_COMMAND_CAST_SPELL for script id %u",
|
||||||
tablename,tmp.dataint,tmp.id);
|
tablename,tmp.dataint,tmp.id);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
else if (tmp.datalong2 == 4 && !GetCreatureTemplate(tmp.dataint))
|
||||||
|
{
|
||||||
|
sLog.outErrorDb("Table `%s` using invalid creature entry in dataint (%u) in SCRIPT_COMMAND_CAST_SPELL for script id %u",
|
||||||
|
tablename,tmp.dataint,tmp.id);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -143,6 +143,8 @@ Quest::Quest(Field * questRecord)
|
|||||||
QuestCompleteScript = questRecord[143].GetUInt32();
|
QuestCompleteScript = questRecord[143].GetUInt32();
|
||||||
|
|
||||||
QuestFlags |= SpecialFlags << 20;
|
QuestFlags |= SpecialFlags << 20;
|
||||||
|
if (QuestFlags & QUEST_TRINITY_FLAGS_AUTO_ACCEPT)
|
||||||
|
QuestFlags |= QUEST_FLAGS_AUTO_ACCEPT;
|
||||||
|
|
||||||
m_reqitemscount = 0;
|
m_reqitemscount = 0;
|
||||||
m_reqCreatureOrGOcount = 0;
|
m_reqCreatureOrGOcount = 0;
|
||||||
|
|||||||
@@ -246,7 +246,7 @@ class Quest
|
|||||||
bool IsDaily() const { return QuestFlags & QUEST_FLAGS_DAILY; }
|
bool IsDaily() const { return QuestFlags & QUEST_FLAGS_DAILY; }
|
||||||
bool IsWeekly() const { return QuestFlags & QUEST_FLAGS_WEEKLY; }
|
bool IsWeekly() const { return QuestFlags & QUEST_FLAGS_WEEKLY; }
|
||||||
bool IsDailyOrWeekly() const { return QuestFlags & (QUEST_FLAGS_DAILY | QUEST_FLAGS_WEEKLY); }
|
bool IsDailyOrWeekly() const { return QuestFlags & (QUEST_FLAGS_DAILY | QUEST_FLAGS_WEEKLY); }
|
||||||
bool IsAutoAccept() const { return QuestFlags & QUEST_TRINITY_FLAGS_AUTO_ACCEPT; }
|
bool IsAutoAccept() const { return QuestFlags & QUEST_FLAGS_AUTO_ACCEPT; }
|
||||||
bool IsRaidQuest() const { return Type == QUEST_TYPE_RAID || Type == QUEST_TYPE_RAID_10 || Type == QUEST_TYPE_RAID_25; }
|
bool IsRaidQuest() const { return Type == QUEST_TYPE_RAID || Type == QUEST_TYPE_RAID_10 || Type == QUEST_TYPE_RAID_25; }
|
||||||
bool IsAllowedInRaid() const;
|
bool IsAllowedInRaid() const;
|
||||||
|
|
||||||
|
|||||||
@@ -246,7 +246,7 @@ void WorldSession::HandleQuestgiverQueryQuestOpcode(WorldPacket & recv_data)
|
|||||||
Quest const* pQuest = objmgr.GetQuestTemplate(quest);
|
Quest const* pQuest = objmgr.GetQuestTemplate(quest);
|
||||||
if (pQuest)
|
if (pQuest)
|
||||||
{
|
{
|
||||||
if (pQuest->HasFlag(QUEST_TRINITY_FLAGS_AUTO_ACCEPT) && _player->CanAddQuest(pQuest, true))
|
if (pQuest->IsAutoAccept() && _player->CanAddQuest(pQuest, true))
|
||||||
{
|
{
|
||||||
_player->AddQuest(pQuest, pObject);
|
_player->AddQuest(pQuest, pObject);
|
||||||
if (_player->CanCompleteQuest(quest))
|
if (_player->CanCompleteQuest(quest))
|
||||||
|
|||||||
@@ -5726,21 +5726,19 @@ void AuraEffect::HandleAuraDummy(AuraApplication const * aurApp, uint8 mode, boo
|
|||||||
// Lifebloom
|
// Lifebloom
|
||||||
if (GetSpellProto()->SpellFamilyFlags[1] & 0x10)
|
if (GetSpellProto()->SpellFamilyFlags[1] & 0x10)
|
||||||
{
|
{
|
||||||
if (!apply)
|
// Final heal only on dispelled or duration end
|
||||||
|
if (aurApp->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE && aurApp->GetRemoveMode() != AURA_REMOVE_BY_ENEMY_SPELL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// final heal
|
||||||
|
int32 stack = GetBase()->GetStackAmount();
|
||||||
|
target->CastCustomSpell(target, 33778, &m_amount, &stack, NULL, true, NULL, this, GetCasterGUID());
|
||||||
|
|
||||||
|
// restore mana
|
||||||
|
if (caster)
|
||||||
{
|
{
|
||||||
// Final heal only on dispelled or duration end
|
int32 returnmana = (GetSpellProto()->ManaCostPercentage * caster->GetCreateMana() / 100) * stack / 2;
|
||||||
if (aurApp->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE && aurApp->GetRemoveMode() != AURA_REMOVE_BY_ENEMY_SPELL)
|
caster->CastCustomSpell(caster, 64372, &returnmana, NULL, NULL, true, NULL, this, GetCasterGUID());
|
||||||
return;
|
|
||||||
|
|
||||||
// final heal
|
|
||||||
target->CastCustomSpell(target,33778,&m_amount,NULL,NULL,true,NULL,this,GetCasterGUID());
|
|
||||||
|
|
||||||
// restore mana
|
|
||||||
if (caster)
|
|
||||||
{
|
|
||||||
int32 returnmana = (GetSpellProto()->ManaCostPercentage * caster->GetCreateMana() / 100) * GetBase()->GetStackAmount() / 2;
|
|
||||||
caster->CastCustomSpell(caster, 64372, &returnmana, NULL, NULL, true, NULL, this, GetCasterGUID());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -2776,6 +2776,9 @@ void Spell::SpellDamageHeal(uint32 /*i*/)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Lifebloom - final heal coef multiplied by original DoT stack
|
||||||
|
else if (m_spellInfo->Id == 33778)
|
||||||
|
addhealth = caster->SpellHealingBonus(unitTarget, m_spellInfo, addhealth, HEAL, m_spellValue->EffectBasePoints[1]);
|
||||||
// Riptide - increase healing done by Chain Heal
|
// Riptide - increase healing done by Chain Heal
|
||||||
else if (m_spellInfo->SpellFamilyName == SPELLFAMILY_SHAMAN && m_spellInfo->SpellFamilyFlags[0] & 0x100)
|
else if (m_spellInfo->SpellFamilyName == SPELLFAMILY_SHAMAN && m_spellInfo->SpellFamilyFlags[0] & 0x100)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -297,6 +297,7 @@ struct boss_sartharionAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
pTenebron->Respawn();
|
pTenebron->Respawn();
|
||||||
pTenebron->GetMotionMaster()->MoveTargetedHome();
|
pTenebron->GetMotionMaster()->MoveTargetedHome();
|
||||||
|
pTenebron->SetLootRecipient(NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -314,6 +315,7 @@ struct boss_sartharionAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
pShadron->Respawn();
|
pShadron->Respawn();
|
||||||
pShadron->GetMotionMaster()->MoveTargetedHome();
|
pShadron->GetMotionMaster()->MoveTargetedHome();
|
||||||
|
pShadron->SetLootRecipient(NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -331,6 +333,7 @@ struct boss_sartharionAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
pVesperon->Respawn();
|
pVesperon->Respawn();
|
||||||
pVesperon->GetMotionMaster()->MoveTargetedHome();
|
pVesperon->GetMotionMaster()->MoveTargetedHome();
|
||||||
|
pVesperon->SetLootRecipient(NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,8 +39,10 @@ inline LPTSTR ErrorMessage(DWORD dw)
|
|||||||
// Declare the static variables of the WheatyExceptionReport class
|
// Declare the static variables of the WheatyExceptionReport class
|
||||||
//
|
//
|
||||||
TCHAR WheatyExceptionReport::m_szLogFileName[MAX_PATH];
|
TCHAR WheatyExceptionReport::m_szLogFileName[MAX_PATH];
|
||||||
|
TCHAR WheatyExceptionReport::m_szDumpFileName[MAX_PATH];
|
||||||
LPTOP_LEVEL_EXCEPTION_FILTER WheatyExceptionReport::m_previousFilter;
|
LPTOP_LEVEL_EXCEPTION_FILTER WheatyExceptionReport::m_previousFilter;
|
||||||
HANDLE WheatyExceptionReport::m_hReportFile;
|
HANDLE WheatyExceptionReport::m_hReportFile;
|
||||||
|
HANDLE WheatyExceptionReport::m_hDumpFile;
|
||||||
HANDLE WheatyExceptionReport::m_hProcess;
|
HANDLE WheatyExceptionReport::m_hProcess;
|
||||||
|
|
||||||
// Declare global instance of class
|
// Declare global instance of class
|
||||||
@@ -88,8 +90,19 @@ PEXCEPTION_POINTERS pExceptionInfo)
|
|||||||
|
|
||||||
SYSTEMTIME systime;
|
SYSTEMTIME systime;
|
||||||
GetLocalTime(&systime);
|
GetLocalTime(&systime);
|
||||||
sprintf(m_szLogFileName, "%s\\%s_[%u-%u_%u-%u-%u].txt",
|
sprintf(m_szDumpFileName, "%s\\%s_%s_[%u-%u_%u-%u-%u].dmp",
|
||||||
crash_folder_path, pos, systime.wDay, systime.wMonth, systime.wHour, systime.wMinute, systime.wSecond);
|
crash_folder_path, _REVISION, pos, systime.wDay, systime.wMonth, systime.wHour, systime.wMinute, systime.wSecond);
|
||||||
|
|
||||||
|
sprintf(m_szLogFileName, "%s\\%s_%s_[%u-%u_%u-%u-%u].txt",
|
||||||
|
crash_folder_path, _REVISION, pos, systime.wDay, systime.wMonth, systime.wHour, systime.wMinute, systime.wSecond);
|
||||||
|
|
||||||
|
m_hDumpFile = CreateFile(m_szDumpFileName,
|
||||||
|
GENERIC_WRITE,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
OPEN_ALWAYS,
|
||||||
|
FILE_FLAG_WRITE_THROUGH,
|
||||||
|
0);
|
||||||
|
|
||||||
m_hReportFile = CreateFile(m_szLogFileName,
|
m_hReportFile = CreateFile(m_szLogFileName,
|
||||||
GENERIC_WRITE,
|
GENERIC_WRITE,
|
||||||
@@ -99,6 +112,19 @@ PEXCEPTION_POINTERS pExceptionInfo)
|
|||||||
FILE_FLAG_WRITE_THROUGH,
|
FILE_FLAG_WRITE_THROUGH,
|
||||||
0);
|
0);
|
||||||
|
|
||||||
|
if (m_hDumpFile)
|
||||||
|
{
|
||||||
|
MINIDUMP_EXCEPTION_INFORMATION info;
|
||||||
|
info.ClientPointers = FALSE;
|
||||||
|
info.ExceptionPointers = pExceptionInfo;
|
||||||
|
info.ThreadId = GetCurrentThreadId();
|
||||||
|
|
||||||
|
MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(),
|
||||||
|
m_hDumpFile, MiniDumpWithIndirectlyReferencedMemory, &info, 0, 0);
|
||||||
|
|
||||||
|
CloseHandle(m_hDumpFile);
|
||||||
|
}
|
||||||
|
|
||||||
if (m_hReportFile)
|
if (m_hReportFile)
|
||||||
{
|
{
|
||||||
SetFilePointer(m_hReportFile, 0, 0, FILE_END);
|
SetFilePointer(m_hReportFile, 0, 0, FILE_END);
|
||||||
|
|||||||
@@ -108,8 +108,10 @@ class WheatyExceptionReport
|
|||||||
|
|
||||||
// Variables used by the class
|
// Variables used by the class
|
||||||
static TCHAR m_szLogFileName[MAX_PATH];
|
static TCHAR m_szLogFileName[MAX_PATH];
|
||||||
|
static TCHAR m_szDumpFileName[MAX_PATH];
|
||||||
static LPTOP_LEVEL_EXCEPTION_FILTER m_previousFilter;
|
static LPTOP_LEVEL_EXCEPTION_FILTER m_previousFilter;
|
||||||
static HANDLE m_hReportFile;
|
static HANDLE m_hReportFile;
|
||||||
|
static HANDLE m_hDumpFile;
|
||||||
static HANDLE m_hProcess;
|
static HANDLE m_hProcess;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user