Scripts/Northrend: improvements for quest Get Me Outa Here! (11673) (#20753)

* Script/Quest: improvements for quest Get Me Outa Here! (11673).

* Happiness for our Travis overlord

* Update 9999_99_99_99_world_quest_get_me_outa_here.sql

* Update zone_borean_tundra.cpp

* Update 9999_99_99_99_world_quest_get_me_outa_here.sql

* Update 9999_99_99_99_world_quest_get_me_outa_here.sql

* Fix hook that got renamed

* Update 9999_99_99_99_world_quest_get_me_outa_here.sql

* Rename 9999_99_99_99_world_quest_get_me_outa_here.sql to 2019_05_11_08_world.sql
This commit is contained in:
Wyreth
2019-05-11 19:39:03 +02:00
committed by Giacomo Pozzoni
parent 21031898fe
commit 552720a993
2 changed files with 99 additions and 24 deletions

View File

@@ -0,0 +1,33 @@
--
SET @GUID := 8981;
DELETE FROM `gameobject` WHERE `guid`=@GUID AND `id`=182531;
INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `ScriptName`, `VerifiedBuild`) VALUES
(@GUID, 182531, 571, 0, 0, 1, 1, 4413.98, 5368.06, -15.5602, 3.92534, -0, -0, -0.924195, 0.381922, 300, 100, 1, "", 0);
UPDATE `creature` SET `position_x`=4414.223, `position_y`=5367.299, `position_z`=-15.49403, `orientation`=0.3665192, `spawntimesecs`=300 WHERE `id`=25589;
DELETE FROM `creature_text` WHERE `CreatureID`=25589;
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
(25589, 0, 0, "Um, hello? Is there anyone out there?", 12, 7, 100, 0, 0, 0, 24763, 0, "Bonker Togglevolt"),
(25589, 0, 1, "Hey, you! Yes, you! I can hear you! Get over here and get me outa here!", 12, 7, 100, 0, 0, 0, 24764, 0, "Bonker Togglevolt"),
(25589, 0, 2, "I'm beginning to think that they all forgot about me!", 12, 7, 100, 0, 0, 0, 24765, 0, "Bonker Togglevolt"),
(25589, 0, 3, "A gnome tries to make some friends, and then BAMM... the next thing you know, he's in shackles!", 12, 7, 100, 0, 0, 0, 24766, 0, "Bonker Togglevolt"),
(25589, 0, 4, "I'm right here. I know you can hear me. Ya think you could let me out of these chains?", 12, 7, 100, 0, 0, 0, 24767, 0, "Bonker Togglevolt"),
(25589, 0, 5, "I'll make you a deal: if you get me out of here alive, you'll get a reward larger than you can imagine!", 12, 7, 100, 0, 0, 0, 24768, 0, "Bonker Togglevolt"),
(25589, 0, 6, "Hey! Over here in Magmothregar's pit!", 12, 7, 100, 0, 0, 0, 24769, 0, "Bonker Togglevolt"),
(25589, 0, 7, "What? You think I want to be Magmothregar's next appetizer? Get me outa here!", 12, 7, 100, 0, 0, 0, 24770, 0, "Bonker Togglevolt"),
(25589, 1, 0, "Right then, no time to waste. Let's get outa here!", 12, 7, 100, 1, 0, 0, 24772, 0, "Bonker Togglevolt"),
(25589, 2, 0, "Here we go.", 12, 7, 100, 0, 0, 0, 24773, 0, "Bonker Togglevolt"),
(25589, 3, 0, "I think it's up this way to the left. Let's go!", 12, 7, 100, 0, 0, 0, 24776, 0, "Bonker Togglevolt"),
(25589, 4, 0, "Ah, fresh air! I can get myself back to the airstrip from here. Be sure to tell Fizzcrank I'm back and safe. Thanks so much, $n!", 12, 7, 100, 0, 0, 0, 24774, 0, "Bonker Togglevolt"),
(25589, 5, 0, "Filthy creature!", 12, 7, 100, 0, 0, 0, 24777, 0, "Bonker Togglevolt"),
(25589, 5, 1, "I came here to talk, but you mindless things tried to kill me instead!", 12, 7, 100, 0, 0, 0, 24778, 0, "Bonker Togglevolt"),
(25589, 5, 2, "You won't put me in chains again!", 12, 7, 100, 0, 0, 0, 24779, 0, "Bonker Togglevolt"),
(25589, 5, 3, "I AM NOT AN APPETIZER!", 12, 7, 100, 0, 0, 0, 24780, 0, "Bonker Togglevolt"),
(25589, 5, 4, "The only good vermen is a dead vermen!", 12, 7, 100, 0, 0, 0, 24781, 0, "Bonker Togglevolt"),
(25589, 5, 5, "Enough fighting! Let's finish this and get outa here!", 12, 7, 100, 0, 0, 0, 24782, 0, "Bonker Togglevolt"),
(25589, 5, 6, "Hey! I'm walking here!", 12, 7, 100, 0, 0, 0, 24783, 0, "Bonker Togglevolt"),
(25589, 5, 7, "I can't believe my own people forgot about me. Die!", 12, 7, 100, 0, 0, 0, 24784, 0, "Bonker Togglevolt");
UPDATE `script_waypoint` SET `waittime`=0 WHERE `entry`=25589 AND `pointid` IN (2, 22);
UPDATE `script_waypoint` SET `waittime`=3000 WHERE `entry`=25589 AND `pointid`=29;

View File

