Fix [Strength of one] (9582) and [Hypercapacitor Gizmo] (5151) quests, by arez. Closes 12

--HG--
branch : trunk
This commit is contained in:
tartalo
2009-11-10 12:08:15 +01:00
parent bd1496b238
commit 108049b776
4 changed files with 147 additions and 5 deletions
+4
View File
@@ -223,6 +223,8 @@ UPDATE `creature_template` SET `ScriptName`='npc_magwin' WHERE `entry`=17312;
UPDATE `creature_template` SET `ScriptName`='npc_geezle' WHERE `entry`=17318;
UPDATE `creature_template` SET `ScriptName`='npc_nestlewood_owlkin' WHERE `entry`=16518;
UPDATE `creature_template` SET `ScriptName`='npc_draenei_survivor' WHERE `entry`=16483;
UPDATE `creature_template` SET `ScriptName`='npc_death_ravager' WHERE `entry`=17556;
UPDATE `gameobject_template` SET `ScriptName`='go_ravager_cage' WHERE `entry`=181849;
/* BADLANDS */
@@ -1164,6 +1166,8 @@ UPDATE `creature_template` SET `ScriptName`='npc_kanati' WHERE `entry`=10638;
UPDATE `creature_template` SET `ScriptName`='npc_paoka_swiftmountain' WHERE `entry`=10427;
UPDATE `creature_template` SET `ScriptName`='npc_plucky' WHERE `entry`=6626;
UPDATE `creature_template` SET `ScriptName`='npc_lakota_windsong' WHERE `entry`=10646;
UPDATE `creature_template` SET `ScriptName`='npc_enraged_panther' WHERE `entry`=10992;
UPDATE `gameobject_template` SET `ScriptName`='go_panther_cage' WHERE `entry`=176195;
/* THUNDER BLUFF */
UPDATE `creature_template` SET `ScriptName`='npc_cairne_bloodhoof' WHERE `entry`=3057;
+4
View File
@@ -0,0 +1,4 @@
UPDATE `creature_template` SET `ScriptName`='npc_death_ravager' WHERE `entry`=17556;
UPDATE `gameobject_template` SET `ScriptName`='go_ravager_cage' WHERE `entry`=181849;
UPDATE `creature_template` SET `ScriptName`='npc_enraged_panther' WHERE `entry`=10992;
UPDATE `gameobject_template` SET `ScriptName`='go_panther_cage' WHERE `entry`=176195;
@@ -17,7 +17,7 @@
/* ScriptData
SDName: Azuremyst_Isle
SD%Complete: 75
SDComment: Quest support: 9283, 9537, 9582, 9554, 9531, 9303(special flight path, proper model for mount missing). Injured Draenei cosmetic only
SDComment: Quest support: 9283, 9537, 9582, 9554, 9531, 9303(special flight path, proper model for mount missing). Injured Draenei cosmetic only, 9582.
SDCategory: Azuremyst Isle
EndScriptData */
@@ -28,6 +28,8 @@ npc_injured_draenei
npc_magwin
npc_geezle
mob_nestlewood_owlkin
go_ravager_cage
npc_death_ravager
EndContentData */
#include "precompiled.h"
@@ -598,6 +600,75 @@ bool EffectDummyCreature_npc_nestlewood_owlkin(Unit *pCaster, uint32 spellId, ui
return false;
}
enum eRavegerCage
{
NPC_DEATH_RAVAGER = 17556,
SPELL_REND = 13443,
SPELL_ENRAGING_BITE = 30736,
QUEST_STRENGTH_ONE = 9582
};
bool go_ravager_cage(Player* pPlayer, GameObject* pGo)
{
if(pPlayer->GetQuestStatus(QUEST_STRENGTH_ONE) == QUEST_STATUS_INCOMPLETE)
{
if(Creature* ravager = pGo->FindNearestCreature(NPC_DEATH_RAVAGER, 5.0f, true))
{
ravager->RemoveFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_NON_ATTACKABLE);
ravager->SetReactState(REACT_AGGRESSIVE);
ravager->AI()->AttackStart(pPlayer);
}
}
return true ;
}
struct TRINITY_DLL_DECL npc_death_ravagerAI : public ScriptedAI
{
npc_death_ravagerAI(Creature *c) : ScriptedAI(c){}
uint32 RendTimer;
uint32 EnragingBiteTimer;
void Reset()
{
RendTimer = 30000;
EnragingBiteTimer = 20000;
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
m_creature->SetReactState(REACT_PASSIVE);
}
void UpdateAI(const uint32 diff)
{
if (!UpdateVictim())
return;
if(RendTimer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_REND);
RendTimer = 30000;
}
else RendTimer -= diff;
if(EnragingBiteTimer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_ENRAGING_BITE);
EnragingBiteTimer = 15000;
}
else EnragingBiteTimer -= diff;
DoMeleeAttackIfReady();
}
};
CreatureAI* GetAI_npc_death_ravagerAI(Creature* pCreature)
{
return new npc_death_ravagerAI(pCreature);
}
void AddSC_azuremyst_isle()
{
Script *newscript;
@@ -635,5 +706,15 @@ void AddSC_azuremyst_isle()
newscript->GetAI = &GetAI_npc_nestlewood_owlkinAI;
newscript->pEffectDummyCreature = &EffectDummyCreature_npc_nestlewood_owlkin;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_death_ravager";
newscript->GetAI = &GetAI_npc_death_ravagerAI;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name="go_ravager_cage";
newscript->pGOHello = &go_ravager_cage;
newscript->RegisterSelf();
}
@@ -17,7 +17,7 @@
/* ScriptData
SDName: Thousand Needles
SD%Complete: 100
SDComment: Support for Quest: 1950, 4770, 4904, 4966
SDComment: Support for Quest: 1950, 4770, 4904, 4966, 5151.
SDCategory: Thousand Needles
EndScriptData */
@@ -26,6 +26,8 @@ npc_kanati
npc_lakota_windsong
npc_swiftmountain
npc_plucky
go_panther_cage
npc_enraged_panther
EndContentData */
#include "precompiled.h"
@@ -365,9 +367,50 @@ CreatureAI* GetAI_npc_plucky(Creature* pCreature)
return new npc_pluckyAI(pCreature);
}
/*#####
#
######*/
enum ePantherCage
{
ENRAGED_PANTHER = 10992
};
bool go_panther_cage(Player* pPlayer, GameObject* pGo)
{
if (pPlayer->GetQuestStatus(5151) == QUEST_STATUS_INCOMPLETE)
{
if(Creature* panther = pGo->FindNearestCreature(ENRAGED_PANTHER, 5, true))
{
panther->RemoveFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_NON_ATTACKABLE);
panther->SetReactState(REACT_AGGRESSIVE);
panther->AI()->AttackStart(pPlayer);
}
}
return true ;
}
struct TRINITY_DLL_DECL npc_enraged_pantherAI : public ScriptedAI
{
npc_enraged_pantherAI(Creature *c) : ScriptedAI(c) {}
void Reset()
{
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
m_creature->SetReactState(REACT_PASSIVE);
}
void UpdateAI(const uint32 diff)
{
if (!UpdateVictim())
return;
DoMeleeAttackIfReady();
}
};
CreatureAI* GetAI_npc_enraged_panther(Creature* pCreature)
{
return new npc_enraged_pantherAI(pCreature);
}
void AddSC_thousand_needles()
{
@@ -397,5 +440,15 @@ void AddSC_thousand_needles()
newscript->pGossipHello = &GossipHello_npc_plucky;
newscript->pGossipSelect = &GossipSelect_npc_plucky;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_enraged_panther";
newscript->GetAI = &GetAI_npc_enraged_panther;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name="go_panther_cage";
newscript->pGOHello = &go_panther_cage;
newscript->RegisterSelf();
}