- edited description
Crash bot_druid_ai::doInnervate
- Ревизия:
- https://bitbucket.org/trickerer/trinity-bots/commits/c29d811986f83b754d551edf65460ed71b0d0a64
- Аптайм: 2 дня.
- Краш Лог: http://pastebin.com/WitNC3xN
Comments (17)
-
reporter -
repo owner Скорее всего здесь:
if (!iTarget)//cycle through player members... { for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next()) { Player* tPlayer = itr->getSource(); - if (tPlayer == NULL || !tPlayer->isInCombat() || tPlayer->isDead()) continue; + if (tPlayer == NULL || !tPlayer->IsInWorld() || !tPlayer->isInCombat() || tPlayer->isDead()) continue; if (me->GetExactDist(tPlayer) > 30) continue; if (GetManaPCT(tPlayer) < minmanaval && !tPlayer->HasAura(INNERVATE)) { iTarget = tPlayer; break; } }
Я уже правил такие ошибки массово, похоже пропустил.
-
repo owner Алсо какой онлайн? У меня до сих пор были большие сомнения по поводу стабильности ботов, ибо у самого нет возможности опробовать их при нормальном онлайне.
-
reporter Онлайн 100+ Вот еще возник краш, но официальные разработчики отрицают что проблема у них и ссылаются на мои кастомные линии в файле. В worldsession.cpp у меня присутствуют только боты. https://github.com/TrinityCore/TrinityCore/issues/9604
-
repo owner К ботам явно не относится. Этот мод не манипулирует объектами внутри сессии и использует стандартные функции для логина/логаута ботов, так что инвалидный указатель на игрока здесь связан с чем-то другим. Единственный объект, который добавляется в сессию - m_master (указатель на владельца), но он ядром не используется
-
repo owner Сегодня получил такой же краш при онлайне 0 (то есть при логауте).
WorldSession.cpp:L176ss << "[Player: " << GetPlayerName() << " (Guid: " << (_player != NULL ? _player->GetGUID() : 0) << ", Account: " << GetAccountId() << ")]";
краш в строке 177
<< " (Guid: " << (_player != NULL ? _player->GetGUID() : 0)
При этом _player = 0x00000000.
Скорее всего это мультитрединг. -
reporter https://github.com/TrinityCore/TrinityCore/issues/9604#issuecomment-16075488 Подтвердите тогда пожалуйста.
-
reporter Не помог фикс. http://pastebin.com/SdQ72mir
-
reporter К слову о друидах еще. http://i020.radikal.ru/1304/fd/4566e7cc7a3d.png http://s020.radikal.ru/i708/1304/b3/9ba95f817a42.png На этих скринах, роге вешается баф: http://ru.wowhead.com/spell=32645 Но друид его диспелит почему-то как вражескую ауру. О.о
Тоже самое и с: http://ru.wowhead.com/spell=15852 от http://ru.wowhead.com/spell=15906
-
repo owner bot_druid_ai.cpp:L666
} } } - if (!iTarget)//cycle through player members... + if (!iTarget && group)//cycle through player members... { for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next()) { Player* tPlayer = itr->getSource(); if (tPlayer == NULL || !tPlayer->IsInWorld() || !tPlayer->isInCombat() || tPlayer->isDead()) continue; if (me->GetExactDist(tPlayer) > 30) continue; if (GetManaPCT(tPlayer) < minmanaval && !tPlayer->HasAura(INNERVATE)) { iTarget = tPlayer; break; } } } - if (!iTarget)//... and their bots. + if (!iTarget && group)//... and their bots. { for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next()) { Player* tPlayer = itr->getSource();
Эпичный фейл
-
repo owner Это просто. Список аур которые могут быть диспеллены формируется с использованием внутренних функций Тринити. Так что бот пытается снять всё что можно снять.
По поводу энвенома это конечно странно (это разрабам ответ держать).
У меня сейчас сессия так что посмотрю потом как адартировать формирование дипел листа под ботов. -
reporter Да краш похоже пропал. Но теперь отследил новый. Ревизия ботов таже что и в шапке иссуе. http://pastebin.com/9x17WFku 2607 строка: http://pastebin.com/JQYbUSvE
-
repo owner Игрок уничтожен во время обновления, понятия не имею как у тебя это возможно.
000000013FDA49E9 000000002E40FB90 Object::HasFlag+49 e:\addons_28_03_2013\src\server\game\entities\object\object.cpp line 1205 Local <user defined> 'this' = 0
-
reporter http://pastebin.com/qFdnjXdu На ревизии с последним мерджом тринити. 754 линия
if (master->GetMap() != target->FindMap()) continue;
-
repo owner попробуй после b158a3cfb1
-
repo owner алсо пофиксил диспел 58e9e10b74
-
repo owner - changed status to resolved
давно пора
- Log in to comment