feat(Core): add OnDisplayId hook (#12320)
This commit is contained in:
@@ -16359,6 +16359,8 @@ void Unit::SetDisplayId(uint32 modelId)
|
|||||||
// Set Gender by modelId
|
// Set Gender by modelId
|
||||||
if (CreatureModelInfo const* minfo = sObjectMgr->GetCreatureModelInfo(modelId))
|
if (CreatureModelInfo const* minfo = sObjectMgr->GetCreatureModelInfo(modelId))
|
||||||
SetByteValue(UNIT_FIELD_BYTES_0, 2, minfo->gender);
|
SetByteValue(UNIT_FIELD_BYTES_0, 2, minfo->gender);
|
||||||
|
|
||||||
|
sScriptMgr->OnDisplayIdChange(this, modelId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Unit::RestoreDisplayId()
|
void Unit::RestoreDisplayId()
|
||||||
|
|||||||
@@ -210,3 +210,11 @@ void ScriptMgr::OnUnitUpdate(Unit* unit, uint32 diff)
|
|||||||
script->OnUnitUpdate(unit, diff);
|
script->OnUnitUpdate(unit, diff);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ScriptMgr::OnDisplayIdChange(Unit* unit, uint32 displayId)
|
||||||
|
{
|
||||||
|
ExecuteScript<UnitScript>([&](UnitScript* script)
|
||||||
|
{
|
||||||
|
script->OnDisplayIdChange(unit, displayId);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|||||||
@@ -459,6 +459,8 @@ public:
|
|||||||
* @param diff Contains information about the diff time
|
* @param diff Contains information about the diff time
|
||||||
*/
|
*/
|
||||||
virtual void OnUnitUpdate(Unit* /*unit*/, uint32 /*diff*/) { }
|
virtual void OnUnitUpdate(Unit* /*unit*/, uint32 /*diff*/) { }
|
||||||
|
|
||||||
|
virtual void OnDisplayIdChange(Unit* /*unit*/, uint32 /*displayId*/) { }
|
||||||
};
|
};
|
||||||
|
|
||||||
class MovementHandlerScript : public ScriptObject
|
class MovementHandlerScript : public ScriptObject
|
||||||
@@ -2400,6 +2402,7 @@ public: /* UnitScript */
|
|||||||
bool IsCustomBuildValuesUpdate(Unit const* unit, uint8 updateType, ByteBuffer& fieldBuffer, Player const* target, uint16 index);
|
bool IsCustomBuildValuesUpdate(Unit const* unit, uint8 updateType, ByteBuffer& fieldBuffer, Player const* target, uint16 index);
|
||||||
bool OnBuildValuesUpdate(Unit const* unit, uint8 updateType, ByteBuffer& fieldBuffer, Player* target, uint16 index);
|
bool OnBuildValuesUpdate(Unit const* unit, uint8 updateType, ByteBuffer& fieldBuffer, Player* target, uint16 index);
|
||||||
void OnUnitUpdate(Unit* unit, uint32 diff);
|
void OnUnitUpdate(Unit* unit, uint32 diff);
|
||||||
|
void OnDisplayIdChange(Unit* unit, uint32 displayId);
|
||||||
|
|
||||||
public: /* MovementHandlerScript */
|
public: /* MovementHandlerScript */
|
||||||
void OnPlayerMove(Player* player, MovementInfo movementInfo, uint32 opcode);
|
void OnPlayerMove(Player* player, MovementInfo movementInfo, uint32 opcode);
|
||||||
|
|||||||
Reference in New Issue
Block a user