Core/AreaTriggers: Optimize target searching

Port From (https://github.com/TrinityCore/TrinityCore/commit/23144d0665504e2e24ee790e900bb8de0df4aa08)
This commit is contained in:
hondacrx
2021-02-04 12:12:54 -05:00
parent 0784e38a06
commit 0d1bfff206
9 changed files with 39 additions and 33 deletions
+2 -2
View File
@@ -189,11 +189,11 @@ namespace Scripts.Spells.Holiday
bool foundSomeone = false;
// For nearby players, check if they have the same aura. If so, cast Romantic Picnic (45123)
// required by achievement and "hearts" visual
List<Player> playerList = new List<Player>();
List<Unit> playerList = new List<Unit>();
AnyPlayerInObjectRangeCheck checker = new AnyPlayerInObjectRangeCheck(target, SharedConst.InteractionDistance * 2);
var searcher = new PlayerListSearcher(target, playerList, checker);
Cell.VisitWorldObjects(target, searcher, SharedConst.InteractionDistance * 2);
foreach (var player in playerList)
foreach (Player player in playerList)
{
if (player != target && player.HasAura(GetId())) // && player.GetStandState() == UNIT_STAND_STATE_SIT)
{
+2 -2
View File
@@ -1240,11 +1240,11 @@ namespace Scripts.Spells.Quest
{
Unit caster = GetCaster();
// Check for player that is in 65 y range
List<Player> playerList = new List<Player>();
List<Unit> playerList = new List<Unit>();
AnyPlayerInObjectRangeCheck checker = new AnyPlayerInObjectRangeCheck(caster, 65.0f);
PlayerListSearcher searcher = new PlayerListSearcher(caster, playerList, checker);
Cell.VisitWorldObjects(caster, searcher, 65.0f);
foreach (var player in playerList)
foreach (Player player in playerList)
{
// Check if found player target is on fly mount or using flying form
if (player.HasAuraType(AuraType.Fly) || player.HasAuraType(AuraType.ModIncreaseMountedFlightSpeed))
+1 -1
View File
@@ -818,7 +818,7 @@ namespace Scripts.World.NpcSpecial
bool checkNearbyPlayers()
{
// Returns true if no nearby player has aura "Test Ribbon Pole Channel".
List<Player> players = new List<Player>();
List<Unit> players = new List<Unit>();
var check = new UnitAuraCheck<Player>(true, SpellIds.RibbonDanceCosmetic);
var searcher = new PlayerListSearcher(me, players, check);
Cell.VisitWorldObjects(me, searcher, 10.0f);