From 366768cc95331d2bb53e0dfb79ff7139bb20a7d9 Mon Sep 17 00:00:00 2001 From: SylvaniaCore deploy Date: Tue, 11 Aug 2026 23:46:22 +0200 Subject: [PATCH] BG BotFill : les bots acceptent l invitation au BG (schedule EnterBG jamais pousse) BGSType_EnterBG n avait aucun site d emission : les bots restaient invites jusqu a expiration et le joueur entrait seul dans le BG. InviteGroupToBG pousse desormais le schedule aux sessions bots, et ProcessEnterBG utilise le slot de file reel comme Ticket.Id (attendu par HandleBattleFieldPort). Co-Authored-By: Claude Fable 5 --- src/server/game/Battlegrounds/BattlegroundQueue.cpp | 10 ++++++++++ src/server/game/Server/PlayerBotSession.cpp | 5 +++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/server/game/Battlegrounds/BattlegroundQueue.cpp b/src/server/game/Battlegrounds/BattlegroundQueue.cpp index 55769e9..1c604cc 100644 --- a/src/server/game/Battlegrounds/BattlegroundQueue.cpp +++ b/src/server/game/Battlegrounds/BattlegroundQueue.cpp @@ -496,6 +496,16 @@ bool BattlegroundQueue::InviteGroupToBG(GroupQueueInfo* ginfo, Battleground* bg, WorldPackets::Battleground::BattlefieldStatusNeedConfirmation battlefieldStatus; sBattlegroundMgr->BuildBattlegroundStatusNeedConfirmation(&battlefieldStatus, bg, player, queueSlot, player->GetBattlegroundQueueJoinTime(bgQueueTypeId), INVITE_ACCEPT_WAIT_TIME, ginfo->ArenaType); player->SendDirectMessage(battlefieldStatus.Write()); + + // SylvaniaCore (module BG BotFill): un vrai client repond a l invitation par + // CMSG_BATTLEFIELD_PORT ; pour un bot, personne ne poussait le schedule + // d acceptation -> les bots restaient invites jusqu a expiration. + if (PlayerBotSession* botSession = dynamic_cast(player->GetSession())) + { + BotGlobleSchedule enterSchedule(BotGlobleScheduleType::BGSType_EnterBG, player->GetGUID()); + enterSchedule.parameter1 = queueSlot; + botSession->PushScheduleToQueue(enterSchedule); + } } return true; } diff --git a/src/server/game/Server/PlayerBotSession.cpp b/src/server/game/Server/PlayerBotSession.cpp index 14cb633..8156dc3 100644 --- a/src/server/game/Server/PlayerBotSession.cpp +++ b/src/server/game/Server/PlayerBotSession.cpp @@ -509,8 +509,9 @@ bool PlayerBotSession::ProcessEnterBG(BotGlobleSchedule& schedule) WorldPacket cmd(CMSG_BATTLEFIELD_PORT); WorldPackets::Battleground::BattlefieldPort packet(std::move(cmd)); - packet.Ticket.Id = schedule.parameter1; - packet.Ticket.RequesterGuid = schedule.playerGUID; + // SylvaniaCore (module BG BotFill): le handler attend le slot de file + packet.Ticket.Id = i; + packet.Ticket.RequesterGuid = player->GetGUID(); packet.Ticket.Type = WorldPackets::LFG::RideType::Battlegrounds; packet.Ticket.Time = time(0); packet.AcceptedInvite = true;