Permalink
Browse files

start fix quest 24707

maximillian can't help, core bug..
the elite dragon is to heavy for one player..
  • Loading branch information...
1 parent 843dd3a commit aaa506e5ea8a02f950bfb2dfd29a617b1872089d gpn39f committed Feb 26, 2014
Showing with 53 additions and 15 deletions.
  1. +15 −0 sql/updates/world/2014_02_26_02_misc.sql
  2. +38 −15 src/server/scripts/Kalimdor/zone_ungoro_crater.cpp
@@ -0,0 +1,15 @@
+
+-- crater un'goro
+
+-- wrong auras
+update creature_template_addon set auras="" where entry=38238;
+update creature_template_addon set auras="" where entry=38239;
+update creature_template_addon set auras="71442" where entry=38240;
+
+-- missing KillCredit
+update creature_template set KillCredit1=38708 where entry=38346;
+
+-- wrong faction
+update creature_template set faction_A=14,faction_H=14 where entry in (6501,6502);
+update creature_template set faction_A=634,faction_H=634 where entry in (38346,38708);
+
@@ -59,6 +59,7 @@ enum UnGoroCrater
NPC_PIMENTO_MAXIMILLIANS_STEED = 38373,
QUEST_THE_BALLAD_OF_MAXIMILLIAN = 24707,
+ NPC_DEVILSAUR_QUEEN = 38346,
};
@@ -211,6 +212,7 @@ class npc_maximillian_of_northshire_2 : public CreatureScript
TalkWithDamselCliffs(diff);
TalkWithDamselNorth(diff);
TalkWithSpirits(diff);
+ HelpPlayerOnFightWithDragonQueen(diff);
if (!UpdateVictim())
return;
@@ -224,15 +226,14 @@ class npc_maximillian_of_northshire_2 : public CreatureScript
if (!_player->IsInCombat()) return;
if (me->IsInCombat()) return;
- return;
+ // core bug.. core allways rise a reset if AttackStart is calling, so this script is not executed
- if (_targetOfPlayer==0)
- if (_targetOfPlayer = _player->GetMap()->GetCreature(_player->GetTarget()))
- {
- me->SetReactState(REACT_AGGRESSIVE);
- AttackStart(_targetOfPlayer);
- printf("Trigger AttackStart \n");
- }
+ if (Unit* playerTarget = _player->GetSelectedUnit())
+ {
+ // now he help allways.. bether is to select only dragons.. ToDo: if core is fixed
+ me->SetReactState(REACT_AGGRESSIVE);
+ AttackStart(playerTarget);
+ }
}
void TalkWithDamselShore(uint32 diff)
@@ -533,6 +534,26 @@ class npc_maximillian_of_northshire_2 : public CreatureScript
}
}
+ void HelpPlayerOnFightWithDragonQueen(uint32 diff)
+ {
+ if (!_player) return;
+ if (!_player->IsInCombat()) return;
+ if (me->IsInCombat()) return;
+
+ // core bug.. core allways rise a reset if AttackStart is calling, so this script is not executed
+
+ if (Unit* playerTarget = _player->GetSelectedUnit())
+ {
+ if (playerTarget->GetEntry() == NPC_DEVILSAUR_QUEEN)
+ {
+ if (_player->GetQuestStatus(QUEST_THE_BALLAD_OF_MAXIMILLIAN) == QUEST_STATUS_INCOMPLETE)
+ {
+ me->SetReactState(REACT_AGGRESSIVE);
+ AttackStart(playerTarget);
+ }
+ }
+ }
+ }
};
CreatureAI* GetAI(Creature* creature) const OVERRIDE
@@ -559,13 +580,15 @@ class npc_maximillian_of_northshire : public CreatureScript
Creature* max = creature->FindNearestCreature(NPC_MAXIMILLIAN_OF_NORDSHIRE_2, 10.0f, true);
if (!max)
{
- bool b=false;
- if (player->GetQuestStatus(QUEST_THE_EVIL_DRAGONS_OF_UNGORO_CRATER) == QUEST_STATUS_INCOMPLETE) b=true;
- if (player->GetQuestStatus(QUEST_DAMSELS_WHERE_MADE_TO_BE_SAVED) == QUEST_STATUS_INCOMPLETE) b=true;
- if (player->GetQuestStatus(QUEST_THE_SPIRITS_OF_GOLAKKA_HOT_SPRINGS) == QUEST_STATUS_INCOMPLETE) b=true;
- if (player->GetQuestStatus(QUEST_THE_BALLAD_OF_MAXIMILLIAN) == QUEST_STATUS_INCOMPLETE) b=true;
- if (player->GetQuestStatus(QUEST_AN_IMPORTANT_LESSION) != QUEST_STATUS_COMPLETE) b=false;
- if(b) SummonMaximillian(player,creature);
+ if (player->GetQuestStatus(QUEST_AN_IMPORTANT_LESSION) == QUEST_STATUS_REWARDED)
+ {
+ bool b=false;
+ if (player->GetQuestStatus(QUEST_THE_EVIL_DRAGONS_OF_UNGORO_CRATER) == QUEST_STATUS_INCOMPLETE) b=true;
+ if (player->GetQuestStatus(QUEST_DAMSELS_WHERE_MADE_TO_BE_SAVED) == QUEST_STATUS_INCOMPLETE) b=true;
+ if (player->GetQuestStatus(QUEST_THE_SPIRITS_OF_GOLAKKA_HOT_SPRINGS) == QUEST_STATUS_INCOMPLETE) b=true;
+ if (player->GetQuestStatus(QUEST_THE_BALLAD_OF_MAXIMILLIAN) == QUEST_STATUS_INCOMPLETE) b=true;
+ if(b) SummonMaximillian(player,creature);
+ }
}
if (player->GetQuestStatus(QUEST_AN_IMPORTANT_LESSION) == QUEST_STATUS_COMPLETE)

0 comments on commit aaa506e

Please sign in to comment.