From 233677007b1c56896df14adfc743438eb6ca8a22 Mon Sep 17 00:00:00 2001 From: SylvaniaCore deploy Date: Wed, 17 Jun 2026 09:02:32 +0000 Subject: [PATCH] fix(playerbot): desactive tous les bots via pbotall=0 (serveur blizzlike) + corrige le crash issue #56 (irand min>max du tick BG/arene) --- src/server/game/PlayerBot/PlayerBotMgr.cpp | 4 ++++ src/server/game/World/World.cpp | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/server/game/PlayerBot/PlayerBotMgr.cpp b/src/server/game/PlayerBot/PlayerBotMgr.cpp index 5ecdfd4..886110f 100644 --- a/src/server/game/PlayerBot/PlayerBotMgr.cpp +++ b/src/server/game/PlayerBot/PlayerBotMgr.cpp @@ -924,6 +924,8 @@ void PlayerBotMgr::UpdateLastAccountIndex(std::string& username) void PlayerBotMgr::SupplementAccount() { + if (!sConfigMgr->GetIntDefault("pbotall", 1)) // SylvaniaCore: serveur sans bots -> pas de comptes PLAYERBOT + return; uint32 needAccount = m_BotAccountAmount * 2 - m_idPlayerBotBase.size(); if (needAccount <= 0) return; @@ -3327,6 +3329,8 @@ uint32 PlayerBotMgr::GetOnlineBotCount2(TeamId team, bool hasReal) void PlayerBotMgr::Update() { + if (!sConfigMgr->GetIntDefault("pbotall", 1)) // SylvaniaCore: serveur sans bots -> tick bot inerte (evite crash #56 sur file BG/arene) + return; OnlinePlayerBotByGUIDQueue(); diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index b3dcbf3..8fee49e 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -2670,8 +2670,12 @@ void World::SetInitialWorldSettings() uint32 startupDuration = GetMSTimeDiffToNow(startupBegin); - sPlayerBotMgr->UpAllPlayerBotSession(); - sPlayerBotMgr->SupplementOneRandomPlayerBotPerAccount(); + // SylvaniaCore: serveur blizzlike sans PlayerBots. pbotall=0 desactive toute creation/session de bot au demarrage. + if (sConfigMgr->GetIntDefault("pbotall", 1)) + { + sPlayerBotMgr->UpAllPlayerBotSession(); + sPlayerBotMgr->SupplementOneRandomPlayerBotPerAccount(); + } TC_LOG_INFO("server.worldserver", "World initialized in %u minutes %u seconds", (startupDuration / 60000), ((startupDuration % 60000) / 1000));