Core/Misc: Use DB2Manager::IsInArea for area-related criterias and conditions
Port From (https://github.com/TrinityCore/TrinityCore/commit/9f68215bb61e46265c6667b6c71f0d2376835686)
This commit is contained in:
@@ -1149,7 +1149,7 @@ namespace Game.Achievements
|
||||
break;
|
||||
case CriteriaType.PVPKillInArea:
|
||||
case CriteriaType.EnterTopLevelArea:
|
||||
if (miscValue1 == 0 || miscValue1 != criteria.Entry.Asset)
|
||||
if (miscValue1 == 0 || !Global.DB2Mgr.IsInArea((uint)miscValue1, criteria.Entry.Asset))
|
||||
return false;
|
||||
break;
|
||||
case CriteriaType.CurrencyGained:
|
||||
@@ -1313,9 +1313,7 @@ namespace Game.Achievements
|
||||
break;
|
||||
case ModifierTreeType.PlayerIsInArea: // 17
|
||||
{
|
||||
uint zoneId, areaId;
|
||||
referencePlayer.GetZoneAndAreaId(out zoneId, out areaId);
|
||||
if (zoneId != reqValue && areaId != reqValue)
|
||||
if (!Global.DB2Mgr.IsInArea(referencePlayer.GetAreaId(), reqValue))
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
@@ -1323,9 +1321,7 @@ namespace Game.Achievements
|
||||
{
|
||||
if (refe == null)
|
||||
return false;
|
||||
uint zoneId, areaId;
|
||||
refe.GetZoneAndAreaId(out zoneId, out areaId);
|
||||
if (zoneId != reqValue && areaId != reqValue)
|
||||
if (!Global.DB2Mgr.IsInArea(refe.GetAreaId(), reqValue))
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
@@ -3301,11 +3297,9 @@ namespace Game.Achievements
|
||||
case ModifierTreeType.PlayerIsInAreaGroup: // 298
|
||||
{
|
||||
var areas = Global.DB2Mgr.GetAreasForGroup(reqValue);
|
||||
AreaTableRecord area = CliDB.AreaTableStorage.LookupByKey(referencePlayer.GetAreaId());
|
||||
if (area != null)
|
||||
foreach (uint areaInGroup in areas)
|
||||
if (areaInGroup == area.Id || areaInGroup == area.ParentAreaID)
|
||||
return true;
|
||||
foreach (uint areaInGroup in areas)
|
||||
if (Global.DB2Mgr.IsInArea(referencePlayer.GetAreaId(), areaInGroup))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
case ModifierTreeType.TargetIsInAreaGroup: // 299
|
||||
@@ -3314,11 +3308,9 @@ namespace Game.Achievements
|
||||
return false;
|
||||
|
||||
var areas = Global.DB2Mgr.GetAreasForGroup(reqValue);
|
||||
var area = CliDB.AreaTableStorage.LookupByKey(refe.GetAreaId());
|
||||
if (area != null)
|
||||
foreach (uint areaInGroup in areas)
|
||||
if (areaInGroup == area.Id || areaInGroup == area.ParentAreaID)
|
||||
return true;
|
||||
foreach (uint areaInGroup in areas)
|
||||
if (Global.DB2Mgr.IsInArea(refe.GetAreaId(), areaInGroup))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
case ModifierTreeType.PlayerIsInChromieTime: // 300
|
||||
|
||||
@@ -196,7 +196,7 @@ namespace Game.Conditions
|
||||
}
|
||||
break;
|
||||
case ConditionTypes.Areaid:
|
||||
condMeets = obj.GetAreaId() == ConditionValue1;
|
||||
condMeets = Global.DB2Mgr.IsInArea(obj.GetAreaId(), ConditionValue1);
|
||||
break;
|
||||
case ConditionTypes.Spell:
|
||||
if (player != null)
|
||||
|
||||
@@ -2394,7 +2394,7 @@ namespace Game
|
||||
|
||||
for (var i = 0; i < condition.AreaID.Length; ++i)
|
||||
if (condition.AreaID[i] != 0)
|
||||
results[i] = player.GetAreaId() == condition.AreaID[i] || player.GetZoneId() == condition.AreaID[i];
|
||||
results[i] = Global.DB2Mgr.IsInArea(player.GetAreaId(), condition.AreaID[i]);
|
||||
|
||||
if (!PlayerConditionLogic(condition.AreaLogic, results))
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user