From 1f34284828465076cfaf137ff34adc781d016a86 Mon Sep 17 00:00:00 2001 From: joschiwald Date: Tue, 27 Aug 2013 23:50:40 +0200 Subject: Scripts/UtgardeKeep: reworked InstanceScript and cleanup some boss script --- sql/updates/world/2013_08_27_01_world_instance_template.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 sql/updates/world/2013_08_27_01_world_instance_template.sql (limited to 'sql') diff --git a/sql/updates/world/2013_08_27_01_world_instance_template.sql b/sql/updates/world/2013_08_27_01_world_instance_template.sql new file mode 100644 index 00000000000..75000549464 --- /dev/null +++ b/sql/updates/world/2013_08_27_01_world_instance_template.sql @@ -0,0 +1 @@ +UPDATE `instance_template` SET `script`='instance_vault_of_archavon' WHERE `map`=624; -- cgit v1.2.3 From 2bd4a479a67bd5cbc99a5a1411293b258743c19f Mon Sep 17 00:00:00 2001 From: Aokromes Date: Wed, 28 Aug 2013 14:51:31 +0100 Subject: Core/Quests: Add repeatable quest rate to world.reputation_reward_rate --- .../world/2013_08_27_02_world_reputation_reward_rate.sql | 1 + src/server/game/Entities/Player/Player.cpp | 6 ++++++ src/server/game/Entities/Player/Player.h | 1 + src/server/game/Globals/ObjectMgr.cpp | 15 +++++++++++---- src/server/game/Globals/ObjectMgr.h | 1 + 5 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 sql/updates/world/2013_08_27_02_world_reputation_reward_rate.sql (limited to 'sql') diff --git a/sql/updates/world/2013_08_27_02_world_reputation_reward_rate.sql b/sql/updates/world/2013_08_27_02_world_reputation_reward_rate.sql new file mode 100644 index 00000000000..57776c61e82 --- /dev/null +++ b/sql/updates/world/2013_08_27_02_world_reputation_reward_rate.sql @@ -0,0 +1 @@ +ALTER TABLE `reputation_reward_rate` ADD `quest_repeteable_rate` FLOAT NOT NULL DEFAULT '1' AFTER `quest_weekly_rate`; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 405080beefa..10dfe946a86 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -6953,6 +6953,7 @@ int32 Player::CalculateReputationGain(ReputationSource source, uint32 creatureOr case REPUTATION_SOURCE_DAILY_QUEST: case REPUTATION_SOURCE_WEEKLY_QUEST: case REPUTATION_SOURCE_MONTHLY_QUEST: + case REPUTATION_SOURCE_REPEATABLE_QUEST: rate = sWorld->getRate(RATE_REPUTATION_LOWLEVEL_QUEST); break; case REPUTATION_SOURCE_SPELL: @@ -6988,6 +6989,9 @@ int32 Player::CalculateReputationGain(ReputationSource source, uint32 creatureOr case REPUTATION_SOURCE_MONTHLY_QUEST: repRate = repData->questMonthlyRate; break; + case REPUTATION_SOURCE_REPEATABLE_QUEST: + repRate = repData->questRepeatableRate; + break; case REPUTATION_SOURCE_SPELL: repRate = repData->spellRate; break; @@ -7091,6 +7095,8 @@ void Player::RewardReputation(Quest const* quest) rep = CalculateReputationGain(REPUTATION_SOURCE_WEEKLY_QUEST, GetQuestLevel(quest), rep, quest->RewardFactionId[i], noQuestBonus); else if (quest->IsMonthly()) rep = CalculateReputationGain(REPUTATION_SOURCE_MONTHLY_QUEST, GetQuestLevel(quest), rep, quest->RewardFactionId[i], noQuestBonus); + else if (quest->IsRepeatable()) + rep = CalculateReputationGain(REPUTATION_SOURCE_REPEATABLE_QUEST, GetQuestLevel(quest), rep, quest->RewardFactionId[i], noQuestBonus); else rep = CalculateReputationGain(REPUTATION_SOURCE_QUEST, GetQuestLevel(quest), rep, quest->RewardFactionId[i], noQuestBonus); diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 6cc8c0c3929..9a17033de67 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -169,6 +169,7 @@ enum ReputationSource REPUTATION_SOURCE_DAILY_QUEST, REPUTATION_SOURCE_WEEKLY_QUEST, REPUTATION_SOURCE_MONTHLY_QUEST, + REPUTATION_SOURCE_REPEATABLE_QUEST, REPUTATION_SOURCE_SPELL }; diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 4d6eab411d4..b902872ed4e 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -6699,8 +6699,8 @@ void ObjectMgr::LoadReputationRewardRate() _repRewardRateStore.clear(); // for reload case - uint32 count = 0; // 0 1 2 3 4 5 6 - QueryResult result = WorldDatabase.Query("SELECT faction, quest_rate, quest_daily_rate, quest_weekly_rate, quest_monthly_rate, creature_rate, spell_rate FROM reputation_reward_rate"); + uint32 count = 0; // 0 1 2 3 4 5 6 7 + QueryResult result = WorldDatabase.Query("SELECT faction, quest_rate, quest_daily_rate, quest_weekly_rate, quest_monthly_rate, quest_repeatable_rate, creature_rate, spell_rate FROM reputation_reward_rate"); if (!result) { TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, ">> Loaded `reputation_reward_rate`, table is empty!"); @@ -6719,8 +6719,9 @@ void ObjectMgr::LoadReputationRewardRate() repRate.questDailyRate = fields[2].GetFloat(); repRate.questWeeklyRate = fields[3].GetFloat(); repRate.questMonthlyRate = fields[4].GetFloat(); - repRate.creatureRate = fields[5].GetFloat(); - repRate.spellRate = fields[6].GetFloat(); + repRate.questRepeatableRate = fields[5].GetFloat(); + repRate.creatureRate = fields[6].GetFloat(); + repRate.spellRate = fields[7].GetFloat(); FactionEntry const* factionEntry = sFactionStore.LookupEntry(factionId); if (!factionEntry) @@ -6753,6 +6754,12 @@ void ObjectMgr::LoadReputationRewardRate() continue; } + if (repRate.questRepeatableRate < 0.0f) + { + TC_LOG_ERROR(LOG_FILTER_SQL, "Table reputation_reward_rate has quest_repeatable_rate with invalid rate %f, skipping data for faction %u", repRate.questRepeatableRate, factionId); + continue; + } + if (repRate.creatureRate < 0.0f) { TC_LOG_ERROR(LOG_FILTER_SQL, "Table reputation_reward_rate has creature_rate with invalid rate %f, skipping data for faction %u", repRate.creatureRate, factionId); diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index aad699fe9c1..3fb9369b07d 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -485,6 +485,7 @@ struct RepRewardRate float questDailyRate; float questWeeklyRate; float questMonthlyRate; + float questRepeatableRate; float creatureRate; // no reputation are given at all for this faction/rate type. float spellRate; }; -- cgit v1.2.3 From 83e5168a5bed68ce00118fbeefe7979754838b48 Mon Sep 17 00:00:00 2001 From: Nay Date: Wed, 28 Aug 2013 15:15:14 +0100 Subject: DB/Reputation: Reward 3x reputation for Sporegar on repeteable quests Closes #5789 --- sql/updates/world/2013_08_27_03_world_reputation_reward_rate.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 sql/updates/world/2013_08_27_03_world_reputation_reward_rate.sql (limited to 'sql') diff --git a/sql/updates/world/2013_08_27_03_world_reputation_reward_rate.sql b/sql/updates/world/2013_08_27_03_world_reputation_reward_rate.sql new file mode 100644 index 00000000000..e3398568b7b --- /dev/null +++ b/sql/updates/world/2013_08_27_03_world_reputation_reward_rate.sql @@ -0,0 +1 @@ +UPDATE `reputation_reward_rate` SET `quest_repeteable_rate`=3 WHERE `faction`=970; -- Sporegar, 3x on repeteable quests -- cgit v1.2.3 From f5f0e6439c20d9d4a6e49cf4e470e798c0933c5a Mon Sep 17 00:00:00 2001 From: joschiwald Date: Wed, 28 Aug 2013 17:11:14 +0200 Subject: Scripts/UtgardeKeep/Ingvar: remove hacks and fix warning --- sql/updates/world/2013_08_28_00_world_misc.sql | 17 +++ src/server/game/Spells/Auras/SpellAuraEffects.cpp | 35 +++--- .../UtgardeKeep/boss_ingvar_the_plunderer.cpp | 120 ++++++++++----------- .../UtgardeKeep/UtgardeKeep/utgarde_keep.h | 8 +- 4 files changed, 94 insertions(+), 86 deletions(-) create mode 100644 sql/updates/world/2013_08_28_00_world_misc.sql (limited to 'sql') diff --git a/sql/updates/world/2013_08_28_00_world_misc.sql b/sql/updates/world/2013_08_28_00_world_misc.sql new file mode 100644 index 00000000000..bd414f4d623 --- /dev/null +++ b/sql/updates/world/2013_08_28_00_world_misc.sql @@ -0,0 +1,17 @@ +DELETE FROM `creature_text` WHERE `entry` IN (24068, 23954, 23980); +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES +(24068, 0, 0, 'Ingvar! Your pathetic failure will serve as a warning to all... you are damned! Arise and carry out the master''s will!', 14, 0, 100, 0, 0, 13754, 'Annhylde the Caller to Ingvar the Plunderer'), + +(23954, 0, 0, 'I''ll paint my face with your blood!', 14, 0, 100, 0, 0, 13207, 'Ingvar the Plunderer - SAY_AGGRO_1'), +(23954, 1, 0, 'Mjul orm agn gjor!', 14, 0, 100, 0, 0, 13212, 'Ingvar the Plunderer - SAY_SLAY_1'), +(23954, 2, 0, 'My life for the... death god!', 14, 0, 100, 0, 0, 13213, 'Ingvar the Plunderer - SAY_DEATH_1'), + +(23954, 3, 0, 'I return! A second chance to carve your skull!', 14, 0, 100, 0, 0, 13209, 'Ingvar the Plunderer - SAY_AGGRO_2'), +(23954, 4, 0, 'I am a warrior born!', 14, 0, 100, 0, 0, 13214, 'Ingvar the Plunderer - SAY_SLAY_2'), +(23954, 5, 0, 'No! I can do... better! I can...', 14, 0, 100, 0, 0, 13211, 'Ingvar the Plunderer - SAY_DEATH_2'); + +UPDATE `creature_template` SET `lootid`=`entry` WHERE entry IN (23954, 31673); +UPDATE `creature_template` SET `lootid`=0 WHERE entry IN (23980, 31674); + +UPDATE `creature_loot_template` SET `entry`=23954 WHERE `entry`=23980; +UPDATE `creature_loot_template` SET `entry`=31673 WHERE `entry`=31674; diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index cd227c7d8b7..08e66124e4a 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -2109,15 +2109,12 @@ void AuraEffect::HandleFeignDeath(AuraApplication const* aurApp, uint8 mode, boo Unit* target = aurApp->GetTarget(); - if (target->GetTypeId() != TYPEID_PLAYER) - return; - if (apply) { /* WorldPacket data(SMSG_FEIGN_DEATH_RESISTED, 9); - data<GetGUID(); - data<GetGUID(); + data << uint8(0); target->SendMessageToSet(&data, true); */ @@ -2151,31 +2148,31 @@ void AuraEffect::HandleFeignDeath(AuraApplication const* aurApp, uint8 mode, boo // stop handling the effect if it was removed by linked event if (aurApp->GetRemoveMode()) return; - // blizz like 2.0.x - target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_29); - // blizz like 2.0.x - target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); - // blizz like 2.0.x - target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); + target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_29); // blizz like 2.0.x + target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); // blizz like 2.0.x + target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); // blizz like 2.0.x target->AddUnitState(UNIT_STATE_DIED); + + if (Creature* creature = target->ToCreature()) + creature->SetReactState(REACT_PASSIVE); } else { /* WorldPacket data(SMSG_FEIGN_DEATH_RESISTED, 9); - data<GetGUID(); - data<GetGUID(); + data << uint8(1); target->SendMessageToSet(&data, true); */ - // blizz like 2.0.x - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_29); - // blizz like 2.0.x - target->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); - // blizz like 2.0.x - target->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); + target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_29); // blizz like 2.0.x + target->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); // blizz like 2.0.x + target->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); // blizz like 2.0.x target->ClearUnitState(UNIT_STATE_DIED); + + if (Creature* creature = target->ToCreature()) + creature->InitializeReactState(); } } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp index 1ec33fcb301..e6e9fffd5ac 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp @@ -28,21 +28,18 @@ EndScriptData */ enum Yells { - YELL_AGGRO_1 = 0, - YELL_KILL_1 = 1, - YELL_DEAD_1 = 2, - - YELL_AGGRO_2 = 0, - YELL_KILL_2 = 1, - YELL_DEAD_2 = 2 -}; - -enum Creatures -{ - NPC_INGVAR_HUMAN = 23954, - NPC_ANNHYLDE_THE_CALLER = 24068, - NPC_INGVAR_UNDEAD = 23980, - NPC_THROW_TARGET = 23996, + // Ingvar (Human) + SAY_AGGRO_1 = 0, + SAY_SLAY_1 = 1, + SAY_DEATH_1 = 2, + + // Ingvar (Undead) + SAY_AGGRO_2 = 3, + SAY_SLAY_2 = 4, + SAY_DEATH_2 = 5, + + // Annhylde The Caller + YELL_RESURRECT = 0 }; enum Events @@ -96,6 +93,11 @@ enum Spells SPELL_INGVAR_TRANSFORM = 42796 }; +enum Misc +{ + ACTION_START_PHASE_2 +}; + class boss_ingvar_the_plunderer : public CreatureScript { public: @@ -110,13 +112,9 @@ class boss_ingvar_the_plunderer : public CreatureScript void Reset() OVERRIDE { - if (_isUndead) - me->UpdateEntry(NPC_INGVAR_HUMAN); - _isUndead = false; me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); - me->SetStandState(UNIT_STAND_STATE_STAND); _Reset(); events.SetPhase(PHASE_HUMAN); @@ -129,36 +127,37 @@ class boss_ingvar_the_plunderer : public CreatureScript void DamageTaken(Unit* /*doneBy*/, uint32& damage) OVERRIDE { - if (damage >= me->GetHealth() && !_isUndead) + if (damage >= me->GetHealth() && events.IsInPhase(PHASE_HUMAN)) { - //DoCast(me, SPELL_INGVAR_FEIGN_DEATH, true); // Dont work ??? - // visuel hack - me->SetHealth(0); - me->InterruptNonMeleeSpells(true); me->RemoveAllAuras(); + DoCast(me, SPELL_INGVAR_FEIGN_DEATH, true); + me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - me->GetMotionMaster()->MovementExpired(false); - me->GetMotionMaster()->MoveIdle(); - me->SetStandState(UNIT_STAND_STATE_DEAD); - // visuel hack end events.SetPhase(PHASE_EVENT); events.ScheduleEvent(EVENT_SUMMON_BANSHEE, 3 * IN_MILLISECONDS, 0, PHASE_EVENT); - Talk(YELL_DEAD_1); + Talk(SAY_DEATH_1); } if (events.IsInPhase(PHASE_EVENT)) damage = 0; } + void DoAction(int32 actionId) + { + if (actionId == ACTION_START_PHASE_2) + StartZombiePhase(); + } + void StartZombiePhase() { _isUndead = true; - me->UpdateEntry(NPC_INGVAR_UNDEAD); + me->RemoveAura(SPELL_INGVAR_FEIGN_DEATH); + DoCast(me, SPELL_INGVAR_TRANSFORM, true); /// @todo: should be death persistent events.ScheduleEvent(EVENT_JUST_TRANSFORMED, 2 * IN_MILLISECONDS, 0, PHASE_EVENT); - Talk(YELL_AGGRO_2); + Talk(SAY_AGGRO_2); } void EnterCombat(Unit* /*who*/) OVERRIDE @@ -166,16 +165,13 @@ class boss_ingvar_the_plunderer : public CreatureScript _EnterCombat(); if (!_isUndead) - Talk(YELL_AGGRO_1); + Talk(SAY_AGGRO_1); } void JustDied(Unit* /*killer*/) OVERRIDE { _JustDied(); - Talk(YELL_DEAD_2); - - // Ingvar has NPC_INGVAR_UNDEAD id in this moment, so we have to update encounter state for his original id - instance->UpdateEncounterState(ENCOUNTER_CREDIT_KILL_CREATURE, NPC_INGVAR_HUMAN, me); + Talk(SAY_DEATH_2); } void ScheduleSecondPhase() @@ -189,7 +185,7 @@ class boss_ingvar_the_plunderer : public CreatureScript void KilledUnit(Unit* /*victim*/) OVERRIDE { - Talk(_isUndead ? YELL_KILL_1 : YELL_KILL_2); + Talk(_isUndead ? SAY_SLAY_1 : SAY_SLAY_2); } void UpdateAI(uint32 diff) OVERRIDE @@ -225,8 +221,7 @@ class boss_ingvar_the_plunderer : public CreatureScript break; case EVENT_JUST_TRANSFORMED: me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - me->SetInCombatWithZone(); - me->GetMotionMaster()->MoveChase(me->GetVictim()); + DoZoneInCombat(); ScheduleSecondPhase(); return; case EVENT_SUMMON_BANSHEE: @@ -254,7 +249,8 @@ class boss_ingvar_the_plunderer : public CreatureScript } } - DoMeleeAttackIfReady(); + if (!events.IsInPhase(PHASE_EVENT)) + DoMeleeAttackIfReady(); } private: @@ -288,13 +284,7 @@ class npc_annhylde_the_caller : public CreatureScript me->GetPosition(x, y, z); DoTeleportTo(x+1, y, z+30); - - if (Creature* ingvar = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_INGVAR))) - { - me->GetMotionMaster()->MovePoint(1, x, y, z+15); - - // Talk(YELL_RESSURECT); - } + me->GetMotionMaster()->MovePoint(1, x, y, z+15); } void MovementInform(uint32 type, uint32 id) OVERRIDE @@ -302,22 +292,23 @@ class npc_annhylde_the_caller : public CreatureScript if (type != POINT_MOTION_TYPE) return; - if (Creature* ingvar = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_INGVAR))) + switch (id) { - switch (id) - { - case 1: + case 1: + Talk(YELL_RESURRECT); + if (Creature* ingvar = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_INGVAR))) + { ingvar->RemoveAura(SPELL_SUMMON_BANSHEE); ingvar->CastSpell(ingvar, SPELL_SCOURG_RESURRECTION_DUMMY, true); DoCast(ingvar, SPELL_SCOURG_RESURRECTION_BEAM); - _events.ScheduleEvent(EVENT_RESURRECT_1, 8000); - break; - case 2: - me->DespawnOrUnsummon(); - break; - default: - break; - } + } + _events.ScheduleEvent(EVENT_RESURRECT_1, 8000); + break; + case 2: + me->DespawnOrUnsummon(); + break; + default: + break; } } @@ -336,7 +327,7 @@ class npc_annhylde_the_caller : public CreatureScript case EVENT_RESURRECT_1: if (Creature* ingvar = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_INGVAR))) { - ingvar->SetStandState(UNIT_STAND_STATE_STAND); + ingvar->RemoveAura(SPELL_INGVAR_FEIGN_DEATH); ingvar->CastSpell(ingvar, SPELL_SCOURG_RESURRECTION_HEAL, false); } _events.ScheduleEvent(EVENT_RESURRECT_2, 3000); @@ -345,13 +336,10 @@ class npc_annhylde_the_caller : public CreatureScript if (Creature* ingvar = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_INGVAR))) { ingvar->RemoveAurasDueToSpell(SPELL_SCOURG_RESURRECTION_DUMMY); - - if (ingvar->GetVictim()) - if (boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI* ai = CAST_AI(boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI, ingvar->AI())) - ai->StartZombiePhase(); - - me->GetMotionMaster()->MovePoint(2, x+1, y, z+30); + ingvar->AI()->DoAction(ACTION_START_PHASE_2); } + + me->GetMotionMaster()->MovePoint(2, x+1, y, z+30); break; default: break; diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h index ee422400e72..873c5d634fa 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h @@ -45,8 +45,14 @@ enum CreatureIds NPC_DALRONN = 24201, NPC_INGVAR = 23954, + // Skarvald - Dalronn NPC_DALRONN_GHOST = 27389, - NPC_SKARVALD_GHOST = 27390 + NPC_SKARVALD_GHOST = 27390, + + // Ingvar the Plunderer + NPC_INGVAR_UNDEAD = 23980, + NPC_THROW_TARGET = 23996, + NPC_ANNHYLDE_THE_CALLER = 24068 }; enum GameObjectIds -- cgit v1.2.3 From 577e3208095f28a088d3f1523fb06cf27a00de68 Mon Sep 17 00:00:00 2001 From: Nay Date: Wed, 28 Aug 2013 16:31:27 +0100 Subject: DB/Schema: Fix typo in reputation_reward_rate.quest_repeatable_rate name --- sql/updates/world/2013_08_27_04_world_reputation_reward_rate.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 sql/updates/world/2013_08_27_04_world_reputation_reward_rate.sql (limited to 'sql') diff --git a/sql/updates/world/2013_08_27_04_world_reputation_reward_rate.sql b/sql/updates/world/2013_08_27_04_world_reputation_reward_rate.sql new file mode 100644 index 00000000000..ff680bff694 --- /dev/null +++ b/sql/updates/world/2013_08_27_04_world_reputation_reward_rate.sql @@ -0,0 +1 @@ +ALTER TABLE `reputation_reward_rate` CHANGE `quest_repeteable_rate` `quest_repeatable_rate` FLOAT NOT NULL DEFAULT '1' -- cgit v1.2.3 From 61fbe1c60caba5862a8545aaa9ba0717f882e69a Mon Sep 17 00:00:00 2001 From: Foldor Date: Wed, 28 Aug 2013 16:38:30 +0100 Subject: DB/Spawns: Kor'kron Reaver & Skybreaker Marine are currently missing from Dalaran's Krasus landing Closes #10615 --- .../world/2013_08_27_04_world_reputation_reward_rate.sql | 2 +- sql/updates/world/2013_08_28_01_world_creature.sql | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 sql/updates/world/2013_08_28_01_world_creature.sql (limited to 'sql') diff --git a/sql/updates/world/2013_08_27_04_world_reputation_reward_rate.sql b/sql/updates/world/2013_08_27_04_world_reputation_reward_rate.sql index ff680bff694..a260cf61c25 100644 --- a/sql/updates/world/2013_08_27_04_world_reputation_reward_rate.sql +++ b/sql/updates/world/2013_08_27_04_world_reputation_reward_rate.sql @@ -1 +1 @@ -ALTER TABLE `reputation_reward_rate` CHANGE `quest_repeteable_rate` `quest_repeatable_rate` FLOAT NOT NULL DEFAULT '1' +ALTER TABLE `reputation_reward_rate` CHANGE `quest_repeteable_rate` `quest_repeatable_rate` FLOAT NOT NULL DEFAULT '1'; diff --git a/sql/updates/world/2013_08_28_01_world_creature.sql b/sql/updates/world/2013_08_28_01_world_creature.sql new file mode 100644 index 00000000000..2adf9c127a6 --- /dev/null +++ b/sql/updates/world/2013_08_28_01_world_creature.sql @@ -0,0 +1,14 @@ +SET @CGUID := 53919; -- set by TDB team (8) + +UPDATE `creature_template` SET `faction_A`=35, `faction_H`=35, `rangeattacktime`=2000, `unit_flags`=32768 WHERE `entry`=30755; + +DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+7; +INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `MovementType`) VALUES +(@CGUID+0, 30755, 571, 1, 1, 5844.797, 479.632, 657.6495, 3.351032, 120, 0, 0), -- Kor'kron Reaver (Area: 4395) +(@CGUID+1, 30755, 571, 1, 1, 5848.494, 480.568, 657.6278, 3.368485, 120, 0, 0), -- Kor'kron Reaver (Area: 4395) +(@CGUID+2, 30755, 571, 1, 1, 5845.834, 475.8459, 657.7172, 3.298672, 120, 0, 0), -- Kor'kron Reaver (Area: 4395) +(@CGUID+3, 30755, 571, 1, 1, 5849.62, 476.4291, 657.7032, 3.222836, 120, 0, 0), -- Kor'kron Reaver (Area: 4395) +(@CGUID+4, 30352, 571, 1, 1, 5803.514, 494.7659, 657.2115, 5.54129, 120, 0, 0), -- Skybreaker Marine (Area: 4395) +(@CGUID+5, 30352, 571, 1, 1, 5805.08, 492.9698, 657.2003, 5.584598, 120, 0, 0), -- Skybreaker Marine (Area: 4395) +(@CGUID+6, 30352, 571, 1, 1, 5801.245, 492.336, 657.3757, 5.602507, 120, 0, 0), -- Skybreaker Marine (Area: 4395) +(@CGUID+7, 30352, 571, 1, 1, 5802.888, 490.7988, 657.3538, 5.602507, 120, 0, 0); -- Skybreaker Marine (Area: 4395) -- cgit v1.2.3 From 75406b2c0dcf4295601529cf0aa944aad69bf645 Mon Sep 17 00:00:00 2001 From: Crysicle Date: Wed, 28 Aug 2013 16:39:57 +0100 Subject: DB/Quests: Prepping the Speech description/progress/completion text Closes #10607 --- sql/updates/world/2013_08_28_02_world_quest_template.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 sql/updates/world/2013_08_28_02_world_quest_template.sql (limited to 'sql') diff --git a/sql/updates/world/2013_08_28_02_world_quest_template.sql b/sql/updates/world/2013_08_28_02_world_quest_template.sql new file mode 100644 index 00000000000..8c40402529f --- /dev/null +++ b/sql/updates/world/2013_08_28_02_world_quest_template.sql @@ -0,0 +1,2 @@ +-- Prepping the Speech +UPDATE `quest_template` SET `Details` = 'High Tinker Mekkatorque asked me to write a speech that he could give before the battle starts, but I just can''t tell which draft is good and which ones just stink.$b$bCould you try some of them out on the local gnome residents? This device creates an image of Mekkatorque saying a few lines from each of my speech drafts.$b$bLet me know which one works, okay?' `RequestItemsText` = 'Let me know which one works, okay?' `OfferRewardText` = 'Oh my. Their reactions were that different?$b$bNot completely what I was expecting, but I think I have a speech that will do.$b$bJust let me find where I put it...' WHERE `id`=25283; -- cgit v1.2.3 From 5eeed14c2ce04931fc1c5691ff34b65a82e40c25 Mon Sep 17 00:00:00 2001 From: Rohlik Date: Wed, 28 Aug 2013 16:47:50 +0100 Subject: DB/Quests: Fix "I'm Not Dead Yet!" Closes #9807 --- .../world/2013_08_28_02_world_quest_template.sql | 2 +- sql/updates/world/2013_08_28_03_world_sai.sql | 57 ++++++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 sql/updates/world/2013_08_28_03_world_sai.sql (limited to 'sql') diff --git a/sql/updates/world/2013_08_28_02_world_quest_template.sql b/sql/updates/world/2013_08_28_02_world_quest_template.sql index 8c40402529f..f7dfc831f48 100644 --- a/sql/updates/world/2013_08_28_02_world_quest_template.sql +++ b/sql/updates/world/2013_08_28_02_world_quest_template.sql @@ -1,2 +1,2 @@ -- Prepping the Speech -UPDATE `quest_template` SET `Details` = 'High Tinker Mekkatorque asked me to write a speech that he could give before the battle starts, but I just can''t tell which draft is good and which ones just stink.$b$bCould you try some of them out on the local gnome residents? This device creates an image of Mekkatorque saying a few lines from each of my speech drafts.$b$bLet me know which one works, okay?' `RequestItemsText` = 'Let me know which one works, okay?' `OfferRewardText` = 'Oh my. Their reactions were that different?$b$bNot completely what I was expecting, but I think I have a speech that will do.$b$bJust let me find where I put it...' WHERE `id`=25283; +UPDATE `quest_template` SET `Details` = 'High Tinker Mekkatorque asked me to write a speech that he could give before the battle starts, but I just can''t tell which draft is good and which ones just stink.$b$bCould you try some of them out on the local gnome residents? This device creates an image of Mekkatorque saying a few lines from each of my speech drafts.$b$bLet me know which one works, okay?', `RequestItemsText` = 'Let me know which one works, okay?', `OfferRewardText` = 'Oh my. Their reactions were that different?$b$bNot completely what I was expecting, but I think I have a speech that will do.$b$bJust let me find where I put it...' WHERE `id`=25283; diff --git a/sql/updates/world/2013_08_28_03_world_sai.sql b/sql/updates/world/2013_08_28_03_world_sai.sql new file mode 100644 index 00000000000..a583e5afba6 --- /dev/null +++ b/sql/updates/world/2013_08_28_03_world_sai.sql @@ -0,0 +1,57 @@ +-- Fix Q I'm Not Dead Yet! (13229 / 13221) by Rohlik +UPDATE `creature_template` SET `AIName` = 'SmartAI', `InhabitType` = 1 WHERE `entry` = 31279; +UPDATE `quest_template` SET `SpecialFlags` = 2 WHERE `Id` IN (13221, 13229); + +DELETE FROM `db_script_string` WHERE `entry` IN (2000000507,2000000508); +DELETE FROM `waypoint_data` where id=3127900; -- We delete old WP data from DB +DELETE FROM `waypoint_scripts` WHERE id=31279; + +-- Text for NPC Father Kamaros +DELETE from `creature_text` where `entry`=31279 AND `groupid` IN (1, 2, 3, 4); +INSERT INTO `creature_text` (`entry`, `groupid`, `text`, `type`, `probability`, `comment`) VALUES +(31279, 1, 'The Light''s blessing be upon you for aiding me in my time of need, $n.', 12, 100, 'Father Kamaros'), +(31279, 2, 'I''ve had my fill of this place. Let us depart.', 12, 100, 'Father Kamaros'), +(31279, 3, 'You must tell my brothers that live.', 12, 100, 'Father Kamaros'), +(31279, 4, 'I have you to thank for my life. I will return to my comrades and spread word of your bravery. Fight the Scourge with all the strength you can muster, and we will be by your side.', 12, 100, 'Father Kamaros'); + +-- SAI +DELETE FROM `smart_scripts` WHERE (`entryorguid`=31279 AND `source_type`=0); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(31279, 0, 0, 0, 4, 0, 100, 1, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Set Phase 1 on Aggro'), +(31279, 0, 1, 0, 4, 1, 100, 1, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Stop Moving on Aggro'), +(31279, 0, 2, 0, 4, 1, 100, 1, 0, 0, 0, 0, 11, 25054, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Cast bolt on Aggro'), +(31279, 0, 3, 0, 9, 1, 100, 0, 0, 40, 3400, 4700, 11, 25054, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Cast bolt'), +(31279, 0, 4, 0, 9, 1, 100, 0, 40, 100, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Start Moving when not in bolt Range'), +(31279, 0, 5, 0, 9, 1, 100, 0, 10, 15, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Stop Moving at 15 Yards'), +(31279, 0, 6, 0, 9, 1, 100, 0, 0, 40, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Stop Moving when in bolt Range'), +(31279, 0, 7, 0, 3, 1, 100, 0, 0, 15, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Set Phase 2 at 15% Mana'), +(31279, 0, 8, 0, 3, 2, 100, 0, 0, 15, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Start Moving at 15% Mana'), +(31279, 0, 9, 0, 3, 2, 100, 0, 30, 100, 100, 100, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Set Phase 1 When Mana is above 30%'), +(31279, 0, 11, 0, 0, 1, 100, 0, 5000, 6200, 11700, 15600, 11, 17146, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 'Cast Shadow Word: Pain'), +(31279, 0, 12, 0, 2, 0, 100, 1, 0, 50, 0, 0, 11, 32595, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Cast Power Word: Shield at 50% HP'), +(31279, 0, 13, 14, 19, 0, 100, 0, 0, 0, 0, 0, 75, 58921, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Father Kamaros - On accept Q - Cast Power Word Fortitude'), +(31279, 0, 14, 15, 61, 0, 100, 0, 0, 0, 0, 0, 1, 1, 4000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Father Kamaros - On accept Q - Start talking'), +(31279, 0, 15, 0, 52, 0, 100, 0, 1, 31279, 0, 0, 1, 2, 1000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Father Kamaros - On accept Q - After 4 sec start talking again'), +(31279, 0, 16, 0, 61, 0, 100, 0, 0, 0, 0, 0, 1, 2, 1000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Father Kamaros - On accept Q - After 4 sec start talking again'), +(31279, 0, 17, 0, 52, 0, 100, 0, 2, 31279, 0, 0, 53, 0, 31279, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 'Father Kamaros - After 5 sec - WP load'), +(31279, 0, 18, 0, 40, 0, 100, 0, 13, 0, 0, 0, 1, 3, 2900, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Father Kamaros - On last WP point - Say something'), +(31279, 0, 19, 0, 52, 0, 100, 0, 3, 31279, 0, 0, 1, 4, 5000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Father Kamaros - On last WP point - Say something 2'), +(31279, 0, 20, 0, 52, 0, 100, 0, 4, 31279, 0, 0, 15, 13229, 0, 0, 0, 0, 0, 18, 30, 0, 0, 0, 0, 0, 0, 'Father Kamaros - On last WP point - Q complete(horde)'), +(31279, 0, 21, 0, 52, 0, 100, 0, 4, 31279, 0, 0, 15, 13221, 0, 0, 0, 0, 0, 18, 30, 0, 0, 0, 0, 0, 0, 'Father Kamaros - On last WP point - Q complete(ali)'), +(31279, 0, 22, 0, 52, 0, 100, 0, 4, 31279, 0, 0, 41, 1000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Father Kamaros - after final talking - despawn'); + +-- WP for NPC Father Kamaros +DELETE from `waypoints` where `entry`=31279; +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES +(31279, 1, 6716.76, 3436.7, 682.197, 'Q I''m Not Dead Yet!'), +(31279, 2, 6724.09, 3433.56, 682.197, 'Q I''m Not Dead Yet!'), +(31279, 3, 6734.95, 3435.7, 681.87, 'Q I''m Not Dead Yet!'), +(31279, 4, 6766.36, 3464.42, 673.201, 'Q I''m Not Dead Yet!'), +(31279, 5, 6782.48, 3478.07, 674.097, 'Q I''m Not Dead Yet!'), +(31279, 6, 6789.64, 3484.14, 676.423, 'Q I''m Not Dead Yet!'), +(31279, 7, 6815.31, 3483.01, 685.829, 'Q I''m Not Dead Yet!'), +(31279, 9, 6875.41, 3479.14, 694.799, 'Q I''m Not Dead Yet!'), +(31279, 10, 6946.3, 3477.29, 708.832, 'Q I''m Not Dead Yet!'), +(31279, 11, 6980.65, 3468.12, 710.813, 'Q I''m Not Dead Yet!'), +(31279, 12, 7008.43, 3458.64, 696.751, 'Q I''m Not Dead Yet!'), +(31279, 13, 7042.92, 3438.07, 695.543, 'Q I''m Not Dead Yet!'); -- cgit v1.2.3 From 4fc292cee843d56c5f40664210c443ad0f60206c Mon Sep 17 00:00:00 2001 From: joschiwald Date: Wed, 28 Aug 2013 18:59:27 +0200 Subject: DB/Conditions: fix startup error --- sql/updates/world/2013_08_28_04_world_conditions.sql | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 sql/updates/world/2013_08_28_04_world_conditions.sql (limited to 'sql') diff --git a/sql/updates/world/2013_08_28_04_world_conditions.sql b/sql/updates/world/2013_08_28_04_world_conditions.sql new file mode 100644 index 00000000000..b164b4f0dd1 --- /dev/null +++ b/sql/updates/world/2013_08_28_04_world_conditions.sql @@ -0,0 +1,4 @@ +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=1 AND `SourceGroup` IN (23980,31674,23954,31673); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(1,23954,43228,0,0,1,0,57940,0,0,0,0,0,'','Can loot Stone Keeper''s Shard only with aura Essence of Wintergrasp'), +(1,31673,43228,0,0,1,0,57940,0,0,0,0,0,'','Can loot Stone Keeper''s Shard only with aura Essence of Wintergrasp'); -- cgit v1.2.3 From a9174617622a85599e8e2878f3036b35781192dd Mon Sep 17 00:00:00 2001 From: Vincent-Michael Date: Wed, 28 Aug 2013 19:04:35 +0200 Subject: DB/Misc: Fix startup errors --- sql/updates/world/2013_08_28_05_world_misc.sql | 14 ++++++++++++++ src/server/game/Instances/InstanceSaveMgr.h | 8 ++++---- .../UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp | 2 +- .../UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp | 2 +- 4 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 sql/updates/world/2013_08_28_05_world_misc.sql (limited to 'sql') diff --git a/sql/updates/world/2013_08_28_05_world_misc.sql b/sql/updates/world/2013_08_28_05_world_misc.sql new file mode 100644 index 00000000000..066a2dbfc73 --- /dev/null +++ b/sql/updates/world/2013_08_28_05_world_misc.sql @@ -0,0 +1,14 @@ +DELETE from `waypoints` where `entry`=31279; +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES +(31279, 1, 6716.76, 3436.7, 682.197, 'Q I''m Not Dead Yet!'), +(31279, 2, 6724.09, 3433.56, 682.197, 'Q I''m Not Dead Yet!'), +(31279, 3, 6734.95, 3435.7, 681.87, 'Q I''m Not Dead Yet!'), +(31279, 4, 6766.36, 3464.42, 673.201, 'Q I''m Not Dead Yet!'), +(31279, 5, 6782.48, 3478.07, 674.097, 'Q I''m Not Dead Yet!'), +(31279, 6, 6789.64, 3484.14, 676.423, 'Q I''m Not Dead Yet!'), +(31279, 7, 6815.31, 3483.01, 685.829, 'Q I''m Not Dead Yet!'), +(31279, 8, 6875.41, 3479.14, 694.799, 'Q I''m Not Dead Yet!'), +(31279, 9, 6946.3, 3477.29, 708.832, 'Q I''m Not Dead Yet!'), +(31279, 10, 6980.65, 3468.12, 710.813, 'Q I''m Not Dead Yet!'), +(31279, 11, 7008.43, 3458.64, 696.751, 'Q I''m Not Dead Yet!'), +(31279, 12, 7042.92, 3438.07, 695.543, 'Q I''m Not Dead Yet!'); diff --git a/src/server/game/Instances/InstanceSaveMgr.h b/src/server/game/Instances/InstanceSaveMgr.h index ef55005d0d6..e3717a934c3 100644 --- a/src/server/game/Instances/InstanceSaveMgr.h +++ b/src/server/game/Instances/InstanceSaveMgr.h @@ -82,14 +82,14 @@ class InstanceSave does not include the members of the group unless they have permanent saves */ void AddPlayer(Player* player) { TRINITY_GUARD(ACE_Thread_Mutex, _lock); m_playerList.push_back(player); } bool RemovePlayer(Player* player) - { + { _lock.acquire(); m_playerList.remove(player); bool isStillValid = UnloadIfEmpty(); _lock.release(); //delete here if needed, after releasing the lock - if(m_toDelete) + if (m_toDelete) delete this; return isStillValid; @@ -97,10 +97,10 @@ class InstanceSave /* all groups bound to the instance */ void AddGroup(Group* group) { m_groupList.push_back(group); } bool RemoveGroup(Group* group) - { + { m_groupList.remove(group); bool isStillValid = UnloadIfEmpty(); - if(m_toDelete) + if (m_toDelete) delete this; return isStillValid; } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp index e6e9fffd5ac..30174996a42 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp @@ -291,7 +291,7 @@ class npc_annhylde_the_caller : public CreatureScript { if (type != POINT_MOTION_TYPE) return; - + switch (id) { case 1: diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp index 7bc25aad773..c4e7416f855 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp @@ -197,7 +197,7 @@ class instance_utgarde_keep : public InstanceMapScript std::ostringstream saveStream; saveStream << "U K " << GetBossSaveData(); - + for (uint8 i = 0; i < 3; ++i) saveStream << Forges[i].Event << ' '; -- cgit v1.2.3