• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Форум » TrinityCore » [TrinityCore] Help » Despawn и Respawn GO (деспавн и респавн объектов) (С++ OregonCore)
Despawn и Respawn GO (деспавн и респавн объектов)
Stormtrooper
Командир
Всем привет
Возник очередной вопрос

Нужно чтобы моб-триггер сначала деспавнил объект GO а потом ну например когда триггер ресетится то он обнаруживал этот GO (невидимый и not spawned) и респавнил его
Подскажите как это можно сделать?

У объектов ведь нет функционала как у мобов
там Reset(); и прочее не прокатит

Я пробовал деспавнить объект через GO->SetLootState(GO_ACTIVATED); и через GO->SetLootState(GO_JUST_DEACTIVATED);
Да объект исчезает
Но потом не понятно как его вернуть обратно
А когда я воспользовался GO->SetRespawnTime(0); объект появился, но вот проблема - по второму кругу он уже пропадать отказывается
Если помог, ставь плюсик в репу :)

Сообщение # 1 написано 05.02.2021 в 17:32
Sergey996
Чемпион
Пробовал задействовать эти функции?

Код
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, draenor (6.2.4), legion (7.2.5), написание скриптов, исправлений. Цена договорная, возможен тест. Пишите в лс, не дорого.
Сообщение # 2 отредактировано Sergey996 - Суббота, 06.02.2021, 19:13
Stormtrooper
Командир
void GameObject::Delete() разве не угрохает объект из базы?
Если помог, ставь плюсик в репу :)

Сообщение # 3 написано 08.02.2021 в 11:23
Sergey996
Чемпион
Цитата Stormtrooper ()
void GameObject::Delete() разве не угрохает объект из базы?

За удаление отвечает DeleteFromDB.
Продажа готовых сборок cataclysm 4.3.4, draenor (6.2.4), legion (7.2.5), написание скриптов, исправлений. Цена договорная, возможен тест. Пишите в лс, не дорого.
Сообщение # 4 написано 09.02.2021 в 03:37
Nuturela
Скаут
Спасибо, помогло
Сообщение # 5 написано 22.02.2021 в 20:49
Форум » TrinityCore » [TrinityCore] Help » Despawn и Respawn GO (деспавн и респавн объектов) (С++ OregonCore)
  • Страница 1 из 1
  • 1
Поиск: