Allow multiple classes for quest requirements - patch by Shauren
(This should make Malcrom happy) Fixes issue 1476. Fixes issues 1972. Fixes issue 430. --HG-- branch : trunk
This commit is contained in:
+8
-8
@@ -14338,11 +14338,11 @@ void Player::FailQuest(uint32 questId)
|
||||
|
||||
bool Player::SatisfyQuestSkillOrClass(Quest const* qInfo, bool msg)
|
||||
{
|
||||
int32 zoneOrSort = qInfo->GetZoneOrSort();
|
||||
int32 skillOrClass = qInfo->GetSkillOrClass();
|
||||
int32 zoneOrSort = qInfo->GetZoneOrSort();
|
||||
int32 skillOrClassMask = qInfo->GetSkillOrClassMask();
|
||||
|
||||
// skip zone zoneOrSort and 0 case skillOrClass
|
||||
if (zoneOrSort >= 0 && skillOrClass == 0)
|
||||
if (zoneOrSort >= 0 && skillOrClassMask == 0)
|
||||
return true;
|
||||
|
||||
int32 questSort = -zoneOrSort;
|
||||
@@ -14357,10 +14357,10 @@ bool Player::SatisfyQuestSkillOrClass(Quest const* qInfo, bool msg)
|
||||
}
|
||||
|
||||
// check class
|
||||
if (skillOrClass < 0)
|
||||
if (skillOrClassMask < 0)
|
||||
{
|
||||
uint8 reqClass = -int32(skillOrClass);
|
||||
if (getClass() != reqClass)
|
||||
uint8 reqClassMask = -int32(skillOrClassMask);
|
||||
if (!(reqClassMask & getClassMask()))
|
||||
{
|
||||
if (msg)
|
||||
SendCanTakeQuestResponse(INVALIDREASON_DONT_HAVE_REQ);
|
||||
@@ -14368,9 +14368,9 @@ bool Player::SatisfyQuestSkillOrClass(Quest const* qInfo, bool msg)
|
||||
}
|
||||
}
|
||||
// check skill
|
||||
else if (skillOrClass > 0)
|
||||
else if (skillOrClassMask > 0)
|
||||
{
|
||||
uint32 reqSkill = skillOrClass;
|
||||
uint32 reqSkill = skillOrClassMask;
|
||||
if (GetSkillValue(reqSkill) < qInfo->GetRequiredSkillValue())
|
||||
{
|
||||
if (msg)
|
||||
|
||||
Reference in New Issue
Block a user