mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-13 01:08:35 +00:00
feat(Core/ObjectMgr): Add handling specific to heroic player level stats (DKs). (#14378)
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
DELETE FROM `player_class_stats` WHERE `class` = 6 AND `level` < 55;
|
||||
DELETE FROM `player_classlevelstats` WHERE `class` = 6 AND `level` < 55;
|
||||
@@ -3992,7 +3992,7 @@ void ObjectMgr::LoadPlayerInfo()
|
||||
PlayerClassInfo* pClassInfo = _playerClassInfo[class_];
|
||||
|
||||
// fatal error if no level 1 data
|
||||
if (!pClassInfo->levelInfo || pClassInfo->levelInfo[0].basehealth == 0)
|
||||
if (!pClassInfo->levelInfo || (pClassInfo->levelInfo[sWorld->getIntConfig(CONFIG_START_PLAYER_LEVEL) - 1].basehealth == 0 && class_ != CLASS_DEATH_KNIGHT) || (pClassInfo->levelInfo[sWorld->getIntConfig(CONFIG_START_HEROIC_PLAYER_LEVEL) - 1].basehealth == 0 && class_ == CLASS_DEATH_KNIGHT))
|
||||
{
|
||||
LOG_ERROR("sql.sql", "Class {} Level 1 does not have health/mana data!", class_);
|
||||
exit(1);
|
||||
@@ -4001,7 +4001,7 @@ void ObjectMgr::LoadPlayerInfo()
|
||||
// fill level gaps
|
||||
for (uint8 level = 1; level < sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL); ++level)
|
||||
{
|
||||
if (pClassInfo->levelInfo[level].basehealth == 0)
|
||||
if ((pClassInfo->levelInfo[level].basehealth == 0 && class_ != CLASS_DEATH_KNIGHT) || (level >= sWorld->getIntConfig(CONFIG_START_HEROIC_PLAYER_LEVEL) && pClassInfo->levelInfo[level].basehealth == 0 && class_ == CLASS_DEATH_KNIGHT))
|
||||
{
|
||||
LOG_ERROR("sql.sql", "Class {} Level {} does not have health/mana data. Using stats data of level {}.", class_, level + 1, level);
|
||||
pClassInfo->levelInfo[level] = pClassInfo->levelInfo[level - 1];
|
||||
@@ -4126,16 +4126,16 @@ void ObjectMgr::LoadPlayerInfo()
|
||||
continue;
|
||||
|
||||
// fatal error if no level 1 data
|
||||
if (!info->levelInfo || info->levelInfo[0].stats[0] == 0)
|
||||
if (!info->levelInfo || (info->levelInfo[sWorld->getIntConfig(CONFIG_START_PLAYER_LEVEL) - 1].stats[0] == 0 && class_ != CLASS_DEATH_KNIGHT) || (info->levelInfo[sWorld->getIntConfig(CONFIG_START_HEROIC_PLAYER_LEVEL) - 1].stats[0] == 0 && class_ == CLASS_DEATH_KNIGHT))
|
||||
{
|
||||
LOG_ERROR("sql.sql", "Race {} Class {} Level 1 does not have stats data!", race, class_);
|
||||
LOG_ERROR("sql.sql", "Race {} Class {} initial level does not have stats data!", race, class_);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// fill level gaps
|
||||
for (uint8 level = 1; level < sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL); ++level)
|
||||
{
|
||||
if (info->levelInfo[level].stats[0] == 0)
|
||||
if ((info->levelInfo[level].stats[0] == 0 && class_ != CLASS_DEATH_KNIGHT) || (level >= sWorld->getIntConfig(CONFIG_START_HEROIC_PLAYER_LEVEL) && info->levelInfo[level].stats[0] == 0 && class_ == CLASS_DEATH_KNIGHT))
|
||||
{
|
||||
LOG_ERROR("sql.sql", "Race {} Class {} Level {} does not have stats data. Using stats data of level {}.", race, class_, level + 1, level);
|
||||
info->levelInfo[level] = info->levelInfo[level - 1];
|
||||
|
||||
Reference in New Issue
Block a user