@@ -239,7 +239,7 @@ enum Corastrasza
NPC_TEXT_EAGERLY_AWAITING_YOUR_RETURN = 14170,
QUEST_ACES_HIGH = 13413,
QUEST_ACES_HIGH_DAILY = 13414,
QUEST_ACES_HIGH_DAILY = 13414,
SPELL_SUMMON_WYRMREST_SKYTALON = 61240,
SPELL_WYRMREST_SKYTALON_RIDE_PERIODIC = 61244
@@ -305,7 +305,7 @@ enum Iruk
GOSSIP_OPTION_SEARCH_CORPSE = 0,
NPC_TEXT_THIS_YOUNG_TUSKARR = 12585,
QUEST_SPIRITS_WATCH_OVER_US = 11961,
QUEST_SPIRITS_WATCH_OVER_US = 11961,
SPELL_CREATE_TOTEM_OF_ISSLIRUK = 46816
};
@@ -336,7 +336,7 @@ public:
if (action == GOSSIP_ACTION_INFO_DEF + 1)
{
player->CastSpell(player, SPELL_CREATE_TOTEM_OF_ISSLIRUK, true);
CloseGossipMenuFor(player);
CloseGossipMenuFor(player);
}
return true;
}
@@ -1264,16 +1264,16 @@ public:
if (soulBlastTimer <= diff)
{
DoCastVictim(SPELL_SOUL_BLAST);
soulBlastTimer = urand(12000, 18000);
}
soulBlastTimer = urand(12000, 18000);
}
else soulBlastTimer -= diff;
}
DoMeleeAttackIfReady();
}
}
void JustDied(Unit* killer) override
{
void JustDied(Unit* killer) override
{
if (!leryssaGUID || !arlosGUID)
return;
@@ -1730,11 +1730,20 @@ public:
enum BonkerTogglevolt
{
NPC_BONKER_TOGGLEVOLT = 25589,
QUEST_GET_ME_OUTA_HERE = 11673,
NPC_BONKER_TOGGLEVOLT = 25589,
GO_BALL_AND_CHAIN = 182531,
QUEST_GET_ME_OUTA_HERE = 11673,
SAY_BONKER_1 = 0,
SAY_BONKER_2 = 1
EVENT_OOC_TALK = 1,
EVENT_TALK_1 = 2,
EVENT_TALK_2 = 3,
SAY_BONKER_0 = 0,
SAY_BONKER_1 = 1,
SAY_BONKER_2 = 2,
SAY_BONKER_3 = 3,
SAY_BONKER_4 = 4,
SAY_BONKER_5 = 5
};
class npc_bonker_togglevolt : public CreatureScript
@@ -1751,14 +1760,11 @@ public:
void Initialize()
{
Bonker_agro = 0;
_events.ScheduleEvent(EVENT_OOC_TALK, urand(10000, 20000));
}
uint32 Bonker_agro;
void Reset() override
{
Initialize();
SetDespawnAtFar(false);
}
@@ -1768,18 +1774,43 @@ public:
player->FailQuest(QUEST_GET_ME_OUTA_HERE);
}
void UpdateEscortAI(uint32 /*diff*/) override
void JustEngagedWith(Unit* who) override
{
if (IsActiveAttacker() && UpdateVictim())
if (who->GetTypeId() != TYPEID_PLAYER)
if (roll_chance_i(20))
Talk(SAY_BONKER_5);
}
void UpdateEscortAI(uint32 diff) override
{
_events.Update(diff);
if (uint32 eventId = _events.ExecuteEvent())
{
if (Bonker_agro == 0)
switch (eventId)
{
Talk(SAY_BONKER_1);
Bonker_agro++;
case EVENT_OOC_TALK:
Talk(SAY_BONKER_0);
_events.ScheduleEvent(EVENT_OOC_TALK, urand(5 * MINUTE * IN_MILLISECONDS, 10 * MINUTE * IN_MILLISECONDS));
break;
case EVENT_TALK_1:
if (Player* player = ObjectAccessor::GetPlayer(*me, _player))
Talk(SAY_BONKER_1, player);
if (GameObject* go = me->FindNearestGameObject(GO_BALL_AND_CHAIN, 20.0f))
go->SetLootState(GO_JUST_DEACTIVATED);
_events.ScheduleEvent(EVENT_TALK_2, Seconds(11));
break;
case EVENT_TALK_2:
Talk(SAY_BONKER_2);
me->SetReactState(REACT_AGGRESSIVE);
break;
}
DoMeleeAttackIfReady();
}
else Bonker_agro=0;
if (!UpdateVictim())
return;
DoMeleeAttackIfReady();
}
void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override
@@ -1790,8 +1821,12 @@ public:
switch (waypointId)
{
case 1:
Talk(SAY_BONKER_3);
break;
case 29:
player->GroupEventHappens(QUEST_GET_ME_OUTA_HERE, me);
Talk(SAY_BONKER_4, player);
break;
}
}
@@ -1800,11 +1835,18 @@ public:
{
if (quest->GetQuestId() == QUEST_GET_ME_OUTA_HERE)
{
_player = player->GetGUID();
me->SetStandState(UNIT_STAND_STATE_STAND);
Talk(SAY_BONKER_2, player);
_events.ScheduleEvent(EVENT_TALK_1, Seconds(2));
_events.CancelEvent(EVENT_OOC_TALK);
Start(true, true, player->GetGUID());
SetPauseTimer(12 * IN_MILLISECONDS);
}
}
private:
EventMap _events;
ObjectGuid _player;
};
CreatureAI* GetAI(Creature* creature) const override