Возвращаемся к старой теме.
В ObjectMgr.cpp есть метод void ObjectMgr::AddGameobjectToGrid(uint32 guid, GameObjectData const* data), который вызывается при загрузке го из таблицы `gameobject`, при старте эвента и в пулл-системе, но туда надо передавать реальный гуид объекта.
Если происходит каст спелла с суммоном го, то там вызывается свой метод добавления ловушки: void GameObject::SummonLinkedTrapIfAny().
При спавне, использовании и деспавне оба го (основной и ловушка) должны отрабатывать вместе.
1. Надо ли сразу загружать го-ловушки или добавлять при появлении основного го в мире (эвент, пулл, каст и т.д.)?
2. Может, в структуре основного го должен храниться гуид ловушки и наоборот, чтобы можно было правильно определить связь между ними?
3. Где лучше всего разместить обработчик хотя бы для спавна, чтобы учесть все случаи появления го в мире?
|