mirror of
https://github.com/kadeshar/mod-player-bot-level-brackets.git
synced 2026-01-13 09:17:19 +00:00
Compare commits
7 Commits
10c47670cf
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f64862503 | ||
|
|
6a33cb3257 | ||
|
|
a926792857 | ||
|
|
1faa24cf15 | ||
|
|
11dc0941fd | ||
|
|
6152f9e77e | ||
|
|
a33f0ca354 |
@@ -942,7 +942,7 @@ static bool IsBotSafeForLevelReset(Player* bot)
|
||||
for (GroupReference* ref = group->GetFirstMember(); ref; ref = ref->next())
|
||||
{
|
||||
Player* member = ref->GetSource();
|
||||
if (member && !IsPlayerBot(member))
|
||||
if (member && member->IsInWorld() && !IsPlayerBot(member))
|
||||
{
|
||||
if (g_BotDistFullDebugMode)
|
||||
{
|
||||
@@ -1057,6 +1057,26 @@ static void ProcessPendingLevelResets()
|
||||
continue;
|
||||
}
|
||||
|
||||
// Check if bot is now in a group with real players
|
||||
if (Group* group = bot->GetGroup())
|
||||
{
|
||||
bool hasRealPlayer = false;
|
||||
for (GroupReference* ref = group->GetFirstMember(); ref; ref = ref->next())
|
||||
{
|
||||
Player* member = ref->GetSource();
|
||||
if (member && member->IsInWorld() && !IsPlayerBot(member))
|
||||
{
|
||||
hasRealPlayer = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (hasRealPlayer)
|
||||
{
|
||||
it = g_PendingLevelResets.erase(it);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (bot && bot->IsInWorld() && IsBotSafeForLevelReset(bot))
|
||||
{
|
||||
AdjustBotToRange(bot, targetRange, it->factionRanges);
|
||||
@@ -1102,6 +1122,27 @@ static int GetOrFlagPlayerBracket(Player* player)
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Check if bot is in a group with real players - if so, exclude from bracket processing
|
||||
if (IsPlayerBot(player))
|
||||
{
|
||||
if (Group* group = player->GetGroup())
|
||||
{
|
||||
for (GroupReference* ref = group->GetFirstMember(); ref; ref = ref->next())
|
||||
{
|
||||
Player* member = ref->GetSource();
|
||||
if (member && member->IsInWorld() && !IsPlayerBot(member))
|
||||
{
|
||||
if (g_BotDistFullDebugMode)
|
||||
{
|
||||
LOG_INFO("server.loading", "[BotLevelBrackets] GetOrFlagPlayerBracket: Bot {} (Level {}) is in group with real player {} - excluding from bracket processing.",
|
||||
player->GetName(), player->GetLevel(), member->GetName());
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int rangeIndex = GetLevelRangeIndex(player->GetLevel(), player->GetTeamId());
|
||||
if (rangeIndex >= 0)
|
||||
{
|
||||
@@ -1130,6 +1171,13 @@ static int GetOrFlagPlayerBracket(Player* player)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// Skip brackets that Death Knights cannot be assigned to (upper bound < 55)
|
||||
if (player->getClass() == CLASS_DEATH_KNIGHT && factionRanges[i].upper < 55)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
int diff = 0;
|
||||
if (player->GetLevel() < factionRanges[i].lower)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user