Compare commits

..

2 Commits

Author SHA1 Message Date
bash
50103ed13d Update PlayerbotFactory.cpp 2025-08-13 01:06:39 +02:00
bash
6e638cdf0c nullptr fix 2025-08-13 00:36:33 +02:00

View File

@@ -164,22 +164,33 @@ void PlayerbotFactory::Init()
{ {
continue; continue;
} }
ItemTemplate const* proto = sObjectMgr->GetItemTemplate(gemId); ItemTemplate const* proto = sObjectMgr->GetItemTemplate(gemId);
if (!proto)
if (proto->ItemLevel < 60) {
continue; continue;
}
if (proto->ItemLevel < 60)
{
continue;
}
if (proto->Flags & ITEM_FLAG_UNIQUE_EQUIPPABLE) if (proto->Flags & ITEM_FLAG_UNIQUE_EQUIPPABLE)
{ {
continue; continue;
} }
if (sRandomItemMgr->IsTestItem(gemId)) if (sRandomItemMgr->IsTestItem(gemId))
continue; {
continue;
if (!proto || !sGemPropertiesStore.LookupEntry(proto->GemProperties)) }
if (!sGemPropertiesStore.LookupEntry(proto->GemProperties))
{ {
continue; continue;
} }
// LOG_INFO("playerbots", "Add {} to enchantment gems", gemId); // LOG_INFO("playerbots", "Add {} to enchantment gems", gemId);
enchantGemIdCache.push_back(gemId); enchantGemIdCache.push_back(gemId);
} }
@@ -1017,18 +1028,15 @@ void PlayerbotFactory::ClearSkills()
} }
bot->SetUInt32Value(PLAYER_SKILL_INDEX(0), 0); bot->SetUInt32Value(PLAYER_SKILL_INDEX(0), 0);
bot->SetUInt32Value(PLAYER_SKILL_INDEX(1), 0); bot->SetUInt32Value(PLAYER_SKILL_INDEX(1), 0);
// unlearn default race/class skills // unlearn default race/class skills
if (PlayerInfo const* info = sObjectMgr->GetPlayerInfo(bot->getRace(), bot->getClass())) PlayerInfo const* info = sObjectMgr->GetPlayerInfo(bot->getRace(), bot->getClass());
{ for (PlayerCreateInfoSkills::const_iterator itr = info->skills.begin(); itr != info->skills.end(); ++itr)
for (PlayerCreateInfoSkills::const_iterator itr = info->skills.begin(); itr != info->skills.end(); ++itr) {
{ uint32 skillId = itr->SkillId;
uint32 skillId = itr->SkillId; if (!bot->HasSkill(skillId))
if (!bot->HasSkill(skillId)) continue;
continue; bot->SetSkill(skillId, 0, 0, 0);
bot->SetSkill(skillId, 0, 0, 0); }
}
}
} }
void PlayerbotFactory::ClearEverything() void PlayerbotFactory::ClearEverything()