mirror of
https://github.com/ZhengPeiRu21/mod-individual-progression
synced 2025-11-29 15:38:19 +08:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f57467aced | ||
|
|
bb45ca7a04 | ||
|
|
2a14fbde09 | ||
|
|
145cbb0cce | ||
|
|
7f8a8805d7 | ||
|
|
f2005af9cf |
File diff suppressed because it is too large
Load Diff
@@ -25,7 +25,7 @@ bool IndividualProgression::isBeforeProgression(Player* player, ProgressionState
|
|||||||
|
|
||||||
void IndividualProgression::UpdateProgressionState(Player* player, ProgressionState newState) const
|
void IndividualProgression::UpdateProgressionState(Player* player, ProgressionState newState) const
|
||||||
{
|
{
|
||||||
if (progressionLimit && newState >= progressionLimit)
|
if (progressionLimit && newState > progressionLimit)
|
||||||
return;
|
return;
|
||||||
uint8 currentState = player->GetPlayerSetting("mod-individual-progression", SETTING_PROGRESSION_STATE).value;
|
uint8 currentState = player->GetPlayerSetting("mod-individual-progression", SETTING_PROGRESSION_STATE).value;
|
||||||
if (newState > currentState)
|
if (newState > currentState)
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
#include "GameObjectAI.h"
|
#include "GameObjectAI.h"
|
||||||
#include "MapMgr.h"
|
#include "MapMgr.h"
|
||||||
#include "ObjectAccessor.h"
|
#include "ObjectAccessor.h"
|
||||||
|
#include "ObjectMgr.h"
|
||||||
#include "Group.h"
|
#include "Group.h"
|
||||||
#include "Pet.h"
|
#include "Pet.h"
|
||||||
#include "DBCEnums.h"
|
#include "DBCEnums.h"
|
||||||
|
|||||||
@@ -113,13 +113,8 @@ public:
|
|||||||
uint32 vanillaXpValue = sIndividualProgression->questXpMap[quest->GetQuestId()];
|
uint32 vanillaXpValue = sIndividualProgression->questXpMap[quest->GetQuestId()];
|
||||||
if (player)
|
if (player)
|
||||||
{
|
{
|
||||||
vanillaXpValue *= player->GetQuestRate();
|
uint32 originalXpValue = quest->XPValue(quest->GetQuestLevel() == -1 ? player->GetLevel() : quest->GetQuestLevel());
|
||||||
}
|
xpValue *= vanillaXpValue * 1.0 / originalXpValue;
|
||||||
// If XP was already reduced due to out-leveling the quest or other reasons, use the reduced value
|
|
||||||
if (vanillaXpValue < xpValue)
|
|
||||||
{
|
|
||||||
// Otherwise, return the correct Vanilla/TBC Quest XP
|
|
||||||
xpValue = vanillaXpValue;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -202,6 +197,19 @@ public:
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
InstanceTemplate const* instanceTemplate = sObjectMgr->GetInstanceTemplate(mapid);
|
||||||
|
if (instanceTemplate)
|
||||||
|
{
|
||||||
|
if (instanceTemplate->Parent == MAP_OUTLANDS && !sIndividualProgression->hasPassedProgression(player, PROGRESSION_NAXX40))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (instanceTemplate->Parent == MAP_NORTHREND && !sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user