mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-13 11:43:18 -04:00
Core/Scripts: SMSG_PLAY_ONE_SHOT_ANIM_KIT corrections. Thx to Arci
This commit is contained in:
@@ -13429,6 +13429,17 @@ void Unit::SendDurabilityLoss(Player* receiver, uint32 percent)
|
||||
receiver->GetSession()->SendPacket(packet.Write());
|
||||
}
|
||||
|
||||
void Unit::PlayOneShotAnimKitId(uint16 animKitId)
|
||||
{
|
||||
if (animKitId && !sAnimKitStore.LookupEntry(animKitId))
|
||||
return;
|
||||
|
||||
WorldPackets::Misc::PlayOneShotAnimKit data;
|
||||
data.Unit = GetGUID();
|
||||
data.AnimKitID = animKitId;
|
||||
SendMessageToSet(data.Write(), true);
|
||||
}
|
||||
|
||||
void Unit::SetAIAnimKitId(uint16 animKitId)
|
||||
{
|
||||
if (_aiAnimKitId == animKitId)
|
||||
@@ -13477,14 +13488,6 @@ void Unit::SetMeleeAnimKitId(uint16 animKitId)
|
||||
SendMessageToSet(data.Write(), true);
|
||||
}
|
||||
|
||||
void Unit::PlayOneShotAnimKit(uint16 animKitId)
|
||||
{
|
||||
WorldPacket data(SMSG_PLAY_ONE_SHOT_ANIM_KIT, 7+2);
|
||||
data << GetPackGUID();
|
||||
data << uint16(animKitId);
|
||||
SendMessageToSet(&data, true);
|
||||
}
|
||||
|
||||
void Unit::Kill(Unit* victim, bool durabilityLoss)
|
||||
{
|
||||
// Prevent killing unit twice (and giving reward from kill twice)
|
||||
|
||||
@@ -1499,13 +1499,13 @@ class Unit : public WorldObject
|
||||
MountCapabilityEntry const* GetMountCapability(uint32 mountType) const;
|
||||
|
||||
void SendDurabilityLoss(Player* receiver, uint32 percent);
|
||||
void PlayOneShotAnimKitId(uint16 animKitId);
|
||||
void SetAIAnimKitId(uint16 animKitId);
|
||||
uint16 GetAIAnimKitId() const override { return _aiAnimKitId; }
|
||||
void SetMovementAnimKitId(uint16 animKitId);
|
||||
uint16 GetMovementAnimKitId() const override { return _movementAnimKitId; }
|
||||
void SetMeleeAnimKitId(uint16 animKitId);
|
||||
uint16 GetMeleeAnimKitId() const override { return _meleeAnimKitId; }
|
||||
void PlayOneShotAnimKit(uint16 animKitId);
|
||||
|
||||
uint16 GetMaxSkillValueForLevel(Unit const* target = NULL) const { return (target ? getLevelForTarget(target) : getLevel()) * 5; }
|
||||
void DealDamageMods(Unit* victim, uint32 &damage, uint32* absorb);
|
||||
|
||||
@@ -892,7 +892,7 @@ void Map::ScriptsProcess()
|
||||
case SCRIPT_COMMAND_PLAY_ANIMKIT:
|
||||
// Source must be Creature.
|
||||
if (Creature* cSource = _GetScriptCreature(source, true, step.script))
|
||||
cSource->PlayOneShotAnimKit(step.script->PlayAnimKit.AnimKitID);
|
||||
cSource->PlayOneShotAnimKitId(step.script->PlayAnimKit.AnimKitID);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -524,6 +524,14 @@ WorldPacket const* WorldPackets::Misc::LoadCUFProfiles::Write()
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Misc::PlayOneShotAnimKit::Write()
|
||||
{
|
||||
_worldPacket << Unit;
|
||||
_worldPacket << uint16(AnimKitID);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Misc::SetAIAnimKit::Write()
|
||||
{
|
||||
_worldPacket << Unit;
|
||||
|
||||
@@ -666,6 +666,17 @@ namespace WorldPackets
|
||||
std::vector<CUFProfile const*> CUFProfiles;
|
||||
};
|
||||
|
||||
class PlayOneShotAnimKit final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
PlayOneShotAnimKit() : ServerPacket(SMSG_PLAY_ONE_SHOT_ANIM_KIT, 7 + 2) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid Unit;
|
||||
uint16 AnimKitID = 0;
|
||||
};
|
||||
|
||||
class SetAIAnimKit final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -281,7 +281,7 @@ class npc_blazing_monstrosity : public CreatureScript
|
||||
{
|
||||
DoZoneInCombat();
|
||||
me->RemoveAurasDueToSpell(SPELL_SLEEP_ULTRA_HIGH_PRIORITY);
|
||||
me->PlayOneShotAnimKit(ANIM_KIT_BIRD_WAKE);
|
||||
me->PlayOneShotAnimKitId(ANIM_KIT_BIRD_WAKE);
|
||||
_events.Reset();
|
||||
_events.ScheduleEvent(EVENT_START_SPITTING, 6000);
|
||||
_events.ScheduleEvent(EVENT_CONTINUE_SPITTING, 9000);
|
||||
@@ -602,7 +602,7 @@ class spell_alysrazor_turn_monstrosity : public SpellScriptLoader
|
||||
void TurnBird(SpellEffIndex effIndex)
|
||||
{
|
||||
PreventHitDefaultEffect(effIndex);
|
||||
GetHitUnit()->PlayOneShotAnimKit(ANIM_KIT_BIRD_TURN);
|
||||
GetHitUnit()->PlayOneShotAnimKitId(ANIM_KIT_BIRD_TURN);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
||||
Reference in New Issue
Block a user