From 0fbac741b3ba7e7624fcb0f95be63884aaccf855 Mon Sep 17 00:00:00 2001 From: NoFantasy Date: Tue, 9 Feb 2010 00:06:53 +0100 Subject: [PATCH] [9334] Check if baseLevel for XP is valid before attempt use data from store Signed-off-by: NoFantasy --- src/game/QuestDef.cpp | 26 ++++++++++++++------------ src/shared/revision_nr.h | 2 +- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/game/QuestDef.cpp b/src/game/QuestDef.cpp index ff379a19e..44a67cf1e 100644 --- a/src/game/QuestDef.cpp +++ b/src/game/QuestDef.cpp @@ -233,19 +233,21 @@ uint32 Quest::XPValue(Player *pPlayer) const } } - const QuestXPLevel* pXPData = sQuestXPLevelStore.LookupEntry(baseLevel); + // not possible to reward XP when baseLevel does not exist in dbc + if (const QuestXPLevel* pXPData = sQuestXPLevelStore.LookupEntry(baseLevel)) + { + uint32 rawXP = xpMultiplier * pXPData->xpIndex[RewXPId] / 10; - uint32 rawXP = xpMultiplier * pXPData->xpIndex[RewXPId] / 10; - - // round values - if (rawXP > 1000) - realXP = ((rawXP + 25) / 50 * 50); - else if (rawXP > 500) - realXP = ((rawXP + 12) / 25 * 25); - else if (rawXP > 100) - realXP = ((rawXP + 5) / 10 * 10); - else - realXP = ((rawXP + 2) / 5 * 5); + // round values + if (rawXP > 1000) + realXP = ((rawXP + 25) / 50 * 50); + else if (rawXP > 500) + realXP = ((rawXP + 12) / 25 * 25); + else if (rawXP > 100) + realXP = ((rawXP + 5) / 10 * 10); + else + realXP = ((rawXP + 2) / 5 * 5); + } return realXP; } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 196000c47..b26c7acaf 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "9333" + #define REVISION_NR "9334" #endif // __REVISION_NR_H__