mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-27 15:46:24 +00:00
fix(DB/SAI): Quest 9678 "The First Trial" (#9528)
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1638753088438372219');
|
||||
|
||||
-- Fix Sangrias Stillblade for quest 9678 "The First Trial"
|
||||
UPDATE `creature_template` SET `npcflag`=2, `unit_flags`=32768, `BaseAttackTime`=4000, `RangeAttackTime`=4000 WHERE `entry`=17716;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=17716 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`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(17716,0,0,1,60,0,100,1,2000,2000,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Sangrias Stillblade - On Update - Say text 0 (No Repeat)'),
|
||||
(17716,0,1,0,61,0,100,0,0,0,0,0,0,53,1,17716,0,9678,0,2,1,0,0,0,0,0,0,0,0,'Sangrias Stillblade - On Update - Load path (No Repeat)'),
|
||||
(17716,0,2,0,9,0,100,1,8,25,0,0,0,11,22120,0,0,0,0,0,2,0,0,0,0,0,0,0,0,'Sangrias Stillblade - Within 8-25 Range - Cast ''Charge'' (No Repeat)'),
|
||||
(17716,0,3,0,6,0,100,1,0,0,0,0,0,15,9678,0,0,0,0,0,16,0,0,0,0,0,0,0,0,'Sangrias Stillblade - On Death - Complete quest for player party'),
|
||||
(17716,0,4,0,7,0,100,1,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Sangrias Stillblade - On Evade - despawn (No Repeat)');
|
||||
|
||||
DELETE FROM `waypoints` WHERE `entry`=17716;
|
||||
INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`point_comment`) VALUES
|
||||
(17716,1,8051.857,-7543.9897,149.69759,0,0, 'Sangrias Stillblade'),
|
||||
(17716,2,8094.734,-7541.6343,151.74496,0,0, 'Sangrias Stillblade');
|
||||
|
||||
DELETE FROM `creature_text` WHERE `CreatureID`=17716;
|
||||
INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES
|
||||
(17716,0,0, 'Defend yourself, youngling! We''ll see if there''s a Blood Knight in you, yet.',14,0,100,0,0,0,14365,0, 'Sangrias Stillblade say on attack');
|
||||
@@ -796,12 +796,15 @@ public:
|
||||
};
|
||||
|
||||
/*######
|
||||
## go_gilded_brazier (Paladin First Trail quest (9678))
|
||||
## go_gilded_brazier (Paladin quest 9678 "The First Trial")
|
||||
######*/
|
||||
|
||||
enum GildedBrazier
|
||||
{
|
||||
NPC_STILLBLADE = 17716,
|
||||
EVENT_STILLBLADE_SPAWN = 1,
|
||||
EVENT_RESET_BRAZIER = 2,
|
||||
NPC_STILLBLADE = 17716,
|
||||
QUEST_THE_FIRST_TRIAL = 9678
|
||||
};
|
||||
|
||||
class go_gilded_brazier : public GameObjectScript
|
||||
@@ -809,17 +812,73 @@ class go_gilded_brazier : public GameObjectScript
|
||||
public:
|
||||
go_gilded_brazier() : GameObjectScript("go_gilded_brazier") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
struct go_gilded_brazierAI : public GameObjectAI
|
||||
{
|
||||
if (go->GetGoType() == GAMEOBJECT_TYPE_GOOBER)
|
||||
go_gilded_brazierAI(GameObject* go) : GameObjectAI(go)
|
||||
{
|
||||
if (player->GetQuestStatus(9678) == QUEST_STATUS_INCOMPLETE)
|
||||
Initialize();
|
||||
}
|
||||
|
||||
void Initialize()
|
||||
{
|
||||
_playerGUID.Clear();
|
||||
}
|
||||
|
||||
bool GossipHello(Player* player, bool reportUse) override
|
||||
{
|
||||
if (reportUse)
|
||||
return false;
|
||||
|
||||
if (me->GetGoType() == GAMEOBJECT_TYPE_GOOBER)
|
||||
{
|
||||
if (Creature* Stillblade = player->SummonCreature(NPC_STILLBLADE, 8106.11f, -7542.06f, 151.775f, 3.02598f, TEMPSUMMON_DEAD_DESPAWN, 60000))
|
||||
Stillblade->AI()->AttackStart(player);
|
||||
if (player->GetQuestStatus(QUEST_THE_FIRST_TRIAL) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
_playerGUID = player->GetGUID();
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, 1);
|
||||
me->RemoveByteFlag(GAMEOBJECT_BYTES_1, 0, 1);
|
||||
_events.ScheduleEvent(EVENT_STILLBLADE_SPAWN, 1000);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 const diff) override
|
||||
{
|
||||
_events.Update(diff);
|
||||
|
||||
while (uint32 eventId = _events.ExecuteEvent())
|
||||
{
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_STILLBLADE_SPAWN:
|
||||
{
|
||||
if (Player* player = ObjectAccessor::GetPlayer(*me, _playerGUID))
|
||||
{
|
||||
player->SummonCreature(NPC_STILLBLADE, 8032.587f, -7524.518f, 149.68073f, 6.161012172698974609f, TEMPSUMMON_DEAD_DESPAWN, 60000);
|
||||
_events.ScheduleEvent(EVENT_RESET_BRAZIER, 4000);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case EVENT_RESET_BRAZIER:
|
||||
{
|
||||
me->RemoveFlag(GAMEOBJECT_FLAGS, 1);
|
||||
me->SetByteFlag(GAMEOBJECT_BYTES_1, 0, 1);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
private:
|
||||
EventMap _events;
|
||||
ObjectGuid _playerGUID;
|
||||
};
|
||||
|
||||
GameObjectAI* GetAI(GameObject* go) const override
|
||||
{
|
||||
return new go_gilded_brazierAI(go);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user