DB/Core: Proper hover height + flying animations for vanity pets (#1237)

Fix hover height and some animations of vanity pets
The smart script for the Wind Rider Cub can also be used for the Gryphon Hatchling.
This commit is contained in:
Stoabrogga
2019-01-06 18:52:06 +01:00
committed by Barbz
parent 554910aa6d
commit c019214a3f
2 changed files with 135 additions and 27 deletions

View File

@@ -0,0 +1,112 @@
INSERT INTO version_db_world (`sql_rev`) VALUES ('1546694249586814731');
-- Moths:
DELETE FROM `creature_template_addon` WHERE `entry` IN (21008,21009,21010,21018);
INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`)
VALUES
(21008,0,0,33554432,0,0,''),
(21009,0,0,33554432,0,0,''),
(21010,0,0,33554432,0,0,''),
(21018,0,0,33554432,0,0,'');
UPDATE `creature_template` SET `ScriptName` = 'npc_pet_gen_moth' WHERE `entry` IN (21008,21009,21010,21018);
-- Gryphon Hatchling / Wind Rider Cub:
DELETE FROM `creature_template_addon` WHERE `entry` IN (36908,36909);
INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`)
VALUES
(36908,0,0,50331648,0,0,''),
(36909,0,0,50331648,0,0,'');
-- The smart script for the Wind Rider Cub can also be used for the Gryphon Hatchling:
UPDATE `creature_template` SET `ScriptName` = 'npc_pet_gen_wind_rider_cub' WHERE `entry` = 36908;
-- Dragonhawk Hatchlings:
DELETE FROM `creature_template_addon` WHERE `entry` IN (21055,21056,21063,21064);
INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`)
VALUES
(21055,0,0,33554432,0,0,''),
(21056,0,0,33554432,0,0,''),
(21063,0,0,33554432,0,0,''),
(21064,0,0,33554432,0,0,'');
-- Dragon Whelplings (including Frosty and Netherwhelp):
DELETE FROM `creature_template_addon` WHERE `entry` IN (7543,7544,7545,7547,36607,28883,18381);
INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`)
VALUES
(7543,0,0,33554432,0,0,''),
(7544,0,0,33554432,0,0,''),
(7545,0,0,33554432,0,0,''),
(7547,0,0,33554432,0,0,''),
(36607,0,0,33554432,0,0,''),
(28883,0,0,33554432,0,0,''),
(18381,0,0,33554432,0,0,'');
-- Parrots:
DELETE FROM `creature_template_addon` WHERE `entry` IN (7390,7387,7391,22445,7389);
INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`)
VALUES
(7390,0,0,33554432,0,0,''),
(7387,0,0,33554432,0,0,''),
(7391,0,0,33554432,0,0,''),
(22445,0,0,33554432,0,0,''),
(7389,0,0,33554432,0,0,'');
-- Tickbird Hatchlings:
DELETE FROM `creature_template_addon` WHERE `entry` IN (32589,32590);
INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`)
VALUES
(32589,0,0,33554432,0,0,''),
(32590,0,0,33554432,0,0,'');
-- Owls:
DELETE FROM `creature_template_addon` WHERE `entry` IN (7553,7555);
INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`)
VALUES
(7553,0,0,33554432,0,0,''),
(7555,0,0,33554432,0,0,'');
-- Batlings:
DELETE FROM `creature_template_addon` WHERE `entry` IN (28513,33197);
INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`)
VALUES
(28513,0,0,33554432,0,0,''),
(33197,0,0,33554432,0,0,'');
-- Sprite Darter Hatchling:
DELETE FROM `creature_template_addon` WHERE `entry` IN (9662);
INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`)
VALUES
(9662,0,0,33554432,0,0,'');
-- Willy:
UPDATE `creature_template_addon` SET `bytes1` = 33554432 WHERE `entry` = 23231;
-- Firefly:
DELETE FROM `creature_template_addon` WHERE `entry` IN (21076);
INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`)
VALUES
(21076,0,0,33554432,0,0,'');
-- Mana Wyrmling:
DELETE FROM `creature_template_addon` WHERE `entry` IN (20408);
INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`)
VALUES
(20408,0,0,33554432,0,0,'');
-- Nether Ray Fry:
DELETE FROM `creature_template_addon` WHERE `entry` IN (28470);
INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`)
VALUES
(28470,0,0,33554432,0,0,'');
-- Phoenix Hatchling:
DELETE FROM `creature_template_addon` WHERE `entry` IN (26119);
INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`)
VALUES
(26119,0,0,33554432,0,0,'');
-- Tiny Sporebat:
DELETE FROM `creature_template_addon` WHERE `entry` IN (25062);
INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`)
VALUES
(25062,0,0,33554432,0,0,'');

View File

@@ -704,7 +704,6 @@ public:
{
npc_pet_gen_wind_rider_cubAI(Creature *c) : NullCreatureAI(c)
{
allowMove = true;
isFlying = true;
checkTimer = 0;
checkTimer2 = 2000;
@@ -712,16 +711,9 @@ public:
}
bool isFlying;
bool allowMove;
uint32 checkTimer;
uint32 checkTimer2;
void MovementInform(uint32 type, uint32 id)
{
if (type == POINT_MOTION_TYPE && id == 1)
allowMove = true;
}
void UpdateAI(uint32 diff)
{
checkTimer2 += diff;
@@ -730,7 +722,7 @@ public:
checkTimer2 = 0;
if (Unit* owner = me->GetOwner())
{
if (owner->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED))
if (owner->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED) || owner->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_SPEED))
{
isFlying = true;
me->SetCanFly(true);
@@ -745,24 +737,6 @@ public:
}
}
}
checkTimer += diff;
if (allowMove || checkTimer > 2000)
{
allowMove = false;
checkTimer = 0;
if (Unit* owner = me->GetOwner())
{
if (me->GetMotionMaster()->GetMotionSlotType(MOTION_SLOT_ACTIVE) == POINT_MOTION_TYPE ||
me->GetDistance(owner) < 1.0f)
return;
float x, y, z;
owner->GetNearPoint2D(x, y, 0.5f, owner->GetOrientation()+PET_FOLLOW_ANGLE);
z = owner->GetPositionZ() + (isFlying ? 2.5f : 0.0f);
me->GetMotionMaster()->MovePoint(1, x, y, z);
}
}
}
};
@@ -956,6 +930,27 @@ public:
}
};
class npc_pet_gen_moth : public CreatureScript
{
public:
npc_pet_gen_moth() : CreatureScript("npc_pet_gen_moth") { }
struct npc_pet_gen_mothAI : public NullCreatureAI
{
npc_pet_gen_mothAI(Creature *c) : NullCreatureAI(c)
{
me->AddUnitState(UNIT_STATE_NO_ENVIRONMENT_UPD);
me->SetCanFly(true);
me->SetDisableGravity(true);
}
};
CreatureAI* GetAI(Creature* pCreature) const
{
return new npc_pet_gen_mothAI (pCreature);
}
};
void AddSC_generic_pet_scripts()
{
new npc_pet_gen_mojo();
@@ -970,4 +965,5 @@ void AddSC_generic_pet_scripts()
new npc_pet_gen_plump_turkey();
new npc_pet_gen_toxic_wasteling();
new npc_pet_gen_fetch_ball();
new npc_pet_gen_moth();
}