codels / TrinityNya

THIS IS NOT BLIZZLIKE!!! (TrinityCore Open Source MMO Framework)
http://www.trinitycore.info
GNU General Public License v2.0
20 stars 3 forks source link

GM Mode Battleground Bag #5

Open Expecto opened 12 years ago

Expecto commented 12 years ago

Суть бага заключается в следующем,заходим персонажем в игру,включаем гм режим,вводим комманду, GM on потом вводим комманду .debug bg и регаем любое бг,попадая на полея боя,у игрока визуально пропадают все обьекты на карте,ворота,флаги,и не работает таймер до начала боя на бг,ливаем с бг,выключаем гм режим и регистрируемся снова,при попадании на бг,поле боя работает корректно,такая проблема стала появлятся после внедерения в ядро mod_arena_watcher а именно в файле MovementHandler.cpp

При откатывании нпс все поля боя для гм игрока работают превосходно,проблема заключается в следующей строке

    else if (Battleground* bg = _player->GetBattleground())
    {
        if (_player->IsInvitedForBattlegroundInstance(_player->GetBattlegroundId()))
            if (!_player->isGameMaster())
                bg->AddPlayer(_player);
    }
}

Оригинальный коммит тут -> https://github.com/avalonfr/TrinityCore/commit/f5fdeaea974cc7ba626c0a4716a2a0da3d582e71

как вариант вырезать строчку if (!_player->isGameMaster()) или через GetSession());

codels commented 12 years ago

Проблема вся в том что режим игрового мастера не продуман с точки зрения поля боя, в стандартном ядре он обрабатывается полностью как игрок (вступает в определенную команду и т.п.) соответственно он может влиять на само сражение, данная строчка служит в основном для блокировки как раз такого влияния, возможно надо просто расширить возможности AW чтобы можно было игровым мастером спокойно модерировать участок.