Core/AreaTriggers: Optimize target searching
Port From (https://github.com/TrinityCore/TrinityCore/commit/23144d0665504e2e24ee790e900bb8de0df4aa08)
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user