diff options
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 9 | ||||
-rw-r--r-- | src/server/shared/DataStores/DBCStructure.h | 4 | ||||
-rw-r--r-- | src/server/shared/DataStores/DBCfmt.h | 2 |
3 files changed, 10 insertions, 5 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 132177daa10..5dbe471b24d 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -4623,18 +4623,19 @@ void Player::ResurrectPlayer(float restore_percent, bool applySickness) //for each level they are above 10. //Characters level 20 and up suffer from ten minutes of sickness. int32 startLevel = sWorld->getIntConfig(CONFIG_DEATH_SICKNESS_LEVEL); + ChrRacesEntry const* raceEntry = sChrRacesStore.AssertEntry(GetRace()); if (int32(GetLevel()) >= startLevel) { // set resurrection sickness - CastSpell(this, 15007, true); + CastSpell(this, raceEntry->ResSicknessSpellID, true); // not full duration if (int32(GetLevel()) < startLevel+9) { int32 delta = (int32(GetLevel()) - startLevel + 1)*MINUTE; - if (Aura* aur = GetAura(15007, GetGUID())) + if (Aura* aur = GetAura(raceEntry->ResSicknessSpellID, GetGUID())) { aur->SetDuration(delta*IN_MILLISECONDS); } @@ -18026,8 +18027,10 @@ void Player::_LoadAuras(PreparedQueryResult result, uint32 timediff) continue; } + ChrRacesEntry const* raceEntry = sChrRacesStore.AssertEntry(GetRace()); + // negative effects should continue counting down after logout - if (remaintime != -1 && ((!spellInfo->IsPositive() && spellInfo->Id != 15007) || spellInfo->HasAttribute(SPELL_ATTR4_FADES_WHILE_LOGGED_OUT))) // Resurrection sickness should not fade while logged out + if (remaintime != -1 && ((!spellInfo->IsPositive() && spellInfo->Id != raceEntry->ResSicknessSpellID) || spellInfo->HasAttribute(SPELL_ATTR4_FADES_WHILE_LOGGED_OUT))) // Resurrection sickness should not fade while logged out { if (remaintime/IN_MILLISECONDS <= int32(timediff)) continue; diff --git a/src/server/shared/DataStores/DBCStructure.h b/src/server/shared/DataStores/DBCStructure.h index be81e8b258b..e8469eddfa2 100644 --- a/src/server/shared/DataStores/DBCStructure.h +++ b/src/server/shared/DataStores/DBCStructure.h @@ -402,7 +402,9 @@ struct ChrRacesEntry uint32 model_f; // 5 // 6 unused uint32 TeamID; // 7 (7-Alliance 1-Horde) - // 8-11 unused + // 8 unused + uint32 ResSicknessSpellID; // 9 Blizzlike DBC always 15007. + // 10-11 unused uint32 CinematicSequence; // 12 id from CinematicSequences.dbc //uint32 unk_322; // 13 faction (0 alliance, 1 horde, 2 not available?) char* name[16]; // 14-29 used for DBC language detection/selection diff --git a/src/server/shared/DataStores/DBCfmt.h b/src/server/shared/DataStores/DBCfmt.h index 2fc1cf6c5ce..00267759742 100644 --- a/src/server/shared/DataStores/DBCfmt.h +++ b/src/server/shared/DataStores/DBCfmt.h @@ -37,7 +37,7 @@ char constexpr CharSectionsEntryfmt[] = "diiixxxiii"; char constexpr CharTitlesEntryfmt[] = "nxssssssssssssssssxssssssssssssssssxi"; char constexpr ChatChannelsEntryfmt[] = "nixssssssssssssssssxxxxxxxxxxxxxxxxxx"; char constexpr ChrClassesEntryfmt[] = "nxixssssssssssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxixii"; -char constexpr ChrRacesEntryfmt[] = "niixiixixxxxixssssssssssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi"; +char constexpr ChrRacesEntryfmt[] = "niixiixixixxixssssssssssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi"; char constexpr CinematicCameraEntryfmt[] = "nsiffff"; char constexpr CinematicSequencesEntryfmt[] = "nxixxxxxxx"; char constexpr CreatureDisplayInfofmt[] = "nixifxxxxxxxxxxx"; |