aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Player/Player.cpp9
-rw-r--r--src/server/shared/DataStores/DBCStructure.h4
-rw-r--r--src/server/shared/DataStores/DBCfmt.h2
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";