When player skins a creature it will tell instance aswell.

closes #614
This commit is contained in:
talamortis
2017-11-20 19:58:43 +00:00
parent 0eedd4edcf
commit 9a07a1ae18
4 changed files with 27 additions and 0 deletions

View File

@@ -9269,6 +9269,12 @@ void Player::SendLoot(uint64 guid, LootType loot_type)
loot->FillLoot(creature->GetCreatureTemplate()->SkinLootId, LootTemplates_Skinning, this, true);
permission = OWNER_PERMISSION;
//Inform instance if creature is skinned.
if (InstanceScript* mapInstance = creature->GetInstanceScript())
{
mapInstance->CreatureLooted(creature, LOOT_SKINNING);
}
// Xinef: Set new loot recipient
creature->SetLootRecipient(this, false);
}

View File

@@ -134,6 +134,9 @@ class InstanceScript : public ZoneScript
//On load
virtual void Load(char const* data) { LoadBossState(data); }
//Called when creature is Looted
virtual void CreatureLooted(Creature* /*creature*/, LootType) {}
//When save is needed, this function generates the data
virtual std::string GetSaveData() { return GetBossSaveData(); }

View File

@@ -110,4 +110,9 @@ enum GameObjectsIds
GO_UROK_PILE = 175621,
};
enum npcspells
{
SPELL_FINKLE_IS_EINHORN = 16710
};
#endif

View File

@@ -67,6 +67,19 @@ public:
memset(go_emberseerrunes, 0, sizeof(go_emberseerrunes));
}
void CreatureLooted(Creature* creature, LootType loot) override
{
switch (creature->GetEntry())
{
case NPC_THE_BEAST:
if (loot == LOOT_SKINNING)
{
creature->CastSpell(creature, SPELL_FINKLE_IS_EINHORN, true);
}
break;
}
}
void OnCreatureCreate(Creature* creature)
{
switch (creature->GetEntry())