|
|
Модератор форума: Dimitro |
Форум TrinityCore [TrinityCore] Help Despawn и Respawn GO (деспавн и респавн объектов) (С++ OregonCore) |
Despawn и Respawn GO (деспавн и респавн объектов) |
Всем привет
Возник очередной вопрос Нужно чтобы моб-триггер сначала деспавнил объект GO а потом ну например когда триггер ресетится то он обнаруживал этот GO (невидимый и not spawned) и респавнил его Подскажите как это можно сделать? У объектов ведь нет функционала как у мобов там Reset(); и прочее не прокатит Я пробовал деспавнить объект через GO->SetLootState(GO_ACTIVATED); и через GO->SetLootState(GO_JUST_DEACTIVATED); Да объект исчезает Но потом не понятно как его вернуть обратно А когда я воспользовался GO->SetRespawnTime(0); объект появился, но вот проблема - по второму кругу он уже пропадать отказывается
Если помог, ставь плюсик в репу :)
Сообщение # 1 написано 05.02.2021 в 17:32
|
Пробовал задействовать эти функции?
Код void GameObject::Delete() { SetLootState(GO_NOT_READY); SendObjectDeSpawnAnim(GetGUID()); SetGoState(GO_STATE_READY); SetUInt32Value(GAMEOBJECT_FLAGS, GetGOInfo()->flags); uint32 poolid = GetDBTableGUIDLow() ? sPoolMgr.IsPartOfAPool<GameObject>(GetDBTableGUIDLow()) : 0; if (poolid) sPoolMgr.UpdatePool<GameObject>(poolid, GetDBTableGUIDLow()); else AddObjectToRemoveList(); } Для деспавна, а для респавна Цитата void GameObject::Respawn() { if (m_spawnedByDefault && m_respawnTime > 0) { m_respawnTime = time(NULL); GetMap()->RemoveGORespawnTime(m_spawnId); } } Из gameobject.cpp
Продажа готовых сборок cataclysm 4.3.4, legion (7.3.5), shadowlands, draginflight. Исправление спеллов, квестов, крашей на любых версиях вов. Цена договорная. Пишите в лс, не дорого.
|
Сообщение # 4 написано 09.02.2021 в 03:37
|
| |||
| |||